diff --git a/.gitignore b/.gitignore index 43ba549a0d7d3b7c68b4dd3d02cd7047e214da94..769ac3a97b38b31a4f131eeb5f6894009dbd26ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -pb_data -just_registry \ No newline at end of file +packages +registry \ No newline at end of file diff --git a/Makefile b/Makefile index ecbc1c4ac5f70cdbed352749e0a575593662645b..6cb6b476bb8ed24c127534c6ba2314ea4f7f86c9 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ clean: - rm just_registry + rm registry build: - go build registry/main.go && mv main just_registry + go build . run: - go run registry/main.go serve + go run . serve diff --git a/apis/admin.go b/apis/admin.go deleted file mode 100644 index cf8354a3ade6bc8d5bcdaef3f0a16644b6c6f667..0000000000000000000000000000000000000000 --- a/apis/admin.go +++ /dev/null @@ -1,268 +0,0 @@ -package apis - -import ( - "log" - "net/http" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tokens" - "github.com/pocketbase/pocketbase/tools/routine" - "github.com/pocketbase/pocketbase/tools/search" -) - -// bindAdminApi registers the admin api endpoints and the corresponding handlers. -func bindAdminApi(app core.App, rg *echo.Group) { - api := adminApi{app: app} - - subGroup := rg.Group("/admins", ActivityLogger(app)) - subGroup.POST("/auth-with-password", api.authWithPassword, RequireGuestOnly()) - subGroup.POST("/request-password-reset", api.requestPasswordReset) - subGroup.POST("/confirm-password-reset", api.confirmPasswordReset) - subGroup.POST("/auth-refresh", api.authRefresh, RequireAdminAuth()) - subGroup.GET("", api.list, RequireAdminAuth()) - subGroup.POST("", api.create, RequireAdminAuthOnlyIfAny(app)) - subGroup.GET("/:id", api.view, RequireAdminAuth()) - subGroup.PATCH("/:id", api.update, RequireAdminAuth()) - subGroup.DELETE("/:id", api.delete, RequireAdminAuth()) -} - -type adminApi struct { - app core.App -} - -func (api *adminApi) authResponse(c echo.Context, admin *models.Admin) error { - token, tokenErr := tokens.NewAdminAuthToken(api.app, admin) - if tokenErr != nil { - return NewBadRequestError("Failed to create auth token.", tokenErr) - } - - event := &core.AdminAuthEvent{ - HttpContext: c, - Admin: admin, - Token: token, - } - - return api.app.OnAdminAuthRequest().Trigger(event, func(e *core.AdminAuthEvent) error { - return e.HttpContext.JSON(200, map[string]any{ - "token": e.Token, - "admin": e.Admin, - }) - }) -} - -func (api *adminApi) authRefresh(c echo.Context) error { - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - if admin == nil { - return NewNotFoundError("Missing auth admin context.", nil) - } - - return api.authResponse(c, admin) -} - -func (api *adminApi) authWithPassword(c echo.Context) error { - form := forms.NewAdminLogin(api.app) - if readErr := c.Bind(form); readErr != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", readErr) - } - - admin, submitErr := form.Submit() - if submitErr != nil { - return NewBadRequestError("Failed to authenticate.", submitErr) - } - - return api.authResponse(c, admin) -} - -func (api *adminApi) requestPasswordReset(c echo.Context) error { - form := forms.NewAdminPasswordResetRequest(api.app) - if err := c.Bind(form); err != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", err) - } - - if err := form.Validate(); err != nil { - return NewBadRequestError("An error occurred while validating the form.", err) - } - - // run in background because we don't need to show the result - // (prevents admins enumeration) - routine.FireAndForget(func() { - if err := form.Submit(); err != nil && api.app.IsDebug() { - log.Println(err) - } - }) - - return c.NoContent(http.StatusNoContent) -} - -func (api *adminApi) confirmPasswordReset(c echo.Context) error { - form := forms.NewAdminPasswordResetConfirm(api.app) - if readErr := c.Bind(form); readErr != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", readErr) - } - - _, submitErr := form.Submit() - if submitErr != nil { - return NewBadRequestError("Failed to set new password.", submitErr) - } - - return c.NoContent(http.StatusNoContent) -} - -func (api *adminApi) list(c echo.Context) error { - fieldResolver := search.NewSimpleFieldResolver( - "id", "created", "updated", "name", "email", - ) - - admins := []*models.Admin{} - - result, err := search.NewProvider(fieldResolver). - Query(api.app.Dao().AdminQuery()). - ParseAndExec(c.QueryString(), &admins) - - if err != nil { - return NewBadRequestError("", err) - } - - event := &core.AdminsListEvent{ - HttpContext: c, - Admins: admins, - Result: result, - } - - return api.app.OnAdminsListRequest().Trigger(event, func(e *core.AdminsListEvent) error { - return e.HttpContext.JSON(http.StatusOK, e.Result) - }) -} - -func (api *adminApi) view(c echo.Context) error { - id := c.PathParam("id") - if id == "" { - return NewNotFoundError("", nil) - } - - admin, err := api.app.Dao().FindAdminById(id) - if err != nil || admin == nil { - return NewNotFoundError("", err) - } - - event := &core.AdminViewEvent{ - HttpContext: c, - Admin: admin, - } - - return api.app.OnAdminViewRequest().Trigger(event, func(e *core.AdminViewEvent) error { - return e.HttpContext.JSON(http.StatusOK, e.Admin) - }) -} - -func (api *adminApi) create(c echo.Context) error { - admin := &models.Admin{} - - form := forms.NewAdminUpsert(api.app, admin) - - // load request - if err := c.Bind(form); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - event := &core.AdminCreateEvent{ - HttpContext: c, - Admin: admin, - } - - // create the admin - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnAdminBeforeCreateRequest().Trigger(event, func(e *core.AdminCreateEvent) error { - if err := next(); err != nil { - return NewBadRequestError("Failed to create admin.", err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Admin) - }) - } - }) - - if submitErr == nil { - api.app.OnAdminAfterCreateRequest().Trigger(event) - } - - return submitErr -} - -func (api *adminApi) update(c echo.Context) error { - id := c.PathParam("id") - if id == "" { - return NewNotFoundError("", nil) - } - - admin, err := api.app.Dao().FindAdminById(id) - if err != nil || admin == nil { - return NewNotFoundError("", err) - } - - form := forms.NewAdminUpsert(api.app, admin) - - // load request - if err := c.Bind(form); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - event := &core.AdminUpdateEvent{ - HttpContext: c, - Admin: admin, - } - - // update the admin - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnAdminBeforeUpdateRequest().Trigger(event, func(e *core.AdminUpdateEvent) error { - if err := next(); err != nil { - return NewBadRequestError("Failed to update admin.", err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Admin) - }) - } - }) - - if submitErr == nil { - api.app.OnAdminAfterUpdateRequest().Trigger(event) - } - - return submitErr -} - -func (api *adminApi) delete(c echo.Context) error { - id := c.PathParam("id") - if id == "" { - return NewNotFoundError("", nil) - } - - admin, err := api.app.Dao().FindAdminById(id) - if err != nil || admin == nil { - return NewNotFoundError("", err) - } - - event := &core.AdminDeleteEvent{ - HttpContext: c, - Admin: admin, - } - - handlerErr := api.app.OnAdminBeforeDeleteRequest().Trigger(event, func(e *core.AdminDeleteEvent) error { - if err := api.app.Dao().DeleteAdmin(e.Admin); err != nil { - return NewBadRequestError("Failed to delete admin.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - - if handlerErr == nil { - api.app.OnAdminAfterDeleteRequest().Trigger(event) - } - - return handlerErr -} diff --git a/apis/admin_test.go b/apis/admin_test.go deleted file mode 100644 index ce74571891d38015015c20dbf986242b7a510bbd..0000000000000000000000000000000000000000 --- a/apis/admin_test.go +++ /dev/null @@ -1,745 +0,0 @@ -package apis_test - -import ( - "net/http" - "strings" - "testing" - "time" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestAdminAuthWithEmail(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/admins/auth-with-password", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"identity":{"code":"validation_required","message":"Cannot be blank."},"password":{"code":"validation_required","message":"Cannot be blank."}}`}, - }, - { - Name: "invalid data", - Method: http.MethodPost, - Url: "/api/admins/auth-with-password", - Body: strings.NewReader(`{`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "wrong email", - Method: http.MethodPost, - Url: "/api/admins/auth-with-password", - Body: strings.NewReader(`{"identity":"missing@example.com","password":"1234567890"}`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "wrong password", - Method: http.MethodPost, - Url: "/api/admins/auth-with-password", - Body: strings.NewReader(`{"identity":"test@example.com","password":"invalid"}`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid email/password (already authorized)", - Method: http.MethodPost, - Url: "/api/admins/auth-with-password", - Body: strings.NewReader(`{"identity":"test@example.com","password":"1234567890"}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4MTYwMH0.han3_sG65zLddpcX2ic78qgy7FKecuPfOpFa8Dvi5Bg", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"message":"The request can be accessed only by guests.","data":{}`}, - }, - { - Name: "valid email/password (guest)", - Method: http.MethodPost, - Url: "/api/admins/auth-with-password", - Body: strings.NewReader(`{"identity":"test@example.com","password":"1234567890"}`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"admin":{"id":"sywbhecnh46rhm0"`, - `"token":`, - }, - ExpectedEvents: map[string]int{ - "OnAdminAuthRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminRequestPasswordReset(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/admins/request-password-reset", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"email":{"code":"validation_required","message":"Cannot be blank."}}`}, - }, - { - Name: "invalid data", - Method: http.MethodPost, - Url: "/api/admins/request-password-reset", - Body: strings.NewReader(`{"email`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "missing admin", - Method: http.MethodPost, - Url: "/api/admins/request-password-reset", - Body: strings.NewReader(`{"email":"missing@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - }, - { - Name: "existing admin", - Method: http.MethodPost, - Url: "/api/admins/request-password-reset", - Body: strings.NewReader(`{"email":"test@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnMailerBeforeAdminResetPasswordSend": 1, - "OnMailerAfterAdminResetPasswordSend": 1, - }, - }, - { - Name: "existing admin (after already sent)", - Method: http.MethodPost, - Url: "/api/admins/request-password-reset", - Body: strings.NewReader(`{"email":"test@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - // simulate recent password request - admin, err := app.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - admin.LastResetSentAt = types.NowDateTime() - dao := daos.New(app.Dao().DB()) // new dao to ignore hooks - if err := dao.Save(admin); err != nil { - t.Fatal(err) - } - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminConfirmPasswordReset(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/admins/confirm-password-reset", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"password":{"code":"validation_required","message":"Cannot be blank."},"passwordConfirm":{"code":"validation_required","message":"Cannot be blank."},"token":{"code":"validation_required","message":"Cannot be blank."}}`}, - }, - { - Name: "invalid data", - Method: http.MethodPost, - Url: "/api/admins/confirm-password-reset", - Body: strings.NewReader(`{"password`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired token", - Method: http.MethodPost, - Url: "/api/admins/confirm-password-reset", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImV4cCI6MTY0MDk5MTY2MX0.GLwCOsgWTTEKXTK-AyGW838de1OeZGIjfHH0FoRLqZg", - "password":"1234567890", - "passwordConfirm":"1234567890" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"token":{"code":"validation_invalid_token","message":"Invalid or expired token."}}}`}, - }, - { - Name: "valid token + invalid password", - Method: http.MethodPost, - Url: "/api/admins/confirm-password-reset", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4MTYwMH0.kwFEler6KSMKJNstuaSDvE1QnNdCta5qSnjaIQ0hhhc", - "password":"123456", - "passwordConfirm":"123456" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"password":{"code":"validation_length_out_of_range"`}, - }, - { - Name: "valid token + valid password", - Method: http.MethodPost, - Url: "/api/admins/confirm-password-reset", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4MTYwMH0.kwFEler6KSMKJNstuaSDvE1QnNdCta5qSnjaIQ0hhhc", - "password":"1234567891", - "passwordConfirm":"1234567891" - }`), - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminRefresh(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPost, - Url: "/api/admins/auth-refresh", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodPost, - Url: "/api/admins/auth-refresh", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin (expired token)", - Method: http.MethodPost, - Url: "/api/admins/auth-refresh", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTY0MDk5MTY2MX0.I7w8iktkleQvC7_UIRpD7rNzcU4OnF7i7SFIUu6lD_4", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin (valid token)", - Method: http.MethodPost, - Url: "/api/admins/auth-refresh", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"admin":{"id":"sywbhecnh46rhm0"`, - `"token":`, - }, - ExpectedEvents: map[string]int{ - "OnAdminAuthRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminsList(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/admins", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodGet, - Url: "/api/admins", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin", - Method: http.MethodGet, - Url: "/api/admins", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":3`, - `"items":[{`, - `"id":"sywbhecnh46rhm0"`, - `"id":"sbmbsdb40jyxf7h"`, - `"id":"9q2trqumvlyr3bd"`, - }, - ExpectedEvents: map[string]int{ - "OnAdminsListRequest": 1, - }, - }, - { - Name: "authorized as admin + paging and sorting", - Method: http.MethodGet, - Url: "/api/admins?page=2&perPage=1&sort=-created", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":2`, - `"perPage":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"sbmbsdb40jyxf7h"`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnAdminsListRequest": 1, - }, - }, - { - Name: "authorized as admin + invalid filter", - Method: http.MethodGet, - Url: "/api/admins?filter=invalidfield~'test2'", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + valid filter", - Method: http.MethodGet, - Url: "/api/admins?filter=email~'test3'", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":1`, - `"items":[{`, - `"id":"9q2trqumvlyr3bd"`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnAdminsListRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminView(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/admins/sbmbsdb40jyxf7h", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodGet, - Url: "/api/admins/sbmbsdb40jyxf7h", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + nonexisting admin id", - Method: http.MethodGet, - Url: "/api/admins/nonexisting", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + existing admin id", - Method: http.MethodGet, - Url: "/api/admins/sbmbsdb40jyxf7h", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"sbmbsdb40jyxf7h"`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnAdminViewRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminDelete(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodDelete, - Url: "/api/admins/sbmbsdb40jyxf7h", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodDelete, - Url: "/api/admins/sbmbsdb40jyxf7h", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + missing admin id", - Method: http.MethodDelete, - Url: "/api/admins/missing", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + existing admin id", - Method: http.MethodDelete, - Url: "/api/admins/sbmbsdb40jyxf7h", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeDelete": 1, - "OnModelAfterDelete": 1, - "OnAdminBeforeDeleteRequest": 1, - "OnAdminAfterDeleteRequest": 1, - }, - }, - { - Name: "authorized as admin - try to delete the only remaining admin", - Method: http.MethodDelete, - Url: "/api/admins/sywbhecnh46rhm0", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - // delete all admins except the authorized one - adminModel := &models.Admin{} - _, err := app.Dao().DB().Delete(adminModel.TableName(), dbx.Not(dbx.HashExp{ - "id": "sywbhecnh46rhm0", - })).Execute() - if err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - ExpectedEvents: map[string]int{ - "OnAdminBeforeDeleteRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminCreate(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized (while having at least 1 existing admin)", - Method: http.MethodPost, - Url: "/api/admins", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "unauthorized (while having 0 existing admins)", - Method: http.MethodPost, - Url: "/api/admins", - Body: strings.NewReader(`{"email":"testnew@example.com","password":"1234567890","passwordConfirm":"1234567890","avatar":3}`), - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - // delete all admins - _, err := app.Dao().DB().NewQuery("DELETE FROM {{_admins}}").Execute() - if err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"email":"testnew@example.com"`, - `"avatar":3`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - "OnAdminBeforeCreateRequest": 1, - "OnAdminAfterCreateRequest": 1, - }, - }, - { - Name: "authorized as user", - Method: http.MethodPost, - Url: "/api/admins", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + empty data", - Method: http.MethodPost, - Url: "/api/admins", - Body: strings.NewReader(``), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"email":{"code":"validation_required","message":"Cannot be blank."},"password":{"code":"validation_required","message":"Cannot be blank."}}`}, - }, - { - Name: "authorized as admin + invalid data format", - Method: http.MethodPost, - Url: "/api/admins", - Body: strings.NewReader(`{`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + invalid data", - Method: http.MethodPost, - Url: "/api/admins", - Body: strings.NewReader(`{ - "email":"test@example.com", - "password":"1234", - "passwordConfirm":"4321", - "avatar":99 - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"avatar":{"code":"validation_max_less_equal_than_required"`, - `"email":{"code":"validation_admin_email_exists"`, - `"password":{"code":"validation_length_out_of_range"`, - `"passwordConfirm":{"code":"validation_values_mismatch"`, - }, - }, - { - Name: "authorized as admin + valid data", - Method: http.MethodPost, - Url: "/api/admins", - Body: strings.NewReader(`{ - "email":"testnew@example.com", - "password":"1234567890", - "passwordConfirm":"1234567890", - "avatar":3 - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"email":"testnew@example.com"`, - `"avatar":3`, - }, - NotExpectedContent: []string{ - `"password"`, - `"passwordConfirm"`, - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - "OnAdminBeforeCreateRequest": 1, - "OnAdminAfterCreateRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestAdminUpdate(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPatch, - Url: "/api/admins/sbmbsdb40jyxf7h", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodPatch, - Url: "/api/admins/sbmbsdb40jyxf7h", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + missing admin", - Method: http.MethodPatch, - Url: "/api/admins/missing", - Body: strings.NewReader(``), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + empty data", - Method: http.MethodPatch, - Url: "/api/admins/sbmbsdb40jyxf7h", - Body: strings.NewReader(``), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"sbmbsdb40jyxf7h"`, - `"email":"test2@example.com"`, - `"avatar":2`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnAdminBeforeUpdateRequest": 1, - "OnAdminAfterUpdateRequest": 1, - }, - }, - { - Name: "authorized as admin + invalid formatted data", - Method: http.MethodPatch, - Url: "/api/admins/sbmbsdb40jyxf7h", - Body: strings.NewReader(`{`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + invalid data", - Method: http.MethodPatch, - Url: "/api/admins/sbmbsdb40jyxf7h", - Body: strings.NewReader(`{ - "email":"test@example.com", - "password":"1234", - "passwordConfirm":"4321", - "avatar":99 - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"avatar":{"code":"validation_max_less_equal_than_required"`, - `"email":{"code":"validation_admin_email_exists"`, - `"password":{"code":"validation_length_out_of_range"`, - `"passwordConfirm":{"code":"validation_values_mismatch"`, - }, - }, - { - Method: http.MethodPatch, - Url: "/api/admins/sbmbsdb40jyxf7h", - Body: strings.NewReader(`{ - "email":"testnew@example.com", - "password":"1234567891", - "passwordConfirm":"1234567891", - "avatar":5 - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"sbmbsdb40jyxf7h"`, - `"email":"testnew@example.com"`, - `"avatar":5`, - }, - NotExpectedContent: []string{ - `"password"`, - `"passwordConfirm"`, - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnAdminBeforeUpdateRequest": 1, - "OnAdminAfterUpdateRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/api_error.go b/apis/api_error.go deleted file mode 100644 index f5f8239131bbd39332e25077891088e0ec1f8699..0000000000000000000000000000000000000000 --- a/apis/api_error.go +++ /dev/null @@ -1,108 +0,0 @@ -package apis - -import ( - "net/http" - "strings" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/tools/inflector" -) - -// ApiError defines the struct for a basic api error response. -type ApiError struct { - Code int `json:"code"` - Message string `json:"message"` - Data map[string]any `json:"data"` - - // stores unformatted error data (could be an internal error, text, etc.) - rawData any -} - -// Error makes it compatible with the `error` interface. -func (e *ApiError) Error() string { - return e.Message -} - -// RawData returns the unformatted error data (could be an internal error, text, etc.) -func (e *ApiError) RawData() any { - return e.rawData -} - -// NewNotFoundError creates and returns 404 `ApiError`. -func NewNotFoundError(message string, data any) *ApiError { - if message == "" { - message = "The requested resource wasn't found." - } - - return NewApiError(http.StatusNotFound, message, data) -} - -// NewBadRequestError creates and returns 400 `ApiError`. -func NewBadRequestError(message string, data any) *ApiError { - if message == "" { - message = "Something went wrong while processing your request." - } - - return NewApiError(http.StatusBadRequest, message, data) -} - -// NewForbiddenError creates and returns 403 `ApiError`. -func NewForbiddenError(message string, data any) *ApiError { - if message == "" { - message = "You are not allowed to perform this request." - } - - return NewApiError(http.StatusForbidden, message, data) -} - -// NewUnauthorizedError creates and returns 401 `ApiError`. -func NewUnauthorizedError(message string, data any) *ApiError { - if message == "" { - message = "Missing or invalid authentication token." - } - - return NewApiError(http.StatusUnauthorized, message, data) -} - -// NewApiError creates and returns new normalized `ApiError` instance. -func NewApiError(status int, message string, data any) *ApiError { - message = inflector.Sentenize(message) - - formattedData := map[string]any{} - - if v, ok := data.(validation.Errors); ok { - formattedData = resolveValidationErrors(v) - } - - return &ApiError{ - rawData: data, - Data: formattedData, - Code: status, - Message: strings.TrimSpace(message), - } -} - -func resolveValidationErrors(validationErrors validation.Errors) map[string]any { - result := map[string]any{} - - // extract from each validation error its error code and message. - for name, err := range validationErrors { - // check for nested errors - if nestedErrs, ok := err.(validation.Errors); ok { - result[name] = resolveValidationErrors(nestedErrs) - continue - } - - errCode := "validation_invalid_value" // default - if errObj, ok := err.(validation.ErrorObject); ok { - errCode = errObj.Code() - } - - result[name] = map[string]string{ - "code": errCode, - "message": inflector.Sentenize(err.Error()), - } - } - - return result -} diff --git a/apis/api_error_test.go b/apis/api_error_test.go deleted file mode 100644 index c9744f4b935c531f206e83f4fa259c2da039908a..0000000000000000000000000000000000000000 --- a/apis/api_error_test.go +++ /dev/null @@ -1,150 +0,0 @@ -package apis_test - -import ( - "encoding/json" - "errors" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/apis" -) - -func TestNewApiErrorWithRawData(t *testing.T) { - e := apis.NewApiError( - 300, - "message_test", - "rawData_test", - ) - - result, _ := json.Marshal(e) - expected := `{"code":300,"message":"Message_test.","data":{}}` - - if string(result) != expected { - t.Errorf("Expected %v, got %v", expected, string(result)) - } - - if e.Error() != "Message_test." { - t.Errorf("Expected %q, got %q", "Message_test.", e.Error()) - } - - if e.RawData() != "rawData_test" { - t.Errorf("Expected rawData %v, got %v", "rawData_test", e.RawData()) - } -} - -func TestNewApiErrorWithValidationData(t *testing.T) { - e := apis.NewApiError( - 300, - "message_test", - validation.Errors{ - "err1": errors.New("test error"), - "err2": validation.ErrRequired, - "err3": validation.Errors{ - "sub1": errors.New("test error"), - "sub2": validation.ErrRequired, - "sub3": validation.Errors{ - "sub11": validation.ErrRequired, - }, - }, - }, - ) - - result, _ := json.Marshal(e) - expected := `{"code":300,"message":"Message_test.","data":{"err1":{"code":"validation_invalid_value","message":"Test error."},"err2":{"code":"validation_required","message":"Cannot be blank."},"err3":{"sub1":{"code":"validation_invalid_value","message":"Test error."},"sub2":{"code":"validation_required","message":"Cannot be blank."},"sub3":{"sub11":{"code":"validation_required","message":"Cannot be blank."}}}}}` - - if string(result) != expected { - t.Errorf("Expected %v, got %v", expected, string(result)) - } - - if e.Error() != "Message_test." { - t.Errorf("Expected %q, got %q", "Message_test.", e.Error()) - } - - if e.RawData() == nil { - t.Error("Expected non-nil rawData") - } -} - -func TestNewNotFoundError(t *testing.T) { - scenarios := []struct { - message string - data any - expected string - }{ - {"", nil, `{"code":404,"message":"The requested resource wasn't found.","data":{}}`}, - {"demo", "rawData_test", `{"code":404,"message":"Demo.","data":{}}`}, - {"demo", validation.Errors{"err1": errors.New("test error")}, `{"code":404,"message":"Demo.","data":{"err1":{"code":"validation_invalid_value","message":"Test error."}}}`}, - } - - for i, scenario := range scenarios { - e := apis.NewNotFoundError(scenario.message, scenario.data) - result, _ := json.Marshal(e) - - if string(result) != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, string(result)) - } - } -} - -func TestNewBadRequestError(t *testing.T) { - scenarios := []struct { - message string - data any - expected string - }{ - {"", nil, `{"code":400,"message":"Something went wrong while processing your request.","data":{}}`}, - {"demo", "rawData_test", `{"code":400,"message":"Demo.","data":{}}`}, - {"demo", validation.Errors{"err1": errors.New("test error")}, `{"code":400,"message":"Demo.","data":{"err1":{"code":"validation_invalid_value","message":"Test error."}}}`}, - } - - for i, scenario := range scenarios { - e := apis.NewBadRequestError(scenario.message, scenario.data) - result, _ := json.Marshal(e) - - if string(result) != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, string(result)) - } - } -} - -func TestNewForbiddenError(t *testing.T) { - scenarios := []struct { - message string - data any - expected string - }{ - {"", nil, `{"code":403,"message":"You are not allowed to perform this request.","data":{}}`}, - {"demo", "rawData_test", `{"code":403,"message":"Demo.","data":{}}`}, - {"demo", validation.Errors{"err1": errors.New("test error")}, `{"code":403,"message":"Demo.","data":{"err1":{"code":"validation_invalid_value","message":"Test error."}}}`}, - } - - for i, scenario := range scenarios { - e := apis.NewForbiddenError(scenario.message, scenario.data) - result, _ := json.Marshal(e) - - if string(result) != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, string(result)) - } - } -} - -func TestNewUnauthorizedError(t *testing.T) { - scenarios := []struct { - message string - data any - expected string - }{ - {"", nil, `{"code":401,"message":"Missing or invalid authentication token.","data":{}}`}, - {"demo", "rawData_test", `{"code":401,"message":"Demo.","data":{}}`}, - {"demo", validation.Errors{"err1": errors.New("test error")}, `{"code":401,"message":"Demo.","data":{"err1":{"code":"validation_invalid_value","message":"Test error."}}}`}, - } - - for i, scenario := range scenarios { - e := apis.NewUnauthorizedError(scenario.message, scenario.data) - result, _ := json.Marshal(e) - - if string(result) != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, string(result)) - } - } -} diff --git a/apis/base.go b/apis/base.go deleted file mode 100644 index 4e2e12c10c7f4927a3e24a3b466beff5fd4c06b7..0000000000000000000000000000000000000000 --- a/apis/base.go +++ /dev/null @@ -1,231 +0,0 @@ -// Package apis implements the default PocketBase api services and middlewares. -package apis - -import ( - "errors" - "fmt" - "io/fs" - "log" - "net/http" - "net/url" - "path/filepath" - "strings" - - "github.com/labstack/echo/v5" - "github.com/labstack/echo/v5/middleware" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/ui" - "github.com/spf13/cast" -) - -const trailedAdminPath = "/_/" - -// InitApi creates a configured echo instance with registered -// system and app specific routes and middlewares. -func InitApi(app core.App) (*echo.Echo, error) { - e := echo.New() - e.Debug = app.IsDebug() - - // default middlewares - e.Pre(middleware.RemoveTrailingSlashWithConfig(middleware.RemoveTrailingSlashConfig{ - Skipper: func(c echo.Context) bool { - // ignore Admin UI route(s) - return strings.HasPrefix(c.Request().URL.Path, trailedAdminPath) - }, - })) - e.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{DisablePrintStack: true})) - e.Use(middleware.Secure()) - e.Use(LoadAuthContext(app)) - - // custom error handler - e.HTTPErrorHandler = func(c echo.Context, err error) { - if c.Response().Committed { - return - } - - var apiErr *ApiError - - switch v := err.(type) { - case *echo.HTTPError: - if v.Internal != nil && app.IsDebug() { - log.Println(v.Internal) - } - msg := fmt.Sprintf("%v", v.Message) - apiErr = NewApiError(v.Code, msg, v) - case *ApiError: - if app.IsDebug() && v.RawData() != nil { - log.Println(v.RawData()) - } - apiErr = v - default: - if err != nil && app.IsDebug() { - log.Println(err) - } - apiErr = NewBadRequestError("", err) - } - - event := &core.ApiErrorEvent{ - HttpContext: c, - Error: apiErr, - } - - // send error response - hookErr := app.OnBeforeApiError().Trigger(event, func(e *core.ApiErrorEvent) error { - // @see https://github.com/labstack/echo/issues/608 - if e.HttpContext.Request().Method == http.MethodHead { - return e.HttpContext.NoContent(apiErr.Code) - } - - return e.HttpContext.JSON(apiErr.Code, apiErr) - }) - - // truly rare case; eg. client already disconnected - if hookErr != nil && app.IsDebug() { - log.Println(hookErr) - } - - app.OnAfterApiError().Trigger(event) - } - - // admin ui routes - bindStaticAdminUI(app, e) - - // default routes - api := e.Group("/api") - bindSettingsApi(app, api) - bindAdminApi(app, api) - bindCollectionApi(app, api) - bindRecordCrudApi(app, api) - bindRecordAuthApi(app, api) - bindFileApi(app, api) - bindRealtimeApi(app, api) - bindLogsApi(app, api) - - // trigger the custom BeforeServe hook for the created api router - // allowing users to further adjust its options or register new routes - serveEvent := &core.ServeEvent{ - App: app, - Router: e, - } - if err := app.OnBeforeServe().Trigger(serveEvent); err != nil { - return nil, err - } - - // catch all any route - api.Any("/*", func(c echo.Context) error { - return echo.ErrNotFound - }, ActivityLogger(app)) - - return e, nil -} - -// StaticDirectoryHandler is similar to `echo.StaticDirectoryHandler` -// but without the directory redirect which conflicts with RemoveTrailingSlash middleware. -// -// If a file resource is missing and indexFallback is set, the request -// will be forwarded to the base index.html (useful also for SPA). -// -// @see https://github.com/labstack/echo/issues/2211 -func StaticDirectoryHandler(fileSystem fs.FS, indexFallback bool) echo.HandlerFunc { - return func(c echo.Context) error { - p := c.PathParam("*") - - // escape url path - tmpPath, err := url.PathUnescape(p) - if err != nil { - return fmt.Errorf("failed to unescape path variable: %w", err) - } - p = tmpPath - - // fs.FS.Open() already assumes that file names are relative to FS root path and considers name with prefix `/` as invalid - name := filepath.ToSlash(filepath.Clean(strings.TrimPrefix(p, "/"))) - - fileErr := c.FileFS(name, fileSystem) - - if fileErr != nil && indexFallback && errors.Is(fileErr, echo.ErrNotFound) { - return c.FileFS("index.html", fileSystem) - } - - return fileErr - } -} - -// bindStaticAdminUI registers the endpoints that serves the static admin UI. -func bindStaticAdminUI(app core.App, e *echo.Echo) error { - // redirect to trailing slash to ensure that relative urls will still work properly - e.GET( - strings.TrimRight(trailedAdminPath, "/"), - func(c echo.Context) error { - return c.Redirect(http.StatusTemporaryRedirect, trailedAdminPath) - }, - ) - - // serves static files from the /ui/dist directory - // (similar to echo.StaticFS but with gzip middleware enabled) - e.GET( - trailedAdminPath+"*", - echo.StaticDirectoryHandler(ui.DistDirFS, false), - installerRedirect(app), - middleware.Gzip(), - ) - - return nil -} - -const totalAdminsCacheKey = "totalAdmins" - -func updateTotalAdminsCache(app core.App) error { - total, err := app.Dao().TotalAdmins() - if err != nil { - return err - } - - app.Cache().Set(totalAdminsCacheKey, total) - - return nil -} - -// installerRedirect redirects the user to the installer admin UI page -// when the application needs some preliminary configurations to be done. -func installerRedirect(app core.App) echo.MiddlewareFunc { - // keep totalAdminsCacheKey value up-to-date - app.OnAdminAfterCreateRequest().Add(func(data *core.AdminCreateEvent) error { - return updateTotalAdminsCache(app) - }) - app.OnAdminAfterDeleteRequest().Add(func(data *core.AdminDeleteEvent) error { - return updateTotalAdminsCache(app) - }) - - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - // skip redirect checks for non-root level index.html requests - path := c.Request().URL.Path - if path != trailedAdminPath && path != trailedAdminPath+"index.html" { - return next(c) - } - - // load into cache (if not already) - if !app.Cache().Has(totalAdminsCacheKey) { - if err := updateTotalAdminsCache(app); err != nil { - return err - } - } - - totalAdmins := cast.ToInt(app.Cache().Get(totalAdminsCacheKey)) - - _, hasInstallerParam := c.Request().URL.Query()["installer"] - - if totalAdmins == 0 && !hasInstallerParam { - // redirect to the installer page - return c.Redirect(http.StatusTemporaryRedirect, trailedAdminPath+"?installer#") - } - - if totalAdmins != 0 && hasInstallerParam { - // redirect to the home page - return c.Redirect(http.StatusTemporaryRedirect, trailedAdminPath+"#/") - } - - return next(c) - } - } -} diff --git a/apis/base_test.go b/apis/base_test.go deleted file mode 100644 index b676b65942842ebf6806917677b9996018336a5e..0000000000000000000000000000000000000000 --- a/apis/base_test.go +++ /dev/null @@ -1,122 +0,0 @@ -package apis_test - -import ( - "errors" - "net/http" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/apis" - "github.com/pocketbase/pocketbase/tests" -) - -func Test404(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Method: http.MethodGet, - Url: "/api/missing", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Method: http.MethodPost, - Url: "/api/missing", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Method: http.MethodPatch, - Url: "/api/missing", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Method: http.MethodDelete, - Url: "/api/missing", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Method: http.MethodHead, - Url: "/api/missing", - ExpectedStatus: 404, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestCustomRoutesAndErrorsHandling(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "custom route", - Method: http.MethodGet, - Url: "/custom", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/custom", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "route with HTTPError", - Method: http.MethodGet, - Url: "/http-error", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/http-error", - Handler: func(c echo.Context) error { - return echo.ErrBadRequest - }, - }) - }, - ExpectedStatus: 400, - ExpectedContent: []string{`{"code":400,"message":"Bad Request.","data":{}}`}, - }, - { - Name: "route with api error", - Method: http.MethodGet, - Url: "/api-error", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api-error", - Handler: func(c echo.Context) error { - return apis.NewApiError(500, "test message", errors.New("internal_test")) - }, - }) - }, - ExpectedStatus: 500, - ExpectedContent: []string{`{"code":500,"message":"Test message.","data":{}}`}, - }, - { - Name: "route with plain error", - Method: http.MethodGet, - Url: "/plain-error", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/plain-error", - Handler: func(c echo.Context) error { - return errors.New("Test error") - }, - }) - }, - ExpectedStatus: 400, - ExpectedContent: []string{`{"code":400,"message":"Something went wrong while processing your request.","data":{}}`}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/collection.go b/apis/collection.go deleted file mode 100644 index 861de01b03a05973bf459ac7b0ba4c701888505b..0000000000000000000000000000000000000000 --- a/apis/collection.go +++ /dev/null @@ -1,204 +0,0 @@ -package apis - -import ( - "net/http" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/search" -) - -// bindCollectionApi registers the collection api endpoints and the corresponding handlers. -func bindCollectionApi(app core.App, rg *echo.Group) { - api := collectionApi{app: app} - - subGroup := rg.Group("/collections", ActivityLogger(app), RequireAdminAuth()) - subGroup.GET("", api.list) - subGroup.POST("", api.create) - subGroup.GET("/:collection", api.view) - subGroup.PATCH("/:collection", api.update) - subGroup.DELETE("/:collection", api.delete) - subGroup.PUT("/import", api.bulkImport) -} - -type collectionApi struct { - app core.App -} - -func (api *collectionApi) list(c echo.Context) error { - fieldResolver := search.NewSimpleFieldResolver( - "id", "created", "updated", "name", "system", "type", - ) - - collections := []*models.Collection{} - - result, err := search.NewProvider(fieldResolver). - Query(api.app.Dao().CollectionQuery()). - ParseAndExec(c.QueryString(), &collections) - - if err != nil { - return NewBadRequestError("", err) - } - - event := &core.CollectionsListEvent{ - HttpContext: c, - Collections: collections, - Result: result, - } - - return api.app.OnCollectionsListRequest().Trigger(event, func(e *core.CollectionsListEvent) error { - return e.HttpContext.JSON(http.StatusOK, e.Result) - }) -} - -func (api *collectionApi) view(c echo.Context) error { - collection, err := api.app.Dao().FindCollectionByNameOrId(c.PathParam("collection")) - if err != nil || collection == nil { - return NewNotFoundError("", err) - } - - event := &core.CollectionViewEvent{ - HttpContext: c, - Collection: collection, - } - - return api.app.OnCollectionViewRequest().Trigger(event, func(e *core.CollectionViewEvent) error { - return e.HttpContext.JSON(http.StatusOK, e.Collection) - }) -} - -func (api *collectionApi) create(c echo.Context) error { - collection := &models.Collection{} - - form := forms.NewCollectionUpsert(api.app, collection) - - // load request - if err := c.Bind(form); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - event := &core.CollectionCreateEvent{ - HttpContext: c, - Collection: collection, - } - - // create the collection - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnCollectionBeforeCreateRequest().Trigger(event, func(e *core.CollectionCreateEvent) error { - if err := next(); err != nil { - return NewBadRequestError("Failed to create the collection.", err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Collection) - }) - } - }) - - if submitErr == nil { - api.app.OnCollectionAfterCreateRequest().Trigger(event) - } - - return submitErr -} - -func (api *collectionApi) update(c echo.Context) error { - collection, err := api.app.Dao().FindCollectionByNameOrId(c.PathParam("collection")) - if err != nil || collection == nil { - return NewNotFoundError("", err) - } - - form := forms.NewCollectionUpsert(api.app, collection) - - // load request - if err := c.Bind(form); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - event := &core.CollectionUpdateEvent{ - HttpContext: c, - Collection: collection, - } - - // update the collection - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnCollectionBeforeUpdateRequest().Trigger(event, func(e *core.CollectionUpdateEvent) error { - if err := next(); err != nil { - return NewBadRequestError("Failed to update the collection.", err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Collection) - }) - } - }) - - if submitErr == nil { - api.app.OnCollectionAfterUpdateRequest().Trigger(event) - } - - return submitErr -} - -func (api *collectionApi) delete(c echo.Context) error { - collection, err := api.app.Dao().FindCollectionByNameOrId(c.PathParam("collection")) - if err != nil || collection == nil { - return NewNotFoundError("", err) - } - - event := &core.CollectionDeleteEvent{ - HttpContext: c, - Collection: collection, - } - - handlerErr := api.app.OnCollectionBeforeDeleteRequest().Trigger(event, func(e *core.CollectionDeleteEvent) error { - if err := api.app.Dao().DeleteCollection(e.Collection); err != nil { - return NewBadRequestError("Failed to delete collection. Make sure that the collection is not referenced by other collections.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - - if handlerErr == nil { - api.app.OnCollectionAfterDeleteRequest().Trigger(event) - } - - return handlerErr -} - -func (api *collectionApi) bulkImport(c echo.Context) error { - form := forms.NewCollectionsImport(api.app) - - // load request data - if err := c.Bind(form); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - event := &core.CollectionsImportEvent{ - HttpContext: c, - Collections: form.Collections, - } - - // import collections - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnCollectionsBeforeImportRequest().Trigger(event, func(e *core.CollectionsImportEvent) error { - form.Collections = e.Collections // ensures that the form always has the latest changes - - if err := next(); err != nil { - return NewBadRequestError("Failed to import the submitted collections.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - } - }) - - if submitErr == nil { - api.app.OnCollectionsAfterImportRequest().Trigger(event) - } - - return submitErr -} diff --git a/apis/collection_test.go b/apis/collection_test.go deleted file mode 100644 index 1ac9b49e2315402a5e4899f3e66a53a084083387..0000000000000000000000000000000000000000 --- a/apis/collection_test.go +++ /dev/null @@ -1,1022 +0,0 @@ -package apis_test - -import ( - "net/http" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestCollectionsList(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/collections", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodGet, - Url: "/api/collections", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin", - Method: http.MethodGet, - Url: "/api/collections", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":7`, - `"items":[{`, - `"id":"_pb_users_auth_"`, - `"id":"v851q4r790rhknl"`, - `"id":"kpv709sk2lqbqk8"`, - `"id":"wsmn24bux7wo113"`, - `"id":"sz5l5z67tg7gku0"`, - `"id":"wzlqyes4orhoygb"`, - `"id":"4d1blo5cuycfaca"`, - `"type":"auth"`, - `"type":"base"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionsListRequest": 1, - }, - }, - { - Name: "authorized as admin + paging and sorting", - Method: http.MethodGet, - Url: "/api/collections?page=2&perPage=2&sort=-created", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":2`, - `"perPage":2`, - `"totalItems":7`, - `"items":[{`, - `"id":"4d1blo5cuycfaca"`, - `"id":"wzlqyes4orhoygb"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionsListRequest": 1, - }, - }, - { - Name: "authorized as admin + invalid filter", - Method: http.MethodGet, - Url: "/api/collections?filter=invalidfield~'demo2'", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + valid filter", - Method: http.MethodGet, - Url: "/api/collections?filter=name~'demo'", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":4`, - `"items":[{`, - `"id":"wsmn24bux7wo113"`, - `"id":"sz5l5z67tg7gku0"`, - `"id":"wzlqyes4orhoygb"`, - `"id":"4d1blo5cuycfaca"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionsListRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestCollectionView(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/collections/demo1", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodGet, - Url: "/api/collections/demo1", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + nonexisting collection identifier", - Method: http.MethodGet, - Url: "/api/collections/missing", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + using the collection name", - Method: http.MethodGet, - Url: "/api/collections/demo1", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"wsmn24bux7wo113"`, - `"name":"demo1"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionViewRequest": 1, - }, - }, - { - Name: "authorized as admin + using the collection id", - Method: http.MethodGet, - Url: "/api/collections/wsmn24bux7wo113", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"wsmn24bux7wo113"`, - `"name":"demo1"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionViewRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestCollectionDelete(t *testing.T) { - ensureDeletedFiles := func(app *tests.TestApp, collectionId string) { - storageDir := filepath.Join(app.DataDir(), "storage", collectionId) - - entries, _ := os.ReadDir(storageDir) - if len(entries) != 0 { - t.Errorf("Expected empty/deleted dir, found %d", len(entries)) - } - } - - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodDelete, - Url: "/api/collections/demo1", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodDelete, - Url: "/api/collections/demo1", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + nonexisting collection identifier", - Method: http.MethodDelete, - Url: "/api/collections/missing", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + using the collection name", - Method: http.MethodDelete, - Url: "/api/collections/demo1", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeDelete": 1, - "OnModelAfterDelete": 1, - "OnCollectionBeforeDeleteRequest": 1, - "OnCollectionAfterDeleteRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - ensureDeletedFiles(app, "wsmn24bux7wo113") - }, - }, - { - Name: "authorized as admin + using the collection id", - Method: http.MethodDelete, - Url: "/api/collections/wsmn24bux7wo113", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeDelete": 1, - "OnModelAfterDelete": 1, - "OnCollectionBeforeDeleteRequest": 1, - "OnCollectionAfterDeleteRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - ensureDeletedFiles(app, "wsmn24bux7wo113") - }, - }, - { - Name: "authorized as admin + trying to delete a system collection", - Method: http.MethodDelete, - Url: "/api/collections/nologin", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - ExpectedEvents: map[string]int{ - "OnCollectionBeforeDeleteRequest": 1, - }, - }, - { - Name: "authorized as admin + trying to delete a referenced collection", - Method: http.MethodDelete, - Url: "/api/collections/demo2", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - ExpectedEvents: map[string]int{ - "OnCollectionBeforeDeleteRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestCollectionCreate(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPost, - Url: "/api/collections", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodPost, - Url: "/api/collections", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + empty data", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(``), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"name":{"code":"validation_required"`, - `"schema":{"code":"validation_required"`, - }, - }, - { - Name: "authorized as admin + invalid data (eg. existing name)", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(`{"name":"demo1","type":"base","schema":[{"type":"text","name":""}]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"name":{"code":"validation_collection_name_exists"`, - `"schema":{"0":{"name":{"code":"validation_required"`, - }, - }, - { - Name: "authorized as admin + valid data", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(`{"name":"new","type":"base","schema":[{"type":"text","id":"12345789","name":"test"}]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"name":"new"`, - `"type":"base"`, - `"system":false`, - `"schema":[{"system":false,"id":"12345789","name":"test","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}}]`, - `"options":{}`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - "OnCollectionBeforeCreateRequest": 1, - "OnCollectionAfterCreateRequest": 1, - }, - }, - { - Name: "creating auth collection without specified options", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(`{"name":"new","type":"auth","schema":[{"type":"text","id":"12345789","name":"test"}]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"name":"new"`, - `"type":"auth"`, - `"system":false`, - `"schema":[{"system":false,"id":"12345789","name":"test","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}}]`, - `"options":{"allowEmailAuth":false,"allowOAuth2Auth":false,"allowUsernameAuth":false,"exceptEmailDomains":null,"manageRule":null,"minPasswordLength":0,"onlyEmailDomains":null,"requireEmail":false}`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - "OnCollectionBeforeCreateRequest": 1, - "OnCollectionAfterCreateRequest": 1, - }, - }, - { - Name: "trying to create auth collection with reserved auth fields", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(`{ - "name":"new", - "type":"auth", - "schema":[ - {"type":"text","name":"email"}, - {"type":"text","name":"username"}, - {"type":"text","name":"verified"}, - {"type":"text","name":"emailVisibility"}, - {"type":"text","name":"lastResetSentAt"}, - {"type":"text","name":"lastVerificationSentAt"}, - {"type":"text","name":"tokenKey"}, - {"type":"text","name":"passwordHash"}, - {"type":"text","name":"password"}, - {"type":"text","name":"passwordConfirm"}, - {"type":"text","name":"oldPassword"} - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{"schema":{`, - `"0":{"name":{"code":"validation_reserved_auth_field_name"`, - `"1":{"name":{"code":"validation_reserved_auth_field_name"`, - `"2":{"name":{"code":"validation_reserved_auth_field_name"`, - `"3":{"name":{"code":"validation_reserved_auth_field_name"`, - `"4":{"name":{"code":"validation_reserved_auth_field_name"`, - `"5":{"name":{"code":"validation_reserved_auth_field_name"`, - `"6":{"name":{"code":"validation_reserved_auth_field_name"`, - `"7":{"name":{"code":"validation_reserved_auth_field_name"`, - `"8":{"name":{"code":"validation_reserved_auth_field_name"`, - }, - }, - { - Name: "creating base collection with reserved auth fields", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(`{ - "name":"new", - "type":"base", - "schema":[ - {"type":"text","name":"email"}, - {"type":"text","name":"username"}, - {"type":"text","name":"verified"}, - {"type":"text","name":"emailVisibility"}, - {"type":"text","name":"lastResetSentAt"}, - {"type":"text","name":"lastVerificationSentAt"}, - {"type":"text","name":"tokenKey"}, - {"type":"text","name":"passwordHash"}, - {"type":"text","name":"password"}, - {"type":"text","name":"passwordConfirm"}, - {"type":"text","name":"oldPassword"} - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"name":"new"`, - `"type":"base"`, - `"schema":[{`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - "OnCollectionBeforeCreateRequest": 1, - "OnCollectionAfterCreateRequest": 1, - }, - }, - { - Name: "trying to create base collection with reserved base fields", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(`{ - "name":"new", - "type":"base", - "schema":[ - {"type":"text","name":"id"}, - {"type":"text","name":"created"}, - {"type":"text","name":"updated"}, - {"type":"text","name":"expand"}, - {"type":"text","name":"collectionId"}, - {"type":"text","name":"collectionName"} - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{"schema":{`, - `"0":{"name":{"code":"validation_not_in_invalid`, - `"1":{"name":{"code":"validation_not_in_invalid`, - `"2":{"name":{"code":"validation_not_in_invalid`, - `"3":{"name":{"code":"validation_not_in_invalid`, - `"4":{"name":{"code":"validation_not_in_invalid`, - `"5":{"name":{"code":"validation_not_in_invalid`, - }, - }, - { - Name: "trying to create auth collection with invalid options", - Method: http.MethodPost, - Url: "/api/collections", - Body: strings.NewReader(`{ - "name":"new", - "type":"auth", - "schema":[{"type":"text","id":"12345789","name":"test"}], - "options":{"allowUsernameAuth": true} - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"options":{"minPasswordLength":{"code":"validation_required"`, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestCollectionUpdate(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPatch, - Url: "/api/collections/demo1", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodPatch, - Url: "/api/collections/demo1", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + missing collection", - Method: http.MethodPatch, - Url: "/api/collections/missing", - Body: strings.NewReader(`{}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + empty body", - Method: http.MethodPatch, - Url: "/api/collections/demo1", - Body: strings.NewReader(`{}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"wsmn24bux7wo113"`, - `"name":"demo1"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionAfterUpdateRequest": 1, - "OnCollectionBeforeUpdateRequest": 1, - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - }, - }, - { - Name: "authorized as admin + invalid data (eg. existing name)", - Method: http.MethodPatch, - Url: "/api/collections/demo1", - Body: strings.NewReader(`{ - "name":"demo2", - "type":"auth" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"name":{"code":"validation_collection_name_exists"`, - `"type":{"code":"validation_collection_type_change"`, - }, - }, - { - Name: "authorized as admin + valid data", - Method: http.MethodPatch, - Url: "/api/collections/demo1", - Body: strings.NewReader(`{"name":"new"}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"name":"new"`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnCollectionBeforeUpdateRequest": 1, - "OnCollectionAfterUpdateRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - // check if the record table was renamed - if !app.Dao().HasTable("new") { - t.Fatal("Couldn't find record table 'new'.") - } - }, - }, - { - Name: "trying to update auth collection with reserved auth fields", - Method: http.MethodPatch, - Url: "/api/collections/users", - Body: strings.NewReader(`{ - "schema":[ - {"type":"text","name":"email"}, - {"type":"text","name":"username"}, - {"type":"text","name":"verified"}, - {"type":"text","name":"emailVisibility"}, - {"type":"text","name":"lastResetSentAt"}, - {"type":"text","name":"lastVerificationSentAt"}, - {"type":"text","name":"tokenKey"}, - {"type":"text","name":"passwordHash"}, - {"type":"text","name":"password"}, - {"type":"text","name":"passwordConfirm"}, - {"type":"text","name":"oldPassword"} - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{"schema":{`, - `"0":{"name":{"code":"validation_reserved_auth_field_name"`, - `"1":{"name":{"code":"validation_reserved_auth_field_name"`, - `"2":{"name":{"code":"validation_reserved_auth_field_name"`, - `"3":{"name":{"code":"validation_reserved_auth_field_name"`, - `"4":{"name":{"code":"validation_reserved_auth_field_name"`, - `"5":{"name":{"code":"validation_reserved_auth_field_name"`, - `"6":{"name":{"code":"validation_reserved_auth_field_name"`, - `"7":{"name":{"code":"validation_reserved_auth_field_name"`, - `"8":{"name":{"code":"validation_reserved_auth_field_name"`, - }, - }, - { - Name: "updating base collection with reserved auth fields", - Method: http.MethodPatch, - Url: "/api/collections/demo1", - Body: strings.NewReader(`{ - "schema":[ - {"type":"text","name":"email"}, - {"type":"text","name":"username"}, - {"type":"text","name":"verified"}, - {"type":"text","name":"emailVisibility"}, - {"type":"text","name":"lastResetSentAt"}, - {"type":"text","name":"lastVerificationSentAt"}, - {"type":"text","name":"tokenKey"}, - {"type":"text","name":"passwordHash"}, - {"type":"text","name":"password"}, - {"type":"text","name":"passwordConfirm"}, - {"type":"text","name":"oldPassword"} - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"name":"demo1"`, - `"type":"base"`, - `"schema":[{`, - `"email"`, - `"username"`, - `"verified"`, - `"emailVisibility"`, - `"lastResetSentAt"`, - `"lastVerificationSentAt"`, - `"tokenKey"`, - `"passwordHash"`, - `"password"`, - `"passwordConfirm"`, - `"oldPassword"`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnCollectionBeforeUpdateRequest": 1, - "OnCollectionAfterUpdateRequest": 1, - }, - }, - { - Name: "trying to update base collection with reserved base fields", - Method: http.MethodPatch, - Url: "/api/collections/demo1", - Body: strings.NewReader(`{ - "name":"new", - "type":"base", - "schema":[ - {"type":"text","name":"id"}, - {"type":"text","name":"created"}, - {"type":"text","name":"updated"}, - {"type":"text","name":"expand"}, - {"type":"text","name":"collectionId"}, - {"type":"text","name":"collectionName"} - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{"schema":{`, - `"0":{"name":{"code":"validation_not_in_invalid`, - `"1":{"name":{"code":"validation_not_in_invalid`, - `"2":{"name":{"code":"validation_not_in_invalid`, - `"3":{"name":{"code":"validation_not_in_invalid`, - `"4":{"name":{"code":"validation_not_in_invalid`, - `"5":{"name":{"code":"validation_not_in_invalid`, - }, - }, - { - Name: "trying to update auth collection with invalid options", - Method: http.MethodPatch, - Url: "/api/collections/users", - Body: strings.NewReader(`{ - "options":{"minPasswordLength": 4} - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"options":{"minPasswordLength":{"code":"validation_min_greater_equal_than_required"`, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestCollectionImport(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPut, - Url: "/api/collections/import", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as user", - Method: http.MethodPut, - Url: "/api/collections/import", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin + empty collections", - Method: http.MethodPut, - Url: "/api/collections/import", - Body: strings.NewReader(`{"collections":[]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"collections":{"code":"validation_required"`, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - collections := []*models.Collection{} - if err := app.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - expected := 7 - if len(collections) != expected { - t.Fatalf("Expected %d collections, got %d", expected, len(collections)) - } - }, - }, - { - Name: "authorized as admin + trying to delete system collections", - Method: http.MethodPut, - Url: "/api/collections/import", - Body: strings.NewReader(`{"deleteMissing": true, "collections":[{"name": "test123"}]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"collections":{"code":"collections_import_failure"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionsBeforeImportRequest": 1, - "OnModelBeforeDelete": 6, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - collections := []*models.Collection{} - if err := app.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - expected := 7 - if len(collections) != expected { - t.Fatalf("Expected %d collections, got %d", expected, len(collections)) - } - }, - }, - { - Name: "authorized as admin + collections validator failure", - Method: http.MethodPut, - Url: "/api/collections/import", - Body: strings.NewReader(`{ - "collections":[ - { - "name": "import1", - "schema": [ - { - "id": "koih1lqx", - "name": "test", - "type": "text" - } - ] - }, - {"name": "import2"} - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"collections":{"code":"collections_import_validate_failure"`, - }, - ExpectedEvents: map[string]int{ - "OnCollectionsBeforeImportRequest": 1, - "OnModelBeforeCreate": 2, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - collections := []*models.Collection{} - if err := app.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - expected := 7 - if len(collections) != expected { - t.Fatalf("Expected %d collections, got %d", expected, len(collections)) - } - }, - }, - { - Name: "authorized as admin + successful collections save", - Method: http.MethodPut, - Url: "/api/collections/import", - Body: strings.NewReader(`{ - "collections":[ - { - "name": "import1", - "schema": [ - { - "id": "koih1lqx", - "name": "test", - "type": "text" - } - ] - }, - { - "name": "import2", - "schema": [ - { - "id": "koih1lqx", - "name": "test", - "type": "text" - } - ] - }, - { - "name": "auth_without_schema", - "type": "auth" - } - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnCollectionsBeforeImportRequest": 1, - "OnCollectionsAfterImportRequest": 1, - "OnModelBeforeCreate": 3, - "OnModelAfterCreate": 3, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - collections := []*models.Collection{} - if err := app.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - expected := 10 - if len(collections) != expected { - t.Fatalf("Expected %d collections, got %d", expected, len(collections)) - } - }, - }, - { - Name: "authorized as admin + successful collections save and old non-system collections deletion", - Method: http.MethodPut, - Url: "/api/collections/import", - Body: strings.NewReader(`{ - "deleteMissing": true, - "collections":[ - { - "name": "new_import", - "schema": [ - { - "id": "koih1lqx", - "name": "test", - "type": "text" - } - ] - }, - { - "id": "kpv709sk2lqbqk8", - "system": true, - "name": "nologin", - "type": "auth", - "options": { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": [], - "manageRule": "@request.auth.collectionName = 'users'", - "minPasswordLength": 8, - "onlyEmailDomains": [], - "requireEmail": true - }, - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "schema": [ - { - "id": "x8zzktwe", - "name": "name", - "type": "text", - "system": false, - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ] - }, - { - "id":"wsmn24bux7wo113", - "name":"demo1", - "schema":[ - { - "id":"_2hlxbmp", - "name":"title", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - } - ] - } - ] - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnCollectionsAfterImportRequest": 1, - "OnCollectionsBeforeImportRequest": 1, - "OnModelBeforeDelete": 5, - "OnModelAfterDelete": 5, - "OnModelBeforeUpdate": 2, - "OnModelAfterUpdate": 2, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - collections := []*models.Collection{} - if err := app.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - expected := 3 - if len(collections) != expected { - t.Fatalf("Expected %d collections, got %d", expected, len(collections)) - } - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/file.go b/apis/file.go deleted file mode 100644 index dd18107427bb2fd7d13d0cc5ab5cb7ee101cb410..0000000000000000000000000000000000000000 --- a/apis/file.go +++ /dev/null @@ -1,105 +0,0 @@ -package apis - -import ( - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/list" -) - -var imageContentTypes = []string{"image/png", "image/jpg", "image/jpeg", "image/gif"} -var defaultThumbSizes = []string{"100x100"} - -// bindFileApi registers the file api endpoints and the corresponding handlers. -func bindFileApi(app core.App, rg *echo.Group) { - api := fileApi{app: app} - - subGroup := rg.Group("/files", ActivityLogger(app)) - subGroup.GET("/:collection/:recordId/:filename", api.download, LoadCollectionContext(api.app)) -} - -type fileApi struct { - app core.App -} - -func (api *fileApi) download(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("", nil) - } - - recordId := c.PathParam("recordId") - if recordId == "" { - return NewNotFoundError("", nil) - } - - record, err := api.app.Dao().FindRecordById(collection.Id, recordId) - if err != nil { - return NewNotFoundError("", err) - } - - filename := c.PathParam("filename") - - fileField := record.FindFileFieldByFile(filename) - if fileField == nil { - return NewNotFoundError("", nil) - } - options, _ := fileField.Options.(*schema.FileOptions) - - fs, err := api.app.NewFilesystem() - if err != nil { - return NewBadRequestError("Filesystem initialization failure.", err) - } - defer fs.Close() - - originalPath := record.BaseFilesPath() + "/" + filename - servedPath := originalPath - servedName := filename - - // check for valid thumb size param - thumbSize := c.QueryParam("thumb") - if thumbSize != "" && (list.ExistInSlice(thumbSize, defaultThumbSizes) || list.ExistInSlice(thumbSize, options.Thumbs)) { - // extract the original file meta attributes and check it existence - oAttrs, oAttrsErr := fs.Attributes(originalPath) - if oAttrsErr != nil { - return NewNotFoundError("", err) - } - - // check if it is an image - if list.ExistInSlice(oAttrs.ContentType, imageContentTypes) { - // add thumb size as file suffix - servedName = thumbSize + "_" + filename - servedPath = record.BaseFilesPath() + "/thumbs_" + filename + "/" + servedName - - // check if the thumb exists: - // - if doesn't exist - create a new thumb with the specified thumb size - // - if exists - compare last modified dates to determine whether the thumb should be recreated - tAttrs, tAttrsErr := fs.Attributes(servedPath) - if tAttrsErr != nil || oAttrs.ModTime.After(tAttrs.ModTime) { - if err := fs.CreateThumb(originalPath, servedPath, thumbSize); err != nil { - servedPath = originalPath // fallback to the original - } - } - } - } - - event := &core.FileDownloadEvent{ - HttpContext: c, - Record: record, - Collection: collection, - FileField: fileField, - ServedPath: servedPath, - ServedName: servedName, - } - - return api.app.OnFileDownloadRequest().Trigger(event, func(e *core.FileDownloadEvent) error { - res := e.HttpContext.Response() - req := e.HttpContext.Request() - if err := fs.Serve(res, req, e.ServedPath, e.ServedName); err != nil { - return NewNotFoundError("", err) - } - - return nil - }) -} diff --git a/apis/file_test.go b/apis/file_test.go deleted file mode 100644 index a2f10735a6216a6d894e67e655eba3e37dbfd5e6..0000000000000000000000000000000000000000 --- a/apis/file_test.go +++ /dev/null @@ -1,184 +0,0 @@ -package apis_test - -import ( - "net/http" - "os" - "path" - "path/filepath" - "runtime" - "testing" - - "github.com/pocketbase/pocketbase/tests" -) - -func TestFileDownload(t *testing.T) { - _, currentFile, _, _ := runtime.Caller(0) - dataDirRelPath := "../tests/data/" - - testFilePath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt") - testImgPath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png") - testThumbCropCenterPath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50_300_1SEi6Q6U72.png") - testThumbCropTopPath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50t_300_1SEi6Q6U72.png") - testThumbCropBottomPath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50b_300_1SEi6Q6U72.png") - testThumbFitPath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50f_300_1SEi6Q6U72.png") - testThumbZeroWidthPath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/0x50_300_1SEi6Q6U72.png") - testThumbZeroHeightPath := filepath.Join(path.Dir(currentFile), dataDirRelPath, "storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x0_300_1SEi6Q6U72.png") - - testFile, fileErr := os.ReadFile(testFilePath) - if fileErr != nil { - t.Fatal(fileErr) - } - - testImg, imgErr := os.ReadFile(testImgPath) - if imgErr != nil { - t.Fatal(imgErr) - } - - testThumbCropCenter, thumbErr := os.ReadFile(testThumbCropCenterPath) - if thumbErr != nil { - t.Fatal(thumbErr) - } - - testThumbCropTop, thumbErr := os.ReadFile(testThumbCropTopPath) - if thumbErr != nil { - t.Fatal(thumbErr) - } - - testThumbCropBottom, thumbErr := os.ReadFile(testThumbCropBottomPath) - if thumbErr != nil { - t.Fatal(thumbErr) - } - - testThumbFit, thumbErr := os.ReadFile(testThumbFitPath) - if thumbErr != nil { - t.Fatal(thumbErr) - } - - testThumbZeroWidth, thumbErr := os.ReadFile(testThumbZeroWidthPath) - if thumbErr != nil { - t.Fatal(thumbErr) - } - - testThumbZeroHeight, thumbErr := os.ReadFile(testThumbZeroHeightPath) - if thumbErr != nil { - t.Fatal(thumbErr) - } - - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodGet, - Url: "/api/files/missing/4q1xlclmfloku33/300_1SEi6Q6U72.png", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "missing record", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/missing/300_1SEi6Q6U72.png", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "missing file", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/missing.png", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "existing image", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png", - ExpectedStatus: 200, - ExpectedContent: []string{string(testImg)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing image - missing thumb (should fallback to the original)", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png?thumb=999x999", - ExpectedStatus: 200, - ExpectedContent: []string{string(testImg)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing image - existing thumb (crop center)", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png?thumb=70x50", - ExpectedStatus: 200, - ExpectedContent: []string{string(testThumbCropCenter)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing image - existing thumb (crop top)", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png?thumb=70x50t", - ExpectedStatus: 200, - ExpectedContent: []string{string(testThumbCropTop)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing image - existing thumb (crop bottom)", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png?thumb=70x50b", - ExpectedStatus: 200, - ExpectedContent: []string{string(testThumbCropBottom)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing image - existing thumb (fit)", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png?thumb=70x50f", - ExpectedStatus: 200, - ExpectedContent: []string{string(testThumbFit)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing image - existing thumb (zero width)", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png?thumb=0x50", - ExpectedStatus: 200, - ExpectedContent: []string{string(testThumbZeroWidth)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing image - existing thumb (zero height)", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png?thumb=70x0", - ExpectedStatus: 200, - ExpectedContent: []string{string(testThumbZeroHeight)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - { - Name: "existing non image file - thumb parameter should be ignored", - Method: http.MethodGet, - Url: "/api/files/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt?thumb=100x100", - ExpectedStatus: 200, - ExpectedContent: []string{string(testFile)}, - ExpectedEvents: map[string]int{ - "OnFileDownloadRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/logs.go b/apis/logs.go deleted file mode 100644 index 7452fd656b1ed3f7681c8cd9afffb6f6795027c9..0000000000000000000000000000000000000000 --- a/apis/logs.go +++ /dev/null @@ -1,81 +0,0 @@ -package apis - -import ( - "net/http" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/search" -) - -// bindLogsApi registers the request logs api endpoints. -func bindLogsApi(app core.App, rg *echo.Group) { - api := logsApi{app: app} - - subGroup := rg.Group("/logs", RequireAdminAuth()) - subGroup.GET("/requests", api.requestsList) - subGroup.GET("/requests/stats", api.requestsStats) - subGroup.GET("/requests/:id", api.requestView) -} - -type logsApi struct { - app core.App -} - -var requestFilterFields = []string{ - "rowid", "id", "created", "updated", - "url", "method", "status", "auth", - "remoteIp", "userIp", "referer", "userAgent", -} - -func (api *logsApi) requestsList(c echo.Context) error { - fieldResolver := search.NewSimpleFieldResolver(requestFilterFields...) - - result, err := search.NewProvider(fieldResolver). - Query(api.app.LogsDao().RequestQuery()). - ParseAndExec(c.QueryString(), &[]*models.Request{}) - - if err != nil { - return NewBadRequestError("", err) - } - - return c.JSON(http.StatusOK, result) -} - -func (api *logsApi) requestsStats(c echo.Context) error { - fieldResolver := search.NewSimpleFieldResolver(requestFilterFields...) - - filter := c.QueryParam(search.FilterQueryParam) - - var expr dbx.Expression - if filter != "" { - var err error - expr, err = search.FilterData(filter).BuildExpr(fieldResolver) - if err != nil { - return NewBadRequestError("Invalid filter format.", err) - } - } - - stats, err := api.app.LogsDao().RequestsStats(expr) - if err != nil { - return NewBadRequestError("Failed to generate requests stats.", err) - } - - return c.JSON(http.StatusOK, stats) -} - -func (api *logsApi) requestView(c echo.Context) error { - id := c.PathParam("id") - if id == "" { - return NewNotFoundError("", nil) - } - - request, err := api.app.LogsDao().FindRequestById(id) - if err != nil || request == nil { - return NewNotFoundError("", err) - } - - return c.JSON(http.StatusOK, request) -} diff --git a/apis/logs_test.go b/apis/logs_test.go deleted file mode 100644 index 648fb0e2ed7517824e735584071c258067a0dceb..0000000000000000000000000000000000000000 --- a/apis/logs_test.go +++ /dev/null @@ -1,196 +0,0 @@ -package apis_test - -import ( - "net/http" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/tests" -) - -func TestRequestsList(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/logs/requests", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as auth record", - Method: http.MethodGet, - Url: "/api/logs/requests", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin", - Method: http.MethodGet, - Url: "/api/logs/requests", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if err := tests.MockRequestLogsData(app); err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":2`, - `"items":[{`, - `"id":"873f2133-9f38-44fb-bf82-c8f53b310d91"`, - `"id":"f2133873-44fb-9f38-bf82-c918f53b310d"`, - }, - }, - { - Name: "authorized as admin + filter", - Method: http.MethodGet, - Url: "/api/logs/requests?filter=status>200", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if err := tests.MockRequestLogsData(app); err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":1`, - `"items":[{`, - `"id":"f2133873-44fb-9f38-bf82-c918f53b310d"`, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequestView(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/logs/requests/873f2133-9f38-44fb-bf82-c8f53b310d91", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as auth record", - Method: http.MethodGet, - Url: "/api/logs/requests/873f2133-9f38-44fb-bf82-c8f53b310d91", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin (nonexisting request log)", - Method: http.MethodGet, - Url: "/api/logs/requests/missing1-9f38-44fb-bf82-c8f53b310d91", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if err := tests.MockRequestLogsData(app); err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin (existing request log)", - Method: http.MethodGet, - Url: "/api/logs/requests/873f2133-9f38-44fb-bf82-c8f53b310d91", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if err := tests.MockRequestLogsData(app); err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"873f2133-9f38-44fb-bf82-c8f53b310d91"`, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequestsStats(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/logs/requests/stats", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as auth record", - Method: http.MethodGet, - Url: "/api/logs/requests/stats", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin", - Method: http.MethodGet, - Url: "/api/logs/requests/stats", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if err := tests.MockRequestLogsData(app); err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `[{"total":1,"date":"2022-05-01 10:00:00.000Z"},{"total":1,"date":"2022-05-02 10:00:00.000Z"}]`, - }, - }, - { - Name: "authorized as admin + filter", - Method: http.MethodGet, - Url: "/api/logs/requests/stats?filter=status>200", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if err := tests.MockRequestLogsData(app); err != nil { - t.Fatal(err) - } - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `[{"total":1,"date":"2022-05-02 10:00:00.000Z"}]`, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/middlewares.go b/apis/middlewares.go deleted file mode 100644 index 542ce751b25164841901c4d779d7a7eac2acf248..0000000000000000000000000000000000000000 --- a/apis/middlewares.go +++ /dev/null @@ -1,396 +0,0 @@ -package apis - -import ( - "fmt" - "log" - "net" - "net/http" - "strings" - "time" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tokens" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/routine" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" - "github.com/spf13/cast" -) - -// Common request context keys used by the middlewares and api handlers. -const ( - ContextAdminKey string = "admin" - ContextAuthRecordKey string = "authRecord" - ContextCollectionKey string = "collection" -) - -// RequireGuestOnly middleware requires a request to NOT have a valid -// Authorization header. -// -// This middleware is the opposite of [apis.RequireAdminOrRecordAuth()]. -func RequireGuestOnly() echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - err := NewBadRequestError("The request can be accessed only by guests.", nil) - - record, _ := c.Get(ContextAuthRecordKey).(*models.Record) - if record != nil { - return err - } - - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - if admin != nil { - return err - } - - return next(c) - } - } -} - -// RequireRecordAuth middleware requires a request to have -// a valid record auth Authorization header. -// -// The auth record could be from any collection. -// -// You can further filter the allowed record auth collections by -// specifying their names. -// -// Example: -// apis.RequireRecordAuth() -// Or: -// apis.RequireRecordAuth("users", "supervisors") -// -// To restrict the auth record only to the loaded context collection, -// use [apis.RequireSameContextRecordAuth()] instead. -func RequireRecordAuth(optCollectionNames ...string) echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - record, _ := c.Get(ContextAuthRecordKey).(*models.Record) - if record == nil { - return NewUnauthorizedError("The request requires valid record authorization token to be set.", nil) - } - - // check record collection name - if len(optCollectionNames) > 0 && !list.ExistInSlice(record.Collection().Name, optCollectionNames) { - return NewForbiddenError("The authorized record model is not allowed to perform this action.", nil) - } - - return next(c) - } - } -} - -// -// RequireSameContextRecordAuth middleware requires a request to have -// a valid record Authorization header. -// -// The auth record must be from the same collection already loaded in the context. -func RequireSameContextRecordAuth() echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - record, _ := c.Get(ContextAuthRecordKey).(*models.Record) - if record == nil { - return NewUnauthorizedError("The request requires valid record authorization token to be set.", nil) - } - - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil || record.Collection().Id != collection.Id { - return NewForbiddenError(fmt.Sprintf("The request requires auth record from %s collection.", record.Collection().Name), nil) - } - - return next(c) - } - } -} - -// RequireAdminAuth middleware requires a request to have -// a valid admin Authorization header. -func RequireAdminAuth() echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - if admin == nil { - return NewUnauthorizedError("The request requires valid admin authorization token to be set.", nil) - } - - return next(c) - } - } -} - -// RequireAdminAuthOnlyIfAny middleware requires a request to have -// a valid admin Authorization header ONLY if the application has -// at least 1 existing Admin model. -func RequireAdminAuthOnlyIfAny(app core.App) echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - totalAdmins, err := app.Dao().TotalAdmins() - if err != nil { - return NewBadRequestError("Failed to fetch admins info.", err) - } - - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - - if admin != nil || totalAdmins == 0 { - return next(c) - } - - return NewUnauthorizedError("The request requires valid admin authorization token to be set.", nil) - } - } -} - -// RequireAdminOrRecordAuth middleware requires a request to have -// a valid admin or record Authorization header set. -// -// You can further filter the allowed auth record collections by providing their names. -// -// This middleware is the opposite of [apis.RequireGuestOnly()]. -func RequireAdminOrRecordAuth(optCollectionNames ...string) echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - record, _ := c.Get(ContextAuthRecordKey).(*models.Record) - - if admin == nil && record == nil { - return NewUnauthorizedError("The request requires admin or record authorization token to be set.", nil) - } - - if record != nil && len(optCollectionNames) > 0 && !list.ExistInSlice(record.Collection().Name, optCollectionNames) { - return NewForbiddenError("The authorized record model is not allowed to perform this action.", nil) - } - - return next(c) - } - } -} - -// RequireAdminOrOwnerAuth middleware requires a request to have -// a valid admin or auth record owner Authorization header set. -// -// This middleware is similar to [apis.RequireAdminOrRecordAuth()] but -// for the auth record token expects to have the same id as the path -// parameter ownerIdParam (default to "id" if empty). -func RequireAdminOrOwnerAuth(ownerIdParam string) echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - if admin != nil { - return next(c) - } - - record, _ := c.Get(ContextAuthRecordKey).(*models.Record) - if record == nil { - return NewUnauthorizedError("The request requires admin or record authorization token to be set.", nil) - } - - if ownerIdParam == "" { - ownerIdParam = "id" - } - ownerId := c.PathParam(ownerIdParam) - - // note: it is "safe" to compare only the record id since the auth - // record ids are treated as unique across all auth collections - if record.Id != ownerId { - return NewForbiddenError("You are not allowed to perform this request.", nil) - } - - return next(c) - } - } -} - -// LoadAuthContext middleware reads the Authorization request header -// and loads the token related record or admin instance into the -// request's context. -// -// This middleware is expected to be already registered by default for all routes. -func LoadAuthContext(app core.App) echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - token := c.Request().Header.Get("Authorization") - if token == "" { - return next(c) - } - - // the schema is not required and it is only for - // compatibility with the defaults of some HTTP clients - token = strings.TrimPrefix(token, "Bearer ") - - claims, _ := security.ParseUnverifiedJWT(token) - tokenType := cast.ToString(claims["type"]) - - switch tokenType { - case tokens.TypeAdmin: - admin, err := app.Dao().FindAdminByToken( - token, - app.Settings().AdminAuthToken.Secret, - ) - if err == nil && admin != nil { - c.Set(ContextAdminKey, admin) - } - case tokens.TypeAuthRecord: - record, err := app.Dao().FindAuthRecordByToken( - token, - app.Settings().RecordAuthToken.Secret, - ) - if err == nil && record != nil { - c.Set(ContextAuthRecordKey, record) - } - } - - return next(c) - } - } -} - -// LoadCollectionContext middleware finds the collection with related -// path identifier and loads it into the request context. -// -// Set optCollectionTypes to further filter the found collection by its type. -func LoadCollectionContext(app core.App, optCollectionTypes ...string) echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - if param := c.PathParam("collection"); param != "" { - collection, err := app.Dao().FindCollectionByNameOrId(param) - if err != nil || collection == nil { - return NewNotFoundError("", err) - } - - if len(optCollectionTypes) > 0 && !list.ExistInSlice(collection.Type, optCollectionTypes) { - return NewBadRequestError("Invalid collection type.", nil) - } - - c.Set(ContextCollectionKey, collection) - } - - return next(c) - } - } -} - -// ActivityLogger middleware takes care to save the request information -// into the logs database. -// -// The middleware does nothing if the app logs retention period is zero -// (aka. app.Settings().Logs.MaxDays = 0). -func ActivityLogger(app core.App) echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - err := next(c) - - // no logs retention - if app.Settings().Logs.MaxDays == 0 { - return err - } - - httpRequest := c.Request() - httpResponse := c.Response() - status := httpResponse.Status - meta := types.JsonMap{} - - if err != nil { - switch v := err.(type) { - case *echo.HTTPError: - status = v.Code - meta["errorMessage"] = v.Message - meta["errorDetails"] = fmt.Sprint(v.Internal) - case *ApiError: - status = v.Code - meta["errorMessage"] = v.Message - meta["errorDetails"] = fmt.Sprint(v.RawData()) - default: - status = http.StatusBadRequest - meta["errorMessage"] = v.Error() - } - } - - requestAuth := models.RequestAuthGuest - if c.Get(ContextAuthRecordKey) != nil { - requestAuth = models.RequestAuthRecord - } else if c.Get(ContextAdminKey) != nil { - requestAuth = models.RequestAuthAdmin - } - - ip, _, _ := net.SplitHostPort(httpRequest.RemoteAddr) - - model := &models.Request{ - Url: httpRequest.URL.RequestURI(), - Method: strings.ToLower(httpRequest.Method), - Status: status, - Auth: requestAuth, - UserIp: realUserIp(httpRequest, ip), - RemoteIp: ip, - Referer: httpRequest.Referer(), - UserAgent: httpRequest.UserAgent(), - Meta: meta, - } - // set timestamp fields before firing a new go routine - model.RefreshCreated() - model.RefreshUpdated() - - routine.FireAndForget(func() { - attempts := 1 - - BeginSave: - logErr := app.LogsDao().SaveRequest(model) - if logErr != nil { - // try one more time after 10s in case of SQLITE_BUSY or "database is locked" error - if attempts <= 2 { - attempts++ - time.Sleep(10 * time.Second) - goto BeginSave - } else if app.IsDebug() { - log.Println("Log save failed:", logErr) - } - } - - // Delete old request logs - // --- - now := time.Now() - lastLogsDeletedAt := cast.ToTime(app.Cache().Get("lastLogsDeletedAt")) - daysDiff := now.Sub(lastLogsDeletedAt).Hours() * 24 - - if daysDiff > float64(app.Settings().Logs.MaxDays) { - deleteErr := app.LogsDao().DeleteOldRequests(now.AddDate(0, 0, -1*app.Settings().Logs.MaxDays)) - if deleteErr == nil { - app.Cache().Set("lastLogsDeletedAt", now) - } else if app.IsDebug() { - log.Println("Logs delete failed:", deleteErr) - } - } - }) - - return err - } - } -} - -// Returns the "real" user IP from common proxy headers (or fallbackIp if none is found). -// -// The returned IP value shouldn't be trusted if not behind a trusted reverse proxy! -func realUserIp(r *http.Request, fallbackIp string) string { - if ip := r.Header.Get("CF-Connecting-IP"); ip != "" { - return ip - } - - if ip := r.Header.Get("X-Real-IP"); ip != "" { - return ip - } - - if ipsList := r.Header.Get("X-Forwarded-For"); ipsList != "" { - ips := strings.Split(ipsList, ",") - // extract the rightmost ip - for i := len(ips) - 1; i >= 0; i-- { - ip := strings.TrimSpace(ips[i]) - if ip != "" { - return ip - } - } - } - - return fallbackIp -} diff --git a/apis/middlewares_test.go b/apis/middlewares_test.go deleted file mode 100644 index 6dd81fdd6a85be60f00595035ceea849edc2c246..0000000000000000000000000000000000000000 --- a/apis/middlewares_test.go +++ /dev/null @@ -1,998 +0,0 @@ -package apis_test - -import ( - "net/http" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/apis" - "github.com/pocketbase/pocketbase/tests" -) - -func TestRequireGuestOnly(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "valid record token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireGuestOnly(), - }, - }) - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireGuestOnly(), - }, - }) - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired/invalid token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoxNjQwOTkxNjYxfQ.HqvpCpM0RAk3Qu9PfCMuZsk_DKh9UYuzFLwXBMTZd1w", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireGuestOnly(), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "guest", - Method: http.MethodGet, - Url: "/my/test", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireGuestOnly(), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequireRecordAuth(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "guest", - Method: http.MethodGet, - Url: "/my/test", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired/invalid token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoxNjQwOTkxNjYxfQ.HqvpCpM0RAk3Qu9PfCMuZsk_DKh9UYuzFLwXBMTZd1w", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireRecordAuth(), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "valid record token with collection not in the restricted list", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireRecordAuth("demo1", "demo2"), - }, - }) - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token with collection in the restricted list", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireRecordAuth("demo1", "demo2", "users"), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequireSameContextRecordAuth(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "guest", - Method: http.MethodGet, - Url: "/my/users/test", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireSameContextRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired/invalid token", - Method: http.MethodGet, - Url: "/my/users/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoxNjQwOTkxNjYxfQ.HqvpCpM0RAk3Qu9PfCMuZsk_DKh9UYuzFLwXBMTZd1w", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireSameContextRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/users/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireSameContextRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token but from different collection", - Method: http.MethodGet, - Url: "/my/users/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImdrMzkwcWVnczR5NDd3biIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoidjg1MXE0cjc5MHJoa25sIiwiZXhwIjoyMjA4OTg1MjYxfQ.q34IWXrRWsjLvbbVNRfAs_J4SoTHloNBfdGEiLmy-D8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireSameContextRecordAuth(), - }, - }) - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireRecordAuth(), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequireAdminAuth(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "guest", - Method: http.MethodGet, - Url: "/my/test", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired/invalid token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJiNGE5N2NjLTNmODMtNGQwMS1hMjZiLTNkNzdiYzg0MmQzYyIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTY0MTAxMzIwMH0.Gp_1b5WVhqjj2o3nJhNUlJmpdiwFLXN72LbMP-26gjA", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuth(), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequireAdminAuthOnlyIfAny(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "guest (while having at least 1 existing admin)", - Method: http.MethodGet, - Url: "/my/test", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuthOnlyIfAny(app), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "guest (while having 0 existing admins)", - Method: http.MethodGet, - Url: "/my/test", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - // delete all admins - _, err := app.Dao().DB().NewQuery("DELETE FROM {{_admins}}").Execute() - if err != nil { - t.Fatal(err) - } - - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuthOnlyIfAny(app), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "expired/invalid token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJiNGE5N2NjLTNmODMtNGQwMS1hMjZiLTNkNzdiYzg0MmQzYyIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTY0MTAxMzIwMH0.Gp_1b5WVhqjj2o3nJhNUlJmpdiwFLXN72LbMP-26gjA", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuthOnlyIfAny(app), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuthOnlyIfAny(app), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminAuthOnlyIfAny(app), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequireAdminOrRecordAuth(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "guest", - Method: http.MethodGet, - Url: "/my/test", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired/invalid token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJiNGE5N2NjLTNmODMtNGQwMS1hMjZiLTNkNzdiYzg0MmQzYyIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTY0MTAxMzIwMH0.Gp_1b5WVhqjj2o3nJhNUlJmpdiwFLXN72LbMP-26gjA", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrRecordAuth(), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrRecordAuth(), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "valid record token with collection not in the restricted list", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrRecordAuth("demo1", "demo2", "clients"), - }, - }) - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token with collection in the restricted list", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrRecordAuth("demo1", "demo2", "users"), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrRecordAuth(), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "valid admin token + restricted collections list (should be ignored)", - Method: http.MethodGet, - Url: "/my/test", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrRecordAuth("demo1", "demo2"), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRequireAdminOrOwnerAuth(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "guest", - Method: http.MethodGet, - Url: "/my/test/4q1xlclmfloku33", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test/:id", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrOwnerAuth(""), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired/invalid token", - Method: http.MethodGet, - Url: "/my/test/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoxNjQwOTkxNjYxfQ.HqvpCpM0RAk3Qu9PfCMuZsk_DKh9UYuzFLwXBMTZd1w", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test/:id", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrOwnerAuth(""), - }, - }) - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token (different user)", - Method: http.MethodGet, - Url: "/my/test/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImJnczgyMG4zNjF2ajFxZCIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.tW4NZWZ0mHBgvSZsQ0OOQhWajpUNFPCvNrOF9aCZLZs", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test/:id", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrOwnerAuth(""), - }, - }) - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token (different collection)", - Method: http.MethodGet, - Url: "/my/test/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImdrMzkwcWVnczR5NDd3biIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoidjg1MXE0cjc5MHJoa25sIiwiZXhwIjoyMjA4OTg1MjYxfQ.q34IWXrRWsjLvbbVNRfAs_J4SoTHloNBfdGEiLmy-D8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test/:id", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrOwnerAuth(""), - }, - }) - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "valid record token (owner)", - Method: http.MethodGet, - Url: "/my/test/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test/:id", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrOwnerAuth(""), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/test/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/test/:custom", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.RequireAdminOrOwnerAuth("custom"), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestLoadCollectionContext(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodGet, - Url: "/my/missing", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.LoadCollectionContext(app), - }, - }) - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "guest", - Method: http.MethodGet, - Url: "/my/demo1", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.LoadCollectionContext(app), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "valid record token", - Method: http.MethodGet, - Url: "/my/demo1", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.LoadCollectionContext(app), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "valid admin token", - Method: http.MethodGet, - Url: "/my/demo1", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.LoadCollectionContext(app), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - { - Name: "mismatched type", - Method: http.MethodGet, - Url: "/my/demo1", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.LoadCollectionContext(app, "auth"), - }, - }) - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "matched type", - Method: http.MethodGet, - Url: "/my/users", - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - e.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/my/:collection", - Handler: func(c echo.Context) error { - return c.String(200, "test123") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.LoadCollectionContext(app, "auth"), - }, - }) - }, - ExpectedStatus: 200, - ExpectedContent: []string{"test123"}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/realtime.go b/apis/realtime.go deleted file mode 100644 index 6b235427620488b862ec08eaa0b47e6a24107cc7..0000000000000000000000000000000000000000 --- a/apis/realtime.go +++ /dev/null @@ -1,424 +0,0 @@ -package apis - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "log" - "net/http" - "time" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/resolvers" - "github.com/pocketbase/pocketbase/tools/search" - "github.com/pocketbase/pocketbase/tools/subscriptions" -) - -// bindRealtimeApi registers the realtime api endpoints. -func bindRealtimeApi(app core.App, rg *echo.Group) { - api := realtimeApi{app: app} - - subGroup := rg.Group("/realtime", ActivityLogger(app)) - subGroup.GET("", api.connect) - subGroup.POST("", api.setSubscriptions) - - api.bindEvents() -} - -type realtimeApi struct { - app core.App -} - -func (api *realtimeApi) connect(c echo.Context) error { - cancelCtx, cancelRequest := context.WithCancel(c.Request().Context()) - defer cancelRequest() - c.SetRequest(c.Request().Clone(cancelCtx)) - - // register new subscription client - client := subscriptions.NewDefaultClient() - api.app.SubscriptionsBroker().Register(client) - defer func() { - api.app.OnRealtimeDisconnectRequest().Trigger(&core.RealtimeDisconnectEvent{ - HttpContext: c, - Client: client, - }) - - api.app.SubscriptionsBroker().Unregister(client.Id()) - }() - - c.Response().Header().Set("Content-Type", "text/event-stream; charset=UTF-8") - c.Response().Header().Set("Cache-Control", "no-store") - c.Response().Header().Set("Connection", "keep-alive") - // https://github.com/pocketbase/pocketbase/discussions/480#discussioncomment-3657640 - // https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering - c.Response().Header().Set("X-Accel-Buffering", "no") - - connectEvent := &core.RealtimeConnectEvent{ - HttpContext: c, - Client: client, - } - - if err := api.app.OnRealtimeConnectRequest().Trigger(connectEvent); err != nil { - return err - } - - if api.app.IsDebug() { - log.Printf("Realtime connection established: %s\n", client.Id()) - } - - // signalize established connection (aka. fire "connect" message) - connectMsgEvent := &core.RealtimeMessageEvent{ - HttpContext: c, - Client: client, - Message: &subscriptions.Message{ - Name: "PB_CONNECT", - Data: `{"clientId":"` + client.Id() + `"}`, - }, - } - connectMsgErr := api.app.OnRealtimeBeforeMessageSend().Trigger(connectMsgEvent, func(e *core.RealtimeMessageEvent) error { - w := e.HttpContext.Response() - fmt.Fprint(w, "id:"+client.Id()+"\n") - fmt.Fprint(w, "event:"+e.Message.Name+"\n") - fmt.Fprint(w, "data:"+e.Message.Data+"\n\n") - w.Flush() - return nil - }) - if connectMsgErr != nil { - if api.app.IsDebug() { - log.Println("Realtime connection closed (failed to deliver PB_CONNECT):", client.Id(), connectMsgErr) - } - return nil - } - if err := api.app.OnRealtimeAfterMessageSend().Trigger(connectMsgEvent); err != nil && api.app.IsDebug() { - log.Println("OnRealtimeAfterMessageSend PB_CONNECT error:", err) - } - - // start an idle timer to keep track of inactive/forgotten connections - idleDuration := 5 * time.Minute - idleTimer := time.NewTimer(idleDuration) - defer idleTimer.Stop() - - for { - select { - case <-idleTimer.C: - cancelRequest() - case msg, ok := <-client.Channel(): - if !ok { - // channel is closed - if api.app.IsDebug() { - log.Println("Realtime connection closed (closed channel):", client.Id()) - } - return nil - } - - msgEvent := &core.RealtimeMessageEvent{ - HttpContext: c, - Client: client, - Message: &msg, - } - msgErr := api.app.OnRealtimeBeforeMessageSend().Trigger(msgEvent, func(e *core.RealtimeMessageEvent) error { - w := e.HttpContext.Response() - fmt.Fprint(w, "id:"+e.Client.Id()+"\n") - fmt.Fprint(w, "event:"+e.Message.Name+"\n") - fmt.Fprint(w, "data:"+e.Message.Data+"\n\n") - w.Flush() - return nil - }) - if msgErr != nil { - if api.app.IsDebug() { - log.Println("Realtime connection closed (failed to deliver message):", client.Id(), msgErr) - } - return nil - } - - if err := api.app.OnRealtimeAfterMessageSend().Trigger(msgEvent); err != nil && api.app.IsDebug() { - log.Println("OnRealtimeAfterMessageSend error:", err) - } - - idleTimer.Stop() - idleTimer.Reset(idleDuration) - case <-c.Request().Context().Done(): - // connection is closed - if api.app.IsDebug() { - log.Println("Realtime connection closed (cancelled request):", client.Id()) - } - return nil - } - } -} - -// note: in case of reconnect, clients will have to resubmit all subscriptions again -func (api *realtimeApi) setSubscriptions(c echo.Context) error { - form := forms.NewRealtimeSubscribe() - - // read request data - if err := c.Bind(form); err != nil { - return NewBadRequestError("", err) - } - - // validate request data - if err := form.Validate(); err != nil { - return NewBadRequestError("", err) - } - - // find subscription client - client, err := api.app.SubscriptionsBroker().ClientById(form.ClientId) - if err != nil { - return NewNotFoundError("Missing or invalid client id.", err) - } - - // check if the previous request was authorized - oldAuthId := extractAuthIdFromGetter(client) - newAuthId := extractAuthIdFromGetter(c) - if oldAuthId != "" && oldAuthId != newAuthId { - return NewForbiddenError("The current and the previous request authorization don't match.", nil) - } - - event := &core.RealtimeSubscribeEvent{ - HttpContext: c, - Client: client, - Subscriptions: form.Subscriptions, - } - - handlerErr := api.app.OnRealtimeBeforeSubscribeRequest().Trigger(event, func(e *core.RealtimeSubscribeEvent) error { - // update auth state - e.Client.Set(ContextAdminKey, e.HttpContext.Get(ContextAdminKey)) - e.Client.Set(ContextAuthRecordKey, e.HttpContext.Get(ContextAuthRecordKey)) - - // unsubscribe from any previous existing subscriptions - e.Client.Unsubscribe() - - // subscribe to the new subscriptions - e.Client.Subscribe(e.Subscriptions...) - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - - if handlerErr == nil { - api.app.OnRealtimeAfterSubscribeRequest().Trigger(event) - } - - return handlerErr -} - -// updateClientsAuthModel updates the existing clients auth model with the new one (matched by ID). -func (api *realtimeApi) updateClientsAuthModel(contextKey string, newModel models.Model) error { - for _, client := range api.app.SubscriptionsBroker().Clients() { - clientModel, _ := client.Get(contextKey).(models.Model) - if clientModel != nil && clientModel.GetId() == newModel.GetId() { - client.Set(contextKey, newModel) - } - } - - return nil -} - -// unregisterClientsByAuthModel unregister all clients that has the provided auth model. -func (api *realtimeApi) unregisterClientsByAuthModel(contextKey string, model models.Model) error { - for _, client := range api.app.SubscriptionsBroker().Clients() { - clientModel, _ := client.Get(contextKey).(models.Model) - if clientModel != nil && clientModel.GetId() == model.GetId() { - api.app.SubscriptionsBroker().Unregister(client.Id()) - } - } - - return nil -} - -func (api *realtimeApi) bindEvents() { - // update the clients that has admin or auth record association - api.app.OnModelAfterUpdate().PreAdd(func(e *core.ModelEvent) error { - if record, ok := e.Model.(*models.Record); ok && record != nil && record.Collection().IsAuth() { - return api.updateClientsAuthModel(ContextAuthRecordKey, record) - } - - if admin, ok := e.Model.(*models.Admin); ok && admin != nil { - return api.updateClientsAuthModel(ContextAdminKey, admin) - } - - return nil - }) - - // remove the client(s) associated to the deleted admin or auth record - api.app.OnModelAfterDelete().PreAdd(func(e *core.ModelEvent) error { - if record, ok := e.Model.(*models.Record); ok && record != nil && record.Collection().IsAuth() { - return api.unregisterClientsByAuthModel(ContextAuthRecordKey, record) - } - - if admin, ok := e.Model.(*models.Admin); ok && admin != nil { - return api.unregisterClientsByAuthModel(ContextAdminKey, admin) - } - - return nil - }) - - api.app.OnModelAfterCreate().PreAdd(func(e *core.ModelEvent) error { - if record, ok := e.Model.(*models.Record); ok { - api.broadcastRecord("create", record) - } - return nil - }) - - api.app.OnModelAfterUpdate().PreAdd(func(e *core.ModelEvent) error { - if record, ok := e.Model.(*models.Record); ok { - api.broadcastRecord("update", record) - } - return nil - }) - - api.app.OnModelBeforeDelete().Add(func(e *core.ModelEvent) error { - if record, ok := e.Model.(*models.Record); ok { - api.broadcastRecord("delete", record) - } - return nil - }) -} - -func (api *realtimeApi) canAccessRecord(client subscriptions.Client, record *models.Record, accessRule *string) bool { - admin, _ := client.Get(ContextAdminKey).(*models.Admin) - if admin != nil { - // admins can access everything - return true - } - - if accessRule == nil { - // only admins can access this record - return false - } - - ruleFunc := func(q *dbx.SelectQuery) error { - if *accessRule == "" { - return nil // empty public rule - } - - // emulate request data - requestData := &models.RequestData{ - Method: "GET", - } - requestData.AuthRecord, _ = client.Get(ContextAuthRecordKey).(*models.Record) - - resolver := resolvers.NewRecordFieldResolver(api.app.Dao(), record.Collection(), requestData, true) - expr, err := search.FilterData(*accessRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - - return nil - } - - foundRecord, err := api.app.Dao().FindRecordById(record.Collection().Id, record.Id, ruleFunc) - if err == nil && foundRecord != nil { - return true - } - - return false -} - -type recordData struct { - Action string `json:"action"` - Record *models.Record `json:"record"` -} - -func (api *realtimeApi) broadcastRecord(action string, record *models.Record) error { - collection := record.Collection() - if collection == nil { - return errors.New("Record collection not set.") - } - - clients := api.app.SubscriptionsBroker().Clients() - if len(clients) == 0 { - return nil // no subscribers - } - - // remove the expand from the broadcasted record because we don't - // know if the clients have access to view the expanded records - cleanRecord := *record - cleanRecord.SetExpand(nil) - cleanRecord.WithUnkownData(false) - cleanRecord.IgnoreEmailVisibility(false) - - subscriptionRuleMap := map[string]*string{ - (collection.Name + "/" + cleanRecord.Id): collection.ViewRule, - (collection.Id + "/" + cleanRecord.Id): collection.ViewRule, - (collection.Name + "/*"): collection.ListRule, - (collection.Id + "/*"): collection.ListRule, - // @deprecated: the same as the wildcard topic but kept for backward compatibility - collection.Name: collection.ListRule, - collection.Id: collection.ListRule, - } - - data := &recordData{ - Action: action, - Record: &cleanRecord, - } - - dataBytes, err := json.Marshal(data) - if err != nil { - if api.app.IsDebug() { - log.Println(err) - } - return err - } - - encodedData := string(dataBytes) - - for _, client := range clients { - for subscription, rule := range subscriptionRuleMap { - if !client.HasSubscription(subscription) { - continue - } - - if !api.canAccessRecord(client, data.Record, rule) { - continue - } - - msg := subscriptions.Message{ - Name: subscription, - Data: encodedData, - } - - // ignore the auth record email visibility checks for - // auth owner, admin or manager - if collection.IsAuth() { - authId := extractAuthIdFromGetter(client) - if authId == data.Record.Id || - api.canAccessRecord(client, data.Record, collection.AuthOptions().ManageRule) { - data.Record.IgnoreEmailVisibility(true) // ignore - if newData, err := json.Marshal(data); err == nil { - msg.Data = string(newData) - } - data.Record.IgnoreEmailVisibility(false) // restore - } - } - - client.Channel() <- msg - } - } - - return nil -} - -type getter interface { - Get(string) any -} - -func extractAuthIdFromGetter(val getter) string { - record, _ := val.Get(ContextAuthRecordKey).(*models.Record) - if record != nil { - return record.Id - } - - admin, _ := val.Get(ContextAdminKey).(*models.Admin) - if admin != nil { - return admin.Id - } - - return "" -} diff --git a/apis/realtime_test.go b/apis/realtime_test.go deleted file mode 100644 index 037fc293ae4803d30fd140722585171eff6011bc..0000000000000000000000000000000000000000 --- a/apis/realtime_test.go +++ /dev/null @@ -1,343 +0,0 @@ -package apis_test - -import ( - "errors" - "net/http" - "strings" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/apis" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/hook" - "github.com/pocketbase/pocketbase/tools/subscriptions" -) - -func TestRealtimeConnect(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Method: http.MethodGet, - Url: "/api/realtime", - ExpectedStatus: 200, - ExpectedContent: []string{ - `id:`, - `event:PB_CONNECT`, - `data:{"clientId":`, - }, - ExpectedEvents: map[string]int{ - "OnRealtimeConnectRequest": 1, - "OnRealtimeBeforeMessageSend": 1, - "OnRealtimeAfterMessageSend": 1, - "OnRealtimeDisconnectRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if len(app.SubscriptionsBroker().Clients()) != 0 { - t.Errorf("Expected the subscribers to be removed after connection close, found %d", len(app.SubscriptionsBroker().Clients())) - } - }, - }, - { - Name: "PB_CONNECT interrupt", - Method: http.MethodGet, - Url: "/api/realtime", - ExpectedStatus: 200, - ExpectedEvents: map[string]int{ - "OnRealtimeConnectRequest": 1, - "OnRealtimeBeforeMessageSend": 1, - "OnRealtimeDisconnectRequest": 1, - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - app.OnRealtimeBeforeMessageSend().Add(func(e *core.RealtimeMessageEvent) error { - if e.Message.Name == "PB_CONNECT" { - return errors.New("PB_CONNECT error") - } - return nil - }) - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if len(app.SubscriptionsBroker().Clients()) != 0 { - t.Errorf("Expected the subscribers to be removed after connection close, found %d", len(app.SubscriptionsBroker().Clients())) - } - }, - }, - { - Name: "Skipping/ignoring messages", - Method: http.MethodGet, - Url: "/api/realtime", - ExpectedStatus: 200, - ExpectedEvents: map[string]int{ - "OnRealtimeConnectRequest": 1, - "OnRealtimeBeforeMessageSend": 1, - "OnRealtimeAfterMessageSend": 1, - "OnRealtimeDisconnectRequest": 1, - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - app.OnRealtimeBeforeMessageSend().Add(func(e *core.RealtimeMessageEvent) error { - return hook.StopPropagation - }) - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if len(app.SubscriptionsBroker().Clients()) != 0 { - t.Errorf("Expected the subscribers to be removed after connection close, found %d", len(app.SubscriptionsBroker().Clients())) - } - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRealtimeSubscribe(t *testing.T) { - client := subscriptions.NewDefaultClient() - - resetClient := func() { - client.Unsubscribe() - client.Set(apis.ContextAdminKey, nil) - client.Set(apis.ContextAuthRecordKey, nil) - } - - scenarios := []tests.ApiScenario{ - { - Name: "missing client", - Method: http.MethodPost, - Url: "/api/realtime", - Body: strings.NewReader(`{"clientId":"missing","subscriptions":["test1", "test2"]}`), - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "existing client - empty subscriptions", - Method: http.MethodPost, - Url: "/api/realtime", - Body: strings.NewReader(`{"clientId":"` + client.Id() + `","subscriptions":[]}`), - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnRealtimeBeforeSubscribeRequest": 1, - "OnRealtimeAfterSubscribeRequest": 1, - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - client.Subscribe("test0") - app.SubscriptionsBroker().Register(client) - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if len(client.Subscriptions()) != 0 { - t.Errorf("Expected no subscriptions, got %v", client.Subscriptions()) - } - resetClient() - }, - }, - { - Name: "existing client - 2 new subscriptions", - Method: http.MethodPost, - Url: "/api/realtime", - Body: strings.NewReader(`{"clientId":"` + client.Id() + `","subscriptions":["test1", "test2"]}`), - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnRealtimeBeforeSubscribeRequest": 1, - "OnRealtimeAfterSubscribeRequest": 1, - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - client.Subscribe("test0") - app.SubscriptionsBroker().Register(client) - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - expectedSubs := []string{"test1", "test2"} - if len(expectedSubs) != len(client.Subscriptions()) { - t.Errorf("Expected subscriptions %v, got %v", expectedSubs, client.Subscriptions()) - } - - for _, s := range expectedSubs { - if !client.HasSubscription(s) { - t.Errorf("Cannot find %q subscription in %v", s, client.Subscriptions()) - } - } - resetClient() - }, - }, - { - Name: "existing client - authorized admin", - Method: http.MethodPost, - Url: "/api/realtime", - Body: strings.NewReader(`{"clientId":"` + client.Id() + `","subscriptions":["test1", "test2"]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnRealtimeBeforeSubscribeRequest": 1, - "OnRealtimeAfterSubscribeRequest": 1, - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - app.SubscriptionsBroker().Register(client) - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - admin, _ := client.Get(apis.ContextAdminKey).(*models.Admin) - if admin == nil { - t.Errorf("Expected admin auth model, got nil") - } - resetClient() - }, - }, - { - Name: "existing client - authorized record", - Method: http.MethodPost, - Url: "/api/realtime", - Body: strings.NewReader(`{"clientId":"` + client.Id() + `","subscriptions":["test1", "test2"]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnRealtimeBeforeSubscribeRequest": 1, - "OnRealtimeAfterSubscribeRequest": 1, - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - app.SubscriptionsBroker().Register(client) - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - authRecord, _ := client.Get(apis.ContextAuthRecordKey).(*models.Record) - if authRecord == nil { - t.Errorf("Expected auth record model, got nil") - } - resetClient() - }, - }, - { - Name: "existing client - mismatched auth", - Method: http.MethodPost, - Url: "/api/realtime", - Body: strings.NewReader(`{"clientId":"` + client.Id() + `","subscriptions":["test1", "test2"]}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - initialAuth := &models.Record{} - initialAuth.RefreshId() - client.Set(apis.ContextAuthRecordKey, initialAuth) - - app.SubscriptionsBroker().Register(client) - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - authRecord, _ := client.Get(apis.ContextAuthRecordKey).(*models.Record) - if authRecord == nil { - t.Errorf("Expected auth record model, got nil") - } - resetClient() - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRealtimeAuthRecordDeleteEvent(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - apis.InitApi(testApp) - - authRecord, err := testApp.Dao().FindFirstRecordByData("users", "email", "test@example.com") - if err != nil { - t.Fatal(err) - } - - client := subscriptions.NewDefaultClient() - client.Set(apis.ContextAuthRecordKey, authRecord) - testApp.SubscriptionsBroker().Register(client) - - testApp.OnModelAfterDelete().Trigger(&core.ModelEvent{Dao: testApp.Dao(), Model: authRecord}) - - if len(testApp.SubscriptionsBroker().Clients()) != 0 { - t.Fatalf("Expected no subscription clients, found %d", len(testApp.SubscriptionsBroker().Clients())) - } -} - -func TestRealtimeAuthRecordUpdateEvent(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - apis.InitApi(testApp) - - authRecord1, err := testApp.Dao().FindFirstRecordByData("users", "email", "test@example.com") - if err != nil { - t.Fatal(err) - } - - client := subscriptions.NewDefaultClient() - client.Set(apis.ContextAuthRecordKey, authRecord1) - testApp.SubscriptionsBroker().Register(client) - - // refetch the authRecord and change its email - authRecord2, err := testApp.Dao().FindFirstRecordByData("users", "email", "test@example.com") - if err != nil { - t.Fatal(err) - } - authRecord2.SetEmail("new@example.com") - - testApp.OnModelAfterUpdate().Trigger(&core.ModelEvent{Dao: testApp.Dao(), Model: authRecord2}) - - clientAuthRecord, _ := client.Get(apis.ContextAuthRecordKey).(*models.Record) - if clientAuthRecord.Email() != authRecord2.Email() { - t.Fatalf("Expected authRecord with email %q, got %q", authRecord2.Email(), clientAuthRecord.Email()) - } -} - -func TestRealtimeAdminDeleteEvent(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - apis.InitApi(testApp) - - admin, err := testApp.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - - client := subscriptions.NewDefaultClient() - client.Set(apis.ContextAdminKey, admin) - testApp.SubscriptionsBroker().Register(client) - - testApp.OnModelAfterDelete().Trigger(&core.ModelEvent{Dao: testApp.Dao(), Model: admin}) - - if len(testApp.SubscriptionsBroker().Clients()) != 0 { - t.Fatalf("Expected no subscription clients, found %d", len(testApp.SubscriptionsBroker().Clients())) - } -} - -func TestRealtimeAdminUpdateEvent(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - apis.InitApi(testApp) - - admin1, err := testApp.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - - client := subscriptions.NewDefaultClient() - client.Set(apis.ContextAdminKey, admin1) - testApp.SubscriptionsBroker().Register(client) - - // refetch the authRecord and change its email - admin2, err := testApp.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - admin2.Email = "new@example.com" - - testApp.OnModelAfterUpdate().Trigger(&core.ModelEvent{Dao: testApp.Dao(), Model: admin2}) - - clientAdmin, _ := client.Get(apis.ContextAdminKey).(*models.Admin) - if clientAdmin.Email != admin2.Email { - t.Fatalf("Expected authRecord with email %q, got %q", admin2.Email, clientAdmin.Email) - } -} diff --git a/apis/record_auth.go b/apis/record_auth.go deleted file mode 100644 index dcd7a77274e08d3271c09db34c28206d0935c4bb..0000000000000000000000000000000000000000 --- a/apis/record_auth.go +++ /dev/null @@ -1,587 +0,0 @@ -package apis - -import ( - "errors" - "fmt" - "log" - "net/http" - "strings" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/resolvers" - "github.com/pocketbase/pocketbase/tokens" - "github.com/pocketbase/pocketbase/tools/auth" - "github.com/pocketbase/pocketbase/tools/routine" - "github.com/pocketbase/pocketbase/tools/search" - "github.com/pocketbase/pocketbase/tools/security" - "golang.org/x/oauth2" -) - -// bindRecordAuthApi registers the auth record api endpoints and -// the corresponding handlers. -func bindRecordAuthApi(app core.App, rg *echo.Group) { - api := recordAuthApi{app: app} - - subGroup := rg.Group( - "/collections/:collection", - ActivityLogger(app), - LoadCollectionContext(app, models.CollectionTypeAuth), - ) - - subGroup.GET("/auth-methods", api.authMethods) - subGroup.POST("/auth-refresh", api.authRefresh, RequireSameContextRecordAuth()) - subGroup.POST("/auth-with-oauth2", api.authWithOAuth2) // allow anyone so that we can link the OAuth2 profile with the authenticated record - subGroup.POST("/auth-with-password", api.authWithPassword, RequireGuestOnly()) - subGroup.POST("/request-password-reset", api.requestPasswordReset) - subGroup.POST("/confirm-password-reset", api.confirmPasswordReset) - subGroup.POST("/request-verification", api.requestVerification) - subGroup.POST("/confirm-verification", api.confirmVerification) - subGroup.POST("/request-email-change", api.requestEmailChange, RequireSameContextRecordAuth()) - subGroup.POST("/confirm-email-change", api.confirmEmailChange) - subGroup.GET("/records/:id/external-auths", api.listExternalAuths, RequireAdminOrOwnerAuth("id")) - subGroup.DELETE("/records/:id/external-auths/:provider", api.unlinkExternalAuth, RequireAdminOrOwnerAuth("id")) -} - -type recordAuthApi struct { - app core.App -} - -func (api *recordAuthApi) authResponse(c echo.Context, authRecord *models.Record, meta any) error { - token, tokenErr := tokens.NewRecordAuthToken(api.app, authRecord) - if tokenErr != nil { - return NewBadRequestError("Failed to create auth token.", tokenErr) - } - - event := &core.RecordAuthEvent{ - HttpContext: c, - Record: authRecord, - Token: token, - Meta: meta, - } - - return api.app.OnRecordAuthRequest().Trigger(event, func(e *core.RecordAuthEvent) error { - // allow always returning the email address of the authenticated account - e.Record.IgnoreEmailVisibility(true) - - // expand record relations - expands := strings.Split(c.QueryParam(expandQueryParam), ",") - if len(expands) > 0 { - // create a copy of the cached request data and adjust it to the current auth record - requestData := *RequestData(e.HttpContext) - requestData.Admin = nil - requestData.AuthRecord = e.Record - failed := api.app.Dao().ExpandRecord( - e.Record, - expands, - expandFetch(api.app.Dao(), &requestData), - ) - if len(failed) > 0 && api.app.IsDebug() { - log.Println("Failed to expand relations: ", failed) - } - } - - result := map[string]any{ - "token": e.Token, - "record": e.Record, - } - - if e.Meta != nil { - result["meta"] = e.Meta - } - - return e.HttpContext.JSON(http.StatusOK, result) - }) -} - -func (api *recordAuthApi) authRefresh(c echo.Context) error { - record, _ := c.Get(ContextAuthRecordKey).(*models.Record) - if record == nil { - return NewNotFoundError("Missing auth record context.", nil) - } - - return api.authResponse(c, record, nil) -} - -type providerInfo struct { - Name string `json:"name"` - State string `json:"state"` - CodeVerifier string `json:"codeVerifier"` - CodeChallenge string `json:"codeChallenge"` - CodeChallengeMethod string `json:"codeChallengeMethod"` - AuthUrl string `json:"authUrl"` -} - -func (api *recordAuthApi) authMethods(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - authOptions := collection.AuthOptions() - - result := struct { - UsernamePassword bool `json:"usernamePassword"` - EmailPassword bool `json:"emailPassword"` - AuthProviders []providerInfo `json:"authProviders"` - }{ - UsernamePassword: authOptions.AllowUsernameAuth, - EmailPassword: authOptions.AllowEmailAuth, - AuthProviders: []providerInfo{}, - } - - if !authOptions.AllowOAuth2Auth { - return c.JSON(http.StatusOK, result) - } - - nameConfigMap := api.app.Settings().NamedAuthProviderConfigs() - for name, config := range nameConfigMap { - if !config.Enabled { - continue - } - - provider, err := auth.NewProviderByName(name) - if err != nil { - if api.app.IsDebug() { - log.Println(err) - } - continue // skip provider - } - - if err := config.SetupProvider(provider); err != nil { - if api.app.IsDebug() { - log.Println(err) - } - continue // skip provider - } - - state := security.RandomString(30) - codeVerifier := security.RandomString(43) - codeChallenge := security.S256Challenge(codeVerifier) - codeChallengeMethod := "S256" - result.AuthProviders = append(result.AuthProviders, providerInfo{ - Name: name, - State: state, - CodeVerifier: codeVerifier, - CodeChallenge: codeChallenge, - CodeChallengeMethod: codeChallengeMethod, - AuthUrl: provider.BuildAuthUrl( - state, - oauth2.SetAuthURLParam("code_challenge", codeChallenge), - oauth2.SetAuthURLParam("code_challenge_method", codeChallengeMethod), - ) + "&redirect_uri=", // empty redirect_uri so that users can append their url - }) - } - - return c.JSON(http.StatusOK, result) -} - -func (api *recordAuthApi) authWithOAuth2(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - if !collection.AuthOptions().AllowOAuth2Auth { - return NewBadRequestError("The collection is not configured to allow OAuth2 authentication.", nil) - } - - var fallbackAuthRecord *models.Record - - loggedAuthRecord, _ := c.Get(ContextAuthRecordKey).(*models.Record) - if loggedAuthRecord != nil && loggedAuthRecord.Collection().Id == collection.Id { - fallbackAuthRecord = loggedAuthRecord - } - - form := forms.NewRecordOAuth2Login(api.app, collection, fallbackAuthRecord) - if readErr := c.Bind(form); readErr != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", readErr) - } - - record, authData, submitErr := form.Submit(func(createForm *forms.RecordUpsert, authRecord *models.Record, authUser *auth.AuthUser) error { - return createForm.DrySubmit(func(txDao *daos.Dao) error { - requestData := RequestData(c) - requestData.Data = form.CreateData - - createRuleFunc := func(q *dbx.SelectQuery) error { - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - if admin != nil { - return nil // either admin or the rule is empty - } - - if collection.CreateRule == nil { - return errors.New("Only admins can create new accounts with OAuth2") - } - - if *collection.CreateRule != "" { - resolver := resolvers.NewRecordFieldResolver(txDao, collection, requestData, true) - expr, err := search.FilterData(*collection.CreateRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - } - - return nil - } - - if _, err := txDao.FindRecordById(collection.Id, createForm.Id, createRuleFunc); err != nil { - return fmt.Errorf("Failed create rule constraint: %w", err) - } - - return nil - }) - }) - if submitErr != nil { - return NewBadRequestError("Failed to authenticate.", submitErr) - } - - return api.authResponse(c, record, authData) -} - -func (api *recordAuthApi) authWithPassword(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - form := forms.NewRecordPasswordLogin(api.app, collection) - if readErr := c.Bind(form); readErr != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", readErr) - } - - record, submitErr := form.Submit() - if submitErr != nil { - return NewBadRequestError("Failed to authenticate.", submitErr) - } - - return api.authResponse(c, record, nil) -} - -func (api *recordAuthApi) requestPasswordReset(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - authOptions := collection.AuthOptions() - if !authOptions.AllowUsernameAuth && !authOptions.AllowEmailAuth { - return NewBadRequestError("The collection is not configured to allow password authentication.", nil) - } - - form := forms.NewRecordPasswordResetRequest(api.app, collection) - if err := c.Bind(form); err != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", err) - } - - if err := form.Validate(); err != nil { - return NewBadRequestError("An error occurred while validating the form.", err) - } - - event := &core.RecordRequestPasswordResetEvent{ - HttpContext: c, - } - - submitErr := form.Submit(func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - event.Record = record - - return api.app.OnRecordBeforeRequestPasswordResetRequest().Trigger(event, func(e *core.RecordRequestPasswordResetEvent) error { - // run in background because we don't need to show the result to the client - routine.FireAndForget(func() { - if err := next(e.Record); err != nil && api.app.IsDebug() { - log.Println(err) - } - }) - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterRequestPasswordResetRequest().Trigger(event) - } else if api.app.IsDebug() { - log.Println(submitErr) - } - - // don't return the response error to prevent emails enumeration - if !c.Response().Committed { - c.NoContent(http.StatusNoContent) - } - - return nil -} - -func (api *recordAuthApi) confirmPasswordReset(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - form := forms.NewRecordPasswordResetConfirm(api.app, collection) - if readErr := c.Bind(form); readErr != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", readErr) - } - - event := &core.RecordConfirmPasswordResetEvent{ - HttpContext: c, - } - - _, submitErr := form.Submit(func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - event.Record = record - - return api.app.OnRecordBeforeConfirmPasswordResetRequest().Trigger(event, func(e *core.RecordConfirmPasswordResetEvent) error { - if err := next(e.Record); err != nil { - return NewBadRequestError("Failed to set new password.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterConfirmPasswordResetRequest().Trigger(event) - } - - return submitErr -} - -func (api *recordAuthApi) requestVerification(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - form := forms.NewRecordVerificationRequest(api.app, collection) - if err := c.Bind(form); err != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", err) - } - - if err := form.Validate(); err != nil { - return NewBadRequestError("An error occurred while validating the form.", err) - } - - event := &core.RecordRequestVerificationEvent{ - HttpContext: c, - } - - submitErr := form.Submit(func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - event.Record = record - - return api.app.OnRecordBeforeRequestVerificationRequest().Trigger(event, func(e *core.RecordRequestVerificationEvent) error { - // run in background because we don't need to show the result to the client - routine.FireAndForget(func() { - if err := next(e.Record); err != nil && api.app.IsDebug() { - log.Println(err) - } - }) - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterRequestVerificationRequest().Trigger(event) - } else if api.app.IsDebug() { - log.Println(submitErr) - } - - // don't return the response error to prevent emails enumeration - if !c.Response().Committed { - c.NoContent(http.StatusNoContent) - } - - return nil -} - -func (api *recordAuthApi) confirmVerification(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - form := forms.NewRecordVerificationConfirm(api.app, collection) - if readErr := c.Bind(form); readErr != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", readErr) - } - - event := &core.RecordConfirmVerificationEvent{ - HttpContext: c, - } - - _, submitErr := form.Submit(func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - event.Record = record - - return api.app.OnRecordBeforeConfirmVerificationRequest().Trigger(event, func(e *core.RecordConfirmVerificationEvent) error { - if err := next(e.Record); err != nil { - return NewBadRequestError("An error occurred while submitting the form.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterConfirmVerificationRequest().Trigger(event) - } - - return submitErr -} - -func (api *recordAuthApi) requestEmailChange(c echo.Context) error { - record, _ := c.Get(ContextAuthRecordKey).(*models.Record) - if record == nil { - return NewUnauthorizedError("The request requires valid auth record.", nil) - } - - form := forms.NewRecordEmailChangeRequest(api.app, record) - if err := c.Bind(form); err != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", err) - } - - event := &core.RecordRequestEmailChangeEvent{ - HttpContext: c, - Record: record, - } - - submitErr := form.Submit(func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - return api.app.OnRecordBeforeRequestEmailChangeRequest().Trigger(event, func(e *core.RecordRequestEmailChangeEvent) error { - if err := next(e.Record); err != nil { - return NewBadRequestError("Failed to request email change.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterRequestEmailChangeRequest().Trigger(event) - } - - return submitErr -} - -func (api *recordAuthApi) confirmEmailChange(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - form := forms.NewRecordEmailChangeConfirm(api.app, collection) - if readErr := c.Bind(form); readErr != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", readErr) - } - - event := &core.RecordConfirmEmailChangeEvent{ - HttpContext: c, - } - - _, submitErr := form.Submit(func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - event.Record = record - - return api.app.OnRecordBeforeConfirmEmailChangeRequest().Trigger(event, func(e *core.RecordConfirmEmailChangeEvent) error { - if err := next(e.Record); err != nil { - return NewBadRequestError("Failed to confirm email change.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterConfirmEmailChangeRequest().Trigger(event) - } - - return submitErr -} - -func (api *recordAuthApi) listExternalAuths(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - id := c.PathParam("id") - if id == "" { - return NewNotFoundError("", nil) - } - - record, err := api.app.Dao().FindRecordById(collection.Id, id) - if err != nil || record == nil { - return NewNotFoundError("", err) - } - - externalAuths, err := api.app.Dao().FindAllExternalAuthsByRecord(record) - if err != nil { - return NewBadRequestError("Failed to fetch the external auths for the specified auth record.", err) - } - - event := &core.RecordListExternalAuthsEvent{ - HttpContext: c, - Record: record, - ExternalAuths: externalAuths, - } - - return api.app.OnRecordListExternalAuthsRequest().Trigger(event, func(e *core.RecordListExternalAuthsEvent) error { - return e.HttpContext.JSON(http.StatusOK, e.ExternalAuths) - }) -} - -func (api *recordAuthApi) unlinkExternalAuth(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("Missing collection context.", nil) - } - - id := c.PathParam("id") - provider := c.PathParam("provider") - if id == "" || provider == "" { - return NewNotFoundError("", nil) - } - - record, err := api.app.Dao().FindRecordById(collection.Id, id) - if err != nil || record == nil { - return NewNotFoundError("", err) - } - - externalAuth, err := api.app.Dao().FindExternalAuthByRecordAndProvider(record, provider) - if err != nil { - return NewNotFoundError("Missing external auth provider relation.", err) - } - - event := &core.RecordUnlinkExternalAuthEvent{ - HttpContext: c, - Record: record, - ExternalAuth: externalAuth, - } - - handlerErr := api.app.OnRecordBeforeUnlinkExternalAuthRequest().Trigger(event, func(e *core.RecordUnlinkExternalAuthEvent) error { - if err := api.app.Dao().DeleteExternalAuth(externalAuth); err != nil { - return NewBadRequestError("Cannot unlink the external auth provider.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - - if handlerErr == nil { - api.app.OnRecordAfterUnlinkExternalAuthRequest().Trigger(event) - } - - return handlerErr -} diff --git a/apis/record_auth_test.go b/apis/record_auth_test.go deleted file mode 100644 index 62cf521f67dda997e83b6ca7d69e127a11c32545..0000000000000000000000000000000000000000 --- a/apis/record_auth_test.go +++ /dev/null @@ -1,1092 +0,0 @@ -package apis_test - -import ( - "net/http" - "strings" - "testing" - "time" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestRecordAuthMethodsList(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodGet, - Url: "/api/collections/missing/auth-methods", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "non auth collection", - Method: http.MethodGet, - Url: "/api/collections/demo1/auth-methods", - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth collection with all auth methods allowed", - Method: http.MethodGet, - Url: "/api/collections/users/auth-methods", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"usernamePassword":true`, - `"emailPassword":true`, - `"authProviders":[{`, - `"name":"gitlab"`, - `"state":`, - `"codeVerifier":`, - `"codeChallenge":`, - `"codeChallengeMethod":`, - `"authUrl":`, - `redirect_uri="`, // ensures that the redirect_uri is the last url param - }, - }, - { - Name: "auth collection with only email/password auth allowed", - Method: http.MethodGet, - Url: "/api/collections/clients/auth-methods", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"usernamePassword":false`, - `"emailPassword":true`, - `"authProviders":[]`, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthWithPassword(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "authenticated record", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authenticated admin", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "invalid body format", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{"identity`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "empty body params", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{"identity":"","password":""}`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"identity":{`, - `"password":{`, - }, - }, - - // username - { - Name: "invalid username and valid password", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{ - "identity":"invalid", - "password":"1234567890" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "valid username and invalid password", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{ - "identity":"test2_username", - "password":"invalid" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "valid username and valid password in restricted collection", - Method: http.MethodPost, - Url: "/api/collections/nologin/auth-with-password", - Body: strings.NewReader(`{ - "identity":"test_username", - "password":"1234567890" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "valid username and valid password in allowed collection", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{ - "identity":"test2_username", - "password":"1234567890" - }`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"record":{`, - `"token":"`, - `"id":"oap640cot4yru2s"`, - `"email":"test2@example.com"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordAuthRequest": 1, - }, - }, - - // email - { - Name: "invalid email and valid password", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{ - "identity":"missing@example.com", - "password":"1234567890" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "valid email and invalid password", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{ - "identity":"test@example.com", - "password":"invalid" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "valid email and valid password in restricted collection", - Method: http.MethodPost, - Url: "/api/collections/nologin/auth-with-password", - Body: strings.NewReader(`{ - "identity":"test@example.com", - "password":"1234567890" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "valid email and valid password in allowed collection", - Method: http.MethodPost, - Url: "/api/collections/users/auth-with-password", - Body: strings.NewReader(`{ - "identity":"test@example.com", - "password":"1234567890" - }`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"record":{`, - `"token":"`, - `"id":"4q1xlclmfloku33"`, - `"email":"test@example.com"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordAuthRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthRefresh(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPost, - Url: "/api/collections/users/auth-refresh", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "admin", - Method: http.MethodPost, - Url: "/api/collections/users/auth-refresh", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record + not an auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/auth-refresh", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record + different auth collection", - Method: http.MethodPost, - Url: "/api/collections/clients/auth-refresh?expand=rel,missing", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record + same auth collection as the token", - Method: http.MethodPost, - Url: "/api/collections/users/auth-refresh?expand=rel,missing", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"token":`, - `"record":`, - `"id":"4q1xlclmfloku33"`, - `"emailVisibility":false`, - `"email":"test@example.com"`, // the owner can always view their email address - `"expand":`, - `"rel":`, - `"id":"llvuca81nly1qls"`, - }, - NotExpectedContent: []string{ - `"missing":`, - }, - ExpectedEvents: map[string]int{ - "OnRecordAuthRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthRequestPasswordReset(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "not an auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/request-password-reset", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/collections/users/request-password-reset", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"email":{"code":"validation_required","message":"Cannot be blank."}}`}, - }, - { - Name: "invalid data", - Method: http.MethodPost, - Url: "/api/collections/users/request-password-reset", - Body: strings.NewReader(`{"email`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "missing auth record", - Method: http.MethodPost, - Url: "/api/collections/users/request-password-reset", - Body: strings.NewReader(`{"email":"missing@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - }, - { - Name: "existing auth record", - Method: http.MethodPost, - Url: "/api/collections/users/request-password-reset", - Body: strings.NewReader(`{"email":"test@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnRecordBeforeRequestPasswordResetRequest": 1, - "OnRecordAfterRequestPasswordResetRequest": 1, - "OnMailerBeforeRecordResetPasswordSend": 1, - "OnMailerAfterRecordResetPasswordSend": 1, - }, - }, - { - Name: "existing auth record (after already sent)", - Method: http.MethodPost, - Url: "/api/collections/clients/request-password-reset", - Body: strings.NewReader(`{"email":"test@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - // simulate recent password request sent - authRecord, err := app.Dao().FindFirstRecordByData("clients", "email", "test@example.com") - if err != nil { - t.Fatal(err) - } - authRecord.SetLastResetSentAt(types.NowDateTime()) - dao := daos.New(app.Dao().DB()) // new dao to ignore hooks - if err := dao.Save(authRecord); err != nil { - t.Fatal(err) - } - }, - }, - { - Name: "existing auth record in a collection with disabled password login", - Method: http.MethodPost, - Url: "/api/collections/nologin/request-password-reset", - Body: strings.NewReader(`{"email":"test@example.com"}`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthConfirmPasswordReset(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-password-reset", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"password":{"code":"validation_required"`, - `"passwordConfirm":{"code":"validation_required"`, - `"token":{"code":"validation_required"`, - }, - }, - { - Name: "invalid data format", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-password-reset", - Body: strings.NewReader(`{"password`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired token and invalid password", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-password-reset", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoxNjQwOTkxNjYxfQ.TayHoXkOTM0w8InkBEb86npMJEaf6YVUrxrRmMgFjeY", - "password":"1234567", - "passwordConfirm":"7654321" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"token":{"code":"validation_invalid_token"`, - `"password":{"code":"validation_length_out_of_range"`, - `"passwordConfirm":{"code":"validation_values_mismatch"`, - }, - }, - { - Name: "non auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/confirm-password-reset?expand=rel,missing", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg", - "password":"12345678", - "passwordConfirm":"12345678" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "different auth collection", - Method: http.MethodPost, - Url: "/api/collections/clients/confirm-password-reset?expand=rel,missing", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg", - "password":"12345678", - "passwordConfirm":"12345678" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{"token":{"code":"validation_token_collection_mismatch"`, - }, - }, - { - Name: "valid token and data", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-password-reset", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg", - "password":"12345678", - "passwordConfirm":"12345678" - }`), - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordBeforeConfirmPasswordResetRequest": 1, - "OnRecordAfterConfirmPasswordResetRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthRequestVerification(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "not an auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/request-verification", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/collections/users/request-verification", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{"email":{"code":"validation_required","message":"Cannot be blank."}}`}, - }, - { - Name: "invalid data", - Method: http.MethodPost, - Url: "/api/collections/users/request-verification", - Body: strings.NewReader(`{"email`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "missing auth record", - Method: http.MethodPost, - Url: "/api/collections/users/request-verification", - Body: strings.NewReader(`{"email":"missing@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - }, - { - Name: "already verified auth record", - Method: http.MethodPost, - Url: "/api/collections/users/request-verification", - Body: strings.NewReader(`{"email":"test2@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnRecordBeforeRequestVerificationRequest": 1, - "OnRecordAfterRequestVerificationRequest": 1, - }, - }, - { - Name: "existing auth record", - Method: http.MethodPost, - Url: "/api/collections/users/request-verification", - Body: strings.NewReader(`{"email":"test@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnRecordBeforeRequestVerificationRequest": 1, - "OnRecordAfterRequestVerificationRequest": 1, - "OnMailerBeforeRecordVerificationSend": 1, - "OnMailerAfterRecordVerificationSend": 1, - }, - }, - { - Name: "existing auth record (after already sent)", - Method: http.MethodPost, - Url: "/api/collections/users/request-verification", - Body: strings.NewReader(`{"email":"test@example.com"}`), - Delay: 100 * time.Millisecond, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - // "OnRecordBeforeRequestVerificationRequest": 1, - // "OnRecordAfterRequestVerificationRequest": 1, - }, - BeforeTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - // simulate recent verification sent - authRecord, err := app.Dao().FindFirstRecordByData("users", "email", "test@example.com") - if err != nil { - t.Fatal(err) - } - authRecord.SetLastVerificationSentAt(types.NowDateTime()) - dao := daos.New(app.Dao().DB()) // new dao to ignore hooks - if err := dao.Save(authRecord); err != nil { - t.Fatal(err) - } - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthConfirmVerification(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-verification", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"token":{"code":"validation_required"`, - }, - }, - { - Name: "invalid data format", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-verification", - Body: strings.NewReader(`{"password`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired token", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-verification", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoxNjQwOTkxNjYxfQ.Avbt9IP8sBisVz_2AGrlxLDvangVq4PhL2zqQVYLKlE" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"token":{"code":"validation_invalid_token"`, - }, - }, - { - Name: "non auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/confirm-verification?expand=rel,missing", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "different auth collection", - Method: http.MethodPost, - Url: "/api/collections/clients/confirm-verification?expand=rel,missing", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.hL16TVmStHFdHLc4a860bRqJ3sFfzjv0_NRNzwsvsrc" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{"token":{"code":"validation_token_collection_mismatch"`, - }, - }, - { - Name: "valid token", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-verification", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.hL16TVmStHFdHLc4a860bRqJ3sFfzjv0_NRNzwsvsrc" - }`), - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordBeforeConfirmVerificationRequest": 1, - "OnRecordAfterConfirmVerificationRequest": 1, - }, - }, - { - Name: "valid token (already verified)", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-verification", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Im9hcDY0MGNvdDR5cnUycyIsImVtYWlsIjoidGVzdDJAZXhhbXBsZS5jb20iLCJjb2xsZWN0aW9uSWQiOiJfcGJfdXNlcnNfYXV0aF8iLCJ0eXBlIjoiYXV0aFJlY29yZCIsImV4cCI6MjIwODk4NTI2MX0.PsOABmYUzGbd088g8iIBL4-pf7DUZm0W5Ju6lL5JVRg" - }`), - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnRecordBeforeConfirmVerificationRequest": 1, - "OnRecordAfterConfirmVerificationRequest": 1, - }, - }, - { - Name: "valid verification token from a collection without allowed login", - Method: http.MethodPost, - Url: "/api/collections/nologin/confirm-verification", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRjNDlrNmpnZWpuNDBoMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6ImtwdjcwOXNrMmxxYnFrOCIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.coREjeTDS3_Go7DP1nxHtevIX5rujwHU-_mRB6oOm3w" - }`), - ExpectedStatus: 204, - ExpectedContent: []string{}, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordBeforeConfirmVerificationRequest": 1, - "OnRecordAfterConfirmVerificationRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthRequestEmailChange(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPost, - Url: "/api/collections/users/request-email-change", - Body: strings.NewReader(`{"newEmail":"change@example.com"}`), - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "not an auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/request-email-change", - Body: strings.NewReader(`{"newEmail":"change@example.com"}`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "admin authentication", - Method: http.MethodPost, - Url: "/api/collections/users/request-email-change", - Body: strings.NewReader(`{"newEmail":"change@example.com"}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "record authentication but from different auth collection", - Method: http.MethodPost, - Url: "/api/collections/clients/request-email-change", - Body: strings.NewReader(`{"newEmail":"change@example.com"}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "invalid data", - Method: http.MethodPost, - Url: "/api/collections/users/request-email-change", - Body: strings.NewReader(`{"newEmail`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/collections/users/request-email-change", - Body: strings.NewReader(`{}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":`, - `"newEmail":{"code":"validation_required"`, - }, - }, - { - Name: "valid data (existing email)", - Method: http.MethodPost, - Url: "/api/collections/users/request-email-change", - Body: strings.NewReader(`{"newEmail":"test2@example.com"}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":`, - `"newEmail":{"code":"validation_record_email_exists"`, - }, - }, - { - Name: "valid data (new email)", - Method: http.MethodPost, - Url: "/api/collections/users/request-email-change", - Body: strings.NewReader(`{"newEmail":"change@example.com"}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnMailerBeforeRecordChangeEmailSend": 1, - "OnMailerAfterRecordChangeEmailSend": 1, - "OnRecordBeforeRequestEmailChangeRequest": 1, - "OnRecordAfterRequestEmailChangeRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthConfirmEmailChange(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "not an auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/confirm-email-change", - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{}`, - }, - }, - { - Name: "empty data", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-email-change", - Body: strings.NewReader(``), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":`, - `"token":{"code":"validation_required"`, - `"password":{"code":"validation_required"`, - }, - }, - { - Name: "invalid data", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-email-change", - Body: strings.NewReader(`{"token`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expired token and correct password", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-email-change", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJjaGFuZ2VAZXhhbXBsZS5jb20iLCJleHAiOjE2NDA5OTE2NjF9.D20jh5Ss7SZyXRUXjjEyLCYo9Ky0N5cE5dKB_MGJ8G8", - "password":"1234567890" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"token":{`, - `"code":"validation_invalid_token"`, - }, - }, - { - Name: "valid token and incorrect password", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-email-change", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJjaGFuZ2VAZXhhbXBsZS5jb20iLCJleHAiOjIyMDg5ODUyNjF9.1sG6cL708pRXXjiHRZhG-in0X5fnttSf5nNcadKoYRs", - "password":"1234567891" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"password":{`, - `"code":"validation_invalid_password"`, - }, - }, - { - Name: "valid token and correct password", - Method: http.MethodPost, - Url: "/api/collections/users/confirm-email-change", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJjaGFuZ2VAZXhhbXBsZS5jb20iLCJleHAiOjIyMDg5ODUyNjF9.1sG6cL708pRXXjiHRZhG-in0X5fnttSf5nNcadKoYRs", - "password":"1234567890" - }`), - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordBeforeConfirmEmailChangeRequest": 1, - "OnRecordAfterConfirmEmailChangeRequest": 1, - }, - }, - { - Name: "valid token and correct password in different auth collection", - Method: http.MethodPost, - Url: "/api/collections/clients/confirm-email-change", - Body: strings.NewReader(`{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJjaGFuZ2VAZXhhbXBsZS5jb20iLCJleHAiOjIyMDg5ODUyNjF9.1sG6cL708pRXXjiHRZhG-in0X5fnttSf5nNcadKoYRs", - "password":"1234567890" - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"token":{"code":"validation_token_collection_mismatch"`, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthListExternalsAuths(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "admin + nonexisting record id", - Method: http.MethodGet, - Url: "/api/collections/users/records/missing/external-auths", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "admin + existing record id and no external auths", - Method: http.MethodGet, - Url: "/api/collections/users/records/oap640cot4yru2s/external-auths", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{`[]`}, - ExpectedEvents: map[string]int{"OnRecordListExternalAuthsRequest": 1}, - }, - { - Name: "admin + existing user id and 2 external auths", - Method: http.MethodGet, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"clmflokuq1xl341"`, - `"id":"dlmflokuq1xl342"`, - `"recordId":"4q1xlclmfloku33"`, - `"collectionId":"_pb_users_auth_"`, - }, - ExpectedEvents: map[string]int{"OnRecordListExternalAuthsRequest": 1}, - }, - { - Name: "auth record + trying to list another user external auths", - Method: http.MethodGet, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6Im9hcDY0MGNvdDR5cnUycyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.uatnTBFqMnF0p4FkmwEpA9R-uGFu0Putwyk6NJCKBno", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record + trying to list another user external auths from different collection", - Method: http.MethodGet, - Url: "/api/collections/clients/records/o1y0dd0spd786md/external-auths", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6Im9hcDY0MGNvdDR5cnUycyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.uatnTBFqMnF0p4FkmwEpA9R-uGFu0Putwyk6NJCKBno", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record + owner without external auths", - Method: http.MethodGet, - Url: "/api/collections/users/records/oap640cot4yru2s/external-auths", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6Im9hcDY0MGNvdDR5cnUycyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.uatnTBFqMnF0p4FkmwEpA9R-uGFu0Putwyk6NJCKBno", - }, - ExpectedStatus: 200, - ExpectedContent: []string{`[]`}, - ExpectedEvents: map[string]int{"OnRecordListExternalAuthsRequest": 1}, - }, - { - Name: "authorized as user - owner with 2 external auths", - Method: http.MethodGet, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"clmflokuq1xl341"`, - `"id":"dlmflokuq1xl342"`, - `"recordId":"4q1xlclmfloku33"`, - `"collectionId":"_pb_users_auth_"`, - }, - ExpectedEvents: map[string]int{"OnRecordListExternalAuthsRequest": 1}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordAuthUnlinkExternalsAuth(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodDelete, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths/google", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "admin - nonexisting recod id", - Method: http.MethodDelete, - Url: "/api/collections/users/records/missing/external-auths/google", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "admin - nonlinked provider", - Method: http.MethodDelete, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths/facebook", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "admin - linked provider", - Method: http.MethodDelete, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths/google", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedContent: []string{}, - ExpectedEvents: map[string]int{ - "OnModelAfterDelete": 1, - "OnModelBeforeDelete": 1, - "OnRecordAfterUnlinkExternalAuthRequest": 1, - "OnRecordBeforeUnlinkExternalAuthRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - record, err := app.Dao().FindRecordById("users", "4q1xlclmfloku33") - if err != nil { - t.Fatal(err) - } - auth, _ := app.Dao().FindExternalAuthByRecordAndProvider(record, "google") - if auth != nil { - t.Fatalf("Expected the google ExternalAuth to be deleted, got got \n%v", auth) - } - }, - }, - { - Name: "auth record - trying to unlink another user external auth", - Method: http.MethodDelete, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths/google", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6Im9hcDY0MGNvdDR5cnUycyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.uatnTBFqMnF0p4FkmwEpA9R-uGFu0Putwyk6NJCKBno", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record - trying to unlink another user external auth from different collection", - Method: http.MethodDelete, - Url: "/api/collections/clients/records/o1y0dd0spd786md/external-auths/google", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record - owner with existing external auth", - Method: http.MethodDelete, - Url: "/api/collections/users/records/4q1xlclmfloku33/external-auths/google", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 204, - ExpectedContent: []string{}, - ExpectedEvents: map[string]int{ - "OnModelAfterDelete": 1, - "OnModelBeforeDelete": 1, - "OnRecordAfterUnlinkExternalAuthRequest": 1, - "OnRecordBeforeUnlinkExternalAuthRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - record, err := app.Dao().FindRecordById("users", "4q1xlclmfloku33") - if err != nil { - t.Fatal(err) - } - auth, _ := app.Dao().FindExternalAuthByRecordAndProvider(record, "google") - if auth != nil { - t.Fatalf("Expected the google ExternalAuth to be deleted, got got \n%v", auth) - } - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/record_crud.go b/apis/record_crud.go deleted file mode 100644 index 5d25f8f7c2f0be1d47b72e49efa1c74f64a73aa7..0000000000000000000000000000000000000000 --- a/apis/record_crud.go +++ /dev/null @@ -1,390 +0,0 @@ -package apis - -import ( - "fmt" - "log" - "net/http" - "strings" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/resolvers" - "github.com/pocketbase/pocketbase/tools/search" -) - -const expandQueryParam = "expand" - -// bindRecordCrudApi registers the record crud api endpoints and -// the corresponding handlers. -func bindRecordCrudApi(app core.App, rg *echo.Group) { - api := recordApi{app: app} - - subGroup := rg.Group( - "/collections/:collection", - ActivityLogger(app), - LoadCollectionContext(app), - ) - - subGroup.GET("/records", api.list) - subGroup.POST("/records", api.create) - subGroup.GET("/records/:id", api.view) - subGroup.PATCH("/records/:id", api.update) - subGroup.DELETE("/records/:id", api.delete) -} - -type recordApi struct { - app core.App -} - -func (api *recordApi) list(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("", "Missing collection context.") - } - - // forbid users and guests to query special filter/sort fields - if err := api.checkForForbiddenQueryFields(c); err != nil { - return err - } - - requestData := RequestData(c) - - if requestData.Admin == nil && collection.ListRule == nil { - // only admins can access if the rule is nil - return NewForbiddenError("Only admins can perform this action.", nil) - } - - fieldsResolver := resolvers.NewRecordFieldResolver( - api.app.Dao(), - collection, - requestData, - // hidden fields are searchable only by admins - requestData.Admin != nil, - ) - - searchProvider := search.NewProvider(fieldsResolver). - Query(api.app.Dao().RecordQuery(collection)) - - if requestData.Admin == nil && collection.ListRule != nil { - searchProvider.AddFilter(search.FilterData(*collection.ListRule)) - } - - var rawRecords = []dbx.NullStringMap{} - result, err := searchProvider.ParseAndExec(c.QueryString(), &rawRecords) - if err != nil { - return NewBadRequestError("Invalid filter parameters.", err) - } - - records := models.NewRecordsFromNullStringMaps(collection, rawRecords) - - result.Items = records - - event := &core.RecordsListEvent{ - HttpContext: c, - Collection: collection, - Records: records, - Result: result, - } - - return api.app.OnRecordsListRequest().Trigger(event, func(e *core.RecordsListEvent) error { - if err := EnrichRecords(e.HttpContext, api.app.Dao(), e.Records); err != nil && api.app.IsDebug() { - log.Println(err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Result) - }) -} - -func (api *recordApi) view(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("", "Missing collection context.") - } - - recordId := c.PathParam("id") - if recordId == "" { - return NewNotFoundError("", nil) - } - - requestData := RequestData(c) - - if requestData.Admin == nil && collection.ViewRule == nil { - // only admins can access if the rule is nil - return NewForbiddenError("Only admins can perform this action.", nil) - } - - ruleFunc := func(q *dbx.SelectQuery) error { - if requestData.Admin == nil && collection.ViewRule != nil && *collection.ViewRule != "" { - resolver := resolvers.NewRecordFieldResolver(api.app.Dao(), collection, requestData, true) - expr, err := search.FilterData(*collection.ViewRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - } - return nil - } - - record, fetchErr := api.app.Dao().FindRecordById(collection.Id, recordId, ruleFunc) - if fetchErr != nil || record == nil { - return NewNotFoundError("", fetchErr) - } - - event := &core.RecordViewEvent{ - HttpContext: c, - Record: record, - } - - return api.app.OnRecordViewRequest().Trigger(event, func(e *core.RecordViewEvent) error { - if err := EnrichRecord(e.HttpContext, api.app.Dao(), e.Record); err != nil && api.app.IsDebug() { - log.Println(err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Record) - }) -} - -func (api *recordApi) create(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("", "Missing collection context.") - } - - requestData := RequestData(c) - - if requestData.Admin == nil && collection.CreateRule == nil { - // only admins can access if the rule is nil - return NewForbiddenError("Only admins can perform this action.", nil) - } - - hasFullManageAccess := requestData.Admin != nil - - // temporary save the record and check it against the create rule - if requestData.Admin == nil && collection.CreateRule != nil { - createRuleFunc := func(q *dbx.SelectQuery) error { - if *collection.CreateRule == "" { - return nil // no create rule to resolve - } - - resolver := resolvers.NewRecordFieldResolver(api.app.Dao(), collection, requestData, true) - expr, err := search.FilterData(*collection.CreateRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - return nil - } - - testRecord := models.NewRecord(collection) - testForm := forms.NewRecordUpsert(api.app, testRecord) - testForm.SetFullManageAccess(true) - if err := testForm.LoadRequest(c.Request(), ""); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - testErr := testForm.DrySubmit(func(txDao *daos.Dao) error { - foundRecord, err := txDao.FindRecordById(collection.Id, testRecord.Id, createRuleFunc) - if err != nil { - return fmt.Errorf("DrySubmit create rule failure: %w", err) - } - hasFullManageAccess = hasAuthManageAccess(txDao, foundRecord, requestData) - return nil - }) - - if testErr != nil { - return NewBadRequestError("Failed to create record.", testErr) - } - } - - record := models.NewRecord(collection) - form := forms.NewRecordUpsert(api.app, record) - form.SetFullManageAccess(hasFullManageAccess) - - // load request - if err := form.LoadRequest(c.Request(), ""); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - event := &core.RecordCreateEvent{ - HttpContext: c, - Record: record, - } - - // create the record - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnRecordBeforeCreateRequest().Trigger(event, func(e *core.RecordCreateEvent) error { - if err := next(); err != nil { - return NewBadRequestError("Failed to create record.", err) - } - - if err := EnrichRecord(e.HttpContext, api.app.Dao(), e.Record); err != nil && api.app.IsDebug() { - log.Println(err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Record) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterCreateRequest().Trigger(event) - } - - return submitErr -} - -func (api *recordApi) update(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("", "Missing collection context.") - } - - recordId := c.PathParam("id") - if recordId == "" { - return NewNotFoundError("", nil) - } - - requestData := RequestData(c) - - if requestData.Admin == nil && collection.UpdateRule == nil { - // only admins can access if the rule is nil - return NewForbiddenError("Only admins can perform this action.", nil) - } - - ruleFunc := func(q *dbx.SelectQuery) error { - if requestData.Admin == nil && collection.UpdateRule != nil && *collection.UpdateRule != "" { - resolver := resolvers.NewRecordFieldResolver(api.app.Dao(), collection, requestData, true) - expr, err := search.FilterData(*collection.UpdateRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - } - return nil - } - - // fetch record - record, fetchErr := api.app.Dao().FindRecordById(collection.Id, recordId, ruleFunc) - if fetchErr != nil || record == nil { - return NewNotFoundError("", fetchErr) - } - - form := forms.NewRecordUpsert(api.app, record) - form.SetFullManageAccess(requestData.Admin != nil || hasAuthManageAccess(api.app.Dao(), record, requestData)) - - // load request - if err := form.LoadRequest(c.Request(), ""); err != nil { - return NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err) - } - - event := &core.RecordUpdateEvent{ - HttpContext: c, - Record: record, - } - - // update the record - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnRecordBeforeUpdateRequest().Trigger(event, func(e *core.RecordUpdateEvent) error { - if err := next(); err != nil { - return NewBadRequestError("Failed to update record.", err) - } - - if err := EnrichRecord(e.HttpContext, api.app.Dao(), e.Record); err != nil && api.app.IsDebug() { - log.Println(err) - } - - return e.HttpContext.JSON(http.StatusOK, e.Record) - }) - } - }) - - if submitErr == nil { - api.app.OnRecordAfterUpdateRequest().Trigger(event) - } - - return submitErr -} - -func (api *recordApi) delete(c echo.Context) error { - collection, _ := c.Get(ContextCollectionKey).(*models.Collection) - if collection == nil { - return NewNotFoundError("", "Missing collection context.") - } - - recordId := c.PathParam("id") - if recordId == "" { - return NewNotFoundError("", nil) - } - - requestData := RequestData(c) - - if requestData.Admin == nil && collection.DeleteRule == nil { - // only admins can access if the rule is nil - return NewForbiddenError("Only admins can perform this action.", nil) - } - - ruleFunc := func(q *dbx.SelectQuery) error { - if requestData.Admin == nil && collection.DeleteRule != nil && *collection.DeleteRule != "" { - resolver := resolvers.NewRecordFieldResolver(api.app.Dao(), collection, requestData, true) - expr, err := search.FilterData(*collection.DeleteRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - } - return nil - } - - record, fetchErr := api.app.Dao().FindRecordById(collection.Id, recordId, ruleFunc) - if fetchErr != nil || record == nil { - return NewNotFoundError("", fetchErr) - } - - event := &core.RecordDeleteEvent{ - HttpContext: c, - Record: record, - } - - handlerErr := api.app.OnRecordBeforeDeleteRequest().Trigger(event, func(e *core.RecordDeleteEvent) error { - // delete the record - if err := api.app.Dao().DeleteRecord(e.Record); err != nil { - return NewBadRequestError("Failed to delete record. Make sure that the record is not part of a required relation reference.", err) - } - - return e.HttpContext.NoContent(http.StatusNoContent) - }) - - if handlerErr == nil { - api.app.OnRecordAfterDeleteRequest().Trigger(event) - } - - return handlerErr -} - -func (api *recordApi) checkForForbiddenQueryFields(c echo.Context) error { - admin, _ := c.Get(ContextAdminKey).(*models.Admin) - if admin != nil { - return nil // admins are allowed to query everything - } - - decodedQuery := c.QueryParam(search.FilterQueryParam) + c.QueryParam(search.SortQueryParam) - forbiddenFields := []string{"@collection.", "@request."} - - for _, field := range forbiddenFields { - if strings.Contains(decodedQuery, field) { - return NewForbiddenError("Only admins can filter by @collection and @request query params", nil) - } - } - - return nil -} diff --git a/apis/record_crud_test.go b/apis/record_crud_test.go deleted file mode 100644 index 9b21baa637a8ceb6bccd95b8080aa92700a58822..0000000000000000000000000000000000000000 --- a/apis/record_crud_test.go +++ /dev/null @@ -1,1749 +0,0 @@ -package apis_test - -import ( - "net/http" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestRecordCrudList(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodGet, - Url: "/api/collections/missing/records", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "unauthenticated trying to access nil rule collection (aka. need admin auth)", - Method: http.MethodGet, - Url: "/api/collections/demo1/records", - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authenticated record trying to access nil rule collection (aka. need admin auth)", - Method: http.MethodGet, - Url: "/api/collections/demo1/records", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "public collection but with admin only filter/sort (aka. @collection)", - Method: http.MethodGet, - Url: "/api/collections/demo2/records?filter=@collection.demo2.title='test1'", - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "public collection but with ENCODED admin only filter/sort (aka. @collection)", - Method: http.MethodGet, - Url: "/api/collections/demo2/records?filter=%40collection.demo2.title%3D%27test1%27", - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "public collection", - Method: http.MethodGet, - Url: "/api/collections/demo2/records", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"0yxhwia2amd8gec"`, - `"id":"achvryl401bhse3"`, - `"id":"llvuca81nly1qls"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "public collection (using the collection id)", - Method: http.MethodGet, - Url: "/api/collections/sz5l5z67tg7gku0/records", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"0yxhwia2amd8gec"`, - `"id":"achvryl401bhse3"`, - `"id":"llvuca81nly1qls"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "authorized as admin trying to access nil rule collection (aka. need admin auth)", - Method: http.MethodGet, - Url: "/api/collections/demo1/records", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"al1h9ijdeojtsjy"`, - `"id":"84nmscqy84lsi1t"`, - `"id":"imy661ixudk5izi"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "valid query params", - Method: http.MethodGet, - Url: "/api/collections/demo1/records?filter=text~'test'&sort=-bool", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":2`, - `"items":[{`, - `"id":"al1h9ijdeojtsjy"`, - `"id":"84nmscqy84lsi1t"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "invalid filter", - Method: http.MethodGet, - Url: "/api/collections/demo1/records?filter=invalid~'test'", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "expand relations", - Method: http.MethodGet, - Url: "/api/collections/demo1/records?expand=rel_one,rel_many.rel,missing&perPage=2&sort=created", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":2`, - `"totalPages":2`, - `"totalItems":3`, - `"items":[{`, - `"collectionName":"demo1"`, - `"id":"84nmscqy84lsi1t"`, - `"id":"al1h9ijdeojtsjy"`, - `"expand":{`, - `"rel_one":""`, - `"rel_one":{"`, - `"rel_many":[{`, - `"rel":{`, - `"rel":""`, - `"json":[1,2,3]`, - `"select_many":["optionB","optionC"]`, - `"select_many":["optionB"]`, - // subrel items - `"id":"0yxhwia2amd8gec"`, - `"id":"llvuca81nly1qls"`, - // email visibility should be ignored for admins even in expanded rels - `"email":"test@example.com"`, - `"email":"test2@example.com"`, - `"email":"test3@example.com"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "authenticated record model that DOESN'T match the collection list rule", - Method: http.MethodGet, - Url: "/api/collections/demo3/records", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalItems":0`, - `"items":[]`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "authenticated record that matches the collection list rule", - Method: http.MethodGet, - Url: "/api/collections/demo3/records", - RequestHeaders: map[string]string{ - // clients, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImdrMzkwcWVnczR5NDd3biIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoidjg1MXE0cjc5MHJoa25sIiwiZXhwIjoyMjA4OTg1MjYxfQ.q34IWXrRWsjLvbbVNRfAs_J4SoTHloNBfdGEiLmy-D8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":4`, - `"items":[{`, - `"id":"1tmknxy2868d869"`, - `"id":"lcl9d87w22ml6jy"`, - `"id":"7nwo8tuiatetxdm"`, - `"id":"mk5fmymtx4wsprk"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - - // auth collection checks - // ----------------------------------------------------------- - { - Name: "check email visibility as guest", - Method: http.MethodGet, - Url: "/api/collections/nologin/records", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"phhq3wr65cap535"`, - `"id":"dc49k6jgejn40h3"`, - `"id":"oos036e9xvqeexy"`, - `"email":"test2@example.com"`, - `"emailVisibility":true`, - `"emailVisibility":false`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - `"email":"test@example.com"`, - `"email":"test3@example.com"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "check email visibility as any authenticated record", - Method: http.MethodGet, - Url: "/api/collections/nologin/records", - RequestHeaders: map[string]string{ - // clients, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImdrMzkwcWVnczR5NDd3biIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoidjg1MXE0cjc5MHJoa25sIiwiZXhwIjoyMjA4OTg1MjYxfQ.q34IWXrRWsjLvbbVNRfAs_J4SoTHloNBfdGEiLmy-D8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"phhq3wr65cap535"`, - `"id":"dc49k6jgejn40h3"`, - `"id":"oos036e9xvqeexy"`, - `"email":"test2@example.com"`, - `"emailVisibility":true`, - `"emailVisibility":false`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - `"email":"test@example.com"`, - `"email":"test3@example.com"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "check email visibility as manage auth record", - Method: http.MethodGet, - Url: "/api/collections/nologin/records", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"phhq3wr65cap535"`, - `"id":"dc49k6jgejn40h3"`, - `"id":"oos036e9xvqeexy"`, - `"email":"test@example.com"`, - `"email":"test2@example.com"`, - `"email":"test3@example.com"`, - `"emailVisibility":true`, - `"emailVisibility":false`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "check email visibility as admin", - Method: http.MethodGet, - Url: "/api/collections/nologin/records", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"phhq3wr65cap535"`, - `"id":"dc49k6jgejn40h3"`, - `"id":"oos036e9xvqeexy"`, - `"email":"test@example.com"`, - `"email":"test2@example.com"`, - `"email":"test3@example.com"`, - `"emailVisibility":true`, - `"emailVisibility":false`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - { - Name: "check self email visibility resolver", - Method: http.MethodGet, - Url: "/api/collections/nologin/records", - RequestHeaders: map[string]string{ - // nologin, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImRjNDlrNmpnZWpuNDBoMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoia3B2NzA5c2sybHFicWs4IiwiZXhwIjoyMjA4OTg1MjYxfQ.DOYSon3x1-C0hJbwjEU6dp2-6oLeEa8bOlkyP1CinyM", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"page":1`, - `"perPage":30`, - `"totalPages":1`, - `"totalItems":3`, - `"items":[{`, - `"id":"phhq3wr65cap535"`, - `"id":"dc49k6jgejn40h3"`, - `"id":"oos036e9xvqeexy"`, - `"email":"test2@example.com"`, - `"email":"test@example.com"`, - `"emailVisibility":true`, - `"emailVisibility":false`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - `"email":"test3@example.com"`, - }, - ExpectedEvents: map[string]int{"OnRecordsListRequest": 1}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordCrudView(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodGet, - Url: "/api/collections/missing/records/0yxhwia2amd8gec", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "missing record", - Method: http.MethodGet, - Url: "/api/collections/demo2/records/missing", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "unauthenticated trying to access nil rule collection (aka. need admin auth)", - Method: http.MethodGet, - Url: "/api/collections/demo1/records/imy661ixudk5izi", - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authenticated record trying to access nil rule collection (aka. need admin auth)", - Method: http.MethodGet, - Url: "/api/collections/demo1/records/imy661ixudk5izi", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authenticated record that doesn't match the collection view rule", - Method: http.MethodGet, - Url: "/api/collections/users/records/bgs820n361vj1qd", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "public collection view", - Method: http.MethodGet, - Url: "/api/collections/demo2/records/0yxhwia2amd8gec", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"0yxhwia2amd8gec"`, - `"collectionName":"demo2"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "public collection view (using the collection id)", - Method: http.MethodGet, - Url: "/api/collections/sz5l5z67tg7gku0/records/0yxhwia2amd8gec", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"0yxhwia2amd8gec"`, - `"collectionName":"demo2"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "authorized as admin trying to access nil rule collection view (aka. need admin auth)", - Method: http.MethodGet, - Url: "/api/collections/demo1/records/imy661ixudk5izi", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"imy661ixudk5izi"`, - `"collectionName":"demo1"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "authenticated record that does match the collection view rule", - Method: http.MethodGet, - Url: "/api/collections/users/records/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"4q1xlclmfloku33"`, - `"collectionName":"users"`, - // owners can always view their email - `"emailVisibility":false`, - `"email":"test@example.com"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "expand relations", - Method: http.MethodGet, - Url: "/api/collections/demo1/records/al1h9ijdeojtsjy?expand=rel_one,rel_many.rel,missing&perPage=2&sort=created", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"al1h9ijdeojtsjy"`, - `"collectionName":"demo1"`, - `"rel_many":[{`, - `"rel_one":{`, - `"collectionName":"users"`, - `"id":"bgs820n361vj1qd"`, - `"expand":{"rel":{`, - `"id":"0yxhwia2amd8gec"`, - `"collectionName":"demo2"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - - // auth collection checks - // ----------------------------------------------------------- - { - Name: "check email visibility as guest", - Method: http.MethodGet, - Url: "/api/collections/nologin/records/oos036e9xvqeexy", - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"oos036e9xvqeexy"`, - `"emailVisibility":false`, - `"verified":true`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - `"email":"test3@example.com"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "check email visibility as any authenticated record", - Method: http.MethodGet, - Url: "/api/collections/nologin/records/oos036e9xvqeexy", - RequestHeaders: map[string]string{ - // clients, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImdrMzkwcWVnczR5NDd3biIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoidjg1MXE0cjc5MHJoa25sIiwiZXhwIjoyMjA4OTg1MjYxfQ.q34IWXrRWsjLvbbVNRfAs_J4SoTHloNBfdGEiLmy-D8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"oos036e9xvqeexy"`, - `"emailVisibility":false`, - `"verified":true`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - `"email":"test3@example.com"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "check email visibility as manage auth record", - Method: http.MethodGet, - Url: "/api/collections/nologin/records/oos036e9xvqeexy", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"oos036e9xvqeexy"`, - `"emailVisibility":false`, - `"email":"test3@example.com"`, - `"verified":true`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "check email visibility as admin", - Method: http.MethodGet, - Url: "/api/collections/nologin/records/oos036e9xvqeexy", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"oos036e9xvqeexy"`, - `"emailVisibility":false`, - `"email":"test3@example.com"`, - `"verified":true`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - { - Name: "check self email visibility resolver", - Method: http.MethodGet, - Url: "/api/collections/nologin/records/dc49k6jgejn40h3", - RequestHeaders: map[string]string{ - // nologin, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6ImRjNDlrNmpnZWpuNDBoMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoia3B2NzA5c2sybHFicWs4IiwiZXhwIjoyMjA4OTg1MjYxfQ.DOYSon3x1-C0hJbwjEU6dp2-6oLeEa8bOlkyP1CinyM", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"dc49k6jgejn40h3"`, - `"email":"test@example.com"`, - `"emailVisibility":false`, - `"verified":false`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{"OnRecordViewRequest": 1}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordCrudDelete(t *testing.T) { - ensureDeletedFiles := func(app *tests.TestApp, collectionId string, recordId string) { - storageDir := filepath.Join(app.DataDir(), "storage", collectionId, recordId) - - entries, _ := os.ReadDir(storageDir) - if len(entries) != 0 { - t.Errorf("Expected empty/deleted dir, found %d", len(entries)) - } - } - - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodDelete, - Url: "/api/collections/missing/records/0yxhwia2amd8gec", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "missing record", - Method: http.MethodDelete, - Url: "/api/collections/demo2/records/missing", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "unauthenticated trying to delete nil rule collection (aka. need admin auth)", - Method: http.MethodDelete, - Url: "/api/collections/demo1/records/imy661ixudk5izi", - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authenticated record trying to delete nil rule collection (aka. need admin auth)", - Method: http.MethodDelete, - Url: "/api/collections/demo1/records/imy661ixudk5izi", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authenticated record that doesn't match the collection delete rule", - Method: http.MethodDelete, - Url: "/api/collections/users/records/bgs820n361vj1qd", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "public collection record delete", - Method: http.MethodDelete, - Url: "/api/collections/nologin/records/dc49k6jgejn40h3", - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelAfterDelete": 1, - "OnModelBeforeDelete": 1, - "OnRecordAfterDeleteRequest": 1, - "OnRecordBeforeDeleteRequest": 1, - }, - }, - { - Name: "public collection record delete (using the collection id as identifier)", - Method: http.MethodDelete, - Url: "/api/collections/kpv709sk2lqbqk8/records/dc49k6jgejn40h3", - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelAfterDelete": 1, - "OnModelBeforeDelete": 1, - "OnRecordAfterDeleteRequest": 1, - "OnRecordBeforeDeleteRequest": 1, - }, - }, - { - Name: "authorized as admin trying to delete nil rule collection view (aka. need admin auth)", - Method: http.MethodDelete, - Url: "/api/collections/clients/records/o1y0dd0spd786md", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelAfterDelete": 1, - "OnModelBeforeDelete": 1, - "OnRecordAfterDeleteRequest": 1, - "OnRecordBeforeDeleteRequest": 1, - }, - }, - { - Name: "authenticated record that does match the collection delete rule", - Method: http.MethodDelete, - Url: "/api/collections/users/records/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelAfterDelete": 1, - "OnModelAfterUpdate": 1, - "OnModelBeforeDelete": 1, - "OnModelBeforeUpdate": 1, - "OnRecordAfterDeleteRequest": 1, - "OnRecordBeforeDeleteRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - ensureDeletedFiles(app, "_pb_users_auth_", "4q1xlclmfloku33") - - // check if all the external auths records were deleted - collection, _ := app.Dao().FindCollectionByNameOrId("users") - record := models.NewRecord(collection) - record.Id = "4q1xlclmfloku33" - externalAuths, err := app.Dao().FindAllExternalAuthsByRecord(record) - if err != nil { - t.Errorf("Failed to fetch external auths: %v", err) - } - if len(externalAuths) > 0 { - t.Errorf("Expected the linked external auths to be deleted, got %d", len(externalAuths)) - } - }, - }, - - // cascade delete checks - // ----------------------------------------------------------- - { - Name: "trying to delete a record while being part of a non-cascade required relation", - Method: http.MethodDelete, - Url: "/api/collections/demo3/records/7nwo8tuiatetxdm", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - ExpectedEvents: map[string]int{ - "OnRecordBeforeDeleteRequest": 1, - "OnModelBeforeUpdate": 1, // self_rel_many update of test1 record - "OnModelBeforeDelete": 1, // rel_one_cascade of test1 record - }, - }, - { - Name: "delete a record with non-cascade references", - Method: http.MethodDelete, - Url: "/api/collections/demo3/records/1tmknxy2868d869", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeDelete": 1, - "OnModelAfterDelete": 1, - "OnModelBeforeUpdate": 2, - "OnModelAfterUpdate": 2, - "OnRecordBeforeDeleteRequest": 1, - "OnRecordAfterDeleteRequest": 1, - }, - }, - { - Name: "delete a record with cascade references", - Method: http.MethodDelete, - Url: "/api/collections/users/records/oap640cot4yru2s", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 204, - ExpectedEvents: map[string]int{ - "OnModelBeforeDelete": 2, - "OnModelAfterDelete": 2, - "OnModelBeforeUpdate": 2, - "OnModelAfterUpdate": 2, - "OnRecordBeforeDeleteRequest": 1, - "OnRecordAfterDeleteRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - recId := "84nmscqy84lsi1t" - rec, _ := app.Dao().FindRecordById("demo1", recId, nil) - if rec != nil { - t.Errorf("Expected record %s to be cascade deleted", recId) - } - ensureDeletedFiles(app, "wsmn24bux7wo113", recId) - ensureDeletedFiles(app, "_pb_users_auth_", "oap640cot4yru2s") - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordCrudCreate(t *testing.T) { - formData, mp, err := tests.MockMultipartData(map[string]string{ - "title": "title_test", - }, "files") - if err != nil { - t.Fatal(err) - } - - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodPost, - Url: "/api/collections/missing/records", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "guest trying to access nil-rule collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/records", - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record trying to access nil-rule collection", - Method: http.MethodPost, - Url: "/api/collections/demo1/records", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "submit nil body", - Method: http.MethodPost, - Url: "/api/collections/demo2/records", - Body: nil, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "submit invalid format", - Method: http.MethodPost, - Url: "/api/collections/demo2/records", - Body: strings.NewReader(`{"`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "submit empty json body", - Method: http.MethodPost, - Url: "/api/collections/nologin/records", - Body: strings.NewReader(`{}`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"email":{"code":"validation_required"`, - `"password":{"code":"validation_required"`, - `"passwordConfirm":{"code":"validation_required"`, - }, - }, - { - Name: "guest submit in public collection", - Method: http.MethodPost, - Url: "/api/collections/demo2/records", - Body: strings.NewReader(`{"title":"new"}`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"title":"new"`, - `"active":false`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeCreateRequest": 1, - "OnRecordAfterCreateRequest": 1, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }, - }, - { - Name: "guest trying to submit in restricted collection", - Method: http.MethodPost, - Url: "/api/collections/demo3/records", - Body: strings.NewReader(`{"title":"test123"}`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record submit in restricted collection (rule failure check)", - Method: http.MethodPost, - Url: "/api/collections/demo3/records", - Body: strings.NewReader(`{"title":"test123"}`), - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record submit in restricted collection (rule pass check) + expand relations", - Method: http.MethodPost, - Url: "/api/collections/demo4/records?expand=missing,rel_one_no_cascade,rel_many_no_cascade_required", - Body: strings.NewReader(`{ - "title":"test123", - "rel_one_no_cascade":"mk5fmymtx4wsprk", - "rel_one_no_cascade_required":"7nwo8tuiatetxdm", - "rel_one_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"], - "rel_many_cascade":"lcl9d87w22ml6jy" - }`), - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"title":"test123"`, - `"rel_one_no_cascade":"mk5fmymtx4wsprk"`, - `"rel_one_no_cascade_required":"7nwo8tuiatetxdm"`, - `"rel_one_cascade":"mk5fmymtx4wsprk"`, - `"rel_many_no_cascade":["mk5fmymtx4wsprk"]`, - `"rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"]`, - `"rel_many_cascade":["lcl9d87w22ml6jy"]`, - }, - NotExpectedContent: []string{ - // the users auth records don't have access to view the demo3 expands - `"expand":{`, - `"missing"`, - `"id":"mk5fmymtx4wsprk"`, - `"id":"7nwo8tuiatetxdm"`, - `"id":"lcl9d87w22ml6jy"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeCreateRequest": 1, - "OnRecordAfterCreateRequest": 1, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }, - }, - { - Name: "admin submit in restricted collection (rule skip check) + expand relations", - Method: http.MethodPost, - Url: "/api/collections/demo4/records?expand=missing,rel_one_no_cascade,rel_many_no_cascade_required", - Body: strings.NewReader(`{ - "title":"test123", - "rel_one_no_cascade":"mk5fmymtx4wsprk", - "rel_one_no_cascade_required":"7nwo8tuiatetxdm", - "rel_one_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"], - "rel_many_cascade":"lcl9d87w22ml6jy" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":`, - `"title":"test123"`, - `"rel_one_no_cascade":"mk5fmymtx4wsprk"`, - `"rel_one_no_cascade_required":"7nwo8tuiatetxdm"`, - `"rel_one_cascade":"mk5fmymtx4wsprk"`, - `"rel_many_no_cascade":["mk5fmymtx4wsprk"]`, - `"rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"]`, - `"rel_many_cascade":["lcl9d87w22ml6jy"]`, - `"expand":{`, - `"id":"mk5fmymtx4wsprk"`, - `"id":"7nwo8tuiatetxdm"`, - `"id":"lcl9d87w22ml6jy"`, - }, - NotExpectedContent: []string{ - `"missing"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeCreateRequest": 1, - "OnRecordAfterCreateRequest": 1, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }, - }, - { - Name: "submit via multipart form data", - Method: http.MethodPost, - Url: "/api/collections/demo3/records", - Body: formData, - RequestHeaders: map[string]string{ - "Content-Type": mp.FormDataContentType(), - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"`, - `"title":"title_test"`, - `"files":["`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeCreateRequest": 1, - "OnRecordAfterCreateRequest": 1, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }, - }, - - // ID checks - // ----------------------------------------------------------- - { - Name: "invalid custom insertion id (less than 15 chars)", - Method: http.MethodPost, - Url: "/api/collections/demo3/records", - Body: strings.NewReader(`{ - "id": "12345678901234", - "title": "test" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"id":{"code":"validation_length_invalid"`, - }, - }, - { - Name: "invalid custom insertion id (more than 15 chars)", - Method: http.MethodPost, - Url: "/api/collections/demo3/records", - Body: strings.NewReader(`{ - "id": "1234567890123456", - "title": "test" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"id":{"code":"validation_length_invalid"`, - }, - }, - { - Name: "valid custom insertion id (exactly 15 chars)", - Method: http.MethodPost, - Url: "/api/collections/demo3/records", - Body: strings.NewReader(`{ - "id": "123456789012345", - "title": "test" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"123456789012345"`, - `"title":"test"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeCreateRequest": 1, - "OnRecordAfterCreateRequest": 1, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }, - }, - { - Name: "valid custom insertion id existing in another non-auth collection", - Method: http.MethodPost, - Url: "/api/collections/demo3/records", - Body: strings.NewReader(`{ - "id": "0yxhwia2amd8gec", - "title": "test" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"0yxhwia2amd8gec"`, - `"title":"test"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeCreateRequest": 1, - "OnRecordAfterCreateRequest": 1, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }, - }, - { - Name: "valid custom insertion auth id duplicating in another auth collection", - Method: http.MethodPost, - Url: "/api/collections/users/records", - Body: strings.NewReader(`{ - "id":"o1y0dd0spd786md", - "title":"test", - "password":"1234567890", - "passwordConfirm":"1234567890" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - ExpectedEvents: map[string]int{ - "OnRecordBeforeCreateRequest": 1, - }, - }, - - // auth records - // ----------------------------------------------------------- - { - Name: "auth record with invalid data", - Method: http.MethodPost, - Url: "/api/collections/users/records", - Body: strings.NewReader(`{ - "id":"o1y0pd786mq", - "username":"Users75657", - "email":"invalid", - "password":"1234567", - "passwordConfirm":"1234560" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"id":{"code":"validation_length_invalid"`, - `"username":{"code":"validation_invalid_username"`, // for duplicated case-insensitive username - `"email":{"code":"validation_is_email"`, - `"password":{"code":"validation_length_out_of_range"`, - `"passwordConfirm":{"code":"validation_values_mismatch"`, - }, - NotExpectedContent: []string{ - // schema fields are not checked if the base fields has errors - `"rel":{"code":`, - }, - }, - { - Name: "auth record with valid base fields but invalid schema data", - Method: http.MethodPost, - Url: "/api/collections/users/records", - Body: strings.NewReader(`{ - "password":"12345678", - "passwordConfirm":"12345678", - "rel":"invalid" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"rel":{"code":`, - }, - }, - { - Name: "auth record with valid data and explicitly verified state by guest", - Method: http.MethodPost, - Url: "/api/collections/users/records", - Body: strings.NewReader(`{ - "password":"12345678", - "passwordConfirm":"12345678", - "verified":true - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"verified":{"code":`, - }, - }, - { - Name: "auth record with valid data and explicitly verified state by random user", - Method: http.MethodPost, - Url: "/api/collections/users/records", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - Body: strings.NewReader(`{ - "password":"12345678", - "passwordConfirm":"12345678", - "emailVisibility":true, - "verified":true - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"verified":{"code":`, - }, - NotExpectedContent: []string{ - `"emailVisibility":{"code":`, - }, - }, - { - Name: "auth record with valid data by admin", - Method: http.MethodPost, - Url: "/api/collections/users/records", - Body: strings.NewReader(`{ - "id":"o1o1y0pd78686mq", - "username":"test.valid", - "email":"new@example.com", - "password":"12345678", - "passwordConfirm":"12345678", - "rel":"achvryl401bhse3", - "emailVisibility":true, - "verified":true - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"o1o1y0pd78686mq"`, - `"username":"test.valid"`, - `"email":"new@example.com"`, - `"rel":"achvryl401bhse3"`, - `"emailVisibility":true`, - `"verified":true`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"password"`, - `"passwordConfirm"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelAfterCreate": 1, - "OnModelBeforeCreate": 1, - "OnRecordAfterCreateRequest": 1, - "OnRecordBeforeCreateRequest": 1, - }, - }, - { - Name: "auth record with valid data by auth record with manage access", - Method: http.MethodPost, - Url: "/api/collections/nologin/records", - Body: strings.NewReader(`{ - "email":"new@example.com", - "password":"12345678", - "passwordConfirm":"12345678", - "name":"test_name", - "emailVisibility":true, - "verified":true - }`), - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"`, - `"username":"`, - `"email":"new@example.com"`, - `"name":"test_name"`, - `"emailVisibility":true`, - `"verified":true`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"password"`, - `"passwordConfirm"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelAfterCreate": 1, - "OnModelBeforeCreate": 1, - "OnRecordAfterCreateRequest": 1, - "OnRecordBeforeCreateRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestRecordCrudUpdate(t *testing.T) { - formData, mp, err := tests.MockMultipartData(map[string]string{ - "title": "title_test", - }, "files") - if err != nil { - t.Fatal(err) - } - - scenarios := []tests.ApiScenario{ - { - Name: "missing collection", - Method: http.MethodPatch, - Url: "/api/collections/missing/records/0yxhwia2amd8gec", - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "guest trying to access nil-rule collection record", - Method: http.MethodPatch, - Url: "/api/collections/demo1/records/imy661ixudk5izi", - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record trying to access nil-rule collection", - Method: http.MethodPatch, - Url: "/api/collections/demo1/records/imy661ixudk5izi", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 403, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "submit invalid body", - Method: http.MethodPatch, - Url: "/api/collections/demo2/records/0yxhwia2amd8gec", - Body: strings.NewReader(`{"`), - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "submit nil body", - Method: http.MethodPatch, - Url: "/api/collections/demo2/records/0yxhwia2amd8gec", - Body: nil, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "submit empty body (aka. no fields change)", - Method: http.MethodPatch, - Url: "/api/collections/demo2/records/0yxhwia2amd8gec", - Body: strings.NewReader(`{}`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"collectionName":"demo2"`, - `"id":"0yxhwia2amd8gec"`, - }, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordAfterUpdateRequest": 1, - "OnRecordBeforeUpdateRequest": 1, - }, - }, - { - Name: "trigger field validation", - Method: http.MethodPatch, - Url: "/api/collections/demo2/records/0yxhwia2amd8gec", - Body: strings.NewReader(`{"title":"a"}`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `data":{`, - `"title":{"code":"validation_min_text_constraint"`, - }, - }, - { - Name: "guest submit in public collection", - Method: http.MethodPatch, - Url: "/api/collections/demo2/records/0yxhwia2amd8gec", - Body: strings.NewReader(`{"title":"new"}`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"0yxhwia2amd8gec"`, - `"title":"new"`, - `"active":true`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeUpdateRequest": 1, - "OnRecordAfterUpdateRequest": 1, - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - }, - }, - { - Name: "guest trying to submit in restricted collection", - Method: http.MethodPatch, - Url: "/api/collections/demo3/records/mk5fmymtx4wsprk", - Body: strings.NewReader(`{"title":"new"}`), - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record submit in restricted collection (rule failure check)", - Method: http.MethodPatch, - Url: "/api/collections/demo3/records/mk5fmymtx4wsprk", - Body: strings.NewReader(`{"title":"new"}`), - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 404, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "auth record submit in restricted collection (rule pass check) + expand relations", - Method: http.MethodPatch, - Url: "/api/collections/demo4/records/i9naidtvr6qsgb4?expand=missing,rel_one_no_cascade,rel_many_no_cascade_required", - Body: strings.NewReader(`{ - "title":"test123", - "rel_one_no_cascade":"mk5fmymtx4wsprk", - "rel_one_no_cascade_required":"7nwo8tuiatetxdm", - "rel_one_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"], - "rel_many_cascade":"lcl9d87w22ml6jy" - }`), - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"i9naidtvr6qsgb4"`, - `"title":"test123"`, - `"rel_one_no_cascade":"mk5fmymtx4wsprk"`, - `"rel_one_no_cascade_required":"7nwo8tuiatetxdm"`, - `"rel_one_cascade":"mk5fmymtx4wsprk"`, - `"rel_many_no_cascade":["mk5fmymtx4wsprk"]`, - `"rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"]`, - `"rel_many_cascade":["lcl9d87w22ml6jy"]`, - }, - NotExpectedContent: []string{ - // the users auth records don't have access to view the demo3 expands - `"expand":{`, - `"missing"`, - `"id":"mk5fmymtx4wsprk"`, - `"id":"7nwo8tuiatetxdm"`, - `"id":"lcl9d87w22ml6jy"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeUpdateRequest": 1, - "OnRecordAfterUpdateRequest": 1, - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - }, - }, - { - Name: "admin submit in restricted collection (rule skip check) + expand relations", - Method: http.MethodPatch, - Url: "/api/collections/demo4/records/i9naidtvr6qsgb4?expand=missing,rel_one_no_cascade,rel_many_no_cascade_required", - Body: strings.NewReader(`{ - "title":"test123", - "rel_one_no_cascade":"mk5fmymtx4wsprk", - "rel_one_no_cascade_required":"7nwo8tuiatetxdm", - "rel_one_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade":"mk5fmymtx4wsprk", - "rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"], - "rel_many_cascade":"lcl9d87w22ml6jy" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"i9naidtvr6qsgb4"`, - `"title":"test123"`, - `"rel_one_no_cascade":"mk5fmymtx4wsprk"`, - `"rel_one_no_cascade_required":"7nwo8tuiatetxdm"`, - `"rel_one_cascade":"mk5fmymtx4wsprk"`, - `"rel_many_no_cascade":["mk5fmymtx4wsprk"]`, - `"rel_many_no_cascade_required":["7nwo8tuiatetxdm","lcl9d87w22ml6jy"]`, - `"rel_many_cascade":["lcl9d87w22ml6jy"]`, - `"expand":{`, - `"id":"mk5fmymtx4wsprk"`, - `"id":"7nwo8tuiatetxdm"`, - `"id":"lcl9d87w22ml6jy"`, - }, - NotExpectedContent: []string{ - `"missing"`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeUpdateRequest": 1, - "OnRecordAfterUpdateRequest": 1, - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - }, - }, - { - Name: "submit via multipart form data", - Method: http.MethodPatch, - Url: "/api/collections/demo3/records/mk5fmymtx4wsprk", - Body: formData, - RequestHeaders: map[string]string{ - "Content-Type": mp.FormDataContentType(), - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"mk5fmymtx4wsprk"`, - `"title":"title_test"`, - `"files":["`, - }, - ExpectedEvents: map[string]int{ - "OnRecordBeforeUpdateRequest": 1, - "OnRecordAfterUpdateRequest": 1, - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - }, - }, - { - Name: "try to change the id of an existing record", - Method: http.MethodPatch, - Url: "/api/collections/demo3/records/mk5fmymtx4wsprk", - Body: strings.NewReader(`{ - "id": "mk5fmymtx4wspra" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"id":{"code":"validation_in_invalid"`, - }, - }, - - // auth records - // ----------------------------------------------------------- - { - Name: "auth record with invalid data", - Method: http.MethodPatch, - Url: "/api/collections/users/records/bgs820n361vj1qd", - Body: strings.NewReader(`{ - "username":"Users75657", - "email":"invalid", - "password":"1234567", - "passwordConfirm":"1234560", - "verified":false - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"username":{"code":"validation_invalid_username"`, // for duplicated case-insensitive username - `"email":{"code":"validation_is_email"`, - `"password":{"code":"validation_length_out_of_range"`, - `"passwordConfirm":{"code":"validation_values_mismatch"`, - }, - NotExpectedContent: []string{ - // admins are allowed to change the verified state - `"verified"`, - // schema fields are not checked if the base fields has errors - `"rel":{"code":`, - }, - }, - { - Name: "auth record with valid base fields but invalid schema data", - Method: http.MethodPatch, - Url: "/api/collections/users/records/bgs820n361vj1qd", - Body: strings.NewReader(`{ - "password":"12345678", - "passwordConfirm":"12345678", - "rel":"invalid" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"rel":{"code":`, - }, - }, - { - Name: "try to change account managing fields by guest", - Method: http.MethodPatch, - Url: "/api/collections/nologin/records/phhq3wr65cap535", - Body: strings.NewReader(`{ - "password":"12345678", - "passwordConfirm":"12345678", - "emailVisibility":true, - "verified":true - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"verified":{"code":`, - `"oldPassword":{"code":`, - }, - NotExpectedContent: []string{ - `"emailVisibility":{"code":`, - }, - }, - { - Name: "try to change account managing fields by auth record (owner)", - Method: http.MethodPatch, - Url: "/api/collections/users/records/4q1xlclmfloku33", - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - Body: strings.NewReader(`{ - "password":"12345678", - "passwordConfirm":"12345678", - "emailVisibility":true, - "verified":true - }`), - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"verified":{"code":`, - `"oldPassword":{"code":`, - }, - NotExpectedContent: []string{ - `"emailVisibility":{"code":`, - }, - }, - { - Name: "try to change account managing fields by auth record with managing rights", - Method: http.MethodPatch, - Url: "/api/collections/nologin/records/phhq3wr65cap535", - Body: strings.NewReader(`{ - "email":"new@example.com", - "password":"12345678", - "passwordConfirm":"12345678", - "name":"test_name", - "emailVisibility":true, - "verified":true - }`), - RequestHeaders: map[string]string{ - // users, test@example.com - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"email":"new@example.com"`, - `"name":"test_name"`, - `"emailVisibility":true`, - `"verified":true`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"password"`, - `"passwordConfirm"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordAfterUpdateRequest": 1, - "OnRecordBeforeUpdateRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - record, _ := app.Dao().FindRecordById("nologin", "phhq3wr65cap535") - if !record.ValidatePassword("12345678") { - t.Fatal("Password update failed.") - } - }, - }, - { - Name: "update auth record with valid data by admin", - Method: http.MethodPatch, - Url: "/api/collections/users/records/oap640cot4yru2s", - Body: strings.NewReader(`{ - "username":"test.valid", - "email":"new@example.com", - "password":"12345678", - "passwordConfirm":"12345678", - "rel":"achvryl401bhse3", - "emailVisibility":true, - "verified":false - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"username":"test.valid"`, - `"email":"new@example.com"`, - `"rel":"achvryl401bhse3"`, - `"emailVisibility":true`, - `"verified":false`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"password"`, - `"passwordConfirm"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordAfterUpdateRequest": 1, - "OnRecordBeforeUpdateRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - record, _ := app.Dao().FindRecordById("users", "oap640cot4yru2s") - if !record.ValidatePassword("12345678") { - t.Fatal("Password update failed.") - } - }, - }, - { - Name: "update auth record with valid data by guest (empty update filter)", - Method: http.MethodPatch, - Url: "/api/collections/nologin/records/dc49k6jgejn40h3", - Body: strings.NewReader(`{ - "username":"test_new", - "emailVisibility":true, - "name":"test" - }`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"username":"test_new"`, - `"email":"test@example.com"`, // the email should be visible since we updated the emailVisibility - `"emailVisibility":true`, - `"verified":false`, - `"name":"test"`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"password"`, - `"passwordConfirm"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordAfterUpdateRequest": 1, - "OnRecordBeforeUpdateRequest": 1, - }, - }, - { - Name: "success password change with oldPassword", - Method: http.MethodPatch, - Url: "/api/collections/nologin/records/dc49k6jgejn40h3", - Body: strings.NewReader(`{ - "password":"123456789", - "passwordConfirm":"123456789", - "oldPassword":"1234567890" - }`), - ExpectedStatus: 200, - ExpectedContent: []string{ - `"id":"dc49k6jgejn40h3"`, - }, - NotExpectedContent: []string{ - `"tokenKey"`, - `"password"`, - `"passwordConfirm"`, - `"passwordHash"`, - }, - ExpectedEvents: map[string]int{ - "OnModelAfterUpdate": 1, - "OnModelBeforeUpdate": 1, - "OnRecordAfterUpdateRequest": 1, - "OnRecordBeforeUpdateRequest": 1, - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - record, _ := app.Dao().FindRecordById("nologin", "dc49k6jgejn40h3") - if !record.ValidatePassword("123456789") { - t.Fatal("Password update failed.") - } - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/apis/record_helpers.go b/apis/record_helpers.go deleted file mode 100644 index 35d68d241627985cccb921bb65b21b7709748eec..0000000000000000000000000000000000000000 --- a/apis/record_helpers.go +++ /dev/null @@ -1,223 +0,0 @@ -package apis - -import ( - "fmt" - "strings" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/resolvers" - "github.com/pocketbase/pocketbase/tools/rest" - "github.com/pocketbase/pocketbase/tools/search" -) - -const ContextRequestDataKey = "requestData" - -// Deprecated: Will be removed after v0.9. Use apis.RequestData(c) instead. -func GetRequestData(c echo.Context) *models.RequestData { - return RequestData(c) -} - -// RequestData exports cached common request data fields -// (query, body, logged auth state, etc.) from the provided context. -func RequestData(c echo.Context) *models.RequestData { - // return cached to avoid copying the body multiple times - if v := c.Get(ContextRequestDataKey); v != nil { - if data, ok := v.(*models.RequestData); ok { - return data - } - } - - result := &models.RequestData{ - Method: c.Request().Method, - Query: map[string]any{}, - Data: map[string]any{}, - } - - result.AuthRecord, _ = c.Get(ContextAuthRecordKey).(*models.Record) - result.Admin, _ = c.Get(ContextAdminKey).(*models.Admin) - echo.BindQueryParams(c, &result.Query) - rest.BindBody(c, &result.Data) - - c.Set(ContextRequestDataKey, result) - - return result -} - -// EnrichRecord parses the request context and enrich the provided record: -// - expands relations (if defaultExpands and/or ?expand query param is set) -// - ensures that the emails of the auth record and its expanded auth relations -// are visibe only for the current logged admin, record owner or record with manage access -func EnrichRecord(c echo.Context, dao *daos.Dao, record *models.Record, defaultExpands ...string) error { - return EnrichRecords(c, dao, []*models.Record{record}, defaultExpands...) -} - -// EnrichRecords parses the request context and enriches the provided records: -// - expands relations (if defaultExpands and/or ?expand query param is set) -// - ensures that the emails of the auth records and their expanded auth relations -// are visibe only for the current logged admin, record owner or record with manage access -func EnrichRecords(c echo.Context, dao *daos.Dao, records []*models.Record, defaultExpands ...string) error { - requestData := RequestData(c) - - if err := autoIgnoreAuthRecordsEmailVisibility(dao, records, requestData); err != nil { - return fmt.Errorf("Failed to resolve email visibility: %w", err) - } - - expands := defaultExpands - expands = append(expands, strings.Split(c.QueryParam(expandQueryParam), ",")...) - if len(expands) == 0 { - return nil // nothing to expand - } - - errs := dao.ExpandRecords(records, expands, expandFetch(dao, requestData)) - if len(errs) > 0 { - return fmt.Errorf("Failed to expand: %v", errs) - } - - return nil -} - -// expandFetch is the records fetch function that is used to expand related records. -func expandFetch( - dao *daos.Dao, - requestData *models.RequestData, -) daos.ExpandFetchFunc { - return func(relCollection *models.Collection, relIds []string) ([]*models.Record, error) { - records, err := dao.FindRecordsByIds(relCollection.Id, relIds, func(q *dbx.SelectQuery) error { - if requestData.Admin != nil { - return nil // admins can access everything - } - - if relCollection.ViewRule == nil { - return fmt.Errorf("Only admins can view collection %q records", relCollection.Name) - } - - if *relCollection.ViewRule != "" { - resolver := resolvers.NewRecordFieldResolver(dao, relCollection, requestData, true) - expr, err := search.FilterData(*(relCollection.ViewRule)).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - } - - return nil - }) - - if err == nil && len(records) > 0 { - autoIgnoreAuthRecordsEmailVisibility(dao, records, requestData) - } - - return records, err - } -} - -// autoIgnoreAuthRecordsEmailVisibility ignores the email visibility check for -// the provided record if the current auth model is admin, owner or a "manager". -// -// Note: Expects all records to be from the same auth collection! -func autoIgnoreAuthRecordsEmailVisibility( - dao *daos.Dao, - records []*models.Record, - requestData *models.RequestData, -) error { - if len(records) == 0 || !records[0].Collection().IsAuth() { - return nil // nothing to check - } - - if requestData.Admin != nil { - for _, rec := range records { - rec.IgnoreEmailVisibility(true) - } - return nil - } - - collection := records[0].Collection() - - mappedRecords := make(map[string]*models.Record, len(records)) - recordIds := make([]any, len(records)) - for i, rec := range records { - mappedRecords[rec.Id] = rec - recordIds[i] = rec.Id - } - - if requestData != nil && requestData.AuthRecord != nil && mappedRecords[requestData.AuthRecord.Id] != nil { - mappedRecords[requestData.AuthRecord.Id].IgnoreEmailVisibility(true) - } - - authOptions := collection.AuthOptions() - if authOptions.ManageRule == nil || *authOptions.ManageRule == "" { - return nil // no manage rule to check - } - - // fetch the ids of the managed records - // --- - managedIds := []string{} - - query := dao.RecordQuery(collection). - Select(dao.DB().QuoteSimpleColumnName(collection.Name) + ".id"). - AndWhere(dbx.In(dao.DB().QuoteSimpleColumnName(collection.Name)+".id", recordIds...)) - - resolver := resolvers.NewRecordFieldResolver(dao, collection, requestData, true) - expr, err := search.FilterData(*authOptions.ManageRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(query) - query.AndWhere(expr) - - if err := query.Column(&managedIds); err != nil { - return err - } - // --- - - // ignore the email visibility check for the managed records - for _, id := range managedIds { - if rec, ok := mappedRecords[id]; ok { - rec.IgnoreEmailVisibility(true) - } - } - - return nil -} - -// hasAuthManageAccess checks whether the client is allowed to have full -// [forms.RecordUpsert] auth management permissions -// (aka. allowing to change system auth fields without oldPassword). -func hasAuthManageAccess( - dao *daos.Dao, - record *models.Record, - requestData *models.RequestData, -) bool { - if !record.Collection().IsAuth() { - return false - } - - manageRule := record.Collection().AuthOptions().ManageRule - - if manageRule == nil || *manageRule == "" { - return false // only for admins (manageRule can't be empty) - } - - if requestData == nil || requestData.AuthRecord == nil { - return false // no auth record - } - - ruleFunc := func(q *dbx.SelectQuery) error { - resolver := resolvers.NewRecordFieldResolver(dao, record.Collection(), requestData, true) - expr, err := search.FilterData(*manageRule).BuildExpr(resolver) - if err != nil { - return err - } - resolver.UpdateQuery(q) - q.AndWhere(expr) - return nil - } - - _, findErr := dao.FindRecordById(record.Collection().Id, record.Id, ruleFunc) - - return findErr == nil -} diff --git a/apis/record_helpers_test.go b/apis/record_helpers_test.go deleted file mode 100644 index a147c491ebe44a59de345d3569c796c4843be0e3..0000000000000000000000000000000000000000 --- a/apis/record_helpers_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package apis_test - -import ( - "encoding/json" - "net/http" - "net/http/httptest" - "strings" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/apis" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestRequestData(t *testing.T) { - e := echo.New() - req := httptest.NewRequest(http.MethodPost, "/?test=123", strings.NewReader(`{"test":456}`)) - req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON) - rec := httptest.NewRecorder() - c := e.NewContext(req, rec) - - dummyRecord := &models.Record{} - dummyRecord.Id = "id1" - c.Set(apis.ContextAuthRecordKey, dummyRecord) - - dummyAdmin := &models.Admin{} - dummyAdmin.Id = "id2" - c.Set(apis.ContextAdminKey, dummyAdmin) - - result := apis.RequestData(c) - - if result == nil { - t.Fatal("Expected *models.RequestData instance, got nil") - } - - if result.Method != http.MethodPost { - t.Fatalf("Expected Method %v, got %v", http.MethodPost, result.Method) - } - - rawQuery, _ := json.Marshal(result.Query) - expectedQuery := `{"test":"123"}` - if v := string(rawQuery); v != expectedQuery { - t.Fatalf("Expected Query %v, got %v", expectedQuery, v) - } - - rawData, _ := json.Marshal(result.Data) - expectedData := `{"test":456}` - if v := string(rawData); v != expectedData { - t.Fatalf("Expected Data %v, got %v", expectedData, v) - } - - if result.AuthRecord == nil || result.AuthRecord.Id != dummyRecord.Id { - t.Fatalf("Expected AuthRecord %v, got %v", dummyRecord, result.AuthRecord) - } - - if result.Admin == nil || result.Admin.Id != dummyAdmin.Id { - t.Fatalf("Expected Admin %v, got %v", dummyAdmin, result.Admin) - } -} - -func TestEnrichRecords(t *testing.T) { - e := echo.New() - req := httptest.NewRequest(http.MethodGet, "/?expand=rel_many", nil) - req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON) - rec := httptest.NewRecorder() - c := e.NewContext(req, rec) - - dummyAdmin := &models.Admin{} - dummyAdmin.Id = "test_id" - c.Set(apis.ContextAdminKey, dummyAdmin) - - app, _ := tests.NewTestApp() - defer app.Cleanup() - - records, err := app.Dao().FindRecordsByIds("demo1", []string{"al1h9ijdeojtsjy", "84nmscqy84lsi1t"}) - if err != nil { - t.Fatal(err) - } - - apis.EnrichRecords(c, app.Dao(), records, "rel_one") - - for _, record := range records { - expand := record.Expand() - if len(expand) == 0 { - t.Fatalf("Expected non-empty expand, got nil for record %v", record) - } - - if len(record.GetStringSlice("rel_one")) != 0 { - if _, ok := expand["rel_one"]; !ok { - t.Fatalf("Expected rel_one to be expanded for record %v, got \n%v", record, expand) - } - } - - if len(record.GetStringSlice("rel_many")) != 0 { - if _, ok := expand["rel_many"]; !ok { - t.Fatalf("Expected rel_many to be expanded for record %v, got \n%v", record, expand) - } - } - } -} diff --git a/apis/settings.go b/apis/settings.go deleted file mode 100644 index b7414faadb7f4b723df8409541820559601cbce7..0000000000000000000000000000000000000000 --- a/apis/settings.go +++ /dev/null @@ -1,127 +0,0 @@ -package apis - -import ( - "net/http" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tools/security" -) - -// bindSettingsApi registers the settings api endpoints. -func bindSettingsApi(app core.App, rg *echo.Group) { - api := settingsApi{app: app} - - subGroup := rg.Group("/settings", ActivityLogger(app), RequireAdminAuth()) - subGroup.GET("", api.list) - subGroup.PATCH("", api.set) - subGroup.POST("/test/s3", api.testS3) - subGroup.POST("/test/email", api.testEmail) -} - -type settingsApi struct { - app core.App -} - -func (api *settingsApi) list(c echo.Context) error { - settings, err := api.app.Settings().RedactClone() - if err != nil { - return NewBadRequestError("", err) - } - - event := &core.SettingsListEvent{ - HttpContext: c, - RedactedSettings: settings, - } - - return api.app.OnSettingsListRequest().Trigger(event, func(e *core.SettingsListEvent) error { - return e.HttpContext.JSON(http.StatusOK, e.RedactedSettings) - }) -} - -func (api *settingsApi) set(c echo.Context) error { - form := forms.NewSettingsUpsert(api.app) - - // load request - if err := c.Bind(form); err != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", err) - } - - event := &core.SettingsUpdateEvent{ - HttpContext: c, - OldSettings: api.app.Settings(), - NewSettings: form.Settings, - } - - // update the settings - submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - return api.app.OnSettingsBeforeUpdateRequest().Trigger(event, func(e *core.SettingsUpdateEvent) error { - if err := next(); err != nil { - return NewBadRequestError("An error occurred while submitting the form.", err) - } - - redactedSettings, err := api.app.Settings().RedactClone() - if err != nil { - return NewBadRequestError("", err) - } - - return e.HttpContext.JSON(http.StatusOK, redactedSettings) - }) - } - }) - - if submitErr == nil { - api.app.OnSettingsAfterUpdateRequest().Trigger(event) - } - - return submitErr -} - -func (api *settingsApi) testS3(c echo.Context) error { - if !api.app.Settings().S3.Enabled { - return NewBadRequestError("S3 storage is not enabled.", nil) - } - - fs, err := api.app.NewFilesystem() - if err != nil { - return NewBadRequestError("Failed to initialize the S3 storage. Raw error: \n"+err.Error(), nil) - } - defer fs.Close() - - testFileKey := "pb_test_" + security.PseudorandomString(5) + "/test.txt" - - if err := fs.Upload([]byte("test"), testFileKey); err != nil { - return NewBadRequestError("Failed to upload a test file. Raw error: \n"+err.Error(), nil) - } - - if err := fs.Delete(testFileKey); err != nil { - return NewBadRequestError("Failed to delete a test file. Raw error: \n"+err.Error(), nil) - } - - return c.NoContent(http.StatusNoContent) -} - -func (api *settingsApi) testEmail(c echo.Context) error { - form := forms.NewTestEmailSend(api.app) - - // load request - if err := c.Bind(form); err != nil { - return NewBadRequestError("An error occurred while loading the submitted data.", err) - } - - // send - if err := form.Submit(); err != nil { - if fErr, ok := err.(validation.Errors); ok { - // form error - return NewBadRequestError("Failed to send the test email.", fErr) - } - - // mailer error - return NewBadRequestError("Failed to send the test email. Raw error: \n"+err.Error(), nil) - } - - return c.NoContent(http.StatusNoContent) -} diff --git a/apis/settings_test.go b/apis/settings_test.go deleted file mode 100644 index 6f7af9218ed3218d8ed06e4e42372a7075810a52..0000000000000000000000000000000000000000 --- a/apis/settings_test.go +++ /dev/null @@ -1,388 +0,0 @@ -package apis_test - -import ( - "net/http" - "strings" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/tests" -) - -func TestSettingsList(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodGet, - Url: "/api/settings", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as auth record", - Method: http.MethodGet, - Url: "/api/settings", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin", - Method: http.MethodGet, - Url: "/api/settings", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"meta":{`, - `"logs":{`, - `"smtp":{`, - `"s3":{`, - `"adminAuthToken":{`, - `"adminPasswordResetToken":{`, - `"recordAuthToken":{`, - `"recordPasswordResetToken":{`, - `"recordEmailChangeToken":{`, - `"recordVerificationToken":{`, - `"emailAuth":{`, - `"googleAuth":{`, - `"facebookAuth":{`, - `"githubAuth":{`, - `"gitlabAuth":{`, - `"twitterAuth":{`, - `"discordAuth":{`, - `"microsoftAuth":{`, - `"spotifyAuth":{`, - `"kakaoAuth":{`, - `"twitchAuth":{`, - `"secret":"******"`, - `"clientSecret":"******"`, - }, - ExpectedEvents: map[string]int{ - "OnSettingsListRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestSettingsSet(t *testing.T) { - validData := `{"meta":{"appName":"update_test"}}` - - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPatch, - Url: "/api/settings", - Body: strings.NewReader(validData), - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as auth record", - Method: http.MethodPatch, - Url: "/api/settings", - Body: strings.NewReader(validData), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin submitting empty data", - Method: http.MethodPatch, - Url: "/api/settings", - Body: strings.NewReader(``), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"meta":{`, - `"logs":{`, - `"smtp":{`, - `"s3":{`, - `"adminAuthToken":{`, - `"adminPasswordResetToken":{`, - `"recordAuthToken":{`, - `"recordPasswordResetToken":{`, - `"recordEmailChangeToken":{`, - `"recordVerificationToken":{`, - `"emailAuth":{`, - `"googleAuth":{`, - `"facebookAuth":{`, - `"githubAuth":{`, - `"gitlabAuth":{`, - `"discordAuth":{`, - `"microsoftAuth":{`, - `"spotifyAuth":{`, - `"kakaoAuth":{`, - `"twitchAuth":{`, - `"secret":"******"`, - `"clientSecret":"******"`, - `"appName":"acme_test"`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnSettingsBeforeUpdateRequest": 1, - "OnSettingsAfterUpdateRequest": 1, - }, - }, - { - Name: "authorized as admin submitting invalid data", - Method: http.MethodPatch, - Url: "/api/settings", - Body: strings.NewReader(`{"meta":{"appName":""}}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"data":{`, - `"meta":{"appName":{"code":"validation_required"`, - }, - }, - { - Name: "authorized as admin submitting valid data", - Method: http.MethodPatch, - Url: "/api/settings", - Body: strings.NewReader(validData), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 200, - ExpectedContent: []string{ - `"meta":{`, - `"logs":{`, - `"smtp":{`, - `"s3":{`, - `"adminAuthToken":{`, - `"adminPasswordResetToken":{`, - `"recordAuthToken":{`, - `"recordPasswordResetToken":{`, - `"recordEmailChangeToken":{`, - `"recordVerificationToken":{`, - `"emailAuth":{`, - `"googleAuth":{`, - `"facebookAuth":{`, - `"githubAuth":{`, - `"gitlabAuth":{`, - `"twitterAuth":{`, - `"discordAuth":{`, - `"microsoftAuth":{`, - `"spotifyAuth":{`, - `"kakaoAuth":{`, - `"twitchAuth":{`, - `"secret":"******"`, - `"clientSecret":"******"`, - `"appName":"update_test"`, - }, - ExpectedEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnSettingsBeforeUpdateRequest": 1, - "OnSettingsAfterUpdateRequest": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestSettingsTestS3(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPost, - Url: "/api/settings/test/s3", - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as auth record", - Method: http.MethodPost, - Url: "/api/settings/test/s3", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin (no s3)", - Method: http.MethodPost, - Url: "/api/settings/test/s3", - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} - -func TestSettingsTestEmail(t *testing.T) { - scenarios := []tests.ApiScenario{ - { - Name: "unauthorized", - Method: http.MethodPost, - Url: "/api/settings/test/email", - Body: strings.NewReader(`{ - "template": "verification", - "email": "test@example.com" - }`), - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as auth record", - Method: http.MethodPost, - Url: "/api/settings/test/email", - Body: strings.NewReader(`{ - "template": "verification", - "email": "test@example.com" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - }, - ExpectedStatus: 401, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin (invalid body)", - Method: http.MethodPost, - Url: "/api/settings/test/email", - Body: strings.NewReader(`{`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{`"data":{}`}, - }, - { - Name: "authorized as admin (empty json)", - Method: http.MethodPost, - Url: "/api/settings/test/email", - Body: strings.NewReader(`{}`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - ExpectedStatus: 400, - ExpectedContent: []string{ - `"email":{"code":"validation_required"`, - `"template":{"code":"validation_required"`, - }, - }, - { - Name: "authorized as admin (verifiation template)", - Method: http.MethodPost, - Url: "/api/settings/test/email", - Body: strings.NewReader(`{ - "template": "verification", - "email": "test@example.com" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if app.TestMailer.TotalSend != 1 { - t.Fatalf("[verification] Expected 1 sent email, got %d", app.TestMailer.TotalSend) - } - - if app.TestMailer.LastMessage.To.Address != "test@example.com" { - t.Fatalf("[verification] Expected the email to be sent to %s, got %s", "test@example.com", app.TestMailer.LastMessage.To.Address) - } - - if !strings.Contains(app.TestMailer.LastMessage.HTML, "Verify") { - t.Fatalf("[verification] Expected to sent a verification email, got \n%v\n%v", app.TestMailer.LastMessage.Subject, app.TestMailer.LastMessage.HTML) - } - }, - ExpectedStatus: 204, - ExpectedContent: []string{}, - ExpectedEvents: map[string]int{ - "OnMailerBeforeRecordVerificationSend": 1, - "OnMailerAfterRecordVerificationSend": 1, - }, - }, - { - Name: "authorized as admin (password reset template)", - Method: http.MethodPost, - Url: "/api/settings/test/email", - Body: strings.NewReader(`{ - "template": "password-reset", - "email": "test@example.com" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if app.TestMailer.TotalSend != 1 { - t.Fatalf("[password-reset] Expected 1 sent email, got %d", app.TestMailer.TotalSend) - } - - if app.TestMailer.LastMessage.To.Address != "test@example.com" { - t.Fatalf("[password-reset] Expected the email to be sent to %s, got %s", "test@example.com", app.TestMailer.LastMessage.To.Address) - } - - if !strings.Contains(app.TestMailer.LastMessage.HTML, "Reset password") { - t.Fatalf("[password-reset] Expected to sent a password-reset email, got \n%v\n%v", app.TestMailer.LastMessage.Subject, app.TestMailer.LastMessage.HTML) - } - }, - ExpectedStatus: 204, - ExpectedContent: []string{}, - ExpectedEvents: map[string]int{ - "OnMailerBeforeRecordResetPasswordSend": 1, - "OnMailerAfterRecordResetPasswordSend": 1, - }, - }, - { - Name: "authorized as admin (email change)", - Method: http.MethodPost, - Url: "/api/settings/test/email", - Body: strings.NewReader(`{ - "template": "email-change", - "email": "test@example.com" - }`), - RequestHeaders: map[string]string{ - "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - }, - AfterTestFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) { - if app.TestMailer.TotalSend != 1 { - t.Fatalf("[email-change] Expected 1 sent email, got %d", app.TestMailer.TotalSend) - } - - if app.TestMailer.LastMessage.To.Address != "test@example.com" { - t.Fatalf("[email-change] Expected the email to be sent to %s, got %s", "test@example.com", app.TestMailer.LastMessage.To.Address) - } - - if !strings.Contains(app.TestMailer.LastMessage.HTML, "Confirm new email") { - t.Fatalf("[email-change] Expected to sent a confirm new email email, got \n%v\n%v", app.TestMailer.LastMessage.Subject, app.TestMailer.LastMessage.HTML) - } - }, - ExpectedStatus: 204, - ExpectedContent: []string{}, - ExpectedEvents: map[string]int{ - "OnMailerBeforeRecordChangeEmailSend": 1, - "OnMailerAfterRecordChangeEmailSend": 1, - }, - }, - } - - for _, scenario := range scenarios { - scenario.Test(t) - } -} diff --git a/cmd/serve.go b/cmd/serve.go deleted file mode 100644 index d63271ebd8bd71e3c5c0a1d3be3301d3a2795201..0000000000000000000000000000000000000000 --- a/cmd/serve.go +++ /dev/null @@ -1,172 +0,0 @@ -package cmd - -import ( - "crypto/tls" - "log" - "net" - "net/http" - "path/filepath" - "time" - - "github.com/fatih/color" - "github.com/labstack/echo/v5/middleware" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/apis" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/migrations/logs" - "github.com/pocketbase/pocketbase/tools/migrate" - "github.com/spf13/cobra" - "golang.org/x/crypto/acme" - "golang.org/x/crypto/acme/autocert" -) - -// NewServeCommand creates and returns new command responsible for -// starting the default PocketBase web server. -func NewServeCommand(app core.App, showStartBanner bool) *cobra.Command { - var allowedOrigins []string - var httpAddr string - var httpsAddr string - - command := &cobra.Command{ - Use: "serve", - Short: "Starts the web server (default to 127.0.0.1:8090)", - Run: func(command *cobra.Command, args []string) { - // ensure that the latest migrations are applied before starting the server - if err := runMigrations(app); err != nil { - panic(err) - } - - // reload app settings in case a new default value was set with a migration - // (or if this is the first time the init migration was executed) - if err := app.RefreshSettings(); err != nil { - color.Yellow("=====================================") - color.Yellow("WARNING: Settings load error! \n%v", err) - color.Yellow("Fallback to the application defaults.") - color.Yellow("=====================================") - } - - router, err := apis.InitApi(app) - if err != nil { - panic(err) - } - - // configure cors - router.Use(middleware.CORSWithConfig(middleware.CORSConfig{ - Skipper: middleware.DefaultSkipper, - AllowOrigins: allowedOrigins, - AllowMethods: []string{http.MethodGet, http.MethodHead, http.MethodPut, http.MethodPatch, http.MethodPost, http.MethodDelete}, - })) - - // start http server - // --- - mainAddr := httpAddr - if httpsAddr != "" { - mainAddr = httpsAddr - } - - mainHost, _, _ := net.SplitHostPort(mainAddr) - - certManager := autocert.Manager{ - Prompt: autocert.AcceptTOS, - Cache: autocert.DirCache(filepath.Join(app.DataDir(), ".autocert_cache")), - HostPolicy: autocert.HostWhitelist(mainHost, "www."+mainHost), - } - - serverConfig := &http.Server{ - TLSConfig: &tls.Config{ - GetCertificate: certManager.GetCertificate, - NextProtos: []string{acme.ALPNProto}, - }, - ReadTimeout: 60 * time.Second, - // WriteTimeout: 60 * time.Second, // breaks sse! - Handler: router, - Addr: mainAddr, - } - - if showStartBanner { - schema := "http" - if httpsAddr != "" { - schema = "https" - } - regular := color.New() - bold := color.New(color.Bold).Add(color.FgGreen) - bold.Printf("> Server started at: %s\n", color.CyanString("%s://%s", schema, serverConfig.Addr)) - regular.Printf(" - REST API: %s\n", color.CyanString("%s://%s/api/", schema, serverConfig.Addr)) - regular.Printf(" - Admin UI: %s\n", color.CyanString("%s://%s/_/", schema, serverConfig.Addr)) - } - - var serveErr error - if httpsAddr != "" { - // if httpAddr is set, start an HTTP server to redirect the traffic to the HTTPS version - if httpAddr != "" { - go http.ListenAndServe(httpAddr, certManager.HTTPHandler(nil)) - } - - // start HTTPS server - serveErr = serverConfig.ListenAndServeTLS("", "") - } else { - // start HTTP server - serveErr = serverConfig.ListenAndServe() - } - - if serveErr != http.ErrServerClosed { - log.Fatalln(serveErr) - } - }, - } - - command.PersistentFlags().StringSliceVar( - &allowedOrigins, - "origins", - []string{"*"}, - "CORS allowed domain origins list", - ) - - command.PersistentFlags().StringVar( - &httpAddr, - "http", - "127.0.0.1:8090", - "api HTTP server address", - ) - - command.PersistentFlags().StringVar( - &httpsAddr, - "https", - "", - "api HTTPS server address (auto TLS via Let's Encrypt)\nthe incoming --http address traffic also will be redirected to this address", - ) - - return command -} - -type migrationsConnection struct { - DB *dbx.DB - MigrationsList migrate.MigrationsList -} - -func runMigrations(app core.App) error { - connections := []migrationsConnection{ - { - DB: app.DB(), - MigrationsList: migrations.AppMigrations, - }, - { - DB: app.LogsDB(), - MigrationsList: logs.LogsMigrations, - }, - } - - for _, c := range connections { - runner, err := migrate.NewRunner(c.DB, c.MigrationsList) - if err != nil { - return err - } - - if _, err := runner.Up(); err != nil { - return err - } - } - - return nil -} diff --git a/cmd/temp_upgrade.go b/cmd/temp_upgrade.go deleted file mode 100644 index 3e412ee587bd5cb2a9b8078bb3a66abebf808594..0000000000000000000000000000000000000000 --- a/cmd/temp_upgrade.go +++ /dev/null @@ -1,444 +0,0 @@ -package cmd - -import ( - "errors" - "fmt" - "regexp" - "strings" - - "github.com/fatih/color" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/types" - "github.com/spf13/cobra" -) - -// Temporary console command to update the pb_data structure to be compatible with the v0.8.0 changes. -// -// NB! It will be removed in v0.9+ -func NewTempUpgradeCommand(app core.App) *cobra.Command { - command := &cobra.Command{ - Use: "upgrade", - Short: "Upgrades your existing pb_data to be compatible with the v0.8.x changes", - Long: ` -Upgrades your existing pb_data to be compatible with the v0.8.x changes -Prerequisites and caveats: -- already upgraded to v0.7.* -- no existing users collection -- existing profiles collection fields like email, username, verified, etc. will be renamed to username2, email2, etc. -`, - Run: func(command *cobra.Command, args []string) { - if err := upgrade(app); err != nil { - color.Red("Error: %v", err) - } - }, - } - - return command -} - -func upgrade(app core.App) error { - if _, err := app.Dao().FindCollectionByNameOrId("users"); err == nil { - return errors.New("It seems that you've already upgraded or have an existing 'users' collection.") - } - - return app.Dao().RunInTransaction(func(txDao *daos.Dao) error { - if err := migrateCollections(txDao); err != nil { - return err - } - - if err := migrateUsers(app, txDao); err != nil { - return err - } - - if err := resetMigrationsTable(txDao); err != nil { - return err - } - - bold := color.New(color.Bold).Add(color.FgGreen) - bold.Println("The pb_data upgrade completed successfully!") - bold.Println("You can now start the application as usual with the 'serve' command.") - bold.Println("Please review the migrated collection API rules and fields in the Admin UI and apply the necessary changes in your client-side code.") - fmt.Println() - - return nil - }) -} - -// ------------------------------------------------------------------- - -func migrateCollections(txDao *daos.Dao) error { - // add new collection columns - if _, err := txDao.DB().AddColumn("_collections", "type", "TEXT DEFAULT 'base' NOT NULL").Execute(); err != nil { - return err - } - if _, err := txDao.DB().AddColumn("_collections", "options", "JSON DEFAULT '{}' NOT NULL").Execute(); err != nil { - return err - } - - ruleReplacements := []struct { - old string - new string - }{ - {"expand", "expand2"}, - {"collecitonId", "collectionId2"}, - {"collecitonName", "collectionName2"}, - {"profile.userId", "profile.id"}, - - // @collection.* - {"@collection.profiles.userId", "@collection.users.id"}, - {"@collection.profiles.username", "@collection.users.username2"}, - {"@collection.profiles.email", "@collection.users.email2"}, - {"@collection.profiles.emailVisibility", "@collection.users.emailVisibility2"}, - {"@collection.profiles.verified", "@collection.users.verified2"}, - {"@collection.profiles.tokenKey", "@collection.users.tokenKey2"}, - {"@collection.profiles.passwordHash", "@collection.users.passwordHash2"}, - {"@collection.profiles.lastResetSentAt", "@collection.users.lastResetSentAt2"}, - {"@collection.profiles.lastVerificationSentAt", "@collection.users.lastVerificationSentAt2"}, - {"@collection.profiles.", "@collection.users."}, - - // @request.* - {"@request.user.profile.userId", "@request.auth.id"}, - {"@request.user.profile.username", "@request.auth.username2"}, - {"@request.user.profile.email", "@request.auth.email2"}, - {"@request.user.profile.emailVisibility", "@request.auth.emailVisibility2"}, - {"@request.user.profile.verified", "@request.auth.verified2"}, - {"@request.user.profile.tokenKey", "@request.auth.tokenKey2"}, - {"@request.user.profile.passwordHash", "@request.auth.passwordHash2"}, - {"@request.user.profile.lastResetSentAt", "@request.auth.lastResetSentAt2"}, - {"@request.user.profile.lastVerificationSentAt", "@request.auth.lastVerificationSentAt2"}, - {"@request.user.profile.", "@request.auth."}, - {"@request.user", "@request.auth"}, - } - - collections := []*models.Collection{} - if err := txDao.CollectionQuery().All(&collections); err != nil { - return err - } - - for _, collection := range collections { - collection.Type = models.CollectionTypeBase - collection.NormalizeOptions() - - // rename profile fields - // --- - fieldsToRename := []string{ - "collectionId", - "collectionName", - "expand", - } - if collection.Name == "profiles" { - fieldsToRename = append(fieldsToRename, - "username", - "email", - "emailVisibility", - "verified", - "tokenKey", - "passwordHash", - "lastResetSentAt", - "lastVerificationSentAt", - ) - } - for _, name := range fieldsToRename { - f := collection.Schema.GetFieldByName(name) - if f != nil { - color.Blue("[%s - renamed field]", collection.Name) - color.Yellow(" - old: %s", f.Name) - color.Green(" - new: %s2", f.Name) - fmt.Println() - f.Name += "2" - } - } - // --- - - // replace rule fields - // --- - rules := map[string]*string{ - "ListRule": collection.ListRule, - "ViewRule": collection.ViewRule, - "CreateRule": collection.CreateRule, - "UpdateRule": collection.UpdateRule, - "DeleteRule": collection.DeleteRule, - } - - for ruleKey, rule := range rules { - if rule == nil || *rule == "" { - continue - } - - originalRule := *rule - - for _, replacement := range ruleReplacements { - re := regexp.MustCompile(regexp.QuoteMeta(replacement.old) + `\b`) - *rule = re.ReplaceAllString(*rule, replacement.new) - } - - *rule = replaceReversedLikes(*rule) - - if originalRule != *rule { - color.Blue("[%s - replaced %s]:", collection.Name, ruleKey) - color.Yellow(" - old: %s", strings.TrimSpace(originalRule)) - color.Green(" - new: %s", strings.TrimSpace(*rule)) - fmt.Println() - } - } - // --- - - if err := txDao.SaveCollection(collection); err != nil { - return err - } - } - - return nil -} - -func migrateUsers(app core.App, txDao *daos.Dao) error { - color.Blue(`[merging "_users" and "profiles"]:`) - - profilesCollection, err := txDao.FindCollectionByNameOrId("profiles") - if err != nil { - return err - } - - originalProfilesCollectionId := profilesCollection.Id - - // change the profiles collection id to something else since we will be using - // it for the new users collection in order to avoid renaming the storage dir - _, idRenameErr := txDao.DB().NewQuery(fmt.Sprintf( - `UPDATE {{_collections}} - SET id = '%s' - WHERE id = '%s'; - `, - (originalProfilesCollectionId + "__old__"), - originalProfilesCollectionId, - )).Execute() - if idRenameErr != nil { - return idRenameErr - } - - // refresh profiles collection - profilesCollection, err = txDao.FindCollectionByNameOrId("profiles") - if err != nil { - return err - } - - usersSchema, _ := profilesCollection.Schema.Clone() - userIdField := usersSchema.GetFieldByName("userId") - if userIdField != nil { - usersSchema.RemoveField(userIdField.Id) - } - - usersCollection := &models.Collection{} - usersCollection.MarkAsNew() - usersCollection.Id = originalProfilesCollectionId - usersCollection.Name = "users" - usersCollection.Type = models.CollectionTypeAuth - usersCollection.Schema = *usersSchema - usersCollection.CreateRule = types.Pointer("") - if profilesCollection.ListRule != nil && *profilesCollection.ListRule != "" { - *profilesCollection.ListRule = strings.ReplaceAll(*profilesCollection.ListRule, "userId", "id") - usersCollection.ListRule = profilesCollection.ListRule - } - if profilesCollection.ViewRule != nil && *profilesCollection.ViewRule != "" { - *profilesCollection.ViewRule = strings.ReplaceAll(*profilesCollection.ViewRule, "userId", "id") - usersCollection.ViewRule = profilesCollection.ViewRule - } - if profilesCollection.UpdateRule != nil && *profilesCollection.UpdateRule != "" { - *profilesCollection.UpdateRule = strings.ReplaceAll(*profilesCollection.UpdateRule, "userId", "id") - usersCollection.UpdateRule = profilesCollection.UpdateRule - } - if profilesCollection.DeleteRule != nil && *profilesCollection.DeleteRule != "" { - *profilesCollection.DeleteRule = strings.ReplaceAll(*profilesCollection.DeleteRule, "userId", "id") - usersCollection.DeleteRule = profilesCollection.DeleteRule - } - - // set auth options - settings := app.Settings() - authOptions := usersCollection.AuthOptions() - authOptions.ManageRule = nil - authOptions.AllowOAuth2Auth = true - authOptions.AllowUsernameAuth = false - authOptions.AllowEmailAuth = settings.EmailAuth.Enabled - authOptions.MinPasswordLength = settings.EmailAuth.MinPasswordLength - authOptions.OnlyEmailDomains = settings.EmailAuth.OnlyDomains - authOptions.ExceptEmailDomains = settings.EmailAuth.ExceptDomains - // twitter currently is the only provider that doesn't return an email - authOptions.RequireEmail = !settings.TwitterAuth.Enabled - - usersCollection.SetOptions(authOptions) - - if err := txDao.SaveCollection(usersCollection); err != nil { - return err - } - - // copy the original users - _, usersErr := txDao.DB().NewQuery(` - INSERT INTO {{users}} (id, created, updated, username, email, emailVisibility, verified, tokenKey, passwordHash, lastResetSentAt, lastVerificationSentAt) - SELECT id, created, updated, ("u_" || id), email, false, verified, tokenKey, passwordHash, lastResetSentAt, lastVerificationSentAt - FROM {{_users}}; - `).Execute() - if usersErr != nil { - return usersErr - } - - // generate the profile fields copy statements - sets := []string{"id = p.id"} - for _, f := range usersSchema.Fields() { - sets = append(sets, fmt.Sprintf("%s = p.%s", f.Name, f.Name)) - } - - // copy profile fields - _, copyProfileErr := txDao.DB().NewQuery(fmt.Sprintf(` - UPDATE {{users}} as u - SET %s - FROM {{profiles}} as p - WHERE u.id = p.userId; - `, strings.Join(sets, ", "))).Execute() - if copyProfileErr != nil { - return copyProfileErr - } - - profileRecords, err := txDao.FindRecordsByExpr("profiles") - if err != nil { - return err - } - - // update all profiles and users fields to point to the new users collection - collections := []*models.Collection{} - if err := txDao.CollectionQuery().All(&collections); err != nil { - return err - } - for _, collection := range collections { - var hasChanges bool - - for _, f := range collection.Schema.Fields() { - f.InitOptions() - - if f.Type == schema.FieldTypeUser { - if collection.Name == "profiles" && f.Name == "userId" { - continue - } - - hasChanges = true - - // change the user field to a relation field - options, _ := f.Options.(*schema.UserOptions) - f.Type = schema.FieldTypeRelation - f.Options = &schema.RelationOptions{ - CollectionId: usersCollection.Id, - MaxSelect: &options.MaxSelect, - CascadeDelete: options.CascadeDelete, - } - - for _, p := range profileRecords { - pId := p.Id - pUserId := p.GetString("userId") - // replace all user record id references with the profile id - _, replaceErr := txDao.DB().NewQuery(fmt.Sprintf(` - UPDATE %s - SET [[%s]] = REPLACE([[%s]], '%s', '%s') - WHERE [[%s]] LIKE ('%%%s%%'); - `, collection.Name, f.Name, f.Name, pUserId, pId, f.Name, pUserId)).Execute() - if replaceErr != nil { - return replaceErr - } - } - } - } - - if hasChanges { - if err := txDao.Save(collection); err != nil { - return err - } - } - } - - if err := migrateExternalAuths(txDao, originalProfilesCollectionId); err != nil { - return err - } - - // drop _users table - if _, err := txDao.DB().DropTable("_users").Execute(); err != nil { - return err - } - - // drop profiles table - if _, err := txDao.DB().DropTable("profiles").Execute(); err != nil { - return err - } - - // delete profiles collection - if err := txDao.Delete(profilesCollection); err != nil { - return err - } - - color.Green(` - Successfully merged "_users" and "profiles" into a new collection "users".`) - fmt.Println() - - return nil -} - -func migrateExternalAuths(txDao *daos.Dao, userCollectionId string) error { - _, alterErr := txDao.DB().NewQuery(` - -- crate new externalAuths table - CREATE TABLE {{_newExternalAuths}} ( - [[id]] TEXT PRIMARY KEY, - [[collectionId]] TEXT NOT NULL, - [[recordId]] TEXT NOT NULL, - [[provider]] TEXT NOT NULL, - [[providerId]] TEXT NOT NULL, - [[created]] TEXT DEFAULT "" NOT NULL, - [[updated]] TEXT DEFAULT "" NOT NULL, - --- - FOREIGN KEY ([[collectionId]]) REFERENCES {{_collections}} ([[id]]) ON UPDATE CASCADE ON DELETE CASCADE - ); - - -- copy all data from the old table to the new one - INSERT INTO {{_newExternalAuths}} - SELECT auth.id, "` + userCollectionId + `" as collectionId, [[profiles.id]] as recordId, auth.provider, auth.providerId, auth.created, auth.updated - FROM {{_externalAuths}} auth - INNER JOIN {{profiles}} on [[profiles.userId]] = [[auth.userId]]; - - -- drop old table - DROP TABLE {{_externalAuths}}; - - -- rename new table - ALTER TABLE {{_newExternalAuths}} RENAME TO {{_externalAuths}}; - - -- create named indexes - CREATE UNIQUE INDEX _externalAuths_record_provider_idx on {{_externalAuths}} ([[collectionId]], [[recordId]], [[provider]]); - CREATE UNIQUE INDEX _externalAuths_provider_providerId_idx on {{_externalAuths}} ([[provider]], [[providerId]]); - `).Execute() - - return alterErr -} - -func resetMigrationsTable(txDao *daos.Dao) error { - // reset the migration state to the new init - _, err := txDao.DB().Delete("_migrations", dbx.HashExp{ - "file": "1661586591_add_externalAuths_table.go", - }).Execute() - - return err -} - -var reverseLikeRegex = regexp.MustCompile(`(['"]\w*['"])\s*(\~|!~)\s*([\w\@\.]*)`) - -func replaceReversedLikes(rule string) string { - parts := reverseLikeRegex.FindAllStringSubmatch(rule, -1) - - for _, p := range parts { - if len(p) != 4 { - continue - } - - newPart := fmt.Sprintf("%s %s %s", p[3], p[2], p[1]) - - rule = strings.ReplaceAll(rule, p[0], newPart) - } - - return rule -} diff --git a/core/app.go b/core/app.go deleted file mode 100644 index 97d5a04cfb6858c71d178ab95a3e276e5a8c39ee..0000000000000000000000000000000000000000 --- a/core/app.go +++ /dev/null @@ -1,497 +0,0 @@ -// Package core is the backbone of PocketBase. -// -// It defines the main PocketBase App interface and its base implementation. -package core - -import ( - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models/settings" - "github.com/pocketbase/pocketbase/tools/filesystem" - "github.com/pocketbase/pocketbase/tools/hook" - "github.com/pocketbase/pocketbase/tools/mailer" - "github.com/pocketbase/pocketbase/tools/store" - "github.com/pocketbase/pocketbase/tools/subscriptions" -) - -// App defines the main PocketBase app interface. -type App interface { - // DB returns the default app database instance. - DB() *dbx.DB - - // Dao returns the default app Dao instance. - // - // This Dao could operate only on the tables and models - // associated with the default app database. For example, - // trying to access the request logs table will result in error. - Dao() *daos.Dao - - // LogsDB returns the app logs database instance. - LogsDB() *dbx.DB - - // LogsDao returns the app logs Dao instance. - // - // This Dao could operate only on the tables and models - // associated with the logs database. For example, trying to access - // the users table from LogsDao will result in error. - LogsDao() *daos.Dao - - // DataDir returns the app data directory path. - DataDir() string - - // EncryptionEnv returns the name of the app secret env key - // (used for settings encryption). - EncryptionEnv() string - - // IsDebug returns whether the app is in debug mode - // (showing more detailed error logs, executed sql statements, etc.). - IsDebug() bool - - // Settings returns the loaded app settings. - Settings() *settings.Settings - - // Cache returns the app internal cache store. - Cache() *store.Store[any] - - // SubscriptionsBroker returns the app realtime subscriptions broker instance. - SubscriptionsBroker() *subscriptions.Broker - - // NewMailClient creates and returns a configured app mail client. - NewMailClient() mailer.Mailer - - // NewFilesystem creates and returns a configured filesystem.System instance. - // - // NB! Make sure to call `Close()` on the returned result - // after you are done working with it. - NewFilesystem() (*filesystem.System, error) - - // RefreshSettings reinitializes and reloads the stored application settings. - RefreshSettings() error - - // Bootstrap takes care for initializing the application - // (open db connections, load settings, etc.) - Bootstrap() error - - // ResetBootstrapState takes care for releasing initialized app resources - // (eg. closing db connections). - ResetBootstrapState() error - - // --------------------------------------------------------------- - // App event hooks - // --------------------------------------------------------------- - - // OnBeforeBootstrap hook is triggered before initializing the base - // application resources (eg. before db open and initial settings load). - OnBeforeBootstrap() *hook.Hook[*BootstrapEvent] - - // OnAfterBootstrap hook is triggered after initializing the base - // application resources (eg. after db open and initial settings load). - OnAfterBootstrap() *hook.Hook[*BootstrapEvent] - - // OnBeforeServe hook is triggered before serving the internal router (echo), - // allowing you to adjust its options and attach new routes. - OnBeforeServe() *hook.Hook[*ServeEvent] - - // OnBeforeApiError hook is triggered right before sending an error API - // response to the client, allowing you to further modify the error data - // or to return a completely different API response (using [hook.StopPropagation]). - OnBeforeApiError() *hook.Hook[*ApiErrorEvent] - - // OnAfterApiError hook is triggered right after sending an error API - // response to the client. - // It could be used to log the final API error in external services. - OnAfterApiError() *hook.Hook[*ApiErrorEvent] - - // --------------------------------------------------------------- - // Dao event hooks - // --------------------------------------------------------------- - - // OnModelBeforeCreate hook is triggered before inserting a new - // entry in the DB, allowing you to modify or validate the stored data. - OnModelBeforeCreate() *hook.Hook[*ModelEvent] - - // OnModelAfterCreate hook is triggered after successfully - // inserting a new entry in the DB. - OnModelAfterCreate() *hook.Hook[*ModelEvent] - - // OnModelBeforeUpdate hook is triggered before updating existing - // entry in the DB, allowing you to modify or validate the stored data. - OnModelBeforeUpdate() *hook.Hook[*ModelEvent] - - // OnModelAfterUpdate hook is triggered after successfully updating - // existing entry in the DB. - OnModelAfterUpdate() *hook.Hook[*ModelEvent] - - // OnModelBeforeDelete hook is triggered before deleting an - // existing entry from the DB. - OnModelBeforeDelete() *hook.Hook[*ModelEvent] - - // OnModelAfterDelete is triggered after successfully deleting an - // existing entry from the DB. - OnModelAfterDelete() *hook.Hook[*ModelEvent] - - // --------------------------------------------------------------- - // Mailer event hooks - // --------------------------------------------------------------- - - // OnMailerBeforeAdminResetPasswordSend hook is triggered right before - // sending a password reset email to an admin. - // - // Could be used to send your own custom email template if - // [hook.StopPropagation] is returned in one of its listeners. - OnMailerBeforeAdminResetPasswordSend() *hook.Hook[*MailerAdminEvent] - - // OnMailerAfterAdminResetPasswordSend hook is triggered after - // admin password reset email was successfully sent. - OnMailerAfterAdminResetPasswordSend() *hook.Hook[*MailerAdminEvent] - - // OnMailerBeforeRecordResetPasswordSend hook is triggered right before - // sending a password reset email to an auth record. - // - // Could be used to send your own custom email template if - // [hook.StopPropagation] is returned in one of its listeners. - OnMailerBeforeRecordResetPasswordSend() *hook.Hook[*MailerRecordEvent] - - // OnMailerAfterRecordResetPasswordSend hook is triggered after - // an auth record password reset email was successfully sent. - OnMailerAfterRecordResetPasswordSend() *hook.Hook[*MailerRecordEvent] - - // OnMailerBeforeRecordVerificationSend hook is triggered right before - // sending a verification email to an auth record. - // - // Could be used to send your own custom email template if - // [hook.StopPropagation] is returned in one of its listeners. - OnMailerBeforeRecordVerificationSend() *hook.Hook[*MailerRecordEvent] - - // OnMailerAfterRecordVerificationSend hook is triggered after a - // verification email was successfully sent to an auth record. - OnMailerAfterRecordVerificationSend() *hook.Hook[*MailerRecordEvent] - - // OnMailerBeforeRecordChangeEmailSend hook is triggered right before - // sending a confirmation new address email to an auth record. - // - // Could be used to send your own custom email template if - // [hook.StopPropagation] is returned in one of its listeners. - OnMailerBeforeRecordChangeEmailSend() *hook.Hook[*MailerRecordEvent] - - // OnMailerAfterRecordChangeEmailSend hook is triggered after a - // verification email was successfully sent to an auth record. - OnMailerAfterRecordChangeEmailSend() *hook.Hook[*MailerRecordEvent] - - // --------------------------------------------------------------- - // Realtime API event hooks - // --------------------------------------------------------------- - - // OnRealtimeConnectRequest hook is triggered right before establishing - // the SSE client connection. - OnRealtimeConnectRequest() *hook.Hook[*RealtimeConnectEvent] - - // OnRealtimeDisconnectRequest hook is triggered on disconnected/interrupted - // SSE client connection. - OnRealtimeDisconnectRequest() *hook.Hook[*RealtimeDisconnectEvent] - - // OnRealtimeBeforeMessage hook is triggered right before sending - // an SSE message to a client. - // - // Returning [hook.StopPropagation] will prevent sending the message. - // Returning any other non-nil error will close the realtime connection. - OnRealtimeBeforeMessageSend() *hook.Hook[*RealtimeMessageEvent] - - // OnRealtimeBeforeMessage hook is triggered right after sending - // an SSE message to a client. - OnRealtimeAfterMessageSend() *hook.Hook[*RealtimeMessageEvent] - - // OnRealtimeBeforeSubscribeRequest hook is triggered before changing - // the client subscriptions, allowing you to further validate and - // modify the submitted change. - OnRealtimeBeforeSubscribeRequest() *hook.Hook[*RealtimeSubscribeEvent] - - // OnRealtimeAfterSubscribeRequest hook is triggered after the client - // subscriptions were successfully changed. - OnRealtimeAfterSubscribeRequest() *hook.Hook[*RealtimeSubscribeEvent] - - // --------------------------------------------------------------- - // Settings API event hooks - // --------------------------------------------------------------- - - // OnSettingsListRequest hook is triggered on each successful - // API Settings list request. - // - // Could be used to validate or modify the response before - // returning it to the client. - OnSettingsListRequest() *hook.Hook[*SettingsListEvent] - - // OnSettingsBeforeUpdateRequest hook is triggered before each API - // Settings update request (after request data load and before settings persistence). - // - // Could be used to additionally validate the request data or - // implement completely different persistence behavior - // (returning [hook.StopPropagation]). - OnSettingsBeforeUpdateRequest() *hook.Hook[*SettingsUpdateEvent] - - // OnSettingsAfterUpdateRequest hook is triggered after each - // successful API Settings update request. - OnSettingsAfterUpdateRequest() *hook.Hook[*SettingsUpdateEvent] - - // --------------------------------------------------------------- - // File API event hooks - // --------------------------------------------------------------- - - // OnFileDownloadRequest hook is triggered before each API File download request. - // - // Could be used to validate or modify the file response before - // returning it to the client. - OnFileDownloadRequest() *hook.Hook[*FileDownloadEvent] - - // --------------------------------------------------------------- - // Admin API event hooks - // --------------------------------------------------------------- - - // OnAdminsListRequest hook is triggered on each API Admins list request. - // - // Could be used to validate or modify the response before returning it to the client. - OnAdminsListRequest() *hook.Hook[*AdminsListEvent] - - // OnAdminViewRequest hook is triggered on each API Admin view request. - // - // Could be used to validate or modify the response before returning it to the client. - OnAdminViewRequest() *hook.Hook[*AdminViewEvent] - - // OnAdminBeforeCreateRequest hook is triggered before each API - // Admin create request (after request data load and before model persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnAdminBeforeCreateRequest() *hook.Hook[*AdminCreateEvent] - - // OnAdminAfterCreateRequest hook is triggered after each - // successful API Admin create request. - OnAdminAfterCreateRequest() *hook.Hook[*AdminCreateEvent] - - // OnAdminBeforeUpdateRequest hook is triggered before each API - // Admin update request (after request data load and before model persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnAdminBeforeUpdateRequest() *hook.Hook[*AdminUpdateEvent] - - // OnAdminAfterUpdateRequest hook is triggered after each - // successful API Admin update request. - OnAdminAfterUpdateRequest() *hook.Hook[*AdminUpdateEvent] - - // OnAdminBeforeDeleteRequest hook is triggered before each API - // Admin delete request (after model load and before actual deletion). - // - // Could be used to additionally validate the request data or implement - // completely different delete behavior (returning [hook.StopPropagation]). - OnAdminBeforeDeleteRequest() *hook.Hook[*AdminDeleteEvent] - - // OnAdminAfterDeleteRequest hook is triggered after each - // successful API Admin delete request. - OnAdminAfterDeleteRequest() *hook.Hook[*AdminDeleteEvent] - - // OnAdminAuthRequest hook is triggered on each successful API Admin - // authentication request (sign-in, token refresh, etc.). - // - // Could be used to additionally validate or modify the - // authenticated admin data and token. - OnAdminAuthRequest() *hook.Hook[*AdminAuthEvent] - - // --------------------------------------------------------------- - // Record Auth API event hooks - // --------------------------------------------------------------- - - // OnRecordAuthRequest hook is triggered on each successful API - // record authentication request (sign-in, token refresh, etc.). - // - // Could be used to additionally validate or modify the authenticated - // record data and token. - OnRecordAuthRequest() *hook.Hook[*RecordAuthEvent] - - // OnRecordBeforeRequestPasswordResetRequest hook is triggered before each Record - // request password reset API request (after request data load and before sending the reset email). - // - // Could be used to additionally validate the request data or implement - // completely different password reset behavior (returning [hook.StopPropagation]). - OnRecordBeforeRequestPasswordResetRequest() *hook.Hook[*RecordRequestPasswordResetEvent] - - // OnRecordAfterRequestPasswordResetRequest hook is triggered after each - // successful request password reset API request. - OnRecordAfterRequestPasswordResetRequest() *hook.Hook[*RecordRequestPasswordResetEvent] - - // OnRecordBeforeConfirmPasswordResetRequest hook is triggered before each Record - // confirm password reset API request (after request data load and before persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnRecordBeforeConfirmPasswordResetRequest() *hook.Hook[*RecordConfirmPasswordResetEvent] - - // OnRecordAfterConfirmPasswordResetRequest hook is triggered after each - // successful confirm password reset API request. - OnRecordAfterConfirmPasswordResetRequest() *hook.Hook[*RecordConfirmPasswordResetEvent] - - // OnRecordBeforeRequestVerificationRequest hook is triggered before each Record - // request verification API request (after request data load and before sending the verification email). - // - // Could be used to additionally validate the loaded request data or implement - // completely different verification behavior (returning [hook.StopPropagation]). - OnRecordBeforeRequestVerificationRequest() *hook.Hook[*RecordRequestVerificationEvent] - - // OnRecordAfterRequestVerificationRequest hook is triggered after each - // successful request verification API request. - OnRecordAfterRequestVerificationRequest() *hook.Hook[*RecordRequestVerificationEvent] - - // OnRecordBeforeConfirmVerificationRequest hook is triggered before each Record - // confirm verification API request (after request data load and before persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnRecordBeforeConfirmVerificationRequest() *hook.Hook[*RecordConfirmVerificationEvent] - - // OnRecordAfterConfirmVerificationRequest hook is triggered after each - // successful confirm verification API request. - OnRecordAfterConfirmVerificationRequest() *hook.Hook[*RecordConfirmVerificationEvent] - - // OnRecordBeforeRequestEmailChangeRequest hook is triggered before each Record request email change API request - // (after request data load and before sending the email link to confirm the change). - // - // Could be used to additionally validate the request data or implement - // completely different request email change behavior (returning [hook.StopPropagation]). - OnRecordBeforeRequestEmailChangeRequest() *hook.Hook[*RecordRequestEmailChangeEvent] - - // OnRecordAfterRequestEmailChangeRequest hook is triggered after each - // successful request email change API request. - OnRecordAfterRequestEmailChangeRequest() *hook.Hook[*RecordRequestEmailChangeEvent] - - // OnRecordBeforeConfirmEmailChangeRequest hook is triggered before each Record - // confirm email change API request (after request data load and before persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnRecordBeforeConfirmEmailChangeRequest() *hook.Hook[*RecordConfirmEmailChangeEvent] - - // OnRecordAfterConfirmEmailChangeRequest hook is triggered after each - // successful confirm email change API request. - OnRecordAfterConfirmEmailChangeRequest() *hook.Hook[*RecordConfirmEmailChangeEvent] - - // OnRecordListExternalAuthsRequest hook is triggered on each API record external auths list request. - // - // Could be used to validate or modify the response before returning it to the client. - OnRecordListExternalAuthsRequest() *hook.Hook[*RecordListExternalAuthsEvent] - - // OnRecordBeforeUnlinkExternalAuthRequest hook is triggered before each API record - // external auth unlink request (after models load and before the actual relation deletion). - // - // Could be used to additionally validate the request data or implement - // completely different delete behavior (returning [hook.StopPropagation]). - OnRecordBeforeUnlinkExternalAuthRequest() *hook.Hook[*RecordUnlinkExternalAuthEvent] - - // OnRecordAfterUnlinkExternalAuthRequest hook is triggered after each - // successful API record external auth unlink request. - OnRecordAfterUnlinkExternalAuthRequest() *hook.Hook[*RecordUnlinkExternalAuthEvent] - - // --------------------------------------------------------------- - // Record CRUD API event hooks - // --------------------------------------------------------------- - - // OnRecordsListRequest hook is triggered on each API Records list request. - // - // Could be used to validate or modify the response before returning it to the client. - OnRecordsListRequest() *hook.Hook[*RecordsListEvent] - - // OnRecordViewRequest hook is triggered on each API Record view request. - // - // Could be used to validate or modify the response before returning it to the client. - OnRecordViewRequest() *hook.Hook[*RecordViewEvent] - - // OnRecordBeforeCreateRequest hook is triggered before each API Record - // create request (after request data load and before model persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnRecordBeforeCreateRequest() *hook.Hook[*RecordCreateEvent] - - // OnRecordAfterCreateRequest hook is triggered after each - // successful API Record create request. - OnRecordAfterCreateRequest() *hook.Hook[*RecordCreateEvent] - - // OnRecordBeforeUpdateRequest hook is triggered before each API Record - // update request (after request data load and before model persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnRecordBeforeUpdateRequest() *hook.Hook[*RecordUpdateEvent] - - // OnRecordAfterUpdateRequest hook is triggered after each - // successful API Record update request. - OnRecordAfterUpdateRequest() *hook.Hook[*RecordUpdateEvent] - - // OnRecordBeforeDeleteRequest hook is triggered before each API Record - // delete request (after model load and before actual deletion). - // - // Could be used to additionally validate the request data or implement - // completely different delete behavior (returning [hook.StopPropagation]). - OnRecordBeforeDeleteRequest() *hook.Hook[*RecordDeleteEvent] - - // OnRecordAfterDeleteRequest hook is triggered after each - // successful API Record delete request. - OnRecordAfterDeleteRequest() *hook.Hook[*RecordDeleteEvent] - - // --------------------------------------------------------------- - // Collection API event hooks - // --------------------------------------------------------------- - - // OnCollectionsListRequest hook is triggered on each API Collections list request. - // - // Could be used to validate or modify the response before returning it to the client. - OnCollectionsListRequest() *hook.Hook[*CollectionsListEvent] - - // OnCollectionViewRequest hook is triggered on each API Collection view request. - // - // Could be used to validate or modify the response before returning it to the client. - OnCollectionViewRequest() *hook.Hook[*CollectionViewEvent] - - // OnCollectionBeforeCreateRequest hook is triggered before each API Collection - // create request (after request data load and before model persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnCollectionBeforeCreateRequest() *hook.Hook[*CollectionCreateEvent] - - // OnCollectionAfterCreateRequest hook is triggered after each - // successful API Collection create request. - OnCollectionAfterCreateRequest() *hook.Hook[*CollectionCreateEvent] - - // OnCollectionBeforeUpdateRequest hook is triggered before each API Collection - // update request (after request data load and before model persistence). - // - // Could be used to additionally validate the request data or implement - // completely different persistence behavior (returning [hook.StopPropagation]). - OnCollectionBeforeUpdateRequest() *hook.Hook[*CollectionUpdateEvent] - - // OnCollectionAfterUpdateRequest hook is triggered after each - // successful API Collection update request. - OnCollectionAfterUpdateRequest() *hook.Hook[*CollectionUpdateEvent] - - // OnCollectionBeforeDeleteRequest hook is triggered before each API - // Collection delete request (after model load and before actual deletion). - // - // Could be used to additionally validate the request data or implement - // completely different delete behavior (returning [hook.StopPropagation]). - OnCollectionBeforeDeleteRequest() *hook.Hook[*CollectionDeleteEvent] - - // OnCollectionAfterDeleteRequest hook is triggered after each - // successful API Collection delete request. - OnCollectionAfterDeleteRequest() *hook.Hook[*CollectionDeleteEvent] - - // OnCollectionsBeforeImportRequest hook is triggered before each API - // collections import request (after request data load and before the actual import). - // - // Could be used to additionally validate the imported collections or - // to implement completely different import behavior (returning [hook.StopPropagation]). - OnCollectionsBeforeImportRequest() *hook.Hook[*CollectionsImportEvent] - - // OnCollectionsAfterImportRequest hook is triggered after each - // successful API collections import request. - OnCollectionsAfterImportRequest() *hook.Hook[*CollectionsImportEvent] -} diff --git a/core/base.go b/core/base.go deleted file mode 100644 index e7da7046437e810b82786decc1fa496bfd158266..0000000000000000000000000000000000000000 --- a/core/base.go +++ /dev/null @@ -1,853 +0,0 @@ -package core - -import ( - "context" - "database/sql" - "errors" - "log" - "os" - "path/filepath" - "time" - - "github.com/fatih/color" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/settings" - "github.com/pocketbase/pocketbase/tools/filesystem" - "github.com/pocketbase/pocketbase/tools/hook" - "github.com/pocketbase/pocketbase/tools/mailer" - "github.com/pocketbase/pocketbase/tools/store" - "github.com/pocketbase/pocketbase/tools/subscriptions" -) - -var _ App = (*BaseApp)(nil) - -// BaseApp implements core.App and defines the base PocketBase app structure. -type BaseApp struct { - // configurable parameters - isDebug bool - dataDir string - encryptionEnv string - - // internals - cache *store.Store[any] - settings *settings.Settings - db *dbx.DB - dao *daos.Dao - logsDB *dbx.DB - logsDao *daos.Dao - subscriptionsBroker *subscriptions.Broker - - // app event hooks - onBeforeBootstrap *hook.Hook[*BootstrapEvent] - onAfterBootstrap *hook.Hook[*BootstrapEvent] - onBeforeServe *hook.Hook[*ServeEvent] - onBeforeApiError *hook.Hook[*ApiErrorEvent] - onAfterApiError *hook.Hook[*ApiErrorEvent] - - // dao event hooks - onModelBeforeCreate *hook.Hook[*ModelEvent] - onModelAfterCreate *hook.Hook[*ModelEvent] - onModelBeforeUpdate *hook.Hook[*ModelEvent] - onModelAfterUpdate *hook.Hook[*ModelEvent] - onModelBeforeDelete *hook.Hook[*ModelEvent] - onModelAfterDelete *hook.Hook[*ModelEvent] - - // mailer event hooks - onMailerBeforeAdminResetPasswordSend *hook.Hook[*MailerAdminEvent] - onMailerAfterAdminResetPasswordSend *hook.Hook[*MailerAdminEvent] - onMailerBeforeRecordResetPasswordSend *hook.Hook[*MailerRecordEvent] - onMailerAfterRecordResetPasswordSend *hook.Hook[*MailerRecordEvent] - onMailerBeforeRecordVerificationSend *hook.Hook[*MailerRecordEvent] - onMailerAfterRecordVerificationSend *hook.Hook[*MailerRecordEvent] - onMailerBeforeRecordChangeEmailSend *hook.Hook[*MailerRecordEvent] - onMailerAfterRecordChangeEmailSend *hook.Hook[*MailerRecordEvent] - - // realtime api event hooks - onRealtimeConnectRequest *hook.Hook[*RealtimeConnectEvent] - onRealtimeDisconnectRequest *hook.Hook[*RealtimeDisconnectEvent] - onRealtimeBeforeMessageSend *hook.Hook[*RealtimeMessageEvent] - onRealtimeAfterMessageSend *hook.Hook[*RealtimeMessageEvent] - onRealtimeBeforeSubscribeRequest *hook.Hook[*RealtimeSubscribeEvent] - onRealtimeAfterSubscribeRequest *hook.Hook[*RealtimeSubscribeEvent] - - // settings api event hooks - onSettingsListRequest *hook.Hook[*SettingsListEvent] - onSettingsBeforeUpdateRequest *hook.Hook[*SettingsUpdateEvent] - onSettingsAfterUpdateRequest *hook.Hook[*SettingsUpdateEvent] - - // file api event hooks - onFileDownloadRequest *hook.Hook[*FileDownloadEvent] - - // admin api event hooks - onAdminsListRequest *hook.Hook[*AdminsListEvent] - onAdminViewRequest *hook.Hook[*AdminViewEvent] - onAdminBeforeCreateRequest *hook.Hook[*AdminCreateEvent] - onAdminAfterCreateRequest *hook.Hook[*AdminCreateEvent] - onAdminBeforeUpdateRequest *hook.Hook[*AdminUpdateEvent] - onAdminAfterUpdateRequest *hook.Hook[*AdminUpdateEvent] - onAdminBeforeDeleteRequest *hook.Hook[*AdminDeleteEvent] - onAdminAfterDeleteRequest *hook.Hook[*AdminDeleteEvent] - onAdminAuthRequest *hook.Hook[*AdminAuthEvent] - - // record auth API event hooks - onRecordAuthRequest *hook.Hook[*RecordAuthEvent] - onRecordBeforeRequestPasswordResetRequest *hook.Hook[*RecordRequestPasswordResetEvent] - onRecordAfterRequestPasswordResetRequest *hook.Hook[*RecordRequestPasswordResetEvent] - onRecordBeforeConfirmPasswordResetRequest *hook.Hook[*RecordConfirmPasswordResetEvent] - onRecordAfterConfirmPasswordResetRequest *hook.Hook[*RecordConfirmPasswordResetEvent] - onRecordBeforeRequestVerificationRequest *hook.Hook[*RecordRequestVerificationEvent] - onRecordAfterRequestVerificationRequest *hook.Hook[*RecordRequestVerificationEvent] - onRecordBeforeConfirmVerificationRequest *hook.Hook[*RecordConfirmVerificationEvent] - onRecordAfterConfirmVerificationRequest *hook.Hook[*RecordConfirmVerificationEvent] - onRecordBeforeRequestEmailChangeRequest *hook.Hook[*RecordRequestEmailChangeEvent] - onRecordAfterRequestEmailChangeRequest *hook.Hook[*RecordRequestEmailChangeEvent] - onRecordBeforeConfirmEmailChangeRequest *hook.Hook[*RecordConfirmEmailChangeEvent] - onRecordAfterConfirmEmailChangeRequest *hook.Hook[*RecordConfirmEmailChangeEvent] - onRecordListExternalAuthsRequest *hook.Hook[*RecordListExternalAuthsEvent] - onRecordBeforeUnlinkExternalAuthRequest *hook.Hook[*RecordUnlinkExternalAuthEvent] - onRecordAfterUnlinkExternalAuthRequest *hook.Hook[*RecordUnlinkExternalAuthEvent] - - // record crud API event hooks - onRecordsListRequest *hook.Hook[*RecordsListEvent] - onRecordViewRequest *hook.Hook[*RecordViewEvent] - onRecordBeforeCreateRequest *hook.Hook[*RecordCreateEvent] - onRecordAfterCreateRequest *hook.Hook[*RecordCreateEvent] - onRecordBeforeUpdateRequest *hook.Hook[*RecordUpdateEvent] - onRecordAfterUpdateRequest *hook.Hook[*RecordUpdateEvent] - onRecordBeforeDeleteRequest *hook.Hook[*RecordDeleteEvent] - onRecordAfterDeleteRequest *hook.Hook[*RecordDeleteEvent] - - // collection API event hooks - onCollectionsListRequest *hook.Hook[*CollectionsListEvent] - onCollectionViewRequest *hook.Hook[*CollectionViewEvent] - onCollectionBeforeCreateRequest *hook.Hook[*CollectionCreateEvent] - onCollectionAfterCreateRequest *hook.Hook[*CollectionCreateEvent] - onCollectionBeforeUpdateRequest *hook.Hook[*CollectionUpdateEvent] - onCollectionAfterUpdateRequest *hook.Hook[*CollectionUpdateEvent] - onCollectionBeforeDeleteRequest *hook.Hook[*CollectionDeleteEvent] - onCollectionAfterDeleteRequest *hook.Hook[*CollectionDeleteEvent] - onCollectionsBeforeImportRequest *hook.Hook[*CollectionsImportEvent] - onCollectionsAfterImportRequest *hook.Hook[*CollectionsImportEvent] -} - -// NewBaseApp creates and returns a new BaseApp instance -// configured with the provided arguments. -// -// To initialize the app, you need to call `app.Bootstrap()`. -func NewBaseApp(dataDir string, encryptionEnv string, isDebug bool) *BaseApp { - app := &BaseApp{ - dataDir: dataDir, - isDebug: isDebug, - encryptionEnv: encryptionEnv, - cache: store.New[any](nil), - settings: settings.New(), - subscriptionsBroker: subscriptions.NewBroker(), - - // app event hooks - onBeforeBootstrap: &hook.Hook[*BootstrapEvent]{}, - onAfterBootstrap: &hook.Hook[*BootstrapEvent]{}, - onBeforeServe: &hook.Hook[*ServeEvent]{}, - onBeforeApiError: &hook.Hook[*ApiErrorEvent]{}, - onAfterApiError: &hook.Hook[*ApiErrorEvent]{}, - - // dao event hooks - onModelBeforeCreate: &hook.Hook[*ModelEvent]{}, - onModelAfterCreate: &hook.Hook[*ModelEvent]{}, - onModelBeforeUpdate: &hook.Hook[*ModelEvent]{}, - onModelAfterUpdate: &hook.Hook[*ModelEvent]{}, - onModelBeforeDelete: &hook.Hook[*ModelEvent]{}, - onModelAfterDelete: &hook.Hook[*ModelEvent]{}, - - // mailer event hooks - onMailerBeforeAdminResetPasswordSend: &hook.Hook[*MailerAdminEvent]{}, - onMailerAfterAdminResetPasswordSend: &hook.Hook[*MailerAdminEvent]{}, - onMailerBeforeRecordResetPasswordSend: &hook.Hook[*MailerRecordEvent]{}, - onMailerAfterRecordResetPasswordSend: &hook.Hook[*MailerRecordEvent]{}, - onMailerBeforeRecordVerificationSend: &hook.Hook[*MailerRecordEvent]{}, - onMailerAfterRecordVerificationSend: &hook.Hook[*MailerRecordEvent]{}, - onMailerBeforeRecordChangeEmailSend: &hook.Hook[*MailerRecordEvent]{}, - onMailerAfterRecordChangeEmailSend: &hook.Hook[*MailerRecordEvent]{}, - - // realtime API event hooks - onRealtimeConnectRequest: &hook.Hook[*RealtimeConnectEvent]{}, - onRealtimeDisconnectRequest: &hook.Hook[*RealtimeDisconnectEvent]{}, - onRealtimeBeforeMessageSend: &hook.Hook[*RealtimeMessageEvent]{}, - onRealtimeAfterMessageSend: &hook.Hook[*RealtimeMessageEvent]{}, - onRealtimeBeforeSubscribeRequest: &hook.Hook[*RealtimeSubscribeEvent]{}, - onRealtimeAfterSubscribeRequest: &hook.Hook[*RealtimeSubscribeEvent]{}, - - // settings API event hooks - onSettingsListRequest: &hook.Hook[*SettingsListEvent]{}, - onSettingsBeforeUpdateRequest: &hook.Hook[*SettingsUpdateEvent]{}, - onSettingsAfterUpdateRequest: &hook.Hook[*SettingsUpdateEvent]{}, - - // file API event hooks - onFileDownloadRequest: &hook.Hook[*FileDownloadEvent]{}, - - // admin API event hooks - onAdminsListRequest: &hook.Hook[*AdminsListEvent]{}, - onAdminViewRequest: &hook.Hook[*AdminViewEvent]{}, - onAdminBeforeCreateRequest: &hook.Hook[*AdminCreateEvent]{}, - onAdminAfterCreateRequest: &hook.Hook[*AdminCreateEvent]{}, - onAdminBeforeUpdateRequest: &hook.Hook[*AdminUpdateEvent]{}, - onAdminAfterUpdateRequest: &hook.Hook[*AdminUpdateEvent]{}, - onAdminBeforeDeleteRequest: &hook.Hook[*AdminDeleteEvent]{}, - onAdminAfterDeleteRequest: &hook.Hook[*AdminDeleteEvent]{}, - onAdminAuthRequest: &hook.Hook[*AdminAuthEvent]{}, - - // record auth API event hooks - onRecordAuthRequest: &hook.Hook[*RecordAuthEvent]{}, - onRecordBeforeRequestPasswordResetRequest: &hook.Hook[*RecordRequestPasswordResetEvent]{}, - onRecordAfterRequestPasswordResetRequest: &hook.Hook[*RecordRequestPasswordResetEvent]{}, - onRecordBeforeConfirmPasswordResetRequest: &hook.Hook[*RecordConfirmPasswordResetEvent]{}, - onRecordAfterConfirmPasswordResetRequest: &hook.Hook[*RecordConfirmPasswordResetEvent]{}, - onRecordBeforeRequestVerificationRequest: &hook.Hook[*RecordRequestVerificationEvent]{}, - onRecordAfterRequestVerificationRequest: &hook.Hook[*RecordRequestVerificationEvent]{}, - onRecordBeforeConfirmVerificationRequest: &hook.Hook[*RecordConfirmVerificationEvent]{}, - onRecordAfterConfirmVerificationRequest: &hook.Hook[*RecordConfirmVerificationEvent]{}, - onRecordBeforeRequestEmailChangeRequest: &hook.Hook[*RecordRequestEmailChangeEvent]{}, - onRecordAfterRequestEmailChangeRequest: &hook.Hook[*RecordRequestEmailChangeEvent]{}, - onRecordBeforeConfirmEmailChangeRequest: &hook.Hook[*RecordConfirmEmailChangeEvent]{}, - onRecordAfterConfirmEmailChangeRequest: &hook.Hook[*RecordConfirmEmailChangeEvent]{}, - onRecordListExternalAuthsRequest: &hook.Hook[*RecordListExternalAuthsEvent]{}, - onRecordBeforeUnlinkExternalAuthRequest: &hook.Hook[*RecordUnlinkExternalAuthEvent]{}, - onRecordAfterUnlinkExternalAuthRequest: &hook.Hook[*RecordUnlinkExternalAuthEvent]{}, - - // record crud API event hooks - onRecordsListRequest: &hook.Hook[*RecordsListEvent]{}, - onRecordViewRequest: &hook.Hook[*RecordViewEvent]{}, - onRecordBeforeCreateRequest: &hook.Hook[*RecordCreateEvent]{}, - onRecordAfterCreateRequest: &hook.Hook[*RecordCreateEvent]{}, - onRecordBeforeUpdateRequest: &hook.Hook[*RecordUpdateEvent]{}, - onRecordAfterUpdateRequest: &hook.Hook[*RecordUpdateEvent]{}, - onRecordBeforeDeleteRequest: &hook.Hook[*RecordDeleteEvent]{}, - onRecordAfterDeleteRequest: &hook.Hook[*RecordDeleteEvent]{}, - - // collection API event hooks - onCollectionsListRequest: &hook.Hook[*CollectionsListEvent]{}, - onCollectionViewRequest: &hook.Hook[*CollectionViewEvent]{}, - onCollectionBeforeCreateRequest: &hook.Hook[*CollectionCreateEvent]{}, - onCollectionAfterCreateRequest: &hook.Hook[*CollectionCreateEvent]{}, - onCollectionBeforeUpdateRequest: &hook.Hook[*CollectionUpdateEvent]{}, - onCollectionAfterUpdateRequest: &hook.Hook[*CollectionUpdateEvent]{}, - onCollectionBeforeDeleteRequest: &hook.Hook[*CollectionDeleteEvent]{}, - onCollectionAfterDeleteRequest: &hook.Hook[*CollectionDeleteEvent]{}, - onCollectionsBeforeImportRequest: &hook.Hook[*CollectionsImportEvent]{}, - onCollectionsAfterImportRequest: &hook.Hook[*CollectionsImportEvent]{}, - } - - app.registerDefaultHooks() - - return app -} - -// Bootstrap initializes the application -// (aka. create data dir, open db connections, load settings, etc.) -func (app *BaseApp) Bootstrap() error { - event := &BootstrapEvent{app} - - if err := app.OnBeforeBootstrap().Trigger(event); err != nil { - return err - } - - // clear resources of previous core state (if any) - if err := app.ResetBootstrapState(); err != nil { - return err - } - - // ensure that data dir exist - if err := os.MkdirAll(app.DataDir(), os.ModePerm); err != nil { - return err - } - - if err := app.initDataDB(); err != nil { - return err - } - - if err := app.initLogsDB(); err != nil { - return err - } - - // we don't check for an error because the db migrations may have not been executed yet - app.RefreshSettings() - - if err := app.OnAfterBootstrap().Trigger(event); err != nil && app.IsDebug() { - log.Println(err) - } - - return nil -} - -// ResetBootstrapState takes care for releasing initialized app resources -// (eg. closing db connections). -func (app *BaseApp) ResetBootstrapState() error { - if app.db != nil { - if err := app.db.Close(); err != nil { - return err - } - } - - if app.logsDB != nil { - if err := app.logsDB.Close(); err != nil { - return err - } - } - - app.dao = nil - app.logsDao = nil - app.settings = nil - - return nil -} - -// DB returns the default app database instance. -func (app *BaseApp) DB() *dbx.DB { - return app.db -} - -// Dao returns the default app Dao instance. -func (app *BaseApp) Dao() *daos.Dao { - return app.dao -} - -// LogsDB returns the app logs database instance. -func (app *BaseApp) LogsDB() *dbx.DB { - return app.logsDB -} - -// LogsDao returns the app logs Dao instance. -func (app *BaseApp) LogsDao() *daos.Dao { - return app.logsDao -} - -// DataDir returns the app data directory path. -func (app *BaseApp) DataDir() string { - return app.dataDir -} - -// EncryptionEnv returns the name of the app secret env key -// (used for settings encryption). -func (app *BaseApp) EncryptionEnv() string { - return app.encryptionEnv -} - -// IsDebug returns whether the app is in debug mode -// (showing more detailed error logs, executed sql statements, etc.). -func (app *BaseApp) IsDebug() bool { - return app.isDebug -} - -// Settings returns the loaded app settings. -func (app *BaseApp) Settings() *settings.Settings { - return app.settings -} - -// Cache returns the app internal cache store. -func (app *BaseApp) Cache() *store.Store[any] { - return app.cache -} - -// SubscriptionsBroker returns the app realtime subscriptions broker instance. -func (app *BaseApp) SubscriptionsBroker() *subscriptions.Broker { - return app.subscriptionsBroker -} - -// NewMailClient creates and returns a new SMTP or Sendmail client -// based on the current app settings. -func (app *BaseApp) NewMailClient() mailer.Mailer { - if app.Settings().Smtp.Enabled { - return mailer.NewSmtpClient( - app.Settings().Smtp.Host, - app.Settings().Smtp.Port, - app.Settings().Smtp.Username, - app.Settings().Smtp.Password, - app.Settings().Smtp.Tls, - ) - } - - return &mailer.Sendmail{} -} - -// NewFilesystem creates a new local or S3 filesystem instance -// based on the current app settings. -// -// NB! Make sure to call `Close()` on the returned result -// after you are done working with it. -func (app *BaseApp) NewFilesystem() (*filesystem.System, error) { - if app.settings.S3.Enabled { - return filesystem.NewS3( - app.settings.S3.Bucket, - app.settings.S3.Region, - app.settings.S3.Endpoint, - app.settings.S3.AccessKey, - app.settings.S3.Secret, - app.settings.S3.ForcePathStyle, - ) - } - - // fallback to local filesystem - return filesystem.NewLocal(filepath.Join(app.DataDir(), "storage")) -} - -// RefreshSettings reinitializes and reloads the stored application settings. -func (app *BaseApp) RefreshSettings() error { - if app.settings == nil { - app.settings = settings.New() - } - - encryptionKey := os.Getenv(app.EncryptionEnv()) - - storedSettings, err := app.Dao().FindSettings(encryptionKey) - if err != nil && err != sql.ErrNoRows { - return err - } - - // no settings were previously stored - if storedSettings == nil { - return app.Dao().SaveSettings(app.settings, encryptionKey) - } - - // load the settings from the stored param into the app ones - if err := app.settings.Merge(storedSettings); err != nil { - return err - } - - return nil -} - -// ------------------------------------------------------------------- -// App event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnBeforeBootstrap() *hook.Hook[*BootstrapEvent] { - return app.onBeforeBootstrap -} - -func (app *BaseApp) OnAfterBootstrap() *hook.Hook[*BootstrapEvent] { - return app.onAfterBootstrap -} - -func (app *BaseApp) OnBeforeServe() *hook.Hook[*ServeEvent] { - return app.onBeforeServe -} - -func (app *BaseApp) OnBeforeApiError() *hook.Hook[*ApiErrorEvent] { - return app.onBeforeApiError -} - -func (app *BaseApp) OnAfterApiError() *hook.Hook[*ApiErrorEvent] { - return app.onAfterApiError -} - -// ------------------------------------------------------------------- -// Dao event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnModelBeforeCreate() *hook.Hook[*ModelEvent] { - return app.onModelBeforeCreate -} - -func (app *BaseApp) OnModelAfterCreate() *hook.Hook[*ModelEvent] { - return app.onModelAfterCreate -} - -func (app *BaseApp) OnModelBeforeUpdate() *hook.Hook[*ModelEvent] { - return app.onModelBeforeUpdate -} - -func (app *BaseApp) OnModelAfterUpdate() *hook.Hook[*ModelEvent] { - return app.onModelAfterUpdate -} - -func (app *BaseApp) OnModelBeforeDelete() *hook.Hook[*ModelEvent] { - return app.onModelBeforeDelete -} - -func (app *BaseApp) OnModelAfterDelete() *hook.Hook[*ModelEvent] { - return app.onModelAfterDelete -} - -// ------------------------------------------------------------------- -// Mailer event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnMailerBeforeAdminResetPasswordSend() *hook.Hook[*MailerAdminEvent] { - return app.onMailerBeforeAdminResetPasswordSend -} - -func (app *BaseApp) OnMailerAfterAdminResetPasswordSend() *hook.Hook[*MailerAdminEvent] { - return app.onMailerAfterAdminResetPasswordSend -} - -func (app *BaseApp) OnMailerBeforeRecordResetPasswordSend() *hook.Hook[*MailerRecordEvent] { - return app.onMailerBeforeRecordResetPasswordSend -} - -func (app *BaseApp) OnMailerAfterRecordResetPasswordSend() *hook.Hook[*MailerRecordEvent] { - return app.onMailerAfterRecordResetPasswordSend -} - -func (app *BaseApp) OnMailerBeforeRecordVerificationSend() *hook.Hook[*MailerRecordEvent] { - return app.onMailerBeforeRecordVerificationSend -} - -func (app *BaseApp) OnMailerAfterRecordVerificationSend() *hook.Hook[*MailerRecordEvent] { - return app.onMailerAfterRecordVerificationSend -} - -func (app *BaseApp) OnMailerBeforeRecordChangeEmailSend() *hook.Hook[*MailerRecordEvent] { - return app.onMailerBeforeRecordChangeEmailSend -} - -func (app *BaseApp) OnMailerAfterRecordChangeEmailSend() *hook.Hook[*MailerRecordEvent] { - return app.onMailerAfterRecordChangeEmailSend -} - -// ------------------------------------------------------------------- -// Realtime API event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnRealtimeConnectRequest() *hook.Hook[*RealtimeConnectEvent] { - return app.onRealtimeConnectRequest -} - -func (app *BaseApp) OnRealtimeDisconnectRequest() *hook.Hook[*RealtimeDisconnectEvent] { - return app.onRealtimeDisconnectRequest -} - -func (app *BaseApp) OnRealtimeBeforeMessageSend() *hook.Hook[*RealtimeMessageEvent] { - return app.onRealtimeBeforeMessageSend -} - -func (app *BaseApp) OnRealtimeAfterMessageSend() *hook.Hook[*RealtimeMessageEvent] { - return app.onRealtimeAfterMessageSend -} - -func (app *BaseApp) OnRealtimeBeforeSubscribeRequest() *hook.Hook[*RealtimeSubscribeEvent] { - return app.onRealtimeBeforeSubscribeRequest -} - -func (app *BaseApp) OnRealtimeAfterSubscribeRequest() *hook.Hook[*RealtimeSubscribeEvent] { - return app.onRealtimeAfterSubscribeRequest -} - -// ------------------------------------------------------------------- -// Settings API event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnSettingsListRequest() *hook.Hook[*SettingsListEvent] { - return app.onSettingsListRequest -} - -func (app *BaseApp) OnSettingsBeforeUpdateRequest() *hook.Hook[*SettingsUpdateEvent] { - return app.onSettingsBeforeUpdateRequest -} - -func (app *BaseApp) OnSettingsAfterUpdateRequest() *hook.Hook[*SettingsUpdateEvent] { - return app.onSettingsAfterUpdateRequest -} - -// ------------------------------------------------------------------- -// File API event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnFileDownloadRequest() *hook.Hook[*FileDownloadEvent] { - return app.onFileDownloadRequest -} - -// ------------------------------------------------------------------- -// Admin API event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnAdminsListRequest() *hook.Hook[*AdminsListEvent] { - return app.onAdminsListRequest -} - -func (app *BaseApp) OnAdminViewRequest() *hook.Hook[*AdminViewEvent] { - return app.onAdminViewRequest -} - -func (app *BaseApp) OnAdminBeforeCreateRequest() *hook.Hook[*AdminCreateEvent] { - return app.onAdminBeforeCreateRequest -} - -func (app *BaseApp) OnAdminAfterCreateRequest() *hook.Hook[*AdminCreateEvent] { - return app.onAdminAfterCreateRequest -} - -func (app *BaseApp) OnAdminBeforeUpdateRequest() *hook.Hook[*AdminUpdateEvent] { - return app.onAdminBeforeUpdateRequest -} - -func (app *BaseApp) OnAdminAfterUpdateRequest() *hook.Hook[*AdminUpdateEvent] { - return app.onAdminAfterUpdateRequest -} - -func (app *BaseApp) OnAdminBeforeDeleteRequest() *hook.Hook[*AdminDeleteEvent] { - return app.onAdminBeforeDeleteRequest -} - -func (app *BaseApp) OnAdminAfterDeleteRequest() *hook.Hook[*AdminDeleteEvent] { - return app.onAdminAfterDeleteRequest -} - -func (app *BaseApp) OnAdminAuthRequest() *hook.Hook[*AdminAuthEvent] { - return app.onAdminAuthRequest -} - -// ------------------------------------------------------------------- -// Record auth API event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnRecordAuthRequest() *hook.Hook[*RecordAuthEvent] { - return app.onRecordAuthRequest -} - -func (app *BaseApp) OnRecordBeforeRequestPasswordResetRequest() *hook.Hook[*RecordRequestPasswordResetEvent] { - return app.onRecordBeforeRequestPasswordResetRequest -} - -func (app *BaseApp) OnRecordAfterRequestPasswordResetRequest() *hook.Hook[*RecordRequestPasswordResetEvent] { - return app.onRecordAfterRequestPasswordResetRequest -} - -func (app *BaseApp) OnRecordBeforeConfirmPasswordResetRequest() *hook.Hook[*RecordConfirmPasswordResetEvent] { - return app.onRecordBeforeConfirmPasswordResetRequest -} - -func (app *BaseApp) OnRecordAfterConfirmPasswordResetRequest() *hook.Hook[*RecordConfirmPasswordResetEvent] { - return app.onRecordAfterConfirmPasswordResetRequest -} - -func (app *BaseApp) OnRecordBeforeRequestVerificationRequest() *hook.Hook[*RecordRequestVerificationEvent] { - return app.onRecordBeforeRequestVerificationRequest -} - -func (app *BaseApp) OnRecordAfterRequestVerificationRequest() *hook.Hook[*RecordRequestVerificationEvent] { - return app.onRecordAfterRequestVerificationRequest -} - -func (app *BaseApp) OnRecordBeforeConfirmVerificationRequest() *hook.Hook[*RecordConfirmVerificationEvent] { - return app.onRecordBeforeConfirmVerificationRequest -} - -func (app *BaseApp) OnRecordAfterConfirmVerificationRequest() *hook.Hook[*RecordConfirmVerificationEvent] { - return app.onRecordAfterConfirmVerificationRequest -} - -func (app *BaseApp) OnRecordBeforeRequestEmailChangeRequest() *hook.Hook[*RecordRequestEmailChangeEvent] { - return app.onRecordBeforeRequestEmailChangeRequest -} - -func (app *BaseApp) OnRecordAfterRequestEmailChangeRequest() *hook.Hook[*RecordRequestEmailChangeEvent] { - return app.onRecordAfterRequestEmailChangeRequest -} - -func (app *BaseApp) OnRecordBeforeConfirmEmailChangeRequest() *hook.Hook[*RecordConfirmEmailChangeEvent] { - return app.onRecordBeforeConfirmEmailChangeRequest -} - -func (app *BaseApp) OnRecordAfterConfirmEmailChangeRequest() *hook.Hook[*RecordConfirmEmailChangeEvent] { - return app.onRecordAfterConfirmEmailChangeRequest -} - -func (app *BaseApp) OnRecordListExternalAuthsRequest() *hook.Hook[*RecordListExternalAuthsEvent] { - return app.onRecordListExternalAuthsRequest -} - -func (app *BaseApp) OnRecordBeforeUnlinkExternalAuthRequest() *hook.Hook[*RecordUnlinkExternalAuthEvent] { - return app.onRecordBeforeUnlinkExternalAuthRequest -} - -func (app *BaseApp) OnRecordAfterUnlinkExternalAuthRequest() *hook.Hook[*RecordUnlinkExternalAuthEvent] { - return app.onRecordAfterUnlinkExternalAuthRequest -} - -// ------------------------------------------------------------------- -// Record CRUD API event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnRecordsListRequest() *hook.Hook[*RecordsListEvent] { - return app.onRecordsListRequest -} - -func (app *BaseApp) OnRecordViewRequest() *hook.Hook[*RecordViewEvent] { - return app.onRecordViewRequest -} - -func (app *BaseApp) OnRecordBeforeCreateRequest() *hook.Hook[*RecordCreateEvent] { - return app.onRecordBeforeCreateRequest -} - -func (app *BaseApp) OnRecordAfterCreateRequest() *hook.Hook[*RecordCreateEvent] { - return app.onRecordAfterCreateRequest -} - -func (app *BaseApp) OnRecordBeforeUpdateRequest() *hook.Hook[*RecordUpdateEvent] { - return app.onRecordBeforeUpdateRequest -} - -func (app *BaseApp) OnRecordAfterUpdateRequest() *hook.Hook[*RecordUpdateEvent] { - return app.onRecordAfterUpdateRequest -} - -func (app *BaseApp) OnRecordBeforeDeleteRequest() *hook.Hook[*RecordDeleteEvent] { - return app.onRecordBeforeDeleteRequest -} - -func (app *BaseApp) OnRecordAfterDeleteRequest() *hook.Hook[*RecordDeleteEvent] { - return app.onRecordAfterDeleteRequest -} - -// ------------------------------------------------------------------- -// Collection API event hooks -// ------------------------------------------------------------------- - -func (app *BaseApp) OnCollectionsListRequest() *hook.Hook[*CollectionsListEvent] { - return app.onCollectionsListRequest -} - -func (app *BaseApp) OnCollectionViewRequest() *hook.Hook[*CollectionViewEvent] { - return app.onCollectionViewRequest -} - -func (app *BaseApp) OnCollectionBeforeCreateRequest() *hook.Hook[*CollectionCreateEvent] { - return app.onCollectionBeforeCreateRequest -} - -func (app *BaseApp) OnCollectionAfterCreateRequest() *hook.Hook[*CollectionCreateEvent] { - return app.onCollectionAfterCreateRequest -} - -func (app *BaseApp) OnCollectionBeforeUpdateRequest() *hook.Hook[*CollectionUpdateEvent] { - return app.onCollectionBeforeUpdateRequest -} - -func (app *BaseApp) OnCollectionAfterUpdateRequest() *hook.Hook[*CollectionUpdateEvent] { - return app.onCollectionAfterUpdateRequest -} - -func (app *BaseApp) OnCollectionBeforeDeleteRequest() *hook.Hook[*CollectionDeleteEvent] { - return app.onCollectionBeforeDeleteRequest -} - -func (app *BaseApp) OnCollectionAfterDeleteRequest() *hook.Hook[*CollectionDeleteEvent] { - return app.onCollectionAfterDeleteRequest -} - -func (app *BaseApp) OnCollectionsBeforeImportRequest() *hook.Hook[*CollectionsImportEvent] { - return app.onCollectionsBeforeImportRequest -} - -func (app *BaseApp) OnCollectionsAfterImportRequest() *hook.Hook[*CollectionsImportEvent] { - return app.onCollectionsAfterImportRequest -} - -// ------------------------------------------------------------------- -// Helpers -// ------------------------------------------------------------------- - -func (app *BaseApp) initLogsDB() error { - var connectErr error - app.logsDB, connectErr = connectDB(filepath.Join(app.DataDir(), "logs.db")) - if connectErr != nil { - return connectErr - } - - app.logsDao = daos.New(app.logsDB) - - return nil -} - -func (app *BaseApp) initDataDB() error { - var connectErr error - app.db, connectErr = connectDB(filepath.Join(app.DataDir(), "data.db")) - if connectErr != nil { - return connectErr - } - - if app.IsDebug() { - app.db.QueryLogFunc = func(ctx context.Context, t time.Duration, sql string, rows *sql.Rows, err error) { - color.HiBlack("[%.2fms] %v\n", float64(t.Milliseconds()), sql) - } - - app.db.ExecLogFunc = func(ctx context.Context, t time.Duration, sql string, result sql.Result, err error) { - color.HiBlack("[%.2fms] %v\n", float64(t.Milliseconds()), sql) - } - } - - app.dao = app.createDaoWithHooks(app.db) - - return nil -} - -func (app *BaseApp) createDaoWithHooks(db dbx.Builder) *daos.Dao { - dao := daos.New(db) - - dao.BeforeCreateFunc = func(eventDao *daos.Dao, m models.Model) error { - return app.OnModelBeforeCreate().Trigger(&ModelEvent{eventDao, m}) - } - - dao.AfterCreateFunc = func(eventDao *daos.Dao, m models.Model) { - err := app.OnModelAfterCreate().Trigger(&ModelEvent{eventDao, m}) - if err != nil && app.isDebug { - log.Println(err) - } - } - - dao.BeforeUpdateFunc = func(eventDao *daos.Dao, m models.Model) error { - return app.OnModelBeforeUpdate().Trigger(&ModelEvent{eventDao, m}) - } - - dao.AfterUpdateFunc = func(eventDao *daos.Dao, m models.Model) { - err := app.OnModelAfterUpdate().Trigger(&ModelEvent{eventDao, m}) - if err != nil && app.isDebug { - log.Println(err) - } - } - - dao.BeforeDeleteFunc = func(eventDao *daos.Dao, m models.Model) error { - return app.OnModelBeforeDelete().Trigger(&ModelEvent{eventDao, m}) - } - - dao.AfterDeleteFunc = func(eventDao *daos.Dao, m models.Model) { - err := app.OnModelAfterDelete().Trigger(&ModelEvent{eventDao, m}) - if err != nil && app.isDebug { - log.Println(err) - } - } - - return dao -} - -func (app *BaseApp) registerDefaultHooks() { - deletePrefix := func(prefix string) error { - fs, err := app.NewFilesystem() - if err != nil { - return err - } - defer fs.Close() - - failed := fs.DeletePrefix(prefix) - if len(failed) > 0 { - return errors.New("Failed to delete the files at " + prefix) - } - - return nil - } - - // delete storage files from deleted Collection, Records, etc. - app.OnModelAfterDelete().Add(func(e *ModelEvent) error { - if m, ok := e.Model.(models.FilesManager); ok && m.BaseFilesPath() != "" { - if err := deletePrefix(m.BaseFilesPath()); err != nil && app.IsDebug() { - // non critical error - only log for debug - // (usually could happen because of S3 api limits) - log.Println(err) - } - } - - return nil - }) -} diff --git a/core/base_settings_test.go b/core/base_settings_test.go deleted file mode 100644 index 08c515847bc3082e0d4fd1177ae6daaefbfc2090..0000000000000000000000000000000000000000 --- a/core/base_settings_test.go +++ /dev/null @@ -1,63 +0,0 @@ -package core_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestBaseAppRefreshSettings(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // cleanup all stored settings - if _, err := app.DB().NewQuery("DELETE from _params;").Execute(); err != nil { - t.Fatalf("Failed to delete all test settings: %v", err) - } - - // check if the new settings are saved in the db - app.ResetEventCalls() - if err := app.RefreshSettings(); err != nil { - t.Fatal("Failed to refresh the settings after delete") - } - testEventCalls(t, app, map[string]int{ - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - }) - param, err := app.Dao().FindParamByKey(models.ParamAppSettings) - if err != nil { - t.Fatalf("Expected new settings to be persisted, got %v", err) - } - - // change the db entry and refresh the app settings (ensure that there was no db update) - param.Value = types.JsonRaw([]byte(`{"example": 123}`)) - if err := app.Dao().SaveParam(param.Key, param.Value); err != nil { - t.Fatalf("Failed to update the test settings: %v", err) - } - app.ResetEventCalls() - if err := app.RefreshSettings(); err != nil { - t.Fatalf("Failed to refresh the app settings: %v", err) - } - testEventCalls(t, app, nil) - - // try to refresh again without doing any changes - app.ResetEventCalls() - if err := app.RefreshSettings(); err != nil { - t.Fatalf("Failed to refresh the app settings without change: %v", err) - } - testEventCalls(t, app, nil) -} - -func testEventCalls(t *testing.T, app *tests.TestApp, events map[string]int) { - if len(events) != len(app.EventCalls) { - t.Fatalf("Expected events doesn't match: \n%v, \ngot \n%v", events, app.EventCalls) - } - - for name, total := range events { - if v, ok := app.EventCalls[name]; !ok || v != total { - t.Fatalf("Expected events doesn't exist or match: \n%v, \ngot \n%v", events, app.EventCalls) - } - } -} diff --git a/core/base_test.go b/core/base_test.go deleted file mode 100644 index 81ef9117dfb7cde37f2122b53b894d6efee12ade..0000000000000000000000000000000000000000 --- a/core/base_test.go +++ /dev/null @@ -1,442 +0,0 @@ -package core - -import ( - "os" - "testing" - - "github.com/pocketbase/pocketbase/tools/mailer" -) - -func TestNewBaseApp(t *testing.T) { - const testDataDir = "./pb_base_app_test_data_dir/" - defer os.RemoveAll(testDataDir) - - app := NewBaseApp(testDataDir, "test_env", true) - - if app.dataDir != testDataDir { - t.Fatalf("expected dataDir %q, got %q", testDataDir, app.dataDir) - } - - if app.encryptionEnv != "test_env" { - t.Fatalf("expected encryptionEnv test_env, got %q", app.dataDir) - } - - if !app.isDebug { - t.Fatalf("expected isDebug true, got %v", app.isDebug) - } - - if app.cache == nil { - t.Fatal("expected cache to be set, got nil") - } - - if app.settings == nil { - t.Fatal("expected settings to be set, got nil") - } - - if app.subscriptionsBroker == nil { - t.Fatal("expected subscriptionsBroker to be set, got nil") - } -} - -func TestBaseAppBootstrap(t *testing.T) { - const testDataDir = "./pb_base_app_test_data_dir/" - defer os.RemoveAll(testDataDir) - - app := NewBaseApp(testDataDir, "pb_test_env", false) - defer app.ResetBootstrapState() - - // bootstrap - if err := app.Bootstrap(); err != nil { - t.Fatal(err) - } - - if stat, err := os.Stat(testDataDir); err != nil || !stat.IsDir() { - t.Fatal("Expected test data directory to be created.") - } - - if app.dao == nil { - t.Fatal("Expected app.dao to be initialized, got nil.") - } - - if app.dao.BeforeCreateFunc == nil { - t.Fatal("Expected app.dao.BeforeCreateFunc to be set, got nil.") - } - - if app.dao.AfterCreateFunc == nil { - t.Fatal("Expected app.dao.AfterCreateFunc to be set, got nil.") - } - - if app.dao.BeforeUpdateFunc == nil { - t.Fatal("Expected app.dao.BeforeUpdateFunc to be set, got nil.") - } - - if app.dao.AfterUpdateFunc == nil { - t.Fatal("Expected app.dao.AfterUpdateFunc to be set, got nil.") - } - - if app.dao.BeforeDeleteFunc == nil { - t.Fatal("Expected app.dao.BeforeDeleteFunc to be set, got nil.") - } - - if app.dao.AfterDeleteFunc == nil { - t.Fatal("Expected app.dao.AfterDeleteFunc to be set, got nil.") - } - - if app.logsDao == nil { - t.Fatal("Expected app.logsDao to be initialized, got nil.") - } - - if app.settings == nil { - t.Fatal("Expected app.settings to be initialized, got nil.") - } - - // reset - if err := app.ResetBootstrapState(); err != nil { - t.Fatal(err) - } - - if app.dao != nil { - t.Fatalf("Expected app.dao to be nil, got %v.", app.dao) - } - - if app.logsDao != nil { - t.Fatalf("Expected app.logsDao to be nil, got %v.", app.logsDao) - } - - if app.settings != nil { - t.Fatalf("Expected app.settings to be nil, got %v.", app.settings) - } -} - -func TestBaseAppGetters(t *testing.T) { - const testDataDir = "./pb_base_app_test_data_dir/" - defer os.RemoveAll(testDataDir) - - app := NewBaseApp(testDataDir, "pb_test_env", false) - defer app.ResetBootstrapState() - - if err := app.Bootstrap(); err != nil { - t.Fatal(err) - } - - if app.db != app.DB() { - t.Fatalf("Expected app.DB %v, got %v", app.DB(), app.db) - } - - if app.dao != app.Dao() { - t.Fatalf("Expected app.Dao %v, got %v", app.Dao(), app.dao) - } - - if app.logsDB != app.LogsDB() { - t.Fatalf("Expected app.LogsDB %v, got %v", app.LogsDB(), app.logsDB) - } - - if app.logsDao != app.LogsDao() { - t.Fatalf("Expected app.LogsDao %v, got %v", app.LogsDao(), app.logsDao) - } - - if app.dataDir != app.DataDir() { - t.Fatalf("Expected app.DataDir %v, got %v", app.DataDir(), app.dataDir) - } - - if app.encryptionEnv != app.EncryptionEnv() { - t.Fatalf("Expected app.EncryptionEnv %v, got %v", app.EncryptionEnv(), app.encryptionEnv) - } - - if app.isDebug != app.IsDebug() { - t.Fatalf("Expected app.IsDebug %v, got %v", app.IsDebug(), app.isDebug) - } - - if app.settings != app.Settings() { - t.Fatalf("Expected app.Settings %v, got %v", app.Settings(), app.settings) - } - - if app.cache != app.Cache() { - t.Fatalf("Expected app.Cache %v, got %v", app.Cache(), app.cache) - } - - if app.subscriptionsBroker != app.SubscriptionsBroker() { - t.Fatalf("Expected app.SubscriptionsBroker %v, got %v", app.SubscriptionsBroker(), app.subscriptionsBroker) - } - - if app.onBeforeServe != app.OnBeforeServe() || app.OnBeforeServe() == nil { - t.Fatalf("Getter app.OnBeforeServe does not match or nil (%v vs %v)", app.OnBeforeServe(), app.onBeforeServe) - } - - if app.onModelBeforeCreate != app.OnModelBeforeCreate() || app.OnModelBeforeCreate() == nil { - t.Fatalf("Getter app.OnModelBeforeCreate does not match or nil (%v vs %v)", app.OnModelBeforeCreate(), app.onModelBeforeCreate) - } - - if app.onModelAfterCreate != app.OnModelAfterCreate() || app.OnModelAfterCreate() == nil { - t.Fatalf("Getter app.OnModelAfterCreate does not match or nil (%v vs %v)", app.OnModelAfterCreate(), app.onModelAfterCreate) - } - - if app.onModelBeforeUpdate != app.OnModelBeforeUpdate() || app.OnModelBeforeUpdate() == nil { - t.Fatalf("Getter app.OnModelBeforeUpdate does not match or nil (%v vs %v)", app.OnModelBeforeUpdate(), app.onModelBeforeUpdate) - } - - if app.onModelAfterUpdate != app.OnModelAfterUpdate() || app.OnModelAfterUpdate() == nil { - t.Fatalf("Getter app.OnModelAfterUpdate does not match or nil (%v vs %v)", app.OnModelAfterUpdate(), app.onModelAfterUpdate) - } - - if app.onModelBeforeDelete != app.OnModelBeforeDelete() || app.OnModelBeforeDelete() == nil { - t.Fatalf("Getter app.OnModelBeforeDelete does not match or nil (%v vs %v)", app.OnModelBeforeDelete(), app.onModelBeforeDelete) - } - - if app.onModelAfterDelete != app.OnModelAfterDelete() || app.OnModelAfterDelete() == nil { - t.Fatalf("Getter app.OnModelAfterDelete does not match or nil (%v vs %v)", app.OnModelAfterDelete(), app.onModelAfterDelete) - } - - if app.onMailerBeforeAdminResetPasswordSend != app.OnMailerBeforeAdminResetPasswordSend() || app.OnMailerBeforeAdminResetPasswordSend() == nil { - t.Fatalf("Getter app.OnMailerBeforeAdminResetPasswordSend does not match or nil (%v vs %v)", app.OnMailerBeforeAdminResetPasswordSend(), app.onMailerBeforeAdminResetPasswordSend) - } - - if app.onMailerAfterAdminResetPasswordSend != app.OnMailerAfterAdminResetPasswordSend() || app.OnMailerAfterAdminResetPasswordSend() == nil { - t.Fatalf("Getter app.OnMailerAfterAdminResetPasswordSend does not match or nil (%v vs %v)", app.OnMailerAfterAdminResetPasswordSend(), app.onMailerAfterAdminResetPasswordSend) - } - - if app.onMailerBeforeRecordResetPasswordSend != app.OnMailerBeforeRecordResetPasswordSend() || app.OnMailerBeforeRecordResetPasswordSend() == nil { - t.Fatalf("Getter app.OnMailerBeforeRecordResetPasswordSend does not match or nil (%v vs %v)", app.OnMailerBeforeRecordResetPasswordSend(), app.onMailerBeforeRecordResetPasswordSend) - } - - if app.onMailerAfterRecordResetPasswordSend != app.OnMailerAfterRecordResetPasswordSend() || app.OnMailerAfterRecordResetPasswordSend() == nil { - t.Fatalf("Getter app.OnMailerAfterRecordResetPasswordSend does not match or nil (%v vs %v)", app.OnMailerAfterRecordResetPasswordSend(), app.onMailerAfterRecordResetPasswordSend) - } - - if app.onMailerBeforeRecordVerificationSend != app.OnMailerBeforeRecordVerificationSend() || app.OnMailerBeforeRecordVerificationSend() == nil { - t.Fatalf("Getter app.OnMailerBeforeRecordVerificationSend does not match or nil (%v vs %v)", app.OnMailerBeforeRecordVerificationSend(), app.onMailerBeforeRecordVerificationSend) - } - - if app.onMailerAfterRecordVerificationSend != app.OnMailerAfterRecordVerificationSend() || app.OnMailerAfterRecordVerificationSend() == nil { - t.Fatalf("Getter app.OnMailerAfterRecordVerificationSend does not match or nil (%v vs %v)", app.OnMailerAfterRecordVerificationSend(), app.onMailerAfterRecordVerificationSend) - } - - if app.onMailerBeforeRecordChangeEmailSend != app.OnMailerBeforeRecordChangeEmailSend() || app.OnMailerBeforeRecordChangeEmailSend() == nil { - t.Fatalf("Getter app.OnMailerBeforeRecordChangeEmailSend does not match or nil (%v vs %v)", app.OnMailerBeforeRecordChangeEmailSend(), app.onMailerBeforeRecordChangeEmailSend) - } - - if app.onMailerAfterRecordChangeEmailSend != app.OnMailerAfterRecordChangeEmailSend() || app.OnMailerAfterRecordChangeEmailSend() == nil { - t.Fatalf("Getter app.OnMailerAfterRecordChangeEmailSend does not match or nil (%v vs %v)", app.OnMailerAfterRecordChangeEmailSend(), app.onMailerAfterRecordChangeEmailSend) - } - - if app.onRealtimeConnectRequest != app.OnRealtimeConnectRequest() || app.OnRealtimeConnectRequest() == nil { - t.Fatalf("Getter app.OnRealtimeConnectRequest does not match or nil (%v vs %v)", app.OnRealtimeConnectRequest(), app.onRealtimeConnectRequest) - } - - if app.onRealtimeBeforeSubscribeRequest != app.OnRealtimeBeforeSubscribeRequest() || app.OnRealtimeBeforeSubscribeRequest() == nil { - t.Fatalf("Getter app.OnRealtimeBeforeSubscribeRequest does not match or nil (%v vs %v)", app.OnRealtimeBeforeSubscribeRequest(), app.onRealtimeBeforeSubscribeRequest) - } - - if app.onRealtimeAfterSubscribeRequest != app.OnRealtimeAfterSubscribeRequest() || app.OnRealtimeAfterSubscribeRequest() == nil { - t.Fatalf("Getter app.OnRealtimeAfterSubscribeRequest does not match or nil (%v vs %v)", app.OnRealtimeAfterSubscribeRequest(), app.onRealtimeAfterSubscribeRequest) - } - - if app.onSettingsListRequest != app.OnSettingsListRequest() || app.OnSettingsListRequest() == nil { - t.Fatalf("Getter app.OnSettingsListRequest does not match or nil (%v vs %v)", app.OnSettingsListRequest(), app.onSettingsListRequest) - } - - if app.onSettingsBeforeUpdateRequest != app.OnSettingsBeforeUpdateRequest() || app.OnSettingsBeforeUpdateRequest() == nil { - t.Fatalf("Getter app.OnSettingsBeforeUpdateRequest does not match or nil (%v vs %v)", app.OnSettingsBeforeUpdateRequest(), app.onSettingsBeforeUpdateRequest) - } - - if app.onSettingsAfterUpdateRequest != app.OnSettingsAfterUpdateRequest() || app.OnSettingsAfterUpdateRequest() == nil { - t.Fatalf("Getter app.OnSettingsAfterUpdateRequest does not match or nil (%v vs %v)", app.OnSettingsAfterUpdateRequest(), app.onSettingsAfterUpdateRequest) - } - - if app.onFileDownloadRequest != app.OnFileDownloadRequest() || app.OnFileDownloadRequest() == nil { - t.Fatalf("Getter app.OnFileDownloadRequest does not match or nil (%v vs %v)", app.OnFileDownloadRequest(), app.onFileDownloadRequest) - } - - if app.onAdminsListRequest != app.OnAdminsListRequest() || app.OnAdminsListRequest() == nil { - t.Fatalf("Getter app.OnAdminsListRequest does not match or nil (%v vs %v)", app.OnAdminsListRequest(), app.onAdminsListRequest) - } - - if app.onAdminViewRequest != app.OnAdminViewRequest() || app.OnAdminViewRequest() == nil { - t.Fatalf("Getter app.OnAdminViewRequest does not match or nil (%v vs %v)", app.OnAdminViewRequest(), app.onAdminViewRequest) - } - - if app.onAdminBeforeCreateRequest != app.OnAdminBeforeCreateRequest() || app.OnAdminBeforeCreateRequest() == nil { - t.Fatalf("Getter app.OnAdminBeforeCreateRequest does not match or nil (%v vs %v)", app.OnAdminBeforeCreateRequest(), app.onAdminBeforeCreateRequest) - } - - if app.onAdminAfterCreateRequest != app.OnAdminAfterCreateRequest() || app.OnAdminAfterCreateRequest() == nil { - t.Fatalf("Getter app.OnAdminAfterCreateRequest does not match or nil (%v vs %v)", app.OnAdminAfterCreateRequest(), app.onAdminAfterCreateRequest) - } - - if app.onAdminBeforeUpdateRequest != app.OnAdminBeforeUpdateRequest() || app.OnAdminBeforeUpdateRequest() == nil { - t.Fatalf("Getter app.OnAdminBeforeUpdateRequest does not match or nil (%v vs %v)", app.OnAdminBeforeUpdateRequest(), app.onAdminBeforeUpdateRequest) - } - - if app.onAdminAfterUpdateRequest != app.OnAdminAfterUpdateRequest() || app.OnAdminAfterUpdateRequest() == nil { - t.Fatalf("Getter app.OnAdminAfterUpdateRequest does not match or nil (%v vs %v)", app.OnAdminAfterUpdateRequest(), app.onAdminAfterUpdateRequest) - } - - if app.onAdminBeforeDeleteRequest != app.OnAdminBeforeDeleteRequest() || app.OnAdminBeforeDeleteRequest() == nil { - t.Fatalf("Getter app.OnAdminBeforeDeleteRequest does not match or nil (%v vs %v)", app.OnAdminBeforeDeleteRequest(), app.onAdminBeforeDeleteRequest) - } - - if app.onAdminAfterDeleteRequest != app.OnAdminAfterDeleteRequest() || app.OnAdminAfterDeleteRequest() == nil { - t.Fatalf("Getter app.OnAdminAfterDeleteRequest does not match or nil (%v vs %v)", app.OnAdminAfterDeleteRequest(), app.onAdminAfterDeleteRequest) - } - - if app.onAdminAuthRequest != app.OnAdminAuthRequest() || app.OnAdminAuthRequest() == nil { - t.Fatalf("Getter app.OnAdminAuthRequest does not match or nil (%v vs %v)", app.OnAdminAuthRequest(), app.onAdminAuthRequest) - } - - if app.onRecordsListRequest != app.OnRecordsListRequest() || app.OnRecordsListRequest() == nil { - t.Fatalf("Getter app.OnRecordsListRequest does not match or nil (%v vs %v)", app.OnRecordsListRequest(), app.onRecordsListRequest) - } - - if app.onRecordViewRequest != app.OnRecordViewRequest() || app.OnRecordViewRequest() == nil { - t.Fatalf("Getter app.OnRecordViewRequest does not match or nil (%v vs %v)", app.OnRecordViewRequest(), app.onRecordViewRequest) - } - - if app.onRecordBeforeCreateRequest != app.OnRecordBeforeCreateRequest() || app.OnRecordBeforeCreateRequest() == nil { - t.Fatalf("Getter app.OnRecordBeforeCreateRequest does not match or nil (%v vs %v)", app.OnRecordBeforeCreateRequest(), app.onRecordBeforeCreateRequest) - } - - if app.onRecordAfterCreateRequest != app.OnRecordAfterCreateRequest() || app.OnRecordAfterCreateRequest() == nil { - t.Fatalf("Getter app.OnRecordAfterCreateRequest does not match or nil (%v vs %v)", app.OnRecordAfterCreateRequest(), app.onRecordAfterCreateRequest) - } - - if app.onRecordBeforeUpdateRequest != app.OnRecordBeforeUpdateRequest() || app.OnRecordBeforeUpdateRequest() == nil { - t.Fatalf("Getter app.OnRecordBeforeUpdateRequest does not match or nil (%v vs %v)", app.OnRecordBeforeUpdateRequest(), app.onRecordBeforeUpdateRequest) - } - - if app.onRecordAfterUpdateRequest != app.OnRecordAfterUpdateRequest() || app.OnRecordAfterUpdateRequest() == nil { - t.Fatalf("Getter app.OnRecordAfterUpdateRequest does not match or nil (%v vs %v)", app.OnRecordAfterUpdateRequest(), app.onRecordAfterUpdateRequest) - } - - if app.onRecordBeforeDeleteRequest != app.OnRecordBeforeDeleteRequest() || app.OnRecordBeforeDeleteRequest() == nil { - t.Fatalf("Getter app.OnRecordBeforeDeleteRequest does not match or nil (%v vs %v)", app.OnRecordBeforeDeleteRequest(), app.onRecordBeforeDeleteRequest) - } - - if app.onRecordAfterDeleteRequest != app.OnRecordAfterDeleteRequest() || app.OnRecordAfterDeleteRequest() == nil { - t.Fatalf("Getter app.OnRecordAfterDeleteRequest does not match or nil (%v vs %v)", app.OnRecordAfterDeleteRequest(), app.onRecordAfterDeleteRequest) - } - - if app.onRecordAuthRequest != app.OnRecordAuthRequest() || app.OnRecordAuthRequest() == nil { - t.Fatalf("Getter app.OnRecordAuthRequest does not match or nil (%v vs %v)", app.OnRecordAuthRequest(), app.onRecordAuthRequest) - } - - if app.onRecordListExternalAuthsRequest != app.OnRecordListExternalAuthsRequest() || app.OnRecordListExternalAuthsRequest() == nil { - t.Fatalf("Getter app.OnRecordListExternalAuthsRequest does not match or nil (%v vs %v)", app.OnRecordListExternalAuthsRequest(), app.onRecordListExternalAuthsRequest) - } - - if app.onRecordBeforeUnlinkExternalAuthRequest != app.OnRecordBeforeUnlinkExternalAuthRequest() || app.OnRecordBeforeUnlinkExternalAuthRequest() == nil { - t.Fatalf("Getter app.OnRecordBeforeUnlinkExternalAuthRequest does not match or nil (%v vs %v)", app.OnRecordBeforeUnlinkExternalAuthRequest(), app.onRecordBeforeUnlinkExternalAuthRequest) - } - - if app.onRecordAfterUnlinkExternalAuthRequest != app.OnRecordAfterUnlinkExternalAuthRequest() || app.OnRecordAfterUnlinkExternalAuthRequest() == nil { - t.Fatalf("Getter app.OnRecordAfterUnlinkExternalAuthRequest does not match or nil (%v vs %v)", app.OnRecordAfterUnlinkExternalAuthRequest(), app.onRecordAfterUnlinkExternalAuthRequest) - } - - if app.onRecordsListRequest != app.OnRecordsListRequest() || app.OnRecordsListRequest() == nil { - t.Fatalf("Getter app.OnRecordsListRequest does not match or nil (%v vs %v)", app.OnRecordsListRequest(), app.onRecordsListRequest) - } - - if app.onRecordViewRequest != app.OnRecordViewRequest() || app.OnRecordViewRequest() == nil { - t.Fatalf("Getter app.OnRecordViewRequest does not match or nil (%v vs %v)", app.OnRecordViewRequest(), app.onRecordViewRequest) - } - - if app.onRecordBeforeCreateRequest != app.OnRecordBeforeCreateRequest() || app.OnRecordBeforeCreateRequest() == nil { - t.Fatalf("Getter app.OnRecordBeforeCreateRequest does not match or nil (%v vs %v)", app.OnRecordBeforeCreateRequest(), app.onRecordBeforeCreateRequest) - } - - if app.onRecordAfterCreateRequest != app.OnRecordAfterCreateRequest() || app.OnRecordAfterCreateRequest() == nil { - t.Fatalf("Getter app.OnRecordAfterCreateRequest does not match or nil (%v vs %v)", app.OnRecordAfterCreateRequest(), app.onRecordAfterCreateRequest) - } - - if app.onRecordBeforeUpdateRequest != app.OnRecordBeforeUpdateRequest() || app.OnRecordBeforeUpdateRequest() == nil { - t.Fatalf("Getter app.OnRecordBeforeUpdateRequest does not match or nil (%v vs %v)", app.OnRecordBeforeUpdateRequest(), app.onRecordBeforeUpdateRequest) - } - - if app.onRecordAfterUpdateRequest != app.OnRecordAfterUpdateRequest() || app.OnRecordAfterUpdateRequest() == nil { - t.Fatalf("Getter app.OnRecordAfterUpdateRequest does not match or nil (%v vs %v)", app.OnRecordAfterUpdateRequest(), app.onRecordAfterUpdateRequest) - } - - if app.onRecordBeforeDeleteRequest != app.OnRecordBeforeDeleteRequest() || app.OnRecordBeforeDeleteRequest() == nil { - t.Fatalf("Getter app.OnRecordBeforeDeleteRequest does not match or nil (%v vs %v)", app.OnRecordBeforeDeleteRequest(), app.onRecordBeforeDeleteRequest) - } - - if app.onRecordAfterDeleteRequest != app.OnRecordAfterDeleteRequest() || app.OnRecordAfterDeleteRequest() == nil { - t.Fatalf("Getter app.OnRecordAfterDeleteRequest does not match or nil (%v vs %v)", app.OnRecordAfterDeleteRequest(), app.onRecordAfterDeleteRequest) - } - - if app.onCollectionsListRequest != app.OnCollectionsListRequest() || app.OnCollectionsListRequest() == nil { - t.Fatalf("Getter app.OnCollectionsListRequest does not match or nil (%v vs %v)", app.OnCollectionsListRequest(), app.onCollectionsListRequest) - } - - if app.onCollectionViewRequest != app.OnCollectionViewRequest() || app.OnCollectionViewRequest() == nil { - t.Fatalf("Getter app.OnCollectionViewRequest does not match or nil (%v vs %v)", app.OnCollectionViewRequest(), app.onCollectionViewRequest) - } - - if app.onCollectionBeforeCreateRequest != app.OnCollectionBeforeCreateRequest() || app.OnCollectionBeforeCreateRequest() == nil { - t.Fatalf("Getter app.OnCollectionBeforeCreateRequest does not match or nil (%v vs %v)", app.OnCollectionBeforeCreateRequest(), app.onCollectionBeforeCreateRequest) - } - - if app.onCollectionAfterCreateRequest != app.OnCollectionAfterCreateRequest() || app.OnCollectionAfterCreateRequest() == nil { - t.Fatalf("Getter app.OnCollectionAfterCreateRequest does not match or nil (%v vs %v)", app.OnCollectionAfterCreateRequest(), app.onCollectionAfterCreateRequest) - } - - if app.onCollectionBeforeUpdateRequest != app.OnCollectionBeforeUpdateRequest() || app.OnCollectionBeforeUpdateRequest() == nil { - t.Fatalf("Getter app.OnCollectionBeforeUpdateRequest does not match or nil (%v vs %v)", app.OnCollectionBeforeUpdateRequest(), app.onCollectionBeforeUpdateRequest) - } - - if app.onCollectionAfterUpdateRequest != app.OnCollectionAfterUpdateRequest() || app.OnCollectionAfterUpdateRequest() == nil { - t.Fatalf("Getter app.OnCollectionAfterUpdateRequest does not match or nil (%v vs %v)", app.OnCollectionAfterUpdateRequest(), app.onCollectionAfterUpdateRequest) - } - - if app.onCollectionBeforeDeleteRequest != app.OnCollectionBeforeDeleteRequest() || app.OnCollectionBeforeDeleteRequest() == nil { - t.Fatalf("Getter app.OnCollectionBeforeDeleteRequest does not match or nil (%v vs %v)", app.OnCollectionBeforeDeleteRequest(), app.onCollectionBeforeDeleteRequest) - } - - if app.onCollectionAfterDeleteRequest != app.OnCollectionAfterDeleteRequest() || app.OnCollectionAfterDeleteRequest() == nil { - t.Fatalf("Getter app.OnCollectionAfterDeleteRequest does not match or nil (%v vs %v)", app.OnCollectionAfterDeleteRequest(), app.onCollectionAfterDeleteRequest) - } -} - -func TestBaseAppNewMailClient(t *testing.T) { - const testDataDir = "./pb_base_app_test_data_dir/" - defer os.RemoveAll(testDataDir) - - app := NewBaseApp(testDataDir, "pb_test_env", false) - - client1 := app.NewMailClient() - if val, ok := client1.(*mailer.Sendmail); !ok { - t.Fatalf("Expected mailer.Sendmail instance, got %v", val) - } - - app.Settings().Smtp.Enabled = true - - client2 := app.NewMailClient() - if val, ok := client2.(*mailer.SmtpClient); !ok { - t.Fatalf("Expected mailer.SmtpClient instance, got %v", val) - } -} - -func TestBaseAppNewFilesystem(t *testing.T) { - const testDataDir = "./pb_base_app_test_data_dir/" - defer os.RemoveAll(testDataDir) - - app := NewBaseApp(testDataDir, "pb_test_env", false) - - // local - local, localErr := app.NewFilesystem() - if localErr != nil { - t.Fatal(localErr) - } - if local == nil { - t.Fatal("Expected local filesystem instance, got nil") - } - - // misconfigured s3 - app.Settings().S3.Enabled = true - s3, s3Err := app.NewFilesystem() - if s3Err == nil { - t.Fatal("Expected S3 error, got nil") - } - if s3 != nil { - t.Fatalf("Expected nil s3 filesystem, got %v", s3) - } -} diff --git a/core/db_cgo.go b/core/db_cgo.go deleted file mode 100644 index 42118fa6ac728d6f3af67c528cd3298c9cc87f2e..0000000000000000000000000000000000000000 --- a/core/db_cgo.go +++ /dev/null @@ -1,37 +0,0 @@ -//go:build cgo - -package core - -import ( - "fmt" - "time" - - "github.com/pocketbase/dbx" - _ "github.com/mattn/go-sqlite3" -) - -func connectDB(dbPath string) (*dbx.DB, error) { - // note: the busy_timeout pragma must be first because - // the connection needs to be set to block on busy before WAL mode - // is set in case it hasn't been already set by another connection - pragmas := "_busy_timeout=10000&_journal_mode=WAL&_foreign_keys=1&_synchronous=NORMAL" - - db, openErr := dbx.MustOpen("sqlite3", fmt.Sprintf("%s?%s", dbPath, pragmas)) - if openErr != nil { - return nil, openErr - } - - // use a fixed connection pool to limit the SQLITE_BUSY errors - // and reduce the open file descriptors - // (the limits are arbitrary and may change in the future) - db.DB().SetMaxOpenConns(1000) - db.DB().SetMaxIdleConns(30) - db.DB().SetConnMaxIdleTime(5 * time.Minute) - - // additional pragmas not supported through the dsn string - _, err := db.NewQuery(` - pragma journal_size_limit = 100000000; - `).Execute() - - return db, err -} diff --git a/core/db_nocgo.go b/core/db_nocgo.go deleted file mode 100644 index ba35082dc875f4d673ac6a87c0c07c9e7c6be1f2..0000000000000000000000000000000000000000 --- a/core/db_nocgo.go +++ /dev/null @@ -1,34 +0,0 @@ -//go:build !cgo - -package core - -import ( - "fmt" - "time" - - "github.com/pocketbase/dbx" - _ "modernc.org/sqlite" -) - -func connectDB(dbPath string) (*dbx.DB, error) { - // note: the busy_timeout pragma must be first because - // the connection needs to be set to block on busy before WAL mode - // is set in case it hasn't been already set by another connection - pragmas := "_pragma=busy_timeout(10000)&_pragma=journal_mode(WAL)&_pragma=foreign_keys(1)&_pragma=synchronous(NORMAL)&_pragma=journal_size_limit(100000000)" - - db, err := dbx.MustOpen("sqlite", fmt.Sprintf("%s?%s", dbPath, pragmas)) - if err != nil { - return nil, err - } - - // use a fixed connection pool to limit the SQLITE_BUSY errors and - // reduce the open file descriptors - // (the limits are arbitrary and may change in the future) - // - // @see https://gitlab.com/cznic/sqlite/-/issues/115 - db.DB().SetMaxOpenConns(1000) - db.DB().SetMaxIdleConns(30) - db.DB().SetConnMaxIdleTime(5 * time.Minute) - - return db, nil -} diff --git a/core/events.go b/core/events.go deleted file mode 100644 index 62bf968d749807ddcb8f6af054228e84a7474922..0000000000000000000000000000000000000000 --- a/core/events.go +++ /dev/null @@ -1,267 +0,0 @@ -package core - -import ( - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/models/settings" - "github.com/pocketbase/pocketbase/tools/mailer" - "github.com/pocketbase/pocketbase/tools/search" - "github.com/pocketbase/pocketbase/tools/subscriptions" - - "github.com/labstack/echo/v5" -) - -// ------------------------------------------------------------------- -// Serve events data -// ------------------------------------------------------------------- - -type BootstrapEvent struct { - App App -} - -type ServeEvent struct { - App App - Router *echo.Echo -} - -type ApiErrorEvent struct { - HttpContext echo.Context - Error error -} - -// ------------------------------------------------------------------- -// Model DAO events data -// ------------------------------------------------------------------- - -type ModelEvent struct { - Dao *daos.Dao - Model models.Model -} - -// ------------------------------------------------------------------- -// Mailer events data -// ------------------------------------------------------------------- - -type MailerRecordEvent struct { - MailClient mailer.Mailer - Message *mailer.Message - Record *models.Record - Meta map[string]any -} - -type MailerAdminEvent struct { - MailClient mailer.Mailer - Message *mailer.Message - Admin *models.Admin - Meta map[string]any -} - -// ------------------------------------------------------------------- -// Realtime API events data -// ------------------------------------------------------------------- - -type RealtimeConnectEvent struct { - HttpContext echo.Context - Client subscriptions.Client -} - -type RealtimeDisconnectEvent struct { - HttpContext echo.Context - Client subscriptions.Client -} - -type RealtimeMessageEvent struct { - HttpContext echo.Context - Client subscriptions.Client - Message *subscriptions.Message -} - -type RealtimeSubscribeEvent struct { - HttpContext echo.Context - Client subscriptions.Client - Subscriptions []string -} - -// ------------------------------------------------------------------- -// Settings API events data -// ------------------------------------------------------------------- - -type SettingsListEvent struct { - HttpContext echo.Context - RedactedSettings *settings.Settings -} - -type SettingsUpdateEvent struct { - HttpContext echo.Context - OldSettings *settings.Settings - NewSettings *settings.Settings -} - -// ------------------------------------------------------------------- -// Record CRUD API events data -// ------------------------------------------------------------------- - -type RecordsListEvent struct { - HttpContext echo.Context - Collection *models.Collection - Records []*models.Record - Result *search.Result -} - -type RecordViewEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordCreateEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordUpdateEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordDeleteEvent struct { - HttpContext echo.Context - Record *models.Record -} - -// ------------------------------------------------------------------- -// Auth Record API events data -// ------------------------------------------------------------------- - -type RecordAuthEvent struct { - HttpContext echo.Context - Record *models.Record - Token string - Meta any -} - -type RecordRequestPasswordResetEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordConfirmPasswordResetEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordRequestVerificationEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordConfirmVerificationEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordRequestEmailChangeEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordConfirmEmailChangeEvent struct { - HttpContext echo.Context - Record *models.Record -} - -type RecordListExternalAuthsEvent struct { - HttpContext echo.Context - Record *models.Record - ExternalAuths []*models.ExternalAuth -} - -type RecordUnlinkExternalAuthEvent struct { - HttpContext echo.Context - Record *models.Record - ExternalAuth *models.ExternalAuth -} - -// ------------------------------------------------------------------- -// Admin API events data -// ------------------------------------------------------------------- - -type AdminsListEvent struct { - HttpContext echo.Context - Admins []*models.Admin - Result *search.Result -} - -type AdminViewEvent struct { - HttpContext echo.Context - Admin *models.Admin -} - -type AdminCreateEvent struct { - HttpContext echo.Context - Admin *models.Admin -} - -type AdminUpdateEvent struct { - HttpContext echo.Context - Admin *models.Admin -} - -type AdminDeleteEvent struct { - HttpContext echo.Context - Admin *models.Admin -} - -type AdminAuthEvent struct { - HttpContext echo.Context - Admin *models.Admin - Token string -} - -// ------------------------------------------------------------------- -// Collection API events data -// ------------------------------------------------------------------- - -type CollectionsListEvent struct { - HttpContext echo.Context - Collections []*models.Collection - Result *search.Result -} - -type CollectionViewEvent struct { - HttpContext echo.Context - Collection *models.Collection -} - -type CollectionCreateEvent struct { - HttpContext echo.Context - Collection *models.Collection -} - -type CollectionUpdateEvent struct { - HttpContext echo.Context - Collection *models.Collection -} - -type CollectionDeleteEvent struct { - HttpContext echo.Context - Collection *models.Collection -} - -type CollectionsImportEvent struct { - HttpContext echo.Context - Collections []*models.Collection -} - -// ------------------------------------------------------------------- -// File API events data -// ------------------------------------------------------------------- - -type FileDownloadEvent struct { - HttpContext echo.Context - Collection *models.Collection - Record *models.Record - FileField *schema.SchemaField - ServedPath string - ServedName string -} diff --git a/daos/admin.go b/daos/admin.go deleted file mode 100644 index 3a0000231edf32674c6c742fc39aee5dc83452c0..0000000000000000000000000000000000000000 --- a/daos/admin.go +++ /dev/null @@ -1,128 +0,0 @@ -package daos - -import ( - "errors" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/security" -) - -// AdminQuery returns a new Admin select query. -func (dao *Dao) AdminQuery() *dbx.SelectQuery { - return dao.ModelQuery(&models.Admin{}) -} - -// FindAdminById finds the admin with the provided id. -func (dao *Dao) FindAdminById(id string) (*models.Admin, error) { - model := &models.Admin{} - - err := dao.AdminQuery(). - AndWhere(dbx.HashExp{"id": id}). - Limit(1). - One(model) - - if err != nil { - return nil, err - } - - return model, nil -} - -// FindAdminByEmail finds the admin with the provided email address. -func (dao *Dao) FindAdminByEmail(email string) (*models.Admin, error) { - model := &models.Admin{} - - err := dao.AdminQuery(). - AndWhere(dbx.HashExp{"email": email}). - Limit(1). - One(model) - - if err != nil { - return nil, err - } - - return model, nil -} - -// FindAdminByToken finds the admin associated with the provided JWT token. -// -// Returns an error if the JWT token is invalid or expired. -func (dao *Dao) FindAdminByToken(token string, baseTokenKey string) (*models.Admin, error) { - // @todo consider caching the unverified claims - unverifiedClaims, err := security.ParseUnverifiedJWT(token) - if err != nil { - return nil, err - } - - // check required claims - id, _ := unverifiedClaims["id"].(string) - if id == "" { - return nil, errors.New("Missing or invalid token claims.") - } - - admin, err := dao.FindAdminById(id) - if err != nil || admin == nil { - return nil, err - } - - verificationKey := admin.TokenKey + baseTokenKey - - // verify token signature - if _, err := security.ParseJWT(token, verificationKey); err != nil { - return nil, err - } - - return admin, nil -} - -// TotalAdmins returns the number of existing admin records. -func (dao *Dao) TotalAdmins() (int, error) { - var total int - - err := dao.AdminQuery().Select("count(*)").Row(&total) - - return total, err -} - -// IsAdminEmailUnique checks if the provided email address is not -// already in use by other admins. -func (dao *Dao) IsAdminEmailUnique(email string, excludeIds ...string) bool { - if email == "" { - return false - } - - query := dao.AdminQuery().Select("count(*)"). - AndWhere(dbx.HashExp{"email": email}). - Limit(1) - - if len(excludeIds) > 0 { - query.AndWhere(dbx.NotIn("id", list.ToInterfaceSlice(excludeIds)...)) - } - - var exists bool - - return query.Row(&exists) == nil && !exists -} - -// DeleteAdmin deletes the provided Admin model. -// -// Returns an error if there is only 1 admin. -func (dao *Dao) DeleteAdmin(admin *models.Admin) error { - total, err := dao.TotalAdmins() - if err != nil { - return err - } - - if total == 1 { - return errors.New("You cannot delete the only existing admin.") - } - - return dao.Delete(admin) -} - -// SaveAdmin upserts the provided Admin model. -func (dao *Dao) SaveAdmin(admin *models.Admin) error { - return dao.Save(admin) -} diff --git a/daos/admin_test.go b/daos/admin_test.go deleted file mode 100644 index d49f5972b8d19effde7a9e8a81e54abdc14b5ff0..0000000000000000000000000000000000000000 --- a/daos/admin_test.go +++ /dev/null @@ -1,258 +0,0 @@ -package daos_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestAdminQuery(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - expected := "SELECT {{_admins}}.* FROM `_admins`" - - sql := app.Dao().AdminQuery().Build().SQL() - if sql != expected { - t.Errorf("Expected sql %s, got %s", expected, sql) - } -} - -func TestFindAdminById(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - id string - expectError bool - }{ - {" ", true}, - {"missing", true}, - {"9q2trqumvlyr3bd", false}, - } - - for i, scenario := range scenarios { - admin, err := app.Dao().FindAdminById(scenario.id) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if admin != nil && admin.Id != scenario.id { - t.Errorf("(%d) Expected admin with id %s, got %s", i, scenario.id, admin.Id) - } - } -} - -func TestFindAdminByEmail(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - email string - expectError bool - }{ - {"", true}, - {"invalid", true}, - {"missing@example.com", true}, - {"test@example.com", false}, - } - - for i, scenario := range scenarios { - admin, err := app.Dao().FindAdminByEmail(scenario.email) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - continue - } - - if !scenario.expectError && admin.Email != scenario.email { - t.Errorf("(%d) Expected admin with email %s, got %s", i, scenario.email, admin.Email) - } - } -} - -func TestFindAdminByToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - token string - baseKey string - expectedEmail string - expectError bool - }{ - // invalid auth token - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTY0MDk5MTY2MX0.qrbkI2TITtFKMP6vrATrBVKPGjEiDIBeQ0mlqPGMVeY", - app.Settings().AdminAuthToken.Secret, - "", - true, - }, - // expired token - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTY0MDk5MTY2MX0.I7w8iktkleQvC7_UIRpD7rNzcU4OnF7i7SFIUu6lD_4", - app.Settings().AdminAuthToken.Secret, - "", - true, - }, - // wrong base token (password reset token secret instead of auth secret) - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - app.Settings().AdminPasswordResetToken.Secret, - "", - true, - }, - // valid token - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImV4cCI6MjIwODk4NTI2MX0.M1m--VOqGyv0d23eeUc0r9xE8ZzHaYVmVFw1VZW6gT8", - app.Settings().AdminAuthToken.Secret, - "test@example.com", - false, - }, - } - - for i, scenario := range scenarios { - admin, err := app.Dao().FindAdminByToken(scenario.token, scenario.baseKey) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - continue - } - - if !scenario.expectError && admin.Email != scenario.expectedEmail { - t.Errorf("(%d) Expected admin model %s, got %s", i, scenario.expectedEmail, admin.Email) - } - } -} - -func TestTotalAdmins(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - result1, err := app.Dao().TotalAdmins() - if err != nil { - t.Fatal(err) - } - if result1 != 3 { - t.Fatalf("Expected 3 admins, got %d", result1) - } - - // delete all - app.Dao().DB().NewQuery("delete from {{_admins}}").Execute() - - result2, err := app.Dao().TotalAdmins() - if err != nil { - t.Fatal(err) - } - if result2 != 0 { - t.Fatalf("Expected 0 admins, got %d", result2) - } -} - -func TestIsAdminEmailUnique(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - email string - excludeId string - expected bool - }{ - {"", "", false}, - {"test@example.com", "", false}, - {"test2@example.com", "", false}, - {"test3@example.com", "", false}, - {"new@example.com", "", true}, - {"test@example.com", "sywbhecnh46rhm0", true}, - } - - for i, scenario := range scenarios { - result := app.Dao().IsAdminEmailUnique(scenario.email, scenario.excludeId) - if result != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, result) - } - } -} - -func TestDeleteAdmin(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // try to delete unsaved admin model - deleteErr0 := app.Dao().DeleteAdmin(&models.Admin{}) - if deleteErr0 == nil { - t.Fatal("Expected error, got nil") - } - - admin1, err := app.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - admin2, err := app.Dao().FindAdminByEmail("test2@example.com") - if err != nil { - t.Fatal(err) - } - admin3, err := app.Dao().FindAdminByEmail("test3@example.com") - if err != nil { - t.Fatal(err) - } - - deleteErr1 := app.Dao().DeleteAdmin(admin1) - if deleteErr1 != nil { - t.Fatal(deleteErr1) - } - - deleteErr2 := app.Dao().DeleteAdmin(admin2) - if deleteErr2 != nil { - t.Fatal(deleteErr2) - } - - // cannot delete the only remaining admin - deleteErr3 := app.Dao().DeleteAdmin(admin3) - if deleteErr3 == nil { - t.Fatal("Expected delete error, got nil") - } - - total, _ := app.Dao().TotalAdmins() - if total != 1 { - t.Fatalf("Expected only 1 admin, got %d", total) - } -} - -func TestSaveAdmin(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create - newAdmin := &models.Admin{} - newAdmin.Email = "new@example.com" - newAdmin.SetPassword("123456") - saveErr1 := app.Dao().SaveAdmin(newAdmin) - if saveErr1 != nil { - t.Fatal(saveErr1) - } - if newAdmin.Id == "" { - t.Fatal("Expected admin id to be set") - } - - // update - existingAdmin, err := app.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - updatedEmail := "test_update@example.com" - existingAdmin.Email = updatedEmail - saveErr2 := app.Dao().SaveAdmin(existingAdmin) - if saveErr2 != nil { - t.Fatal(saveErr2) - } - existingAdmin, _ = app.Dao().FindAdminById(existingAdmin.Id) - if existingAdmin.Email != updatedEmail { - t.Fatalf("Expected admin email to be %s, got %s", updatedEmail, existingAdmin.Email) - } -} diff --git a/daos/base.go b/daos/base.go deleted file mode 100644 index b59a2e41ed4cdf81c3c8b53b8bead0faeaef8c3a..0000000000000000000000000000000000000000 --- a/daos/base.go +++ /dev/null @@ -1,249 +0,0 @@ -// Package daos handles common PocketBase DB model manipulations. -// -// Think of daos as DB repository and service layer in one. -package daos - -import ( - "errors" - "fmt" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" -) - -// New creates a new Dao instance with the provided db builder. -func New(db dbx.Builder) *Dao { - return &Dao{ - db: db, - } -} - -// Dao handles various db operations. -// Think of Dao as a repository and service layer in one. -type Dao struct { - db dbx.Builder - - BeforeCreateFunc func(eventDao *Dao, m models.Model) error - AfterCreateFunc func(eventDao *Dao, m models.Model) - BeforeUpdateFunc func(eventDao *Dao, m models.Model) error - AfterUpdateFunc func(eventDao *Dao, m models.Model) - BeforeDeleteFunc func(eventDao *Dao, m models.Model) error - AfterDeleteFunc func(eventDao *Dao, m models.Model) -} - -// DB returns the internal db builder (*dbx.DB or *dbx.TX). -func (dao *Dao) DB() dbx.Builder { - return dao.db -} - -// ModelQuery creates a new query with preset Select and From fields -// based on the provided model argument. -func (dao *Dao) ModelQuery(m models.Model) *dbx.SelectQuery { - tableName := m.TableName() - return dao.db.Select(fmt.Sprintf("{{%s}}.*", tableName)).From(tableName) -} - -// FindById finds a single db record with the specified id and -// scans the result into m. -func (dao *Dao) FindById(m models.Model, id string) error { - return dao.ModelQuery(m).Where(dbx.HashExp{"id": id}).Limit(1).One(m) -} - -type afterCallGroup struct { - Action string - EventDao *Dao - Model models.Model -} - -// RunInTransaction wraps fn into a transaction. -// -// It is safe to nest RunInTransaction calls. -func (dao *Dao) RunInTransaction(fn func(txDao *Dao) error) error { - switch txOrDB := dao.db.(type) { - case *dbx.Tx: - // nested transactions are not supported by default - // so execute the function within the current transaction - return fn(dao) - case *dbx.DB: - afterCalls := []afterCallGroup{} - - txError := txOrDB.Transactional(func(tx *dbx.Tx) error { - txDao := New(tx) - - if dao.BeforeCreateFunc != nil { - txDao.BeforeCreateFunc = func(eventDao *Dao, m models.Model) error { - return dao.BeforeCreateFunc(eventDao, m) - } - } - if dao.BeforeUpdateFunc != nil { - txDao.BeforeUpdateFunc = func(eventDao *Dao, m models.Model) error { - return dao.BeforeUpdateFunc(eventDao, m) - } - } - if dao.BeforeDeleteFunc != nil { - txDao.BeforeDeleteFunc = func(eventDao *Dao, m models.Model) error { - return dao.BeforeDeleteFunc(eventDao, m) - } - } - - if dao.AfterCreateFunc != nil { - txDao.AfterCreateFunc = func(eventDao *Dao, m models.Model) { - afterCalls = append(afterCalls, afterCallGroup{"create", eventDao, m}) - } - } - if dao.AfterUpdateFunc != nil { - txDao.AfterUpdateFunc = func(eventDao *Dao, m models.Model) { - afterCalls = append(afterCalls, afterCallGroup{"update", eventDao, m}) - } - } - if dao.AfterDeleteFunc != nil { - txDao.AfterDeleteFunc = func(eventDao *Dao, m models.Model) { - afterCalls = append(afterCalls, afterCallGroup{"delete", eventDao, m}) - } - } - - return fn(txDao) - }) - - if txError == nil { - // execute after event calls on successful transaction - for _, call := range afterCalls { - switch call.Action { - case "create": - dao.AfterCreateFunc(call.EventDao, call.Model) - case "update": - dao.AfterUpdateFunc(call.EventDao, call.Model) - case "delete": - dao.AfterDeleteFunc(call.EventDao, call.Model) - } - } - } - - return txError - } - - return errors.New("Failed to start transaction (unknown dao.db)") -} - -// Delete deletes the provided model. -func (dao *Dao) Delete(m models.Model) error { - if !m.HasId() { - return errors.New("ID is not set") - } - - if dao.BeforeDeleteFunc != nil { - if err := dao.BeforeDeleteFunc(dao, m); err != nil { - return err - } - } - - if err := dao.db.Model(m).Delete(); err != nil { - return err - } - - if dao.AfterDeleteFunc != nil { - dao.AfterDeleteFunc(dao, m) - } - - return nil -} - -// Save upserts (update or create if primary key is not set) the provided model. -func (dao *Dao) Save(m models.Model) error { - if m.IsNew() { - return dao.create(m) - } - - return dao.update(m) -} - -func (dao *Dao) update(m models.Model) error { - if !m.HasId() { - return errors.New("ID is not set") - } - - if m.GetCreated().IsZero() { - m.RefreshCreated() - } - - m.RefreshUpdated() - - if dao.BeforeUpdateFunc != nil { - if err := dao.BeforeUpdateFunc(dao, m); err != nil { - return err - } - } - - if v, ok := any(m).(models.ColumnValueMapper); ok { - dataMap := v.ColumnValueMap() - - _, err := dao.db.Update( - m.TableName(), - dataMap, - dbx.HashExp{"id": m.GetId()}, - ).Execute() - - if err != nil { - return err - } - } else { - if err := dao.db.Model(m).Update(); err != nil { - return err - } - } - - if dao.AfterUpdateFunc != nil { - dao.AfterUpdateFunc(dao, m) - } - - return nil -} - -func (dao *Dao) create(m models.Model) error { - if !m.HasId() { - // auto generate id - m.RefreshId() - } - - // mark the model as "new" since the model now always has an ID - m.MarkAsNew() - - if m.GetCreated().IsZero() { - m.RefreshCreated() - } - - if m.GetUpdated().IsZero() { - m.RefreshUpdated() - } - - if dao.BeforeCreateFunc != nil { - if err := dao.BeforeCreateFunc(dao, m); err != nil { - return err - } - } - - if v, ok := any(m).(models.ColumnValueMapper); ok { - dataMap := v.ColumnValueMap() - if _, ok := dataMap["id"]; !ok { - dataMap["id"] = m.GetId() - } - - _, err := dao.db.Insert(m.TableName(), dataMap).Execute() - if err != nil { - return err - } - } else { - if err := dao.db.Model(m).Insert(); err != nil { - return err - } - } - - // clears the "new" model flag - m.MarkAsNotNew() - - if dao.AfterCreateFunc != nil { - dao.AfterCreateFunc(dao, m) - } - - return nil -} diff --git a/daos/base_test.go b/daos/base_test.go deleted file mode 100644 index 37f45e3eaf416ed0c9fd2a67db429343160ec30e..0000000000000000000000000000000000000000 --- a/daos/base_test.go +++ /dev/null @@ -1,504 +0,0 @@ -package daos_test - -import ( - "errors" - "testing" - - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestNew(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - dao := daos.New(testApp.DB()) - - if dao.DB() != testApp.DB() { - t.Fatal("The 2 db instances are different") - } -} - -func TestDaoModelQuery(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - dao := daos.New(testApp.DB()) - - scenarios := []struct { - model models.Model - expected string - }{ - { - &models.Collection{}, - "SELECT {{_collections}}.* FROM `_collections`", - }, - { - &models.Admin{}, - "SELECT {{_admins}}.* FROM `_admins`", - }, - { - &models.Request{}, - "SELECT {{_requests}}.* FROM `_requests`", - }, - } - - for i, scenario := range scenarios { - sql := dao.ModelQuery(scenario.model).Build().SQL() - if sql != scenario.expected { - t.Errorf("(%d) Expected select %s, got %s", i, scenario.expected, sql) - } - } -} - -func TestDaoFindById(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - scenarios := []struct { - model models.Model - id string - expectError bool - }{ - // missing id - { - &models.Collection{}, - "missing", - true, - }, - // existing collection id - { - &models.Collection{}, - "wsmn24bux7wo113", - false, - }, - // existing admin id - { - &models.Admin{}, - "sbmbsdb40jyxf7h", - false, - }, - } - - for i, scenario := range scenarios { - err := testApp.Dao().FindById(scenario.model, scenario.id) - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expectError, err) - } - - if !scenario.expectError && scenario.id != scenario.model.GetId() { - t.Errorf("(%d) Expected model with id %v, got %v", i, scenario.id, scenario.model.GetId()) - } - } -} - -func TestDaoRunInTransaction(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - // failed nested transaction - testApp.Dao().RunInTransaction(func(txDao *daos.Dao) error { - admin, _ := txDao.FindAdminByEmail("test@example.com") - - return txDao.RunInTransaction(func(tx2Dao *daos.Dao) error { - if err := tx2Dao.DeleteAdmin(admin); err != nil { - t.Fatal(err) - } - return errors.New("test error") - }) - }) - - // admin should still exist - admin1, _ := testApp.Dao().FindAdminByEmail("test@example.com") - if admin1 == nil { - t.Fatal("Expected admin test@example.com to not be deleted") - } - - // successful nested transaction - testApp.Dao().RunInTransaction(func(txDao *daos.Dao) error { - admin, _ := txDao.FindAdminByEmail("test@example.com") - - return txDao.RunInTransaction(func(tx2Dao *daos.Dao) error { - return tx2Dao.DeleteAdmin(admin) - }) - }) - - // admin should have been deleted - admin2, _ := testApp.Dao().FindAdminByEmail("test@example.com") - if admin2 != nil { - t.Fatalf("Expected admin test@example.com to be deleted, found %v", admin2) - } -} - -func TestDaoSaveCreate(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - model := &models.Admin{} - model.Email = "test_new@example.com" - model.Avatar = 8 - if err := testApp.Dao().Save(model); err != nil { - t.Fatal(err) - } - - // refresh - model, _ = testApp.Dao().FindAdminByEmail("test_new@example.com") - - if model.Avatar != 8 { - t.Fatalf("Expected model avatar field to be 8, got %v", model.Avatar) - } - - expectedHooks := []string{"OnModelBeforeCreate", "OnModelAfterCreate"} - for _, h := range expectedHooks { - if v, ok := testApp.EventCalls[h]; !ok || v != 1 { - t.Fatalf("Expected event %s to be called exactly one time, got %d", h, v) - } - } -} - -func TestDaoSaveWithInsertId(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - model := &models.Admin{} - model.Id = "test" - model.Email = "test_new@example.com" - model.MarkAsNew() - if err := testApp.Dao().Save(model); err != nil { - t.Fatal(err) - } - - // refresh - model, _ = testApp.Dao().FindAdminById("test") - - if model == nil { - t.Fatal("Failed to find admin with id 'test'") - } - - expectedHooks := []string{"OnModelBeforeCreate", "OnModelAfterCreate"} - for _, h := range expectedHooks { - if v, ok := testApp.EventCalls[h]; !ok || v != 1 { - t.Fatalf("Expected event %s to be called exactly one time, got %d", h, v) - } - } -} - -func TestDaoSaveUpdate(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - model, _ := testApp.Dao().FindAdminByEmail("test@example.com") - - model.Avatar = 8 - if err := testApp.Dao().Save(model); err != nil { - t.Fatal(err) - } - - // refresh - model, _ = testApp.Dao().FindAdminByEmail("test@example.com") - - if model.Avatar != 8 { - t.Fatalf("Expected model avatar field to be updated to 8, got %v", model.Avatar) - } - - expectedHooks := []string{"OnModelBeforeUpdate", "OnModelAfterUpdate"} - for _, h := range expectedHooks { - if v, ok := testApp.EventCalls[h]; !ok || v != 1 { - t.Fatalf("Expected event %s to be called exactly one time, got %d", h, v) - } - } -} - -type dummyColumnValueMapper struct { - models.Admin -} - -func (a *dummyColumnValueMapper) ColumnValueMap() map[string]any { - return map[string]any{ - "email": a.Email, - "passwordHash": a.PasswordHash, - "tokenKey": "custom_token_key", - } -} - -func TestDaoSaveWithColumnValueMapper(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - model := &dummyColumnValueMapper{} - model.Id = "test_mapped_id" // explicitly set an id - model.Email = "test_mapped_create@example.com" - model.TokenKey = "test_unmapped_token_key" // not used in the map - model.SetPassword("123456") - model.MarkAsNew() - if err := testApp.Dao().Save(model); err != nil { - t.Fatal(err) - } - - createdModel, _ := testApp.Dao().FindAdminById("test_mapped_id") - if createdModel == nil { - t.Fatal("[create] Failed to find model with id 'test_mapped_id'") - } - if createdModel.Email != model.Email { - t.Fatalf("Expected model with email %q, got %q", model.Email, createdModel.Email) - } - if createdModel.TokenKey != "custom_token_key" { - t.Fatalf("Expected model with tokenKey %q, got %q", "custom_token_key", createdModel.TokenKey) - } - - model.Email = "test_mapped_update@example.com" - model.Avatar = 9 // not mapped and expect to be ignored - if err := testApp.Dao().Save(model); err != nil { - t.Fatal(err) - } - - updatedModel, _ := testApp.Dao().FindAdminById("test_mapped_id") - if updatedModel == nil { - t.Fatal("[update] Failed to find model with id 'test_mapped_id'") - } - if updatedModel.Email != model.Email { - t.Fatalf("Expected model with email %q, got %q", model.Email, createdModel.Email) - } - if updatedModel.Avatar != 0 { - t.Fatalf("Expected model avatar 0, got %v", updatedModel.Avatar) - } -} - -func TestDaoDelete(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - model, _ := testApp.Dao().FindAdminByEmail("test@example.com") - - if err := testApp.Dao().Delete(model); err != nil { - t.Fatal(err) - } - - model, _ = testApp.Dao().FindAdminByEmail("test@example.com") - if model != nil { - t.Fatalf("Expected model to be deleted, found %v", model) - } - - expectedHooks := []string{"OnModelBeforeDelete", "OnModelAfterDelete"} - for _, h := range expectedHooks { - if v, ok := testApp.EventCalls[h]; !ok || v != 1 { - t.Fatalf("Expected event %s to be called exactly one time, got %d", h, v) - } - } -} - -func TestDaoBeforeHooksError(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - baseDao := testApp.Dao() - - baseDao.BeforeCreateFunc = func(eventDao *daos.Dao, m models.Model) error { - return errors.New("before_create") - } - baseDao.BeforeUpdateFunc = func(eventDao *daos.Dao, m models.Model) error { - return errors.New("before_update") - } - baseDao.BeforeDeleteFunc = func(eventDao *daos.Dao, m models.Model) error { - return errors.New("before_delete") - } - - existingModel, _ := testApp.Dao().FindAdminByEmail("test@example.com") - - // test create error - // --- - newModel := &models.Admin{} - if err := baseDao.Save(newModel); err.Error() != "before_create" { - t.Fatalf("Expected before_create error, got %v", err) - } - - // test update error - // --- - if err := baseDao.Save(existingModel); err.Error() != "before_update" { - t.Fatalf("Expected before_update error, got %v", err) - } - - // test delete error - // --- - if err := baseDao.Delete(existingModel); err.Error() != "before_delete" { - t.Fatalf("Expected before_delete error, got %v", err) - } -} - -func TestDaoTransactionHooksCallsOnFailure(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - beforeCreateFuncCalls := 0 - beforeUpdateFuncCalls := 0 - beforeDeleteFuncCalls := 0 - afterCreateFuncCalls := 0 - afterUpdateFuncCalls := 0 - afterDeleteFuncCalls := 0 - - baseDao := testApp.Dao() - - baseDao.BeforeCreateFunc = func(eventDao *daos.Dao, m models.Model) error { - beforeCreateFuncCalls++ - return nil - } - baseDao.BeforeUpdateFunc = func(eventDao *daos.Dao, m models.Model) error { - beforeUpdateFuncCalls++ - return nil - } - baseDao.BeforeDeleteFunc = func(eventDao *daos.Dao, m models.Model) error { - beforeDeleteFuncCalls++ - return nil - } - - baseDao.AfterCreateFunc = func(eventDao *daos.Dao, m models.Model) { - afterCreateFuncCalls++ - } - baseDao.AfterUpdateFunc = func(eventDao *daos.Dao, m models.Model) { - afterUpdateFuncCalls++ - } - baseDao.AfterDeleteFunc = func(eventDao *daos.Dao, m models.Model) { - afterDeleteFuncCalls++ - } - - existingModel, _ := testApp.Dao().FindAdminByEmail("test@example.com") - - baseDao.RunInTransaction(func(txDao1 *daos.Dao) error { - return txDao1.RunInTransaction(func(txDao2 *daos.Dao) error { - // test create - // --- - newModel := &models.Admin{} - newModel.Email = "test_new1@example.com" - newModel.SetPassword("123456") - if err := txDao2.Save(newModel); err != nil { - t.Fatal(err) - } - - // test update (twice) - // --- - if err := txDao2.Save(existingModel); err != nil { - t.Fatal(err) - } - if err := txDao2.Save(existingModel); err != nil { - t.Fatal(err) - } - - // test delete - // --- - if err := txDao2.Delete(existingModel); err != nil { - t.Fatal(err) - } - - return errors.New("test_tx_error") - }) - }) - - if beforeCreateFuncCalls != 1 { - t.Fatalf("Expected beforeCreateFuncCalls to be called 1 times, got %d", beforeCreateFuncCalls) - } - if beforeUpdateFuncCalls != 2 { - t.Fatalf("Expected beforeUpdateFuncCalls to be called 2 times, got %d", beforeUpdateFuncCalls) - } - if beforeDeleteFuncCalls != 1 { - t.Fatalf("Expected beforeDeleteFuncCalls to be called 1 times, got %d", beforeDeleteFuncCalls) - } - if afterCreateFuncCalls != 0 { - t.Fatalf("Expected afterCreateFuncCalls to be called 0 times, got %d", afterCreateFuncCalls) - } - if afterUpdateFuncCalls != 0 { - t.Fatalf("Expected afterUpdateFuncCalls to be called 0 times, got %d", afterUpdateFuncCalls) - } - if afterDeleteFuncCalls != 0 { - t.Fatalf("Expected afterDeleteFuncCalls to be called 0 times, got %d", afterDeleteFuncCalls) - } -} - -func TestDaoTransactionHooksCallsOnSuccess(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - beforeCreateFuncCalls := 0 - beforeUpdateFuncCalls := 0 - beforeDeleteFuncCalls := 0 - afterCreateFuncCalls := 0 - afterUpdateFuncCalls := 0 - afterDeleteFuncCalls := 0 - - baseDao := testApp.Dao() - - baseDao.BeforeCreateFunc = func(eventDao *daos.Dao, m models.Model) error { - beforeCreateFuncCalls++ - return nil - } - baseDao.BeforeUpdateFunc = func(eventDao *daos.Dao, m models.Model) error { - beforeUpdateFuncCalls++ - return nil - } - baseDao.BeforeDeleteFunc = func(eventDao *daos.Dao, m models.Model) error { - beforeDeleteFuncCalls++ - return nil - } - - baseDao.AfterCreateFunc = func(eventDao *daos.Dao, m models.Model) { - afterCreateFuncCalls++ - } - baseDao.AfterUpdateFunc = func(eventDao *daos.Dao, m models.Model) { - afterUpdateFuncCalls++ - } - baseDao.AfterDeleteFunc = func(eventDao *daos.Dao, m models.Model) { - afterDeleteFuncCalls++ - } - - existingModel, _ := testApp.Dao().FindAdminByEmail("test@example.com") - - baseDao.RunInTransaction(func(txDao1 *daos.Dao) error { - return txDao1.RunInTransaction(func(txDao2 *daos.Dao) error { - // test create - // --- - newModel := &models.Admin{} - newModel.Email = "test_new1@example.com" - newModel.SetPassword("123456") - if err := txDao2.Save(newModel); err != nil { - t.Fatal(err) - } - - // test update (twice) - // --- - if err := txDao2.Save(existingModel); err != nil { - t.Fatal(err) - } - if err := txDao2.Save(existingModel); err != nil { - t.Fatal(err) - } - - // test delete - // --- - if err := txDao2.Delete(existingModel); err != nil { - t.Fatal(err) - } - - return nil - }) - }) - - if beforeCreateFuncCalls != 1 { - t.Fatalf("Expected beforeCreateFuncCalls to be called 1 times, got %d", beforeCreateFuncCalls) - } - if beforeUpdateFuncCalls != 2 { - t.Fatalf("Expected beforeUpdateFuncCalls to be called 2 times, got %d", beforeUpdateFuncCalls) - } - if beforeDeleteFuncCalls != 1 { - t.Fatalf("Expected beforeDeleteFuncCalls to be called 1 times, got %d", beforeDeleteFuncCalls) - } - if afterCreateFuncCalls != 1 { - t.Fatalf("Expected afterCreateFuncCalls to be called 1 times, got %d", afterCreateFuncCalls) - } - if afterUpdateFuncCalls != 2 { - t.Fatalf("Expected afterUpdateFuncCalls to be called 2 times, got %d", afterUpdateFuncCalls) - } - if afterDeleteFuncCalls != 1 { - t.Fatalf("Expected afterDeleteFuncCalls to be called 1 times, got %d", afterDeleteFuncCalls) - } -} diff --git a/daos/collection.go b/daos/collection.go deleted file mode 100644 index 8330f254b96bb86fb618d7dc8ecb89ea35911656..0000000000000000000000000000000000000000 --- a/daos/collection.go +++ /dev/null @@ -1,292 +0,0 @@ -package daos - -import ( - "errors" - "fmt" - "strings" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/list" -) - -// CollectionQuery returns a new Collection select query. -func (dao *Dao) CollectionQuery() *dbx.SelectQuery { - return dao.ModelQuery(&models.Collection{}) -} - -// FindCollectionsByType finds all collections by the given type. -func (dao *Dao) FindCollectionsByType(collectionType string) ([]*models.Collection, error) { - collections := []*models.Collection{} - - err := dao.CollectionQuery(). - AndWhere(dbx.HashExp{"type": collectionType}). - OrderBy("created ASC"). - All(&collections) - - if err != nil { - return nil, err - } - - return collections, nil -} - -// FindCollectionByNameOrId finds a single collection by its name (case insensitive) or id. -func (dao *Dao) FindCollectionByNameOrId(nameOrId string) (*models.Collection, error) { - model := &models.Collection{} - - err := dao.CollectionQuery(). - AndWhere(dbx.NewExp("[[id]] = {:id} OR LOWER([[name]])={:name}", dbx.Params{ - "id": nameOrId, - "name": strings.ToLower(nameOrId), - })). - Limit(1). - One(model) - - if err != nil { - return nil, err - } - - return model, nil -} - -// IsCollectionNameUnique checks that there is no existing collection -// with the provided name (case insensitive!). -// -// Note: case insensitive check because the name is used also as a table name for the records. -func (dao *Dao) IsCollectionNameUnique(name string, excludeIds ...string) bool { - if name == "" { - return false - } - - query := dao.CollectionQuery(). - Select("count(*)"). - AndWhere(dbx.NewExp("LOWER([[name]])={:name}", dbx.Params{"name": strings.ToLower(name)})). - Limit(1) - - if len(excludeIds) > 0 { - uniqueExcludeIds := list.NonzeroUniques(excludeIds) - query.AndWhere(dbx.NotIn("id", list.ToInterfaceSlice(uniqueExcludeIds)...)) - } - - var exists bool - - return query.Row(&exists) == nil && !exists -} - -// FindCollectionReferences returns information for all -// relation schema fields referencing the provided collection. -// -// If the provided collection has reference to itself then it will be -// also included in the result. To exclude it, pass the collection id -// as the excludeId argument. -func (dao *Dao) FindCollectionReferences(collection *models.Collection, excludeIds ...string) (map[*models.Collection][]*schema.SchemaField, error) { - collections := []*models.Collection{} - - query := dao.CollectionQuery() - if len(excludeIds) > 0 { - uniqueExcludeIds := list.NonzeroUniques(excludeIds) - query.AndWhere(dbx.NotIn("id", list.ToInterfaceSlice(uniqueExcludeIds)...)) - } - if err := query.All(&collections); err != nil { - return nil, err - } - - result := map[*models.Collection][]*schema.SchemaField{} - for _, c := range collections { - for _, f := range c.Schema.Fields() { - if f.Type != schema.FieldTypeRelation { - continue - } - f.InitOptions() - options, _ := f.Options.(*schema.RelationOptions) - if options != nil && options.CollectionId == collection.Id { - result[c] = append(result[c], f) - } - } - } - - return result, nil -} - -// DeleteCollection deletes the provided Collection model. -// This method automatically deletes the related collection records table. -// -// NB! The collection cannot be deleted, if: -// - is system collection (aka. collection.System is true) -// - is referenced as part of a relation field in another collection -func (dao *Dao) DeleteCollection(collection *models.Collection) error { - if collection.System { - return fmt.Errorf("System collection %q cannot be deleted.", collection.Name) - } - - // ensure that there aren't any existing references. - // note: the select is outside of the transaction to prevent SQLITE_LOCKED error when mixing read&write in a single transaction - result, err := dao.FindCollectionReferences(collection, collection.Id) - if err != nil { - return err - } - if total := len(result); total > 0 { - return fmt.Errorf("The collection %q has external relation field references (%d).", collection.Name, total) - } - - return dao.RunInTransaction(func(txDao *Dao) error { - // delete the related records table - if err := txDao.DeleteTable(collection.Name); err != nil { - return err - } - - return txDao.Delete(collection) - }) -} - -// SaveCollection upserts the provided Collection model and updates -// its related records table schema. -func (dao *Dao) SaveCollection(collection *models.Collection) error { - var oldCollection *models.Collection - - if !collection.IsNew() { - // get the existing collection state to compare with the new one - // note: the select is outside of the transaction to prevent SQLITE_LOCKED error when mixing read&write in a single transaction - var findErr error - oldCollection, findErr = dao.FindCollectionByNameOrId(collection.Id) - if findErr != nil { - return findErr - } - } - - return dao.RunInTransaction(func(txDao *Dao) error { - // set default collection type - if collection.Type == "" { - collection.Type = models.CollectionTypeBase - } - - // persist the collection model - if err := txDao.Save(collection); err != nil { - return err - } - - // sync the changes with the related records table - return txDao.SyncRecordTableSchema(collection, oldCollection) - }) -} - -// ImportCollections imports the provided collections list within a single transaction. -// -// NB1! If deleteMissing is set, all local collections and schema fields, that are not present -// in the imported configuration, WILL BE DELETED (including their related records data). -// -// NB2! This method doesn't perform validations on the imported collections data! -// If you need validations, use [forms.CollectionsImport]. -func (dao *Dao) ImportCollections( - importedCollections []*models.Collection, - deleteMissing bool, - beforeRecordsSync func(txDao *Dao, mappedImported, mappedExisting map[string]*models.Collection) error, -) error { - if len(importedCollections) == 0 { - return errors.New("No collections to import") - } - - return dao.RunInTransaction(func(txDao *Dao) error { - existingCollections := []*models.Collection{} - if err := txDao.CollectionQuery().OrderBy("created ASC").All(&existingCollections); err != nil { - return err - } - mappedExisting := make(map[string]*models.Collection, len(existingCollections)) - for _, existing := range existingCollections { - mappedExisting[existing.GetId()] = existing - } - - mappedImported := make(map[string]*models.Collection, len(importedCollections)) - for _, imported := range importedCollections { - // generate id if not set - if !imported.HasId() { - imported.MarkAsNew() - imported.RefreshId() - } - - // set default type if missing - if imported.Type == "" { - imported.Type = models.CollectionTypeBase - } - - if existing, ok := mappedExisting[imported.GetId()]; ok { - imported.MarkAsNotNew() - - // preserve original created date - if !existing.Created.IsZero() { - imported.Created = existing.Created - } - - // extend existing schema - if !deleteMissing { - schema, _ := existing.Schema.Clone() - for _, f := range imported.Schema.Fields() { - schema.AddField(f) // add or replace - } - imported.Schema = *schema - } - } else { - imported.MarkAsNew() - } - - mappedImported[imported.GetId()] = imported - } - - // delete old collections not available in the new configuration - // (before saving the imports in case a deleted collection name is being reused) - if deleteMissing { - for _, existing := range existingCollections { - if mappedImported[existing.GetId()] != nil { - continue // exist - } - - if existing.System { - return fmt.Errorf("System collection %q cannot be deleted.", existing.Name) - } - - // delete the collection - if err := txDao.Delete(existing); err != nil { - return err - } - } - } - - // upsert imported collections - for _, imported := range importedCollections { - if err := txDao.Save(imported); err != nil { - return err - } - } - - if beforeRecordsSync != nil { - if err := beforeRecordsSync(txDao, mappedImported, mappedExisting); err != nil { - return err - } - } - - // delete the record tables of the deleted collections - if deleteMissing { - for _, existing := range existingCollections { - if mappedImported[existing.GetId()] != nil { - continue // exist - } - - if err := txDao.DeleteTable(existing.Name); err != nil { - return err - } - } - } - - // sync the upserted collections with the related records table - for _, imported := range importedCollections { - existing := mappedExisting[imported.GetId()] - if err := txDao.SyncRecordTableSchema(imported, existing); err != nil { - return err - } - } - - return nil - }) -} diff --git a/daos/collection_test.go b/daos/collection_test.go deleted file mode 100644 index 31e385ef715609aac9a403b663a2e026af4ec4c1..0000000000000000000000000000000000000000 --- a/daos/collection_test.go +++ /dev/null @@ -1,555 +0,0 @@ -package daos_test - -import ( - "encoding/json" - "errors" - "strings" - "testing" - - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/list" -) - -func TestCollectionQuery(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - expected := "SELECT {{_collections}}.* FROM `_collections`" - - sql := app.Dao().CollectionQuery().Build().SQL() - if sql != expected { - t.Errorf("Expected sql %s, got %s", expected, sql) - } -} - -func TestFindCollectionsByType(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionType string - expectError bool - expectTotal int - }{ - {"", false, 0}, - {"unknown", false, 0}, - {models.CollectionTypeAuth, false, 3}, - {models.CollectionTypeBase, false, 4}, - } - - for i, scenario := range scenarios { - collections, err := app.Dao().FindCollectionsByType(scenario.collectionType) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if len(collections) != scenario.expectTotal { - t.Errorf("(%d) Expected %d collections, got %d", i, scenario.expectTotal, len(collections)) - } - - for _, c := range collections { - if c.Type != scenario.collectionType { - t.Errorf("(%d) Expected collection with type %s, got %s: \n%v", i, scenario.collectionType, c.Type, c) - } - } - } -} - -func TestFindCollectionByNameOrId(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - nameOrId string - expectError bool - }{ - {"", true}, - {"missing", true}, - {"wsmn24bux7wo113", false}, - {"demo1", false}, - {"DEMO1", false}, // case insensitive check - } - - for i, scenario := range scenarios { - model, err := app.Dao().FindCollectionByNameOrId(scenario.nameOrId) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if model != nil && model.Id != scenario.nameOrId && !strings.EqualFold(model.Name, scenario.nameOrId) { - t.Errorf("(%d) Expected model with identifier %s, got %v", i, scenario.nameOrId, model) - } - } -} - -func TestIsCollectionNameUnique(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - name string - excludeId string - expected bool - }{ - {"", "", false}, - {"demo1", "", false}, - {"Demo1", "", false}, - {"new", "", true}, - {"demo1", "wsmn24bux7wo113", true}, - } - - for i, scenario := range scenarios { - result := app.Dao().IsCollectionNameUnique(scenario.name, scenario.excludeId) - if result != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, result) - } - } -} - -func TestFindCollectionReferences(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo3") - if err != nil { - t.Fatal(err) - } - - result, err := app.Dao().FindCollectionReferences(collection, collection.Id) - if err != nil { - t.Fatal(err) - } - - if len(result) != 1 { - t.Fatalf("Expected 1 collection, got %d: %v", len(result), result) - } - - expectedFields := []string{ - "rel_one_no_cascade", - "rel_one_no_cascade_required", - "rel_one_cascade", - "rel_many_no_cascade", - "rel_many_no_cascade_required", - "rel_many_cascade", - } - - for col, fields := range result { - if col.Name != "demo4" { - t.Fatalf("Expected collection demo4, got %s", col.Name) - } - if len(fields) != len(expectedFields) { - t.Fatalf("Expected fields %v, got %v", expectedFields, fields) - } - for i, f := range fields { - if !list.ExistInSlice(f.Name, expectedFields) { - t.Fatalf("(%d) Didn't expect field %v", i, f) - } - } - } -} - -func TestDeleteCollection(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - c0 := &models.Collection{} - c1, err := app.Dao().FindCollectionByNameOrId("clients") - if err != nil { - t.Fatal(err) - } - c2, err := app.Dao().FindCollectionByNameOrId("demo2") - if err != nil { - t.Fatal(err) - } - c3, err := app.Dao().FindCollectionByNameOrId("demo1") - if err != nil { - t.Fatal(err) - } - c3.System = true - if err := app.Dao().Save(c3); err != nil { - t.Fatal(err) - } - - scenarios := []struct { - model *models.Collection - expectError bool - }{ - {c0, true}, - {c1, false}, - {c2, true}, // is part of a reference - {c3, true}, // system - } - - for i, scenario := range scenarios { - err := app.Dao().DeleteCollection(scenario.model) - hasErr := err != nil - - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v", i, scenario.expectError, hasErr) - } - } -} - -func TestSaveCollectionCreate(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection := &models.Collection{ - Name: "new_test", - Type: models.CollectionTypeBase, - Schema: schema.NewSchema( - &schema.SchemaField{ - Type: schema.FieldTypeText, - Name: "test", - }, - ), - } - - err := app.Dao().SaveCollection(collection) - if err != nil { - t.Fatal(err) - } - - if collection.Id == "" { - t.Fatal("Expected collection id to be set") - } - - // check if the records table was created - hasTable := app.Dao().HasTable(collection.Name) - if !hasTable { - t.Fatalf("Expected records table %s to be created", collection.Name) - } - - // check if the records table has the schema fields - columns, err := app.Dao().GetTableColumns(collection.Name) - if err != nil { - t.Fatal(err) - } - expectedColumns := []string{"id", "created", "updated", "test"} - if len(columns) != len(expectedColumns) { - t.Fatalf("Expected columns %v, got %v", expectedColumns, columns) - } - for i, c := range columns { - if !list.ExistInSlice(c, expectedColumns) { - t.Fatalf("(%d) Didn't expect record column %s", i, c) - } - } -} - -func TestSaveCollectionUpdate(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo3") - if err != nil { - t.Fatal(err) - } - - // rename an existing schema field and add a new one - oldField := collection.Schema.GetFieldByName("title") - oldField.Name = "title_update" - collection.Schema.AddField(&schema.SchemaField{ - Type: schema.FieldTypeText, - Name: "test", - }) - - saveErr := app.Dao().SaveCollection(collection) - if saveErr != nil { - t.Fatal(saveErr) - } - - // check if the records table has the schema fields - expectedColumns := []string{"id", "created", "updated", "title_update", "test", "files"} - columns, err := app.Dao().GetTableColumns(collection.Name) - if err != nil { - t.Fatal(err) - } - if len(columns) != len(expectedColumns) { - t.Fatalf("Expected columns %v, got %v", expectedColumns, columns) - } - for i, c := range columns { - if !list.ExistInSlice(c, expectedColumns) { - t.Fatalf("(%d) Didn't expect record column %s", i, c) - } - } -} - -func TestImportCollections(t *testing.T) { - scenarios := []struct { - name string - jsonData string - deleteMissing bool - beforeRecordsSync func(txDao *daos.Dao, mappedImported, mappedExisting map[string]*models.Collection) error - expectError bool - expectCollectionsCount int - beforeTestFunc func(testApp *tests.TestApp, resultCollections []*models.Collection) - afterTestFunc func(testApp *tests.TestApp, resultCollections []*models.Collection) - }{ - { - name: "empty collections", - jsonData: `[]`, - expectError: true, - expectCollectionsCount: 7, - }, - { - name: "minimal collection import", - jsonData: `[ - {"name": "import_test1", "schema": [{"name":"test", "type": "text"}]}, - {"name": "import_test2", "type": "auth"} - ]`, - deleteMissing: false, - expectError: false, - expectCollectionsCount: 9, - }, - { - name: "minimal collection import + failed beforeRecordsSync", - jsonData: `[ - {"name": "import_test", "schema": [{"name":"test", "type": "text"}]} - ]`, - beforeRecordsSync: func(txDao *daos.Dao, mappedImported, mappedExisting map[string]*models.Collection) error { - return errors.New("test_error") - }, - deleteMissing: false, - expectError: true, - expectCollectionsCount: 7, - }, - { - name: "minimal collection import + successful beforeRecordsSync", - jsonData: `[ - {"name": "import_test", "schema": [{"name":"test", "type": "text"}]} - ]`, - beforeRecordsSync: func(txDao *daos.Dao, mappedImported, mappedExisting map[string]*models.Collection) error { - return nil - }, - deleteMissing: false, - expectError: false, - expectCollectionsCount: 8, - }, - { - name: "new + update + delete system collection", - jsonData: `[ - { - "id":"wsmn24bux7wo113", - "name":"demo", - "schema":[ - { - "id":"_2hlxbmp", - "name":"title", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - } - ] - }, - { - "name": "import1", - "schema": [ - { - "name":"active", - "type":"bool" - } - ] - } - ]`, - deleteMissing: true, - expectError: true, - expectCollectionsCount: 7, - }, - { - name: "new + update + delete non-system collection", - jsonData: `[ - { - "id": "kpv709sk2lqbqk8", - "system": true, - "name": "nologin", - "type": "auth", - "options": { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": [], - "manageRule": "@request.auth.collectionName = 'users'", - "minPasswordLength": 8, - "onlyEmailDomains": [], - "requireEmail": true - }, - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "schema": [ - { - "id": "x8zzktwe", - "name": "name", - "type": "text", - "system": false, - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ] - }, - { - "id":"wsmn24bux7wo113", - "name":"demo", - "schema":[ - { - "id":"_2hlxbmp", - "name":"title", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - } - ] - }, - { - "id": "test_deleted_collection_name_reuse", - "name": "demo2", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - } - ]`, - deleteMissing: true, - expectError: false, - expectCollectionsCount: 3, - }, - { - name: "test with deleteMissing: false", - jsonData: `[ - { - "id":"wsmn24bux7wo113", - "name":"demo1", - "schema":[ - { - "id":"_2hlxbmp", - "name":"title", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - }, - { - "id":"_2hlxbmp", - "name":"field_with_duplicate_id", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - }, - { - "id":"abcd_import", - "name":"new_field", - "type":"text" - } - ] - }, - { - "name": "new_import", - "schema": [ - { - "id":"abcd_import", - "name":"active", - "type":"bool" - } - ] - } - ]`, - deleteMissing: false, - expectError: false, - expectCollectionsCount: 8, - afterTestFunc: func(testApp *tests.TestApp, resultCollections []*models.Collection) { - expectedCollectionFields := map[string]int{ - "nologin": 1, - "demo1": 15, - "demo2": 2, - "demo3": 2, - "demo4": 11, - "new_import": 1, - } - for name, expectedCount := range expectedCollectionFields { - collection, err := testApp.Dao().FindCollectionByNameOrId(name) - if err != nil { - t.Fatal(err) - } - - if totalFields := len(collection.Schema.Fields()); totalFields != expectedCount { - t.Errorf("Expected %d %q fields, got %d", expectedCount, collection.Name, totalFields) - } - } - }, - }, - } - - for _, scenario := range scenarios { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - importedCollections := []*models.Collection{} - - // load data - loadErr := json.Unmarshal([]byte(scenario.jsonData), &importedCollections) - if loadErr != nil { - t.Fatalf("[%s] Failed to load data: %v", scenario.name, loadErr) - continue - } - - err := testApp.Dao().ImportCollections(importedCollections, scenario.deleteMissing, scenario.beforeRecordsSync) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("[%s] Expected hasErr to be %v, got %v (%v)", scenario.name, scenario.expectError, hasErr, err) - } - - // check collections count - collections := []*models.Collection{} - if err := testApp.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - if len(collections) != scenario.expectCollectionsCount { - t.Errorf("[%s] Expected %d collections, got %d", scenario.name, scenario.expectCollectionsCount, len(collections)) - } - - if scenario.afterTestFunc != nil { - scenario.afterTestFunc(testApp, collections) - } - } -} diff --git a/daos/external_auth.go b/daos/external_auth.go deleted file mode 100644 index 525c273c6960ede9e0fab0d200c34de36f82a1ec..0000000000000000000000000000000000000000 --- a/daos/external_auth.go +++ /dev/null @@ -1,91 +0,0 @@ -package daos - -import ( - "errors" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" -) - -// ExternalAuthQuery returns a new ExternalAuth select query. -func (dao *Dao) ExternalAuthQuery() *dbx.SelectQuery { - return dao.ModelQuery(&models.ExternalAuth{}) -} - -/// FindAllExternalAuthsByRecord returns all ExternalAuth models -/// linked to the provided auth record. -func (dao *Dao) FindAllExternalAuthsByRecord(authRecord *models.Record) ([]*models.ExternalAuth, error) { - auths := []*models.ExternalAuth{} - - err := dao.ExternalAuthQuery(). - AndWhere(dbx.HashExp{ - "collectionId": authRecord.Collection().Id, - "recordId": authRecord.Id, - }). - OrderBy("created ASC"). - All(&auths) - - if err != nil { - return nil, err - } - - return auths, nil -} - -// FindExternalAuthByProvider returns the first available -// ExternalAuth model for the specified provider and providerId. -func (dao *Dao) FindExternalAuthByProvider(provider, providerId string) (*models.ExternalAuth, error) { - model := &models.ExternalAuth{} - - err := dao.ExternalAuthQuery(). - AndWhere(dbx.Not(dbx.HashExp{"providerId": ""})). // exclude empty providerIds - AndWhere(dbx.HashExp{ - "provider": provider, - "providerId": providerId, - }). - Limit(1). - One(model) - - if err != nil { - return nil, err - } - - return model, nil -} - -// FindExternalAuthByRecordAndProvider returns the first available -// ExternalAuth model for the specified record data and provider. -func (dao *Dao) FindExternalAuthByRecordAndProvider(authRecord *models.Record, provider string) (*models.ExternalAuth, error) { - model := &models.ExternalAuth{} - - err := dao.ExternalAuthQuery(). - AndWhere(dbx.HashExp{ - "collectionId": authRecord.Collection().Id, - "recordId": authRecord.Id, - "provider": provider, - }). - Limit(1). - One(model) - - if err != nil { - return nil, err - } - - return model, nil -} - -// SaveExternalAuth upserts the provided ExternalAuth model. -func (dao *Dao) SaveExternalAuth(model *models.ExternalAuth) error { - // extra check the model data in case the provider's API response - // has changed and no longer returns the expected fields - if model.CollectionId == "" || model.RecordId == "" || model.Provider == "" || model.ProviderId == "" { - return errors.New("Missing required ExternalAuth fields.") - } - - return dao.Save(model) -} - -// DeleteExternalAuth deletes the provided ExternalAuth model. -func (dao *Dao) DeleteExternalAuth(model *models.ExternalAuth) error { - return dao.Delete(model) -} diff --git a/daos/external_auth_test.go b/daos/external_auth_test.go deleted file mode 100644 index f4d05c080dd04393bf73ef1d01d198b64e457ecf..0000000000000000000000000000000000000000 --- a/daos/external_auth_test.go +++ /dev/null @@ -1,189 +0,0 @@ -package daos_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestExternalAuthQuery(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - expected := "SELECT {{_externalAuths}}.* FROM `_externalAuths`" - - sql := app.Dao().ExternalAuthQuery().Build().SQL() - if sql != expected { - t.Errorf("Expected sql %s, got %s", expected, sql) - } -} - -func TestFindAllExternalAuthsByRecord(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - userId string - expectedCount int - }{ - {"oap640cot4yru2s", 0}, - {"4q1xlclmfloku33", 2}, - } - - for i, s := range scenarios { - record, err := app.Dao().FindRecordById("users", s.userId) - if err != nil { - t.Errorf("(%d) Unexpected record fetch error %v", i, err) - continue - } - - auths, err := app.Dao().FindAllExternalAuthsByRecord(record) - if err != nil { - t.Errorf("(%d) Unexpected auths fetch error %v", i, err) - continue - } - - if len(auths) != s.expectedCount { - t.Errorf("(%d) Expected %d auths, got %d", i, s.expectedCount, len(auths)) - } - - for _, auth := range auths { - if auth.RecordId != record.Id { - t.Errorf("(%d) Expected all auths to be linked to record id %s, got %v", i, record.Id, auth) - } - } - } -} - -func TestFindExternalAuthByProvider(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - provider string - providerId string - expectedId string - }{ - {"", "", ""}, - {"github", "", ""}, - {"github", "id1", ""}, - {"github", "id2", ""}, - {"google", "test123", "clmflokuq1xl341"}, - {"gitlab", "test123", "dlmflokuq1xl342"}, - } - - for i, s := range scenarios { - auth, err := app.Dao().FindExternalAuthByProvider(s.provider, s.providerId) - - hasErr := err != nil - expectErr := s.expectedId == "" - if hasErr != expectErr { - t.Errorf("(%d) Expected hasErr %v, got %v", i, expectErr, err) - continue - } - - if auth != nil && auth.Id != s.expectedId { - t.Errorf("(%d) Expected external auth with ID %s, got \n%v", i, s.expectedId, auth) - } - } -} - -func TestFindExternalAuthByRecordAndProvider(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - userId string - provider string - expectedId string - }{ - {"bgs820n361vj1qd", "google", ""}, - {"4q1xlclmfloku33", "google", "clmflokuq1xl341"}, - {"4q1xlclmfloku33", "gitlab", "dlmflokuq1xl342"}, - } - - for i, s := range scenarios { - record, err := app.Dao().FindRecordById("users", s.userId) - if err != nil { - t.Errorf("(%d) Unexpected record fetch error %v", i, err) - continue - } - - auth, err := app.Dao().FindExternalAuthByRecordAndProvider(record, s.provider) - - hasErr := err != nil - expectErr := s.expectedId == "" - if hasErr != expectErr { - t.Errorf("(%d) Expected hasErr %v, got %v", i, expectErr, err) - continue - } - - if auth != nil && auth.Id != s.expectedId { - t.Errorf("(%d) Expected external auth with ID %s, got \n%v", i, s.expectedId, auth) - } - } -} - -func TestSaveExternalAuth(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // save with empty provider data - emptyAuth := &models.ExternalAuth{} - if err := app.Dao().SaveExternalAuth(emptyAuth); err == nil { - t.Fatal("Expected error, got nil") - } - - auth := &models.ExternalAuth{ - RecordId: "o1y0dd0spd786md", - CollectionId: "v851q4r790rhknl", - Provider: "test", - ProviderId: "test_id", - } - - if err := app.Dao().SaveExternalAuth(auth); err != nil { - t.Fatal(err) - } - - // check if it was really saved - foundAuth, err := app.Dao().FindExternalAuthByProvider("test", "test_id") - if err != nil { - t.Fatal(err) - } - - if auth.Id != foundAuth.Id { - t.Fatalf("Expected ExternalAuth with id %s, got \n%v", auth.Id, foundAuth) - } -} - -func TestDeleteExternalAuth(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - record, err := app.Dao().FindRecordById("users", "4q1xlclmfloku33") - if err != nil { - t.Fatal(err) - } - - auths, err := app.Dao().FindAllExternalAuthsByRecord(record) - if err != nil { - t.Fatal(err) - } - - for _, auth := range auths { - if err := app.Dao().DeleteExternalAuth(auth); err != nil { - t.Fatalf("Failed to delete the ExternalAuth relation, got \n%v", err) - } - } - - // check if the relations were really deleted - newAuths, err := app.Dao().FindAllExternalAuthsByRecord(record) - if err != nil { - t.Fatal(err) - } - - if len(newAuths) != 0 { - t.Fatalf("Expected all record %s ExternalAuth relations to be deleted, got \n%v", record.Id, newAuths) - } -} diff --git a/daos/param.go b/daos/param.go deleted file mode 100644 index 23ba07dd497c534436dcaa7d8f2296a8b04981da..0000000000000000000000000000000000000000 --- a/daos/param.go +++ /dev/null @@ -1,73 +0,0 @@ -package daos - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" -) - -// ParamQuery returns a new Param select query. -func (dao *Dao) ParamQuery() *dbx.SelectQuery { - return dao.ModelQuery(&models.Param{}) -} - -// FindParamByKey finds the first Param model with the provided key. -func (dao *Dao) FindParamByKey(key string) (*models.Param, error) { - param := &models.Param{} - - err := dao.ParamQuery(). - AndWhere(dbx.HashExp{"key": key}). - Limit(1). - One(param) - - if err != nil { - return nil, err - } - - return param, nil -} - -// SaveParam creates or updates a Param model by the provided key-value pair. -// The value argument will be encoded as json string. -// -// If `optEncryptionKey` is provided it will encrypt the value before storing it. -func (dao *Dao) SaveParam(key string, value any, optEncryptionKey ...string) error { - param, _ := dao.FindParamByKey(key) - if param == nil { - param = &models.Param{Key: key} - } - - normalizedValue := value - - // encrypt if optEncryptionKey is set - if len(optEncryptionKey) > 0 && optEncryptionKey[0] != "" { - encoded, encodingErr := json.Marshal(value) - if encodingErr != nil { - return encodingErr - } - - encryptVal, encryptErr := security.Encrypt(encoded, optEncryptionKey[0]) - if encryptErr != nil { - return encryptErr - } - - normalizedValue = encryptVal - } - - encodedValue := types.JsonRaw{} - if err := encodedValue.Scan(normalizedValue); err != nil { - return err - } - - param.Value = encodedValue - - return dao.Save(param) -} - -// DeleteParam deletes the provided Param model. -func (dao *Dao) DeleteParam(param *models.Param) error { - return dao.Delete(param) -} diff --git a/daos/param_test.go b/daos/param_test.go deleted file mode 100644 index b364608584a1fde034f4e1ab9967b4bb4a012e10..0000000000000000000000000000000000000000 --- a/daos/param_test.go +++ /dev/null @@ -1,150 +0,0 @@ -package daos_test - -import ( - "encoding/json" - "testing" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestParamQuery(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - expected := "SELECT {{_params}}.* FROM `_params`" - - sql := app.Dao().ParamQuery().Build().SQL() - if sql != expected { - t.Errorf("Expected sql %s, got %s", expected, sql) - } -} - -func TestFindParamByKey(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - key string - expectError bool - }{ - {"", true}, - {"missing", true}, - {models.ParamAppSettings, false}, - } - - for i, scenario := range scenarios { - param, err := app.Dao().FindParamByKey(scenario.key) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if param != nil && param.Key != scenario.key { - t.Errorf("(%d) Expected param with identifier %s, got %v", i, scenario.key, param.Key) - } - } -} - -func TestSaveParam(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - key string - value any - }{ - {"", "demo"}, - {"test", nil}, - {"test", ""}, - {"test", 1}, - {"test", 123}, - {models.ParamAppSettings, map[string]any{"test": 123}}, - } - - for i, scenario := range scenarios { - err := app.Dao().SaveParam(scenario.key, scenario.value) - if err != nil { - t.Errorf("(%d) %v", i, err) - } - - jsonRaw := types.JsonRaw{} - jsonRaw.Scan(scenario.value) - encodedScenarioValue, err := jsonRaw.MarshalJSON() - if err != nil { - t.Errorf("(%d) Encoded error %v", i, err) - } - - // check if the param was really saved - param, _ := app.Dao().FindParamByKey(scenario.key) - encodedParamValue, err := param.Value.MarshalJSON() - if err != nil { - t.Errorf("(%d) Encoded error %v", i, err) - } - - if string(encodedParamValue) != string(encodedScenarioValue) { - t.Errorf("(%d) Expected the two values to be equal, got %v vs %v", i, string(encodedParamValue), string(encodedScenarioValue)) - } - } -} - -func TestSaveParamEncrypted(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - encryptionKey := security.RandomString(32) - data := map[string]int{"test": 123} - expected := map[string]int{} - - err := app.Dao().SaveParam("test", data, encryptionKey) - if err != nil { - t.Fatal(err) - } - - // check if the param was really saved - param, _ := app.Dao().FindParamByKey("test") - - // decrypt - decrypted, decryptErr := security.Decrypt(string(param.Value), encryptionKey) - if decryptErr != nil { - t.Fatal(decryptErr) - } - - // decode - decryptedDecodeErr := json.Unmarshal(decrypted, &expected) - if decryptedDecodeErr != nil { - t.Fatal(decryptedDecodeErr) - } - - // check if the decoded value is correct - if len(expected) != len(data) || expected["test"] != data["test"] { - t.Fatalf("Expected %v, got %v", expected, data) - } -} - -func TestDeleteParam(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // unsaved param - err1 := app.Dao().DeleteParam(&models.Param{}) - if err1 == nil { - t.Fatal("Expected error, got nil") - } - - // existing param - param, _ := app.Dao().FindParamByKey(models.ParamAppSettings) - err2 := app.Dao().DeleteParam(param) - if err2 != nil { - t.Fatalf("Expected nil, got error %v", err2) - } - - // check if it was really deleted - paramCheck, _ := app.Dao().FindParamByKey(models.ParamAppSettings) - if paramCheck != nil { - t.Fatalf("Expected param to be deleted, got %v", paramCheck) - } -} diff --git a/daos/record.go b/daos/record.go deleted file mode 100644 index 1dbbb1bbdf639f0a40086642173c26d823f4e96d..0000000000000000000000000000000000000000 --- a/daos/record.go +++ /dev/null @@ -1,606 +0,0 @@ -package daos - -import ( - "errors" - "fmt" - "strings" - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/inflector" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" - "github.com/spf13/cast" -) - -// RecordQuery returns a new Record select query. -func (dao *Dao) RecordQuery(collection *models.Collection) *dbx.SelectQuery { - tableName := collection.Name - selectCols := fmt.Sprintf("%s.*", dao.DB().QuoteSimpleColumnName(tableName)) - - return dao.DB().Select(selectCols).From(tableName) -} - -// FindRecordById finds the Record model by its id. -func (dao *Dao) FindRecordById( - collectionNameOrId string, - recordId string, - optFilters ...func(q *dbx.SelectQuery) error, -) (*models.Record, error) { - collection, err := dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil { - return nil, err - } - - tableName := collection.Name - - query := dao.RecordQuery(collection). - AndWhere(dbx.HashExp{tableName + ".id": recordId}) - - for _, filter := range optFilters { - if filter == nil { - continue - } - if err := filter(query); err != nil { - return nil, err - } - } - - row := dbx.NullStringMap{} - if err := query.Limit(1).One(row); err != nil { - return nil, err - } - - return models.NewRecordFromNullStringMap(collection, row), nil -} - -// FindRecordsByIds finds all Record models by the provided ids. -// If no records are found, returns an empty slice. -func (dao *Dao) FindRecordsByIds( - collectionNameOrId string, - recordIds []string, - optFilters ...func(q *dbx.SelectQuery) error, -) ([]*models.Record, error) { - collection, err := dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil { - return nil, err - } - - query := dao.RecordQuery(collection). - AndWhere(dbx.In( - collection.Name+".id", - list.ToInterfaceSlice(recordIds)..., - )) - - for _, filter := range optFilters { - if filter == nil { - continue - } - if err := filter(query); err != nil { - return nil, err - } - } - - rows := []dbx.NullStringMap{} - if err := query.All(&rows); err != nil { - return nil, err - } - - return models.NewRecordsFromNullStringMaps(collection, rows), nil -} - -// FindRecordsByExpr finds all records by the specified db expression. -// -// Returns all collection records if no expressions are provided. -// -// Returns an empty slice if no records are found. -// -// Example: -// expr1 := dbx.HashExp{"email": "test@example.com"} -// expr2 := dbx.NewExp("LOWER(username) = {:username}", dbx.Params{"username": "test"}) -// dao.FindRecordsByExpr("example", expr1, expr2) -func (dao *Dao) FindRecordsByExpr(collectionNameOrId string, exprs ...dbx.Expression) ([]*models.Record, error) { - collection, err := dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil { - return nil, err - } - - query := dao.RecordQuery(collection) - - // add only the non-nil expressions - for _, expr := range exprs { - if expr != nil { - query.AndWhere(expr) - } - } - - rows := []dbx.NullStringMap{} - - if err := query.All(&rows); err != nil { - return nil, err - } - - return models.NewRecordsFromNullStringMaps(collection, rows), nil -} - -// FindFirstRecordByData returns the first found record matching -// the provided key-value pair. -func (dao *Dao) FindFirstRecordByData(collectionNameOrId string, key string, value any) (*models.Record, error) { - collection, err := dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil { - return nil, err - } - - row := dbx.NullStringMap{} - - err = dao.RecordQuery(collection). - AndWhere(dbx.HashExp{inflector.Columnify(key): value}). - Limit(1). - One(row) - - if err != nil { - return nil, err - } - - return models.NewRecordFromNullStringMap(collection, row), nil -} - -// IsRecordValueUnique checks if the provided key-value pair is a unique Record value. -// -// For correctness, if the collection is "auth" and the key is "username", -// the unique check will be case insensitive. -// -// NB! Array values (eg. from multiple select fields) are matched -// as a serialized json strings (eg. `["a","b"]`), so the value uniqueness -// depends on the elements order. Or in other words the following values -// are considered different: `[]string{"a","b"}` and `[]string{"b","a"}` -func (dao *Dao) IsRecordValueUnique( - collectionNameOrId string, - key string, - value any, - excludeIds ...string, -) bool { - collection, err := dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil { - return false - } - - var expr dbx.Expression - if collection.IsAuth() && key == schema.FieldNameUsername { - expr = dbx.NewExp("LOWER([["+schema.FieldNameUsername+"]])={:username}", dbx.Params{ - "username": strings.ToLower(cast.ToString(value)), - }) - } else { - var normalizedVal any - switch val := value.(type) { - case []string: - normalizedVal = append(types.JsonArray{}, list.ToInterfaceSlice(val)...) - case []any: - normalizedVal = append(types.JsonArray{}, val...) - default: - normalizedVal = val - } - - expr = dbx.HashExp{inflector.Columnify(key): normalizedVal} - } - - query := dao.RecordQuery(collection). - Select("count(*)"). - AndWhere(expr). - Limit(1) - - if len(excludeIds) > 0 { - uniqueExcludeIds := list.NonzeroUniques(excludeIds) - query.AndWhere(dbx.NotIn(collection.Name+".id", list.ToInterfaceSlice(uniqueExcludeIds)...)) - } - - var exists bool - - return query.Row(&exists) == nil && !exists -} - -// FindAuthRecordByToken finds the auth record associated with the provided JWT token. -// -// Returns an error if the JWT token is invalid, expired or not associated to an auth collection record. -func (dao *Dao) FindAuthRecordByToken(token string, baseTokenKey string) (*models.Record, error) { - unverifiedClaims, err := security.ParseUnverifiedJWT(token) - if err != nil { - return nil, err - } - - // check required claims - id, _ := unverifiedClaims["id"].(string) - collectionId, _ := unverifiedClaims["collectionId"].(string) - if id == "" || collectionId == "" { - return nil, errors.New("Missing or invalid token claims.") - } - - record, err := dao.FindRecordById(collectionId, id) - if err != nil { - return nil, err - } - - if !record.Collection().IsAuth() { - return nil, errors.New("The token is not associated to an auth collection record.") - } - - verificationKey := record.TokenKey() + baseTokenKey - - // verify token signature - if _, err := security.ParseJWT(token, verificationKey); err != nil { - return nil, err - } - - return record, nil -} - -// FindAuthRecordByEmail finds the auth record associated with the provided email. -// -// Returns an error if it is not an auth collection or the record is not found. -func (dao *Dao) FindAuthRecordByEmail(collectionNameOrId string, email string) (*models.Record, error) { - collection, err := dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil || !collection.IsAuth() { - return nil, errors.New("Missing or not an auth collection.") - } - - row := dbx.NullStringMap{} - - err = dao.RecordQuery(collection). - AndWhere(dbx.HashExp{schema.FieldNameEmail: email}). - Limit(1). - One(row) - - if err != nil { - return nil, err - } - - return models.NewRecordFromNullStringMap(collection, row), nil -} - -// FindAuthRecordByUsername finds the auth record associated with the provided username (case insensitive). -// -// Returns an error if it is not an auth collection or the record is not found. -func (dao *Dao) FindAuthRecordByUsername(collectionNameOrId string, username string) (*models.Record, error) { - collection, err := dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil || !collection.IsAuth() { - return nil, errors.New("Missing or not an auth collection.") - } - - row := dbx.NullStringMap{} - - err = dao.RecordQuery(collection). - AndWhere(dbx.NewExp("LOWER([["+schema.FieldNameUsername+"]])={:username}", dbx.Params{ - "username": strings.ToLower(username), - })). - Limit(1). - One(row) - - if err != nil { - return nil, err - } - - return models.NewRecordFromNullStringMap(collection, row), nil -} - -// SuggestUniqueAuthRecordUsername checks if the provided username is unique -// and return a new "unique" username with appended random numeric part -// (eg. "existingName" -> "existingName583"). -// -// The same username will be returned if the provided string is already unique. -func (dao *Dao) SuggestUniqueAuthRecordUsername( - collectionNameOrId string, - baseUsername string, - excludeIds ...string, -) string { - username := baseUsername - - for i := 0; i < 10; i++ { // max 10 attempts - isUnique := dao.IsRecordValueUnique( - collectionNameOrId, - schema.FieldNameUsername, - username, - excludeIds..., - ) - if isUnique { - break // already unique - } - username = baseUsername + security.RandomStringWithAlphabet(3+i, "123456789") - } - - return username -} - -// SaveRecord upserts the provided Record model. -func (dao *Dao) SaveRecord(record *models.Record) error { - if record.Collection().IsAuth() { - if record.Username() == "" { - return errors.New("unable to save auth record without username") - } - - // Cross-check that the auth record id is unique for all auth collections. - // This is to make sure that the filter `@request.auth.id` always returns a unique id. - authCollections, err := dao.FindCollectionsByType(models.CollectionTypeAuth) - if err != nil { - return fmt.Errorf("unable to fetch the auth collections for cross-id unique check: %w", err) - } - for _, collection := range authCollections { - if record.Collection().Id == collection.Id { - continue // skip current collection (sqlite will do the check for us) - } - isUnique := dao.IsRecordValueUnique(collection.Id, schema.FieldNameId, record.Id) - if !isUnique { - return errors.New("the auth record ID must be unique across all auth collections") - } - } - } - - return dao.Save(record) -} - -// DeleteRecord deletes the provided Record model. -// -// This method will also cascade the delete operation to all linked -// relational records (delete or set to NULL, depending on the rel settings). -// -// The delete operation may fail if the record is part of a required -// reference in another record (aka. cannot be deleted or set to NULL). -func (dao *Dao) DeleteRecord(record *models.Record) error { - const maxAttempts = 6 - - attempts := 1 - -Retry: - err := dao.deleteRecord(record, attempts) - if err != nil && - attempts <= maxAttempts && - // note: we are checking the error msg so that we can handle both the cgo and noncgo errors - strings.Contains(err.Error(), "database is locked") { - time.Sleep(time.Duration(300*attempts) * time.Millisecond) - attempts++ - goto Retry - } - - return err -} - -func (dao *Dao) deleteRecord(record *models.Record, attempts int) error { - return dao.RunInTransaction(func(txDao *Dao) error { - // unset transaction dao before hook on retry to avoid - // triggering the same before callbacks multiple times - if attempts > 1 { - oldBeforeCreateFunc := txDao.BeforeCreateFunc - oldBeforeUpdateFunc := txDao.BeforeUpdateFunc - oldBeforeDeleteFunc := txDao.BeforeDeleteFunc - txDao.BeforeCreateFunc = nil - txDao.BeforeUpdateFunc = nil - txDao.BeforeDeleteFunc = nil - defer func() { - if txDao != nil { - txDao.BeforeCreateFunc = oldBeforeCreateFunc - txDao.BeforeUpdateFunc = oldBeforeUpdateFunc - txDao.BeforeDeleteFunc = oldBeforeDeleteFunc - } - }() - } - - // check for references - refs, err := txDao.FindCollectionReferences(record.Collection()) - if err != nil { - return err - } - - // check if related records has to be deleted (if `CascadeDelete` is set) - // OR - // just unset the record id from any relation field values (if they are not required) - for refCollection, fields := range refs { - for _, field := range fields { - options, _ := field.Options.(*schema.RelationOptions) - - rows := []dbx.NullStringMap{} - - // fetch all referenced records - recordTableName := inflector.Columnify(refCollection.Name) - fieldColumnName := inflector.Columnify(field.Name) - err := txDao.RecordQuery(refCollection). - Distinct(true). - LeftJoin(fmt.Sprintf( - // note: the case is used to normalize value access for single and multiple relations. - `json_each(CASE WHEN json_valid([[%s]]) THEN [[%s]] ELSE json_array([[%s]]) END) as {{__je__}}`, - fieldColumnName, fieldColumnName, fieldColumnName, - ), nil). - AndWhere(dbx.Not(dbx.HashExp{recordTableName + ".id": record.Id})). - AndWhere(dbx.HashExp{"__je__.value": record.Id}). - All(&rows) - if err != nil { - return err - } - - refRecords := models.NewRecordsFromNullStringMaps(refCollection, rows) - for _, refRecord := range refRecords { - ids := refRecord.GetStringSlice(field.Name) - - // unset the record id - for i := len(ids) - 1; i >= 0; i-- { - if ids[i] == record.Id { - ids = append(ids[:i], ids[i+1:]...) - break - } - } - - // cascade delete the reference - // (only if there are no other active references in case of multiple select) - if options.CascadeDelete && len(ids) == 0 { - if err := txDao.DeleteRecord(refRecord); err != nil { - return err - } - // no further action are needed (the reference is deleted) - continue - } - - if field.Required && len(ids) == 0 { - return fmt.Errorf("The record cannot be deleted because it is part of a required reference in record %s (%s collection).", refRecord.Id, refCollection.Name) - } - - // save the reference changes - refRecord.Set(field.Name, field.PrepareValue(ids)) - if err := txDao.SaveRecord(refRecord); err != nil { - return err - } - } - } - } - - // delete linked external auths - if record.Collection().IsAuth() { - _, err = txDao.DB().Delete((&models.ExternalAuth{}).TableName(), dbx.HashExp{ - "collectionId": record.Collection().Id, - "recordId": record.Id, - }).Execute() - if err != nil { - return err - } - } - - return txDao.Delete(record) - }) -} - -// SyncRecordTableSchema compares the two provided collections -// and applies the necessary related record table changes. -// -// If `oldCollection` is null, then only `newCollection` is used to create the record table. -func (dao *Dao) SyncRecordTableSchema(newCollection *models.Collection, oldCollection *models.Collection) error { - // create - if oldCollection == nil { - cols := map[string]string{ - schema.FieldNameId: "TEXT PRIMARY KEY", - schema.FieldNameCreated: "TEXT DEFAULT '' NOT NULL", - schema.FieldNameUpdated: "TEXT DEFAULT '' NOT NULL", - } - - if newCollection.IsAuth() { - cols[schema.FieldNameUsername] = "TEXT NOT NULL" - cols[schema.FieldNameEmail] = "TEXT DEFAULT '' NOT NULL" - cols[schema.FieldNameEmailVisibility] = "BOOLEAN DEFAULT FALSE NOT NULL" - cols[schema.FieldNameVerified] = "BOOLEAN DEFAULT FALSE NOT NULL" - cols[schema.FieldNameTokenKey] = "TEXT NOT NULL" - cols[schema.FieldNamePasswordHash] = "TEXT NOT NULL" - cols[schema.FieldNameLastResetSentAt] = "TEXT DEFAULT '' NOT NULL" - cols[schema.FieldNameLastVerificationSentAt] = "TEXT DEFAULT '' NOT NULL" - } - - // ensure that the new collection has an id - if !newCollection.HasId() { - newCollection.RefreshId() - newCollection.MarkAsNew() - } - - tableName := newCollection.Name - - // add schema field definitions - for _, field := range newCollection.Schema.Fields() { - cols[field.Name] = field.ColDefinition() - } - - // create table - if _, err := dao.DB().CreateTable(tableName, cols).Execute(); err != nil { - return err - } - - // add named index on the base `created` column - if _, err := dao.DB().CreateIndex(tableName, "_"+newCollection.Id+"_created_idx", "created").Execute(); err != nil { - return err - } - - // add named unique index on the email and tokenKey columns - if newCollection.IsAuth() { - _, err := dao.DB().NewQuery(fmt.Sprintf( - ` - CREATE UNIQUE INDEX _%s_username_idx ON {{%s}} ([[username]]); - CREATE UNIQUE INDEX _%s_email_idx ON {{%s}} ([[email]]) WHERE [[email]] != ''; - CREATE UNIQUE INDEX _%s_tokenKey_idx ON {{%s}} ([[tokenKey]]); - `, - newCollection.Id, tableName, - newCollection.Id, tableName, - newCollection.Id, tableName, - )).Execute() - if err != nil { - return err - } - } - - return nil - } - - // update - return dao.RunInTransaction(func(txDao *Dao) error { - oldTableName := oldCollection.Name - newTableName := newCollection.Name - oldSchema := oldCollection.Schema - newSchema := newCollection.Schema - - // check for renamed table - if !strings.EqualFold(oldTableName, newTableName) { - _, err := txDao.DB().RenameTable(oldTableName, newTableName).Execute() - if err != nil { - return err - } - } - - // check for deleted columns - for _, oldField := range oldSchema.Fields() { - if f := newSchema.GetFieldById(oldField.Id); f != nil { - continue // exist - } - - _, err := txDao.DB().DropColumn(newTableName, oldField.Name).Execute() - if err != nil { - return err - } - } - - // check for new or renamed columns - toRename := map[string]string{} - for _, field := range newSchema.Fields() { - oldField := oldSchema.GetFieldById(field.Id) - // Note: - // We are using a temporary column name when adding or renaming columns - // to ensure that there are no name collisions in case there is - // names switch/reuse of existing columns (eg. name, title -> title, name). - // This way we are always doing 1 more rename operation but it provides better dev experience. - - if oldField == nil { - tempName := field.Name + security.PseudorandomString(5) - toRename[tempName] = field.Name - - // add - _, err := txDao.DB().AddColumn(newTableName, tempName, field.ColDefinition()).Execute() - if err != nil { - return err - } - } else if oldField.Name != field.Name { - tempName := field.Name + security.PseudorandomString(5) - toRename[tempName] = field.Name - - // rename - _, err := txDao.DB().RenameColumn(newTableName, oldField.Name, tempName).Execute() - if err != nil { - return err - } - } - } - - // set the actual columns name - for tempName, actualName := range toRename { - _, err := txDao.DB().RenameColumn(newTableName, tempName, actualName).Execute() - if err != nil { - return err - } - } - - return nil - }) -} diff --git a/daos/record_expand.go b/daos/record_expand.go deleted file mode 100644 index b7e3c7e40fa4bb4dbd33c7032047b58064efc8d9..0000000000000000000000000000000000000000 --- a/daos/record_expand.go +++ /dev/null @@ -1,274 +0,0 @@ -package daos - -import ( - "errors" - "fmt" - "regexp" - "strings" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/inflector" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" -) - -// MaxExpandDepth specifies the max allowed nested expand depth path. -const MaxExpandDepth = 6 - -// ExpandFetchFunc defines the function that is used to fetch the expanded relation records. -type ExpandFetchFunc func(relCollection *models.Collection, relIds []string) ([]*models.Record, error) - -// ExpandRecord expands the relations of a single Record model. -// -// Returns a map with the failed expand parameters and their errors. -func (dao *Dao) ExpandRecord(record *models.Record, expands []string, fetchFunc ExpandFetchFunc) map[string]error { - return dao.ExpandRecords([]*models.Record{record}, expands, fetchFunc) -} - -// ExpandRecords expands the relations of the provided Record models list. -// -// Returns a map with the failed expand parameters and their errors. -func (dao *Dao) ExpandRecords(records []*models.Record, expands []string, fetchFunc ExpandFetchFunc) map[string]error { - normalized := normalizeExpands(expands) - - failed := map[string]error{} - - for _, expand := range normalized { - if err := dao.expandRecords(records, expand, fetchFunc, 1); err != nil { - failed[expand] = err - } - } - - return failed -} - -var indirectExpandRegex = regexp.MustCompile(`^(\w+)\((\w+)\)$`) - -// notes: -// - fetchFunc must be non-nil func -// - all records are expected to be from the same collection -// - if MaxExpandDepth is reached, the function returns nil ignoring the remaining expand path -// - indirect expands are supported only with single relation fields -func (dao *Dao) expandRecords(records []*models.Record, expandPath string, fetchFunc ExpandFetchFunc, recursionLevel int) error { - if fetchFunc == nil { - return errors.New("Relation records fetchFunc is not set.") - } - - if expandPath == "" || recursionLevel > MaxExpandDepth || len(records) == 0 { - return nil - } - - mainCollection := records[0].Collection() - - var relField *schema.SchemaField - var relFieldOptions *schema.RelationOptions - var relCollection *models.Collection - - parts := strings.SplitN(expandPath, ".", 2) - matches := indirectExpandRegex.FindStringSubmatch(parts[0]) - - if len(matches) == 3 { - indirectRel, _ := dao.FindCollectionByNameOrId(matches[1]) - if indirectRel == nil { - return fmt.Errorf("Couldn't find indirect related collection %q.", matches[1]) - } - - indirectRelField := indirectRel.Schema.GetFieldByName(matches[2]) - if indirectRelField == nil || indirectRelField.Type != schema.FieldTypeRelation { - return fmt.Errorf("Couldn't find indirect relation field %q in collection %q.", matches[2], mainCollection.Name) - } - - indirectRelField.InitOptions() - indirectRelFieldOptions, _ := indirectRelField.Options.(*schema.RelationOptions) - if indirectRelFieldOptions == nil || indirectRelFieldOptions.CollectionId != mainCollection.Id { - return fmt.Errorf("Invalid indirect relation field path %q.", parts[0]) - } - if indirectRelFieldOptions.MaxSelect != nil && *indirectRelFieldOptions.MaxSelect != 1 { - // for now don't allow multi-relation indirect fields expand - // due to eventual poor query performance with large data sets. - return fmt.Errorf("Multi-relation fields cannot be indirectly expanded in %q.", parts[0]) - } - - recordIds := make([]any, len(records)) - for i, record := range records { - recordIds[i] = record.Id - } - - indirectRecords, err := dao.FindRecordsByExpr( - indirectRel.Id, - dbx.In(inflector.Columnify(matches[2]), recordIds...), - ) - if err != nil { - return err - } - mappedIndirectRecordIds := make(map[string][]string, len(indirectRecords)) - for _, indirectRecord := range indirectRecords { - recId := indirectRecord.GetString(matches[2]) - if recId != "" { - mappedIndirectRecordIds[recId] = append(mappedIndirectRecordIds[recId], indirectRecord.Id) - } - } - - // add the indirect relation ids as a new relation field value - for _, record := range records { - relIds, ok := mappedIndirectRecordIds[record.Id] - if ok && len(relIds) > 0 { - record.Set(parts[0], relIds) - } - } - - relFieldOptions = &schema.RelationOptions{ - MaxSelect: nil, - CollectionId: indirectRel.Id, - } - if indirectRelField.Unique { - relFieldOptions.MaxSelect = types.Pointer(1) - } - // indirect relation - relField = &schema.SchemaField{ - Id: "indirect_" + security.PseudorandomString(5), - Type: schema.FieldTypeRelation, - Name: parts[0], - Options: relFieldOptions, - } - relCollection = indirectRel - } else { - // direct relation - relField = mainCollection.Schema.GetFieldByName(parts[0]) - if relField == nil || relField.Type != schema.FieldTypeRelation { - return fmt.Errorf("Couldn't find relation field %q in collection %q.", parts[0], mainCollection.Name) - } - relField.InitOptions() - relFieldOptions, _ = relField.Options.(*schema.RelationOptions) - if relFieldOptions == nil { - return fmt.Errorf("Couldn't initialize the options of relation field %q.", parts[0]) - } - - relCollection, _ = dao.FindCollectionByNameOrId(relFieldOptions.CollectionId) - if relCollection == nil { - return fmt.Errorf("Couldn't find related collection %q.", relFieldOptions.CollectionId) - } - } - - // --------------------------------------------------------------- - - // extract the id of the relations to expand - relIds := make([]string, 0, len(records)) - for _, record := range records { - relIds = append(relIds, record.GetStringSlice(relField.Name)...) - } - - // fetch rels - rels, relsErr := fetchFunc(relCollection, relIds) - if relsErr != nil { - return relsErr - } - - // expand nested fields - if len(parts) > 1 { - err := dao.expandRecords(rels, parts[1], fetchFunc, recursionLevel+1) - if err != nil { - return err - } - } - - // reindex with the rel id - indexedRels := map[string]*models.Record{} - for _, rel := range rels { - indexedRels[rel.GetId()] = rel - } - - for _, model := range records { - relIds := model.GetStringSlice(relField.Name) - - validRels := make([]*models.Record, 0, len(relIds)) - for _, id := range relIds { - if rel, ok := indexedRels[id]; ok { - validRels = append(validRels, rel) - } - } - - if len(validRels) == 0 { - continue // no valid relations - } - - expandData := model.Expand() - - // normalize access to the previously expanded rel records (if any) - var oldExpandedRels []*models.Record - switch v := expandData[relField.Name].(type) { - case nil: - // no old expands - case *models.Record: - oldExpandedRels = []*models.Record{v} - case []*models.Record: - oldExpandedRels = v - } - - // merge expands - for _, oldExpandedRel := range oldExpandedRels { - // find a matching rel record - for _, rel := range validRels { - if rel.Id != oldExpandedRel.Id { - continue - } - - oldRelExpand := oldExpandedRel.Expand() - newRelExpand := rel.Expand() - for k, v := range oldRelExpand { - newRelExpand[k] = v - } - rel.SetExpand(newRelExpand) - } - } - - // update the expanded data - if relFieldOptions.MaxSelect != nil && *relFieldOptions.MaxSelect <= 1 { - expandData[relField.Name] = validRels[0] - } else { - expandData[relField.Name] = validRels - } - - model.SetExpand(expandData) - } - - return nil -} - -// normalizeExpands normalizes expand strings and merges self containing paths -// (eg. ["a.b.c", "a.b", " test ", " ", "test"] -> ["a.b.c", "test"]). -func normalizeExpands(paths []string) []string { - // normalize paths - normalized := make([]string, 0, len(paths)) - for _, p := range paths { - p = strings.ReplaceAll(p, " ", "") // replace spaces - p = strings.Trim(p, ".") // trim incomplete paths - if p != "" { - normalized = append(normalized, p) - } - } - - // merge containing paths - result := make([]string, 0, len(normalized)) - for i, p1 := range normalized { - var skip bool - for j, p2 := range normalized { - if i == j { - continue - } - if strings.HasPrefix(p2, p1+".") { - // skip because there is more detailed expand path - skip = true - break - } - } - if !skip { - result = append(result, p1) - } - } - - return list.ToUniqueStringSlice(result) -} diff --git a/daos/record_expand_test.go b/daos/record_expand_test.go deleted file mode 100644 index d5059bd21d039d1e901f14cdc735a55a147f0b3b..0000000000000000000000000000000000000000 --- a/daos/record_expand_test.go +++ /dev/null @@ -1,348 +0,0 @@ -package daos_test - -import ( - "encoding/json" - "errors" - "strings" - "testing" - - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/list" -) - -func TestExpandRecords(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - testName string - collectionIdOrName string - recordIds []string - expands []string - fetchFunc daos.ExpandFetchFunc - expectExpandProps int - expectExpandFailures int - }{ - { - "empty records", - "", - []string{}, - []string{"self_rel_one", "self_rel_many.self_rel_one"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 0, - }, - { - "empty expand", - "demo4", - []string{"i9naidtvr6qsgb4", "qzaqccwrmva4o1n"}, - []string{}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 0, - }, - { - "empty fetchFunc", - "demo4", - []string{"i9naidtvr6qsgb4", "qzaqccwrmva4o1n"}, - []string{"self_rel_one", "self_rel_many.self_rel_one"}, - nil, - 0, - 2, - }, - { - "fetchFunc with error", - "demo4", - []string{"i9naidtvr6qsgb4", "qzaqccwrmva4o1n"}, - []string{"self_rel_one", "self_rel_many.self_rel_one"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return nil, errors.New("test error") - }, - 0, - 2, - }, - { - "missing relation field", - "demo4", - []string{"i9naidtvr6qsgb4", "qzaqccwrmva4o1n"}, - []string{"missing"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 1, - }, - { - "existing, but non-relation type field", - "demo4", - []string{"i9naidtvr6qsgb4", "qzaqccwrmva4o1n"}, - []string{"title"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 1, - }, - { - "invalid/missing second level expand", - "demo4", - []string{"i9naidtvr6qsgb4", "qzaqccwrmva4o1n"}, - []string{"rel_one_no_cascade.title"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 1, - }, - { - "expand normalizations", - "demo4", - []string{"i9naidtvr6qsgb4", "qzaqccwrmva4o1n"}, - []string{ - "self_rel_one", "self_rel_many.self_rel_many.rel_one_no_cascade", - "self_rel_many.self_rel_one.self_rel_many.self_rel_one.rel_one_no_cascade", - "self_rel_many", "self_rel_many.", - " self_rel_many ", "", - }, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 9, - 0, - }, - { - "single expand", - "users", - []string{ - "bgs820n361vj1qd", - "4q1xlclmfloku33", - "oap640cot4yru2s", // no rels - }, - []string{"rel"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 2, - 0, - }, - { - "maxExpandDepth reached", - "demo4", - []string{"qzaqccwrmva4o1n"}, - []string{"self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 6, - 0, - }, - { - "simple indirect expand", - "demo3", - []string{"lcl9d87w22ml6jy"}, - []string{"demo4(rel_one_no_cascade_required)"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 1, - 0, - }, - { - "nested indirect expand", - "demo3", - []string{"lcl9d87w22ml6jy"}, - []string{ - "demo4(rel_one_no_cascade_required).self_rel_many.self_rel_many.self_rel_one", - }, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 5, - 0, - }, - } - - for _, s := range scenarios { - ids := list.ToUniqueStringSlice(s.recordIds) - records, _ := app.Dao().FindRecordsByIds(s.collectionIdOrName, ids) - failed := app.Dao().ExpandRecords(records, s.expands, s.fetchFunc) - - if len(failed) != s.expectExpandFailures { - t.Errorf("[%s] Expected %d failures, got %d: \n%v", s.testName, s.expectExpandFailures, len(failed), failed) - } - - encoded, _ := json.Marshal(records) - encodedStr := string(encoded) - totalExpandProps := strings.Count(encodedStr, schema.FieldNameExpand) - - if s.expectExpandProps != totalExpandProps { - t.Errorf("[%s] Expected %d expand props, got %d: \n%v", s.testName, s.expectExpandProps, totalExpandProps, encodedStr) - } - } -} - -func TestExpandRecord(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - testName string - collectionIdOrName string - recordId string - expands []string - fetchFunc daos.ExpandFetchFunc - expectExpandProps int - expectExpandFailures int - }{ - { - "empty expand", - "demo4", - "i9naidtvr6qsgb4", - []string{}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 0, - }, - { - "empty fetchFunc", - "demo4", - "i9naidtvr6qsgb4", - []string{"self_rel_one", "self_rel_many.self_rel_one"}, - nil, - 0, - 2, - }, - { - "fetchFunc with error", - "demo4", - "i9naidtvr6qsgb4", - []string{"self_rel_one", "self_rel_many.self_rel_one"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return nil, errors.New("test error") - }, - 0, - 2, - }, - { - "missing relation field", - "demo4", - "i9naidtvr6qsgb4", - []string{"missing"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 1, - }, - { - "existing, but non-relation type field", - "demo4", - "i9naidtvr6qsgb4", - []string{"title"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 1, - }, - { - "invalid/missing second level expand", - "demo4", - "qzaqccwrmva4o1n", - []string{"rel_one_no_cascade.title"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 1, - }, - { - "expand normalizations", - "demo4", - "qzaqccwrmva4o1n", - []string{ - "self_rel_one", "self_rel_many.self_rel_many.rel_one_no_cascade", - "self_rel_many.self_rel_one.self_rel_many.self_rel_one.rel_one_no_cascade", - "self_rel_many", "self_rel_many.", - " self_rel_many ", "", - }, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 8, - 0, - }, - { - "no rels to expand", - "users", - "oap640cot4yru2s", - []string{"rel"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 0, - 0, - }, - { - "maxExpandDepth reached", - "demo4", - "qzaqccwrmva4o1n", - []string{"self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many.self_rel_many"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 6, - 0, - }, - { - "simple indirect expand", - "demo3", - "lcl9d87w22ml6jy", - []string{"demo4(rel_one_no_cascade_required)"}, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 1, - 0, - }, - { - "nested indirect expand", - "demo3", - "lcl9d87w22ml6jy", - []string{ - "demo4(rel_one_no_cascade_required).self_rel_many.self_rel_many.self_rel_one", - }, - func(c *models.Collection, ids []string) ([]*models.Record, error) { - return app.Dao().FindRecordsByIds(c.Id, ids, nil) - }, - 5, - 0, - }, - } - - for _, s := range scenarios { - record, _ := app.Dao().FindRecordById(s.collectionIdOrName, s.recordId) - failed := app.Dao().ExpandRecord(record, s.expands, s.fetchFunc) - - if len(failed) != s.expectExpandFailures { - t.Errorf("[%s] Expected %d failures, got %d: \n%v", s.testName, s.expectExpandFailures, len(failed), failed) - } - - encoded, _ := json.Marshal(record) - encodedStr := string(encoded) - totalExpandProps := strings.Count(encodedStr, schema.FieldNameExpand) - - if s.expectExpandProps != totalExpandProps { - t.Errorf("[%s] Expected %d expand props, got %d: \n%v", s.testName, s.expectExpandProps, totalExpandProps, encodedStr) - } - } -} diff --git a/daos/record_test.go b/daos/record_test.go deleted file mode 100644 index f21004d2cc452f40ca52d200613b82816c55d432..0000000000000000000000000000000000000000 --- a/daos/record_test.go +++ /dev/null @@ -1,754 +0,0 @@ -package daos_test - -import ( - "errors" - "fmt" - "regexp" - "strings" - "testing" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/list" -) - -func TestRecordQuery(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo1") - if err != nil { - t.Fatal(err) - } - - expected := fmt.Sprintf("SELECT `%s`.* FROM `%s`", collection.Name, collection.Name) - - sql := app.Dao().RecordQuery(collection).Build().SQL() - if sql != expected { - t.Errorf("Expected sql %s, got %s", expected, sql) - } -} - -func TestFindRecordById(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionIdOrName string - id string - filter1 func(q *dbx.SelectQuery) error - filter2 func(q *dbx.SelectQuery) error - expectError bool - }{ - {"demo2", "missing", nil, nil, true}, - {"missing", "0yxhwia2amd8gec", nil, nil, true}, - {"demo2", "0yxhwia2amd8gec", nil, nil, false}, - {"demo2", "0yxhwia2amd8gec", func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"title": "missing"}) - return nil - }, nil, true}, - {"demo2", "0yxhwia2amd8gec", func(q *dbx.SelectQuery) error { - return errors.New("test error") - }, nil, true}, - {"demo2", "0yxhwia2amd8gec", func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"title": "test3"}) - return nil - }, nil, false}, - {"demo2", "0yxhwia2amd8gec", func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"title": "test3"}) - return nil - }, func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"active": false}) - return nil - }, true}, - {"sz5l5z67tg7gku0", "0yxhwia2amd8gec", func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"title": "test3"}) - return nil - }, func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"active": true}) - return nil - }, false}, - } - - for i, scenario := range scenarios { - record, err := app.Dao().FindRecordById( - scenario.collectionIdOrName, - scenario.id, - scenario.filter1, - scenario.filter2, - ) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if record != nil && record.Id != scenario.id { - t.Errorf("(%d) Expected record with id %s, got %s", i, scenario.id, record.Id) - } - } -} - -func TestFindRecordsByIds(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionIdOrName string - ids []string - filter1 func(q *dbx.SelectQuery) error - filter2 func(q *dbx.SelectQuery) error - expectTotal int - expectError bool - }{ - {"demo2", []string{}, nil, nil, 0, false}, - {"demo2", []string{""}, nil, nil, 0, false}, - {"demo2", []string{"missing"}, nil, nil, 0, false}, - {"missing", []string{"0yxhwia2amd8gec"}, nil, nil, 0, true}, - {"demo2", []string{"0yxhwia2amd8gec"}, nil, nil, 1, false}, - {"sz5l5z67tg7gku0", []string{"0yxhwia2amd8gec"}, nil, nil, 1, false}, - { - "demo2", - []string{"0yxhwia2amd8gec", "llvuca81nly1qls"}, - nil, - nil, - 2, - false, - }, - { - "demo2", - []string{"0yxhwia2amd8gec", "llvuca81nly1qls"}, - func(q *dbx.SelectQuery) error { - return nil // empty filter - }, - func(q *dbx.SelectQuery) error { - return errors.New("test error") - }, - 0, - true, - }, - { - "demo2", - []string{"0yxhwia2amd8gec", "llvuca81nly1qls"}, - func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"active": true}) - return nil - }, - nil, - 1, - false, - }, - { - "sz5l5z67tg7gku0", - []string{"0yxhwia2amd8gec", "llvuca81nly1qls"}, - func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.HashExp{"active": true}) - return nil - }, - func(q *dbx.SelectQuery) error { - q.AndWhere(dbx.Not(dbx.HashExp{"title": ""})) - return nil - }, - 1, - false, - }, - } - - for i, scenario := range scenarios { - records, err := app.Dao().FindRecordsByIds( - scenario.collectionIdOrName, - scenario.ids, - scenario.filter1, - scenario.filter2, - ) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if len(records) != scenario.expectTotal { - t.Errorf("(%d) Expected %d records, got %d", i, scenario.expectTotal, len(records)) - continue - } - - for _, r := range records { - if !list.ExistInSlice(r.Id, scenario.ids) { - t.Errorf("(%d) Couldn't find id %s in %v", i, r.Id, scenario.ids) - } - } - } -} - -func TestFindRecordsByExpr(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionIdOrName string - expressions []dbx.Expression - expectIds []string - expectError bool - }{ - { - "missing", - nil, - []string{}, - true, - }, - { - "demo2", - nil, - []string{ - "achvryl401bhse3", - "llvuca81nly1qls", - "0yxhwia2amd8gec", - }, - false, - }, - { - "demo2", - []dbx.Expression{ - nil, - dbx.HashExp{"id": "123"}, - }, - []string{}, - false, - }, - { - "sz5l5z67tg7gku0", - []dbx.Expression{ - dbx.Like("title", "test").Match(true, true), - dbx.HashExp{"active": true}, - }, - []string{ - "achvryl401bhse3", - "0yxhwia2amd8gec", - }, - false, - }, - } - - for i, scenario := range scenarios { - records, err := app.Dao().FindRecordsByExpr(scenario.collectionIdOrName, scenario.expressions...) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if len(records) != len(scenario.expectIds) { - t.Errorf("(%d) Expected %d records, got %d", i, len(scenario.expectIds), len(records)) - continue - } - - for _, r := range records { - if !list.ExistInSlice(r.Id, scenario.expectIds) { - t.Errorf("(%d) Couldn't find id %s in %v", i, r.Id, scenario.expectIds) - } - } - } -} - -func TestFindFirstRecordByData(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionIdOrName string - key string - value any - expectId string - expectError bool - }{ - { - "missing", - "id", - "llvuca81nly1qls", - "llvuca81nly1qls", - true, - }, - { - "demo2", - "", - "llvuca81nly1qls", - "", - true, - }, - { - "demo2", - "id", - "invalid", - "", - true, - }, - { - "demo2", - "id", - "llvuca81nly1qls", - "llvuca81nly1qls", - false, - }, - { - "sz5l5z67tg7gku0", - "title", - "test3", - "0yxhwia2amd8gec", - false, - }, - } - - for i, scenario := range scenarios { - record, err := app.Dao().FindFirstRecordByData(scenario.collectionIdOrName, scenario.key, scenario.value) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - continue - } - - if !scenario.expectError && record.Id != scenario.expectId { - t.Errorf("(%d) Expected record with id %s, got %v", i, scenario.expectId, record.Id) - } - } -} - -func TestIsRecordValueUnique(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - testManyRelsId1 := "bgs820n361vj1qd" - testManyRelsId2 := "4q1xlclmfloku33" - testManyRelsId3 := "oap640cot4yru2s" - - scenarios := []struct { - collectionIdOrName string - key string - value any - excludeIds []string - expected bool - }{ - {"demo2", "", "", nil, false}, - {"demo2", "", "", []string{""}, false}, - {"demo2", "missing", "unique", nil, false}, - {"demo2", "title", "unique", nil, true}, - {"demo2", "title", "unique", []string{}, true}, - {"demo2", "title", "unique", []string{""}, true}, - {"demo2", "title", "test1", []string{""}, false}, - {"demo2", "title", "test1", []string{"llvuca81nly1qls"}, true}, - {"demo1", "rel_many", []string{testManyRelsId3}, nil, false}, - {"wsmn24bux7wo113", "rel_many", []any{testManyRelsId3}, []string{""}, false}, - {"wsmn24bux7wo113", "rel_many", []any{testManyRelsId3}, []string{"84nmscqy84lsi1t"}, true}, - // mixed json array order - {"demo1", "rel_many", []string{testManyRelsId1, testManyRelsId3, testManyRelsId2}, nil, true}, - // username special case-insensitive match - {"users", "username", "test2_username", nil, false}, - {"users", "username", "TEST2_USERNAME", nil, false}, - {"users", "username", "new_username", nil, true}, - {"users", "username", "TEST2_USERNAME", []string{"oap640cot4yru2s"}, true}, - } - - for i, scenario := range scenarios { - result := app.Dao().IsRecordValueUnique( - scenario.collectionIdOrName, - scenario.key, - scenario.value, - scenario.excludeIds..., - ) - - if result != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, result) - } - } -} - -func TestFindAuthRecordByToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - token string - baseKey string - expectedEmail string - expectError bool - }{ - // invalid auth token - { - "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.H2KKcIXiAfxvuXMFzizo1SgsinDP4hcWhD3pYoP4Nqw", - app.Settings().RecordAuthToken.Secret, - "", - true, - }, - // expired token - { - "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoxNjQwOTkxNjYxfQ.HqvpCpM0RAk3Qu9PfCMuZsk_DKh9UYuzFLwXBMTZd1w", - app.Settings().RecordAuthToken.Secret, - "", - true, - }, - // wrong base key (password reset token secret instead of auth secret) - { - "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - app.Settings().RecordPasswordResetToken.Secret, - "", - true, - }, - // valid token and base key but with deleted/missing collection - { - "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoibWlzc2luZyIsImV4cCI6MjIwODk4NTI2MX0.0oEHQpdpHp0Nb3VN8La0ssg-SjwWKiRl_k1mUGxdKlU", - app.Settings().RecordAuthToken.Secret, - "test@example.com", - true, - }, - // valid token - { - "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.UwD8JvkbQtXpymT09d7J6fdA0aP9g4FJ1GPh_ggEkzc", - app.Settings().RecordAuthToken.Secret, - "test@example.com", - false, - }, - } - - for i, scenario := range scenarios { - record, err := app.Dao().FindAuthRecordByToken(scenario.token, scenario.baseKey) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - continue - } - - if !scenario.expectError && record.Email() != scenario.expectedEmail { - t.Errorf("(%d) Expected record model %s, got %s", i, scenario.expectedEmail, record.Email()) - } - } -} - -func TestFindAuthRecordByEmail(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionIdOrName string - email string - expectError bool - }{ - {"missing", "test@example.com", true}, - {"demo2", "test@example.com", true}, - {"users", "missing@example.com", true}, - {"users", "test@example.com", false}, - {"clients", "test2@example.com", false}, - } - - for i, scenario := range scenarios { - record, err := app.Dao().FindAuthRecordByEmail(scenario.collectionIdOrName, scenario.email) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - continue - } - - if !scenario.expectError && record.Email() != scenario.email { - t.Errorf("(%d) Expected record with email %s, got %s", i, scenario.email, record.Email()) - } - } -} - -func TestFindAuthRecordByUsername(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionIdOrName string - username string - expectError bool - }{ - {"missing", "test_username", true}, - {"demo2", "test_username", true}, - {"users", "missing", true}, - {"users", "test2_username", false}, - {"users", "TEST2_USERNAME", false}, // case insensitive check - {"clients", "clients43362", false}, - } - - for i, scenario := range scenarios { - record, err := app.Dao().FindAuthRecordByUsername(scenario.collectionIdOrName, scenario.username) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - continue - } - - if !scenario.expectError && !strings.EqualFold(record.Username(), scenario.username) { - t.Errorf("(%d) Expected record with username %s, got %s", i, scenario.username, record.Username()) - } - } -} - -func TestSuggestUniqueAuthRecordUsername(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - collectionIdOrName string - baseUsername string - expectedPattern string - }{ - // missing collection - {"missing", "test2_username", `^test2_username\d{12}$`}, - // not an auth collection - {"demo2", "test2_username", `^test2_username\d{12}$`}, - // auth collection with unique base username - {"users", "new_username", `^new_username$`}, - {"users", "NEW_USERNAME", `^NEW_USERNAME$`}, - // auth collection with existing username - {"users", "test2_username", `^test2_username\d{3}$`}, - {"users", "TEST2_USERNAME", `^TEST2_USERNAME\d{3}$`}, - } - - for i, scenario := range scenarios { - username := app.Dao().SuggestUniqueAuthRecordUsername( - scenario.collectionIdOrName, - scenario.baseUsername, - ) - - pattern, err := regexp.Compile(scenario.expectedPattern) - if err != nil { - t.Errorf("[%d] Invalid username pattern %q: %v", i, scenario.expectedPattern, err) - } - if !pattern.MatchString(username) { - t.Fatalf("Expected username to match %s, got username %s", scenario.expectedPattern, username) - } - } -} - -func TestSaveRecord(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, _ := app.Dao().FindCollectionByNameOrId("demo2") - - // create - // --- - r1 := models.NewRecord(collection) - r1.Set("title", "test_new") - err1 := app.Dao().SaveRecord(r1) - if err1 != nil { - t.Fatal(err1) - } - newR1, _ := app.Dao().FindFirstRecordByData(collection.Id, "title", "test_new") - if newR1 == nil || newR1.Id != r1.Id || newR1.GetString("title") != r1.GetString("title") { - t.Fatalf("Expected to find record %v, got %v", r1, newR1) - } - - // update - // --- - r2, _ := app.Dao().FindFirstRecordByData(collection.Id, "id", "0yxhwia2amd8gec") - r2.Set("title", "test_update") - err2 := app.Dao().SaveRecord(r2) - if err2 != nil { - t.Fatal(err2) - } - newR2, _ := app.Dao().FindFirstRecordByData(collection.Id, "title", "test_update") - if newR2 == nil || newR2.Id != r2.Id || newR2.GetString("title") != r2.GetString("title") { - t.Fatalf("Expected to find record %v, got %v", r2, newR2) - } -} - -func TestSaveRecordWithIdFromOtherCollection(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - baseCollection, _ := app.Dao().FindCollectionByNameOrId("demo2") - authCollection, _ := app.Dao().FindCollectionByNameOrId("nologin") - - // base collection test - r1 := models.NewRecord(baseCollection) - r1.Set("title", "test_new") - r1.Set("id", "mk5fmymtx4wsprk") // existing id of demo3 record - r1.MarkAsNew() - if err := app.Dao().SaveRecord(r1); err != nil { - t.Fatalf("Expected nil, got error %v", err) - } - - // auth collection test - r2 := models.NewRecord(authCollection) - r2.Set("username", "test_new") - r2.Set("id", "gk390qegs4y47wn") // existing id of "clients" record - r2.MarkAsNew() - if err := app.Dao().SaveRecord(r2); err == nil { - t.Fatal("Expected error, got nil") - } - - // try again with unique id - r2.Set("id", "unique_id") - if err := app.Dao().SaveRecord(r2); err != nil { - t.Fatalf("Expected nil, got error %v", err) - } -} - -func TestDeleteRecord(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - demoCollection, _ := app.Dao().FindCollectionByNameOrId("demo2") - - // delete unsaved record - // --- - rec0 := models.NewRecord(demoCollection) - if err := app.Dao().DeleteRecord(rec0); err == nil { - t.Fatal("(rec0) Didn't expect to succeed deleting unsaved record") - } - - // delete existing record + external auths - // --- - rec1, _ := app.Dao().FindRecordById("users", "4q1xlclmfloku33") - if err := app.Dao().DeleteRecord(rec1); err != nil { - t.Fatalf("(rec1) Expected nil, got error %v", err) - } - // check if it was really deleted - if refreshed, _ := app.Dao().FindRecordById(rec1.Collection().Id, rec1.Id); refreshed != nil { - t.Fatalf("(rec1) Expected record to be deleted, got %v", refreshed) - } - // check if the external auths were deleted - if auths, _ := app.Dao().FindAllExternalAuthsByRecord(rec1); len(auths) > 0 { - t.Fatalf("(rec1) Expected external auths to be deleted, got %v", auths) - } - - // delete existing record while being part of a non-cascade required relation - // --- - rec2, _ := app.Dao().FindRecordById("demo3", "7nwo8tuiatetxdm") - if err := app.Dao().DeleteRecord(rec2); err == nil { - t.Fatalf("(rec2) Expected error, got nil") - } - - // delete existing record + cascade - // --- - rec3, _ := app.Dao().FindRecordById("users", "oap640cot4yru2s") - if err := app.Dao().DeleteRecord(rec3); err != nil { - t.Fatalf("(rec3) Expected nil, got error %v", err) - } - // check if it was really deleted - rec3, _ = app.Dao().FindRecordById(rec3.Collection().Id, rec3.Id) - if rec3 != nil { - t.Fatalf("(rec3) Expected record to be deleted, got %v", rec3) - } - // check if the operation cascaded - rel, _ := app.Dao().FindRecordById("demo1", "84nmscqy84lsi1t") - if rel != nil { - t.Fatalf("(rec3) Expected the delete to cascade, found relation %v", rel) - } -} - -func TestSyncRecordTableSchema(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - oldCollection, err := app.Dao().FindCollectionByNameOrId("demo2") - if err != nil { - t.Fatal(err) - } - updatedCollection, err := app.Dao().FindCollectionByNameOrId("demo2") - if err != nil { - t.Fatal(err) - } - updatedCollection.Name = "demo_renamed" - updatedCollection.Schema.RemoveField(updatedCollection.Schema.GetFieldByName("active").Id) - updatedCollection.Schema.AddField( - &schema.SchemaField{ - Name: "new_field", - Type: schema.FieldTypeEmail, - }, - ) - updatedCollection.Schema.AddField( - &schema.SchemaField{ - Id: updatedCollection.Schema.GetFieldByName("title").Id, - Name: "title_renamed", - Type: schema.FieldTypeEmail, - }, - ) - - scenarios := []struct { - newCollection *models.Collection - oldCollection *models.Collection - expectedTableName string - expectedColumns []string - }{ - // new base collection - { - &models.Collection{ - Name: "new_table", - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "test", - Type: schema.FieldTypeText, - }, - ), - }, - nil, - "new_table", - []string{"id", "created", "updated", "test"}, - }, - // new auth collection - { - &models.Collection{ - Name: "new_table_auth", - Type: models.CollectionTypeAuth, - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "test", - Type: schema.FieldTypeText, - }, - ), - }, - nil, - "new_table_auth", - []string{ - "id", "created", "updated", "test", - "username", "email", "verified", "emailVisibility", - "tokenKey", "passwordHash", "lastResetSentAt", "lastVerificationSentAt", - }, - }, - // no changes - { - oldCollection, - oldCollection, - "demo3", - []string{"id", "created", "updated", "title", "active"}, - }, - // renamed table, deleted column, renamed columnd and new column - { - updatedCollection, - oldCollection, - "demo_renamed", - []string{"id", "created", "updated", "title_renamed", "new_field"}, - }, - } - - for i, scenario := range scenarios { - err := app.Dao().SyncRecordTableSchema(scenario.newCollection, scenario.oldCollection) - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - - if !app.Dao().HasTable(scenario.newCollection.Name) { - t.Errorf("(%d) Expected table %s to exist", i, scenario.newCollection.Name) - } - - cols, _ := app.Dao().GetTableColumns(scenario.newCollection.Name) - if len(cols) != len(scenario.expectedColumns) { - t.Errorf("(%d) Expected columns %v, got %v", i, scenario.expectedColumns, cols) - } - - for _, c := range cols { - if !list.ExistInSlice(c, scenario.expectedColumns) { - t.Errorf("(%d) Couldn't find column %s in %v", i, c, scenario.expectedColumns) - } - } - } -} diff --git a/daos/request.go b/daos/request.go deleted file mode 100644 index 6616b9f335988dbb2b72285e4f30f87e7893e148..0000000000000000000000000000000000000000 --- a/daos/request.go +++ /dev/null @@ -1,70 +0,0 @@ -package daos - -import ( - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/types" -) - -// RequestQuery returns a new Request logs select query. -func (dao *Dao) RequestQuery() *dbx.SelectQuery { - return dao.ModelQuery(&models.Request{}) -} - -// FindRequestById finds a single Request log by its id. -func (dao *Dao) FindRequestById(id string) (*models.Request, error) { - model := &models.Request{} - - err := dao.RequestQuery(). - AndWhere(dbx.HashExp{"id": id}). - Limit(1). - One(model) - - if err != nil { - return nil, err - } - - return model, nil -} - -type RequestsStatsItem struct { - Total int `db:"total" json:"total"` - Date types.DateTime `db:"date" json:"date"` -} - -// RequestsStats returns hourly grouped requests logs statistics. -func (dao *Dao) RequestsStats(expr dbx.Expression) ([]*RequestsStatsItem, error) { - result := []*RequestsStatsItem{} - - query := dao.RequestQuery(). - Select("count(id) as total", "strftime('%Y-%m-%d %H:00:00', created) as date"). - GroupBy("date") - - if expr != nil { - query.AndWhere(expr) - } - - err := query.All(&result) - - return result, err -} - -// DeleteOldRequests delete all requests that are created before createdBefore. -func (dao *Dao) DeleteOldRequests(createdBefore time.Time) error { - m := models.Request{} - tableName := m.TableName() - - formattedDate := createdBefore.UTC().Format(types.DefaultDateLayout) - expr := dbx.NewExp("[[created]] <= {:date}", dbx.Params{"date": formattedDate}) - - _, err := dao.DB().Delete(tableName, expr).Execute() - - return err -} - -// SaveRequest upserts the provided Request model. -func (dao *Dao) SaveRequest(request *models.Request) error { - return dao.Save(request) -} diff --git a/daos/request_test.go b/daos/request_test.go deleted file mode 100644 index e41b8e399d390c8145ddef52f4c52f620c3a6670..0000000000000000000000000000000000000000 --- a/daos/request_test.go +++ /dev/null @@ -1,148 +0,0 @@ -package daos_test - -import ( - "encoding/json" - "testing" - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestRequestQuery(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - expected := "SELECT {{_requests}}.* FROM `_requests`" - - sql := app.Dao().RequestQuery().Build().SQL() - if sql != expected { - t.Errorf("Expected sql %s, got %s", expected, sql) - } -} - -func TestFindRequestById(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - tests.MockRequestLogsData(app) - - scenarios := []struct { - id string - expectError bool - }{ - {"", true}, - {"invalid", true}, - {"00000000-9f38-44fb-bf82-c8f53b310d91", true}, - {"873f2133-9f38-44fb-bf82-c8f53b310d91", false}, - } - - for i, scenario := range scenarios { - admin, err := app.LogsDao().FindRequestById(scenario.id) - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - } - - if admin != nil && admin.Id != scenario.id { - t.Errorf("(%d) Expected admin with id %s, got %s", i, scenario.id, admin.Id) - } - } -} - -func TestRequestsStats(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - tests.MockRequestLogsData(app) - - expected := `[{"total":1,"date":"2022-05-01 10:00:00.000Z"},{"total":1,"date":"2022-05-02 10:00:00.000Z"}]` - - now := time.Now().UTC().Format(types.DefaultDateLayout) - exp := dbx.NewExp("[[created]] <= {:date}", dbx.Params{"date": now}) - result, err := app.LogsDao().RequestsStats(exp) - if err != nil { - t.Fatal(err) - } - - encoded, _ := json.Marshal(result) - if string(encoded) != expected { - t.Fatalf("Expected %s, got %s", expected, string(encoded)) - } -} - -func TestDeleteOldRequests(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - tests.MockRequestLogsData(app) - - scenarios := []struct { - date string - expectedTotal int - }{ - {"2022-01-01 10:00:00.000Z", 2}, // no requests to delete before that time - {"2022-05-01 11:00:00.000Z", 1}, // only 1 request should have left - {"2022-05-03 11:00:00.000Z", 0}, // no more requests should have left - {"2022-05-04 11:00:00.000Z", 0}, // no more requests should have left - } - - for i, scenario := range scenarios { - date, dateErr := time.Parse(types.DefaultDateLayout, scenario.date) - if dateErr != nil { - t.Errorf("(%d) Date error %v", i, dateErr) - } - - deleteErr := app.LogsDao().DeleteOldRequests(date) - if deleteErr != nil { - t.Errorf("(%d) Delete error %v", i, deleteErr) - } - - // check total remaining requests - var total int - countErr := app.LogsDao().RequestQuery().Select("count(*)").Row(&total) - if countErr != nil { - t.Errorf("(%d) Count error %v", i, countErr) - } - - if total != scenario.expectedTotal { - t.Errorf("(%d) Expected %d remaining requests, got %d", i, scenario.expectedTotal, total) - } - } -} - -func TestSaveRequest(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - tests.MockRequestLogsData(app) - - // create new request - newRequest := &models.Request{} - newRequest.Method = "get" - newRequest.Meta = types.JsonMap{} - createErr := app.LogsDao().SaveRequest(newRequest) - if createErr != nil { - t.Fatal(createErr) - } - - // check if it was really created - existingRequest, fetchErr := app.LogsDao().FindRequestById(newRequest.Id) - if fetchErr != nil { - t.Fatal(fetchErr) - } - - existingRequest.Method = "post" - updateErr := app.LogsDao().SaveRequest(existingRequest) - if updateErr != nil { - t.Fatal(updateErr) - } - // refresh instance to check if it was really updated - existingRequest, _ = app.LogsDao().FindRequestById(existingRequest.Id) - if existingRequest.Method != "post" { - t.Fatalf("Expected request method to be %s, got %s", "post", existingRequest.Method) - } -} diff --git a/daos/settings.go b/daos/settings.go deleted file mode 100644 index f4830e7be7f22d52c9d0de1377dbd6aca2cb0fdc..0000000000000000000000000000000000000000 --- a/daos/settings.go +++ /dev/null @@ -1,63 +0,0 @@ -package daos - -import ( - "encoding/json" - "errors" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/settings" - "github.com/pocketbase/pocketbase/tools/security" -) - -// FindSettings returns and decode the serialized app settings param value. -// -// The method will first try to decode the param value without decryption. -// If it fails and optEncryptionKey is set, it will try again by first -// decrypting the value and then decode it again. -// -// Returns an error if it fails to decode the stored serialized param value. -func (dao *Dao) FindSettings(optEncryptionKey ...string) (*settings.Settings, error) { - param, err := dao.FindParamByKey(models.ParamAppSettings) - if err != nil { - return nil, err - } - - result := settings.New() - - // try first without decryption - plainDecodeErr := json.Unmarshal(param.Value, result) - - // failed, try to decrypt - if plainDecodeErr != nil { - var encryptionKey string - if len(optEncryptionKey) > 0 && optEncryptionKey[0] != "" { - encryptionKey = optEncryptionKey[0] - } - - // load without decrypt has failed and there is no encryption key to use for decrypt - if encryptionKey == "" { - return nil, errors.New("failed to load the stored app settings - missing or invalid encryption key") - } - - // decrypt - decrypted, decryptErr := security.Decrypt(string(param.Value), encryptionKey) - if decryptErr != nil { - return nil, decryptErr - } - - // decode again - decryptedDecodeErr := json.Unmarshal(decrypted, result) - if decryptedDecodeErr != nil { - return nil, decryptedDecodeErr - } - } - - return result, nil -} - -// SaveSettings persists the specified settings configuration. -// -// If optEncryptionKey is set, then the stored serialized value will be encrypted with it. -func (dao *Dao) SaveSettings(newSettings *settings.Settings, optEncryptionKey ...string) error { - return dao.SaveParam(models.ParamAppSettings, newSettings, optEncryptionKey...) -} diff --git a/daos/settings_test.go b/daos/settings_test.go deleted file mode 100644 index 3791f42b8b25127ba25c58aa30697604cac10c19..0000000000000000000000000000000000000000 --- a/daos/settings_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package daos_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestSaveAndFindSettings(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - encryptionKey := security.PseudorandomString(32) - - // change unencrypted app settings - app.Settings().Meta.AppName = "save_unencrypted" - if err := app.Dao().SaveSettings(app.Settings()); err != nil { - t.Fatal(err) - } - - // check if the change was persisted - s1, err := app.Dao().FindSettings() - if err != nil { - t.Fatalf("Failed to fetch settings: %v", err) - } - if s1.Meta.AppName != "save_unencrypted" { - t.Fatalf("Expected settings to be changed with app name %q, got \n%v", "save_unencrypted", s1) - } - - // make another change but this time provide an encryption key - app.Settings().Meta.AppName = "save_encrypted" - if err := app.Dao().SaveSettings(app.Settings(), encryptionKey); err != nil { - t.Fatal(err) - } - - // try to fetch the settings without encryption key (should fail) - if s2, err := app.Dao().FindSettings(); err == nil { - t.Fatalf("Expected FindSettings to fail without an encryption key, got \n%v", s2) - } - - // try again but this time with an encryption key - s3, err := app.Dao().FindSettings(encryptionKey) - if err != nil { - t.Fatalf("Failed to fetch settings with an encryption key %s: %v", encryptionKey, err) - } - if s3.Meta.AppName != "save_encrypted" { - t.Fatalf("Expected settings to be changed with app name %q, got \n%v", "save_encrypted", s3) - } -} diff --git a/daos/table.go b/daos/table.go deleted file mode 100644 index b2f11876aab4925bd5b05a7d6ee38885e7f01d80..0000000000000000000000000000000000000000 --- a/daos/table.go +++ /dev/null @@ -1,45 +0,0 @@ -package daos - -import ( - "github.com/pocketbase/dbx" -) - -// HasTable checks if a table with the provided name exists (case insensitive). -func (dao *Dao) HasTable(tableName string) bool { - var exists bool - - err := dao.DB().Select("count(*)"). - From("sqlite_schema"). - AndWhere(dbx.HashExp{"type": "table"}). - AndWhere(dbx.NewExp("LOWER([[name]])=LOWER({:tableName})", dbx.Params{"tableName": tableName})). - Limit(1). - Row(&exists) - - return err == nil && exists -} - -// GetTableColumns returns all column names of a single table by its name. -func (dao *Dao) GetTableColumns(tableName string) ([]string, error) { - columns := []string{} - - err := dao.DB().NewQuery("SELECT name FROM PRAGMA_TABLE_INFO({:tableName})"). - Bind(dbx.Params{"tableName": tableName}). - Column(&columns) - - return columns, err -} - -// DeleteTable drops the specified table. -func (dao *Dao) DeleteTable(tableName string) error { - _, err := dao.DB().DropTable(tableName).Execute() - - return err -} - -// Vacuum executes VACUUM on the current dao.DB() instance in order to -// reclaim unused db disk space. -func (dao *Dao) Vacuum() error { - _, err := dao.DB().NewQuery("VACUUM").Execute() - - return err -} diff --git a/daos/table_test.go b/daos/table_test.go deleted file mode 100644 index b3845277de4926bfcb6b63bea14de8379d301b16..0000000000000000000000000000000000000000 --- a/daos/table_test.go +++ /dev/null @@ -1,109 +0,0 @@ -package daos_test - -import ( - "context" - "database/sql" - "testing" - "time" - - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/list" -) - -func TestHasTable(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - tableName string - expected bool - }{ - {"", false}, - {"test", false}, - {"_admins", true}, - {"demo3", true}, - {"DEMO3", true}, // table names are case insensitives by default - } - - for i, scenario := range scenarios { - result := app.Dao().HasTable(scenario.tableName) - if result != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, result) - } - } -} - -func TestGetTableColumns(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - tableName string - expected []string - }{ - {"", nil}, - {"_params", []string{"id", "key", "value", "created", "updated"}}, - } - - for i, scenario := range scenarios { - columns, _ := app.Dao().GetTableColumns(scenario.tableName) - - if len(columns) != len(scenario.expected) { - t.Errorf("(%d) Expected columns %v, got %v", i, scenario.expected, columns) - } - - for _, c := range columns { - if !list.ExistInSlice(c, scenario.expected) { - t.Errorf("(%d) Didn't expect column %s", i, c) - } - } - } -} - -func TestDeleteTable(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - tableName string - expectError bool - }{ - {"", true}, - {"test", true}, - {"_admins", false}, - {"demo3", false}, - } - - for i, scenario := range scenarios { - err := app.Dao().DeleteTable(scenario.tableName) - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v", i, scenario.expectError, hasErr) - } - } -} - -func TestVacuum(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - calledQueries := []string{} - app.DB().QueryLogFunc = func(ctx context.Context, t time.Duration, sql string, rows *sql.Rows, err error) { - calledQueries = append(calledQueries, sql) - } - app.DB().ExecLogFunc = func(ctx context.Context, t time.Duration, sql string, result sql.Result, err error) { - calledQueries = append(calledQueries, sql) - } - - if err := app.Dao().Vacuum(); err != nil { - t.Fatal(err) - } - - if total := len(calledQueries); total != 1 { - t.Fatalf("Expected 1 query, got %d", total) - } - - if calledQueries[0] != "VACUUM" { - t.Fatalf("Expected VACUUM query, got %s", calledQueries[0]) - } -} diff --git a/forms/admin_login.go b/forms/admin_login.go deleted file mode 100644 index a88d1ad58e712dd9860c3a593a0d414b75b7053b..0000000000000000000000000000000000000000 --- a/forms/admin_login.go +++ /dev/null @@ -1,64 +0,0 @@ -package forms - -import ( - "errors" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" -) - -// AdminLogin is an admin email/pass login form. -type AdminLogin struct { - app core.App - dao *daos.Dao - - Identity string `form:"identity" json:"identity"` - Password string `form:"password" json:"password"` -} - -// NewAdminLogin creates a new [AdminLogin] form initialized with -// the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewAdminLogin(app core.App) *AdminLogin { - return &AdminLogin{ - app: app, - dao: app.Dao(), - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *AdminLogin) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *AdminLogin) Validate() error { - return validation.ValidateStruct(form, - validation.Field(&form.Identity, validation.Required, validation.Length(1, 255), is.EmailFormat), - validation.Field(&form.Password, validation.Required, validation.Length(1, 255)), - ) -} - -// Submit validates and submits the admin form. -// On success returns the authorized admin model. -func (form *AdminLogin) Submit() (*models.Admin, error) { - if err := form.Validate(); err != nil { - return nil, err - } - - admin, err := form.dao.FindAdminByEmail(form.Identity) - if err != nil { - return nil, err - } - - if admin.ValidatePassword(form.Password) { - return admin, nil - } - - return nil, errors.New("Invalid login credentials.") -} diff --git a/forms/admin_login_test.go b/forms/admin_login_test.go deleted file mode 100644 index bd63e7c271cf4479d2bf2399f8d3c1ddab367460..0000000000000000000000000000000000000000 --- a/forms/admin_login_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package forms_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tests" -) - -func TestAdminLoginValidateAndSubmit(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - form := forms.NewAdminLogin(app) - - scenarios := []struct { - email string - password string - expectError bool - }{ - {"", "", true}, - {"", "1234567890", true}, - {"test@example.com", "", true}, - {"test", "test", true}, - {"missing@example.com", "1234567890", true}, - {"test@example.com", "123456789", true}, - {"test@example.com", "1234567890", false}, - } - - for i, s := range scenarios { - form.Identity = s.email - form.Password = s.password - - admin, err := form.Submit() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - if !s.expectError && admin == nil { - t.Errorf("(%d) Expected admin model to be returned, got nil", i) - } - - if admin != nil && admin.Email != s.email { - t.Errorf("(%d) Expected admin with email %s to be returned, got %v", i, s.email, admin) - } - } -} diff --git a/forms/admin_password_reset_confirm.go b/forms/admin_password_reset_confirm.go deleted file mode 100644 index 134abc3f2773a6f693ffcdb6f068259f9b726875..0000000000000000000000000000000000000000 --- a/forms/admin_password_reset_confirm.go +++ /dev/null @@ -1,88 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms/validators" - "github.com/pocketbase/pocketbase/models" -) - -// AdminPasswordResetConfirm is an admin password reset confirmation form. -type AdminPasswordResetConfirm struct { - app core.App - dao *daos.Dao - - Token string `form:"token" json:"token"` - Password string `form:"password" json:"password"` - PasswordConfirm string `form:"passwordConfirm" json:"passwordConfirm"` -} - -// NewAdminPasswordResetConfirm creates a new [AdminPasswordResetConfirm] -// form initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewAdminPasswordResetConfirm(app core.App) *AdminPasswordResetConfirm { - return &AdminPasswordResetConfirm{ - app: app, - dao: app.Dao(), - } -} - -// SetDao replaces the form Dao instance with the provided one. -// -// This is useful if you want to use a specific transaction Dao instance -// instead of the default app.Dao(). -func (form *AdminPasswordResetConfirm) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *AdminPasswordResetConfirm) Validate() error { - return validation.ValidateStruct(form, - validation.Field(&form.Token, validation.Required, validation.By(form.checkToken)), - validation.Field(&form.Password, validation.Required, validation.Length(10, 72)), - validation.Field(&form.PasswordConfirm, validation.Required, validation.By(validators.Compare(form.Password))), - ) -} - -func (form *AdminPasswordResetConfirm) checkToken(value any) error { - v, _ := value.(string) - if v == "" { - return nil // nothing to check - } - - admin, err := form.dao.FindAdminByToken(v, form.app.Settings().AdminPasswordResetToken.Secret) - if err != nil || admin == nil { - return validation.NewError("validation_invalid_token", "Invalid or expired token.") - } - - return nil -} - -// Submit validates and submits the admin password reset confirmation form. -// On success returns the updated admin model associated to `form.Token`. -func (form *AdminPasswordResetConfirm) Submit() (*models.Admin, error) { - if err := form.Validate(); err != nil { - return nil, err - } - - admin, err := form.dao.FindAdminByToken( - form.Token, - form.app.Settings().AdminPasswordResetToken.Secret, - ) - if err != nil { - return nil, err - } - - if err := admin.SetPassword(form.Password); err != nil { - return nil, err - } - - if err := form.dao.SaveAdmin(admin); err != nil { - return nil, err - } - - return admin, nil -} diff --git a/forms/admin_password_reset_confirm_test.go b/forms/admin_password_reset_confirm_test.go deleted file mode 100644 index fc825838b7b44ad6f1f51fcea9de20654c3a9530..0000000000000000000000000000000000000000 --- a/forms/admin_password_reset_confirm_test.go +++ /dev/null @@ -1,80 +0,0 @@ -package forms_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestAdminPasswordResetConfirmValidateAndSubmit(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - form := forms.NewAdminPasswordResetConfirm(app) - - scenarios := []struct { - token string - password string - passwordConfirm string - expectError bool - }{ - {"", "", "", true}, - {"", "123", "", true}, - {"", "", "123", true}, - {"test", "", "", true}, - {"test", "123", "", true}, - {"test", "123", "123", true}, - { - // expired - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImV4cCI6MTY0MDk5MTY2MX0.GLwCOsgWTTEKXTK-AyGW838de1OeZGIjfHH0FoRLqZg", - "1234567890", - "1234567890", - true, - }, - { - // valid with mismatched passwords - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4MTYwMH0.kwFEler6KSMKJNstuaSDvE1QnNdCta5qSnjaIQ0hhhc", - "1234567890", - "1234567891", - true, - }, - { - // valid with matching passwords - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhZG1pbiIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4MTYwMH0.kwFEler6KSMKJNstuaSDvE1QnNdCta5qSnjaIQ0hhhc", - "1234567891", - "1234567891", - false, - }, - } - - for i, s := range scenarios { - form.Token = s.token - form.Password = s.password - form.PasswordConfirm = s.passwordConfirm - - admin, err := form.Submit() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if s.expectError { - continue - } - - claims, _ := security.ParseUnverifiedJWT(s.token) - tokenAdminId := claims["id"] - - if admin.Id != tokenAdminId { - t.Errorf("(%d) Expected admin with id %s to be returned, got %v", i, tokenAdminId, admin) - } - - if !admin.ValidatePassword(form.Password) { - t.Errorf("(%d) Expected the admin password to have been updated to %q", i, form.Password) - } - } -} diff --git a/forms/admin_password_reset_request.go b/forms/admin_password_reset_request.go deleted file mode 100644 index 1abfd9d800d13c3df7ca6b8c5150891cead98ac1..0000000000000000000000000000000000000000 --- a/forms/admin_password_reset_request.go +++ /dev/null @@ -1,82 +0,0 @@ -package forms - -import ( - "errors" - "time" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/mails" - "github.com/pocketbase/pocketbase/tools/types" -) - -// AdminPasswordResetRequest is an admin password reset request form. -type AdminPasswordResetRequest struct { - app core.App - dao *daos.Dao - resendThreshold float64 // in seconds - - Email string `form:"email" json:"email"` -} - -// NewAdminPasswordResetRequest creates a new [AdminPasswordResetRequest] -// form initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewAdminPasswordResetRequest(app core.App) *AdminPasswordResetRequest { - return &AdminPasswordResetRequest{ - app: app, - dao: app.Dao(), - resendThreshold: 120, // 2min - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *AdminPasswordResetRequest) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -// -// This method doesn't verify that admin with `form.Email` exists (this is done on Submit). -func (form *AdminPasswordResetRequest) Validate() error { - return validation.ValidateStruct(form, - validation.Field( - &form.Email, - validation.Required, - validation.Length(1, 255), - is.EmailFormat, - ), - ) -} - -// Submit validates and submits the form. -// On success sends a password reset email to the `form.Email` admin. -func (form *AdminPasswordResetRequest) Submit() error { - if err := form.Validate(); err != nil { - return err - } - - admin, err := form.dao.FindAdminByEmail(form.Email) - if err != nil { - return err - } - - now := time.Now().UTC() - lastResetSentAt := admin.LastResetSentAt.Time() - if now.Sub(lastResetSentAt).Seconds() < form.resendThreshold { - return errors.New("You have already requested a password reset.") - } - - if err := mails.SendAdminPasswordReset(form.app, admin); err != nil { - return err - } - - // update last sent timestamp - admin.LastResetSentAt = types.NowDateTime() - - return form.dao.SaveAdmin(admin) -} diff --git a/forms/admin_password_reset_request_test.go b/forms/admin_password_reset_request_test.go deleted file mode 100644 index 0261c9357416b8084d11392efb0cb25641742bcc..0000000000000000000000000000000000000000 --- a/forms/admin_password_reset_request_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package forms_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tests" -) - -func TestAdminPasswordResetRequestValidateAndSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - form := forms.NewAdminPasswordResetRequest(testApp) - - scenarios := []struct { - email string - expectError bool - }{ - {"", true}, - {"", true}, - {"invalid", true}, - {"missing@example.com", true}, - {"test@example.com", false}, - {"test@example.com", true}, // already requested - } - - for i, s := range scenarios { - testApp.TestMailer.TotalSend = 0 // reset - form.Email = s.email - - adminBefore, _ := testApp.Dao().FindAdminByEmail(s.email) - - err := form.Submit() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - adminAfter, _ := testApp.Dao().FindAdminByEmail(s.email) - - if !s.expectError && (adminBefore.LastResetSentAt == adminAfter.LastResetSentAt || adminAfter.LastResetSentAt.IsZero()) { - t.Errorf("(%d) Expected admin.LastResetSentAt to change, got %q", i, adminAfter.LastResetSentAt) - } - - expectedMails := 1 - if s.expectError { - expectedMails = 0 - } - if testApp.TestMailer.TotalSend != expectedMails { - t.Errorf("(%d) Expected %d mail(s) to be sent, got %d", i, expectedMails, testApp.TestMailer.TotalSend) - } - } -} diff --git a/forms/admin_upsert.go b/forms/admin_upsert.go deleted file mode 100644 index b1212c09b45685729dd9d44e5f8ee2634c8c695c..0000000000000000000000000000000000000000 --- a/forms/admin_upsert.go +++ /dev/null @@ -1,122 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms/validators" - "github.com/pocketbase/pocketbase/models" -) - -// AdminUpsert is a [models.Admin] upsert (create/update) form. -type AdminUpsert struct { - app core.App - dao *daos.Dao - admin *models.Admin - - Id string `form:"id" json:"id"` - Avatar int `form:"avatar" json:"avatar"` - Email string `form:"email" json:"email"` - Password string `form:"password" json:"password"` - PasswordConfirm string `form:"passwordConfirm" json:"passwordConfirm"` -} - -// NewAdminUpsert creates a new [AdminUpsert] form with initializer -// config created from the provided [core.App] and [models.Admin] instances -// (for create you could pass a pointer to an empty Admin - `&models.Admin{}`). -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewAdminUpsert(app core.App, admin *models.Admin) *AdminUpsert { - form := &AdminUpsert{ - app: app, - dao: app.Dao(), - admin: admin, - } - - // load defaults - form.Id = admin.Id - form.Avatar = admin.Avatar - form.Email = admin.Email - - return form -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *AdminUpsert) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *AdminUpsert) Validate() error { - return validation.ValidateStruct(form, - validation.Field( - &form.Id, - validation.When( - form.admin.IsNew(), - validation.Length(models.DefaultIdLength, models.DefaultIdLength), - validation.Match(idRegex), - ).Else(validation.In(form.admin.Id)), - ), - validation.Field( - &form.Avatar, - validation.Min(0), - validation.Max(9), - ), - validation.Field( - &form.Email, - validation.Required, - validation.Length(1, 255), - is.EmailFormat, - validation.By(form.checkUniqueEmail), - ), - validation.Field( - &form.Password, - validation.When(form.admin.IsNew(), validation.Required), - validation.Length(10, 72), - ), - validation.Field( - &form.PasswordConfirm, - validation.When(form.Password != "", validation.Required), - validation.By(validators.Compare(form.Password)), - ), - ) -} - -func (form *AdminUpsert) checkUniqueEmail(value any) error { - v, _ := value.(string) - - if form.dao.IsAdminEmailUnique(v, form.admin.Id) { - return nil - } - - return validation.NewError("validation_admin_email_exists", "Admin email already exists.") -} - -// Submit validates the form and upserts the form admin model. -// -// You can optionally provide a list of InterceptorFunc to further -// modify the form behavior before persisting it. -func (form *AdminUpsert) Submit(interceptors ...InterceptorFunc) error { - if err := form.Validate(); err != nil { - return err - } - - // custom insertion id can be set only on create - if form.admin.IsNew() && form.Id != "" { - form.admin.MarkAsNew() - form.admin.SetId(form.Id) - } - - form.admin.Avatar = form.Avatar - form.admin.Email = form.Email - - if form.Password != "" { - form.admin.SetPassword(form.Password) - } - - return runInterceptors(func() error { - return form.dao.SaveAdmin(form.admin) - }, interceptors...) -} diff --git a/forms/admin_upsert_test.go b/forms/admin_upsert_test.go deleted file mode 100644 index e92f029eff407f07fea9080df7d8e1ece142d0de..0000000000000000000000000000000000000000 --- a/forms/admin_upsert_test.go +++ /dev/null @@ -1,333 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "fmt" - "testing" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestNewAdminUpsert(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - admin := &models.Admin{} - admin.Avatar = 3 - admin.Email = "new@example.com" - - form := forms.NewAdminUpsert(app, admin) - - // test defaults - if form.Avatar != admin.Avatar { - t.Errorf("Expected Avatar %d, got %d", admin.Avatar, form.Avatar) - } - if form.Email != admin.Email { - t.Errorf("Expected Email %q, got %q", admin.Email, form.Email) - } -} - -func TestAdminUpsertValidateAndSubmit(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - id string - jsonData string - expectError bool - }{ - { - // create empty - "", - `{}`, - true, - }, - { - // update empty - "sywbhecnh46rhm0", - `{}`, - false, - }, - { - // create failure - existing email - "", - `{ - "email": "test@example.com", - "password": "1234567890", - "passwordConfirm": "1234567890" - }`, - true, - }, - { - // create failure - passwords mismatch - "", - `{ - "email": "test_new@example.com", - "password": "1234567890", - "passwordConfirm": "1234567891" - }`, - true, - }, - { - // create success - "", - `{ - "email": "test_new@example.com", - "password": "1234567890", - "passwordConfirm": "1234567890" - }`, - false, - }, - { - // update failure - existing email - "sywbhecnh46rhm0", - `{ - "email": "test2@example.com" - }`, - true, - }, - { - // update failure - mismatching passwords - "sywbhecnh46rhm0", - `{ - "password": "1234567890", - "passwordConfirm": "1234567891" - }`, - true, - }, - { - // update success - new email - "sywbhecnh46rhm0", - `{ - "email": "test_update@example.com" - }`, - false, - }, - { - // update success - new password - "sywbhecnh46rhm0", - `{ - "password": "1234567890", - "passwordConfirm": "1234567890" - }`, - false, - }, - } - - for i, s := range scenarios { - isCreate := true - admin := &models.Admin{} - if s.id != "" { - isCreate = false - admin, _ = app.Dao().FindAdminById(s.id) - } - initialTokenKey := admin.TokenKey - - form := forms.NewAdminUpsert(app, admin) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("(%d) Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - - err := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorCalls++ - return next() - } - }) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - foundAdmin, _ := app.Dao().FindAdminByEmail(form.Email) - - if !s.expectError && isCreate && foundAdmin == nil { - t.Errorf("(%d) Expected admin to be created, got nil", i) - continue - } - - expectInterceptorCall := 1 - if s.expectError { - expectInterceptorCall = 0 - } - if interceptorCalls != expectInterceptorCall { - t.Errorf("(%d) Expected interceptor to be called %d, got %d", i, expectInterceptorCall, interceptorCalls) - } - - if s.expectError { - continue // skip persistence check - } - - if foundAdmin.Email != form.Email { - t.Errorf("(%d) Expected email %s, got %s", i, form.Email, foundAdmin.Email) - } - - if foundAdmin.Avatar != form.Avatar { - t.Errorf("(%d) Expected avatar %d, got %d", i, form.Avatar, foundAdmin.Avatar) - } - - if form.Password != "" && initialTokenKey == foundAdmin.TokenKey { - t.Errorf("(%d) Expected token key to be renewed when setting a new password", i) - } - } -} - -func TestAdminUpsertSubmitInterceptors(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - admin := &models.Admin{} - form := forms.NewAdminUpsert(app, admin) - form.Email = "test_new@example.com" - form.Password = "1234567890" - form.PasswordConfirm = form.Password - - testErr := errors.New("test_error") - interceptorAdminEmail := "" - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptor1Called = true - return next() - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorAdminEmail = admin.Email // to check if the record was filled - interceptor2Called = true - return testErr - } - } - - err := form.Submit(interceptor1, interceptor2) - if err != testErr { - t.Fatalf("Expected error %v, got %v", testErr, err) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorAdminEmail != form.Email { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} - -func TestAdminUpsertWithCustomId(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - existingAdmin, err := app.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - name string - jsonData string - collection *models.Admin - expectError bool - }{ - { - "empty data", - "{}", - &models.Admin{}, - false, - }, - { - "empty id", - `{"id":""}`, - &models.Admin{}, - false, - }, - { - "id < 15 chars", - `{"id":"a23"}`, - &models.Admin{}, - true, - }, - { - "id > 15 chars", - `{"id":"a234567890123456"}`, - &models.Admin{}, - true, - }, - { - "id = 15 chars (invalid chars)", - `{"id":"a@3456789012345"}`, - &models.Admin{}, - true, - }, - { - "id = 15 chars (valid chars)", - `{"id":"a23456789012345"}`, - &models.Admin{}, - false, - }, - { - "changing the id of an existing item", - `{"id":"b23456789012345"}`, - existingAdmin, - true, - }, - { - "using the same existing item id", - `{"id":"` + existingAdmin.Id + `"}`, - existingAdmin, - false, - }, - { - "skipping the id for existing item", - `{}`, - existingAdmin, - false, - }, - } - - for i, scenario := range scenarios { - form := forms.NewAdminUpsert(app, scenario.collection) - if form.Email == "" { - form.Email = fmt.Sprintf("test_id_%d@example.com", i) - } - form.Password = "1234567890" - form.PasswordConfirm = form.Password - - // load data - loadErr := json.Unmarshal([]byte(scenario.jsonData), form) - if loadErr != nil { - t.Errorf("[%s] Failed to load form data: %v", scenario.name, loadErr) - continue - } - - submitErr := form.Submit() - hasErr := submitErr != nil - - if hasErr != scenario.expectError { - t.Errorf("[%s] Expected hasErr to be %v, got %v (%v)", scenario.name, scenario.expectError, hasErr, submitErr) - } - - if !hasErr && form.Id != "" { - _, err := app.Dao().FindAdminById(form.Id) - if err != nil { - t.Errorf("[%s] Expected to find record with id %s, got %v", scenario.name, form.Id, err) - } - } - } -} diff --git a/forms/base.go b/forms/base.go deleted file mode 100644 index 698feaa16a506567c1e282b4026ebd62247d89b6..0000000000000000000000000000000000000000 --- a/forms/base.go +++ /dev/null @@ -1,44 +0,0 @@ -// Package models implements various services used for request data -// validation and applying changes to existing DB models through the app Dao. -package forms - -import ( - "regexp" - - "github.com/pocketbase/pocketbase/models" -) - -// base ID value regex pattern -var idRegex = regexp.MustCompile(`^[^\@\#\$\&\|\.\,\'\"\\\/\s]+$`) - -// InterceptorNextFunc is a interceptor handler function. -// Usually used in combination with InterceptorFunc. -type InterceptorNextFunc = func() error - -// InterceptorFunc defines a single interceptor function that -// will execute the provided next func handler. -type InterceptorFunc func(next InterceptorNextFunc) InterceptorNextFunc - -// runInterceptors executes the provided list of interceptors. -func runInterceptors(next InterceptorNextFunc, interceptors ...InterceptorFunc) error { - for i := len(interceptors) - 1; i >= 0; i-- { - next = interceptors[i](next) - } - return next() -} - -// InterceptorWithRecordNextFunc is a Record interceptor handler function. -// Usually used in combination with InterceptorWithRecordFunc. -type InterceptorWithRecordNextFunc = func(record *models.Record) error - -// InterceptorWithRecordFunc defines a single Record interceptor function -// that will execute the provided next func handler. -type InterceptorWithRecordFunc func(next InterceptorWithRecordNextFunc) InterceptorWithRecordNextFunc - -// runInterceptorsWithRecord executes the provided list of Record interceptors. -func runInterceptorsWithRecord(record *models.Record, next InterceptorWithRecordNextFunc, interceptors ...InterceptorWithRecordFunc) error { - for i := len(interceptors) - 1; i >= 0; i-- { - next = interceptors[i](next) - } - return next(record) -} diff --git a/forms/collection_upsert.go b/forms/collection_upsert.go deleted file mode 100644 index d2a99ee73358191137497652e5386a764c716a33..0000000000000000000000000000000000000000 --- a/forms/collection_upsert.go +++ /dev/null @@ -1,381 +0,0 @@ -package forms - -import ( - "encoding/json" - "fmt" - "regexp" - "strings" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/resolvers" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/search" - "github.com/pocketbase/pocketbase/tools/types" -) - -var collectionNameRegex = regexp.MustCompile(`^[a-zA-Z0-9][a-zA-Z0-9_]*$`) - -// CollectionUpsert is a [models.Collection] upsert (create/update) form. -type CollectionUpsert struct { - app core.App - dao *daos.Dao - collection *models.Collection - - Id string `form:"id" json:"id"` - Type string `form:"type" json:"type"` - Name string `form:"name" json:"name"` - System bool `form:"system" json:"system"` - Schema schema.Schema `form:"schema" json:"schema"` - ListRule *string `form:"listRule" json:"listRule"` - ViewRule *string `form:"viewRule" json:"viewRule"` - CreateRule *string `form:"createRule" json:"createRule"` - UpdateRule *string `form:"updateRule" json:"updateRule"` - DeleteRule *string `form:"deleteRule" json:"deleteRule"` - Options types.JsonMap `form:"options" json:"options"` -} - -// NewCollectionUpsert creates a new [CollectionUpsert] form with initializer -// config created from the provided [core.App] and [models.Collection] instances -// (for create you could pass a pointer to an empty Collection - `&models.Collection{}`). -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewCollectionUpsert(app core.App, collection *models.Collection) *CollectionUpsert { - form := &CollectionUpsert{ - app: app, - dao: app.Dao(), - collection: collection, - } - - // load defaults - form.Id = form.collection.Id - form.Type = form.collection.Type - form.Name = form.collection.Name - form.System = form.collection.System - form.ListRule = form.collection.ListRule - form.ViewRule = form.collection.ViewRule - form.CreateRule = form.collection.CreateRule - form.UpdateRule = form.collection.UpdateRule - form.DeleteRule = form.collection.DeleteRule - form.Options = form.collection.Options - - if form.Type == "" { - form.Type = models.CollectionTypeBase - } - - clone, _ := form.collection.Schema.Clone() - if clone != nil { - form.Schema = *clone - } else { - form.Schema = schema.Schema{} - } - - return form -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *CollectionUpsert) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *CollectionUpsert) Validate() error { - isAuth := form.Type == models.CollectionTypeAuth - - return validation.ValidateStruct(form, - validation.Field( - &form.Id, - validation.When( - form.collection.IsNew(), - validation.Length(models.DefaultIdLength, models.DefaultIdLength), - validation.Match(idRegex), - ).Else(validation.In(form.collection.Id)), - ), - validation.Field( - &form.System, - validation.By(form.ensureNoSystemFlagChange), - ), - validation.Field( - &form.Type, - validation.Required, - validation.In(models.CollectionTypeAuth, models.CollectionTypeBase), - validation.By(form.ensureNoTypeChange), - ), - validation.Field( - &form.Name, - validation.Required, - validation.Length(1, 255), - validation.Match(collectionNameRegex), - validation.By(form.ensureNoSystemNameChange), - validation.By(form.checkUniqueName), - ), - // validates using the type's own validation rules + some collection's specific - validation.Field( - &form.Schema, - validation.By(form.checkMinSchemaFields), - validation.By(form.ensureNoSystemFieldsChange), - validation.By(form.ensureNoFieldsTypeChange), - validation.By(form.ensureExistingRelationCollectionId), - validation.When( - isAuth, - validation.By(form.ensureNoAuthFieldName), - ), - ), - validation.Field(&form.ListRule, validation.By(form.checkRule)), - validation.Field(&form.ViewRule, validation.By(form.checkRule)), - validation.Field(&form.CreateRule, validation.By(form.checkRule)), - validation.Field(&form.UpdateRule, validation.By(form.checkRule)), - validation.Field(&form.DeleteRule, validation.By(form.checkRule)), - validation.Field(&form.Options, validation.By(form.checkOptions)), - ) -} - -func (form *CollectionUpsert) checkUniqueName(value any) error { - v, _ := value.(string) - - // ensure unique collection name - if !form.dao.IsCollectionNameUnique(v, form.collection.Id) { - return validation.NewError("validation_collection_name_exists", "Collection name must be unique (case insensitive).") - } - - // ensure that the collection name doesn't collide with the id of any collection - if form.dao.FindById(&models.Collection{}, v) == nil { - return validation.NewError("validation_collection_name_id_duplicate", "The name must not match an existing collection id.") - } - - // ensure that there is no existing table name with the same name - if (form.collection.IsNew() || !strings.EqualFold(v, form.collection.Name)) && form.dao.HasTable(v) { - return validation.NewError("validation_collection_name_table_exists", "The collection name must be also unique table name.") - } - - return nil -} - -func (form *CollectionUpsert) ensureNoSystemNameChange(value any) error { - v, _ := value.(string) - - if !form.collection.IsNew() && form.collection.System && v != form.collection.Name { - return validation.NewError("validation_collection_system_name_change", "System collections cannot be renamed.") - } - - return nil -} - -func (form *CollectionUpsert) ensureNoSystemFlagChange(value any) error { - v, _ := value.(bool) - - if !form.collection.IsNew() && v != form.collection.System { - return validation.NewError("validation_collection_system_flag_change", "System collection state cannot be changed.") - } - - return nil -} - -func (form *CollectionUpsert) ensureNoTypeChange(value any) error { - v, _ := value.(string) - - if !form.collection.IsNew() && v != form.collection.Type { - return validation.NewError("validation_collection_type_change", "Collection type cannot be changed.") - } - - return nil -} - -func (form *CollectionUpsert) ensureNoFieldsTypeChange(value any) error { - v, _ := value.(schema.Schema) - - for i, field := range v.Fields() { - oldField := form.collection.Schema.GetFieldById(field.Id) - - if oldField != nil && oldField.Type != field.Type { - return validation.Errors{fmt.Sprint(i): validation.NewError( - "validation_field_type_change", - "Field type cannot be changed.", - )} - } - } - - return nil -} - -func (form *CollectionUpsert) ensureExistingRelationCollectionId(value any) error { - v, _ := value.(schema.Schema) - - for i, field := range v.Fields() { - if field.Type != schema.FieldTypeRelation { - continue - } - - options, _ := field.Options.(*schema.RelationOptions) - if options == nil { - continue - } - - if _, err := form.dao.FindCollectionByNameOrId(options.CollectionId); err != nil { - return validation.Errors{fmt.Sprint(i): validation.NewError( - "validation_field_invalid_relation", - "The relation collection doesn't exist.", - )} - } - } - - return nil -} - -func (form *CollectionUpsert) ensureNoAuthFieldName(value any) error { - v, _ := value.(schema.Schema) - - if form.Type != models.CollectionTypeAuth { - return nil // not an auth collection - } - - authFieldNames := schema.AuthFieldNames() - // exclude the meta RecordUpsert form fields - authFieldNames = append(authFieldNames, "password", "passwordConfirm", "oldPassword") - - errs := validation.Errors{} - for i, field := range v.Fields() { - if list.ExistInSlice(field.Name, authFieldNames) { - errs[fmt.Sprint(i)] = validation.Errors{ - "name": validation.NewError( - "validation_reserved_auth_field_name", - "The field name is reserved and cannot be used.", - ), - } - } - } - - if len(errs) > 0 { - return errs - } - - return nil -} - -func (form *CollectionUpsert) checkMinSchemaFields(value any) error { - if form.Type == models.CollectionTypeAuth { - return nil // auth collections doesn't require having additional schema fields - } - - v, ok := value.(schema.Schema) - if !ok || len(v.Fields()) == 0 { - return validation.ErrRequired - } - - return nil -} - -func (form *CollectionUpsert) ensureNoSystemFieldsChange(value any) error { - v, _ := value.(schema.Schema) - - for _, oldField := range form.collection.Schema.Fields() { - if !oldField.System { - continue - } - - newField := v.GetFieldById(oldField.Id) - - if newField == nil || oldField.String() != newField.String() { - return validation.NewError("validation_system_field_change", "System fields cannot be deleted or changed.") - } - } - - return nil -} - -func (form *CollectionUpsert) checkRule(value any) error { - v, _ := value.(*string) - if v == nil || *v == "" { - return nil // nothing to check - } - - dummy := *form.collection - dummy.Type = form.Type - dummy.Schema = form.Schema - dummy.System = form.System - dummy.Options = form.Options - - r := resolvers.NewRecordFieldResolver(form.dao, &dummy, nil, true) - - _, err := search.FilterData(*v).BuildExpr(r) - if err != nil { - return validation.NewError("validation_invalid_rule", "Invalid filter rule.") - } - - return nil -} - -func (form *CollectionUpsert) checkOptions(value any) error { - v, _ := value.(types.JsonMap) - - if form.Type == models.CollectionTypeAuth { - raw, err := v.MarshalJSON() - if err != nil { - return validation.NewError("validation_invalid_options", "Invalid options.") - } - - options := models.CollectionAuthOptions{} - if err := json.Unmarshal(raw, &options); err != nil { - return validation.NewError("validation_invalid_options", "Invalid options.") - } - - // check the generic validations - if err := options.Validate(); err != nil { - return err - } - - // additional form specific validations - if err := form.checkRule(options.ManageRule); err != nil { - return validation.Errors{"manageRule": err} - } - } - - return nil -} - -// Submit validates the form and upserts the form's Collection model. -// -// On success the related record table schema will be auto updated. -// -// You can optionally provide a list of InterceptorFunc to further -// modify the form behavior before persisting it. -func (form *CollectionUpsert) Submit(interceptors ...InterceptorFunc) error { - if err := form.Validate(); err != nil { - return err - } - - if form.collection.IsNew() { - // type can be set only on create - form.collection.Type = form.Type - - // system flag can be set only on create - form.collection.System = form.System - - // custom insertion id can be set only on create - if form.Id != "" { - form.collection.MarkAsNew() - form.collection.SetId(form.Id) - } - } - - // system collections cannot be renamed - if form.collection.IsNew() || !form.collection.System { - form.collection.Name = form.Name - } - - form.collection.Schema = form.Schema - form.collection.ListRule = form.ListRule - form.collection.ViewRule = form.ViewRule - form.collection.CreateRule = form.CreateRule - form.collection.UpdateRule = form.UpdateRule - form.collection.DeleteRule = form.DeleteRule - form.collection.SetOptions(form.Options) - - return runInterceptors(func() error { - return form.dao.SaveCollection(form.collection) - }, interceptors...) -} diff --git a/forms/collection_upsert_test.go b/forms/collection_upsert_test.go deleted file mode 100644 index adbe1c778999e8060b2fa5195721f92896b6c70a..0000000000000000000000000000000000000000 --- a/forms/collection_upsert_test.go +++ /dev/null @@ -1,590 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/spf13/cast" -) - -func TestNewCollectionUpsert(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection := &models.Collection{} - collection.Name = "test_name" - collection.Type = "test_type" - collection.System = true - listRule := "testview" - collection.ListRule = &listRule - viewRule := "test_view" - collection.ViewRule = &viewRule - createRule := "test_create" - collection.CreateRule = &createRule - updateRule := "test_update" - collection.UpdateRule = &updateRule - deleteRule := "test_delete" - collection.DeleteRule = &deleteRule - collection.Schema = schema.NewSchema(&schema.SchemaField{ - Name: "test", - Type: schema.FieldTypeText, - }) - - form := forms.NewCollectionUpsert(app, collection) - - if form.Name != collection.Name { - t.Errorf("Expected Name %q, got %q", collection.Name, form.Name) - } - - if form.Type != collection.Type { - t.Errorf("Expected Type %q, got %q", collection.Type, form.Type) - } - - if form.System != collection.System { - t.Errorf("Expected System %v, got %v", collection.System, form.System) - } - - if form.ListRule != collection.ListRule { - t.Errorf("Expected ListRule %v, got %v", collection.ListRule, form.ListRule) - } - - if form.ViewRule != collection.ViewRule { - t.Errorf("Expected ViewRule %v, got %v", collection.ViewRule, form.ViewRule) - } - - if form.CreateRule != collection.CreateRule { - t.Errorf("Expected CreateRule %v, got %v", collection.CreateRule, form.CreateRule) - } - - if form.UpdateRule != collection.UpdateRule { - t.Errorf("Expected UpdateRule %v, got %v", collection.UpdateRule, form.UpdateRule) - } - - if form.DeleteRule != collection.DeleteRule { - t.Errorf("Expected DeleteRule %v, got %v", collection.DeleteRule, form.DeleteRule) - } - - // store previous state and modify the collection schema to verify - // that the form.Schema is a deep clone - loadedSchema, _ := collection.Schema.MarshalJSON() - collection.Schema.AddField(&schema.SchemaField{ - Name: "new_field", - Type: schema.FieldTypeBool, - }) - - formSchema, _ := form.Schema.MarshalJSON() - - if string(formSchema) != string(loadedSchema) { - t.Errorf("Expected Schema %v, got %v", string(loadedSchema), string(formSchema)) - } -} - -func TestCollectionUpsertValidateAndSubmit(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - testName string - existingName string - jsonData string - expectedErrors []string - }{ - {"empty create (base)", "", "{}", []string{"name", "schema"}}, - {"empty create (auth)", "", `{"type":"auth"}`, []string{"name"}}, - {"empty update", "demo2", "{}", []string{}}, - { - "create failure", - "", - `{ - "name": "test ?!@#$", - "type": "invalid", - "system": true, - "schema": [ - {"name":"","type":"text"} - ], - "listRule": "missing = '123'", - "viewRule": "missing = '123'", - "createRule": "missing = '123'", - "updateRule": "missing = '123'", - "deleteRule": "missing = '123'" - }`, - []string{"name", "type", "schema", "listRule", "viewRule", "createRule", "updateRule", "deleteRule"}, - }, - { - "create failure - existing name", - "", - `{ - "name": "demo1", - "system": true, - "schema": [ - {"name":"test","type":"text"} - ], - "listRule": "test='123'", - "viewRule": "test='123'", - "createRule": "test='123'", - "updateRule": "test='123'", - "deleteRule": "test='123'" - }`, - []string{"name"}, - }, - { - "create failure - existing internal table", - "", - `{ - "name": "_admins", - "schema": [ - {"name":"test","type":"text"} - ] - }`, - []string{"name"}, - }, - { - "create failure - name starting with underscore", - "", - `{ - "name": "_test_new", - "schema": [ - {"name":"test","type":"text"} - ] - }`, - []string{"name"}, - }, - { - "create failure - duplicated field names (case insensitive)", - "", - `{ - "name": "test_new", - "schema": [ - {"name":"test","type":"text"}, - {"name":"tESt","type":"text"} - ] - }`, - []string{"schema"}, - }, - { - "create failure - check type options validators", - "", - `{ - "name": "test_new", - "type": "auth", - "schema": [ - {"name":"test","type":"text"} - ], - "options": { "minPasswordLength": 3 } - }`, - []string{"options"}, - }, - { - "create success", - "", - `{ - "name": "test_new", - "type": "auth", - "system": true, - "schema": [ - {"id":"a123456","name":"test1","type":"text"}, - {"id":"b123456","name":"test2","type":"email"} - ], - "listRule": "test1='123' && verified = true", - "viewRule": "test1='123' && emailVisibility = true", - "createRule": "test1='123' && email != ''", - "updateRule": "test1='123' && username != ''", - "deleteRule": "test1='123' && id != ''" - }`, - []string{}, - }, - { - "update failure - changing field type", - "test_new", - `{ - "schema": [ - {"id":"a123456","name":"test1","type":"url"}, - {"id":"b123456","name":"test2","type":"bool"} - ] - }`, - []string{"schema"}, - }, - { - "update success - rename fields to existing field names (aka. reusing field names)", - "test_new", - `{ - "schema": [ - {"id":"a123456","name":"test2","type":"text"}, - {"id":"b123456","name":"test1","type":"email"} - ] - }`, - []string{}, - }, - { - "update failure - existing name", - "demo2", - `{"name": "demo3"}`, - []string{"name"}, - }, - { - "update failure - changing system collection", - "nologin", - `{ - "name": "update", - "system": false, - "schema": [ - {"id":"koih1lqx","name":"abc","type":"text"} - ], - "listRule": "abc = '123'", - "viewRule": "abc = '123'", - "createRule": "abc = '123'", - "updateRule": "abc = '123'", - "deleteRule": "abc = '123'" - }`, - []string{"name", "system"}, - }, - { - "update failure - changing collection type", - "demo3", - `{ - "type": "auth" - }`, - []string{"type"}, - }, - { - "update failure - all fields", - "demo2", - `{ - "name": "test ?!@#$", - "type": "invalid", - "system": true, - "schema": [ - {"name":"","type":"text"} - ], - "listRule": "missing = '123'", - "viewRule": "missing = '123'", - "createRule": "missing = '123'", - "updateRule": "missing = '123'", - "deleteRule": "missing = '123'", - "options": {"test": 123} - }`, - []string{"name", "type", "system", "schema", "listRule", "viewRule", "createRule", "updateRule", "deleteRule"}, - }, - { - "update success - update all fields", - "clients", - `{ - "name": "demo_update", - "type": "auth", - "schema": [ - {"id":"_2hlxbmp","name":"test","type":"text"} - ], - "listRule": "test='123' && verified = true", - "viewRule": "test='123' && emailVisibility = true", - "createRule": "test='123' && email != ''", - "updateRule": "test='123' && username != ''", - "deleteRule": "test='123' && id != ''", - "options": {"minPasswordLength": 10} - }`, - []string{}, - }, - // (fail due to filters old field references) - { - "update failure - rename the schema field of the last updated collection", - "demo_update", - `{ - "schema": [ - {"id":"_2hlxbmp","name":"test_renamed","type":"text"} - ] - }`, - []string{"listRule", "viewRule", "createRule", "updateRule", "deleteRule"}, - }, - // (cleared filter references) - { - "update success - rename the schema field of the last updated collection", - "demo_update", - `{ - "schema": [ - {"id":"_2hlxbmp","name":"test_renamed","type":"text"} - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null - }`, - []string{}, - }, - { - "update success - system collection", - "nologin", - `{ - "listRule": "name='123'", - "viewRule": "name='123'", - "createRule": "name='123'", - "updateRule": "name='123'", - "deleteRule": "name='123'" - }`, - []string{}, - }, - } - - for _, s := range scenarios { - collection := &models.Collection{} - if s.existingName != "" { - var err error - collection, err = app.Dao().FindCollectionByNameOrId(s.existingName) - if err != nil { - t.Fatal(err) - } - } - - form := forms.NewCollectionUpsert(app, collection) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("[%s] Failed to load form data: %v", s.testName, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorCalls++ - return next() - } - } - - // parse errors - result := form.Submit(interceptor) - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("[%s] Failed to parse errors %v", s.testName, result) - continue - } - - // check interceptor calls - expectInterceptorCalls := 1 - if len(s.expectedErrors) > 0 { - expectInterceptorCalls = 0 - } - if interceptorCalls != expectInterceptorCalls { - t.Errorf("[%s] Expected interceptor to be called %d, got %d", s.testName, expectInterceptorCalls, interceptorCalls) - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("[%s] Expected error keys %v, got %v", s.testName, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("[%s] Missing expected error key %q in %v", s.testName, k, errs) - } - } - - if len(s.expectedErrors) > 0 { - continue - } - - collection, _ = app.Dao().FindCollectionByNameOrId(form.Name) - if collection == nil { - t.Errorf("[%s] Expected to find collection %q, got nil", s.testName, form.Name) - continue - } - - if form.Name != collection.Name { - t.Errorf("[%s] Expected Name %q, got %q", s.testName, collection.Name, form.Name) - } - - if form.Type != collection.Type { - t.Errorf("[%s] Expected Type %q, got %q", s.testName, collection.Type, form.Type) - } - - if form.System != collection.System { - t.Errorf("[%s] Expected System %v, got %v", s.testName, collection.System, form.System) - } - - if cast.ToString(form.ListRule) != cast.ToString(collection.ListRule) { - t.Errorf("[%s] Expected ListRule %v, got %v", s.testName, collection.ListRule, form.ListRule) - } - - if cast.ToString(form.ViewRule) != cast.ToString(collection.ViewRule) { - t.Errorf("[%s] Expected ViewRule %v, got %v", s.testName, collection.ViewRule, form.ViewRule) - } - - if cast.ToString(form.CreateRule) != cast.ToString(collection.CreateRule) { - t.Errorf("[%s] Expected CreateRule %v, got %v", s.testName, collection.CreateRule, form.CreateRule) - } - - if cast.ToString(form.UpdateRule) != cast.ToString(collection.UpdateRule) { - t.Errorf("[%s] Expected UpdateRule %v, got %v", s.testName, collection.UpdateRule, form.UpdateRule) - } - - if cast.ToString(form.DeleteRule) != cast.ToString(collection.DeleteRule) { - t.Errorf("[%s] Expected DeleteRule %v, got %v", s.testName, collection.DeleteRule, form.DeleteRule) - } - - formSchema, _ := form.Schema.MarshalJSON() - collectionSchema, _ := collection.Schema.MarshalJSON() - if string(formSchema) != string(collectionSchema) { - t.Errorf("[%s] Expected Schema %v, got %v", s.testName, string(collectionSchema), string(formSchema)) - } - } -} - -func TestCollectionUpsertSubmitInterceptors(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo2") - if err != nil { - t.Fatal(err) - } - - form := forms.NewCollectionUpsert(app, collection) - form.Name = "test_new" - - testErr := errors.New("test_error") - interceptorCollectionName := "" - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptor1Called = true - return next() - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorCollectionName = collection.Name // to check if the record was filled - interceptor2Called = true - return testErr - } - } - - submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorCollectionName != form.Name { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} - -func TestCollectionUpsertWithCustomId(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - existingCollection, err := app.Dao().FindCollectionByNameOrId("demo2") - if err != nil { - t.Fatal(err) - } - - newCollection := func() *models.Collection { - return &models.Collection{ - Name: "c_" + security.PseudorandomString(4), - Schema: existingCollection.Schema, - } - } - - scenarios := []struct { - name string - jsonData string - collection *models.Collection - expectError bool - }{ - { - "empty data", - "{}", - newCollection(), - false, - }, - { - "empty id", - `{"id":""}`, - newCollection(), - false, - }, - { - "id < 15 chars", - `{"id":"a23"}`, - newCollection(), - true, - }, - { - "id > 15 chars", - `{"id":"a234567890123456"}`, - newCollection(), - true, - }, - { - "id = 15 chars (invalid chars)", - `{"id":"a@3456789012345"}`, - newCollection(), - true, - }, - { - "id = 15 chars (valid chars)", - `{"id":"a23456789012345"}`, - newCollection(), - false, - }, - { - "changing the id of an existing item", - `{"id":"b23456789012345"}`, - existingCollection, - true, - }, - { - "using the same existing item id", - `{"id":"` + existingCollection.Id + `"}`, - existingCollection, - false, - }, - { - "skipping the id for existing item", - `{}`, - existingCollection, - false, - }, - } - - for _, s := range scenarios { - form := forms.NewCollectionUpsert(app, s.collection) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("[%s] Failed to load form data: %v", s.name, loadErr) - continue - } - - submitErr := form.Submit() - hasErr := submitErr != nil - - if hasErr != s.expectError { - t.Errorf("[%s] Expected hasErr to be %v, got %v (%v)", s.name, s.expectError, hasErr, submitErr) - } - - if !hasErr && form.Id != "" { - _, err := app.Dao().FindCollectionByNameOrId(form.Id) - if err != nil { - t.Errorf("[%s] Expected to find record with id %s, got %v", s.name, form.Id, err) - } - } - } -} diff --git a/forms/collections_import.go b/forms/collections_import.go deleted file mode 100644 index 083f4d1497cdf89232b866377dda97cf8f2a632d..0000000000000000000000000000000000000000 --- a/forms/collections_import.go +++ /dev/null @@ -1,136 +0,0 @@ -package forms - -import ( - "encoding/json" - "fmt" - "log" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" -) - -// CollectionsImport is a form model to bulk import -// (create, replace and delete) collections from a user provided list. -type CollectionsImport struct { - app core.App - dao *daos.Dao - - Collections []*models.Collection `form:"collections" json:"collections"` - DeleteMissing bool `form:"deleteMissing" json:"deleteMissing"` -} - -// NewCollectionsImport creates a new [CollectionsImport] form with -// initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewCollectionsImport(app core.App) *CollectionsImport { - return &CollectionsImport{ - app: app, - dao: app.Dao(), - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *CollectionsImport) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *CollectionsImport) Validate() error { - return validation.ValidateStruct(form, - validation.Field(&form.Collections, validation.Required), - ) -} - -// Submit applies the import, aka.: -// - imports the form collections (create or replace) -// - sync the collection changes with their related records table -// - ensures the integrity of the imported structure (aka. run validations for each collection) -// - if [form.DeleteMissing] is set, deletes all local collections that are not found in the imports list -// -// All operations are wrapped in a single transaction that are -// rollbacked on the first encountered error. -// -// You can optionally provide a list of InterceptorFunc to further -// modify the form behavior before persisting it. -func (form *CollectionsImport) Submit(interceptors ...InterceptorFunc) error { - if err := form.Validate(); err != nil { - return err - } - - return runInterceptors(func() error { - return form.dao.RunInTransaction(func(txDao *daos.Dao) error { - importErr := txDao.ImportCollections( - form.Collections, - form.DeleteMissing, - form.beforeRecordsSync, - ) - if importErr == nil { - return nil - } - - // validation failure - if err, ok := importErr.(validation.Errors); ok { - return err - } - - // generic/db failure - if form.app.IsDebug() { - log.Println("Internal import failure:", importErr) - } - return validation.Errors{"collections": validation.NewError( - "collections_import_failure", - "Failed to import the collections configuration.", - )} - }) - }, interceptors...) -} - -func (form *CollectionsImport) beforeRecordsSync(txDao *daos.Dao, mappedNew, mappedOld map[string]*models.Collection) error { - // refresh the actual persisted collections list - refreshedCollections := []*models.Collection{} - if err := txDao.CollectionQuery().OrderBy("created ASC").All(&refreshedCollections); err != nil { - return err - } - - // trigger the validator for each existing collection to - // ensure that the app is not left in a broken state - for _, collection := range refreshedCollections { - upsertModel := mappedOld[collection.GetId()] - if upsertModel == nil { - upsertModel = collection - } - upsertModel.MarkAsNotNew() - - upsertForm := NewCollectionUpsert(form.app, upsertModel) - upsertForm.SetDao(txDao) - - // load form fields with the refreshed collection state - upsertForm.Id = collection.Id - upsertForm.Type = collection.Type - upsertForm.Name = collection.Name - upsertForm.System = collection.System - upsertForm.ListRule = collection.ListRule - upsertForm.ViewRule = collection.ViewRule - upsertForm.CreateRule = collection.CreateRule - upsertForm.UpdateRule = collection.UpdateRule - upsertForm.DeleteRule = collection.DeleteRule - upsertForm.Schema = collection.Schema - upsertForm.Options = collection.Options - - if err := upsertForm.Validate(); err != nil { - // serialize the validation error(s) - serializedErr, _ := json.MarshalIndent(err, "", " ") - - return validation.Errors{"collections": validation.NewError( - "collections_import_validate_failure", - fmt.Sprintf("Data validations failed for collection %q (%s):\n%s", collection.Name, collection.Id, serializedErr), - )} - } - } - - return nil -} diff --git a/forms/collections_import_test.go b/forms/collections_import_test.go deleted file mode 100644 index f6812a38a536c51826350c3f014719616aef82d9..0000000000000000000000000000000000000000 --- a/forms/collections_import_test.go +++ /dev/null @@ -1,434 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestCollectionsImportValidate(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - form := forms.NewCollectionsImport(app) - - scenarios := []struct { - collections []*models.Collection - expectError bool - }{ - {nil, true}, - {[]*models.Collection{}, true}, - {[]*models.Collection{{}}, false}, - } - - for i, s := range scenarios { - form.Collections = s.collections - - err := form.Validate() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - } -} - -func TestCollectionsImportSubmit(t *testing.T) { - scenarios := []struct { - name string - jsonData string - expectError bool - expectCollectionsCount int - expectEvents map[string]int - }{ - { - name: "empty collections", - jsonData: `{ - "deleteMissing": true, - "collections": [] - }`, - expectError: true, - expectCollectionsCount: 7, - expectEvents: nil, - }, - { - name: "one of the collections has invalid data", - jsonData: `{ - "collections": [ - { - "name": "import1", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - }, - { - "name": "import 2", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - } - ] - }`, - expectError: true, - expectCollectionsCount: 7, - expectEvents: map[string]int{ - "OnModelBeforeCreate": 2, - }, - }, - { - name: "test empty base collection schema", - jsonData: `{ - "collections": [ - { - "name": "import1" - }, - { - "name": "import2", - "type": "auth" - } - ] - }`, - expectError: true, - expectCollectionsCount: 7, - expectEvents: map[string]int{ - "OnModelBeforeCreate": 2, - }, - }, - { - name: "all imported collections has valid data", - jsonData: `{ - "collections": [ - { - "name": "import1", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - }, - { - "name": "import2", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - }, - { - "name": "import3", - "type": "auth" - } - ] - }`, - expectError: false, - expectCollectionsCount: 10, - expectEvents: map[string]int{ - "OnModelBeforeCreate": 3, - "OnModelAfterCreate": 3, - }, - }, - { - name: "new collection with existing name", - jsonData: `{ - "collections": [ - { - "name": "demo2", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - } - ] - }`, - expectError: true, - expectCollectionsCount: 7, - expectEvents: map[string]int{ - "OnModelBeforeCreate": 1, - }, - }, - { - name: "delete system + modified + new collection", - jsonData: `{ - "deleteMissing": true, - "collections": [ - { - "id":"sz5l5z67tg7gku0", - "name":"demo2", - "schema":[ - { - "id":"_2hlxbmp", - "name":"title", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - } - ] - }, - { - "name": "import1", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - } - ] - }`, - expectError: true, - expectCollectionsCount: 7, - expectEvents: map[string]int{ - "OnModelBeforeDelete": 5, - }, - }, - { - name: "modified + new collection", - jsonData: `{ - "collections": [ - { - "id":"sz5l5z67tg7gku0", - "name":"demo2", - "schema":[ - { - "id":"_2hlxbmp", - "name":"title_new", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - } - ] - }, - { - "name": "import1", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - }, - { - "name": "import2", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - } - ] - }`, - expectError: false, - expectCollectionsCount: 9, - expectEvents: map[string]int{ - "OnModelBeforeUpdate": 1, - "OnModelAfterUpdate": 1, - "OnModelBeforeCreate": 2, - "OnModelAfterCreate": 2, - }, - }, - { - name: "delete non-system + modified + new collection", - jsonData: `{ - "deleteMissing": true, - "collections": [ - { - "id": "kpv709sk2lqbqk8", - "system": true, - "name": "nologin", - "type": "auth", - "options": { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": [], - "manageRule": "@request.auth.collectionName = 'users'", - "minPasswordLength": 8, - "onlyEmailDomains": [], - "requireEmail": true - }, - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "schema": [ - { - "id": "x8zzktwe", - "name": "name", - "type": "text", - "system": false, - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ] - }, - { - "id":"sz5l5z67tg7gku0", - "name":"demo2", - "schema":[ - { - "id":"_2hlxbmp", - "name":"title", - "type":"text", - "system":false, - "required":true, - "unique":false, - "options":{ - "min":3, - "max":null, - "pattern":"" - } - } - ] - }, - { - "id": "test_deleted_collection_name_reuse", - "name": "demo1", - "schema": [ - { - "id":"fz6iql2m", - "name":"active", - "type":"bool" - } - ] - } - ] - }`, - expectError: false, - expectCollectionsCount: 3, - expectEvents: map[string]int{ - "OnModelBeforeUpdate": 2, - "OnModelAfterUpdate": 2, - "OnModelBeforeCreate": 1, - "OnModelAfterCreate": 1, - "OnModelBeforeDelete": 5, - "OnModelAfterDelete": 5, - }, - }, - } - - for _, s := range scenarios { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - form := forms.NewCollectionsImport(testApp) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("[%s] Failed to load form data: %v", s.name, loadErr) - continue - } - - err := form.Submit() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("[%s] Expected hasErr to be %v, got %v (%v)", s.name, s.expectError, hasErr, err) - } - - // check collections count - collections := []*models.Collection{} - if err := testApp.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - if len(collections) != s.expectCollectionsCount { - t.Errorf("[%s] Expected %d collections, got %d", s.name, s.expectCollectionsCount, len(collections)) - } - - // check events - if len(testApp.EventCalls) > len(s.expectEvents) { - t.Errorf("[%s] Expected events %v, got %v", s.name, s.expectEvents, testApp.EventCalls) - } - for event, expectedCalls := range s.expectEvents { - actualCalls := testApp.EventCalls[event] - if actualCalls != expectedCalls { - t.Errorf("[%s] Expected event %s to be called %d, got %d", s.name, event, expectedCalls, actualCalls) - } - } - } -} - -func TestCollectionsImportSubmitInterceptors(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collections := []*models.Collection{} - if err := app.Dao().CollectionQuery().All(&collections); err != nil { - t.Fatal(err) - } - - form := forms.NewCollectionsImport(app) - form.Collections = collections - - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptor1Called = true - return next() - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptor2Called = true - return testErr - } - } - - submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } -} diff --git a/forms/realtime_subscribe.go b/forms/realtime_subscribe.go deleted file mode 100644 index fc852fc807decc9e6657b0a7dc36c311916216fd..0000000000000000000000000000000000000000 --- a/forms/realtime_subscribe.go +++ /dev/null @@ -1,23 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" -) - -// RealtimeSubscribe is a realtime subscriptions request form. -type RealtimeSubscribe struct { - ClientId string `form:"clientId" json:"clientId"` - Subscriptions []string `form:"subscriptions" json:"subscriptions"` -} - -// NewRealtimeSubscribe creates new RealtimeSubscribe request form. -func NewRealtimeSubscribe() *RealtimeSubscribe { - return &RealtimeSubscribe{} -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RealtimeSubscribe) Validate() error { - return validation.ValidateStruct(form, - validation.Field(&form.ClientId, validation.Required, validation.Length(1, 255)), - ) -} diff --git a/forms/realtime_subscribe_test.go b/forms/realtime_subscribe_test.go deleted file mode 100644 index d1df830b52ff193e91d73258aa2881efe42aac8c..0000000000000000000000000000000000000000 --- a/forms/realtime_subscribe_test.go +++ /dev/null @@ -1,31 +0,0 @@ -package forms_test - -import ( - "strings" - "testing" - - "github.com/pocketbase/pocketbase/forms" -) - -func TestRealtimeSubscribeValidate(t *testing.T) { - scenarios := []struct { - clientId string - expectError bool - }{ - {"", true}, - {strings.Repeat("a", 256), true}, - {"test", false}, - } - - for i, s := range scenarios { - form := forms.NewRealtimeSubscribe() - form.ClientId = s.clientId - - err := form.Validate() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - } -} diff --git a/forms/record_email_change_confirm.go b/forms/record_email_change_confirm.go deleted file mode 100644 index 033252d8de2a3131388860672db2a7c420d38f33..0000000000000000000000000000000000000000 --- a/forms/record_email_change_confirm.go +++ /dev/null @@ -1,142 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/security" -) - -// RecordEmailChangeConfirm is an auth record email change confirmation form. -type RecordEmailChangeConfirm struct { - app core.App - dao *daos.Dao - collection *models.Collection - - Token string `form:"token" json:"token"` - Password string `form:"password" json:"password"` -} - -// NewRecordEmailChangeConfirm creates a new [RecordEmailChangeConfirm] form -// initialized with from the provided [core.App] and [models.Collection] instances. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordEmailChangeConfirm(app core.App, collection *models.Collection) *RecordEmailChangeConfirm { - return &RecordEmailChangeConfirm{ - app: app, - dao: app.Dao(), - collection: collection, - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordEmailChangeConfirm) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RecordEmailChangeConfirm) Validate() error { - return validation.ValidateStruct(form, - validation.Field( - &form.Token, - validation.Required, - validation.By(form.checkToken), - ), - validation.Field( - &form.Password, - validation.Required, - validation.Length(1, 100), - validation.By(form.checkPassword), - ), - ) -} - -func (form *RecordEmailChangeConfirm) checkToken(value any) error { - v, _ := value.(string) - if v == "" { - return nil // nothing to check - } - - authRecord, _, err := form.parseToken(v) - if err != nil { - return err - } - - if authRecord.Collection().Id != form.collection.Id { - return validation.NewError("validation_token_collection_mismatch", "The provided token is for different auth collection.") - } - - return nil -} - -func (form *RecordEmailChangeConfirm) checkPassword(value any) error { - v, _ := value.(string) - if v == "" { - return nil // nothing to check - } - - authRecord, _, _ := form.parseToken(form.Token) - if authRecord == nil || !authRecord.ValidatePassword(v) { - return validation.NewError("validation_invalid_password", "Missing or invalid auth record password.") - } - - return nil -} - -func (form *RecordEmailChangeConfirm) parseToken(token string) (*models.Record, string, error) { - // check token payload - claims, _ := security.ParseUnverifiedJWT(token) - newEmail, _ := claims["newEmail"].(string) - if newEmail == "" { - return nil, "", validation.NewError("validation_invalid_token_payload", "Invalid token payload - newEmail must be set.") - } - - // ensure that there aren't other users with the new email - if !form.dao.IsRecordValueUnique(form.collection.Id, schema.FieldNameEmail, newEmail) { - return nil, "", validation.NewError("validation_existing_token_email", "The new email address is already registered: "+newEmail) - } - - // verify that the token is not expired and its signature is valid - authRecord, err := form.dao.FindAuthRecordByToken( - token, - form.app.Settings().RecordEmailChangeToken.Secret, - ) - if err != nil || authRecord == nil { - return nil, "", validation.NewError("validation_invalid_token", "Invalid or expired token.") - } - - return authRecord, newEmail, nil -} - -// Submit validates and submits the auth record email change confirmation form. -// On success returns the updated auth record associated to `form.Token`. -// -// You can optionally provide a list of InterceptorWithRecordFunc to -// further modify the form behavior before persisting it. -func (form *RecordEmailChangeConfirm) Submit(interceptors ...InterceptorWithRecordFunc) (*models.Record, error) { - if err := form.Validate(); err != nil { - return nil, err - } - - authRecord, newEmail, err := form.parseToken(form.Token) - if err != nil { - return nil, err - } - - authRecord.SetEmail(newEmail) - authRecord.SetVerified(true) - authRecord.RefreshTokenKey() // invalidate old tokens - - interceptorsErr := runInterceptorsWithRecord(authRecord, func(m *models.Record) error { - return form.dao.SaveRecord(m) - }, interceptors...) - - if interceptorsErr != nil { - return nil, interceptorsErr - } - - return authRecord, nil -} diff --git a/forms/record_email_change_confirm_test.go b/forms/record_email_change_confirm_test.go deleted file mode 100644 index 9615228298fd7b44d3e7d20a87442900e0ee287e..0000000000000000000000000000000000000000 --- a/forms/record_email_change_confirm_test.go +++ /dev/null @@ -1,200 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestRecordEmailChangeConfirmValidateAndSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - jsonData string - expectedErrors []string - }{ - // empty payload - {"{}", []string{"token", "password"}}, - // empty data - { - `{"token": "", "password": ""}`, - []string{"token", "password"}, - }, - // invalid token payload - { - `{ - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZXhwIjoyMjA4OTg1MjYxfQ.quDgaCi2rGTRx3qO06CrFvHdeCua_5J7CCVWSaFhkus", - "password": "123456" - }`, - []string{"token", "password"}, - }, - // expired token - { - `{ - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJ0ZXN0X25ld0BleGFtcGxlLmNvbSIsImV4cCI6MTYwOTQ1NTY2MX0.n1OJXJEACMNPT9aMTO48cVJexIiZEtHsz4UNBIfMcf4", - "password": "123456" - }`, - []string{"token", "password"}, - }, - // existing new email - { - `{ - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJ0ZXN0MkBleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4NTI2MX0.Q_o6zpc2URggTU0mWv2CS0rIPbQhFdmrjZ-ASwHh1Ww", - "password": "1234567890" - }`, - []string{"token", "password"}, - }, - // wrong confirmation password - { - `{ - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJ0ZXN0X25ld0BleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4NTI2MX0.hmR7Ye23C68tS1LgHgYgT7NBJczTad34kzcT4sqW3FY", - "password": "123456" - }`, - []string{"password"}, - }, - // valid data - { - `{ - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJ0ZXN0X25ld0BleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4NTI2MX0.hmR7Ye23C68tS1LgHgYgT7NBJczTad34kzcT4sqW3FY", - "password": "1234567890" - }`, - []string{}, - }, - } - - for i, s := range scenarios { - form := forms.NewRecordEmailChangeConfirm(testApp, authCollection) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("(%d) Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(r *models.Record) error { - interceptorCalls++ - return next(r) - } - } - - record, err := form.Submit(interceptor) - - // check interceptor calls - expectInterceptorCalls := 1 - if len(s.expectedErrors) > 0 { - expectInterceptorCalls = 0 - } - if interceptorCalls != expectInterceptorCalls { - t.Errorf("[%d] Expected interceptor to be called %d, got %d", i, expectInterceptorCalls, interceptorCalls) - } - - // parse errors - errs, ok := err.(validation.Errors) - if !ok && err != nil { - t.Errorf("(%d) Failed to parse errors %v", i, err) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("(%d) Missing expected error key %q in %v", i, k, errs) - } - } - - if len(errs) > 0 { - continue - } - - claims, _ := security.ParseUnverifiedJWT(form.Token) - newEmail, _ := claims["newEmail"].(string) - - // check whether the user was updated - // --- - if record.Email() != newEmail { - t.Errorf("(%d) Expected record email %q, got %q", i, newEmail, record.Email()) - } - - if !record.Verified() { - t.Errorf("(%d) Expected record to be verified, got false", i) - } - - // shouldn't validate second time due to refreshed record token - if err := form.Validate(); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - } -} - -func TestRecordEmailChangeConfirmInterceptors(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - authRecord, err := testApp.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordEmailChangeConfirm(testApp, authCollection) - form.Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiY29sbGVjdGlvbklkIjoiX3BiX3VzZXJzX2F1dGhfIiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwibmV3RW1haWwiOiJ0ZXN0X25ld0BleGFtcGxlLmNvbSIsImV4cCI6MjIwODk4NTI2MX0.hmR7Ye23C68tS1LgHgYgT7NBJczTad34kzcT4sqW3FY" - form.Password = "1234567890" - interceptorEmail := authRecord.Email() - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptor1Called = true - return next(record) - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptorEmail = record.Email() - interceptor2Called = true - return testErr - } - } - - _, submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorEmail == authRecord.Email() { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} diff --git a/forms/record_email_change_request.go b/forms/record_email_change_request.go deleted file mode 100644 index 8e77932c26e1b3cd32e821d84cfbaac50d814581..0000000000000000000000000000000000000000 --- a/forms/record_email_change_request.go +++ /dev/null @@ -1,75 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/mails" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" -) - -// RecordEmailChangeRequest is an auth record email change request form. -type RecordEmailChangeRequest struct { - app core.App - dao *daos.Dao - record *models.Record - - NewEmail string `form:"newEmail" json:"newEmail"` -} - -// NewRecordEmailChangeRequest creates a new [RecordEmailChangeRequest] form -// initialized with from the provided [core.App] and [models.Record] instances. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordEmailChangeRequest(app core.App, record *models.Record) *RecordEmailChangeRequest { - return &RecordEmailChangeRequest{ - app: app, - dao: app.Dao(), - record: record, - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordEmailChangeRequest) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RecordEmailChangeRequest) Validate() error { - return validation.ValidateStruct(form, - validation.Field( - &form.NewEmail, - validation.Required, - validation.Length(1, 255), - is.EmailFormat, - validation.By(form.checkUniqueEmail), - ), - ) -} - -func (form *RecordEmailChangeRequest) checkUniqueEmail(value any) error { - v, _ := value.(string) - - if !form.dao.IsRecordValueUnique(form.record.Collection().Id, schema.FieldNameEmail, v) { - return validation.NewError("validation_record_email_exists", "User email already exists.") - } - - return nil -} - -// Submit validates and sends the change email request. -// -// You can optionally provide a list of InterceptorWithRecordFunc to -// further modify the form behavior before persisting it. -func (form *RecordEmailChangeRequest) Submit(interceptors ...InterceptorWithRecordFunc) error { - if err := form.Validate(); err != nil { - return err - } - - return runInterceptorsWithRecord(form.record, func(m *models.Record) error { - return mails.SendRecordChangeEmail(form.app, m, form.NewEmail) - }, interceptors...) -} diff --git a/forms/record_email_change_request_test.go b/forms/record_email_change_request_test.go deleted file mode 100644 index daec3ffd300300e6ecf59f894880a27b02613a76..0000000000000000000000000000000000000000 --- a/forms/record_email_change_request_test.go +++ /dev/null @@ -1,149 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" -) - -func TestRecordEmailChangeRequestValidateAndSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - user, err := testApp.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - jsonData string - expectedErrors []string - }{ - // empty payload - {"{}", []string{"newEmail"}}, - // empty data - { - `{"newEmail": ""}`, - []string{"newEmail"}, - }, - // invalid email - { - `{"newEmail": "invalid"}`, - []string{"newEmail"}, - }, - // existing email token - { - `{"newEmail": "test2@example.com"}`, - []string{"newEmail"}, - }, - // valid new email - { - `{"newEmail": "test_new@example.com"}`, - []string{}, - }, - } - - for i, s := range scenarios { - testApp.TestMailer.TotalSend = 0 // reset - form := forms.NewRecordEmailChangeRequest(testApp, user) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("(%d) Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(r *models.Record) error { - interceptorCalls++ - return next(r) - } - } - - err := form.Submit(interceptor) - - // check interceptor calls - expectInterceptorCalls := 1 - if len(s.expectedErrors) > 0 { - expectInterceptorCalls = 0 - } - if interceptorCalls != expectInterceptorCalls { - t.Errorf("[%d] Expected interceptor to be called %d, got %d", i, expectInterceptorCalls, interceptorCalls) - } - - // parse errors - errs, ok := err.(validation.Errors) - if !ok && err != nil { - t.Errorf("(%d) Failed to parse errors %v", i, err) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("(%d) Missing expected error key %q in %v", i, k, errs) - } - } - - expectedMails := 1 - if len(s.expectedErrors) > 0 { - expectedMails = 0 - } - if testApp.TestMailer.TotalSend != expectedMails { - t.Errorf("(%d) Expected %d mail(s) to be sent, got %d", i, expectedMails, testApp.TestMailer.TotalSend) - } - } -} - -func TestRecordEmailChangeRequestInterceptors(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authRecord, err := testApp.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordEmailChangeRequest(testApp, authRecord) - form.NewEmail = "test_new@example.com" - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptor1Called = true - return next(record) - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptor2Called = true - return testErr - } - } - - submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } -} diff --git a/forms/record_oauth2_login.go b/forms/record_oauth2_login.go deleted file mode 100644 index 8eb6bc7ffb643a7482f8fab32f719871e3effbb0..0000000000000000000000000000000000000000 --- a/forms/record_oauth2_login.go +++ /dev/null @@ -1,234 +0,0 @@ -package forms - -import ( - "errors" - "fmt" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/auth" - "github.com/pocketbase/pocketbase/tools/security" - "golang.org/x/oauth2" -) - -// RecordOAuth2Login is an auth record OAuth2 login form. -type RecordOAuth2Login struct { - app core.App - dao *daos.Dao - collection *models.Collection - - // Optional auth record that will be used if no external - // auth relation is found (if it is from the same collection) - loggedAuthRecord *models.Record - - // The name of the OAuth2 client provider (eg. "google") - Provider string `form:"provider" json:"provider"` - - // The authorization code returned from the initial request. - Code string `form:"code" json:"code"` - - // The code verifier sent with the initial request as part of the code_challenge. - CodeVerifier string `form:"codeVerifier" json:"codeVerifier"` - - // The redirect url sent with the initial request. - RedirectUrl string `form:"redirectUrl" json:"redirectUrl"` - - // Additional data that will be used for creating a new auth record - // if an existing OAuth2 account doesn't exist. - CreateData map[string]any `form:"createData" json:"createData"` -} - -// NewRecordOAuth2Login creates a new [RecordOAuth2Login] form with -// initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordOAuth2Login(app core.App, collection *models.Collection, optAuthRecord *models.Record) *RecordOAuth2Login { - form := &RecordOAuth2Login{ - app: app, - dao: app.Dao(), - collection: collection, - loggedAuthRecord: optAuthRecord, - } - - return form -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordOAuth2Login) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RecordOAuth2Login) Validate() error { - return validation.ValidateStruct(form, - validation.Field(&form.Provider, validation.Required, validation.By(form.checkProviderName)), - validation.Field(&form.Code, validation.Required), - validation.Field(&form.CodeVerifier, validation.Required), - validation.Field(&form.RedirectUrl, validation.Required, is.URL), - ) -} - -func (form *RecordOAuth2Login) checkProviderName(value any) error { - name, _ := value.(string) - - config, ok := form.app.Settings().NamedAuthProviderConfigs()[name] - if !ok || !config.Enabled { - return validation.NewError("validation_invalid_provider", fmt.Sprintf("%q is missing or is not enabled.", name)) - } - - return nil -} - -// Submit validates and submits the form. -// -// If an auth record doesn't exist, it will make an attempt to create it -// based on the fetched OAuth2 profile data via a local [RecordUpsert] form. -// You can intercept/modify the create form by setting the optional beforeCreateFuncs argument. -// -// On success returns the authorized record model and the fetched provider's data. -func (form *RecordOAuth2Login) Submit( - beforeCreateFuncs ...func(createForm *RecordUpsert, authRecord *models.Record, authUser *auth.AuthUser) error, -) (*models.Record, *auth.AuthUser, error) { - if err := form.Validate(); err != nil { - return nil, nil, err - } - - if !form.collection.AuthOptions().AllowOAuth2Auth { - return nil, nil, errors.New("OAuth2 authentication is not allowed for the auth collection.") - } - - provider, err := auth.NewProviderByName(form.Provider) - if err != nil { - return nil, nil, err - } - - // load provider configuration - providerConfig := form.app.Settings().NamedAuthProviderConfigs()[form.Provider] - if err := providerConfig.SetupProvider(provider); err != nil { - return nil, nil, err - } - - provider.SetRedirectUrl(form.RedirectUrl) - - // fetch token - token, err := provider.FetchToken( - form.Code, - oauth2.SetAuthURLParam("code_verifier", form.CodeVerifier), - ) - if err != nil { - return nil, nil, err - } - - // fetch external auth user - authUser, err := provider.FetchAuthUser(token) - if err != nil { - return nil, nil, err - } - - var authRecord *models.Record - - // check for existing relation with the auth record - rel, _ := form.dao.FindExternalAuthByProvider(form.Provider, authUser.Id) - switch { - case rel != nil: - authRecord, err = form.dao.FindRecordById(form.collection.Id, rel.RecordId) - if err != nil { - return nil, authUser, err - } - case form.loggedAuthRecord != nil && form.loggedAuthRecord.Collection().Id == form.collection.Id: - // fallback to the logged auth record (if any) - authRecord = form.loggedAuthRecord - case authUser.Email != "": - // look for an existing auth record by the external auth record's email - authRecord, _ = form.dao.FindAuthRecordByEmail(form.collection.Id, authUser.Email) - } - - saveErr := form.dao.RunInTransaction(func(txDao *daos.Dao) error { - if authRecord == nil { - authRecord = models.NewRecord(form.collection) - authRecord.RefreshId() - authRecord.MarkAsNew() - createForm := NewRecordUpsert(form.app, authRecord) - createForm.SetFullManageAccess(true) - createForm.SetDao(txDao) - if authUser.Username != "" && usernameRegex.MatchString(authUser.Username) { - createForm.Username = form.dao.SuggestUniqueAuthRecordUsername(form.collection.Id, authUser.Username) - } - - // load custom data - createForm.LoadData(form.CreateData) - - // load the OAuth2 profile data as fallback - if createForm.Email == "" { - createForm.Email = authUser.Email - } - createForm.Verified = false - if createForm.Email == authUser.Email { - // mark as verified as long as it matches the OAuth2 data (even if the email is empty) - createForm.Verified = true - } - if createForm.Password == "" { - createForm.Password = security.RandomString(30) - createForm.PasswordConfirm = createForm.Password - } - - for _, f := range beforeCreateFuncs { - if f == nil { - continue - } - if err := f(createForm, authRecord, authUser); err != nil { - return err - } - } - - // create the new auth record - if err := createForm.Submit(); err != nil { - return err - } - } else { - // update the existing auth record empty email if the authUser has one - // (this is in case previously the auth record was created - // with an OAuth2 provider that didn't return an email address) - if authRecord.Email() == "" && authUser.Email != "" { - authRecord.SetEmail(authUser.Email) - if err := txDao.SaveRecord(authRecord); err != nil { - return err - } - } - - // update the existing auth record verified state - // (only if the auth record doesn't have an email or the auth record email match with the one in authUser) - if !authRecord.Verified() && (authRecord.Email() == "" || authRecord.Email() == authUser.Email) { - authRecord.SetVerified(true) - if err := txDao.SaveRecord(authRecord); err != nil { - return err - } - } - } - - // create ExternalAuth relation if missing - if rel == nil { - rel = &models.ExternalAuth{ - CollectionId: authRecord.Collection().Id, - RecordId: authRecord.Id, - Provider: form.Provider, - ProviderId: authUser.Id, - } - if err := txDao.SaveExternalAuth(rel); err != nil { - return err - } - } - - return nil - }) - - if saveErr != nil { - return nil, authUser, saveErr - } - - return authRecord, authUser, nil -} diff --git a/forms/record_oauth2_login_test.go b/forms/record_oauth2_login_test.go deleted file mode 100644 index 637ed0837772daedf6e5f1eb14df61e955479ffc..0000000000000000000000000000000000000000 --- a/forms/record_oauth2_login_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tests" -) - -func TestUserOauth2LoginValidate(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - testName string - collectionName string - jsonData string - expectedErrors []string - }{ - { - "empty payload", - "users", - "{}", - []string{"provider", "code", "codeVerifier", "redirectUrl"}, - }, - { - "empty data", - "users", - `{"provider":"","code":"","codeVerifier":"","redirectUrl":""}`, - []string{"provider", "code", "codeVerifier", "redirectUrl"}, - }, - { - "missing provider", - "users", - `{"provider":"missing","code":"123","codeVerifier":"123","redirectUrl":"https://example.com"}`, - []string{"provider"}, - }, - { - "disabled provider", - "users", - `{"provider":"github","code":"123","codeVerifier":"123","redirectUrl":"https://example.com"}`, - []string{"provider"}, - }, - { - "enabled provider", - "users", - `{"provider":"gitlab","code":"123","codeVerifier":"123","redirectUrl":"https://example.com"}`, - []string{}, - }, - } - - for _, s := range scenarios { - authCollection, _ := app.Dao().FindCollectionByNameOrId(s.collectionName) - if authCollection == nil { - t.Errorf("[%s] Failed to fetch auth collection", s.testName) - } - - form := forms.NewRecordOAuth2Login(app, authCollection, nil) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("[%s] Failed to load form data: %v", s.testName, loadErr) - continue - } - - err := form.Validate() - - // parse errors - errs, ok := err.(validation.Errors) - if !ok && err != nil { - t.Errorf("[%s] Failed to parse errors %v", s.testName, err) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("[%s] Expected error keys %v, got %v", s.testName, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("[%s] Missing expected error key %q in %v", s.testName, k, errs) - } - } - } -} - -// @todo consider mocking a Oauth2 provider to test Submit diff --git a/forms/record_password_login.go b/forms/record_password_login.go deleted file mode 100644 index 2c01e9a805a8d6c7631af9e7dc7fcc5a1053c8ba..0000000000000000000000000000000000000000 --- a/forms/record_password_login.go +++ /dev/null @@ -1,77 +0,0 @@ -package forms - -import ( - "errors" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" -) - -// RecordPasswordLogin is record username/email + password login form. -type RecordPasswordLogin struct { - app core.App - dao *daos.Dao - collection *models.Collection - - Identity string `form:"identity" json:"identity"` - Password string `form:"password" json:"password"` -} - -// NewRecordPasswordLogin creates a new [RecordPasswordLogin] form initialized -// with from the provided [core.App] and [models.Collection] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordPasswordLogin(app core.App, collection *models.Collection) *RecordPasswordLogin { - return &RecordPasswordLogin{ - app: app, - dao: app.Dao(), - collection: collection, - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordPasswordLogin) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RecordPasswordLogin) Validate() error { - return validation.ValidateStruct(form, - validation.Field(&form.Identity, validation.Required, validation.Length(1, 255)), - validation.Field(&form.Password, validation.Required, validation.Length(1, 255)), - ) -} - -// Submit validates and submits the form. -// On success returns the authorized record model. -func (form *RecordPasswordLogin) Submit() (*models.Record, error) { - if err := form.Validate(); err != nil { - return nil, err - } - - authOptions := form.collection.AuthOptions() - - if !authOptions.AllowEmailAuth && !authOptions.AllowUsernameAuth { - return nil, errors.New("Password authentication is not allowed for the collection.") - } - - var record *models.Record - var fetchErr error - - if authOptions.AllowEmailAuth && - (!authOptions.AllowUsernameAuth || is.EmailFormat.Validate(form.Identity) == nil) { - record, fetchErr = form.dao.FindAuthRecordByEmail(form.collection.Id, form.Identity) - } else { - record, fetchErr = form.dao.FindAuthRecordByUsername(form.collection.Id, form.Identity) - } - - if fetchErr != nil || !record.ValidatePassword(form.Password) { - return nil, errors.New("Invalid login credentials.") - } - - return record, nil -} diff --git a/forms/record_password_login_test.go b/forms/record_password_login_test.go deleted file mode 100644 index c36dc72dd48f677509387c5dc2b82e7e56379f6b..0000000000000000000000000000000000000000 --- a/forms/record_password_login_test.go +++ /dev/null @@ -1,130 +0,0 @@ -package forms_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tests" -) - -func TestRecordEmailLoginValidateAndSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - scenarios := []struct { - testName string - collectionName string - identity string - password string - expectError bool - }{ - { - "empty data", - "users", - "", - "", - true, - }, - - // username - { - "existing username + wrong password", - "users", - "users75657", - "invalid", - true, - }, - { - "missing username + valid password", - "users", - "clients57772", // not in the "users" collection - "1234567890", - true, - }, - { - "existing username + valid password but in restricted username auth collection", - "clients", - "clients57772", - "1234567890", - true, - }, - { - "existing username + valid password but in restricted username and email auth collection", - "nologin", - "test_username", - "1234567890", - true, - }, - { - "existing username + valid password", - "users", - "users75657", - "1234567890", - false, - }, - - // email - { - "existing email + wrong password", - "users", - "test@example.com", - "invalid", - true, - }, - { - "missing email + valid password", - "users", - "test_missing@example.com", - "1234567890", - true, - }, - { - "existing username + valid password but in restricted username auth collection", - "clients", - "test@example.com", - "1234567890", - false, - }, - { - "existing username + valid password but in restricted username and email auth collection", - "nologin", - "test@example.com", - "1234567890", - true, - }, - { - "existing email + valid password", - "users", - "test@example.com", - "1234567890", - false, - }, - } - - for _, s := range scenarios { - authCollection, err := testApp.Dao().FindCollectionByNameOrId(s.collectionName) - if err != nil { - t.Errorf("[%s] Failed to fetch auth collection: %v", s.testName, err) - } - - form := forms.NewRecordPasswordLogin(testApp, authCollection) - form.Identity = s.identity - form.Password = s.password - - record, err := form.Submit() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("[%s] Expected hasErr to be %v, got %v (%v)", s.testName, s.expectError, hasErr, err) - continue - } - - if hasErr { - continue - } - - if record.Email() != s.identity && record.Username() != s.identity { - t.Errorf("[%s] Expected record with identity %q, got \n%v", s.testName, s.identity, record) - } - } -} diff --git a/forms/record_password_reset_confirm.go b/forms/record_password_reset_confirm.go deleted file mode 100644 index 89722c5d592f6b12c5fbc52bc916bd9584586e36..0000000000000000000000000000000000000000 --- a/forms/record_password_reset_confirm.go +++ /dev/null @@ -1,103 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms/validators" - "github.com/pocketbase/pocketbase/models" -) - -// RecordPasswordResetConfirm is an auth record password reset confirmation form. -type RecordPasswordResetConfirm struct { - app core.App - collection *models.Collection - dao *daos.Dao - - Token string `form:"token" json:"token"` - Password string `form:"password" json:"password"` - PasswordConfirm string `form:"passwordConfirm" json:"passwordConfirm"` -} - -// NewRecordPasswordResetConfirm creates a new [RecordPasswordResetConfirm] -// form initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordPasswordResetConfirm(app core.App, collection *models.Collection) *RecordPasswordResetConfirm { - return &RecordPasswordResetConfirm{ - app: app, - dao: app.Dao(), - collection: collection, - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordPasswordResetConfirm) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RecordPasswordResetConfirm) Validate() error { - minPasswordLength := form.collection.AuthOptions().MinPasswordLength - - return validation.ValidateStruct(form, - validation.Field(&form.Token, validation.Required, validation.By(form.checkToken)), - validation.Field(&form.Password, validation.Required, validation.Length(minPasswordLength, 100)), - validation.Field(&form.PasswordConfirm, validation.Required, validation.By(validators.Compare(form.Password))), - ) -} - -func (form *RecordPasswordResetConfirm) checkToken(value any) error { - v, _ := value.(string) - if v == "" { - return nil // nothing to check - } - - record, err := form.dao.FindAuthRecordByToken( - v, - form.app.Settings().RecordPasswordResetToken.Secret, - ) - if err != nil || record == nil { - return validation.NewError("validation_invalid_token", "Invalid or expired token.") - } - - if record.Collection().Id != form.collection.Id { - return validation.NewError("validation_token_collection_mismatch", "The provided token is for different auth collection.") - } - - return nil -} - -// Submit validates and submits the form. -// On success returns the updated auth record associated to `form.Token`. -// -// You can optionally provide a list of InterceptorWithRecordFunc to -// further modify the form behavior before persisting it. -func (form *RecordPasswordResetConfirm) Submit(interceptors ...InterceptorWithRecordFunc) (*models.Record, error) { - if err := form.Validate(); err != nil { - return nil, err - } - - authRecord, err := form.dao.FindAuthRecordByToken( - form.Token, - form.app.Settings().RecordPasswordResetToken.Secret, - ) - if err != nil { - return nil, err - } - - if err := authRecord.SetPassword(form.Password); err != nil { - return nil, err - } - - interceptorsErr := runInterceptorsWithRecord(authRecord, func(m *models.Record) error { - return form.dao.SaveRecord(m) - }, interceptors...) - - if interceptorsErr != nil { - return nil, interceptorsErr - } - - return authRecord, nil -} diff --git a/forms/record_password_reset_confirm_test.go b/forms/record_password_reset_confirm_test.go deleted file mode 100644 index 543a9c9ccbd0f75003ad421431946990957adc7c..0000000000000000000000000000000000000000 --- a/forms/record_password_reset_confirm_test.go +++ /dev/null @@ -1,192 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestRecordPasswordResetConfirmValidateAndSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - jsonData string - expectedErrors []string - }{ - // empty data (Validate call check) - { - `{}`, - []string{"token", "password", "passwordConfirm"}, - }, - // expired token - { - `{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoxNjQwOTkxNjYxfQ.TayHoXkOTM0w8InkBEb86npMJEaf6YVUrxrRmMgFjeY", - "password":"12345678", - "passwordConfirm":"12345678" - }`, - []string{"token"}, - }, - // valid token but invalid passwords lengths - { - `{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg", - "password":"1234567", - "passwordConfirm":"1234567" - }`, - []string{"password"}, - }, - // valid token but mismatched passwordConfirm - { - `{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg", - "password":"12345678", - "passwordConfirm":"12345679" - }`, - []string{"passwordConfirm"}, - }, - // valid token and password - { - `{ - "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg", - "password":"12345678", - "passwordConfirm":"12345678" - }`, - []string{}, - }, - } - - for i, s := range scenarios { - form := forms.NewRecordPasswordResetConfirm(testApp, authCollection) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("(%d) Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(r *models.Record) error { - interceptorCalls++ - return next(r) - } - } - - record, submitErr := form.Submit(interceptor) - - // parse errors - errs, ok := submitErr.(validation.Errors) - if !ok && submitErr != nil { - t.Errorf("(%d) Failed to parse errors %v", i, submitErr) - continue - } - - // check interceptor calls - expectInterceptorCalls := 1 - if len(s.expectedErrors) > 0 { - expectInterceptorCalls = 0 - } - if interceptorCalls != expectInterceptorCalls { - t.Errorf("[%d] Expected interceptor to be called %d, got %d", i, expectInterceptorCalls, interceptorCalls) - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("(%d) Missing expected error key %q in %v", i, k, errs) - } - } - - if len(errs) > 0 || len(s.expectedErrors) > 0 { - continue - } - - claims, _ := security.ParseUnverifiedJWT(form.Token) - tokenRecordId := claims["id"] - - if record.Id != tokenRecordId { - t.Errorf("(%d) Expected record with id %s, got %v", i, tokenRecordId, record) - } - - if !record.LastResetSentAt().IsZero() { - t.Errorf("(%d) Expected record.LastResetSentAt to be empty, got %v", i, record.LastResetSentAt()) - } - - if !record.ValidatePassword(form.Password) { - t.Errorf("(%d) Expected the record password to have been updated to %q", i, form.Password) - } - } -} - -func TestRecordPasswordResetConfirmInterceptors(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - authRecord, err := testApp.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordPasswordResetConfirm(testApp, authCollection) - form.Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.R_4FOSUHIuJQ5Crl3PpIPCXMsoHzuTaNlccpXg_3FOg" - form.Password = "1234567890" - form.PasswordConfirm = "1234567890" - interceptorTokenKey := authRecord.TokenKey() - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptor1Called = true - return next(record) - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptorTokenKey = record.TokenKey() - interceptor2Called = true - return testErr - } - } - - _, submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorTokenKey == authRecord.TokenKey() { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} diff --git a/forms/record_password_reset_request.go b/forms/record_password_reset_request.go deleted file mode 100644 index 9b5c4d1ab77bb6c944a32c46ad5413f282da5a4c..0000000000000000000000000000000000000000 --- a/forms/record_password_reset_request.go +++ /dev/null @@ -1,91 +0,0 @@ -package forms - -import ( - "errors" - "time" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/mails" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/types" -) - -// RecordPasswordResetRequest is an auth record reset password request form. -type RecordPasswordResetRequest struct { - app core.App - dao *daos.Dao - collection *models.Collection - resendThreshold float64 // in seconds - - Email string `form:"email" json:"email"` -} - -// NewRecordPasswordResetRequest creates a new [RecordPasswordResetRequest] -// form initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordPasswordResetRequest(app core.App, collection *models.Collection) *RecordPasswordResetRequest { - return &RecordPasswordResetRequest{ - app: app, - dao: app.Dao(), - collection: collection, - resendThreshold: 120, // 2 min - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordPasswordResetRequest) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -// -// This method doesn't checks whether auth record with `form.Email` exists (this is done on Submit). -func (form *RecordPasswordResetRequest) Validate() error { - return validation.ValidateStruct(form, - validation.Field( - &form.Email, - validation.Required, - validation.Length(1, 255), - is.EmailFormat, - ), - ) -} - -// Submit validates and submits the form. -// On success, sends a password reset email to the `form.Email` auth record. -// -// You can optionally provide a list of InterceptorWithRecordFunc to -// further modify the form behavior before persisting it. -func (form *RecordPasswordResetRequest) Submit(interceptors ...InterceptorWithRecordFunc) error { - if err := form.Validate(); err != nil { - return err - } - - authRecord, err := form.dao.FindAuthRecordByEmail(form.collection.Id, form.Email) - if err != nil { - return err - } - - now := time.Now().UTC() - lastResetSentAt := authRecord.LastResetSentAt().Time() - if now.Sub(lastResetSentAt).Seconds() < form.resendThreshold { - return errors.New("You've already requested a password reset.") - } - - // update last sent timestamp - authRecord.Set(schema.FieldNameLastResetSentAt, types.NowDateTime()) - - return runInterceptorsWithRecord(authRecord, func(m *models.Record) error { - if err := mails.SendRecordPasswordReset(form.app, m); err != nil { - return err - } - - return form.dao.SaveRecord(m) - }, interceptors...) -} diff --git a/forms/record_password_reset_request_test.go b/forms/record_password_reset_request_test.go deleted file mode 100644 index ff0db1fa9fe74f9634ad787099d90cabcfe83904..0000000000000000000000000000000000000000 --- a/forms/record_password_reset_request_test.go +++ /dev/null @@ -1,170 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - "time" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestRecordPasswordResetRequestSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - jsonData string - expectError bool - }{ - // empty field (Validate call check) - { - `{"email":""}`, - true, - }, - // invalid email field (Validate call check) - { - `{"email":"invalid"}`, - true, - }, - // nonexisting user - { - `{"email":"missing@example.com"}`, - true, - }, - // existing user - { - `{"email":"test@example.com"}`, - false, - }, - // existing user - reached send threshod - { - `{"email":"test@example.com"}`, - true, - }, - } - - now := types.NowDateTime() - time.Sleep(1 * time.Millisecond) - - for i, s := range scenarios { - testApp.TestMailer.TotalSend = 0 // reset - form := forms.NewRecordPasswordResetRequest(testApp, authCollection) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("(%d) Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(r *models.Record) error { - interceptorCalls++ - return next(r) - } - } - - err := form.Submit(interceptor) - - // check interceptor calls - expectInterceptorCalls := 1 - if s.expectError { - expectInterceptorCalls = 0 - } - if interceptorCalls != expectInterceptorCalls { - t.Errorf("[%d] Expected interceptor to be called %d, got %d", i, expectInterceptorCalls, interceptorCalls) - } - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - expectedMails := 1 - if s.expectError { - expectedMails = 0 - } - if testApp.TestMailer.TotalSend != expectedMails { - t.Errorf("(%d) Expected %d mail(s) to be sent, got %d", i, expectedMails, testApp.TestMailer.TotalSend) - } - - if s.expectError { - continue - } - - // check whether LastResetSentAt was updated - user, err := testApp.Dao().FindAuthRecordByEmail(authCollection.Id, form.Email) - if err != nil { - t.Errorf("(%d) Expected user with email %q to exist, got nil", i, form.Email) - continue - } - - if user.LastResetSentAt().Time().Sub(now.Time()) < 0 { - t.Errorf("(%d) Expected LastResetSentAt to be after %v, got %v", i, now, user.LastResetSentAt()) - } - } -} - -func TestRecordPasswordResetRequestInterceptors(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - authRecord, err := testApp.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordPasswordResetRequest(testApp, authCollection) - form.Email = authRecord.Email() - interceptorLastResetSentAt := authRecord.LastResetSentAt() - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptor1Called = true - return next(record) - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptorLastResetSentAt = record.LastResetSentAt() - interceptor2Called = true - return testErr - } - } - - submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorLastResetSentAt.String() == authRecord.LastResetSentAt().String() { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} diff --git a/forms/record_upsert.go b/forms/record_upsert.go deleted file mode 100644 index 0944c827517e0204542b6c3d37ac688c4c93ffb3..0000000000000000000000000000000000000000 --- a/forms/record_upsert.go +++ /dev/null @@ -1,781 +0,0 @@ -package forms - -import ( - "encoding/json" - "errors" - "fmt" - "log" - "net/http" - "regexp" - "strconv" - "strings" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms/validators" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/rest" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/spf13/cast" -) - -// username value regex pattern -var usernameRegex = regexp.MustCompile(`^[\w][\w\.]*$`) - -// RecordUpsert is a [models.Record] upsert (create/update) form. -type RecordUpsert struct { - app core.App - dao *daos.Dao - manageAccess bool - record *models.Record - - filesToUpload map[string][]*rest.UploadedFile - filesToDelete []string // names list - - // base model fields - Id string `json:"id"` - - // auth collection fields - // --- - Username string `json:"username"` - Email string `json:"email"` - EmailVisibility bool `json:"emailVisibility"` - Verified bool `json:"verified"` - Password string `json:"password"` - PasswordConfirm string `json:"passwordConfirm"` - OldPassword string `json:"oldPassword"` - // --- - - Data map[string]any `json:"data"` -} - -// NewRecordUpsert creates a new [RecordUpsert] form with initializer -// config created from the provided [core.App] and [models.Record] instances -// (for create you could pass a pointer to an empty Record - models.NewRecord(collection)). -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordUpsert(app core.App, record *models.Record) *RecordUpsert { - form := &RecordUpsert{ - app: app, - dao: app.Dao(), - record: record, - filesToDelete: []string{}, - filesToUpload: map[string][]*rest.UploadedFile{}, - } - - form.loadFormDefaults() - - return form -} - -// SetFullManageAccess sets the manageAccess bool flag of the current -// form to enable/disable directly changing some system record fields -// (often used with auth collection records). -func (form *RecordUpsert) SetFullManageAccess(fullManageAccess bool) { - form.manageAccess = fullManageAccess -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordUpsert) SetDao(dao *daos.Dao) { - form.dao = dao -} - -func (form *RecordUpsert) loadFormDefaults() { - form.Id = form.record.Id - - if form.record.Collection().IsAuth() { - form.Username = form.record.Username() - form.Email = form.record.Email() - form.EmailVisibility = form.record.EmailVisibility() - form.Verified = form.record.Verified() - } - - form.Data = map[string]any{} - for _, field := range form.record.Collection().Schema.Fields() { - form.Data[field.Name] = form.record.Get(field.Name) - } -} - -func (form *RecordUpsert) getContentType(r *http.Request) string { - t := r.Header.Get("Content-Type") - for i, c := range t { - if c == ' ' || c == ';' { - return t[:i] - } - } - return t -} - -func (form *RecordUpsert) extractRequestData(r *http.Request, keyPrefix string) (map[string]any, error) { - switch form.getContentType(r) { - case "application/json": - return form.extractJsonData(r, keyPrefix) - case "multipart/form-data": - return form.extractMultipartFormData(r, keyPrefix) - default: - return nil, errors.New("Unsupported request Content-Type.") - } -} - -func (form *RecordUpsert) extractJsonData(r *http.Request, keyPrefix string) (map[string]any, error) { - result := map[string]any{} - - err := rest.CopyJsonBody(r, &result) - - if keyPrefix != "" { - parts := strings.Split(keyPrefix, ".") - for _, part := range parts { - if result[part] == nil { - break - } - if v, ok := result[part].(map[string]any); ok { - result = v - } - } - } - - return result, err -} - -func (form *RecordUpsert) extractMultipartFormData(r *http.Request, keyPrefix string) (map[string]any, error) { - result := map[string]any{} - - // parse form data (if not already) - if err := r.ParseMultipartForm(rest.DefaultMaxMemory); err != nil { - return result, err - } - - arrayValueSupportTypes := schema.ArraybleFieldTypes() - - form.filesToUpload = map[string][]*rest.UploadedFile{} - - for fullKey, values := range r.PostForm { - key := fullKey - if keyPrefix != "" { - key = strings.TrimPrefix(key, keyPrefix+".") - } - - if len(values) == 0 { - result[key] = nil - continue - } - - field := form.record.Collection().Schema.GetFieldByName(key) - if field != nil && list.ExistInSlice(field.Type, arrayValueSupportTypes) { - result[key] = values - } else { - result[key] = values[0] - } - } - - // load uploaded files (if any) - for _, field := range form.record.Collection().Schema.Fields() { - if field.Type != schema.FieldTypeFile { - continue // not a file field - } - - key := field.Name - fullKey := key - if keyPrefix != "" { - fullKey = keyPrefix + "." + key - } - - files, err := rest.FindUploadedFiles(r, fullKey) - if err != nil || len(files) == 0 { - if err != nil && err != http.ErrMissingFile && form.app.IsDebug() { - log.Printf("%q uploaded file error: %v\n", fullKey, err) - } - - // skip invalid or missing file(s) - continue - } - - options, ok := field.Options.(*schema.FileOptions) - if !ok { - continue - } - - if form.filesToUpload[key] == nil { - form.filesToUpload[key] = []*rest.UploadedFile{} - } - - if options.MaxSelect == 1 { - form.filesToUpload[key] = append(form.filesToUpload[key], files[0]) - } else if options.MaxSelect > 1 { - form.filesToUpload[key] = append(form.filesToUpload[key], files...) - } - } - - return result, nil -} - -func (form *RecordUpsert) normalizeData() error { - for _, field := range form.record.Collection().Schema.Fields() { - if v, ok := form.Data[field.Name]; ok { - form.Data[field.Name] = field.PrepareValue(v) - } - } - return nil -} - -// LoadRequest extracts the json or multipart/form-data request data -// and lods it into the form. -// -// File upload is supported only via multipart/form-data. -// -// To DELETE previously uploaded file(s) you can suffix the field name -// with the file index or filename (eg. `myfile.0`) and set it to null or empty string. -// For single file upload fields, you can skip the index and directly -// reset the field using its field name (eg. `myfile = null`). -func (form *RecordUpsert) LoadRequest(r *http.Request, keyPrefix string) error { - requestData, err := form.extractRequestData(r, keyPrefix) - if err != nil { - return err - } - - return form.LoadData(requestData) -} - -// LoadData loads and normalizes the provided data into the form. -// -// To DELETE previously uploaded file(s) you can suffix the field name -// with the file index or filename (eg. `myfile.0`) and set it to null or empty string. -// For single file upload fields, you can skip the index and directly -// reset the field using its field name (eg. `myfile = null`). -func (form *RecordUpsert) LoadData(requestData map[string]any) error { - // load base system fields - if v, ok := requestData["id"]; ok { - form.Id = cast.ToString(v) - } - - // load auth system fields - if form.record.Collection().IsAuth() { - if v, ok := requestData["username"]; ok { - form.Username = cast.ToString(v) - } - if v, ok := requestData["email"]; ok { - form.Email = cast.ToString(v) - } - if v, ok := requestData["emailVisibility"]; ok { - form.EmailVisibility = cast.ToBool(v) - } - if v, ok := requestData["verified"]; ok { - form.Verified = cast.ToBool(v) - } - if v, ok := requestData["password"]; ok { - form.Password = cast.ToString(v) - } - if v, ok := requestData["passwordConfirm"]; ok { - form.PasswordConfirm = cast.ToString(v) - } - if v, ok := requestData["oldPassword"]; ok { - form.OldPassword = cast.ToString(v) - } - } - - // extend the record schema data with the request data - extendedData := form.record.SchemaData() - rawData, err := json.Marshal(requestData) - if err != nil { - return err - } - if err := json.Unmarshal(rawData, &extendedData); err != nil { - return err - } - - for _, field := range form.record.Collection().Schema.Fields() { - key := field.Name - value := extendedData[key] - value = field.PrepareValue(value) - - if field.Type != schema.FieldTypeFile { - form.Data[key] = value - continue - } - - options, _ := field.Options.(*schema.FileOptions) - oldNames := list.ToUniqueStringSlice(form.Data[key]) - - // ----------------------------------------------------------- - // Delete previously uploaded file(s) - // ----------------------------------------------------------- - - // if empty value was set, mark all previously uploaded files for deletion - if len(list.ToUniqueStringSlice(value)) == 0 && len(oldNames) > 0 { - form.filesToDelete = append(form.filesToDelete, oldNames...) - form.Data[key] = []string{} - } else if len(oldNames) > 0 { - indexesToDelete := make([]int, 0, len(extendedData)) - - // search for individual file name to delete (eg. "file.test.png = null") - for i, name := range oldNames { - if v, ok := extendedData[key+"."+name]; ok && cast.ToString(v) == "" { - indexesToDelete = append(indexesToDelete, i) - } - } - - // search for individual file index to delete (eg. "file.0 = null") - keyExp, _ := regexp.Compile(`^` + regexp.QuoteMeta(key) + `\.\d+$`) - for indexedKey := range extendedData { - if keyExp.MatchString(indexedKey) && cast.ToString(extendedData[indexedKey]) == "" { - index, indexErr := strconv.Atoi(indexedKey[len(key)+1:]) - if indexErr != nil || index >= len(oldNames) { - continue - } - indexesToDelete = append(indexesToDelete, index) - } - } - - // slice to fill only with the non-deleted indexes - nonDeleted := make([]string, 0, len(oldNames)) - for i, name := range oldNames { - // not marked for deletion - if !list.ExistInSlice(i, indexesToDelete) { - nonDeleted = append(nonDeleted, name) - continue - } - - // store the id to actually delete the file later - form.filesToDelete = append(form.filesToDelete, name) - } - form.Data[key] = nonDeleted - } - - // ----------------------------------------------------------- - // Check for new uploaded file - // ----------------------------------------------------------- - - if len(form.filesToUpload[key]) == 0 { - continue - } - - // refresh oldNames list - oldNames = list.ToUniqueStringSlice(form.Data[key]) - - if options.MaxSelect == 1 { - // delete previous file(s) before replacing - if len(oldNames) > 0 { - form.filesToDelete = list.ToUniqueStringSlice(append(form.filesToDelete, oldNames...)) - } - form.Data[key] = form.filesToUpload[key][0].Name() - } else if options.MaxSelect > 1 { - // append the id of each uploaded file instance - for _, file := range form.filesToUpload[key] { - oldNames = append(oldNames, file.Name()) - } - form.Data[key] = oldNames - } - } - - return form.normalizeData() -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RecordUpsert) Validate() error { - // base form fields validator - baseFieldsRules := []*validation.FieldRules{ - validation.Field( - &form.Id, - validation.When( - form.record.IsNew(), - validation.Length(models.DefaultIdLength, models.DefaultIdLength), - validation.Match(idRegex), - ).Else(validation.In(form.record.Id)), - ), - } - - // auth fields validators - if form.record.Collection().IsAuth() { - baseFieldsRules = append(baseFieldsRules, - validation.Field( - &form.Username, - // require only on update, because on create we fallback to auto generated username - validation.When(!form.record.IsNew(), validation.Required), - validation.Length(3, 100), - validation.Match(usernameRegex), - validation.By(form.checkUniqueUsername), - ), - validation.Field( - &form.Email, - validation.When( - form.record.Collection().AuthOptions().RequireEmail, - validation.Required, - ), - // don't allow direct email change (or unset) if the form doesn't have manage access permissions - // (aka. allow only admin or authorized auth models to directly update the field) - validation.When( - !form.record.IsNew() && !form.manageAccess, - validation.In(form.record.Email()), - ), - validation.Length(1, 255), - is.EmailFormat, - validation.By(form.checkEmailDomain), - validation.By(form.checkUniqueEmail), - ), - validation.Field( - &form.Verified, - // don't allow changing verified if the form doesn't have manage access permissions - // (aka. allow only admin or authorized auth models to directly change the field) - validation.When( - !form.manageAccess, - validation.In(form.record.Verified()), - ), - ), - validation.Field( - &form.Password, - validation.When(form.record.IsNew(), validation.Required), - validation.Length(form.record.Collection().AuthOptions().MinPasswordLength, 72), - ), - validation.Field( - &form.PasswordConfirm, - validation.When( - (form.record.IsNew() || form.Password != ""), - validation.Required, - ), - validation.By(validators.Compare(form.Password)), - ), - validation.Field( - &form.OldPassword, - // require old password only on update when: - // - form.manageAccess is not set - // - changing the existing password - validation.When( - !form.record.IsNew() && !form.manageAccess && form.Password != "", - validation.Required, - validation.By(form.checkOldPassword), - ), - ), - ) - } - - if err := validation.ValidateStruct(form, baseFieldsRules...); err != nil { - return err - } - - // record data validator - return validators.NewRecordDataValidator( - form.dao, - form.record, - form.filesToUpload, - ).Validate(form.Data) -} - -func (form *RecordUpsert) checkUniqueUsername(value any) error { - v, _ := value.(string) - if v == "" { - return nil - } - - isUnique := form.dao.IsRecordValueUnique( - form.record.Collection().Id, - schema.FieldNameUsername, - v, - form.record.Id, - ) - if !isUnique { - return validation.NewError("validation_invalid_username", "The username is invalid or already in use.") - } - - return nil -} - -func (form *RecordUpsert) checkUniqueEmail(value any) error { - v, _ := value.(string) - if v == "" { - return nil - } - - isUnique := form.dao.IsRecordValueUnique( - form.record.Collection().Id, - schema.FieldNameEmail, - v, - form.record.Id, - ) - if !isUnique { - return validation.NewError("validation_invalid_email", "The email is invalid or already in use.") - } - - return nil -} - -func (form *RecordUpsert) checkEmailDomain(value any) error { - val, _ := value.(string) - if val == "" { - return nil // nothing to check - } - - domain := val[strings.LastIndex(val, "@")+1:] - only := form.record.Collection().AuthOptions().OnlyEmailDomains - except := form.record.Collection().AuthOptions().ExceptEmailDomains - - // only domains check - if len(only) > 0 && !list.ExistInSlice(domain, only) { - return validation.NewError("validation_email_domain_not_allowed", "Email domain is not allowed.") - } - - // except domains check - if len(except) > 0 && list.ExistInSlice(domain, except) { - return validation.NewError("validation_email_domain_not_allowed", "Email domain is not allowed.") - } - - return nil -} - -func (form *RecordUpsert) checkOldPassword(value any) error { - v, _ := value.(string) - if v == "" { - return nil // nothing to check - } - - if !form.record.ValidatePassword(v) { - return validation.NewError("validation_invalid_old_password", "Missing or invalid old password.") - } - - return nil -} - -func (form *RecordUpsert) ValidateAndFill() error { - if err := form.Validate(); err != nil { - return err - } - - isNew := form.record.IsNew() - - // custom insertion id can be set only on create - if isNew && form.Id != "" { - form.record.SetId(form.Id) - form.record.MarkAsNew() - } - - // set auth fields - if form.record.Collection().IsAuth() { - // generate a default username during create (if missing) - if form.record.IsNew() && form.Username == "" { - baseUsername := form.record.Collection().Name + security.RandomStringWithAlphabet(5, "123456789") - form.Username = form.dao.SuggestUniqueAuthRecordUsername(form.record.Collection().Id, baseUsername) - } - - if form.Username != "" { - if err := form.record.SetUsername(form.Username); err != nil { - return err - } - } - - if isNew || form.manageAccess { - if err := form.record.SetEmail(form.Email); err != nil { - return err - } - } - - if err := form.record.SetEmailVisibility(form.EmailVisibility); err != nil { - return err - } - - if form.manageAccess { - if err := form.record.SetVerified(form.Verified); err != nil { - return err - } - } - - if form.Password != "" { - if err := form.record.SetPassword(form.Password); err != nil { - return err - } - } - } - - // bulk load the remaining form data - form.record.Load(form.Data) - - return nil -} - -// DrySubmit performs a form submit within a transaction and reverts it. -// For actual record persistence, check the `form.Submit()` method. -// -// This method doesn't handle file uploads/deletes or trigger any app events! -func (form *RecordUpsert) DrySubmit(callback func(txDao *daos.Dao) error) error { - isNew := form.record.IsNew() - - if err := form.ValidateAndFill(); err != nil { - return err - } - - // use the default app.Dao to prevent changing the transaction form.Dao - // and causing "transaction has already been committed or rolled back" error - return form.app.Dao().RunInTransaction(func(txDao *daos.Dao) error { - tx, ok := txDao.DB().(*dbx.Tx) - if !ok { - return errors.New("failed to get transaction db") - } - defer tx.Rollback() - - txDao.BeforeCreateFunc = nil - txDao.AfterCreateFunc = nil - txDao.BeforeUpdateFunc = nil - txDao.AfterUpdateFunc = nil - - if err := txDao.SaveRecord(form.record); err != nil { - return err - } - - // restore record isNew state - if isNew { - form.record.MarkAsNew() - } - - if callback != nil { - return callback(txDao) - } - - return nil - }) -} - -// Submit validates the form and upserts the form Record model. -// -// You can optionally provide a list of InterceptorFunc to further -// modify the form behavior before persisting it. -func (form *RecordUpsert) Submit(interceptors ...InterceptorFunc) error { - if err := form.ValidateAndFill(); err != nil { - return err - } - - return runInterceptors(func() error { - if !form.record.HasId() { - form.record.RefreshId() - form.record.MarkAsNew() - } - - // upload new files (if any) - if err := form.processFilesToUpload(); err != nil { - return fmt.Errorf("failed to process the uploaded files: %w", err) - } - - // persist the record model - if saveErr := form.dao.SaveRecord(form.record); saveErr != nil { - // try to cleanup the successfully uploaded files - if _, err := form.deleteFilesByNamesList(form.getFilesToUploadNames()); err != nil && form.app.IsDebug() { - log.Println(err) - } - - return fmt.Errorf("failed to save the record: %w", saveErr) - } - - // delete old files (if any) - // - // for now fail silently to avoid reupload when `form.Submit()` - // is called manually (aka. not from an api request)... - if err := form.processFilesToDelete(); err != nil && form.app.IsDebug() { - log.Println(err) - } - - return nil - }, interceptors...) -} - -func (form *RecordUpsert) getFilesToUploadNames() []string { - names := []string{} - - for fieldKey := range form.filesToUpload { - for _, file := range form.filesToUpload[fieldKey] { - names = append(names, file.Name()) - } - } - - return names -} - -func (form *RecordUpsert) processFilesToUpload() error { - if len(form.filesToUpload) == 0 { - return nil // no parsed file fields - } - - if !form.record.HasId() { - return errors.New("the record is not persisted yet") - } - - fs, err := form.app.NewFilesystem() - if err != nil { - return err - } - defer fs.Close() - - var uploadErrors []error // list of upload errors - var uploaded []string // list of uploaded file paths - - for fieldKey := range form.filesToUpload { - for i, file := range form.filesToUpload[fieldKey] { - path := form.record.BaseFilesPath() + "/" + file.Name() - if err := fs.UploadMultipart(file.Header(), path); err == nil { - // keep track of the already uploaded file - uploaded = append(uploaded, path) - } else { - // store the upload error - uploadErrors = append(uploadErrors, fmt.Errorf("file %d: %v", i, err)) - } - } - } - - if len(uploadErrors) > 0 { - // cleanup - try to delete the successfully uploaded files (if any) - form.deleteFilesByNamesList(uploaded) - - return fmt.Errorf("failed to upload all files: %v", uploadErrors) - } - - return nil -} - -func (form *RecordUpsert) processFilesToDelete() (err error) { - form.filesToDelete, err = form.deleteFilesByNamesList(form.filesToDelete) - return -} - -// deleteFiles deletes a list of record files by their names. -// Returns the failed/remaining files. -func (form *RecordUpsert) deleteFilesByNamesList(filenames []string) ([]string, error) { - if len(filenames) == 0 { - return filenames, nil // nothing to delete - } - - if !form.record.HasId() { - return filenames, errors.New("the record doesn't have a unique ID") - } - - fs, err := form.app.NewFilesystem() - if err != nil { - return filenames, err - } - defer fs.Close() - - var deleteErrors []error - - for i := len(filenames) - 1; i >= 0; i-- { - filename := filenames[i] - path := form.record.BaseFilesPath() + "/" + filename - - if err := fs.Delete(path); err == nil { - // remove the deleted file from the list - filenames = append(filenames[:i], filenames[i+1:]...) - - // try to delete the related file thumbs (if any) - fs.DeletePrefix(form.record.BaseFilesPath() + "/thumbs_" + filename + "/") - } else { - // store the delete error - deleteErrors = append(deleteErrors, fmt.Errorf("file %d: %v", i, err)) - } - } - - if len(deleteErrors) > 0 { - return filenames, fmt.Errorf("failed to delete all files: %v", deleteErrors) - } - - return filenames, nil -} diff --git a/forms/record_upsert_test.go b/forms/record_upsert_test.go deleted file mode 100644 index 834813a732f0e69dae873acd7dfc331e5d3d48f2..0000000000000000000000000000000000000000 --- a/forms/record_upsert_test.go +++ /dev/null @@ -1,865 +0,0 @@ -package forms_test - -import ( - "bytes" - "encoding/json" - "errors" - "net/http" - "net/http/httptest" - "path/filepath" - "strings" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/list" -) - -func hasRecordFile(app core.App, record *models.Record, filename string) bool { - fs, _ := app.NewFilesystem() - defer fs.Close() - - fileKey := filepath.Join( - record.Collection().Id, - record.Id, - filename, - ) - - exists, _ := fs.Exists(fileKey) - - return exists -} - -func TestNewRecordUpsert(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, _ := app.Dao().FindCollectionByNameOrId("demo2") - record := models.NewRecord(collection) - record.Set("title", "test_value") - - form := forms.NewRecordUpsert(app, record) - - val := form.Data["title"] - if val != "test_value" { - t.Errorf("Expected record data to be loaded, got %v", form.Data) - } -} - -func TestRecordUpsertLoadRequestUnsupported(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - record, err := app.Dao().FindRecordById("demo2", "0yxhwia2amd8gec") - if err != nil { - t.Fatal(err) - } - - testData := "title=test123" - - form := forms.NewRecordUpsert(app, record) - req := httptest.NewRequest(http.MethodGet, "/", strings.NewReader(testData)) - req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationForm) - - if err := form.LoadRequest(req, ""); err == nil { - t.Fatal("Expected LoadRequest to fail, got nil") - } -} - -func TestRecordUpsertLoadRequestJson(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - record, err := app.Dao().FindRecordById("demo1", "84nmscqy84lsi1t") - if err != nil { - t.Fatal(err) - } - - testData := map[string]any{ - "a": map[string]any{ - "b": map[string]any{ - "id": "test_id", - "text": "test123", - "unknown": "test456", - // file fields unset/delete - "file_one": nil, - "file_many.0": "", // delete by index - "file_many.1": "test.png", // should be ignored - "file_many.300_WlbFWSGmW9.png": nil, // delete by filename - }, - }, - } - - form := forms.NewRecordUpsert(app, record) - jsonBody, _ := json.Marshal(testData) - req := httptest.NewRequest(http.MethodGet, "/", bytes.NewReader(jsonBody)) - req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON) - loadErr := form.LoadRequest(req, "a.b") - if loadErr != nil { - t.Fatal(loadErr) - } - - if form.Id != "test_id" { - t.Fatalf("Expect id field to be %q, got %q", "test_id", form.Id) - } - - if v, ok := form.Data["text"]; !ok || v != "test123" { - t.Fatalf("Expect title field to be %q, got %q", "test123", v) - } - - if v, ok := form.Data["unknown"]; ok { - t.Fatalf("Didn't expect unknown field to be set, got %v", v) - } - - fileOne, ok := form.Data["file_one"] - if !ok { - t.Fatal("Expect file_one field to be set") - } - if fileOne != "" { - t.Fatalf("Expect file_one field to be empty string, got %v", fileOne) - } - - fileMany, ok := form.Data["file_many"] - if !ok || fileMany == nil { - t.Fatal("Expect file_many field to be set") - } - manyfilesRemains := len(list.ToUniqueStringSlice(fileMany)) - if manyfilesRemains != 1 { - t.Fatalf("Expect only 1 file_many to remain, got \n%v", fileMany) - } -} - -func TestRecordUpsertLoadRequestMultipart(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - record, err := app.Dao().FindRecordById("demo1", "84nmscqy84lsi1t") - if err != nil { - t.Fatal(err) - } - - formData, mp, err := tests.MockMultipartData(map[string]string{ - "a.b.id": "test_id", - "a.b.text": "test123", - "a.b.unknown": "test456", - // file fields unset/delete - "a.b.file_one": "", - "a.b.file_many.0": "", - "a.b.file_many.300_WlbFWSGmW9.png": "test.png", // delete by name - "a.b.file_many.1": "test.png", // should be ignored - }, "file_many") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, record) - req := httptest.NewRequest(http.MethodGet, "/", formData) - req.Header.Set(echo.HeaderContentType, mp.FormDataContentType()) - loadErr := form.LoadRequest(req, "a.b") - if loadErr != nil { - t.Fatal(loadErr) - } - - if form.Id != "test_id" { - t.Fatalf("Expect id field to be %q, got %q", "test_id", form.Id) - } - - if v, ok := form.Data["text"]; !ok || v != "test123" { - t.Fatalf("Expect text field to be %q, got %q", "test123", v) - } - - if v, ok := form.Data["unknown"]; ok { - t.Fatalf("Didn't expect unknown field to be set, got %v", v) - } - - fileOne, ok := form.Data["file_one"] - if !ok { - t.Fatal("Expect file_one field to be set") - } - if fileOne != "" { - t.Fatalf("Expect file_one field to be empty string, got %v", fileOne) - } - - fileMany, ok := form.Data["file_many"] - if !ok || fileMany == nil { - t.Fatal("Expect file_many field to be set") - } - manyfilesRemains := len(list.ToUniqueStringSlice(fileMany)) - expectedRemains := 2 // -2 from 3 removed + 1 new upload - if manyfilesRemains != expectedRemains { - t.Fatalf("Expect file_many to be %d, got %d (%v)", expectedRemains, manyfilesRemains, fileMany) - } -} - -func TestRecordUpsertLoadData(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - record, err := app.Dao().FindRecordById("demo2", "llvuca81nly1qls") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, record) - - loadErr := form.LoadData(map[string]any{ - "title": "test_new", - "active": true, - }) - if loadErr != nil { - t.Fatal(loadErr) - } - - if v, ok := form.Data["title"]; !ok || v != "test_new" { - t.Fatalf("Expect title field to be %v, got %v", "test_new", v) - } - - if v, ok := form.Data["active"]; !ok || v != true { - t.Fatalf("Expect active field to be %v, got %v", true, v) - } -} - -func TestRecordUpsertDrySubmitFailure(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, _ := app.Dao().FindCollectionByNameOrId("demo1") - recordBefore, err := app.Dao().FindRecordById(collection.Id, "al1h9ijdeojtsjy") - if err != nil { - t.Fatal(err) - } - - formData, mp, err := tests.MockMultipartData(map[string]string{ - "title": "abc", - "rel_one": "missing", - }) - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, recordBefore) - req := httptest.NewRequest(http.MethodGet, "/", formData) - req.Header.Set(echo.HeaderContentType, mp.FormDataContentType()) - form.LoadRequest(req, "") - - callbackCalls := 0 - - // ensure that validate is triggered - // --- - result := form.DrySubmit(func(txDao *daos.Dao) error { - callbackCalls++ - return nil - }) - if result == nil { - t.Fatal("Expected error, got nil") - } - if callbackCalls != 0 { - t.Fatalf("Expected callbackCalls to be 0, got %d", callbackCalls) - } - - // ensure that the record changes weren't persisted - // --- - recordAfter, err := app.Dao().FindRecordById(collection.Id, recordBefore.Id) - if err != nil { - t.Fatal(err) - } - - if recordAfter.GetString("title") == "abc" { - t.Fatalf("Expected record.title to be %v, got %v", recordAfter.GetString("title"), "abc") - } - - if recordAfter.GetString("rel_one") == "missing" { - t.Fatalf("Expected record.rel_one to be %s, got %s", recordBefore.GetString("rel_one"), "missing") - } -} - -func TestRecordUpsertDrySubmitSuccess(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, _ := app.Dao().FindCollectionByNameOrId("demo1") - recordBefore, err := app.Dao().FindRecordById(collection.Id, "84nmscqy84lsi1t") - if err != nil { - t.Fatal(err) - } - - formData, mp, err := tests.MockMultipartData(map[string]string{ - "title": "dry_test", - "file_one": "", - }, "file_many") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, recordBefore) - req := httptest.NewRequest(http.MethodGet, "/", formData) - req.Header.Set(echo.HeaderContentType, mp.FormDataContentType()) - form.LoadRequest(req, "") - - callbackCalls := 0 - - result := form.DrySubmit(func(txDao *daos.Dao) error { - callbackCalls++ - return nil - }) - if result != nil { - t.Fatalf("Expected nil, got error %v", result) - } - - // ensure callback was called - if callbackCalls != 1 { - t.Fatalf("Expected callbackCalls to be 1, got %d", callbackCalls) - } - - // ensure that the record changes weren't persisted - // --- - recordAfter, err := app.Dao().FindRecordById(collection.Id, recordBefore.Id) - if err != nil { - t.Fatal(err) - } - - if recordAfter.GetString("title") == "dry_test" { - t.Fatalf("Expected record.title to be %v, got %v", recordAfter.GetString("title"), "dry_test") - } - if recordAfter.GetString("file_one") == "" { - t.Fatal("Expected record.file_one to not be changed, got empty string") - } - - // file wasn't removed - if !hasRecordFile(app, recordAfter, recordAfter.GetString("file_one")) { - t.Fatal("file_one file should not have been deleted") - } -} - -func TestRecordUpsertSubmitFailure(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo1") - if err != nil { - t.Fatal(err) - } - - recordBefore, err := app.Dao().FindRecordById(collection.Id, "84nmscqy84lsi1t") - if err != nil { - t.Fatal(err) - } - - formData, mp, err := tests.MockMultipartData(map[string]string{ - "text": "abc", - "bool": "false", - "select_one": "invalid", - "file_many": "invalid", - "email": "invalid", - }, "file_one") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, recordBefore) - req := httptest.NewRequest(http.MethodGet, "/", formData) - req.Header.Set(echo.HeaderContentType, mp.FormDataContentType()) - form.LoadRequest(req, "") - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorCalls++ - return next() - } - } - - // ensure that validate is triggered - // --- - result := form.Submit(interceptor) - if result == nil { - t.Fatal("Expected error, got nil") - } - - // check interceptor calls - // --- - if interceptorCalls != 0 { - t.Fatalf("Expected interceptor to be called 0 times, got %d", interceptorCalls) - } - - // ensure that the record changes weren't persisted - // --- - recordAfter, err := app.Dao().FindRecordById(collection.Id, recordBefore.Id) - if err != nil { - t.Fatal(err) - } - - if v := recordAfter.Get("text"); v == "abc" { - t.Fatalf("Expected record.text not to change, got %v", v) - } - if v := recordAfter.Get("bool"); v == false { - t.Fatalf("Expected record.bool not to change, got %v", v) - } - if v := recordAfter.Get("select_one"); v == "invalid" { - t.Fatalf("Expected record.select_one not to change, got %v", v) - } - if v := recordAfter.Get("email"); v == "invalid" { - t.Fatalf("Expected record.email not to change, got %v", v) - } - if v := recordAfter.GetStringSlice("file_many"); len(v) != 3 { - t.Fatalf("Expected record.file_many not to change, got %v", v) - } - - // ensure the files weren't removed - for _, f := range recordAfter.GetStringSlice("file_many") { - if !hasRecordFile(app, recordAfter, f) { - t.Fatal("file_many file should not have been deleted") - } - } -} - -func TestRecordUpsertSubmitSuccess(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, _ := app.Dao().FindCollectionByNameOrId("demo1") - recordBefore, err := app.Dao().FindRecordById(collection.Id, "84nmscqy84lsi1t") - if err != nil { - t.Fatal(err) - } - - formData, mp, err := tests.MockMultipartData(map[string]string{ - "text": "test_save", - "bool": "true", - "select_one": "optionA", - "file_one": "", - }, "file_many.1", "file_many") // replace + new file - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, recordBefore) - req := httptest.NewRequest(http.MethodGet, "/", formData) - req.Header.Set(echo.HeaderContentType, mp.FormDataContentType()) - form.LoadRequest(req, "") - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorCalls++ - return next() - } - } - - result := form.Submit(interceptor) - if result != nil { - t.Fatalf("Expected nil, got error %v", result) - } - - // check interceptor calls - // --- - if interceptorCalls != 1 { - t.Fatalf("Expected interceptor to be called 1 time, got %d", interceptorCalls) - } - - // ensure that the record changes were persisted - // --- - recordAfter, err := app.Dao().FindRecordById(collection.Id, recordBefore.Id) - if err != nil { - t.Fatal(err) - } - - if v := recordAfter.GetString("text"); v != "test_save" { - t.Fatalf("Expected record.text to be %v, got %v", v, "test_save") - } - - if hasRecordFile(app, recordAfter, recordAfter.GetString("file_one")) { - t.Fatal("Expected record.file_one to be deleted") - } - - fileMany := (recordAfter.GetStringSlice("file_many")) - if len(fileMany) != 4 { // 1 replace + 1 new - t.Fatalf("Expected 4 record.file_many, got %d (%v)", len(fileMany), fileMany) - } - for _, f := range fileMany { - if !hasRecordFile(app, recordAfter, f) { - t.Fatalf("Expected file %q to exist", f) - } - } -} - -func TestRecordUpsertSubmitInterceptors(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, _ := app.Dao().FindCollectionByNameOrId("demo3") - record, err := app.Dao().FindRecordById(collection.Id, "mk5fmymtx4wsprk") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, record) - form.Data["title"] = "test_new" - - testErr := errors.New("test_error") - interceptorRecordTitle := "" - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptor1Called = true - return next() - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorRecordTitle = record.GetString("title") // to check if the record was filled - interceptor2Called = true - return testErr - } - } - - submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorRecordTitle != form.Data["title"].(string) { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} - -func TestRecordUpsertWithCustomId(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo3") - if err != nil { - t.Fatal(err) - } - - existingRecord, err := app.Dao().FindRecordById(collection.Id, "mk5fmymtx4wsprk") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - name string - data map[string]string - record *models.Record - expectError bool - }{ - { - "empty data", - map[string]string{}, - models.NewRecord(collection), - false, - }, - { - "empty id", - map[string]string{"id": ""}, - models.NewRecord(collection), - false, - }, - { - "id < 15 chars", - map[string]string{"id": "a23"}, - models.NewRecord(collection), - true, - }, - { - "id > 15 chars", - map[string]string{"id": "a234567890123456"}, - models.NewRecord(collection), - true, - }, - { - "id = 15 chars (invalid chars)", - map[string]string{"id": "a@3456789012345"}, - models.NewRecord(collection), - true, - }, - { - "id = 15 chars (valid chars)", - map[string]string{"id": "a23456789012345"}, - models.NewRecord(collection), - false, - }, - { - "changing the id of an existing record", - map[string]string{"id": "b23456789012345"}, - existingRecord, - true, - }, - { - "using the same existing record id", - map[string]string{"id": existingRecord.Id}, - existingRecord, - false, - }, - { - "skipping the id for existing record", - map[string]string{}, - existingRecord, - false, - }, - } - - for _, scenario := range scenarios { - formData, mp, err := tests.MockMultipartData(scenario.data) - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordUpsert(app, scenario.record) - req := httptest.NewRequest(http.MethodGet, "/", formData) - req.Header.Set(echo.HeaderContentType, mp.FormDataContentType()) - form.LoadRequest(req, "") - - dryErr := form.DrySubmit(nil) - hasDryErr := dryErr != nil - - submitErr := form.Submit() - hasSubmitErr := submitErr != nil - - if hasDryErr != hasSubmitErr { - t.Errorf("[%s] Expected hasDryErr and hasSubmitErr to have the same value, got %v vs %v", scenario.name, hasDryErr, hasSubmitErr) - } - - if hasSubmitErr != scenario.expectError { - t.Errorf("[%s] Expected hasSubmitErr to be %v, got %v (%v)", scenario.name, scenario.expectError, hasSubmitErr, submitErr) - } - - if id, ok := scenario.data["id"]; ok && id != "" && !hasSubmitErr { - _, err := app.Dao().FindRecordById(collection.Id, id) - if err != nil { - t.Errorf("[%s] Expected to find record with id %s, got %v", scenario.name, id, err) - } - } - } -} - -func TestRecordUpsertAuthRecord(t *testing.T) { - scenarios := []struct { - testName string - existingId string - data map[string]any - manageAccess bool - expectError bool - }{ - { - "empty create data", - "", - map[string]any{}, - false, - true, - }, - { - "empty update data", - "4q1xlclmfloku33", - map[string]any{}, - false, - false, - }, - { - "minimum valid create data", - "", - map[string]any{ - "password": "12345678", - "passwordConfirm": "12345678", - }, - false, - false, - }, - { - "create with all allowed auth fields", - "", - map[string]any{ - "username": "test_new", - "email": "test_new@example.com", - "emailVisibility": true, - "password": "12345678", - "passwordConfirm": "12345678", - }, - false, - false, - }, - - // username - { - "invalid username characters", - "", - map[string]any{ - "username": "test abc!@#", - "password": "12345678", - "passwordConfirm": "12345678", - }, - false, - true, - }, - { - "invalid username length (less than 3)", - "", - map[string]any{ - "username": "ab", - "password": "12345678", - "passwordConfirm": "12345678", - }, - false, - true, - }, - { - "invalid username length (more than 100)", - "", - map[string]any{ - "username": strings.Repeat("a", 101), - "password": "12345678", - "passwordConfirm": "12345678", - }, - false, - true, - }, - - // verified - { - "try to set verified without managed access", - "", - map[string]any{ - "verified": true, - "password": "12345678", - "passwordConfirm": "12345678", - }, - false, - true, - }, - { - "try to update verified without managed access", - "4q1xlclmfloku33", - map[string]any{ - "verified": true, - }, - false, - true, - }, - { - "set verified with managed access", - "", - map[string]any{ - "verified": true, - "password": "12345678", - "passwordConfirm": "12345678", - }, - true, - false, - }, - { - "update verified with managed access", - "4q1xlclmfloku33", - map[string]any{ - "verified": true, - }, - true, - false, - }, - - // email - { - "try to update email without managed access", - "4q1xlclmfloku33", - map[string]any{ - "email": "test_update@example.com", - }, - false, - true, - }, - { - "update email with managed access", - "4q1xlclmfloku33", - map[string]any{ - "email": "test_update@example.com", - }, - true, - false, - }, - - // password - { - "try to update password without managed access", - "4q1xlclmfloku33", - map[string]any{ - "password": "1234567890", - "passwordConfirm": "1234567890", - }, - false, - true, - }, - { - "update password without managed access but with oldPassword", - "4q1xlclmfloku33", - map[string]any{ - "oldPassword": "1234567890", - "password": "1234567890", - "passwordConfirm": "1234567890", - }, - false, - false, - }, - { - "update email with managed access (without oldPassword)", - "4q1xlclmfloku33", - map[string]any{ - "password": "1234567890", - "passwordConfirm": "1234567890", - }, - true, - false, - }, - } - - for _, s := range scenarios { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - record := models.NewRecord(collection) - if s.existingId != "" { - var err error - record, err = app.Dao().FindRecordById(collection.Id, s.existingId) - if err != nil { - t.Errorf("[%s] Failed to fetch auth record with id %s", s.testName, s.existingId) - continue - } - } - - form := forms.NewRecordUpsert(app, record) - form.SetFullManageAccess(s.manageAccess) - if err := form.LoadData(s.data); err != nil { - t.Errorf("[%s] Failed to load form data", s.testName) - continue - } - - submitErr := form.Submit() - - hasErr := submitErr != nil - if hasErr != s.expectError { - t.Errorf("[%s] Expected hasErr %v, got %v (%v)", s.testName, s.expectError, hasErr, submitErr) - } - - if !hasErr && record.Username() == "" { - t.Errorf("[%s] Expected username to be set, got empty string: \n%v", s.testName, record) - } - } -} diff --git a/forms/record_verification_confirm.go b/forms/record_verification_confirm.go deleted file mode 100644 index a4f15f46dccfc04b75957a564fbfa02f23fe07e5..0000000000000000000000000000000000000000 --- a/forms/record_verification_confirm.go +++ /dev/null @@ -1,114 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/spf13/cast" -) - -// RecordVerificationConfirm is an auth record email verification confirmation form. -type RecordVerificationConfirm struct { - app core.App - collection *models.Collection - dao *daos.Dao - - Token string `form:"token" json:"token"` -} - -// NewRecordVerificationConfirm creates a new [RecordVerificationConfirm] -// form initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordVerificationConfirm(app core.App, collection *models.Collection) *RecordVerificationConfirm { - return &RecordVerificationConfirm{ - app: app, - dao: app.Dao(), - collection: collection, - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordVerificationConfirm) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *RecordVerificationConfirm) Validate() error { - return validation.ValidateStruct(form, - validation.Field(&form.Token, validation.Required, validation.By(form.checkToken)), - ) -} - -func (form *RecordVerificationConfirm) checkToken(value any) error { - v, _ := value.(string) - if v == "" { - return nil // nothing to check - } - - claims, _ := security.ParseUnverifiedJWT(v) - email := cast.ToString(claims["email"]) - if email == "" { - return validation.NewError("validation_invalid_token_claims", "Missing email token claim.") - } - - record, err := form.dao.FindAuthRecordByToken( - v, - form.app.Settings().RecordVerificationToken.Secret, - ) - if err != nil || record == nil { - return validation.NewError("validation_invalid_token", "Invalid or expired token.") - } - - if record.Collection().Id != form.collection.Id { - return validation.NewError("validation_token_collection_mismatch", "The provided token is for different auth collection.") - } - - if record.Email() != email { - return validation.NewError("validation_token_email_mismatch", "The record email doesn't match with the requested token claims.") - } - - return nil -} - -// Submit validates and submits the form. -// On success returns the verified auth record associated to `form.Token`. -// -// You can optionally provide a list of InterceptorWithRecordFunc to -// further modify the form behavior before persisting it. -func (form *RecordVerificationConfirm) Submit(interceptors ...InterceptorWithRecordFunc) (*models.Record, error) { - if err := form.Validate(); err != nil { - return nil, err - } - - record, err := form.dao.FindAuthRecordByToken( - form.Token, - form.app.Settings().RecordVerificationToken.Secret, - ) - if err != nil { - return nil, err - } - - wasVerified := record.Verified() - - if !wasVerified { - record.SetVerified(true) - } - - interceptorsErr := runInterceptorsWithRecord(record, func(m *models.Record) error { - if wasVerified { - return nil // already verified - } - - return form.dao.SaveRecord(m) - }, interceptors...) - - if interceptorsErr != nil { - return nil, interceptorsErr - } - - return record, nil -} diff --git a/forms/record_verification_confirm_test.go b/forms/record_verification_confirm_test.go deleted file mode 100644 index d927f5b70127db4f3a7fcc6813f3f8c37af5a5bc..0000000000000000000000000000000000000000 --- a/forms/record_verification_confirm_test.go +++ /dev/null @@ -1,152 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestRecordVerificationConfirmValidateAndSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - jsonData string - expectError bool - }{ - // empty data (Validate call check) - { - `{}`, - true, - }, - // expired token (Validate call check) - { - `{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoxNjQwOTkxNjYxfQ.Avbt9IP8sBisVz_2AGrlxLDvangVq4PhL2zqQVYLKlE"}`, - true, - }, - // valid token (already verified record) - { - `{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Im9hcDY0MGNvdDR5cnUycyIsImVtYWlsIjoidGVzdDJAZXhhbXBsZS5jb20iLCJjb2xsZWN0aW9uSWQiOiJfcGJfdXNlcnNfYXV0aF8iLCJ0eXBlIjoiYXV0aFJlY29yZCIsImV4cCI6MjIwODk4NTI2MX0.PsOABmYUzGbd088g8iIBL4-pf7DUZm0W5Ju6lL5JVRg"}`, - false, - }, - // valid token (unverified record) - { - `{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.hL16TVmStHFdHLc4a860bRqJ3sFfzjv0_NRNzwsvsrc"}`, - false, - }, - } - - for i, s := range scenarios { - form := forms.NewRecordVerificationConfirm(testApp, authCollection) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("(%d) Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(r *models.Record) error { - interceptorCalls++ - return next(r) - } - } - - record, err := form.Submit(interceptor) - - // check interceptor calls - expectInterceptorCalls := 1 - if s.expectError { - expectInterceptorCalls = 0 - } - if interceptorCalls != expectInterceptorCalls { - t.Errorf("[%d] Expected interceptor to be called %d, got %d", i, expectInterceptorCalls, interceptorCalls) - } - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - if hasErr { - continue - } - - claims, _ := security.ParseUnverifiedJWT(form.Token) - tokenRecordId := claims["id"] - - if record.Id != tokenRecordId { - t.Errorf("(%d) Expected record.Id %q, got %q", i, tokenRecordId, record.Id) - } - - if !record.Verified() { - t.Errorf("(%d) Expected record.Verified() to be true, got false", i) - } - } -} - -func TestRecordVerificationConfirmInterceptors(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - authRecord, err := testApp.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordVerificationConfirm(testApp, authCollection) - form.Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRxMXhsY2xtZmxva3UzMyIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImNvbGxlY3Rpb25JZCI6Il9wYl91c2Vyc19hdXRoXyIsInR5cGUiOiJhdXRoUmVjb3JkIiwiZXhwIjoyMjA4OTg1MjYxfQ.hL16TVmStHFdHLc4a860bRqJ3sFfzjv0_NRNzwsvsrc" - interceptorVerified := authRecord.Verified() - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptor1Called = true - return next(record) - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptorVerified = record.Verified() - interceptor2Called = true - return testErr - } - } - - _, submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorVerified == authRecord.Verified() { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} diff --git a/forms/record_verification_request.go b/forms/record_verification_request.go deleted file mode 100644 index 3868d6107cc297ddb63ab7f40207752d89ccf366..0000000000000000000000000000000000000000 --- a/forms/record_verification_request.go +++ /dev/null @@ -1,101 +0,0 @@ -package forms - -import ( - "errors" - "time" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/mails" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/types" -) - -// RecordVerificationRequest is an auth record email verification request form. -type RecordVerificationRequest struct { - app core.App - collection *models.Collection - dao *daos.Dao - resendThreshold float64 // in seconds - - Email string `form:"email" json:"email"` -} - -// NewRecordVerificationRequest creates a new [RecordVerificationRequest] -// form initialized with from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewRecordVerificationRequest(app core.App, collection *models.Collection) *RecordVerificationRequest { - return &RecordVerificationRequest{ - app: app, - dao: app.Dao(), - collection: collection, - resendThreshold: 120, // 2 min - } -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *RecordVerificationRequest) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -// -// // This method doesn't verify that auth record with `form.Email` exists (this is done on Submit). -func (form *RecordVerificationRequest) Validate() error { - return validation.ValidateStruct(form, - validation.Field( - &form.Email, - validation.Required, - validation.Length(1, 255), - is.EmailFormat, - ), - ) -} - -// Submit validates and sends a verification request email -// to the `form.Email` auth record. -// -// You can optionally provide a list of InterceptorWithRecordFunc to -// further modify the form behavior before persisting it. -func (form *RecordVerificationRequest) Submit(interceptors ...InterceptorWithRecordFunc) error { - if err := form.Validate(); err != nil { - return err - } - - record, err := form.dao.FindFirstRecordByData( - form.collection.Id, - schema.FieldNameEmail, - form.Email, - ) - if err != nil { - return err - } - - if !record.Verified() { - now := time.Now().UTC() - lastVerificationSentAt := record.LastVerificationSentAt().Time() - if (now.Sub(lastVerificationSentAt)).Seconds() < form.resendThreshold { - return errors.New("A verification email was already sent.") - } - - // update last sent timestamp - record.SetLastVerificationSentAt(types.NowDateTime()) - } - - return runInterceptorsWithRecord(record, func(m *models.Record) error { - if m.Verified() { - return nil // already verified - } - - if err := mails.SendRecordVerification(form.app, m); err != nil { - return err - } - - return form.dao.SaveRecord(m) - }, interceptors...) -} diff --git a/forms/record_verification_request_test.go b/forms/record_verification_request_test.go deleted file mode 100644 index 82a6dc25fcaaae4a69d953e2abd68b7d8ad6cc67..0000000000000000000000000000000000000000 --- a/forms/record_verification_request_test.go +++ /dev/null @@ -1,188 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "testing" - "time" - - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestRecordVerificationRequestSubmit(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("clients") - if err != nil { - t.Fatal(err) - } - - scenarios := []struct { - jsonData string - expectError bool - expectMail bool - }{ - // empty field (Validate call check) - { - `{"email":""}`, - true, - false, - }, - // invalid email field (Validate call check) - { - `{"email":"invalid"}`, - true, - false, - }, - // nonexisting user - { - `{"email":"missing@example.com"}`, - true, - false, - }, - // existing user (already verified) - { - `{"email":"test@example.com"}`, - false, - false, - }, - // existing user (already verified) - repeating request to test threshod skip - { - `{"email":"test@example.com"}`, - false, - false, - }, - // existing user (unverified) - { - `{"email":"test2@example.com"}`, - false, - true, - }, - // existing user (inverified) - reached send threshod - { - `{"email":"test2@example.com"}`, - true, - false, - }, - } - - now := types.NowDateTime() - time.Sleep(1 * time.Millisecond) - - for i, s := range scenarios { - testApp.TestMailer.TotalSend = 0 // reset - form := forms.NewRecordVerificationRequest(testApp, authCollection) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("[%d] Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(r *models.Record) error { - interceptorCalls++ - return next(r) - } - } - - err := form.Submit(interceptor) - - // check interceptor calls - expectInterceptorCalls := 1 - if s.expectError { - expectInterceptorCalls = 0 - } - if interceptorCalls != expectInterceptorCalls { - t.Errorf("[%d] Expected interceptor to be called %d, got %d", i, expectInterceptorCalls, interceptorCalls) - } - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("[%d] Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - expectedMails := 0 - if s.expectMail { - expectedMails = 1 - } - if testApp.TestMailer.TotalSend != expectedMails { - t.Errorf("[%d] Expected %d mail(s) to be sent, got %d", i, expectedMails, testApp.TestMailer.TotalSend) - } - - if s.expectError { - continue - } - - user, err := testApp.Dao().FindAuthRecordByEmail(authCollection.Id, form.Email) - if err != nil { - t.Errorf("[%d] Expected user with email %q to exist, got nil", i, form.Email) - continue - } - - // check whether LastVerificationSentAt was updated - if !user.Verified() && user.LastVerificationSentAt().Time().Sub(now.Time()) < 0 { - t.Errorf("[%d] Expected LastVerificationSentAt to be after %v, got %v", i, now, user.LastVerificationSentAt()) - } - } -} - -func TestRecordVerificationRequestInterceptors(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - authCollection, err := testApp.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - authRecord, err := testApp.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - form := forms.NewRecordVerificationRequest(testApp, authCollection) - form.Email = authRecord.Email() - interceptorLastVerificationSentAt := authRecord.LastVerificationSentAt() - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptor1Called = true - return next(record) - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorWithRecordNextFunc) forms.InterceptorWithRecordNextFunc { - return func(record *models.Record) error { - interceptorLastVerificationSentAt = record.LastVerificationSentAt() - interceptor2Called = true - return testErr - } - } - - submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } - - if interceptorLastVerificationSentAt.String() == authRecord.LastVerificationSentAt().String() { - t.Fatalf("Expected the form model to be filled before calling the interceptors") - } -} diff --git a/forms/settings_upsert.go b/forms/settings_upsert.go deleted file mode 100644 index 6864d1c80521b7707637f76cb94fbf617c7e6814..0000000000000000000000000000000000000000 --- a/forms/settings_upsert.go +++ /dev/null @@ -1,77 +0,0 @@ -package forms - -import ( - "os" - "time" - - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models/settings" -) - -// SettingsUpsert is a [settings.Settings] upsert (create/update) form. -type SettingsUpsert struct { - *settings.Settings - - app core.App - dao *daos.Dao -} - -// NewSettingsUpsert creates a new [SettingsUpsert] form with initializer -// config created from the provided [core.App] instance. -// -// If you want to submit the form as part of a transaction, -// you can change the default Dao via [SetDao()]. -func NewSettingsUpsert(app core.App) *SettingsUpsert { - form := &SettingsUpsert{ - app: app, - dao: app.Dao(), - } - - // load the application settings into the form - form.Settings, _ = app.Settings().Clone() - - return form -} - -// SetDao replaces the default form Dao instance with the provided one. -func (form *SettingsUpsert) SetDao(dao *daos.Dao) { - form.dao = dao -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *SettingsUpsert) Validate() error { - return form.Settings.Validate() -} - -// Submit validates the form and upserts the loaded settings. -// -// On success the app settings will be refreshed with the form ones. -// -// You can optionally provide a list of InterceptorFunc to further -// modify the form behavior before persisting it. -func (form *SettingsUpsert) Submit(interceptors ...InterceptorFunc) error { - if err := form.Validate(); err != nil { - return err - } - - return runInterceptors(func() error { - encryptionKey := os.Getenv(form.app.EncryptionEnv()) - if err := form.dao.SaveSettings(form.Settings, encryptionKey); err != nil { - return err - } - - // explicitly trigger old logs deletion - form.app.LogsDao().DeleteOldRequests( - time.Now().AddDate(0, 0, -1*form.Settings.Logs.MaxDays), - ) - - if form.Settings.Logs.MaxDays == 0 { - // no logs are allowed -> reclaim preserved disk space after the previous delete operation - form.app.LogsDao().Vacuum() - } - - // merge the application settings with the form ones - return form.app.Settings().Merge(form.Settings) - }, interceptors...) -} diff --git a/forms/settings_upsert_test.go b/forms/settings_upsert_test.go deleted file mode 100644 index 494545c00dfa55e4bafe654738dcb93defd4b8ca..0000000000000000000000000000000000000000 --- a/forms/settings_upsert_test.go +++ /dev/null @@ -1,165 +0,0 @@ -package forms_test - -import ( - "encoding/json" - "errors" - "os" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestNewSettingsUpsert(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - app.Settings().Meta.AppName = "name_update" - - form := forms.NewSettingsUpsert(app) - - formSettings, _ := json.Marshal(form.Settings) - appSettings, _ := json.Marshal(app.Settings()) - - if string(formSettings) != string(appSettings) { - t.Errorf("Expected settings \n%s, got \n%s", string(appSettings), string(formSettings)) - } -} - -func TestSettingsUpsertValidateAndSubmit(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - scenarios := []struct { - jsonData string - encryption bool - expectedErrors []string - }{ - // empty (plain) - {"{}", false, nil}, - // empty (encrypt) - {"{}", true, nil}, - // failure - invalid data - { - `{"meta": {"appName": ""}, "logs": {"maxDays": -1}}`, - false, - []string{"meta", "logs"}, - }, - // success - valid data (plain) - { - `{"meta": {"appName": "test"}, "logs": {"maxDays": 0}}`, - false, - nil, - }, - // success - valid data (encrypt) - { - `{"meta": {"appName": "test"}, "logs": {"maxDays": 7}}`, - true, - nil, - }, - } - - for i, s := range scenarios { - if s.encryption { - os.Setenv(app.EncryptionEnv(), security.RandomString(32)) - } else { - os.Unsetenv(app.EncryptionEnv()) - } - - form := forms.NewSettingsUpsert(app) - - // load data - loadErr := json.Unmarshal([]byte(s.jsonData), form) - if loadErr != nil { - t.Errorf("(%d) Failed to load form data: %v", i, loadErr) - continue - } - - interceptorCalls := 0 - interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptorCalls++ - return next() - } - } - - // parse errors - result := form.Submit(interceptor) - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("(%d) Failed to parse errors %v", i, result) - continue - } - - // check interceptor calls - expectInterceptorCall := 1 - if len(s.expectedErrors) > 0 { - expectInterceptorCall = 0 - } - if interceptorCalls != expectInterceptorCall { - t.Errorf("(%d) Expected interceptor to be called %d, got %d", i, expectInterceptorCall, interceptorCalls) - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("(%d) Missing expected error key %q in %v", i, k, errs) - } - } - - if len(s.expectedErrors) > 0 { - continue - } - - formSettings, _ := json.Marshal(form.Settings) - appSettings, _ := json.Marshal(app.Settings()) - - if string(formSettings) != string(appSettings) { - t.Errorf("Expected app settings \n%s, got \n%s", string(appSettings), string(formSettings)) - } - } -} - -func TestSettingsUpsertSubmitInterceptors(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - form := forms.NewSettingsUpsert(app) - form.Meta.AppName = "test_new" - - testErr := errors.New("test_error") - - interceptor1Called := false - interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptor1Called = true - return next() - } - } - - interceptor2Called := false - interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc { - return func() error { - interceptor2Called = true - return testErr - } - } - - submitErr := form.Submit(interceptor1, interceptor2) - if submitErr != testErr { - t.Fatalf("Expected submitError %v, got %v", testErr, submitErr) - } - - if !interceptor1Called { - t.Fatalf("Expected interceptor1 to be called") - } - - if !interceptor2Called { - t.Fatalf("Expected interceptor2 to be called") - } -} diff --git a/forms/test_email_send.go b/forms/test_email_send.go deleted file mode 100644 index 5dd902e41ac6044e81b9cdfe5feb6fde862da1d7..0000000000000000000000000000000000000000 --- a/forms/test_email_send.go +++ /dev/null @@ -1,77 +0,0 @@ -package forms - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/mails" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" -) - -const ( - templateVerification = "verification" - templatePasswordReset = "password-reset" - templateEmailChange = "email-change" -) - -// TestEmailSend is a email template test request form. -type TestEmailSend struct { - app core.App - - Template string `form:"template" json:"template"` - Email string `form:"email" json:"email"` -} - -// NewTestEmailSend creates and initializes new TestEmailSend form. -func NewTestEmailSend(app core.App) *TestEmailSend { - return &TestEmailSend{app: app} -} - -// Validate makes the form validatable by implementing [validation.Validatable] interface. -func (form *TestEmailSend) Validate() error { - return validation.ValidateStruct(form, - validation.Field( - &form.Email, - validation.Required, - validation.Length(1, 255), - is.EmailFormat, - ), - validation.Field( - &form.Template, - validation.Required, - validation.In(templateVerification, templatePasswordReset, templateEmailChange), - ), - ) -} - -// Submit validates and sends a test email to the form.Email address. -func (form *TestEmailSend) Submit() error { - if err := form.Validate(); err != nil { - return err - } - - // create a test auth record - collection := &models.Collection{ - BaseModel: models.BaseModel{Id: "__pb_test_collection_id__"}, - Name: "__pb_test_collection_name__", - Type: models.CollectionTypeAuth, - } - - record := models.NewRecord(collection) - record.Id = "__pb_test_id__" - record.Set(schema.FieldNameUsername, "pb_test") - record.Set(schema.FieldNameEmail, form.Email) - record.RefreshTokenKey() - - switch form.Template { - case templateVerification: - return mails.SendRecordVerification(form.app, record) - case templatePasswordReset: - return mails.SendRecordPasswordReset(form.app, record) - case templateEmailChange: - return mails.SendRecordChangeEmail(form.app, record, form.Email) - } - - return nil -} diff --git a/forms/test_email_send_test.go b/forms/test_email_send_test.go deleted file mode 100644 index 6040609887799fb391879820cb58e293e1975c08..0000000000000000000000000000000000000000 --- a/forms/test_email_send_test.go +++ /dev/null @@ -1,79 +0,0 @@ -package forms_test - -import ( - "strings" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/forms" - "github.com/pocketbase/pocketbase/tests" -) - -func TestEmailSendValidateAndSubmit(t *testing.T) { - scenarios := []struct { - template string - email string - expectedErrors []string - }{ - {"", "", []string{"template", "email"}}, - {"invalid", "test@example.com", []string{"template"}}, - {"verification", "invalid", []string{"email"}}, - {"verification", "test@example.com", nil}, - {"password-reset", "test@example.com", nil}, - {"email-change", "test@example.com", nil}, - } - - for i, s := range scenarios { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - form := forms.NewTestEmailSend(app) - form.Email = s.email - form.Template = s.template - - result := form.Submit() - - // parse errors - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("(%d) Failed to parse errors %v", i, result) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs) - continue - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("(%d) Missing expected error key %q in %v", i, k, errs) - continue - } - } - - expectedEmails := 1 - if len(s.expectedErrors) > 0 { - expectedEmails = 0 - } - - if app.TestMailer.TotalSend != expectedEmails { - t.Errorf("(%d) Expected %d email(s) to be sent, got %d", i, expectedEmails, app.TestMailer.TotalSend) - } - - if len(s.expectedErrors) > 0 { - continue - } - - expectedContent := "Verify" - if s.template == "password-reset" { - expectedContent = "Reset password" - } else if s.template == "email-change" { - expectedContent = "Confirm new email" - } - - if !strings.Contains(app.TestMailer.LastMessage.HTML, expectedContent) { - t.Errorf("(%d) Expected the email to contains %s, got \n%v", i, expectedContent, app.TestMailer.LastMessage.HTML) - } - } -} diff --git a/forms/validators/file.go b/forms/validators/file.go deleted file mode 100644 index c1fbdca4e12d20b44825fd64bdad7b5cae25abec..0000000000000000000000000000000000000000 --- a/forms/validators/file.go +++ /dev/null @@ -1,71 +0,0 @@ -package validators - -import ( - "fmt" - "strings" - - "github.com/gabriel-vasile/mimetype" - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/tools/rest" -) - -// UploadedFileSize checks whether the validated `rest.UploadedFile` -// size is no more than the provided maxBytes. -// -// Example: -// validation.Field(&form.File, validation.By(validators.UploadedFileSize(1000))) -func UploadedFileSize(maxBytes int) validation.RuleFunc { - return func(value any) error { - v, _ := value.(*rest.UploadedFile) - if v == nil { - return nil // nothing to validate - } - - if int(v.Header().Size) > maxBytes { - return validation.NewError("validation_file_size_limit", fmt.Sprintf("Maximum allowed file size is %v bytes.", maxBytes)) - } - - return nil - } -} - -// UploadedFileMimeType checks whether the validated `rest.UploadedFile` -// mimetype is within the provided allowed mime types. -// -// Example: -// validMimeTypes := []string{"test/plain","image/jpeg"} -// validation.Field(&form.File, validation.By(validators.UploadedFileMimeType(validMimeTypes))) -func UploadedFileMimeType(validTypes []string) validation.RuleFunc { - return func(value any) error { - v, _ := value.(*rest.UploadedFile) - if v == nil { - return nil // nothing to validate - } - - if len(validTypes) == 0 { - return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") - } - - f, err := v.Header().Open() - if err != nil { - return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") - } - defer f.Close() - - filetype, err := mimetype.DetectReader(f) - if err != nil { - return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") - } - - for _, t := range validTypes { - if filetype.Is(t) { - return nil // valid - } - } - - return validation.NewError("validation_invalid_mime_type", fmt.Sprintf( - "The following mime types are only allowed: %s.", - strings.Join(validTypes, ","), - )) - } -} diff --git a/forms/validators/file_test.go b/forms/validators/file_test.go deleted file mode 100644 index 2aa4929871ef121ed74762fbc31a11fc5b750e55..0000000000000000000000000000000000000000 --- a/forms/validators/file_test.go +++ /dev/null @@ -1,92 +0,0 @@ -package validators_test - -import ( - "net/http" - "net/http/httptest" - "testing" - - "github.com/pocketbase/pocketbase/forms/validators" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/rest" -) - -func TestUploadedFileSize(t *testing.T) { - data, mp, err := tests.MockMultipartData(nil, "test") - if err != nil { - t.Fatal(err) - } - - req := httptest.NewRequest(http.MethodPost, "/", data) - req.Header.Add("Content-Type", mp.FormDataContentType()) - - files, err := rest.FindUploadedFiles(req, "test") - if err != nil { - t.Fatal(err) - } - - if len(files) != 1 { - t.Fatalf("Expected one test file, got %d", len(files)) - } - - scenarios := []struct { - maxBytes int - file *rest.UploadedFile - expectError bool - }{ - {0, nil, false}, - {4, nil, false}, - {3, files[0], true}, // all test files have "test" as content - {4, files[0], false}, - {5, files[0], false}, - } - - for i, s := range scenarios { - err := validators.UploadedFileSize(s.maxBytes)(s.file) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - } -} - -func TestUploadedFileMimeType(t *testing.T) { - data, mp, err := tests.MockMultipartData(nil, "test") - if err != nil { - t.Fatal(err) - } - - req := httptest.NewRequest(http.MethodPost, "/", data) - req.Header.Add("Content-Type", mp.FormDataContentType()) - - files, err := rest.FindUploadedFiles(req, "test") - if err != nil { - t.Fatal(err) - } - - if len(files) != 1 { - t.Fatalf("Expected one test file, got %d", len(files)) - } - - scenarios := []struct { - types []string - file *rest.UploadedFile - expectError bool - }{ - {nil, nil, false}, - {[]string{"image/jpeg"}, nil, false}, - {[]string{}, files[0], true}, - {[]string{"image/jpeg"}, files[0], true}, - // test files are detected as "text/plain; charset=utf-8" content type - {[]string{"image/jpeg", "text/plain; charset=utf-8"}, files[0], false}, - } - - for i, s := range scenarios { - err := validators.UploadedFileMimeType(s.types)(s.file) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - } -} diff --git a/forms/validators/record_data.go b/forms/validators/record_data.go deleted file mode 100644 index e830d6a39d2a490aaa8d6a40628c8597b0dd77b6..0000000000000000000000000000000000000000 --- a/forms/validators/record_data.go +++ /dev/null @@ -1,374 +0,0 @@ -package validators - -import ( - "fmt" - "net/url" - "regexp" - "strings" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/rest" - "github.com/pocketbase/pocketbase/tools/types" -) - -var requiredErr = validation.NewError("validation_required", "Missing required value") - -// NewRecordDataValidator creates new [models.Record] data validator -// using the provided record constraints and schema. -// -// Example: -// validator := NewRecordDataValidator(app.Dao(), record, nil) -// err := validator.Validate(map[string]any{"test":123}) -func NewRecordDataValidator( - dao *daos.Dao, - record *models.Record, - uploadedFiles map[string][]*rest.UploadedFile, -) *RecordDataValidator { - return &RecordDataValidator{ - dao: dao, - record: record, - uploadedFiles: uploadedFiles, - } -} - -// RecordDataValidator defines a model.Record data validator -// using the provided record constraints and schema. -type RecordDataValidator struct { - dao *daos.Dao - record *models.Record - uploadedFiles map[string][]*rest.UploadedFile -} - -// Validate validates the provided `data` by checking it against -// the validator record constraints and schema. -func (validator *RecordDataValidator) Validate(data map[string]any) error { - keyedSchema := validator.record.Collection().Schema.AsMap() - if len(keyedSchema) == 0 { - return nil // no fields to check - } - - if len(data) == 0 { - return validation.NewError("validation_empty_data", "No data to validate") - } - - errs := validation.Errors{} - - // check for unknown fields - for key := range data { - if _, ok := keyedSchema[key]; !ok { - errs[key] = validation.NewError("validation_unknown_field", "Unknown field") - } - } - if len(errs) > 0 { - return errs - } - - for key, field := range keyedSchema { - // normalize value to emulate the same behavior - // when fetching or persisting the record model - value := field.PrepareValue(data[key]) - - // check required constraint - if field.Required && validation.Required.Validate(value) != nil { - errs[key] = requiredErr - continue - } - - // validate field value by its field type - if err := validator.checkFieldValue(field, value); err != nil { - errs[key] = err - continue - } - - // check unique constraint - if field.Unique && !validator.dao.IsRecordValueUnique( - validator.record.Collection().Id, - key, - value, - validator.record.GetId(), - ) { - errs[key] = validation.NewError("validation_not_unique", "Value must be unique") - continue - } - } - - if len(errs) == 0 { - return nil - } - - return errs -} - -func (validator *RecordDataValidator) checkFieldValue(field *schema.SchemaField, value any) error { - switch field.Type { - case schema.FieldTypeText: - return validator.checkTextValue(field, value) - case schema.FieldTypeNumber: - return validator.checkNumberValue(field, value) - case schema.FieldTypeBool: - return validator.checkBoolValue(field, value) - case schema.FieldTypeEmail: - return validator.checkEmailValue(field, value) - case schema.FieldTypeUrl: - return validator.checkUrlValue(field, value) - case schema.FieldTypeDate: - return validator.checkDateValue(field, value) - case schema.FieldTypeSelect: - return validator.checkSelectValue(field, value) - case schema.FieldTypeJson: - return validator.checkJsonValue(field, value) - case schema.FieldTypeFile: - return validator.checkFileValue(field, value) - case schema.FieldTypeRelation: - return validator.checkRelationValue(field, value) - } - - return nil -} - -func (validator *RecordDataValidator) checkTextValue(field *schema.SchemaField, value any) error { - val, _ := value.(string) - if val == "" { - return nil // nothing to check (skip zero-defaults) - } - - options, _ := field.Options.(*schema.TextOptions) - - if options.Min != nil && len(val) < *options.Min { - return validation.NewError("validation_min_text_constraint", fmt.Sprintf("Must be at least %d character(s)", *options.Min)) - } - - if options.Max != nil && len(val) > *options.Max { - return validation.NewError("validation_max_text_constraint", fmt.Sprintf("Must be less than %d character(s)", *options.Max)) - } - - if options.Pattern != "" { - match, _ := regexp.MatchString(options.Pattern, val) - if !match { - return validation.NewError("validation_invalid_format", "Invalid value format") - } - } - - return nil -} - -func (validator *RecordDataValidator) checkNumberValue(field *schema.SchemaField, value any) error { - val, _ := value.(float64) - if val == 0 { - return nil // nothing to check (skip zero-defaults) - } - - options, _ := field.Options.(*schema.NumberOptions) - - if options.Min != nil && val < *options.Min { - return validation.NewError("validation_min_number_constraint", fmt.Sprintf("Must be larger than %f", *options.Min)) - } - - if options.Max != nil && val > *options.Max { - return validation.NewError("validation_max_number_constraint", fmt.Sprintf("Must be less than %f", *options.Max)) - } - - return nil -} - -func (validator *RecordDataValidator) checkBoolValue(field *schema.SchemaField, value any) error { - return nil -} - -func (validator *RecordDataValidator) checkEmailValue(field *schema.SchemaField, value any) error { - val, _ := value.(string) - if val == "" { - return nil // nothing to check - } - - if is.EmailFormat.Validate(val) != nil { - return validation.NewError("validation_invalid_email", "Must be a valid email") - } - - options, _ := field.Options.(*schema.EmailOptions) - domain := val[strings.LastIndex(val, "@")+1:] - - // only domains check - if len(options.OnlyDomains) > 0 && !list.ExistInSlice(domain, options.OnlyDomains) { - return validation.NewError("validation_email_domain_not_allowed", "Email domain is not allowed") - } - - // except domains check - if len(options.ExceptDomains) > 0 && list.ExistInSlice(domain, options.ExceptDomains) { - return validation.NewError("validation_email_domain_not_allowed", "Email domain is not allowed") - } - - return nil -} - -func (validator *RecordDataValidator) checkUrlValue(field *schema.SchemaField, value any) error { - val, _ := value.(string) - if val == "" { - return nil // nothing to check - } - - if is.URL.Validate(val) != nil { - return validation.NewError("validation_invalid_url", "Must be a valid url") - } - - options, _ := field.Options.(*schema.UrlOptions) - - // extract host/domain - u, _ := url.Parse(val) - host := u.Host - - // only domains check - if len(options.OnlyDomains) > 0 && !list.ExistInSlice(host, options.OnlyDomains) { - return validation.NewError("validation_url_domain_not_allowed", "Url domain is not allowed") - } - - // except domains check - if len(options.ExceptDomains) > 0 && list.ExistInSlice(host, options.ExceptDomains) { - return validation.NewError("validation_url_domain_not_allowed", "Url domain is not allowed") - } - - return nil -} - -func (validator *RecordDataValidator) checkDateValue(field *schema.SchemaField, value any) error { - val, _ := value.(types.DateTime) - if val.IsZero() { - if field.Required { - return requiredErr - } - return nil // nothing to check - } - - options, _ := field.Options.(*schema.DateOptions) - - if !options.Min.IsZero() { - if err := validation.Min(options.Min.Time()).Validate(val.Time()); err != nil { - return err - } - } - - if !options.Max.IsZero() { - if err := validation.Max(options.Max.Time()).Validate(val.Time()); err != nil { - return err - } - } - - return nil -} - -func (validator *RecordDataValidator) checkSelectValue(field *schema.SchemaField, value any) error { - normalizedVal := list.ToUniqueStringSlice(value) - if len(normalizedVal) == 0 { - if field.Required { - return requiredErr - } - return nil // nothing to check - } - - options, _ := field.Options.(*schema.SelectOptions) - - // check max selected items - if len(normalizedVal) > options.MaxSelect { - return validation.NewError("validation_too_many_values", fmt.Sprintf("Select no more than %d", options.MaxSelect)) - } - - // check against the allowed values - for _, val := range normalizedVal { - if !list.ExistInSlice(val, options.Values) { - return validation.NewError("validation_invalid_value", "Invalid value "+val) - } - } - - return nil -} - -func (validator *RecordDataValidator) checkJsonValue(field *schema.SchemaField, value any) error { - raw, _ := types.ParseJsonRaw(value) - if len(raw) == 0 { - return nil // nothing to check - } - - if is.JSON.Validate(value) != nil { - return validation.NewError("validation_invalid_json", "Must be a valid json value") - } - - return nil -} - -func (validator *RecordDataValidator) checkFileValue(field *schema.SchemaField, value any) error { - names := list.ToUniqueStringSlice(value) - if len(names) == 0 && field.Required { - return requiredErr - } - - options, _ := field.Options.(*schema.FileOptions) - - if len(names) > options.MaxSelect { - return validation.NewError("validation_too_many_values", fmt.Sprintf("Select no more than %d", options.MaxSelect)) - } - - // extract the uploaded files - files := make([]*rest.UploadedFile, 0, len(validator.uploadedFiles[field.Name])) - for _, file := range validator.uploadedFiles[field.Name] { - if list.ExistInSlice(file.Name(), names) { - files = append(files, file) - } - } - - for _, file := range files { - // check size - if err := UploadedFileSize(options.MaxSize)(file); err != nil { - return err - } - - // check type - if len(options.MimeTypes) > 0 { - if err := UploadedFileMimeType(options.MimeTypes)(file); err != nil { - return err - } - } - } - - return nil -} - -func (validator *RecordDataValidator) checkRelationValue(field *schema.SchemaField, value any) error { - ids := list.ToUniqueStringSlice(value) - if len(ids) == 0 { - if field.Required { - return requiredErr - } - return nil // nothing to check - } - - options, _ := field.Options.(*schema.RelationOptions) - - if options.MaxSelect != nil && len(ids) > *options.MaxSelect { - return validation.NewError("validation_too_many_values", fmt.Sprintf("Select no more than %d", *options.MaxSelect)) - } - - // check if the related records exist - // --- - relCollection, err := validator.dao.FindCollectionByNameOrId(options.CollectionId) - if err != nil { - return validation.NewError("validation_missing_rel_collection", "Relation connection is missing or cannot be accessed") - } - - var total int - validator.dao.RecordQuery(relCollection). - Select("count(*)"). - AndWhere(dbx.In("id", list.ToInterfaceSlice(ids)...)). - Row(&total) - if total != len(ids) { - return validation.NewError("validation_missing_rel_records", "Failed to fetch all relation records with the provided ids") - } - // --- - - return nil -} diff --git a/forms/validators/record_data_test.go b/forms/validators/record_data_test.go deleted file mode 100644 index 778dceebdab3bbea8a0c958fd6adc1db4b3b7797..0000000000000000000000000000000000000000 --- a/forms/validators/record_data_test.go +++ /dev/null @@ -1,1339 +0,0 @@ -package validators_test - -import ( - "fmt" - "net/http" - "net/http/httptest" - "strings" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/forms/validators" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/rest" - "github.com/pocketbase/pocketbase/tools/types" -) - -type testDataFieldScenario struct { - name string - data map[string]any - files map[string][]*rest.UploadedFile - expectedErrors []string -} - -func TestRecordDataValidatorEmptyAndUnknown(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, _ := app.Dao().FindCollectionByNameOrId("demo2") - record := models.NewRecord(collection) - validator := validators.NewRecordDataValidator(app.Dao(), record, nil) - - emptyErr := validator.Validate(map[string]any{}) - if emptyErr == nil { - t.Fatal("Expected error for empty data, got nil") - } - - unknownErr := validator.Validate(map[string]any{"unknown": 123}) - if unknownErr == nil { - t.Fatal("Expected error for unknown data, got nil") - } -} - -func TestRecordDataValidatorValidateText(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - min := 3 - max := 10 - pattern := `^\w+$` - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeText, - Options: &schema.TextOptions{ - Min: &min, - Max: &max, - Pattern: pattern, - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", "test") - dummy.Set("field2", "test") - dummy.Set("field3", "test") - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(text) check required constraint", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(text) check unique constraint", - map[string]any{ - "field1": "test", - "field2": "test", - "field3": "test", - }, - nil, - []string{"field3"}, - }, - { - "(text) check min constraint", - map[string]any{ - "field1": "test", - "field2": "test", - "field3": strings.Repeat("a", min-1), - }, - nil, - []string{"field3"}, - }, - { - "(text) check max constraint", - map[string]any{ - "field1": "test", - "field2": "test", - "field3": strings.Repeat("a", max+1), - }, - nil, - []string{"field3"}, - }, - { - "(text) check pattern constraint", - map[string]any{ - "field1": nil, - "field2": "test", - "field3": "test!", - }, - nil, - []string{"field3"}, - }, - { - "(text) valid data (only required)", - map[string]any{ - "field2": "test", - }, - nil, - []string{}, - }, - { - "(text) valid data (all)", - map[string]any{ - "field1": "test", - "field2": 12345, // test value cast - "field3": "test2", - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateNumber(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - min := 2.0 - max := 150.0 - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeNumber, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeNumber, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeNumber, - Options: &schema.NumberOptions{ - Min: &min, - Max: &max, - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", 123) - dummy.Set("field2", 123) - dummy.Set("field3", 123) - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(number) check required constraint", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(number) check required constraint + casting", - map[string]any{ - "field1": "invalid", - "field2": "invalid", - "field3": "invalid", - }, - nil, - []string{"field2"}, - }, - { - "(number) check unique constraint", - map[string]any{ - "field1": 123, - "field2": 123, - "field3": 123, - }, - nil, - []string{"field3"}, - }, - { - "(number) check min constraint", - map[string]any{ - "field1": 0.5, - "field2": 1, - "field3": min - 0.5, - }, - nil, - []string{"field3"}, - }, - { - "(number) check min with zero-default", - map[string]any{ - "field2": 1, - "field3": 0, - }, - nil, - []string{}, - }, - { - "(number) check max constraint", - map[string]any{ - "field1": nil, - "field2": max, - "field3": max + 0.5, - }, - nil, - []string{"field3"}, - }, - { - "(number) valid data (only required)", - map[string]any{ - "field2": 1, - }, - nil, - []string{}, - }, - { - "(number) valid data (all)", - map[string]any{ - "field1": nil, - "field2": 123, // test value cast - "field3": max, - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateBool(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeBool, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeBool, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeBool, - Options: &schema.BoolOptions{}, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", false) - dummy.Set("field2", true) - dummy.Set("field3", true) - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(bool) check required constraint", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(bool) check required constraint + casting", - map[string]any{ - "field1": "invalid", - "field2": "invalid", - "field3": "invalid", - }, - nil, - []string{"field2"}, - }, - { - "(bool) check unique constraint", - map[string]any{ - "field1": true, - "field2": true, - "field3": true, - }, - nil, - []string{"field3"}, - }, - { - "(bool) valid data (only required)", - map[string]any{ - "field2": 1, - }, - nil, - []string{}, - }, - { - "(bool) valid data (all)", - map[string]any{ - "field1": false, - "field2": true, - "field3": false, - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateEmail(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeEmail, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeEmail, - Options: &schema.EmailOptions{ - ExceptDomains: []string{"example.com"}, - }, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeEmail, - Options: &schema.EmailOptions{ - OnlyDomains: []string{"example.com"}, - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", "test@demo.com") - dummy.Set("field2", "test@test.com") - dummy.Set("field3", "test@example.com") - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(email) check required constraint", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(email) check email format validator", - map[string]any{ - "field1": "test", - "field2": "test.com", - "field3": 123, - }, - nil, - []string{"field1", "field2", "field3"}, - }, - { - "(email) check unique constraint", - map[string]any{ - "field1": "test@example.com", - "field2": "test@test.com", - "field3": "test@example.com", - }, - nil, - []string{"field3"}, - }, - { - "(email) check ExceptDomains constraint", - map[string]any{ - "field1": "test@example.com", - "field2": "test@example.com", - "field3": "test2@example.com", - }, - nil, - []string{"field2"}, - }, - { - "(email) check OnlyDomains constraint", - map[string]any{ - "field1": "test@test.com", - "field2": "test@test.com", - "field3": "test@test.com", - }, - nil, - []string{"field3"}, - }, - { - "(email) valid data (only required)", - map[string]any{ - "field2": "test@test.com", - }, - nil, - []string{}, - }, - { - "(email) valid data (all)", - map[string]any{ - "field1": "123@example.com", - "field2": "test@test.com", - "field3": "test2@example.com", - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateUrl(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeUrl, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeUrl, - Options: &schema.UrlOptions{ - ExceptDomains: []string{"example.com"}, - }, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeUrl, - Options: &schema.UrlOptions{ - OnlyDomains: []string{"example.com"}, - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", "http://demo.com") - dummy.Set("field2", "http://test.com") - dummy.Set("field3", "http://example.com") - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(url) check required constraint", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(url) check url format validator", - map[string]any{ - "field1": "/abc", - "field2": "test.com", // valid - "field3": "test@example.com", - }, - nil, - []string{"field1", "field3"}, - }, - { - "(url) check unique constraint", - map[string]any{ - "field1": "http://example.com", - "field2": "http://test.com", - "field3": "http://example.com", - }, - nil, - []string{"field3"}, - }, - { - "(url) check ExceptDomains constraint", - map[string]any{ - "field1": "http://example.com", - "field2": "http://example.com", - "field3": "https://example.com", - }, - nil, - []string{"field2"}, - }, - { - "(url) check OnlyDomains constraint", - map[string]any{ - "field1": "http://test.com/abc", - "field2": "http://test.com/abc", - "field3": "http://test.com/abc", - }, - nil, - []string{"field3"}, - }, - { - "(url) check subdomains constraint", - map[string]any{ - "field1": "http://test.test.com", - "field2": "http://test.example.com", - "field3": "http://test.example.com", - }, - nil, - []string{"field3"}, - }, - { - "(url) valid data (only required)", - map[string]any{ - "field2": "http://sub.test.com/abc", - }, - nil, - []string{}, - }, - { - "(url) valid data (all)", - map[string]any{ - "field1": "http://example.com/123", - "field2": "http://test.com/", - "field3": "http://example.com/test2", - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateDate(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - min, _ := types.ParseDateTime("2022-01-01 01:01:01.123") - max, _ := types.ParseDateTime("2030-01-01 01:01:01") - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeDate, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeDate, - Options: &schema.DateOptions{ - Min: min, - }, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeDate, - Options: &schema.DateOptions{ - Max: max, - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", "2022-01-01 01:01:01") - dummy.Set("field2", "2029-01-01 01:01:01.123") - dummy.Set("field3", "2029-01-01 01:01:01.123") - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(date) check required constraint", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(date) check required constraint + cast", - map[string]any{ - "field1": "invalid", - "field2": "invalid", - "field3": "invalid", - }, - nil, - []string{"field2"}, - }, - { - "(date) check required constraint + zero datetime", - map[string]any{ - "field1": "January 1, year 1, 00:00:00 UTC", - "field2": "0001-01-01 00:00:00", - "field3": "0001-01-01 00:00:00 +0000 UTC", - }, - nil, - []string{"field2"}, - }, - { - "(date) check unique constraint", - map[string]any{ - "field1": "2029-01-01 01:01:01.123", - "field2": "2029-01-01 01:01:01.123", - "field3": "2029-01-01 01:01:01.123", - }, - nil, - []string{"field3"}, - }, - { - "(date) check min date constraint", - map[string]any{ - "field1": "2021-01-01 01:01:01", - "field2": "2021-01-01 01:01:01", - "field3": "2021-01-01 01:01:01", - }, - nil, - []string{"field2"}, - }, - { - "(date) check max date constraint", - map[string]any{ - "field1": "2030-02-01 01:01:01", - "field2": "2030-02-01 01:01:01", - "field3": "2030-02-01 01:01:01", - }, - nil, - []string{"field3"}, - }, - { - "(date) valid data (only required)", - map[string]any{ - "field2": "2029-01-01 01:01:01", - }, - nil, - []string{}, - }, - { - "(date) valid data (all)", - map[string]any{ - "field1": "2029-01-01 01:01:01.000", - "field2": "2029-01-01 01:01:01", - "field3": "2029-01-01 01:01:01.456", - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateSelect(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{ - Values: []string{"1", "a", "b", "c"}, - MaxSelect: 1, - }, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{ - Values: []string{"a", "b", "c"}, - MaxSelect: 2, - }, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{ - Values: []string{"a", "b", "c"}, - MaxSelect: 99, - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", "a") - dummy.Set("field2", []string{"a", "b"}) - dummy.Set("field3", []string{"a", "b", "c"}) - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(select) check required constraint", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(select) check required constraint - empty values", - map[string]any{ - "field1": "", - "field2": "", - "field3": "", - }, - nil, - []string{"field2"}, - }, - { - "(select) check required constraint - multiple select cast", - map[string]any{ - "field1": "a", - "field2": "a", - "field3": "a", - }, - nil, - []string{}, - }, - { - "(select) check unique constraint", - map[string]any{ - "field1": "a", - "field2": "b", - "field3": []string{"a", "b", "c"}, - }, - nil, - []string{"field3"}, - }, - { - "(select) check unique constraint - same elements but different order", - map[string]any{ - "field1": "a", - "field2": "b", - "field3": []string{"a", "c", "b"}, - }, - nil, - []string{}, - }, - { - "(select) check Values constraint", - map[string]any{ - "field1": 1, - "field2": "d", - "field3": 123, - }, - nil, - []string{"field2", "field3"}, - }, - { - "(select) check MaxSelect constraint", - map[string]any{ - "field1": []string{"a", "b"}, // this will be normalized to a single string value - "field2": []string{"a", "b", "c"}, - "field3": []string{"a", "b", "b", "b"}, // repeating values will be merged - }, - nil, - []string{"field2"}, - }, - { - "(select) valid data - only required fields", - map[string]any{ - "field2": []string{"a", "b"}, - }, - nil, - []string{}, - }, - { - "(select) valid data - all fields with normalizations", - map[string]any{ - "field1": "a", - "field2": []string{"a", "b", "b"}, // will be collapsed - "field3": "b", // will be normalzied to slice - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateJson(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeJson, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeJson, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeJson, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", `{"test":123}`) - dummy.Set("field2", `{"test":123}`) - dummy.Set("field3", `{"test":123}`) - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "(json) check required constraint - nil", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "(json) check required constraint - zero string", - map[string]any{ - "field1": "", - "field2": "", - "field3": "", - }, - nil, - []string{"field2"}, - }, - { - "(json) check required constraint - zero number", - map[string]any{ - "field1": 0, - "field2": 0, - "field3": 0, - }, - nil, - []string{}, - }, - { - "(json) check required constraint - zero slice", - map[string]any{ - "field1": []string{}, - "field2": []string{}, - "field3": []string{}, - }, - nil, - []string{}, - }, - { - "(json) check required constraint - zero map", - map[string]any{ - "field1": map[string]string{}, - "field2": map[string]string{}, - "field3": map[string]string{}, - }, - nil, - []string{}, - }, - { - "(json) check unique constraint", - map[string]any{ - "field1": `{"test":123}`, - "field2": `{"test":123}`, - "field3": map[string]any{"test": 123}, - }, - nil, - []string{"field3"}, - }, - { - "(json) check json text validator", - map[string]any{ - "field1": `[1, 2, 3`, - "field2": `invalid`, - "field3": `null`, // valid - }, - nil, - []string{"field1", "field2"}, - }, - { - "(json) valid data - only required fields", - map[string]any{ - "field2": `{"test":123}`, - }, - nil, - []string{}, - }, - { - "(json) valid data - all fields with normalizations", - map[string]any{ - "field1": []string{"a", "b", "c"}, - "field2": 123, - "field3": `"test"`, - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateFile(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 1, - MaxSize: 3, - }, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 2, - MaxSize: 10, - MimeTypes: []string{"image/jpeg", "text/plain; charset=utf-8"}, - }, - }, - &schema.SchemaField{ - Name: "field3", - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 3, - MaxSize: 10, - MimeTypes: []string{"image/jpeg"}, - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // stub uploaded files - data, mp, err := tests.MockMultipartData(nil, "test", "test", "test", "test", "test") - if err != nil { - t.Fatal(err) - } - req := httptest.NewRequest(http.MethodPost, "/", data) - req.Header.Add("Content-Type", mp.FormDataContentType()) - testFiles, err := rest.FindUploadedFiles(req, "test") - if err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "check required constraint - nil", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "check MaxSelect constraint", - map[string]any{ - "field1": "test1", - "field2": []string{"test1", testFiles[0].Name(), testFiles[3].Name()}, - "field3": []string{"test1", "test2", "test3", "test4"}, - }, - map[string][]*rest.UploadedFile{ - "field2": {testFiles[0], testFiles[3]}, - }, - []string{"field2", "field3"}, - }, - { - "check MaxSize constraint", - map[string]any{ - "field1": testFiles[0].Name(), - "field2": []string{"test1", testFiles[0].Name()}, - "field3": []string{"test1", "test2", "test3"}, - }, - map[string][]*rest.UploadedFile{ - "field1": {testFiles[0]}, - "field2": {testFiles[0]}, - }, - []string{"field1"}, - }, - { - "check MimeTypes constraint", - map[string]any{ - "field1": "test1", - "field2": []string{"test1", testFiles[0].Name()}, - "field3": []string{testFiles[1].Name(), testFiles[2].Name()}, - }, - map[string][]*rest.UploadedFile{ - "field2": {testFiles[0], testFiles[1], testFiles[2]}, - "field3": {testFiles[1], testFiles[2]}, - }, - []string{"field3"}, - }, - { - "valid data - no new files (just file ids)", - map[string]any{ - "field1": "test1", - "field2": []string{"test1", "test2"}, - "field3": []string{"test1", "test2", "test3"}, - }, - nil, - []string{}, - }, - { - "valid data - just new files", - map[string]any{ - "field1": nil, - "field2": []string{testFiles[0].Name(), testFiles[1].Name()}, - "field3": nil, - }, - map[string][]*rest.UploadedFile{ - "field2": {testFiles[0], testFiles[1]}, - }, - []string{}, - }, - { - "valid data - mixed existing and new files", - map[string]any{ - "field1": "test1", - "field2": []string{"test1", testFiles[0].Name()}, - "field3": "test1", // will be casted - }, - map[string][]*rest.UploadedFile{ - "field2": {testFiles[0], testFiles[1], testFiles[2]}, - }, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func TestRecordDataValidatorValidateRelation(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - demo, _ := app.Dao().FindCollectionByNameOrId("demo3") - - // demo3 rel ids - relId1 := "mk5fmymtx4wsprk" - relId2 := "7nwo8tuiatetxdm" - relId3 := "lcl9d87w22ml6jy" - relId4 := "1tmknxy2868d869" - - // record rel ids from different collections - diffRelId1 := "0yxhwia2amd8gec" - diffRelId2 := "llvuca81nly1qls" - - // create new test collection - collection := &models.Collection{} - collection.Name = "validate_test" - collection.Schema = schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{ - MaxSelect: types.Pointer(1), - CollectionId: demo.Id, - }, - }, - &schema.SchemaField{ - Name: "field2", - Required: true, - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{ - MaxSelect: types.Pointer(2), - CollectionId: demo.Id, - }, - }, - &schema.SchemaField{ - Name: "field3", - Unique: true, - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{ - CollectionId: demo.Id, - }, - }, - &schema.SchemaField{ - Name: "field4", - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{ - MaxSelect: types.Pointer(3), - CollectionId: "", // missing or non-existing collection id - }, - }, - ) - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatal(err) - } - - // create dummy record (used for the unique check) - dummy := models.NewRecord(collection) - dummy.Set("field1", relId1) - dummy.Set("field2", []string{relId1, relId2}) - dummy.Set("field3", []string{relId1, relId2, relId3}) - if err := app.Dao().SaveRecord(dummy); err != nil { - t.Fatal(err) - } - - scenarios := []testDataFieldScenario{ - { - "check required constraint - nil", - map[string]any{ - "field1": nil, - "field2": nil, - "field3": nil, - }, - nil, - []string{"field2"}, - }, - { - "check required constraint - zero id", - map[string]any{ - "field1": "", - "field2": "", - "field3": "", - }, - nil, - []string{"field2"}, - }, - { - "check unique constraint", - map[string]any{ - "field1": relId1, - "field2": relId2, - "field3": []string{relId1, relId2, relId3, relId3}, // repeating values are collapsed - }, - nil, - []string{"field3"}, - }, - { - "check nonexisting collection id", - map[string]any{ - "field2": relId1, - "field4": relId1, - }, - nil, - []string{"field4"}, - }, - { - "check MaxSelect constraint", - map[string]any{ - "field1": []string{relId1, relId2}, // will be normalized to relId1 only - "field2": []string{relId1, relId2, relId3}, - "field3": []string{relId1, relId2, relId3, relId4}, - }, - nil, - []string{"field2"}, - }, - { - "check with ids from different collections", - map[string]any{ - "field1": diffRelId1, - "field2": []string{relId2, diffRelId1}, - "field3": []string{diffRelId1, diffRelId2}, - }, - nil, - []string{"field1", "field2", "field3"}, - }, - { - "valid data - only required fields", - map[string]any{ - "field2": []string{relId1, relId2}, - }, - nil, - []string{}, - }, - { - "valid data - all fields with normalization", - map[string]any{ - "field1": []string{relId1, relId2}, - "field2": relId2, - "field3": []string{relId3, relId2, relId1}, // unique is not triggered because the order is different - }, - nil, - []string{}, - }, - } - - checkValidatorErrors(t, app.Dao(), models.NewRecord(collection), scenarios) -} - -func checkValidatorErrors(t *testing.T, dao *daos.Dao, record *models.Record, scenarios []testDataFieldScenario) { - for i, s := range scenarios { - validator := validators.NewRecordDataValidator(dao, record, s.files) - result := validator.Validate(s.data) - - prefix := fmt.Sprintf("%d", i) - if s.name != "" { - prefix = s.name - } - - // parse errors - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("[%s] Failed to parse errors %v", prefix, result) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("[%s] Expected error keys %v, got %v", prefix, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("[%s] Missing expected error key %q in %v", prefix, k, errs) - } - } - } -} diff --git a/forms/validators/string.go b/forms/validators/string.go deleted file mode 100644 index 10f5202a9de89de67329377224437f32010a1d28..0000000000000000000000000000000000000000 --- a/forms/validators/string.go +++ /dev/null @@ -1,21 +0,0 @@ -package validators - -import ( - validation "github.com/go-ozzo/ozzo-validation/v4" -) - -// Compare checks whether the validated value matches another string. -// -// Example: -// validation.Field(&form.PasswordConfirm, validation.By(validators.Compare(form.Password))) -func Compare(valueToCompare string) validation.RuleFunc { - return func(value any) error { - v, _ := value.(string) - - if v != valueToCompare { - return validation.NewError("validation_values_mismatch", "Values don't match.") - } - - return nil - } -} diff --git a/forms/validators/string_test.go b/forms/validators/string_test.go deleted file mode 100644 index e9a0c6a0020cf85120331133fa114882aefb4706..0000000000000000000000000000000000000000 --- a/forms/validators/string_test.go +++ /dev/null @@ -1,30 +0,0 @@ -package validators_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/forms/validators" -) - -func TestCompare(t *testing.T) { - scenarios := []struct { - valA string - valB string - expectError bool - }{ - {"", "", false}, - {"", "456", true}, - {"123", "", true}, - {"123", "456", true}, - {"123", "123", false}, - } - - for i, s := range scenarios { - err := validators.Compare(s.valA)(s.valB) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err) - } - } -} diff --git a/forms/validators/validators.go b/forms/validators/validators.go deleted file mode 100644 index ec8c21777816944e4ca8ee1d75af8978aadfb3a1..0000000000000000000000000000000000000000 --- a/forms/validators/validators.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package validators implements custom shared PocketBase validators. -package validators diff --git a/go.mod b/go.mod index 6d59394a41dfa4c5e36c8caf918fcce9ddedb96f..a175778dbfe2beebede9f2eab4b307dc294c5676 100644 --- a/go.mod +++ b/go.mod @@ -1,34 +1,18 @@ -module github.com/pocketbase/pocketbase +module just/registry -go 1.18 +go 1.19 require ( - github.com/AlecAivazis/survey/v2 v2.3.6 - github.com/aws/aws-sdk-go v1.44.153 - github.com/disintegration/imaging v1.6.2 - github.com/domodwyer/mailyak/v3 v3.3.4 - github.com/dop251/goja v0.0.0-20221118162653-d4bf6fde1b86 - github.com/dop251/goja_nodejs v0.0.0-20221009164102-3aa5028e57f6 - github.com/fatih/color v1.13.0 - github.com/gabriel-vasile/mimetype v1.4.1 - github.com/ganigeorgiev/fexpr v0.1.1 - github.com/go-ozzo/ozzo-validation/v4 v4.3.0 - github.com/golang-jwt/jwt/v4 v4.4.3 github.com/labstack/echo/v5 v5.0.0-20220201181537-ed2888cfa198 - github.com/mattn/go-sqlite3 v1.14.16 github.com/pocketbase/dbx v1.8.0 - github.com/spf13/cast v1.5.0 - github.com/spf13/cobra v1.6.1 - gocloud.dev v0.27.0 - golang.org/x/crypto v0.3.0 - golang.org/x/exp v0.0.0-20221207211629-99ab8fa1c11f - golang.org/x/net v0.3.0 - golang.org/x/oauth2 v0.2.0 - modernc.org/sqlite v1.20.0 + github.com/pocketbase/pocketbase v0.9.0 + golang.org/x/exp v0.0.0-20221208044002-44028be4359e ) require ( + github.com/AlecAivazis/survey/v2 v2.3.6 // indirect github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect + github.com/aws/aws-sdk-go v1.44.153 // indirect github.com/aws/aws-sdk-go-v2 v1.17.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect github.com/aws/aws-sdk-go-v2/config v1.18.4 // indirect @@ -48,8 +32,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.9 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.17.6 // indirect github.com/aws/smithy-go v1.13.5 // indirect - github.com/dlclark/regexp2 v1.7.0 // indirect - github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect + github.com/disintegration/imaging v1.6.2 // indirect + github.com/domodwyer/mailyak/v3 v3.3.4 // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.1 // indirect + github.com/ganigeorgiev/fexpr v0.1.1 // indirect + github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect + github.com/golang-jwt/jwt/v4 v4.4.3 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/uuid v1.3.0 // indirect @@ -60,14 +49,21 @@ require ( github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.16 // indirect + github.com/mattn/go-sqlite3 v1.14.16 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/remyoudompheng/bigfft v0.0.0-20220927061507-ef77025ab5aa // indirect + github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/cobra v1.6.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect go.opencensus.io v0.24.0 // indirect + gocloud.dev v0.27.0 // indirect + golang.org/x/crypto v0.3.0 // indirect golang.org/x/image v0.2.0 // indirect golang.org/x/mod v0.7.0 // indirect + golang.org/x/net v0.3.0 // indirect + golang.org/x/oauth2 v0.2.0 // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect @@ -86,6 +82,7 @@ require ( modernc.org/mathutil v1.5.0 // indirect modernc.org/memory v1.5.0 // indirect modernc.org/opt v0.1.3 // indirect + modernc.org/sqlite v1.20.0 // indirect modernc.org/strutil v1.1.3 // indirect modernc.org/token v1.1.0 // indirect ) diff --git a/go.sum b/go.sum index a737d999d3ea691c8d05dbfd0be8521dcd7fb9b8..ff3a058fadd1d7d89848eeda4ae90ead78c8b7bd 100644 --- a/go.sum +++ b/go.sum @@ -480,9 +480,6 @@ github.com/digitalocean/godo v1.81.0/go.mod h1:BPCqvwbjbGqxuUnIKB4EvS/AX7IDnNmt5 github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= -github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= -github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= @@ -506,14 +503,6 @@ github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/domodwyer/mailyak/v3 v3.3.4 h1:AG/pvcz2/ocFqZkPEG7lPAa0MhCq1warfUEKJt6Fagk= github.com/domodwyer/mailyak/v3 v3.3.4/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c= -github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= -github.com/dop251/goja v0.0.0-20220815083517-0c74f9139fd6/go.mod h1:yRkwfj0CBpOGre+TwBsqPV0IH0Pk73e4PXJOeNDboGs= -github.com/dop251/goja v0.0.0-20221118162653-d4bf6fde1b86 h1:E2wycakfddWJ26v+ZyEY91Lb/HEZyaiZhbMX+KQcdmc= -github.com/dop251/goja v0.0.0-20221118162653-d4bf6fde1b86/go.mod h1:yRkwfj0CBpOGre+TwBsqPV0IH0Pk73e4PXJOeNDboGs= -github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= -github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= -github.com/dop251/goja_nodejs v0.0.0-20221009164102-3aa5028e57f6 h1:p3QZwRRfCN7Qr3GNBTMKBkLFjEm3DHR4MaJABvsiqgk= -github.com/dop251/goja_nodejs v0.0.0-20221009164102-3aa5028e57f6/go.mod h1:+CJy9V5cGycP5qwp6RM5jLg+TFEMyGtD7A9xUbU/BOQ= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -633,8 +622,6 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+ github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8= -github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= -github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -1222,6 +1209,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pocketbase/dbx v1.8.0 h1:kjf3mgmmE12t8IG48kJOeIyBmRi0A1sl6Hsezv4PoiA= github.com/pocketbase/dbx v1.8.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs= +github.com/pocketbase/pocketbase v0.9.0 h1:fhZDteVmGrYntKqMzhqKyKGgV/xWm8xGEd/j8qq3kB8= +github.com/pocketbase/pocketbase v0.9.0/go.mod h1:vIANdlbf00nAlGkYQ4a+tejKFSi72bE+H4ggO9VXWFw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= @@ -1573,8 +1562,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20221207211629-99ab8fa1c11f h1:90Jq/vvGVDsqj8QqCynjFw9MCerDguSMODLYII416Y8= -golang.org/x/exp v0.0.0-20221207211629-99ab8fa1c11f/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20221208044002-44028be4359e h1:lTjJJUAuWTLRn0pXoNLiVZIFYOIpvmg3MxmZxgO09bM= +golang.org/x/exp v0.0.0-20221208044002-44028be4359e/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= diff --git a/helpers/helpers.go b/helpers/helpers.go new file mode 100644 index 0000000000000000000000000000000000000000..f249a2de86f71dd3d7f17d489334bc7d878f8286 --- /dev/null +++ b/helpers/helpers.go @@ -0,0 +1,18 @@ +package helpers + +import ( + "os" + "path/filepath" + "strings" +) + +func InspectRuntime() (baseDir string, withGoRun bool) { + if strings.HasPrefix(os.Args[0], os.TempDir()) { + withGoRun = true + baseDir, _ = os.Getwd() + } else { + withGoRun = false + baseDir = filepath.Dir(os.Args[0]) + } + return +} \ No newline at end of file diff --git a/mails/admin.go b/mails/admin.go deleted file mode 100644 index 142f8c4d0b3614f2f6cdc4bff54d585a79c17602..0000000000000000000000000000000000000000 --- a/mails/admin.go +++ /dev/null @@ -1,79 +0,0 @@ -package mails - -import ( - "fmt" - "net/mail" - - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/mails/templates" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tokens" - "github.com/pocketbase/pocketbase/tools/mailer" - "github.com/pocketbase/pocketbase/tools/rest" -) - -// SendAdminPasswordReset sends a password reset request email to the specified admin. -func SendAdminPasswordReset(app core.App, admin *models.Admin) error { - token, tokenErr := tokens.NewAdminResetPasswordToken(app, admin) - if tokenErr != nil { - return tokenErr - } - - actionUrl, urlErr := rest.NormalizeUrl(fmt.Sprintf( - "%s/_/#/confirm-password-reset/%s", - app.Settings().Meta.AppUrl, - token, - )) - if urlErr != nil { - return urlErr - } - - params := struct { - AppName string - AppUrl string - Admin *models.Admin - Token string - ActionUrl string - }{ - AppName: app.Settings().Meta.AppName, - AppUrl: app.Settings().Meta.AppUrl, - Admin: admin, - Token: token, - ActionUrl: actionUrl, - } - - mailClient := app.NewMailClient() - - // resolve body template - body, renderErr := resolveTemplateContent(params, templates.Layout, templates.AdminPasswordResetBody) - if renderErr != nil { - return renderErr - } - - message := &mailer.Message{ - From: mail.Address{ - Name: app.Settings().Meta.SenderName, - Address: app.Settings().Meta.SenderAddress, - }, - To: mail.Address{Address: admin.Email}, - Subject: "Reset admin password", - HTML: body, - } - - event := &core.MailerAdminEvent{ - MailClient: mailClient, - Message: message, - Admin: admin, - Meta: map[string]any{"token": token}, - } - - sendErr := app.OnMailerBeforeAdminResetPasswordSend().Trigger(event, func(e *core.MailerAdminEvent) error { - return e.MailClient.Send(e.Message) - }) - - if sendErr == nil { - app.OnMailerAfterAdminResetPasswordSend().Trigger(event) - } - - return sendErr -} diff --git a/mails/admin_test.go b/mails/admin_test.go deleted file mode 100644 index 32bb6fe7b54f3a99ba7234bf960cd32b25d83149..0000000000000000000000000000000000000000 --- a/mails/admin_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package mails_test - -import ( - "strings" - "testing" - - "github.com/pocketbase/pocketbase/mails" - "github.com/pocketbase/pocketbase/tests" -) - -func TestSendAdminPasswordReset(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - // ensure that action url normalization will be applied - testApp.Settings().Meta.AppUrl = "http://localhost:8090////" - - admin, _ := testApp.Dao().FindAdminByEmail("test@example.com") - - err := mails.SendAdminPasswordReset(testApp, admin) - if err != nil { - t.Fatal(err) - } - - if testApp.TestMailer.TotalSend != 1 { - t.Fatalf("Expected one email to be sent, got %d", testApp.TestMailer.TotalSend) - } - - expectedParts := []string{ - "http://localhost:8090/_/#/confirm-password-reset/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.", - } - for _, part := range expectedParts { - if !strings.Contains(testApp.TestMailer.LastMessage.HTML, part) { - t.Fatalf("Couldn't find %s \nin\n %s", part, testApp.TestMailer.LastMessage.HTML) - } - } -} diff --git a/mails/base.go b/mails/base.go deleted file mode 100644 index 91a0ab7a3963b7b35f6bb4d4ff5e679c3764ad16..0000000000000000000000000000000000000000 --- a/mails/base.go +++ /dev/null @@ -1,33 +0,0 @@ -// Package mails implements various helper methods for sending user and admin -// emails like forgotten password, verification, etc. -package mails - -import ( - "bytes" - "text/template" -) - -// resolveTemplateContent resolves inline html template strings. -func resolveTemplateContent(data any, content ...string) (string, error) { - if len(content) == 0 { - return "", nil - } - - t := template.New("inline_template") - - var parseErr error - for _, v := range content { - t, parseErr = t.Parse(v) - if parseErr != nil { - return "", parseErr - } - } - - var wr bytes.Buffer - - if executeErr := t.Execute(&wr, data); executeErr != nil { - return "", executeErr - } - - return wr.String(), nil -} diff --git a/mails/record.go b/mails/record.go deleted file mode 100644 index a15ecbc6deb8892db7f15c5ccd20f7caefcad0ac..0000000000000000000000000000000000000000 --- a/mails/record.go +++ /dev/null @@ -1,167 +0,0 @@ -package mails - -import ( - "html/template" - "net/mail" - - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/mails/templates" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/settings" - "github.com/pocketbase/pocketbase/tokens" - "github.com/pocketbase/pocketbase/tools/mailer" -) - -// SendRecordPasswordReset sends a password reset request email to the specified user. -func SendRecordPasswordReset(app core.App, authRecord *models.Record) error { - token, tokenErr := tokens.NewRecordResetPasswordToken(app, authRecord) - if tokenErr != nil { - return tokenErr - } - - mailClient := app.NewMailClient() - - subject, body, err := resolveEmailTemplate(app, token, app.Settings().Meta.ResetPasswordTemplate) - if err != nil { - return err - } - - message := &mailer.Message{ - From: mail.Address{ - Name: app.Settings().Meta.SenderName, - Address: app.Settings().Meta.SenderAddress, - }, - To: mail.Address{Address: authRecord.Email()}, - Subject: subject, - HTML: body, - } - - event := &core.MailerRecordEvent{ - MailClient: mailClient, - Message: message, - Record: authRecord, - Meta: map[string]any{"token": token}, - } - - sendErr := app.OnMailerBeforeRecordResetPasswordSend().Trigger(event, func(e *core.MailerRecordEvent) error { - return e.MailClient.Send(e.Message) - }) - - if sendErr == nil { - app.OnMailerAfterRecordResetPasswordSend().Trigger(event) - } - - return sendErr -} - -// SendRecordVerification sends a verification request email to the specified user. -func SendRecordVerification(app core.App, authRecord *models.Record) error { - token, tokenErr := tokens.NewRecordVerifyToken(app, authRecord) - if tokenErr != nil { - return tokenErr - } - - mailClient := app.NewMailClient() - - subject, body, err := resolveEmailTemplate(app, token, app.Settings().Meta.VerificationTemplate) - if err != nil { - return err - } - - message := &mailer.Message{ - From: mail.Address{ - Name: app.Settings().Meta.SenderName, - Address: app.Settings().Meta.SenderAddress, - }, - To: mail.Address{Address: authRecord.Email()}, - Subject: subject, - HTML: body, - } - - event := &core.MailerRecordEvent{ - MailClient: mailClient, - Message: message, - Record: authRecord, - Meta: map[string]any{"token": token}, - } - - sendErr := app.OnMailerBeforeRecordVerificationSend().Trigger(event, func(e *core.MailerRecordEvent) error { - return e.MailClient.Send(e.Message) - }) - - if sendErr == nil { - app.OnMailerAfterRecordVerificationSend().Trigger(event) - } - - return sendErr -} - -// SendUserChangeEmail sends a change email confirmation email to the specified user. -func SendRecordChangeEmail(app core.App, record *models.Record, newEmail string) error { - token, tokenErr := tokens.NewRecordChangeEmailToken(app, record, newEmail) - if tokenErr != nil { - return tokenErr - } - - mailClient := app.NewMailClient() - - subject, body, err := resolveEmailTemplate(app, token, app.Settings().Meta.ConfirmEmailChangeTemplate) - if err != nil { - return err - } - - message := &mailer.Message{ - From: mail.Address{ - Name: app.Settings().Meta.SenderName, - Address: app.Settings().Meta.SenderAddress, - }, - To: mail.Address{Address: newEmail}, - Subject: subject, - HTML: body, - } - - event := &core.MailerRecordEvent{ - MailClient: mailClient, - Message: message, - Record: record, - Meta: map[string]any{ - "token": token, - "newEmail": newEmail, - }, - } - - sendErr := app.OnMailerBeforeRecordChangeEmailSend().Trigger(event, func(e *core.MailerRecordEvent) error { - return e.MailClient.Send(e.Message) - }) - - if sendErr == nil { - app.OnMailerAfterRecordChangeEmailSend().Trigger(event) - } - - return sendErr -} - -func resolveEmailTemplate( - app core.App, - token string, - emailTemplate settings.EmailTemplate, -) (subject string, body string, err error) { - subject, rawBody, _ := emailTemplate.Resolve( - app.Settings().Meta.AppName, - app.Settings().Meta.AppUrl, - token, - ) - - params := struct { - HtmlContent template.HTML - }{ - HtmlContent: template.HTML(rawBody), - } - - body, err = resolveTemplateContent(params, templates.Layout, templates.HtmlBody) - if err != nil { - return "", "", err - } - - return subject, body, nil -} diff --git a/mails/record_test.go b/mails/record_test.go deleted file mode 100644 index f885d1f2365b42903fa10bb82f71693e02540cf2..0000000000000000000000000000000000000000 --- a/mails/record_test.go +++ /dev/null @@ -1,87 +0,0 @@ -package mails_test - -import ( - "strings" - "testing" - - "github.com/pocketbase/pocketbase/mails" - "github.com/pocketbase/pocketbase/tests" -) - -func TestSendRecordPasswordReset(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - // ensure that action url normalization will be applied - testApp.Settings().Meta.AppUrl = "http://localhost:8090////" - - user, _ := testApp.Dao().FindFirstRecordByData("users", "email", "test@example.com") - - err := mails.SendRecordPasswordReset(testApp, user) - if err != nil { - t.Fatal(err) - } - - if testApp.TestMailer.TotalSend != 1 { - t.Fatalf("Expected one email to be sent, got %d", testApp.TestMailer.TotalSend) - } - - expectedParts := []string{ - "http://localhost:8090/_/#/auth/confirm-password-reset/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.", - } - for _, part := range expectedParts { - if !strings.Contains(testApp.TestMailer.LastMessage.HTML, part) { - t.Fatalf("Couldn't find %s \nin\n %s", part, testApp.TestMailer.LastMessage.HTML) - } - } -} - -func TestSendRecordVerification(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - user, _ := testApp.Dao().FindFirstRecordByData("users", "email", "test@example.com") - - err := mails.SendRecordVerification(testApp, user) - if err != nil { - t.Fatal(err) - } - - if testApp.TestMailer.TotalSend != 1 { - t.Fatalf("Expected one email to be sent, got %d", testApp.TestMailer.TotalSend) - } - - expectedParts := []string{ - "http://localhost:8090/_/#/auth/confirm-verification/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.", - } - for _, part := range expectedParts { - if !strings.Contains(testApp.TestMailer.LastMessage.HTML, part) { - t.Fatalf("Couldn't find %s \nin\n %s", part, testApp.TestMailer.LastMessage.HTML) - } - } -} - -func TestSendRecordChangeEmail(t *testing.T) { - testApp, _ := tests.NewTestApp() - defer testApp.Cleanup() - - user, _ := testApp.Dao().FindFirstRecordByData("users", "email", "test@example.com") - - err := mails.SendRecordChangeEmail(testApp, user, "new_test@example.com") - if err != nil { - t.Fatal(err) - } - - if testApp.TestMailer.TotalSend != 1 { - t.Fatalf("Expected one email to be sent, got %d", testApp.TestMailer.TotalSend) - } - - expectedParts := []string{ - "http://localhost:8090/_/#/auth/confirm-email-change/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.", - } - for _, part := range expectedParts { - if !strings.Contains(testApp.TestMailer.LastMessage.HTML, part) { - t.Fatalf("Couldn't find %s \nin\n %s", part, testApp.TestMailer.LastMessage.HTML) - } - } -} diff --git a/mails/templates/admin_password_reset.go b/mails/templates/admin_password_reset.go deleted file mode 100644 index f6207c3fe181b886cda1b684fc77e6eb2ec4563a..0000000000000000000000000000000000000000 --- a/mails/templates/admin_password_reset.go +++ /dev/null @@ -1,21 +0,0 @@ -package templates - -// Available variables: -// -// ``` -// Admin *models.Admin -// AppName string -// AppUrl string -// Token string -// ActionUrl string -// ``` -const AdminPasswordResetBody = ` -{{define "content"}} -

Hello,

-

Follow this link to reset your admin password for {{.AppName}}.

-

- Reset password -

-

If you did not request to reset your password, please ignore this email and the link will expire on its own.

-{{end}} -` diff --git a/mails/templates/html_content.go b/mails/templates/html_content.go deleted file mode 100644 index cb4127514c09f0e74cd0fead3a238469f94d16a2..0000000000000000000000000000000000000000 --- a/mails/templates/html_content.go +++ /dev/null @@ -1,8 +0,0 @@ -package templates - -// Available variables: -// -// ``` -// HtmlContent template.HTML -// ``` -const HtmlBody = `{{define "content"}}{{.HtmlContent}}{{end}}` diff --git a/mails/templates/layout.go b/mails/templates/layout.go deleted file mode 100644 index 7e3375831913def82ea746c45058e2a3ac4d1293..0000000000000000000000000000000000000000 --- a/mails/templates/layout.go +++ /dev/null @@ -1,111 +0,0 @@ -package templates - -const Layout = ` - - - - - - - - -
-
- {{template "content" .}} -
-
- - -` diff --git a/registry/main.go b/main.go similarity index 91% rename from registry/main.go rename to main.go index 81f469a9b5fd13c51a12171d1206dc650fb8604e..ab353757202471f5d37580d03351110bc73797af 100644 --- a/registry/main.go +++ b/main.go @@ -12,8 +12,12 @@ import ( "os" "strings" "testing/fstest" + + "just/registry/helpers" + + "golang.org/x/exp/slices" + "github.com/labstack/echo/v5" - "github.com/labstack/echo/v5" "github.com/pocketbase/dbx" "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/apis" @@ -23,19 +27,8 @@ import ( "github.com/pocketbase/pocketbase/models/schema" "github.com/pocketbase/pocketbase/tools/search" "github.com/pocketbase/pocketbase/tools/types" - "golang.org/x/exp/slices" ) -type Response struct { - Status int64 `json:"status"` - Message map[string]interface{} `json:"message"` -} - -type ErrorResponse struct { - Status int64 `json:"status"` - Error error `json:"error"` -} - func update_package(app core.App, package_name string, record_id string, de_listed bool) error { record, err := app.Dao().FindRecordById(package_name, record_id) if err != nil { @@ -246,36 +239,6 @@ func create_version(app core.App, c echo.Context) error { return nil } -type DistInfo struct { - Integrity string `json:"integrity"` - Tarball string `json:"tarball"` - FileCount int64 `json:"fileCount"` - UnpackedSize int64 `json:"unpackedSize"` -} - -type VersionInfo struct { - Id string `json:"_id"` - Access []string `json:"_maintainers"` - Version string `json:"version"` - Published types.DateTime `json:"published"` - Description string `json:"description"` - Author string `json:"author"` - License string `json:"license"` - Private bool `json:"private"` - Dependencies map[string]string `json:"dependencies"` - Dist DistInfo `json:"dist"` -} - -type PackageInfo struct { - Id string `json:"_id"` - Name string `json:"name"` - License string `json:"license"` - Description string `json:"description"` - Versions map[string]VersionInfo `json:"versions"` - Times map[string]types.DateTime `json:"times"` - Dist DistInfo `json:"dist"` -} - func isPrivate(record *models.Record) bool { if record.GetString("visibility") == "private" { return true @@ -426,8 +389,13 @@ func package_version(app core.App, c echo.Context, split []string) error { } func main() { - app := pocketbase.New() - + _, isUsingGoRun := helpers.InspectRuntime() + + app := pocketbase.NewWithConfig(pocketbase.Config{ + DefaultDataDir: "packages", + DefaultDebug: isUsingGoRun, + }) + app.OnBeforeServe().Add(func(e *core.ServeEvent) error { e.Router.AddRoute(echo.Route{ Method: http.MethodGet, @@ -619,14 +587,6 @@ func main() { return nil }) - type Result struct { - Page int `json:"page"` - PerPage int `json:"perPage"` - TotalItems int `json:"totalItems"` - TotalPages int `json:"totalPages"` - Packages any `json:"packages"` - } - app.OnBeforeServe().Add(func(e *core.ServeEvent) error { e.Router.AddRoute(echo.Route{ Method: http.MethodGet, @@ -654,8 +614,8 @@ func main() { "updated": collection.Updated, } } - - delete(pkgs, "just_auth_system") + + delete(pkgs, "just_auth_system") return c.JSON(http.StatusOK, &Result{ Page: result.Page, @@ -673,6 +633,12 @@ func main() { return nil }) + + app.OnBeforeServe().Add(func(e *core.ServeEvent) error { + // serves static files from the provided public dir (if exists) + e.Router.GET("/pkgs/*", apis.StaticDirectoryHandler(os.DirFS("static"), true)) + return nil + }) if err := app.Start(); err != nil { log.Fatal(err) diff --git a/migrations/1640988000_init.go b/migrations/1640988000_init.go deleted file mode 100644 index 9533f3755a655dae94733edda20b224c6e9e47bf..0000000000000000000000000000000000000000 --- a/migrations/1640988000_init.go +++ /dev/null @@ -1,159 +0,0 @@ -// Package migrations contains the system PocketBase DB migrations. -package migrations - -import ( - "path/filepath" - "runtime" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/migrate" - "github.com/pocketbase/pocketbase/tools/types" -) - -var AppMigrations migrate.MigrationsList - -// Register is a short alias for `AppMigrations.Register()` -// that is usually used in external/user defined migrations. -func Register( - up func(db dbx.Builder) error, - down func(db dbx.Builder) error, - optFilename ...string, -) { - var optFiles []string - if len(optFilename) > 0 { - optFiles = optFilename - } else { - _, path, _, _ := runtime.Caller(1) - optFiles = append(optFiles, filepath.Base(path)) - } - AppMigrations.Register(up, down, optFiles...) -} - -func init() { - AppMigrations.Register(func(db dbx.Builder) error { - _, tablesErr := db.NewQuery(` - CREATE TABLE {{_admins}} ( - [[id]] TEXT PRIMARY KEY, - [[avatar]] INTEGER DEFAULT 0 NOT NULL, - [[email]] TEXT UNIQUE NOT NULL, - [[tokenKey]] TEXT UNIQUE NOT NULL, - [[passwordHash]] TEXT NOT NULL, - [[lastResetSentAt]] TEXT DEFAULT "" NOT NULL, - [[created]] TEXT DEFAULT "" NOT NULL, - [[updated]] TEXT DEFAULT "" NOT NULL - ); - - CREATE TABLE {{_collections}} ( - [[id]] TEXT PRIMARY KEY, - [[system]] BOOLEAN DEFAULT FALSE NOT NULL, - [[type]] TEXT DEFAULT "base" NOT NULL, - [[name]] TEXT UNIQUE NOT NULL, - [[schema]] JSON DEFAULT "[]" NOT NULL, - [[listRule]] TEXT DEFAULT NULL, - [[viewRule]] TEXT DEFAULT NULL, - [[createRule]] TEXT DEFAULT NULL, - [[updateRule]] TEXT DEFAULT NULL, - [[deleteRule]] TEXT DEFAULT NULL, - [[options]] JSON DEFAULT "{}" NOT NULL, - [[created]] TEXT DEFAULT "" NOT NULL, - [[updated]] TEXT DEFAULT "" NOT NULL - ); - - CREATE TABLE {{_params}} ( - [[id]] TEXT PRIMARY KEY, - [[key]] TEXT UNIQUE NOT NULL, - [[value]] JSON DEFAULT NULL, - [[created]] TEXT DEFAULT "" NOT NULL, - [[updated]] TEXT DEFAULT "" NOT NULL - ); - - CREATE TABLE {{_externalAuths}} ( - [[id]] TEXT PRIMARY KEY, - [[collectionId]] TEXT NOT NULL, - [[recordId]] TEXT NOT NULL, - [[provider]] TEXT NOT NULL, - [[providerId]] TEXT NOT NULL, - [[created]] TEXT DEFAULT "" NOT NULL, - [[updated]] TEXT DEFAULT "" NOT NULL, - --- - FOREIGN KEY ([[collectionId]]) REFERENCES {{_collections}} ([[id]]) ON UPDATE CASCADE ON DELETE CASCADE - ); - - CREATE UNIQUE INDEX _externalAuths_record_provider_idx on {{_externalAuths}} ([[collectionId]], [[recordId]], [[provider]]); - CREATE UNIQUE INDEX _externalAuths_provider_providerId_idx on {{_externalAuths}} ([[provider]], [[providerId]]); - `).Execute() - if tablesErr != nil { - return tablesErr - } - - // inserts the system profiles collection - // ----------------------------------------------------------- - usersCollection := &models.Collection{} - usersCollection.MarkAsNew() - usersCollection.Id = "_pb_users_auth_" - usersCollection.Name = "users" - usersCollection.Type = models.CollectionTypeAuth - usersCollection.ListRule = types.Pointer("id = @request.auth.id") - usersCollection.ViewRule = types.Pointer("id = @request.auth.id") - usersCollection.CreateRule = types.Pointer("") - usersCollection.UpdateRule = types.Pointer("id = @request.auth.id") - usersCollection.DeleteRule = types.Pointer("id = @request.auth.id") - - // set auth options - usersCollection.SetOptions(models.CollectionAuthOptions{ - ManageRule: nil, - AllowOAuth2Auth: true, - AllowUsernameAuth: true, - AllowEmailAuth: true, - MinPasswordLength: 8, - RequireEmail: false, - }) - - // set optional default fields - usersCollection.Schema = schema.NewSchema( - &schema.SchemaField{ - Id: "users_name", - Type: schema.FieldTypeText, - Name: "name", - Options: &schema.TextOptions{}, - }, - &schema.SchemaField{ - Id: "users_avatar", - Type: schema.FieldTypeFile, - Name: "avatar", - Options: &schema.FileOptions{ - MaxSelect: 1, - MaxSize: 5242880, - MimeTypes: []string{ - "image/jpg", - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - }, - }, - }, - ) - - return daos.New(db).SaveCollection(usersCollection) - }, func(db dbx.Builder) error { - tables := []string{ - "users", - "_externalAuths", - "_params", - "_collections", - "_admins", - } - - for _, name := range tables { - if _, err := db.DropTable(name).Execute(); err != nil { - return err - } - } - - return nil - }) -} diff --git a/migrations/logs/1640988000_init.go b/migrations/logs/1640988000_init.go deleted file mode 100644 index 308f1398367b8c9ff0417b37509e78240b977d31..0000000000000000000000000000000000000000 --- a/migrations/logs/1640988000_init.go +++ /dev/null @@ -1,38 +0,0 @@ -package logs - -import ( - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/tools/migrate" -) - -var LogsMigrations migrate.MigrationsList - -func init() { - LogsMigrations.Register(func(db dbx.Builder) (err error) { - _, err = db.NewQuery(` - CREATE TABLE {{_requests}} ( - [[id]] TEXT PRIMARY KEY, - [[url]] TEXT DEFAULT "" NOT NULL, - [[method]] TEXT DEFAULT "get" NOT NULL, - [[status]] INTEGER DEFAULT 200 NOT NULL, - [[auth]] TEXT DEFAULT "guest" NOT NULL, - [[ip]] TEXT DEFAULT "127.0.0.1" NOT NULL, - [[referer]] TEXT DEFAULT "" NOT NULL, - [[userAgent]] TEXT DEFAULT "" NOT NULL, - [[meta]] JSON DEFAULT "{}" NOT NULL, - [[created]] TEXT DEFAULT "" NOT NULL, - [[updated]] TEXT DEFAULT "" NOT NULL - ); - - CREATE INDEX _request_status_idx on {{_requests}} ([[status]]); - CREATE INDEX _request_auth_idx on {{_requests}} ([[auth]]); - CREATE INDEX _request_ip_idx on {{_requests}} ([[ip]]); - CREATE INDEX _request_created_hour_idx on {{_requests}} (strftime('%Y-%m-%d %H:00:00', [[created]])); - `).Execute() - - return err - }, func(db dbx.Builder) error { - _, err := db.DropTable("_requests").Execute() - return err - }) -} diff --git a/migrations/logs/1660821103_add_user_ip_column.go b/migrations/logs/1660821103_add_user_ip_column.go deleted file mode 100644 index 1af099d5004161e0b2397e6c3c9ce63f88d55ae6..0000000000000000000000000000000000000000 --- a/migrations/logs/1660821103_add_user_ip_column.go +++ /dev/null @@ -1,57 +0,0 @@ -package logs - -import ( - "github.com/pocketbase/dbx" -) - -func init() { - LogsMigrations.Register(func(db dbx.Builder) error { - // delete old index (don't check for error because of backward compatibility with old installations) - db.DropIndex("_requests", "_request_ip_idx").Execute() - - // rename ip -> remoteIp - if _, err := db.RenameColumn("_requests", "ip", "remoteIp").Execute(); err != nil { - return err - } - - // add new userIp column - if _, err := db.AddColumn("_requests", "userIp", `TEXT DEFAULT "127.0.0.1" NOT NULL`).Execute(); err != nil { - return err - } - - // add new indexes - if _, err := db.CreateIndex("_requests", "_request_remote_ip_idx", "remoteIp").Execute(); err != nil { - return err - } - if _, err := db.CreateIndex("_requests", "_request_user_ip_idx", "userIp").Execute(); err != nil { - return err - } - - return nil - }, func(db dbx.Builder) error { - // delete new indexes - if _, err := db.DropIndex("_requests", "_request_remote_ip_idx").Execute(); err != nil { - return err - } - if _, err := db.DropIndex("_requests", "_request_user_ip_idx").Execute(); err != nil { - return err - } - - // drop userIp column - if _, err := db.DropColumn("_requests", "userIp").Execute(); err != nil { - return err - } - - // restore original remoteIp column name - if _, err := db.RenameColumn("_requests", "remoteIp", "ip").Execute(); err != nil { - return err - } - - // restore original index - if _, err := db.CreateIndex("_requests", "_request_ip_idx", "ip").Execute(); err != nil { - return err - } - - return nil - }) -} diff --git a/models/admin.go b/models/admin.go deleted file mode 100644 index c85e133ca0d821025a9c59aebf89ac90df754300..0000000000000000000000000000000000000000 --- a/models/admin.go +++ /dev/null @@ -1,67 +0,0 @@ -package models - -import ( - "errors" - - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" - "golang.org/x/crypto/bcrypt" -) - -var ( - _ Model = (*Admin)(nil) -) - -type Admin struct { - BaseModel - - Avatar int `db:"avatar" json:"avatar"` - Email string `db:"email" json:"email"` - TokenKey string `db:"tokenKey" json:"-"` - PasswordHash string `db:"passwordHash" json:"-"` - LastResetSentAt types.DateTime `db:"lastResetSentAt" json:"-"` -} - -// TableName returns the Admin model SQL table name. -func (m *Admin) TableName() string { - return "_admins" -} - -// ValidatePassword validates a plain password against the model's password. -func (m *Admin) ValidatePassword(password string) bool { - bytePassword := []byte(password) - bytePasswordHash := []byte(m.PasswordHash) - - // comparing the password with the hash - err := bcrypt.CompareHashAndPassword(bytePasswordHash, bytePassword) - - // nil means it is a match - return err == nil -} - -// SetPassword sets cryptographically secure string to `model.Password`. -// -// Additionally this method also resets the LastResetSentAt and the TokenKey fields. -func (m *Admin) SetPassword(password string) error { - if password == "" { - return errors.New("The provided plain password is empty") - } - - // hash the password - hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), 13) - if err != nil { - return err - } - - m.PasswordHash = string(hashedPassword) - m.LastResetSentAt = types.DateTime{} // reset - - // invalidate previously issued tokens - return m.RefreshTokenKey() -} - -// RefreshTokenKey generates and sets new random token key. -func (m *Admin) RefreshTokenKey() error { - m.TokenKey = security.RandomString(50) - return nil -} diff --git a/models/admin_test.go b/models/admin_test.go deleted file mode 100644 index 261135dd272f5326ba812325800d046be8880412..0000000000000000000000000000000000000000 --- a/models/admin_test.go +++ /dev/null @@ -1,104 +0,0 @@ -package models_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestAdminTableName(t *testing.T) { - m := models.Admin{} - if m.TableName() != "_admins" { - t.Fatalf("Unexpected table name, got %q", m.TableName()) - } -} - -func TestAdminValidatePassword(t *testing.T) { - scenarios := []struct { - admin models.Admin - password string - expected bool - }{ - { - // empty passwordHash + empty pass - models.Admin{}, - "", - false, - }, - { - // empty passwordHash + nonempty pass - models.Admin{}, - "123456", - false, - }, - { - // nonempty passwordHash + empty pass - models.Admin{PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv."}, - "", - false, - }, - { - // nonempty passwordHash + wrong pass - models.Admin{PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv."}, - "654321", - false, - }, - { - // nonempty passwordHash + correct pass - models.Admin{PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv."}, - "123456", - true, - }, - } - - for i, s := range scenarios { - result := s.admin.ValidatePassword(s.password) - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestAdminSetPassword(t *testing.T) { - m := models.Admin{ - // 123456 - PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv.", - LastResetSentAt: types.NowDateTime(), - TokenKey: "test", - } - - // empty pass - err1 := m.SetPassword("") - if err1 == nil { - t.Fatal("Expected empty password error") - } - - err2 := m.SetPassword("654321") - if err2 != nil { - t.Fatalf("Expected nil, got error %v", err2) - } - - if !m.ValidatePassword("654321") { - t.Fatalf("Password is invalid") - } - - if m.TokenKey == "test" { - t.Fatalf("Expected TokenKey to change, got %v", m.TokenKey) - } - - if !m.LastResetSentAt.IsZero() { - t.Fatalf("Expected LastResetSentAt to be zero datetime, got %v", m.LastResetSentAt) - } -} - -func TestAdminRefreshTokenKey(t *testing.T) { - m := models.Admin{TokenKey: "test"} - - m.RefreshTokenKey() - - // empty pass - if m.TokenKey == "" || m.TokenKey == "test" { - t.Fatalf("Expected TokenKey to change, got %q", m.TokenKey) - } -} diff --git a/models/base.go b/models/base.go deleted file mode 100644 index 44f5a76d701d44d6a1aee446cd7b6628edbb7193..0000000000000000000000000000000000000000 --- a/models/base.go +++ /dev/null @@ -1,122 +0,0 @@ -// Package models implements all PocketBase DB models and DTOs. -package models - -import ( - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" -) - -const ( - // DefaultIdLength is the default length of the generated model id. - DefaultIdLength = 15 - - // DefaultIdAlphabet is the default characters set used for generating the model id. - DefaultIdAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789" -) - -// ColumnValueMapper defines an interface for custom db model data serialization. -type ColumnValueMapper interface { - // ColumnValueMap returns the data to be used when persisting the model. - ColumnValueMap() map[string]any -} - -// FilesManager defines an interface with common methods that files manager models should implement. -type FilesManager interface { - // BaseFilesPath returns the storage dir path used by the interface instance. - BaseFilesPath() string -} - -// Model defines an interface with common methods that all db models should have. -type Model interface { - TableName() string - IsNew() bool - MarkAsNew() - MarkAsNotNew() - HasId() bool - GetId() string - SetId(id string) - GetCreated() types.DateTime - GetUpdated() types.DateTime - RefreshId() - RefreshCreated() - RefreshUpdated() -} - -// ------------------------------------------------------------------- -// BaseModel -// ------------------------------------------------------------------- - -// BaseModel defines common fields and methods used by all other models. -type BaseModel struct { - isNotNew bool - - Id string `db:"id" json:"id"` - Created types.DateTime `db:"created" json:"created"` - Updated types.DateTime `db:"updated" json:"updated"` -} - -// HasId returns whether the model has a nonzero id. -func (m *BaseModel) HasId() bool { - return m.GetId() != "" -} - -// GetId returns the model id. -func (m *BaseModel) GetId() string { - return m.Id -} - -// SetId sets the model id to the provided string value. -func (m *BaseModel) SetId(id string) { - m.Id = id -} - -// MarkAsNew marks the model as "new" (aka. enforces m.IsNew() to be true). -func (m *BaseModel) MarkAsNew() { - m.isNotNew = false -} - -// MarkAsNotNew marks the model as "not new" (aka. enforces m.IsNew() to be false) -func (m *BaseModel) MarkAsNotNew() { - m.isNotNew = true -} - -// IsNew indicates what type of db query (insert or update) -// should be used with the model instance. -func (m *BaseModel) IsNew() bool { - return !m.isNotNew -} - -// GetCreated returns the model Created datetime. -func (m *BaseModel) GetCreated() types.DateTime { - return m.Created -} - -// GetUpdated returns the model Updated datetime. -func (m *BaseModel) GetUpdated() types.DateTime { - return m.Updated -} - -// RefreshId generates and sets a new model id. -// -// The generated id is a cryptographically random 15 characters length string. -func (m *BaseModel) RefreshId() { - m.Id = security.RandomStringWithAlphabet(DefaultIdLength, DefaultIdAlphabet) -} - -// RefreshCreated updates the model Created field with the current datetime. -func (m *BaseModel) RefreshCreated() { - m.Created = types.NowDateTime() -} - -// RefreshUpdated updates the model Updated field with the current datetime. -func (m *BaseModel) RefreshUpdated() { - m.Updated = types.NowDateTime() -} - -// PostScan implements the [dbx.PostScanner] interface. -// -// It is executed right after the model was populated with the db row values. -func (m *BaseModel) PostScan() error { - m.MarkAsNotNew() - return nil -} diff --git a/models/base_test.go b/models/base_test.go deleted file mode 100644 index 764c26d2da99f2cc7d123f7f5b92af259081a922..0000000000000000000000000000000000000000 --- a/models/base_test.go +++ /dev/null @@ -1,124 +0,0 @@ -package models_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" -) - -func TestBaseModelHasId(t *testing.T) { - scenarios := []struct { - model models.BaseModel - expected bool - }{ - { - models.BaseModel{}, - false, - }, - { - models.BaseModel{Id: ""}, - false, - }, - { - models.BaseModel{Id: "abc"}, - true, - }, - } - - for i, s := range scenarios { - result := s.model.HasId() - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestBaseModelId(t *testing.T) { - m := models.BaseModel{} - - if m.GetId() != "" { - t.Fatalf("Expected empty id value, got %v", m.GetId()) - } - - m.SetId("test") - - if m.GetId() != "test" { - t.Fatalf("Expected %q id, got %v", "test", m.GetId()) - } - - m.RefreshId() - - if len(m.GetId()) != 15 { - t.Fatalf("Expected 15 chars id, got %v", m.GetId()) - } -} - -func TestBaseModelIsNew(t *testing.T) { - m0 := models.BaseModel{} - m1 := models.BaseModel{Id: ""} - m2 := models.BaseModel{Id: "test"} - m3 := models.BaseModel{} - m3.MarkAsNotNew() - m4 := models.BaseModel{Id: "test"} - m4.MarkAsNotNew() - m5 := models.BaseModel{Id: "test"} - m5.MarkAsNew() - m5.MarkAsNotNew() - m6 := models.BaseModel{} - m6.RefreshId() - m7 := models.BaseModel{} - m7.MarkAsNotNew() - m7.RefreshId() - m8 := models.BaseModel{} - m8.PostScan() - - scenarios := []struct { - model models.BaseModel - expected bool - }{ - {m0, true}, - {m1, true}, - {m2, true}, - {m3, false}, - {m4, false}, - {m5, false}, - {m6, true}, - {m7, false}, - {m8, false}, - } - - for i, s := range scenarios { - result := s.model.IsNew() - if result != s.expected { - t.Errorf("(%d) Expected IsNew %v, got %v", i, s.expected, result) - } - } -} - -func TestBaseModelCreated(t *testing.T) { - m := models.BaseModel{} - - if !m.GetCreated().IsZero() { - t.Fatalf("Expected zero datetime, got %v", m.GetCreated()) - } - - m.RefreshCreated() - - if m.GetCreated().IsZero() { - t.Fatalf("Expected non-zero datetime, got %v", m.GetCreated()) - } -} - -func TestBaseModelUpdated(t *testing.T) { - m := models.BaseModel{} - - if !m.GetUpdated().IsZero() { - t.Fatalf("Expected zero datetime, got %v", m.GetUpdated()) - } - - m.RefreshUpdated() - - if m.GetUpdated().IsZero() { - t.Fatalf("Expected non-zero datetime, got %v", m.GetUpdated()) - } -} diff --git a/models/collection.go b/models/collection.go deleted file mode 100644 index 47ecf4a10eaffa920cefad52afbf592685283a44..0000000000000000000000000000000000000000 --- a/models/collection.go +++ /dev/null @@ -1,186 +0,0 @@ -package models - -import ( - "encoding/json" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/types" -) - -var ( - _ Model = (*Collection)(nil) - _ FilesManager = (*Collection)(nil) -) - -const ( - CollectionTypeBase = "base" - CollectionTypeAuth = "auth" -) - -type Collection struct { - BaseModel - - Name string `db:"name" json:"name"` - Type string `db:"type" json:"type"` - System bool `db:"system" json:"system"` - Schema schema.Schema `db:"schema" json:"schema"` - - // rules - ListRule *string `db:"listRule" json:"listRule"` - ViewRule *string `db:"viewRule" json:"viewRule"` - CreateRule *string `db:"createRule" json:"createRule"` - UpdateRule *string `db:"updateRule" json:"updateRule"` - DeleteRule *string `db:"deleteRule" json:"deleteRule"` - - Options types.JsonMap `db:"options" json:"options"` -} - -// TableName returns the Collection model SQL table name. -func (m *Collection) TableName() string { - return "_collections" -} - -// BaseFilesPath returns the storage dir path used by the collection. -func (m *Collection) BaseFilesPath() string { - return m.Id -} - -// IsBase checks if the current collection has "base" type. -func (m *Collection) IsBase() bool { - return m.Type == CollectionTypeBase -} - -// IsBase checks if the current collection has "auth" type. -func (m *Collection) IsAuth() bool { - return m.Type == CollectionTypeAuth -} - -// MarshalJSON implements the [json.Marshaler] interface. -func (m Collection) MarshalJSON() ([]byte, error) { - type alias Collection // prevent recursion - - m.NormalizeOptions() - - return json.Marshal(alias(m)) -} - -// BaseOptions decodes the current collection options and returns them -// as new [CollectionBaseOptions] instance. -func (m *Collection) BaseOptions() CollectionBaseOptions { - result := CollectionBaseOptions{} - m.DecodeOptions(&result) - return result -} - -// AuthOptions decodes the current collection options and returns them -// as new [CollectionAuthOptions] instance. -func (m *Collection) AuthOptions() CollectionAuthOptions { - result := CollectionAuthOptions{} - m.DecodeOptions(&result) - return result -} - -// NormalizeOptions updates the current collection options with a -// new normalized state based on the collection type. -func (m *Collection) NormalizeOptions() error { - var typedOptions any - switch m.Type { - case CollectionTypeAuth: - typedOptions = m.AuthOptions() - default: - typedOptions = m.BaseOptions() - } - - // serialize - raw, err := json.Marshal(typedOptions) - if err != nil { - return err - } - - // load into a new JsonMap - m.Options = types.JsonMap{} - if err := json.Unmarshal(raw, &m.Options); err != nil { - return err - } - - return nil -} - -// DecodeOptions decodes the current collection options into the -// provided "result" (must be a pointer). -func (m *Collection) DecodeOptions(result any) error { - // raw serialize - raw, err := json.Marshal(m.Options) - if err != nil { - return err - } - - // decode into the provided result - if err := json.Unmarshal(raw, result); err != nil { - return err - } - - return nil -} - -// SetOptions normalizes and unmarshals the specified options into m.Options. -func (m *Collection) SetOptions(typedOptions any) error { - // serialize - raw, err := json.Marshal(typedOptions) - if err != nil { - return err - } - - m.Options = types.JsonMap{} - if err := json.Unmarshal(raw, &m.Options); err != nil { - return err - } - - return m.NormalizeOptions() -} - -// ------------------------------------------------------------------- - -// CollectionAuthOptions defines the "base" Collection.Options fields. -type CollectionBaseOptions struct { -} - -// Validate implements [validation.Validatable] interface. -func (o CollectionBaseOptions) Validate() error { - return nil -} - -// CollectionAuthOptions defines the "auth" Collection.Options fields. -type CollectionAuthOptions struct { - ManageRule *string `form:"manageRule" json:"manageRule"` - AllowOAuth2Auth bool `form:"allowOAuth2Auth" json:"allowOAuth2Auth"` - AllowUsernameAuth bool `form:"allowUsernameAuth" json:"allowUsernameAuth"` - AllowEmailAuth bool `form:"allowEmailAuth" json:"allowEmailAuth"` - RequireEmail bool `form:"requireEmail" json:"requireEmail"` - ExceptEmailDomains []string `form:"exceptEmailDomains" json:"exceptEmailDomains"` - OnlyEmailDomains []string `form:"onlyEmailDomains" json:"onlyEmailDomains"` - MinPasswordLength int `form:"minPasswordLength" json:"minPasswordLength"` -} - -// Validate implements [validation.Validatable] interface. -func (o CollectionAuthOptions) Validate() error { - return validation.ValidateStruct(&o, - validation.Field(&o.ManageRule, validation.NilOrNotEmpty), - validation.Field( - &o.ExceptEmailDomains, - validation.When(len(o.OnlyEmailDomains) > 0, validation.Empty).Else(validation.Each(is.Domain)), - ), - validation.Field( - &o.OnlyEmailDomains, - validation.When(len(o.ExceptEmailDomains) > 0, validation.Empty).Else(validation.Each(is.Domain)), - ), - validation.Field( - &o.MinPasswordLength, - validation.When(o.AllowUsernameAuth || o.AllowEmailAuth, validation.Required), - validation.Min(5), - validation.Max(72), - ), - ) -} diff --git a/models/collection_test.go b/models/collection_test.go deleted file mode 100644 index 57a1b9bef835ad9afd37aa77a403cd40f35f1f6e..0000000000000000000000000000000000000000 --- a/models/collection_test.go +++ /dev/null @@ -1,396 +0,0 @@ -package models_test - -import ( - "encoding/json" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestCollectionTableName(t *testing.T) { - m := models.Collection{} - if m.TableName() != "_collections" { - t.Fatalf("Unexpected table name, got %q", m.TableName()) - } -} - -func TestCollectionBaseFilesPath(t *testing.T) { - m := models.Collection{} - - m.RefreshId() - - expected := m.Id - if m.BaseFilesPath() != expected { - t.Fatalf("Expected path %s, got %s", expected, m.BaseFilesPath()) - } -} - -func TestCollectionIsBase(t *testing.T) { - scenarios := []struct { - collection models.Collection - expected bool - }{ - {models.Collection{}, false}, - {models.Collection{Type: "unknown"}, false}, - {models.Collection{Type: models.CollectionTypeBase}, true}, - {models.Collection{Type: models.CollectionTypeAuth}, false}, - } - - for i, s := range scenarios { - result := s.collection.IsBase() - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestCollectionIsAuth(t *testing.T) { - scenarios := []struct { - collection models.Collection - expected bool - }{ - {models.Collection{}, false}, - {models.Collection{Type: "unknown"}, false}, - {models.Collection{Type: models.CollectionTypeBase}, false}, - {models.Collection{Type: models.CollectionTypeAuth}, true}, - } - - for i, s := range scenarios { - result := s.collection.IsAuth() - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestCollectionMarshalJSON(t *testing.T) { - scenarios := []struct { - name string - collection models.Collection - expected string - }{ - { - "no type", - models.Collection{Name: "test"}, - `{"id":"","created":"","updated":"","name":"test","type":"","system":false,"schema":[],"listRule":null,"viewRule":null,"createRule":null,"updateRule":null,"deleteRule":null,"options":{}}`, - }, - { - "unknown type + non empty options", - models.Collection{Name: "test", Type: "unknown", ListRule: types.Pointer("test_list"), Options: types.JsonMap{"test": 123}}, - `{"id":"","created":"","updated":"","name":"test","type":"unknown","system":false,"schema":[],"listRule":"test_list","viewRule":null,"createRule":null,"updateRule":null,"deleteRule":null,"options":{}}`, - }, - { - "base type + non empty options", - models.Collection{Name: "test", Type: models.CollectionTypeBase, ListRule: types.Pointer("test_list"), Options: types.JsonMap{"test": 123}}, - `{"id":"","created":"","updated":"","name":"test","type":"base","system":false,"schema":[],"listRule":"test_list","viewRule":null,"createRule":null,"updateRule":null,"deleteRule":null,"options":{}}`, - }, - { - "auth type + non empty options", - models.Collection{BaseModel: models.BaseModel{Id: "test"}, Type: models.CollectionTypeAuth, Options: types.JsonMap{"test": 123, "allowOAuth2Auth": true, "minPasswordLength": 4}}, - `{"id":"test","created":"","updated":"","name":"","type":"auth","system":false,"schema":[],"listRule":null,"viewRule":null,"createRule":null,"updateRule":null,"deleteRule":null,"options":{"allowEmailAuth":false,"allowOAuth2Auth":true,"allowUsernameAuth":false,"exceptEmailDomains":null,"manageRule":null,"minPasswordLength":4,"onlyEmailDomains":null,"requireEmail":false}}`, - }, - } - - for _, s := range scenarios { - result, err := s.collection.MarshalJSON() - if err != nil { - t.Errorf("(%s) Unexpected error %v", s.name, err) - continue - } - if string(result) != s.expected { - t.Errorf("(%s) Expected\n%v \ngot \n%v", s.name, s.expected, string(result)) - } - } -} - -func TestCollectionBaseOptions(t *testing.T) { - scenarios := []struct { - name string - collection models.Collection - expected string - }{ - { - "no type", - models.Collection{Options: types.JsonMap{"test": 123}}, - "{}", - }, - { - "unknown type", - models.Collection{Type: "anything", Options: types.JsonMap{"test": 123}}, - "{}", - }, - { - "different type", - models.Collection{Type: models.CollectionTypeAuth, Options: types.JsonMap{"test": 123, "minPasswordLength": 4}}, - "{}", - }, - { - "base type", - models.Collection{Type: models.CollectionTypeBase, Options: types.JsonMap{"test": 123}}, - "{}", - }, - } - - for _, s := range scenarios { - result := s.collection.BaseOptions() - - encoded, err := json.Marshal(result) - if err != nil { - t.Fatal(err) - } - - if strEncoded := string(encoded); strEncoded != s.expected { - t.Errorf("(%s) Expected \n%v \ngot \n%v", s.name, s.expected, strEncoded) - } - } -} - -func TestCollectionAuthOptions(t *testing.T) { - options := types.JsonMap{"test": 123, "minPasswordLength": 4} - expectedSerialization := `{"manageRule":null,"allowOAuth2Auth":false,"allowUsernameAuth":false,"allowEmailAuth":false,"requireEmail":false,"exceptEmailDomains":null,"onlyEmailDomains":null,"minPasswordLength":4}` - - scenarios := []struct { - name string - collection models.Collection - expected string - }{ - { - "no type", - models.Collection{Options: options}, - expectedSerialization, - }, - { - "unknown type", - models.Collection{Type: "anything", Options: options}, - expectedSerialization, - }, - { - "different type", - models.Collection{Type: models.CollectionTypeBase, Options: options}, - expectedSerialization, - }, - { - "auth type", - models.Collection{Type: models.CollectionTypeAuth, Options: options}, - expectedSerialization, - }, - } - - for _, s := range scenarios { - result := s.collection.AuthOptions() - - encoded, err := json.Marshal(result) - if err != nil { - t.Fatal(err) - } - - if strEncoded := string(encoded); strEncoded != s.expected { - t.Errorf("(%s) Expected \n%v \ngot \n%v", s.name, s.expected, strEncoded) - } - } -} - -func TestNormalizeOptions(t *testing.T) { - scenarios := []struct { - name string - collection models.Collection - expected string // serialized options - }{ - { - "unknown type", - models.Collection{Type: "unknown", Options: types.JsonMap{"test": 123, "minPasswordLength": 4}}, - "{}", - }, - { - "base type", - models.Collection{Type: models.CollectionTypeBase, Options: types.JsonMap{"test": 123, "minPasswordLength": 4}}, - "{}", - }, - { - "auth type", - models.Collection{Type: models.CollectionTypeAuth, Options: types.JsonMap{"test": 123, "minPasswordLength": 4}}, - `{"allowEmailAuth":false,"allowOAuth2Auth":false,"allowUsernameAuth":false,"exceptEmailDomains":null,"manageRule":null,"minPasswordLength":4,"onlyEmailDomains":null,"requireEmail":false}`, - }, - } - - for _, s := range scenarios { - if err := s.collection.NormalizeOptions(); err != nil { - t.Errorf("(%s) Unexpected error %v", s.name, err) - continue - } - - encoded, err := json.Marshal(s.collection.Options) - if err != nil { - t.Fatal(err) - } - - if strEncoded := string(encoded); strEncoded != s.expected { - t.Errorf("(%s) Expected \n%v \ngot \n%v", s.name, s.expected, strEncoded) - } - } -} - -func TestDecodeOptions(t *testing.T) { - m := models.Collection{ - Options: types.JsonMap{"test": 123}, - } - - result := struct { - Test int - }{} - - if err := m.DecodeOptions(&result); err != nil { - t.Fatal(err) - } - - if result.Test != 123 { - t.Fatalf("Expected %v, got %v", 123, result.Test) - } -} - -func TestSetOptions(t *testing.T) { - scenarios := []struct { - name string - collection models.Collection - options any - expected string // serialized options - }{ - { - "no type", - models.Collection{}, - map[string]any{}, - "{}", - }, - { - "unknown type + non empty options", - models.Collection{Type: "unknown", Options: types.JsonMap{"test": 123}}, - map[string]any{"test": 456, "minPasswordLength": 4}, - "{}", - }, - { - "base type", - models.Collection{Type: models.CollectionTypeBase, Options: types.JsonMap{"test": 123}}, - map[string]any{"test": 456, "minPasswordLength": 4}, - "{}", - }, - { - "auth type", - models.Collection{Type: models.CollectionTypeAuth, Options: types.JsonMap{"test": 123}}, - map[string]any{"test": 456, "minPasswordLength": 4}, - `{"allowEmailAuth":false,"allowOAuth2Auth":false,"allowUsernameAuth":false,"exceptEmailDomains":null,"manageRule":null,"minPasswordLength":4,"onlyEmailDomains":null,"requireEmail":false}`, - }, - } - - for _, s := range scenarios { - if err := s.collection.SetOptions(s.options); err != nil { - t.Errorf("(%s) Unexpected error %v", s.name, err) - continue - } - - encoded, err := json.Marshal(s.collection.Options) - if err != nil { - t.Fatal(err) - } - - if strEncoded := string(encoded); strEncoded != s.expected { - t.Errorf("(%s) Expected \n%v \ngot \n%v", s.name, s.expected, strEncoded) - } - } -} - -func TestCollectionBaseOptionsValidate(t *testing.T) { - opt := models.CollectionBaseOptions{} - if err := opt.Validate(); err != nil { - t.Fatal(err) - } -} - -func TestCollectionAuthOptionsValidate(t *testing.T) { - scenarios := []struct { - name string - options models.CollectionAuthOptions - expectedErrors []string - }{ - { - "empty", - models.CollectionAuthOptions{}, - nil, - }, - { - "empty string ManageRule", - models.CollectionAuthOptions{ManageRule: types.Pointer("")}, - []string{"manageRule"}, - }, - { - "minPasswordLength < 5", - models.CollectionAuthOptions{MinPasswordLength: 3}, - []string{"minPasswordLength"}, - }, - { - "minPasswordLength > 72", - models.CollectionAuthOptions{MinPasswordLength: 73}, - []string{"minPasswordLength"}, - }, - { - "both OnlyDomains and ExceptDomains set", - models.CollectionAuthOptions{ - OnlyEmailDomains: []string{"example.com", "test.com"}, - ExceptEmailDomains: []string{"example.com", "test.com"}, - }, - []string{"onlyEmailDomains", "exceptEmailDomains"}, - }, - { - "only OnlyDomains set", - models.CollectionAuthOptions{ - OnlyEmailDomains: []string{"example.com", "test.com"}, - }, - []string{}, - }, - { - "only ExceptEmailDomains set", - models.CollectionAuthOptions{ - ExceptEmailDomains: []string{"example.com", "test.com"}, - }, - []string{}, - }, - { - "all fields with valid data", - models.CollectionAuthOptions{ - ManageRule: types.Pointer("test"), - AllowOAuth2Auth: true, - AllowUsernameAuth: true, - AllowEmailAuth: true, - RequireEmail: true, - ExceptEmailDomains: []string{"example.com", "test.com"}, - OnlyEmailDomains: nil, - MinPasswordLength: 5, - }, - []string{}, - }, - } - - for _, s := range scenarios { - result := s.options.Validate() - - // parse errors - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("(%s) Failed to parse errors %v", s.name, result) - continue - } - - if len(errs) != len(s.expectedErrors) { - t.Errorf("(%s) Expected error keys %v, got errors \n%v", s.name, s.expectedErrors, result) - continue - } - - for key := range errs { - if !list.ExistInSlice(key, s.expectedErrors) { - t.Errorf("(%s) Unexpected error key %q in \n%v", s.name, key, errs) - } - } - } -} diff --git a/models/external_auth.go b/models/external_auth.go deleted file mode 100644 index bf9e0314a11a41a9acd987ab9ad75d4c094f5833..0000000000000000000000000000000000000000 --- a/models/external_auth.go +++ /dev/null @@ -1,16 +0,0 @@ -package models - -var _ Model = (*ExternalAuth)(nil) - -type ExternalAuth struct { - BaseModel - - CollectionId string `db:"collectionId" json:"collectionId"` - RecordId string `db:"recordId" json:"recordId"` - Provider string `db:"provider" json:"provider"` - ProviderId string `db:"providerId" json:"providerId"` -} - -func (m *ExternalAuth) TableName() string { - return "_externalAuths" -} diff --git a/models/external_auth_test.go b/models/external_auth_test.go deleted file mode 100644 index 26c53b06702cd8c41945f793b34b5feb8b24f624..0000000000000000000000000000000000000000 --- a/models/external_auth_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package models_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" -) - -func TestExternalAuthTableName(t *testing.T) { - m := models.ExternalAuth{} - if m.TableName() != "_externalAuths" { - t.Fatalf("Unexpected table name, got %q", m.TableName()) - } -} diff --git a/models/param.go b/models/param.go deleted file mode 100644 index cf5ef053dbc7065699a2826f1d5a203c130bc93f..0000000000000000000000000000000000000000 --- a/models/param.go +++ /dev/null @@ -1,22 +0,0 @@ -package models - -import ( - "github.com/pocketbase/pocketbase/tools/types" -) - -var _ Model = (*Param)(nil) - -const ( - ParamAppSettings = "settings" -) - -type Param struct { - BaseModel - - Key string `db:"key" json:"key"` - Value types.JsonRaw `db:"value" json:"value"` -} - -func (m *Param) TableName() string { - return "_params" -} diff --git a/models/param_test.go b/models/param_test.go deleted file mode 100644 index 42291551bd80d93657f7bc75f1d600583edf2626..0000000000000000000000000000000000000000 --- a/models/param_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package models_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" -) - -func TestParamTableName(t *testing.T) { - m := models.Param{} - if m.TableName() != "_params" { - t.Fatalf("Unexpected table name, got %q", m.TableName()) - } -} diff --git a/models/record.go b/models/record.go deleted file mode 100644 index a42e3119e9dff66c55900976a74e1cc2c8e8ca6f..0000000000000000000000000000000000000000 --- a/models/record.go +++ /dev/null @@ -1,655 +0,0 @@ -package models - -import ( - "encoding/json" - "errors" - "fmt" - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/types" - "github.com/spf13/cast" - "golang.org/x/crypto/bcrypt" -) - -var ( - _ Model = (*Record)(nil) - _ ColumnValueMapper = (*Record)(nil) - _ FilesManager = (*Record)(nil) -) - -type Record struct { - BaseModel - - collection *Collection - - exportUnknown bool // whether to export unknown fields - ignoreEmailVisibility bool // whether to ignore the emailVisibility flag for auth collections - data map[string]any // any custom data in addition to the base model fields - expand map[string]any // expanded relations - loaded bool - originalData map[string]any // the original (aka. first loaded) model data -} - -// NewRecord initializes a new empty Record model. -func NewRecord(collection *Collection) *Record { - return &Record{ - collection: collection, - data: map[string]any{}, - } -} - -// nullStringMapValue returns the raw string value if it exist and -// its not NULL, otherwise - nil. -func nullStringMapValue(data dbx.NullStringMap, key string) any { - nullString, ok := data[key] - - if ok && nullString.Valid { - return nullString.String - } - - return nil -} - -// NewRecordFromNullStringMap initializes a single new Record model -// with data loaded from the provided NullStringMap. -func NewRecordFromNullStringMap(collection *Collection, data dbx.NullStringMap) *Record { - resultMap := map[string]any{} - - // load schema fields - for _, field := range collection.Schema.Fields() { - resultMap[field.Name] = nullStringMapValue(data, field.Name) - } - - // load base model fields - for _, name := range schema.BaseModelFieldNames() { - resultMap[name] = nullStringMapValue(data, name) - } - - // load auth fields - if collection.IsAuth() { - for _, name := range schema.AuthFieldNames() { - resultMap[name] = nullStringMapValue(data, name) - } - } - - record := NewRecord(collection) - - record.Load(resultMap) - record.PostScan() - - return record -} - -// NewRecordsFromNullStringMaps initializes a new Record model for -// each row in the provided NullStringMap slice. -func NewRecordsFromNullStringMaps(collection *Collection, rows []dbx.NullStringMap) []*Record { - result := make([]*Record, len(rows)) - - for i, row := range rows { - result[i] = NewRecordFromNullStringMap(collection, row) - } - - return result -} - -// TableName returns the table name associated to the current Record model. -func (m *Record) TableName() string { - return m.collection.Name -} - -// Collection returns the Collection model associated to the current Record model. -func (m *Record) Collection() *Collection { - return m.collection -} - -// OriginalCopy returns a copy of the current record model populated -// with its original (aka. the initially loaded) data state. -func (m *Record) OriginalCopy() *Record { - newRecord := NewRecord(m.collection) - newRecord.Load(m.originalData) - - if m.IsNew() { - newRecord.MarkAsNew() - } else { - newRecord.MarkAsNotNew() - } - - return newRecord -} - -// Expand returns a shallow copy of the record.expand data -// attached to the current Record model. -func (m *Record) Expand() map[string]any { - return shallowCopy(m.expand) -} - -// SetExpand assigns the provided data to record.expand. -func (m *Record) SetExpand(expand map[string]any) { - m.expand = shallowCopy(expand) -} - -// SchemaData returns a shallow copy ONLY of the defined record schema fields data. -func (m *Record) SchemaData() map[string]any { - result := map[string]any{} - - for _, field := range m.collection.Schema.Fields() { - if v, ok := m.data[field.Name]; ok { - result[field.Name] = v - } - } - - return result -} - -// UnknownData returns a shallow copy ONLY of the unknown record fields data, -// aka. fields that are neither one of the base and special system ones, -// nor defined by the collection schema. -func (m *Record) UnknownData() map[string]any { - return m.extractUnknownData(m.data) -} - -// IgnoreEmailVisibility toggles the flag to ignore the auth record email visibility check. -func (m *Record) IgnoreEmailVisibility(state bool) { - m.ignoreEmailVisibility = state -} - -// WithUnkownData toggles the export/serialization of unknown data fields -// (false by default). -func (m *Record) WithUnkownData(state bool) { - m.exportUnknown = state -} - -// Set sets the provided key-value data pair for the current Record model. -// -// If the record collection has field with name matching the provided "key", -// the value will be further normalized according to the field rules. -func (m *Record) Set(key string, value any) { - switch key { - case schema.FieldNameId: - m.Id = cast.ToString(value) - case schema.FieldNameCreated: - m.Created, _ = types.ParseDateTime(value) - case schema.FieldNameUpdated: - m.Updated, _ = types.ParseDateTime(value) - case schema.FieldNameExpand: - m.SetExpand(cast.ToStringMap(value)) - default: - var v = value - - if field := m.Collection().Schema.GetFieldByName(key); field != nil { - v = field.PrepareValue(value) - } else if m.collection.IsAuth() { - // normalize auth fields - switch key { - case schema.FieldNameEmailVisibility, schema.FieldNameVerified: - v = cast.ToBool(value) - case schema.FieldNameLastResetSentAt, schema.FieldNameLastVerificationSentAt: - v, _ = types.ParseDateTime(value) - case schema.FieldNameUsername, schema.FieldNameEmail, schema.FieldNameTokenKey, schema.FieldNamePasswordHash: - v = cast.ToString(value) - } - } - - if m.data == nil { - m.data = map[string]any{} - } - - m.data[key] = v - } -} - -// Get returns a single record model data value for "key". -func (m *Record) Get(key string) any { - switch key { - case schema.FieldNameId: - return m.Id - case schema.FieldNameCreated: - return m.Created - case schema.FieldNameUpdated: - return m.Updated - default: - if v, ok := m.data[key]; ok { - return v - } - - return nil - } -} - -// GetBool returns the data value for "key" as a bool. -func (m *Record) GetBool(key string) bool { - return cast.ToBool(m.Get(key)) -} - -// GetString returns the data value for "key" as a string. -func (m *Record) GetString(key string) string { - return cast.ToString(m.Get(key)) -} - -// GetInt returns the data value for "key" as an int. -func (m *Record) GetInt(key string) int { - return cast.ToInt(m.Get(key)) -} - -// GetFloat returns the data value for "key" as a float64. -func (m *Record) GetFloat(key string) float64 { - return cast.ToFloat64(m.Get(key)) -} - -// GetTime returns the data value for "key" as a [time.Time] instance. -func (m *Record) GetTime(key string) time.Time { - return cast.ToTime(m.Get(key)) -} - -// GetDateTime returns the data value for "key" as a DateTime instance. -func (m *Record) GetDateTime(key string) types.DateTime { - d, _ := types.ParseDateTime(m.Get(key)) - return d -} - -// GetStringSlice returns the data value for "key" as a slice of unique strings. -func (m *Record) GetStringSlice(key string) []string { - return list.ToUniqueStringSlice(m.Get(key)) -} - -// Retrieves the "key" json field value and unmarshals it into "result". -// -// Example -// result := struct { -// FirstName string `json:"first_name"` -// }{} -// err := m.UnmarshalJSONField("my_field_name", &result) -func (m *Record) UnmarshalJSONField(key string, result any) error { - return json.Unmarshal([]byte(m.GetString(key)), &result) -} - -// BaseFilesPath returns the storage dir path used by the record. -func (m *Record) BaseFilesPath() string { - return fmt.Sprintf("%s/%s", m.Collection().BaseFilesPath(), m.Id) -} - -// FindFileFieldByFile returns the first file type field for which -// any of the record's data contains the provided filename. -func (m *Record) FindFileFieldByFile(filename string) *schema.SchemaField { - for _, field := range m.Collection().Schema.Fields() { - if field.Type == schema.FieldTypeFile { - names := m.GetStringSlice(field.Name) - if list.ExistInSlice(filename, names) { - return field - } - } - } - return nil -} - -// Load bulk loads the provided data into the current Record model. -func (m *Record) Load(data map[string]any) { - if !m.loaded { - m.loaded = true - m.originalData = data - } - - for k, v := range data { - m.Set(k, v) - } -} - -// ColumnValueMap implements [ColumnValueMapper] interface. -func (m *Record) ColumnValueMap() map[string]any { - result := map[string]any{} - - // export schema field values - for _, field := range m.collection.Schema.Fields() { - result[field.Name] = m.getNormalizeDataValueForDB(field.Name) - } - - // export auth collection fields - if m.collection.IsAuth() { - for _, name := range schema.AuthFieldNames() { - result[name] = m.getNormalizeDataValueForDB(name) - } - } - - // export base model fields - result[schema.FieldNameId] = m.getNormalizeDataValueForDB(schema.FieldNameId) - result[schema.FieldNameCreated] = m.getNormalizeDataValueForDB(schema.FieldNameCreated) - result[schema.FieldNameUpdated] = m.getNormalizeDataValueForDB(schema.FieldNameUpdated) - - return result -} - -// PublicExport exports only the record fields that are safe to be public. -// -// Fields marked as hidden will be exported only if `m.IgnoreEmailVisibility(true)` is set. -func (m *Record) PublicExport() map[string]any { - result := map[string]any{} - - // export unknown data fields if allowed - if m.exportUnknown { - for k, v := range m.UnknownData() { - result[k] = v - } - } - - // export schema field values - for _, field := range m.collection.Schema.Fields() { - result[field.Name] = m.Get(field.Name) - } - - // export some of the safe auth collection fields - if m.collection.IsAuth() { - result[schema.FieldNameVerified] = m.Verified() - result[schema.FieldNameUsername] = m.Username() - result[schema.FieldNameEmailVisibility] = m.EmailVisibility() - if m.ignoreEmailVisibility || m.EmailVisibility() { - result[schema.FieldNameEmail] = m.Email() - } - } - - // export base model fields - result[schema.FieldNameId] = m.GetId() - result[schema.FieldNameCreated] = m.GetCreated() - result[schema.FieldNameUpdated] = m.GetUpdated() - - // add helper collection reference fields - result[schema.FieldNameCollectionId] = m.collection.Id - result[schema.FieldNameCollectionName] = m.collection.Name - - // add expand (if set) - if m.expand != nil { - result[schema.FieldNameExpand] = m.expand - } - - return result -} - -// MarshalJSON implements the [json.Marshaler] interface. -// -// Only the data exported by `PublicExport()` will be serialized. -func (m Record) MarshalJSON() ([]byte, error) { - return json.Marshal(m.PublicExport()) -} - -// UnmarshalJSON implements the [json.Unmarshaler] interface. -func (m *Record) UnmarshalJSON(data []byte) error { - result := map[string]any{} - - if err := json.Unmarshal(data, &result); err != nil { - return err - } - - m.Load(result) - - return nil -} - -// getNormalizeDataValueForDB returns the "key" data value formatted for db storage. -func (m *Record) getNormalizeDataValueForDB(key string) any { - var val any - - // normalize auth fields - if m.collection.IsAuth() { - switch key { - case schema.FieldNameEmailVisibility, schema.FieldNameVerified: - return m.GetBool(key) - case schema.FieldNameLastResetSentAt, schema.FieldNameLastVerificationSentAt: - return m.GetDateTime(key) - case schema.FieldNameUsername, schema.FieldNameEmail, schema.FieldNameTokenKey, schema.FieldNamePasswordHash: - return m.GetString(key) - } - } - - val = m.Get(key) - - switch ids := val.(type) { - case []string: - // encode string slice - return append(types.JsonArray{}, list.ToInterfaceSlice(ids)...) - case []int: - // encode int slice - return append(types.JsonArray{}, list.ToInterfaceSlice(ids)...) - case []float64: - // encode float64 slice - return append(types.JsonArray{}, list.ToInterfaceSlice(ids)...) - case []any: - // encode interface slice - return append(types.JsonArray{}, ids...) - default: - // no changes - return val - } -} - -// shallowCopy shallow copy data into a new map. -func shallowCopy(data map[string]any) map[string]any { - result := map[string]any{} - - for k, v := range data { - result[k] = v - } - - return result -} - -func (m *Record) extractUnknownData(data map[string]any) map[string]any { - knownFields := map[string]struct{}{} - - for _, name := range schema.SystemFieldNames() { - knownFields[name] = struct{}{} - } - for _, name := range schema.BaseModelFieldNames() { - knownFields[name] = struct{}{} - } - - for _, f := range m.collection.Schema.Fields() { - knownFields[f.Name] = struct{}{} - } - - if m.collection.IsAuth() { - for _, name := range schema.AuthFieldNames() { - knownFields[name] = struct{}{} - } - } - - result := map[string]any{} - - for k, v := range m.data { - if _, ok := knownFields[k]; !ok { - result[k] = v - } - } - - return result -} - -// ------------------------------------------------------------------- -// Auth helpers -// ------------------------------------------------------------------- - -var notAuthRecordErr = errors.New("Not an auth collection record.") - -// Username returns the "username" auth record data value. -func (m *Record) Username() string { - return m.GetString(schema.FieldNameUsername) -} - -// SetUsername sets the "username" auth record data value. -// -// This method doesn't check whether the provided value is a valid username. -// -// Returns an error if the record is not from an auth collection. -func (m *Record) SetUsername(username string) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - m.Set(schema.FieldNameUsername, username) - - return nil -} - -// Email returns the "email" auth record data value. -func (m *Record) Email() string { - return m.GetString(schema.FieldNameEmail) -} - -// SetEmail sets the "email" auth record data value. -// -// This method doesn't check whether the provided value is a valid email. -// -// Returns an error if the record is not from an auth collection. -func (m *Record) SetEmail(email string) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - m.Set(schema.FieldNameEmail, email) - - return nil -} - -// Verified returns the "emailVisibility" auth record data value. -func (m *Record) EmailVisibility() bool { - return m.GetBool(schema.FieldNameEmailVisibility) -} - -// SetEmailVisibility sets the "emailVisibility" auth record data value. -// -// Returns an error if the record is not from an auth collection. -func (m *Record) SetEmailVisibility(visible bool) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - m.Set(schema.FieldNameEmailVisibility, visible) - - return nil -} - -// Verified returns the "verified" auth record data value. -func (m *Record) Verified() bool { - return m.GetBool(schema.FieldNameVerified) -} - -// SetVerified sets the "verified" auth record data value. -// -// Returns an error if the record is not from an auth collection. -func (m *Record) SetVerified(verified bool) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - m.Set(schema.FieldNameVerified, verified) - - return nil -} - -// TokenKey returns the "tokenKey" auth record data value. -func (m *Record) TokenKey() string { - return m.GetString(schema.FieldNameTokenKey) -} - -// SetTokenKey sets the "tokenKey" auth record data value. -// -// Returns an error if the record is not from an auth collection. -func (m *Record) SetTokenKey(key string) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - m.Set(schema.FieldNameTokenKey, key) - - return nil -} - -// RefreshTokenKey generates and sets new random auth record "tokenKey". -// -// Returns an error if the record is not from an auth collection. -func (m *Record) RefreshTokenKey() error { - return m.SetTokenKey(security.RandomString(50)) -} - -// LastResetSentAt returns the "lastResentSentAt" auth record data value. -func (m *Record) LastResetSentAt() types.DateTime { - return m.GetDateTime(schema.FieldNameLastResetSentAt) -} - -// SetLastResetSentAt sets the "lastResentSentAt" auth record data value. -// -// Returns an error if the record is not from an auth collection. -func (m *Record) SetLastResetSentAt(dateTime types.DateTime) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - m.Set(schema.FieldNameLastResetSentAt, dateTime) - - return nil -} - -// LastVerificationSentAt returns the "lastVerificationSentAt" auth record data value. -func (m *Record) LastVerificationSentAt() types.DateTime { - return m.GetDateTime(schema.FieldNameLastVerificationSentAt) -} - -// SetLastVerificationSentAt sets an "lastVerificationSentAt" auth record data value. -// -// Returns an error if the record is not from an auth collection. -func (m *Record) SetLastVerificationSentAt(dateTime types.DateTime) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - m.Set(schema.FieldNameLastVerificationSentAt, dateTime) - - return nil -} - -// PasswordHash returns the "passwordHash" auth record data value. -func (m *Record) PasswordHash() string { - return m.GetString(schema.FieldNamePasswordHash) -} - -// ValidatePassword validates a plain password against the auth record password. -// -// Returns false if the password is incorrect or record is not from an auth collection. -func (m *Record) ValidatePassword(password string) bool { - if !m.collection.IsAuth() { - return false - } - - err := bcrypt.CompareHashAndPassword([]byte(m.PasswordHash()), []byte(password)) - - return err == nil -} - -// SetPassword sets cryptographically secure string to the auth record "password" field. -// This method also resets the "lastResetSentAt" and the "tokenKey" fields. -// -// Returns an error if the record is not from an auth collection or -// an empty password is provided. -func (m *Record) SetPassword(password string) error { - if !m.collection.IsAuth() { - return notAuthRecordErr - } - - if password == "" { - return errors.New("The provided plain password is empty") - } - - // hash the password - hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), 13) - if err != nil { - return err - } - - m.Set(schema.FieldNamePasswordHash, string(hashedPassword)) - m.Set(schema.FieldNameLastResetSentAt, types.DateTime{}) - - // invalidate previously issued tokens - return m.RefreshTokenKey() -} diff --git a/models/record_test.go b/models/record_test.go deleted file mode 100644 index 92cdd35be8fdd6ba7198ac54887b0abab7965931..0000000000000000000000000000000000000000 --- a/models/record_test.go +++ /dev/null @@ -1,1710 +0,0 @@ -package models_test - -import ( - "database/sql" - "encoding/json" - "testing" - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestNewRecord(t *testing.T) { - collection := &models.Collection{ - Name: "test_collection", - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "test", - Type: schema.FieldTypeText, - }, - ), - } - - m := models.NewRecord(collection) - - if m.Collection().Name != collection.Name { - t.Fatalf("Expected collection with name %q, got %q", collection.Id, m.Collection().Id) - } - - if len(m.SchemaData()) != 0 { - t.Fatalf("Expected empty schema data, got %v", m.SchemaData()) - } -} - -func TestNewRecordFromNullStringMap(t *testing.T) { - collection := &models.Collection{ - Name: "test", - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field3", - Type: schema.FieldTypeBool, - }, - &schema.SchemaField{ - Name: "field4", - Type: schema.FieldTypeNumber, - }, - &schema.SchemaField{ - Name: "field5", - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{ - Values: []string{"test1", "test2"}, - MaxSelect: 1, - }, - }, - &schema.SchemaField{ - Name: "field6", - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 2, - MaxSize: 1, - }, - }, - ), - } - - data := dbx.NullStringMap{ - "id": sql.NullString{ - String: "test_id", - Valid: true, - }, - "created": sql.NullString{ - String: "2022-01-01 10:00:00.123Z", - Valid: true, - }, - "updated": sql.NullString{ - String: "2022-01-01 10:00:00.456Z", - Valid: true, - }, - // auth collection specific fields - "username": sql.NullString{ - String: "test_username", - Valid: true, - }, - "email": sql.NullString{ - String: "test_email", - Valid: true, - }, - "emailVisibility": sql.NullString{ - String: "true", - Valid: true, - }, - "verified": sql.NullString{ - String: "", - Valid: false, - }, - "tokenKey": sql.NullString{ - String: "test_tokenKey", - Valid: true, - }, - "passwordHash": sql.NullString{ - String: "test_passwordHash", - Valid: true, - }, - "lastResetSentAt": sql.NullString{ - String: "2022-01-02 10:00:00.123Z", - Valid: true, - }, - "lastVerificationSentAt": sql.NullString{ - String: "2022-02-03 10:00:00.456Z", - Valid: true, - }, - // custom schema fields - "field1": sql.NullString{ - String: "test", - Valid: true, - }, - "field2": sql.NullString{ - String: "test", - Valid: false, // test invalid db serialization - }, - "field3": sql.NullString{ - String: "true", - Valid: true, - }, - "field4": sql.NullString{ - String: "123.123", - Valid: true, - }, - "field5": sql.NullString{ - String: `["test1","test2"]`, // will select only the first elem - Valid: true, - }, - "field6": sql.NullString{ - String: "test", // will be converted to slice - Valid: true, - }, - "unknown": sql.NullString{ - String: "test", - Valid: true, - }, - } - - scenarios := []struct { - collectionType string - expectedJson string - }{ - { - models.CollectionTypeBase, - `{"collectionId":"","collectionName":"test","created":"2022-01-01 10:00:00.123Z","field1":"test","field2":"","field3":true,"field4":123.123,"field5":"test1","field6":["test"],"id":"test_id","updated":"2022-01-01 10:00:00.456Z"}`, - }, - { - models.CollectionTypeAuth, - `{"collectionId":"","collectionName":"test","created":"2022-01-01 10:00:00.123Z","email":"test_email","emailVisibility":true,"field1":"test","field2":"","field3":true,"field4":123.123,"field5":"test1","field6":["test"],"id":"test_id","updated":"2022-01-01 10:00:00.456Z","username":"test_username","verified":false}`, - }, - } - - for i, s := range scenarios { - collection.Type = s.collectionType - m := models.NewRecordFromNullStringMap(collection, data) - m.IgnoreEmailVisibility(true) - - encoded, err := m.MarshalJSON() - if err != nil { - t.Errorf("(%d) Unexpected error: %v", i, err) - continue - } - - if string(encoded) != s.expectedJson { - t.Errorf("(%d) Expected \n%v \ngot \n%v", i, s.expectedJson, string(encoded)) - } - - // additional data checks - if collection.IsAuth() { - if v := m.GetString(schema.FieldNamePasswordHash); v != "test_passwordHash" { - t.Errorf("(%d) Expected %q, got %q", i, "test_passwordHash", v) - } - if v := m.GetString(schema.FieldNameTokenKey); v != "test_tokenKey" { - t.Errorf("(%d) Expected %q, got %q", i, "test_tokenKey", v) - } - if v := m.GetString(schema.FieldNameLastResetSentAt); v != "2022-01-02 10:00:00.123Z" { - t.Errorf("(%d) Expected %q, got %q", i, "2022-01-02 10:00:00.123Z", v) - } - if v := m.GetString(schema.FieldNameLastVerificationSentAt); v != "2022-02-03 10:00:00.456Z" { - t.Errorf("(%d) Expected %q, got %q", i, "2022-01-02 10:00:00.123Z", v) - } - } - } -} - -func TestNewRecordsFromNullStringMaps(t *testing.T) { - collection := &models.Collection{ - Name: "test", - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeNumber, - }, - &schema.SchemaField{ - Name: "field3", - Type: schema.FieldTypeUrl, - }, - ), - } - - data := []dbx.NullStringMap{ - { - "id": sql.NullString{ - String: "test_id1", - Valid: true, - }, - "created": sql.NullString{ - String: "2022-01-01 10:00:00.123Z", - Valid: true, - }, - "updated": sql.NullString{ - String: "2022-01-01 10:00:00.456Z", - Valid: true, - }, - // partial auth fields - "email": sql.NullString{ - String: "test_email", - Valid: true, - }, - "tokenKey": sql.NullString{ - String: "test_tokenKey", - Valid: true, - }, - "emailVisibility": sql.NullString{ - String: "true", - Valid: true, - }, - // custom schema fields - "field1": sql.NullString{ - String: "test", - Valid: true, - }, - "field2": sql.NullString{ - String: "123.123", - Valid: true, - }, - "field3": sql.NullString{ - String: "test", - Valid: false, // should force resolving to empty string - }, - "unknown": sql.NullString{ - String: "test", - Valid: true, - }, - }, - { - "field3": sql.NullString{ - String: "test", - Valid: true, - }, - "email": sql.NullString{ - String: "test_email", - Valid: true, - }, - "emailVisibility": sql.NullString{ - String: "false", - Valid: true, - }, - }, - } - - scenarios := []struct { - collectionType string - expectedJson string - }{ - { - models.CollectionTypeBase, - `[{"collectionId":"","collectionName":"test","created":"2022-01-01 10:00:00.123Z","field1":"test","field2":123.123,"field3":"","id":"test_id1","updated":"2022-01-01 10:00:00.456Z"},{"collectionId":"","collectionName":"test","created":"","field1":"","field2":0,"field3":"test","id":"","updated":""}]`, - }, - { - models.CollectionTypeAuth, - `[{"collectionId":"","collectionName":"test","created":"2022-01-01 10:00:00.123Z","email":"test_email","emailVisibility":true,"field1":"test","field2":123.123,"field3":"","id":"test_id1","updated":"2022-01-01 10:00:00.456Z","username":"","verified":false},{"collectionId":"","collectionName":"test","created":"","emailVisibility":false,"field1":"","field2":0,"field3":"test","id":"","updated":"","username":"","verified":false}]`, - }, - } - - for i, s := range scenarios { - collection.Type = s.collectionType - result := models.NewRecordsFromNullStringMaps(collection, data) - - encoded, err := json.Marshal(result) - if err != nil { - t.Errorf("(%d) Unexpected error: %v", i, err) - continue - } - - if string(encoded) != s.expectedJson { - t.Errorf("(%d) Expected \n%v \ngot \n%v", i, s.expectedJson, string(encoded)) - } - } -} - -func TestRecordTableName(t *testing.T) { - collection := &models.Collection{} - collection.Name = "test" - collection.RefreshId() - - m := models.NewRecord(collection) - - if m.TableName() != collection.Name { - t.Fatalf("Expected table %q, got %q", collection.Name, m.TableName()) - } -} - -func TestRecordCollection(t *testing.T) { - collection := &models.Collection{} - collection.RefreshId() - - m := models.NewRecord(collection) - - if m.Collection().Id != collection.Id { - t.Fatalf("Expected collection with id %v, got %v", collection.Id, m.Collection().Id) - } -} - -func TestRecordOriginalCopy(t *testing.T) { - m := models.NewRecord(&models.Collection{}) - m.Load(map[string]any{"f": "123"}) - - // change the field - m.Set("f", "456") - - if v := m.GetString("f"); v != "456" { - t.Fatalf("Expected f to be %q, got %q", "456", v) - } - - if v := m.OriginalCopy().GetString("f"); v != "123" { - t.Fatalf("Expected the initial/original f to be %q, got %q", "123", v) - } - - // Loading new data shouldn't affect the original state - m.Load(map[string]any{"f": "789"}) - - if v := m.GetString("f"); v != "789" { - t.Fatalf("Expected f to be %q, got %q", "789", v) - } - - if v := m.OriginalCopy().GetString("f"); v != "123" { - t.Fatalf("Expected the initial/original f still to be %q, got %q", "123", v) - } -} - -func TestRecordExpand(t *testing.T) { - collection := &models.Collection{} - m := models.NewRecord(collection) - - data := map[string]any{"test": 123} - - m.SetExpand(data) - - // change the original data to check if it was shallow copied - data["test"] = 456 - - expand := m.Expand() - if v, ok := expand["test"]; !ok || v != 123 { - t.Fatalf("Expected expand.test to be %v, got %v", 123, v) - } -} - -func TestRecordSchemaData(t *testing.T) { - collection := &models.Collection{ - Type: models.CollectionTypeAuth, - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeNumber, - }, - ), - } - - m := models.NewRecord(collection) - m.Set("email", "test@example.com") - m.Set("field1", 123) - m.Set("field2", 456) - m.Set("unknown", 789) - - encoded, err := json.Marshal(m.SchemaData()) - if err != nil { - t.Fatal(err) - } - - expected := `{"field1":"123","field2":456}` - - if v := string(encoded); v != expected { - t.Fatalf("Expected \n%v \ngot \n%v", v, expected) - } -} - -func TestRecordUnknownData(t *testing.T) { - collection := &models.Collection{ - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeNumber, - }, - ), - } - - data := map[string]any{ - "id": "test_id", - "created": "2022-01-01 00:00:00.000", - "updated": "2022-01-01 00:00:00.000", - "collectionId": "test_collectionId", - "collectionName": "test_collectionName", - "expand": "test_expand", - "field1": "test_field1", - "field2": "test_field1", - "unknown1": "test_unknown1", - "unknown2": "test_unknown2", - "passwordHash": "test_passwordHash", - "username": "test_username", - "emailVisibility": true, - "email": "test_email", - "verified": true, - "tokenKey": "test_tokenKey", - "lastResetSentAt": "2022-01-01 00:00:00.000", - "lastVerificationSentAt": "2022-01-01 00:00:00.000", - } - - scenarios := []struct { - collectionType string - expectedKeys []string - }{ - { - models.CollectionTypeBase, - []string{ - "unknown1", - "unknown2", - "passwordHash", - "username", - "emailVisibility", - "email", - "verified", - "tokenKey", - "lastResetSentAt", - "lastVerificationSentAt", - }, - }, - { - models.CollectionTypeAuth, - []string{"unknown1", "unknown2"}, - }, - } - - for i, s := range scenarios { - collection.Type = s.collectionType - m := models.NewRecord(collection) - m.Load(data) - - result := m.UnknownData() - - if len(result) != len(s.expectedKeys) { - t.Errorf("(%d) Expected data \n%v \ngot \n%v", i, s.expectedKeys, result) - continue - } - - for _, key := range s.expectedKeys { - if _, ok := result[key]; !ok { - t.Errorf("(%d) Missing expected key %q in \n%v", i, key, result) - } - } - } -} - -func TestRecordSetAndGet(t *testing.T) { - collection := &models.Collection{ - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeNumber, - }, - ), - } - - m := models.NewRecord(collection) - m.Set("id", "test_id") - m.Set("created", "2022-09-15 00:00:00.123Z") - m.Set("updated", "invalid") - m.Set("field1", 123) // should be casted to string - m.Set("field2", "invlaid") // should be casted to zero-number - m.Set("unknown", 456) // undefined fields are allowed but not exported by default - m.Set("expand", map[string]any{"test": 123}) // should store the value in m.expand - - if m.Get("id") != "test_id" { - t.Fatalf("Expected id %q, got %q", "test_id", m.Get("id")) - } - - if m.GetString("created") != "2022-09-15 00:00:00.123Z" { - t.Fatalf("Expected created %q, got %q", "2022-09-15 00:00:00.123Z", m.GetString("created")) - } - - if m.GetString("updated") != "" { - t.Fatalf("Expected updated to be empty, got %q", m.GetString("updated")) - } - - if m.Get("field1") != "123" { - t.Fatalf("Expected field1 %q, got %v", "123", m.Get("field1")) - } - - if m.Get("field2") != 0.0 { - t.Fatalf("Expected field2 %v, got %v", 0.0, m.Get("field2")) - } - - if m.Get("unknown") != 456 { - t.Fatalf("Expected unknown %v, got %v", 456, m.Get("unknown")) - } - - if m.Expand()["test"] != 123 { - t.Fatalf("Expected expand to be %v, got %v", map[string]any{"test": 123}, m.Expand()) - } -} - -func TestRecordGetBool(t *testing.T) { - scenarios := []struct { - value any - expected bool - }{ - {nil, false}, - {"", false}, - {0, false}, - {1, true}, - {[]string{"true"}, false}, - {time.Now(), false}, - {"test", false}, - {"false", false}, - {"true", true}, - {false, false}, - {true, true}, - } - - collection := &models.Collection{} - - for i, s := range scenarios { - m := models.NewRecord(collection) - m.Set("test", s.value) - - result := m.GetBool("test") - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestRecordGetString(t *testing.T) { - scenarios := []struct { - value any - expected string - }{ - {nil, ""}, - {"", ""}, - {0, "0"}, - {1.4, "1.4"}, - {[]string{"true"}, ""}, - {map[string]int{"test": 1}, ""}, - {[]byte("abc"), "abc"}, - {"test", "test"}, - {false, "false"}, - {true, "true"}, - } - - collection := &models.Collection{} - - for i, s := range scenarios { - m := models.NewRecord(collection) - m.Set("test", s.value) - - result := m.GetString("test") - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestRecordGetInt(t *testing.T) { - scenarios := []struct { - value any - expected int - }{ - {nil, 0}, - {"", 0}, - {[]string{"true"}, 0}, - {map[string]int{"test": 1}, 0}, - {time.Now(), 0}, - {"test", 0}, - {123, 123}, - {2.4, 2}, - {"123", 123}, - {"123.5", 0}, - {false, 0}, - {true, 1}, - } - - collection := &models.Collection{} - - for i, s := range scenarios { - m := models.NewRecord(collection) - m.Set("test", s.value) - - result := m.GetInt("test") - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestRecordGetFloat(t *testing.T) { - scenarios := []struct { - value any - expected float64 - }{ - {nil, 0}, - {"", 0}, - {[]string{"true"}, 0}, - {map[string]int{"test": 1}, 0}, - {time.Now(), 0}, - {"test", 0}, - {123, 123}, - {2.4, 2.4}, - {"123", 123}, - {"123.5", 123.5}, - {false, 0}, - {true, 1}, - } - - collection := &models.Collection{} - - for i, s := range scenarios { - m := models.NewRecord(collection) - m.Set("test", s.value) - - result := m.GetFloat("test") - if result != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestRecordGetTime(t *testing.T) { - nowTime := time.Now() - testTime, _ := time.Parse(types.DefaultDateLayout, "2022-01-01 08:00:40.000Z") - - scenarios := []struct { - value any - expected time.Time - }{ - {nil, time.Time{}}, - {"", time.Time{}}, - {false, time.Time{}}, - {true, time.Time{}}, - {"test", time.Time{}}, - {[]string{"true"}, time.Time{}}, - {map[string]int{"test": 1}, time.Time{}}, - {1641024040, testTime}, - {"2022-01-01 08:00:40.000", testTime}, - {nowTime, nowTime}, - } - - collection := &models.Collection{} - - for i, s := range scenarios { - m := models.NewRecord(collection) - m.Set("test", s.value) - - result := m.GetTime("test") - if !result.Equal(s.expected) { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestRecordGetDateTime(t *testing.T) { - nowTime := time.Now() - testTime, _ := time.Parse(types.DefaultDateLayout, "2022-01-01 08:00:40.000Z") - - scenarios := []struct { - value any - expected time.Time - }{ - {nil, time.Time{}}, - {"", time.Time{}}, - {false, time.Time{}}, - {true, time.Time{}}, - {"test", time.Time{}}, - {[]string{"true"}, time.Time{}}, - {map[string]int{"test": 1}, time.Time{}}, - {1641024040, testTime}, - {"2022-01-01 08:00:40.000", testTime}, - {nowTime, nowTime}, - } - - collection := &models.Collection{} - - for i, s := range scenarios { - m := models.NewRecord(collection) - m.Set("test", s.value) - - result := m.GetDateTime("test") - if !result.Time().Equal(s.expected) { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, result) - } - } -} - -func TestRecordGetStringSlice(t *testing.T) { - nowTime := time.Now() - - scenarios := []struct { - value any - expected []string - }{ - {nil, []string{}}, - {"", []string{}}, - {false, []string{"false"}}, - {true, []string{"true"}}, - {nowTime, []string{}}, - {123, []string{"123"}}, - {"test", []string{"test"}}, - {map[string]int{"test": 1}, []string{}}, - {`["test1", "test2"]`, []string{"test1", "test2"}}, - {[]int{123, 123, 456}, []string{"123", "456"}}, - {[]string{"test", "test", "123"}, []string{"test", "123"}}, - } - - collection := &models.Collection{} - - for i, s := range scenarios { - m := models.NewRecord(collection) - m.Set("test", s.value) - - result := m.GetStringSlice("test") - - if len(result) != len(s.expected) { - t.Errorf("(%d) Expected %d elements, got %d: %v", i, len(s.expected), len(result), result) - continue - } - - for _, v := range result { - if !list.ExistInSlice(v, s.expected) { - t.Errorf("(%d) Cannot find %v in %v", i, v, s.expected) - } - } - } -} - -func TestRecordUnmarshalJSONField(t *testing.T) { - collection := &models.Collection{ - Schema: schema.NewSchema(&schema.SchemaField{ - Name: "field", - Type: schema.FieldTypeJson, - }), - } - m := models.NewRecord(collection) - - var testPointer *string - var testStr string - var testInt int - var testBool bool - var testSlice []int - var testMap map[string]any - - scenarios := []struct { - value any - destination any - expectError bool - expectedJson string - }{ - {nil, testStr, true, `""`}, - {"", testStr, true, `""`}, - {1, testInt, false, `1`}, - {true, testBool, false, `true`}, - {[]int{1, 2, 3}, testSlice, false, `[1,2,3]`}, - {map[string]any{"test": 123}, testMap, false, `{"test":123}`}, - // json encoded values - {`null`, testPointer, false, `null`}, - {`true`, testBool, false, `true`}, - {`456`, testInt, false, `456`}, - {`"test"`, testStr, false, `"test"`}, - {`[4,5,6]`, testSlice, false, `[4,5,6]`}, - {`{"test":456}`, testMap, false, `{"test":456}`}, - } - - for i, s := range scenarios { - m.Set("field", s.value) - - err := m.UnmarshalJSONField("field", &s.destination) - hasErr := err != nil - - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v", i, s.expectError, hasErr) - continue - } - - raw, _ := json.Marshal(s.destination) - if v := string(raw); v != s.expectedJson { - t.Errorf("(%d) Expected %q, got %q", i, s.expectedJson, v) - } - } -} - -func TestRecordBaseFilesPath(t *testing.T) { - collection := &models.Collection{} - collection.RefreshId() - collection.Name = "test" - - m := models.NewRecord(collection) - m.RefreshId() - - expected := collection.BaseFilesPath() + "/" + m.Id - result := m.BaseFilesPath() - - if result != expected { - t.Fatalf("Expected %q, got %q", expected, result) - } -} - -func TestRecordFindFileFieldByFile(t *testing.T) { - collection := &models.Collection{ - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 1, - MaxSize: 1, - }, - }, - &schema.SchemaField{ - Name: "field3", - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 2, - MaxSize: 1, - }, - }, - ), - } - - m := models.NewRecord(collection) - m.Set("field1", "test") - m.Set("field2", "test.png") - m.Set("field3", []string{"test1.png", "test2.png"}) - - scenarios := []struct { - filename string - expectField string - }{ - {"", ""}, - {"test", ""}, - {"test2", ""}, - {"test.png", "field2"}, - {"test2.png", "field3"}, - } - - for i, s := range scenarios { - result := m.FindFileFieldByFile(s.filename) - - var fieldName string - if result != nil { - fieldName = result.Name - } - - if s.expectField != fieldName { - t.Errorf("(%d) Expected field %v, got %v", i, s.expectField, result) - continue - } - } -} - -func TestRecordLoadAndData(t *testing.T) { - collection := &models.Collection{ - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeNumber, - }, - ), - } - - data := map[string]any{ - "id": "test_id", - "created": "2022-01-01 10:00:00.123Z", - "updated": "2022-01-01 10:00:00.456Z", - "field1": "test_field", - "field2": "123", // should be casted to float - "unknown": "test_unknown", - // auth collection sepcific casting test - "passwordHash": "test_passwordHash", - "emailVisibility": "12345", // should be casted to bool only for auth collections - "username": 123, // should be casted to string only for auth collections - "email": "test_email", - "verified": true, - "tokenKey": "test_tokenKey", - "lastResetSentAt": "2022-01-01 11:00:00.000", // should be casted to DateTime only for auth collections - "lastVerificationSentAt": "2022-01-01 12:00:00.000", // should be casted to DateTime only for auth collections - } - - scenarios := []struct { - collectionType string - }{ - {models.CollectionTypeBase}, - {models.CollectionTypeAuth}, - } - - for i, s := range scenarios { - collection.Type = s.collectionType - m := models.NewRecord(collection) - - m.Load(data) - - expectations := map[string]any{} - for k, v := range data { - expectations[k] = v - } - - expectations["created"], _ = types.ParseDateTime("2022-01-01 10:00:00.123Z") - expectations["updated"], _ = types.ParseDateTime("2022-01-01 10:00:00.456Z") - expectations["field2"] = 123.0 - - // extra casting test - if collection.IsAuth() { - lastResetSentAt, _ := types.ParseDateTime(expectations["lastResetSentAt"]) - lastVerificationSentAt, _ := types.ParseDateTime(expectations["lastVerificationSentAt"]) - expectations["emailVisibility"] = false - expectations["username"] = "123" - expectations["verified"] = true - expectations["lastResetSentAt"] = lastResetSentAt - expectations["lastVerificationSentAt"] = lastVerificationSentAt - } - - for k, v := range expectations { - if m.Get(k) != v { - t.Errorf("(%d) Expected field %s to be %v, got %v", i, k, v, m.Get(k)) - } - } - } -} - -func TestRecordColumnValueMap(t *testing.T) { - collection := &models.Collection{ - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 1, - MaxSize: 1, - }, - }, - &schema.SchemaField{ - Name: "field3", - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{ - MaxSelect: 2, - Values: []string{"test1", "test2", "test3"}, - }, - }, - &schema.SchemaField{ - Name: "field4", - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{ - MaxSelect: types.Pointer(2), - }, - }, - ), - } - - scenarios := []struct { - collectionType string - expectedJson string - }{ - { - models.CollectionTypeBase, - `{"created":"2022-01-01 10:00:30.123Z","field1":"test","field2":"test.png","field3":["test1","test2"],"field4":["test11","test12"],"id":"test_id","updated":""}`, - }, - { - models.CollectionTypeAuth, - `{"created":"2022-01-01 10:00:30.123Z","email":"test_email","emailVisibility":true,"field1":"test","field2":"test.png","field3":["test1","test2"],"field4":["test11","test12"],"id":"test_id","lastResetSentAt":"2022-01-02 10:00:30.123Z","lastVerificationSentAt":"","passwordHash":"test_passwordHash","tokenKey":"test_tokenKey","updated":"","username":"test_username","verified":false}`, - }, - } - - created, _ := types.ParseDateTime("2022-01-01 10:00:30.123Z") - lastResetSentAt, _ := types.ParseDateTime("2022-01-02 10:00:30.123Z") - data := map[string]any{ - "id": "test_id", - "created": created, - "field1": "test", - "field2": "test.png", - "field3": []string{"test1", "test2"}, - "field4": []string{"test11", "test12", "test11"}, // strip duplicate, - "unknown": "test_unknown", - "passwordHash": "test_passwordHash", - "username": "test_username", - "emailVisibility": true, - "email": "test_email", - "verified": "invalid", // should be casted - "tokenKey": "test_tokenKey", - "lastResetSentAt": lastResetSentAt, - } - - m := models.NewRecord(collection) - - for i, s := range scenarios { - collection.Type = s.collectionType - - m.Load(data) - - result := m.ColumnValueMap() - - encoded, err := json.Marshal(result) - if err != nil { - t.Errorf("(%d) Unexpected error %v", i, err) - continue - } - - if str := string(encoded); str != s.expectedJson { - t.Errorf("(%d) Expected \n%v \ngot \n%v", i, s.expectedJson, str) - } - } -} - -func TestRecordPublicExportAndMarshalJSON(t *testing.T) { - collection := &models.Collection{ - Name: "c_name", - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{ - MaxSelect: 1, - MaxSize: 1, - }, - }, - &schema.SchemaField{ - Name: "field3", - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{ - MaxSelect: 2, - Values: []string{"test1", "test2", "test3"}, - }, - }, - ), - } - collection.Id = "c_id" - - scenarios := []struct { - collectionType string - exportHidden bool - exportUnknown bool - expectedJson string - }{ - // base - { - models.CollectionTypeBase, - false, - false, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","updated":""}`, - }, - { - models.CollectionTypeBase, - true, - false, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","updated":""}`, - }, - { - models.CollectionTypeBase, - false, - true, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","email":"test_email","emailVisibility":"test_invalid","expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","lastResetSentAt":"2022-01-02 10:00:30.123Z","lastVerificationSentAt":"test_lastVerificationSentAt","passwordHash":"test_passwordHash","tokenKey":"test_tokenKey","unknown":"test_unknown","updated":"","username":123,"verified":true}`, - }, - { - models.CollectionTypeBase, - true, - true, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","email":"test_email","emailVisibility":"test_invalid","expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","lastResetSentAt":"2022-01-02 10:00:30.123Z","lastVerificationSentAt":"test_lastVerificationSentAt","passwordHash":"test_passwordHash","tokenKey":"test_tokenKey","unknown":"test_unknown","updated":"","username":123,"verified":true}`, - }, - - // auth - { - models.CollectionTypeAuth, - false, - false, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","emailVisibility":false,"expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","updated":"","username":"123","verified":true}`, - }, - { - models.CollectionTypeAuth, - true, - false, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","email":"test_email","emailVisibility":false,"expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","updated":"","username":"123","verified":true}`, - }, - { - models.CollectionTypeAuth, - false, - true, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","emailVisibility":false,"expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","unknown":"test_unknown","updated":"","username":"123","verified":true}`, - }, - { - models.CollectionTypeAuth, - true, - true, - `{"collectionId":"c_id","collectionName":"c_name","created":"2022-01-01 10:00:30.123Z","email":"test_email","emailVisibility":false,"expand":{"test":123},"field1":"test","field2":"test.png","field3":["test1","test2"],"id":"test_id","unknown":"test_unknown","updated":"","username":"123","verified":true}`, - }, - } - - created, _ := types.ParseDateTime("2022-01-01 10:00:30.123Z") - lastResetSentAt, _ := types.ParseDateTime("2022-01-02 10:00:30.123Z") - - data := map[string]any{ - "id": "test_id", - "created": created, - "field1": "test", - "field2": "test.png", - "field3": []string{"test1", "test2"}, - "expand": map[string]any{"test": 123}, - "collectionId": "m_id", // should be always ignored - "collectionName": "m_name", // should be always ignored - "unknown": "test_unknown", - "passwordHash": "test_passwordHash", - "username": 123, // for auth collections should be casted to string - "emailVisibility": "test_invalid", // for auth collections should be casted to bool - "email": "test_email", - "verified": true, - "tokenKey": "test_tokenKey", - "lastResetSentAt": lastResetSentAt, - "lastVerificationSentAt": "test_lastVerificationSentAt", - } - - m := models.NewRecord(collection) - - for i, s := range scenarios { - collection.Type = s.collectionType - - m.Load(data) - m.IgnoreEmailVisibility(s.exportHidden) - m.WithUnkownData(s.exportUnknown) - - exportResult, err := json.Marshal(m.PublicExport()) - if err != nil { - t.Errorf("(%d) Unexpected error %v", i, err) - continue - } - exportResultStr := string(exportResult) - - // MarshalJSON and PublicExport should return the same - marshalResult, err := m.MarshalJSON() - if err != nil { - t.Errorf("(%d) Unexpected error %v", i, err) - continue - } - marshalResultStr := string(marshalResult) - - if exportResultStr != marshalResultStr { - t.Errorf("(%d) Expected the PublicExport to be the same as MarshalJSON, but got \n%v \nvs \n%v", i, exportResultStr, marshalResultStr) - } - - if exportResultStr != s.expectedJson { - t.Errorf("(%d) Expected json \n%v \ngot \n%v", i, s.expectedJson, exportResultStr) - } - } -} - -func TestRecordUnmarshalJSON(t *testing.T) { - collection := &models.Collection{ - Schema: schema.NewSchema( - &schema.SchemaField{ - Name: "field1", - Type: schema.FieldTypeText, - }, - &schema.SchemaField{ - Name: "field2", - Type: schema.FieldTypeNumber, - }, - ), - } - - data := map[string]any{ - "id": "test_id", - "created": "2022-01-01 10:00:00.123Z", - "updated": "2022-01-01 10:00:00.456Z", - "field1": "test_field", - "field2": "123", // should be casted to float - "unknown": "test_unknown", - // auth collection sepcific casting test - "passwordHash": "test_passwordHash", - "emailVisibility": "12345", // should be casted to bool only for auth collections - "username": 123.123, // should be casted to string only for auth collections - "email": "test_email", - "verified": true, - "tokenKey": "test_tokenKey", - "lastResetSentAt": "2022-01-01 11:00:00.000", // should be casted to DateTime only for auth collections - "lastVerificationSentAt": "2022-01-01 12:00:00.000", // should be casted to DateTime only for auth collections - } - dataRaw, err := json.Marshal(data) - if err != nil { - t.Fatalf("Unexpected data marshal error %v", err) - } - - scenarios := []struct { - collectionType string - }{ - {models.CollectionTypeBase}, - {models.CollectionTypeAuth}, - } - - // with invalid data - m0 := models.NewRecord(collection) - if err := m0.UnmarshalJSON([]byte("test")); err == nil { - t.Fatal("Expected error, got nil") - } - - // with valid data (it should be pretty much the same as load) - for i, s := range scenarios { - collection.Type = s.collectionType - m := models.NewRecord(collection) - - err := m.UnmarshalJSON(dataRaw) - if err != nil { - t.Errorf("(%d) Unexpected error %v", i, err) - continue - } - - expectations := map[string]any{} - for k, v := range data { - expectations[k] = v - } - - expectations["created"], _ = types.ParseDateTime("2022-01-01 10:00:00.123Z") - expectations["updated"], _ = types.ParseDateTime("2022-01-01 10:00:00.456Z") - expectations["field2"] = 123.0 - - // extra casting test - if collection.IsAuth() { - lastResetSentAt, _ := types.ParseDateTime(expectations["lastResetSentAt"]) - lastVerificationSentAt, _ := types.ParseDateTime(expectations["lastVerificationSentAt"]) - expectations["emailVisibility"] = false - expectations["username"] = "123.123" - expectations["verified"] = true - expectations["lastResetSentAt"] = lastResetSentAt - expectations["lastVerificationSentAt"] = lastVerificationSentAt - } - - for k, v := range expectations { - if m.Get(k) != v { - t.Errorf("(%d) Expected field %s to be %v, got %v", i, k, v, m.Get(k)) - } - } - } -} - -// ------------------------------------------------------------------- -// Auth helpers: -// ------------------------------------------------------------------- - -func TestRecordUsername(t *testing.T) { - scenarios := []struct { - collectionType string - expectError bool - }{ - {models.CollectionTypeBase, true}, - {models.CollectionTypeAuth, false}, - } - - testValue := "test 1232 !@#%" // formatting isn't checked - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetUsername(testValue); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.Username(); v != "" { - t.Fatalf("(%d) Expected empty string, got %q", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameUsername); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameUsername, v) - } - } else { - if err := m.SetUsername(testValue); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.Username(); v != testValue { - t.Fatalf("(%d) Expected %q, got %q", i, testValue, v) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameUsername); v != testValue { - t.Fatalf("(%d) Expected data field value %q, got %q", i, testValue, v) - } - } - } -} - -func TestRecordEmail(t *testing.T) { - scenarios := []struct { - collectionType string - expectError bool - }{ - {models.CollectionTypeBase, true}, - {models.CollectionTypeAuth, false}, - } - - testValue := "test 1232 !@#%" // formatting isn't checked - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetEmail(testValue); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.Email(); v != "" { - t.Fatalf("(%d) Expected empty string, got %q", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameEmail); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameEmail, v) - } - } else { - if err := m.SetEmail(testValue); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.Email(); v != testValue { - t.Fatalf("(%d) Expected %q, got %q", i, testValue, v) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameEmail); v != testValue { - t.Fatalf("(%d) Expected data field value %q, got %q", i, testValue, v) - } - } - } -} - -func TestRecordEmailVisibility(t *testing.T) { - scenarios := []struct { - collectionType string - value bool - expectError bool - }{ - {models.CollectionTypeBase, true, true}, - {models.CollectionTypeBase, true, true}, - {models.CollectionTypeAuth, false, false}, - {models.CollectionTypeAuth, true, false}, - } - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetEmailVisibility(s.value); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.EmailVisibility(); v != false { - t.Fatalf("(%d) Expected empty string, got %v", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameEmailVisibility); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameEmailVisibility, v) - } - } else { - if err := m.SetEmailVisibility(s.value); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.EmailVisibility(); v != s.value { - t.Fatalf("(%d) Expected %v, got %v", i, s.value, v) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameEmailVisibility); v != s.value { - t.Fatalf("(%d) Expected data field value %v, got %v", i, s.value, v) - } - } - } -} - -func TestRecordEmailVerified(t *testing.T) { - scenarios := []struct { - collectionType string - value bool - expectError bool - }{ - {models.CollectionTypeBase, true, true}, - {models.CollectionTypeBase, true, true}, - {models.CollectionTypeAuth, false, false}, - {models.CollectionTypeAuth, true, false}, - } - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetVerified(s.value); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.Verified(); v != false { - t.Fatalf("(%d) Expected empty string, got %v", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameVerified); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameVerified, v) - } - } else { - if err := m.SetVerified(s.value); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.Verified(); v != s.value { - t.Fatalf("(%d) Expected %v, got %v", i, s.value, v) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameVerified); v != s.value { - t.Fatalf("(%d) Expected data field value %v, got %v", i, s.value, v) - } - } - } -} - -func TestRecordTokenKey(t *testing.T) { - scenarios := []struct { - collectionType string - expectError bool - }{ - {models.CollectionTypeBase, true}, - {models.CollectionTypeAuth, false}, - } - - testValue := "test 1232 !@#%" // formatting isn't checked - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetTokenKey(testValue); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.TokenKey(); v != "" { - t.Fatalf("(%d) Expected empty string, got %q", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameTokenKey); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameTokenKey, v) - } - } else { - if err := m.SetTokenKey(testValue); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.TokenKey(); v != testValue { - t.Fatalf("(%d) Expected %q, got %q", i, testValue, v) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameTokenKey); v != testValue { - t.Fatalf("(%d) Expected data field value %q, got %q", i, testValue, v) - } - } - } -} - -func TestRecordRefreshTokenKey(t *testing.T) { - scenarios := []struct { - collectionType string - expectError bool - }{ - {models.CollectionTypeBase, true}, - {models.CollectionTypeAuth, false}, - } - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.RefreshTokenKey(); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.TokenKey(); v != "" { - t.Fatalf("(%d) Expected empty string, got %q", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameTokenKey); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameTokenKey, v) - } - } else { - if err := m.RefreshTokenKey(); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.TokenKey(); len(v) != 50 { - t.Fatalf("(%d) Expected 50 chars, got %d", i, len(v)) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameTokenKey); v != m.TokenKey() { - t.Fatalf("(%d) Expected data field value %q, got %q", i, m.TokenKey(), v) - } - } - } -} - -func TestRecordLastResetSentAt(t *testing.T) { - scenarios := []struct { - collectionType string - expectError bool - }{ - {models.CollectionTypeBase, true}, - {models.CollectionTypeAuth, false}, - } - - testValue, err := types.ParseDateTime("2022-01-01 00:00:00.123Z") - if err != nil { - t.Fatal(err) - } - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetLastResetSentAt(testValue); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.LastResetSentAt(); !v.IsZero() { - t.Fatalf("(%d) Expected empty value, got %v", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameLastResetSentAt); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameLastResetSentAt, v) - } - } else { - if err := m.SetLastResetSentAt(testValue); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.LastResetSentAt(); v != testValue { - t.Fatalf("(%d) Expected %v, got %v", i, testValue, v) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameLastResetSentAt); v != testValue { - t.Fatalf("(%d) Expected data field value %v, got %v", i, testValue, v) - } - } - } -} - -func TestRecordLastVerificationSentAt(t *testing.T) { - scenarios := []struct { - collectionType string - expectError bool - }{ - {models.CollectionTypeBase, true}, - {models.CollectionTypeAuth, false}, - } - - testValue, err := types.ParseDateTime("2022-01-01 00:00:00.123Z") - if err != nil { - t.Fatal(err) - } - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetLastVerificationSentAt(testValue); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.LastVerificationSentAt(); !v.IsZero() { - t.Fatalf("(%d) Expected empty value, got %v", i, v) - } - // verify that nothing is stored in the record data slice - if v := m.Get(schema.FieldNameLastVerificationSentAt); v != nil { - t.Fatalf("(%d) Didn't expect data field %q: %v", i, schema.FieldNameLastVerificationSentAt, v) - } - } else { - if err := m.SetLastVerificationSentAt(testValue); err != nil { - t.Fatalf("(%d) Expected nil, got error %v", i, err) - } - if v := m.LastVerificationSentAt(); v != testValue { - t.Fatalf("(%d) Expected %v, got %v", i, testValue, v) - } - // verify that the field is stored in the record data slice - if v := m.Get(schema.FieldNameLastVerificationSentAt); v != testValue { - t.Fatalf("(%d) Expected data field value %v, got %v", i, testValue, v) - } - } - } -} - -func TestRecordPasswordHash(t *testing.T) { - m := models.NewRecord(&models.Collection{}) - - if v := m.PasswordHash(); v != "" { - t.Errorf("Expected PasswordHash() to be empty, got %v", v) - } - - m.Set(schema.FieldNamePasswordHash, "test") - - if v := m.PasswordHash(); v != "test" { - t.Errorf("Expected PasswordHash() to be 'test', got %v", v) - } -} - -func TestRecordValidatePassword(t *testing.T) { - // 123456 - hash := "$2a$10$YKU8mPP8sTE3xZrpuM.xQuq27KJ7aIJB2oUeKPsDDqZshbl5g5cDK" - - scenarios := []struct { - collectionType string - password string - hash string - expected bool - }{ - {models.CollectionTypeBase, "123456", hash, false}, - {models.CollectionTypeAuth, "", "", false}, - {models.CollectionTypeAuth, "", hash, false}, - {models.CollectionTypeAuth, "123456", hash, true}, - {models.CollectionTypeAuth, "654321", hash, false}, - } - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - m.Set(schema.FieldNamePasswordHash, hash) - - if v := m.ValidatePassword(s.password); v != s.expected { - t.Errorf("(%d) Expected %v, got %v", i, s.expected, v) - } - } -} - -func TestRecordSetPassword(t *testing.T) { - scenarios := []struct { - collectionType string - password string - expectError bool - }{ - {models.CollectionTypeBase, "", true}, - {models.CollectionTypeBase, "123456", true}, - {models.CollectionTypeAuth, "", true}, - {models.CollectionTypeAuth, "123456", false}, - } - - for i, s := range scenarios { - collection := &models.Collection{Type: s.collectionType} - m := models.NewRecord(collection) - - if s.expectError { - if err := m.SetPassword(s.password); err == nil { - t.Errorf("(%d) Expected error, got nil", i) - } - if v := m.GetString(schema.FieldNamePasswordHash); v != "" { - t.Errorf("(%d) Expected empty hash, got %q", i, v) - } - } else { - if err := m.SetPassword(s.password); err != nil { - t.Errorf("(%d) Expected nil, got err", i) - } - if v := m.GetString(schema.FieldNamePasswordHash); v == "" { - t.Errorf("(%d) Expected non empty hash", i) - } - if !m.ValidatePassword(s.password) { - t.Errorf("(%d) Expected true, got false", i) - } - } - } -} diff --git a/models/request.go b/models/request.go deleted file mode 100644 index dbefc91c7c4a42b1cc679cc069928cd09b171569..0000000000000000000000000000000000000000 --- a/models/request.go +++ /dev/null @@ -1,30 +0,0 @@ -package models - -import "github.com/pocketbase/pocketbase/tools/types" - -var _ Model = (*Request)(nil) - -// list with the supported values for `Request.Auth` -const ( - RequestAuthGuest = "guest" - RequestAuthAdmin = "admin" - RequestAuthRecord = "auth_record" -) - -type Request struct { - BaseModel - - Url string `db:"url" json:"url"` - Method string `db:"method" json:"method"` - Status int `db:"status" json:"status"` - Auth string `db:"auth" json:"auth"` - UserIp string `db:"userIp" json:"userIp"` - RemoteIp string `db:"remoteIp" json:"remoteIp"` - Referer string `db:"referer" json:"referer"` - UserAgent string `db:"userAgent" json:"userAgent"` - Meta types.JsonMap `db:"meta" json:"meta"` -} - -func (m *Request) TableName() string { - return "_requests" -} diff --git a/models/request_data.go b/models/request_data.go deleted file mode 100644 index a129c8e74ed88527a8b143b3f2f481c350008c53..0000000000000000000000000000000000000000 --- a/models/request_data.go +++ /dev/null @@ -1,11 +0,0 @@ -package models - -// RequestData defines a HTTP request data struct, usually used -// as part of the `@request.*` filter resolver. -type RequestData struct { - Method string `json:"method"` - Query map[string]any `json:"query"` - Data map[string]any `json:"data"` - AuthRecord *Record `json:"authRecord"` - Admin *Admin `json:"admin"` -} diff --git a/models/request_test.go b/models/request_test.go deleted file mode 100644 index 0f1f99e59e570aaeb8eb9d0645f1a52d81fe7052..0000000000000000000000000000000000000000 --- a/models/request_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package models_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models" -) - -func TestRequestTableName(t *testing.T) { - m := models.Request{} - if m.TableName() != "_requests" { - t.Fatalf("Unexpected table name, got %q", m.TableName()) - } -} diff --git a/models/schema/schema.go b/models/schema/schema.go deleted file mode 100644 index d48b0550be0e39283c2227ad845dbd5cb54a7249..0000000000000000000000000000000000000000 --- a/models/schema/schema.go +++ /dev/null @@ -1,240 +0,0 @@ -// Package schema implements custom Schema and SchemaField datatypes -// for handling the Collection schema definitions. -package schema - -import ( - "database/sql/driver" - "encoding/json" - "fmt" - "strconv" - "strings" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/security" -) - -// NewSchema creates a new Schema instance with the provided fields. -func NewSchema(fields ...*SchemaField) Schema { - s := Schema{} - - for _, f := range fields { - s.AddField(f) - } - - return s -} - -// Schema defines a dynamic db schema as a slice of `SchemaField`s. -type Schema struct { - fields []*SchemaField -} - -// Fields returns the registered schema fields. -func (s *Schema) Fields() []*SchemaField { - return s.fields -} - -// InitFieldsOptions calls `InitOptions()` for all schema fields. -func (s *Schema) InitFieldsOptions() error { - for _, field := range s.Fields() { - if err := field.InitOptions(); err != nil { - return err - } - } - return nil -} - -// Clone creates a deep clone of the current schema. -func (s *Schema) Clone() (*Schema, error) { - copyRaw, err := json.Marshal(s) - if err != nil { - return nil, err - } - - result := &Schema{} - if err := json.Unmarshal(copyRaw, result); err != nil { - return nil, err - } - - return result, nil -} - -// AsMap returns a map with all registered schema field. -// The returned map is indexed with each field name. -func (s *Schema) AsMap() map[string]*SchemaField { - result := map[string]*SchemaField{} - - for _, field := range s.fields { - result[field.Name] = field - } - - return result -} - -// GetFieldById returns a single field by its id. -func (s *Schema) GetFieldById(id string) *SchemaField { - for _, field := range s.fields { - if field.Id == id { - return field - } - } - return nil -} - -// GetFieldByName returns a single field by its name. -func (s *Schema) GetFieldByName(name string) *SchemaField { - for _, field := range s.fields { - if field.Name == name { - return field - } - } - return nil -} - -// RemoveField removes a single schema field by its id. -// -// This method does nothing if field with `id` doesn't exist. -func (s *Schema) RemoveField(id string) { - for i, field := range s.fields { - if field.Id == id { - s.fields = append(s.fields[:i], s.fields[i+1:]...) - return - } - } -} - -// AddField registers the provided newField to the current schema. -// -// If field with `newField.Id` already exist, the existing field is -// replaced with the new one. -// -// Otherwise the new field is appended to the other schema fields. -func (s *Schema) AddField(newField *SchemaField) { - if newField.Id == "" { - // set default id - newField.Id = strings.ToLower(security.PseudorandomString(8)) - } - - for i, field := range s.fields { - // replace existing - if field.Id == newField.Id { - s.fields[i] = newField - return - } - } - - // add new field - s.fields = append(s.fields, newField) -} - -// Validate makes Schema validatable by implementing [validation.Validatable] interface. -// -// Internally calls each individual field's validator and additionally -// checks for invalid renamed fields and field name duplications. -func (s Schema) Validate() error { - return validation.Validate(&s.fields, validation.By(func(value any) error { - fields := s.fields // use directly the schema value to avoid unnecessary interface casting - - ids := []string{} - names := []string{} - for i, field := range fields { - if list.ExistInSlice(field.Id, ids) { - return validation.Errors{ - strconv.Itoa(i): validation.Errors{ - "id": validation.NewError( - "validation_duplicated_field_id", - "Duplicated or invalid schema field id", - ), - }, - } - } - - // field names are used as db columns and should be case insensitive - nameLower := strings.ToLower(field.Name) - - if list.ExistInSlice(nameLower, names) { - return validation.Errors{ - strconv.Itoa(i): validation.Errors{ - "name": validation.NewError( - "validation_duplicated_field_name", - "Duplicated or invalid schema field name", - ), - }, - } - } - - ids = append(ids, field.Id) - names = append(names, nameLower) - } - - return nil - })) -} - -// MarshalJSON implements the [json.Marshaler] interface. -func (s Schema) MarshalJSON() ([]byte, error) { - if s.fields == nil { - s.fields = []*SchemaField{} - } - return json.Marshal(s.fields) -} - -// UnmarshalJSON implements the [json.Unmarshaler] interface. -// -// On success, all schema field options are auto initialized. -func (s *Schema) UnmarshalJSON(data []byte) error { - fields := []*SchemaField{} - if err := json.Unmarshal(data, &fields); err != nil { - return err - } - - s.fields = []*SchemaField{} - - for _, f := range fields { - s.AddField(f) - } - - for _, field := range s.fields { - if err := field.InitOptions(); err != nil { - // ignore the error and remove the invalid field - s.RemoveField(field.Id) - } - } - - return nil -} - -// Value implements the [driver.Valuer] interface. -func (s Schema) Value() (driver.Value, error) { - if s.fields == nil { - // initialize an empty slice to ensure that `[]` is returned - s.fields = []*SchemaField{} - } - - data, err := json.Marshal(s.fields) - - return string(data), err -} - -// Scan implements [sql.Scanner] interface to scan the provided value -// into the current Schema instance. -func (s *Schema) Scan(value any) error { - var data []byte - switch v := value.(type) { - case nil: - // no cast needed - case []byte: - data = v - case string: - data = []byte(v) - default: - return fmt.Errorf("Failed to unmarshal Schema value %q.", value) - } - - if len(data) == 0 { - data = []byte("[]") - } - - return s.UnmarshalJSON(data) -} diff --git a/models/schema/schema_field.go b/models/schema/schema_field.go deleted file mode 100644 index 4e3052a728c660fb10d57e5363c3e583229724c7..0000000000000000000000000000000000000000 --- a/models/schema/schema_field.go +++ /dev/null @@ -1,527 +0,0 @@ -package schema - -import ( - "encoding/json" - "errors" - "regexp" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/tools/filesystem" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/types" - "github.com/spf13/cast" -) - -var schemaFieldNameRegex = regexp.MustCompile(`^\w+$`) - -// commonly used field names -const ( - FieldNameId = "id" - FieldNameCreated = "created" - FieldNameUpdated = "updated" - FieldNameCollectionId = "collectionId" - FieldNameCollectionName = "collectionName" - FieldNameExpand = "expand" - FieldNameUsername = "username" - FieldNameEmail = "email" - FieldNameEmailVisibility = "emailVisibility" - FieldNameVerified = "verified" - FieldNameTokenKey = "tokenKey" - FieldNamePasswordHash = "passwordHash" - FieldNameLastResetSentAt = "lastResetSentAt" - FieldNameLastVerificationSentAt = "lastVerificationSentAt" -) - -// BaseModelFieldNames returns the field names that all models have (id, created, updated). -func BaseModelFieldNames() []string { - return []string{ - FieldNameId, - FieldNameCreated, - FieldNameUpdated, - } -} - -// SystemFields returns special internal field names that are usually readonly. -func SystemFieldNames() []string { - return []string{ - FieldNameCollectionId, - FieldNameCollectionName, - FieldNameExpand, - } -} - -// AuthFieldNames returns the reserved "auth" collection auth field names. -func AuthFieldNames() []string { - return []string{ - FieldNameUsername, - FieldNameEmail, - FieldNameEmailVisibility, - FieldNameVerified, - FieldNameTokenKey, - FieldNamePasswordHash, - FieldNameLastResetSentAt, - FieldNameLastVerificationSentAt, - } -} - -// All valid field types -const ( - FieldTypeText string = "text" - FieldTypeNumber string = "number" - FieldTypeBool string = "bool" - FieldTypeEmail string = "email" - FieldTypeUrl string = "url" - FieldTypeDate string = "date" - FieldTypeSelect string = "select" - FieldTypeJson string = "json" - FieldTypeFile string = "file" - FieldTypeRelation string = "relation" - - // Deprecated: Will be removed in v0.9+ - FieldTypeUser string = "user" -) - -// FieldTypes returns slice with all supported field types. -func FieldTypes() []string { - return []string{ - FieldTypeText, - FieldTypeNumber, - FieldTypeBool, - FieldTypeEmail, - FieldTypeUrl, - FieldTypeDate, - FieldTypeSelect, - FieldTypeJson, - FieldTypeFile, - FieldTypeRelation, - } -} - -// ArraybleFieldTypes returns slice with all array value supported field types. -func ArraybleFieldTypes() []string { - return []string{ - FieldTypeSelect, - FieldTypeFile, - FieldTypeRelation, - } -} - -// SchemaField defines a single schema field structure. -type SchemaField struct { - System bool `form:"system" json:"system"` - Id string `form:"id" json:"id"` - Name string `form:"name" json:"name"` - Type string `form:"type" json:"type"` - Required bool `form:"required" json:"required"` - Unique bool `form:"unique" json:"unique"` - Options any `form:"options" json:"options"` -} - -// ColDefinition returns the field db column type definition as string. -func (f *SchemaField) ColDefinition() string { - switch f.Type { - case FieldTypeNumber: - return "REAL DEFAULT 0" - case FieldTypeBool: - return "BOOLEAN DEFAULT FALSE" - case FieldTypeJson: - return "JSON DEFAULT NULL" - default: - return "TEXT DEFAULT ''" - } -} - -// String serializes and returns the current field as string. -func (f SchemaField) String() string { - data, _ := f.MarshalJSON() - return string(data) -} - -// MarshalJSON implements the [json.Marshaler] interface. -func (f SchemaField) MarshalJSON() ([]byte, error) { - type alias SchemaField // alias to prevent recursion - - f.InitOptions() - - return json.Marshal(alias(f)) -} - -// UnmarshalJSON implements the [json.Unmarshaler] interface. -// -// The schema field options are auto initialized on success. -func (f *SchemaField) UnmarshalJSON(data []byte) error { - type alias *SchemaField // alias to prevent recursion - - a := alias(f) - - if err := json.Unmarshal(data, a); err != nil { - return err - } - - return f.InitOptions() -} - -// Validate makes `SchemaField` validatable by implementing [validation.Validatable] interface. -func (f SchemaField) Validate() error { - // init field options (if not already) - f.InitOptions() - - excludeNames := BaseModelFieldNames() - // exclude filter literals - excludeNames = append(excludeNames, "null", "true", "false") - // exclude system literals - excludeNames = append(excludeNames, SystemFieldNames()...) - - return validation.ValidateStruct(&f, - validation.Field(&f.Options, validation.Required, validation.By(f.checkOptions)), - validation.Field(&f.Id, validation.Required, validation.Length(5, 255)), - validation.Field( - &f.Name, - validation.Required, - validation.Length(1, 255), - validation.Match(schemaFieldNameRegex), - validation.NotIn(list.ToInterfaceSlice(excludeNames)...), - ), - validation.Field(&f.Type, validation.Required, validation.In(list.ToInterfaceSlice(FieldTypes())...)), - // currently file fields cannot be unique because a proper - // hash/content check could cause performance issues - validation.Field(&f.Unique, validation.When(f.Type == FieldTypeFile, validation.Empty)), - ) -} - -func (f *SchemaField) checkOptions(value any) error { - v, ok := value.(FieldOptions) - if !ok { - return validation.NewError("validation_invalid_options", "Failed to initialize field options") - } - - return v.Validate() -} - -// InitOptions initializes the current field options based on its type. -// -// Returns error on unknown field type. -func (f *SchemaField) InitOptions() error { - if _, ok := f.Options.(FieldOptions); ok { - return nil // already inited - } - - serialized, err := json.Marshal(f.Options) - if err != nil { - return err - } - - var options any - switch f.Type { - case FieldTypeText: - options = &TextOptions{} - case FieldTypeNumber: - options = &NumberOptions{} - case FieldTypeBool: - options = &BoolOptions{} - case FieldTypeEmail: - options = &EmailOptions{} - case FieldTypeUrl: - options = &UrlOptions{} - case FieldTypeDate: - options = &DateOptions{} - case FieldTypeSelect: - options = &SelectOptions{} - case FieldTypeJson: - options = &JsonOptions{} - case FieldTypeFile: - options = &FileOptions{} - case FieldTypeRelation: - options = &RelationOptions{} - - // Deprecated: Will be removed in v0.9+ - case FieldTypeUser: - options = &UserOptions{} - - default: - return errors.New("Missing or unknown field field type.") - } - - if err := json.Unmarshal(serialized, options); err != nil { - return err - } - - f.Options = options - - return nil -} - -// PrepareValue returns normalized and properly formatted field value. -func (f *SchemaField) PrepareValue(value any) any { - // init field options (if not already) - f.InitOptions() - - switch f.Type { - case FieldTypeText, FieldTypeEmail, FieldTypeUrl: - return cast.ToString(value) - case FieldTypeJson: - val, _ := types.ParseJsonRaw(value) - return val - case FieldTypeNumber: - return cast.ToFloat64(value) - case FieldTypeBool: - return cast.ToBool(value) - case FieldTypeDate: - val, _ := types.ParseDateTime(value) - return val - case FieldTypeSelect: - val := list.ToUniqueStringSlice(value) - - options, _ := f.Options.(*SelectOptions) - if options.MaxSelect <= 1 { - if len(val) > 0 { - return val[0] - } - return "" - } - - return val - case FieldTypeFile: - val := list.ToUniqueStringSlice(value) - - options, _ := f.Options.(*FileOptions) - if options.MaxSelect <= 1 { - if len(val) > 0 { - return val[0] - } - return "" - } - - return val - case FieldTypeRelation: - ids := list.ToUniqueStringSlice(value) - - options, _ := f.Options.(*RelationOptions) - if options.MaxSelect != nil && *options.MaxSelect <= 1 { - if len(ids) > 0 { - return ids[0] - } - return "" - } - - return ids - default: - return value // unmodified - } -} - -// ------------------------------------------------------------------- - -// FieldOptions interfaces that defines common methods that every field options struct has. -type FieldOptions interface { - Validate() error -} - -type TextOptions struct { - Min *int `form:"min" json:"min"` - Max *int `form:"max" json:"max"` - Pattern string `form:"pattern" json:"pattern"` -} - -func (o TextOptions) Validate() error { - minVal := 0 - if o.Min != nil { - minVal = *o.Min - } - - return validation.ValidateStruct(&o, - validation.Field(&o.Min, validation.Min(0)), - validation.Field(&o.Max, validation.Min(minVal)), - validation.Field(&o.Pattern, validation.By(o.checkRegex)), - ) -} - -func (o *TextOptions) checkRegex(value any) error { - v, _ := value.(string) - if v == "" { - return nil // nothing to check - } - - if _, err := regexp.Compile(v); err != nil { - return validation.NewError("validation_invalid_regex", err.Error()) - } - - return nil -} - -// ------------------------------------------------------------------- - -type NumberOptions struct { - Min *float64 `form:"min" json:"min"` - Max *float64 `form:"max" json:"max"` -} - -func (o NumberOptions) Validate() error { - var maxRules []validation.Rule - if o.Min != nil && o.Max != nil { - maxRules = append(maxRules, validation.Min(*o.Min)) - } - - return validation.ValidateStruct(&o, - validation.Field(&o.Max, maxRules...), - ) -} - -// ------------------------------------------------------------------- - -type BoolOptions struct { -} - -func (o BoolOptions) Validate() error { - return nil -} - -// ------------------------------------------------------------------- - -type EmailOptions struct { - ExceptDomains []string `form:"exceptDomains" json:"exceptDomains"` - OnlyDomains []string `form:"onlyDomains" json:"onlyDomains"` -} - -func (o EmailOptions) Validate() error { - return validation.ValidateStruct(&o, - validation.Field( - &o.ExceptDomains, - validation.When(len(o.OnlyDomains) > 0, validation.Empty).Else(validation.Each(is.Domain)), - ), - validation.Field( - &o.OnlyDomains, - validation.When(len(o.ExceptDomains) > 0, validation.Empty).Else(validation.Each(is.Domain)), - ), - ) -} - -// ------------------------------------------------------------------- - -type UrlOptions struct { - ExceptDomains []string `form:"exceptDomains" json:"exceptDomains"` - OnlyDomains []string `form:"onlyDomains" json:"onlyDomains"` -} - -func (o UrlOptions) Validate() error { - return validation.ValidateStruct(&o, - validation.Field( - &o.ExceptDomains, - validation.When(len(o.OnlyDomains) > 0, validation.Empty).Else(validation.Each(is.Domain)), - ), - validation.Field( - &o.OnlyDomains, - validation.When(len(o.ExceptDomains) > 0, validation.Empty).Else(validation.Each(is.Domain)), - ), - ) -} - -// ------------------------------------------------------------------- - -type DateOptions struct { - Min types.DateTime `form:"min" json:"min"` - Max types.DateTime `form:"max" json:"max"` -} - -func (o DateOptions) Validate() error { - return validation.ValidateStruct(&o, - validation.Field(&o.Max, validation.By(o.checkRange(o.Min, o.Max))), - ) -} - -func (o *DateOptions) checkRange(min types.DateTime, max types.DateTime) validation.RuleFunc { - return func(value any) error { - v, _ := value.(types.DateTime) - - if v.IsZero() || min.IsZero() || max.IsZero() { - return nil // nothing to check - } - - return validation.Date(types.DefaultDateLayout). - Min(min.Time()). - Max(max.Time()). - Validate(v.String()) - } -} - -// ------------------------------------------------------------------- - -type SelectOptions struct { - MaxSelect int `form:"maxSelect" json:"maxSelect"` - Values []string `form:"values" json:"values"` -} - -func (o SelectOptions) Validate() error { - max := len(o.Values) - if max == 0 { - max = 1 - } - - return validation.ValidateStruct(&o, - validation.Field(&o.Values, validation.Required), - validation.Field( - &o.MaxSelect, - validation.Required, - validation.Min(1), - validation.Max(max), - ), - ) -} - -// ------------------------------------------------------------------- - -type JsonOptions struct { -} - -func (o JsonOptions) Validate() error { - return nil -} - -// ------------------------------------------------------------------- - -type FileOptions struct { - MaxSelect int `form:"maxSelect" json:"maxSelect"` - MaxSize int `form:"maxSize" json:"maxSize"` // in bytes - MimeTypes []string `form:"mimeTypes" json:"mimeTypes"` - Thumbs []string `form:"thumbs" json:"thumbs"` -} - -func (o FileOptions) Validate() error { - return validation.ValidateStruct(&o, - validation.Field(&o.MaxSelect, validation.Required, validation.Min(1)), - validation.Field(&o.MaxSize, validation.Required, validation.Min(1)), - validation.Field(&o.Thumbs, validation.Each( - validation.NotIn("0x0", "0x0t", "0x0b", "0x0f"), - validation.Match(filesystem.ThumbSizeRegex), - )), - ) -} - -// ------------------------------------------------------------------- - -type RelationOptions struct { - MaxSelect *int `form:"maxSelect" json:"maxSelect"` - CollectionId string `form:"collectionId" json:"collectionId"` - CascadeDelete bool `form:"cascadeDelete" json:"cascadeDelete"` -} - -func (o RelationOptions) Validate() error { - return validation.ValidateStruct(&o, - validation.Field(&o.CollectionId, validation.Required), - validation.Field(&o.MaxSelect, validation.NilOrNotEmpty, validation.Min(1)), - ) -} - -// ------------------------------------------------------------------- - -// Deprecated: Will be removed in v0.9+ -type UserOptions struct { - MaxSelect int `form:"maxSelect" json:"maxSelect"` - CascadeDelete bool `form:"cascadeDelete" json:"cascadeDelete"` -} - -// Deprecated: Will be removed in v0.9+ -func (o UserOptions) Validate() error { - return nil -} diff --git a/models/schema/schema_field_test.go b/models/schema/schema_field_test.go deleted file mode 100644 index 3a9db74b853cad70f0b0cf000cd96e99d9e5f1c5..0000000000000000000000000000000000000000 --- a/models/schema/schema_field_test.go +++ /dev/null @@ -1,1319 +0,0 @@ -package schema_test - -import ( - "encoding/json" - "fmt" - "testing" - "time" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestBaseModelFieldNames(t *testing.T) { - result := schema.BaseModelFieldNames() - expected := 3 - - if len(result) != expected { - t.Fatalf("Expected %d field names, got %d (%v)", expected, len(result), result) - } -} - -func TestSystemFieldNames(t *testing.T) { - result := schema.SystemFieldNames() - expected := 3 - - if len(result) != expected { - t.Fatalf("Expected %d field names, got %d (%v)", expected, len(result), result) - } -} - -func TestAuthFieldNames(t *testing.T) { - result := schema.AuthFieldNames() - expected := 8 - - if len(result) != expected { - t.Fatalf("Expected %d auth field names, got %d (%v)", expected, len(result), result) - } -} - -func TestFieldTypes(t *testing.T) { - result := schema.FieldTypes() - expected := 10 - - if len(result) != expected { - t.Fatalf("Expected %d types, got %d (%v)", expected, len(result), result) - } -} - -func TestArraybleFieldTypes(t *testing.T) { - result := schema.ArraybleFieldTypes() - expected := 3 - - if len(result) != expected { - t.Fatalf("Expected %d arrayble types, got %d (%v)", expected, len(result), result) - } -} - -func TestSchemaFieldColDefinition(t *testing.T) { - scenarios := []struct { - field schema.SchemaField - expected string - }{ - { - schema.SchemaField{Type: schema.FieldTypeText, Name: "test"}, - "TEXT DEFAULT ''", - }, - { - schema.SchemaField{Type: schema.FieldTypeNumber, Name: "test"}, - "REAL DEFAULT 0", - }, - { - schema.SchemaField{Type: schema.FieldTypeBool, Name: "test"}, - "BOOLEAN DEFAULT FALSE", - }, - { - schema.SchemaField{Type: schema.FieldTypeEmail, Name: "test"}, - "TEXT DEFAULT ''", - }, - { - schema.SchemaField{Type: schema.FieldTypeUrl, Name: "test"}, - "TEXT DEFAULT ''", - }, - { - schema.SchemaField{Type: schema.FieldTypeDate, Name: "test"}, - "TEXT DEFAULT ''", - }, - { - schema.SchemaField{Type: schema.FieldTypeSelect, Name: "test"}, - "TEXT DEFAULT ''", - }, - { - schema.SchemaField{Type: schema.FieldTypeJson, Name: "test"}, - "JSON DEFAULT NULL", - }, - { - schema.SchemaField{Type: schema.FieldTypeFile, Name: "test"}, - "TEXT DEFAULT ''", - }, - { - schema.SchemaField{Type: schema.FieldTypeRelation, Name: "test"}, - "TEXT DEFAULT ''", - }, - } - - for i, s := range scenarios { - def := s.field.ColDefinition() - if def != s.expected { - t.Errorf("(%d) Expected definition %q, got %q", i, s.expected, def) - } - } -} - -func TestSchemaFieldString(t *testing.T) { - f := schema.SchemaField{ - Id: "abc", - Name: "test", - Type: schema.FieldTypeText, - Required: true, - Unique: false, - System: true, - Options: &schema.TextOptions{ - Pattern: "test", - }, - } - - result := f.String() - expected := `{"system":true,"id":"abc","name":"test","type":"text","required":true,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}` - - if result != expected { - t.Errorf("Expected \n%v, got \n%v", expected, result) - } -} - -func TestSchemaFieldMarshalJSON(t *testing.T) { - scenarios := []struct { - field schema.SchemaField - expected string - }{ - // empty - { - schema.SchemaField{}, - `{"system":false,"id":"","name":"","type":"","required":false,"unique":false,"options":null}`, - }, - // without defined options - { - schema.SchemaField{ - Id: "abc", - Name: "test", - Type: schema.FieldTypeText, - Required: true, - Unique: false, - System: true, - }, - `{"system":true,"id":"abc","name":"test","type":"text","required":true,"unique":false,"options":{"min":null,"max":null,"pattern":""}}`, - }, - // with defined options - { - schema.SchemaField{ - Name: "test", - Type: schema.FieldTypeText, - Required: true, - Unique: false, - System: true, - Options: &schema.TextOptions{ - Pattern: "test", - }, - }, - `{"system":true,"id":"","name":"test","type":"text","required":true,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}`, - }, - } - - for i, s := range scenarios { - result, err := s.field.MarshalJSON() - if err != nil { - t.Fatalf("(%d) %v", i, err) - } - - if string(result) != s.expected { - t.Errorf("(%d), Expected \n%v, got \n%v", i, s.expected, string(result)) - } - } -} - -func TestSchemaFieldUnmarshalJSON(t *testing.T) { - scenarios := []struct { - data []byte - expectError bool - expectJson string - }{ - { - nil, - true, - `{"system":false,"id":"","name":"","type":"","required":false,"unique":false,"options":null}`, - }, - { - []byte{}, - true, - `{"system":false,"id":"","name":"","type":"","required":false,"unique":false,"options":null}`, - }, - { - []byte(`{"system": true}`), - true, - `{"system":true,"id":"","name":"","type":"","required":false,"unique":false,"options":null}`, - }, - { - []byte(`{"invalid"`), - true, - `{"system":false,"id":"","name":"","type":"","required":false,"unique":false,"options":null}`, - }, - { - []byte(`{"type":"text","system":true}`), - false, - `{"system":true,"id":"","name":"","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}}`, - }, - { - []byte(`{"type":"text","options":{"pattern":"test"}}`), - false, - `{"system":false,"id":"","name":"","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}`, - }, - } - - for i, s := range scenarios { - f := schema.SchemaField{} - err := f.UnmarshalJSON(s.data) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - if f.String() != s.expectJson { - t.Errorf("(%d), Expected json \n%v, got \n%v", i, s.expectJson, f.String()) - } - } -} - -func TestSchemaFieldValidate(t *testing.T) { - scenarios := []struct { - name string - field schema.SchemaField - expectedErrors []string - }{ - { - "empty field", - schema.SchemaField{}, - []string{"id", "options", "name", "type"}, - }, - { - "missing id", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "", - Name: "test", - }, - []string{"id"}, - }, - { - "invalid id length check", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234", - Name: "test", - }, - []string{"id"}, - }, - { - "valid id length check", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "12345", - Name: "test", - }, - []string{}, - }, - { - "invalid name format", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: "test!@#", - }, - []string{"name"}, - }, - { - "reserved name (null)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: "null", - }, - []string{"name"}, - }, - { - "reserved name (true)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: "null", - }, - []string{"name"}, - }, - { - "reserved name (false)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: "false", - }, - []string{"name"}, - }, - { - "reserved name (id)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: schema.FieldNameId, - }, - []string{"name"}, - }, - { - "reserved name (created)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: schema.FieldNameCreated, - }, - []string{"name"}, - }, - { - "reserved name (updated)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: schema.FieldNameUpdated, - }, - []string{"name"}, - }, - { - "reserved name (collectionId)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: schema.FieldNameCollectionId, - }, - []string{"name"}, - }, - { - "reserved name (collectionName)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: schema.FieldNameCollectionName, - }, - []string{"name"}, - }, - { - "reserved name (expand)", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: schema.FieldNameExpand, - }, - []string{"name"}, - }, - { - "valid name", - schema.SchemaField{ - Type: schema.FieldTypeText, - Id: "1234567890", - Name: "test", - }, - []string{}, - }, - { - "unique check for type file", - schema.SchemaField{ - Type: schema.FieldTypeFile, - Id: "1234567890", - Name: "test", - Unique: true, - Options: &schema.FileOptions{MaxSelect: 1, MaxSize: 1}, - }, - []string{"unique"}, - }, - { - "trigger options validator (auto init)", - schema.SchemaField{ - Type: schema.FieldTypeFile, - Id: "1234567890", - Name: "test", - }, - []string{"options"}, - }, - { - "trigger options validator (invalid option field value)", - schema.SchemaField{ - Type: schema.FieldTypeFile, - Id: "1234567890", - Name: "test", - Options: &schema.FileOptions{MaxSelect: 0, MaxSize: 0}, - }, - []string{"options"}, - }, - { - "trigger options validator (valid option field value)", - schema.SchemaField{ - Type: schema.FieldTypeFile, - Id: "1234567890", - Name: "test", - Options: &schema.FileOptions{MaxSelect: 1, MaxSize: 1}, - }, - []string{}, - }, - } - - for _, s := range scenarios { - result := s.field.Validate() - - // parse errors - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("[%s] Failed to parse errors %v", s.name, result) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("[%s] Expected error keys %v, got %v", s.name, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("[%s] Missing expected error key %q in %v", s.name, k, errs) - } - } - } -} - -func TestSchemaFieldInitOptions(t *testing.T) { - scenarios := []struct { - field schema.SchemaField - expectError bool - expectJson string - }{ - { - schema.SchemaField{}, - true, - `{"system":false,"id":"","name":"","type":"","required":false,"unique":false,"options":null}`, - }, - { - schema.SchemaField{Type: "unknown"}, - true, - `{"system":false,"id":"","name":"","type":"unknown","required":false,"unique":false,"options":null}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeText}, - false, - `{"system":false,"id":"","name":"","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeNumber}, - false, - `{"system":false,"id":"","name":"","type":"number","required":false,"unique":false,"options":{"min":null,"max":null}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeBool}, - false, - `{"system":false,"id":"","name":"","type":"bool","required":false,"unique":false,"options":{}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeEmail}, - false, - `{"system":false,"id":"","name":"","type":"email","required":false,"unique":false,"options":{"exceptDomains":null,"onlyDomains":null}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeUrl}, - false, - `{"system":false,"id":"","name":"","type":"url","required":false,"unique":false,"options":{"exceptDomains":null,"onlyDomains":null}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeDate}, - false, - `{"system":false,"id":"","name":"","type":"date","required":false,"unique":false,"options":{"min":"","max":""}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeSelect}, - false, - `{"system":false,"id":"","name":"","type":"select","required":false,"unique":false,"options":{"maxSelect":0,"values":null}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeJson}, - false, - `{"system":false,"id":"","name":"","type":"json","required":false,"unique":false,"options":{}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeFile}, - false, - `{"system":false,"id":"","name":"","type":"file","required":false,"unique":false,"options":{"maxSelect":0,"maxSize":0,"mimeTypes":null,"thumbs":null}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeRelation}, - false, - `{"system":false,"id":"","name":"","type":"relation","required":false,"unique":false,"options":{"maxSelect":null,"collectionId":"","cascadeDelete":false}}`, - }, - { - schema.SchemaField{Type: schema.FieldTypeUser}, - false, - `{"system":false,"id":"","name":"","type":"user","required":false,"unique":false,"options":{"maxSelect":0,"cascadeDelete":false}}`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeText, - Options: &schema.TextOptions{Pattern: "test"}, - }, - false, - `{"system":false,"id":"","name":"","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}`, - }, - } - - for i, s := range scenarios { - err := s.field.InitOptions() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected %v, got %v (%v)", i, s.expectError, hasErr, err) - } - - if s.field.String() != s.expectJson { - t.Errorf("(%d), Expected %v, got %v", i, s.expectJson, s.field.String()) - } - } -} - -func TestSchemaFieldPrepareValue(t *testing.T) { - scenarios := []struct { - field schema.SchemaField - value any - expectJson string - }{ - {schema.SchemaField{Type: "unknown"}, "test", `"test"`}, - {schema.SchemaField{Type: "unknown"}, 123, "123"}, - {schema.SchemaField{Type: "unknown"}, []int{1, 2, 1}, "[1,2,1]"}, - - // text - {schema.SchemaField{Type: schema.FieldTypeText}, nil, `""`}, - {schema.SchemaField{Type: schema.FieldTypeText}, "", `""`}, - {schema.SchemaField{Type: schema.FieldTypeText}, []int{1, 2}, `""`}, - {schema.SchemaField{Type: schema.FieldTypeText}, "test", `"test"`}, - {schema.SchemaField{Type: schema.FieldTypeText}, 123, `"123"`}, - - // email - {schema.SchemaField{Type: schema.FieldTypeEmail}, nil, `""`}, - {schema.SchemaField{Type: schema.FieldTypeEmail}, "", `""`}, - {schema.SchemaField{Type: schema.FieldTypeEmail}, []int{1, 2}, `""`}, - {schema.SchemaField{Type: schema.FieldTypeEmail}, "test", `"test"`}, - {schema.SchemaField{Type: schema.FieldTypeEmail}, 123, `"123"`}, - - // url - {schema.SchemaField{Type: schema.FieldTypeUrl}, nil, `""`}, - {schema.SchemaField{Type: schema.FieldTypeUrl}, "", `""`}, - {schema.SchemaField{Type: schema.FieldTypeUrl}, []int{1, 2}, `""`}, - {schema.SchemaField{Type: schema.FieldTypeUrl}, "test", `"test"`}, - {schema.SchemaField{Type: schema.FieldTypeUrl}, 123, `"123"`}, - - // json - {schema.SchemaField{Type: schema.FieldTypeJson}, nil, "null"}, - {schema.SchemaField{Type: schema.FieldTypeJson}, 123, "123"}, - {schema.SchemaField{Type: schema.FieldTypeJson}, `"test"`, `"test"`}, - {schema.SchemaField{Type: schema.FieldTypeJson}, map[string]int{"test": 123}, `{"test":123}`}, - {schema.SchemaField{Type: schema.FieldTypeJson}, []int{1, 2, 1}, `[1,2,1]`}, - - // number - {schema.SchemaField{Type: schema.FieldTypeNumber}, nil, "0"}, - {schema.SchemaField{Type: schema.FieldTypeNumber}, "", "0"}, - {schema.SchemaField{Type: schema.FieldTypeNumber}, "test", "0"}, - {schema.SchemaField{Type: schema.FieldTypeNumber}, 1, "1"}, - {schema.SchemaField{Type: schema.FieldTypeNumber}, 1.5, "1.5"}, - {schema.SchemaField{Type: schema.FieldTypeNumber}, "1.5", "1.5"}, - - // bool - {schema.SchemaField{Type: schema.FieldTypeBool}, nil, "false"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, 1, "true"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, 0, "false"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, "", "false"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, "test", "false"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, "false", "false"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, "true", "true"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, false, "false"}, - {schema.SchemaField{Type: schema.FieldTypeBool}, true, "true"}, - - // date - {schema.SchemaField{Type: schema.FieldTypeDate}, nil, `""`}, - {schema.SchemaField{Type: schema.FieldTypeDate}, "", `""`}, - {schema.SchemaField{Type: schema.FieldTypeDate}, "test", `""`}, - {schema.SchemaField{Type: schema.FieldTypeDate}, 1641024040, `"2022-01-01 08:00:40.000Z"`}, - {schema.SchemaField{Type: schema.FieldTypeDate}, "2022-01-01 11:27:10.123", `"2022-01-01 11:27:10.123Z"`}, - {schema.SchemaField{Type: schema.FieldTypeDate}, "2022-01-01 11:27:10.123Z", `"2022-01-01 11:27:10.123Z"`}, - {schema.SchemaField{Type: schema.FieldTypeDate}, types.DateTime{}, `""`}, - {schema.SchemaField{Type: schema.FieldTypeDate}, time.Time{}, `""`}, - - // select (single) - {schema.SchemaField{Type: schema.FieldTypeSelect}, nil, `""`}, - {schema.SchemaField{Type: schema.FieldTypeSelect}, "", `""`}, - {schema.SchemaField{Type: schema.FieldTypeSelect}, 123, `"123"`}, - {schema.SchemaField{Type: schema.FieldTypeSelect}, "test", `"test"`}, - {schema.SchemaField{Type: schema.FieldTypeSelect}, []string{"test1", "test2"}, `"test1"`}, - { - // no values validation/filtering - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{ - Values: []string{"test1", "test2"}, - }, - }, - "test", - `"test"`, - }, - // select (multiple) - { - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{MaxSelect: 2}, - }, - nil, - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{MaxSelect: 2}, - }, - "", - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{MaxSelect: 2}, - }, - []string{}, - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{MaxSelect: 2}, - }, - 123, - `["123"]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{MaxSelect: 2}, - }, - "test", - `["test"]`, - }, - { - // no values validation - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{MaxSelect: 2}, - }, - []string{"test1", "test2", "test3"}, - `["test1","test2","test3"]`, - }, - { - // duplicated values - schema.SchemaField{ - Type: schema.FieldTypeSelect, - Options: &schema.SelectOptions{MaxSelect: 2}, - }, - []string{"test1", "test2", "test1"}, - `["test1","test2"]`, - }, - - // file (single) - {schema.SchemaField{Type: schema.FieldTypeFile}, nil, `""`}, - {schema.SchemaField{Type: schema.FieldTypeFile}, "", `""`}, - {schema.SchemaField{Type: schema.FieldTypeFile}, 123, `"123"`}, - {schema.SchemaField{Type: schema.FieldTypeFile}, "test", `"test"`}, - {schema.SchemaField{Type: schema.FieldTypeFile}, []string{"test1", "test2"}, `"test1"`}, - // file (multiple) - { - schema.SchemaField{ - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{MaxSelect: 2}, - }, - nil, - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{MaxSelect: 2}, - }, - "", - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{MaxSelect: 2}, - }, - []string{}, - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{MaxSelect: 2}, - }, - 123, - `["123"]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{MaxSelect: 2}, - }, - "test", - `["test"]`, - }, - { - // no values validation - schema.SchemaField{ - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{MaxSelect: 2}, - }, - []string{"test1", "test2", "test3"}, - `["test1","test2","test3"]`, - }, - { - // duplicated values - schema.SchemaField{ - Type: schema.FieldTypeFile, - Options: &schema.FileOptions{MaxSelect: 2}, - }, - []string{"test1", "test2", "test1"}, - `["test1","test2"]`, - }, - - // relation (single) - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(1)}, - }, - nil, - `""`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(1)}, - }, - "", - `""`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(1)}, - }, - 123, - `"123"`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(1)}, - }, - "abc", - `"abc"`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(1)}, - }, - "1ba88b4f-e9da-42f0-9764-9a55c953e724", - `"1ba88b4f-e9da-42f0-9764-9a55c953e724"`, - }, - { - schema.SchemaField{Type: schema.FieldTypeRelation, Options: &schema.RelationOptions{MaxSelect: types.Pointer(1)}}, - []string{"1ba88b4f-e9da-42f0-9764-9a55c953e724", "2ba88b4f-e9da-42f0-9764-9a55c953e724"}, - `"1ba88b4f-e9da-42f0-9764-9a55c953e724"`, - }, - // relation (multiple) - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(2)}, - }, - nil, - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(2)}, - }, - "", - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(2)}, - }, - []string{}, - `[]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(2)}, - }, - 123, - `["123"]`, - }, - { - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(2)}, - }, - []string{"", "abc"}, - `["abc"]`, - }, - { - // no values validation - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(2)}, - }, - []string{"1ba88b4f-e9da-42f0-9764-9a55c953e724", "2ba88b4f-e9da-42f0-9764-9a55c953e724"}, - `["1ba88b4f-e9da-42f0-9764-9a55c953e724","2ba88b4f-e9da-42f0-9764-9a55c953e724"]`, - }, - { - // duplicated values - schema.SchemaField{ - Type: schema.FieldTypeRelation, - Options: &schema.RelationOptions{MaxSelect: types.Pointer(2)}, - }, - []string{"1ba88b4f-e9da-42f0-9764-9a55c953e724", "2ba88b4f-e9da-42f0-9764-9a55c953e724", "1ba88b4f-e9da-42f0-9764-9a55c953e724"}, - `["1ba88b4f-e9da-42f0-9764-9a55c953e724","2ba88b4f-e9da-42f0-9764-9a55c953e724"]`, - }, - } - - for i, s := range scenarios { - result := s.field.PrepareValue(s.value) - - encoded, err := json.Marshal(result) - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - - if string(encoded) != s.expectJson { - t.Errorf("(%d), Expected %v, got %v", i, s.expectJson, string(encoded)) - } - } -} - -// ------------------------------------------------------------------- - -type fieldOptionsScenario struct { - name string - options schema.FieldOptions - expectedErrors []string -} - -func checkFieldOptionsScenarios(t *testing.T, scenarios []fieldOptionsScenario) { - for i, s := range scenarios { - result := s.options.Validate() - - prefix := fmt.Sprintf("%d", i) - if s.name != "" { - prefix = s.name - } - - // parse errors - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("[%s] Failed to parse errors %v", prefix, result) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("[%s] Expected error keys %v, got %v", prefix, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("[%s] Missing expected error key %q in %v", prefix, k, errs) - } - } - } -} - -func TestTextOptionsValidate(t *testing.T) { - minus := -1 - number0 := 0 - number1 := 10 - number2 := 20 - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.TextOptions{}, - []string{}, - }, - { - "min - failure", - schema.TextOptions{ - Min: &minus, - }, - []string{"min"}, - }, - { - "min - success", - schema.TextOptions{ - Min: &number0, - }, - []string{}, - }, - { - "max - failure without min", - schema.TextOptions{ - Max: &minus, - }, - []string{"max"}, - }, - { - "max - failure with min", - schema.TextOptions{ - Min: &number2, - Max: &number1, - }, - []string{"max"}, - }, - { - "max - success", - schema.TextOptions{ - Min: &number1, - Max: &number2, - }, - []string{}, - }, - { - "pattern - failure", - schema.TextOptions{Pattern: "(test"}, - []string{"pattern"}, - }, - { - "pattern - success", - schema.TextOptions{Pattern: `^\#?\w+$`}, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestNumberOptionsValidate(t *testing.T) { - number1 := 10.0 - number2 := 20.0 - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.NumberOptions{}, - []string{}, - }, - { - "max - without min", - schema.NumberOptions{ - Max: &number1, - }, - []string{}, - }, - { - "max - failure with min", - schema.NumberOptions{ - Min: &number2, - Max: &number1, - }, - []string{"max"}, - }, - { - "max - success with min", - schema.NumberOptions{ - Min: &number1, - Max: &number2, - }, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestBoolOptionsValidate(t *testing.T) { - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.BoolOptions{}, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestEmailOptionsValidate(t *testing.T) { - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.EmailOptions{}, - []string{}, - }, - { - "ExceptDomains failure", - schema.EmailOptions{ - ExceptDomains: []string{"invalid"}, - }, - []string{"exceptDomains"}, - }, - { - "ExceptDomains success", - schema.EmailOptions{ - ExceptDomains: []string{"example.com", "sub.example.com"}, - }, - []string{}, - }, - { - "OnlyDomains check", - schema.EmailOptions{ - OnlyDomains: []string{"invalid"}, - }, - []string{"onlyDomains"}, - }, - { - "OnlyDomains success", - schema.EmailOptions{ - OnlyDomains: []string{"example.com", "sub.example.com"}, - }, - []string{}, - }, - { - "OnlyDomains + ExceptDomains at the same time", - schema.EmailOptions{ - ExceptDomains: []string{"test1.com"}, - OnlyDomains: []string{"test2.com"}, - }, - []string{"exceptDomains", "onlyDomains"}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestUrlOptionsValidate(t *testing.T) { - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.UrlOptions{}, - []string{}, - }, - { - "ExceptDomains failure", - schema.UrlOptions{ - ExceptDomains: []string{"invalid"}, - }, - []string{"exceptDomains"}, - }, - { - "ExceptDomains success", - schema.UrlOptions{ - ExceptDomains: []string{"example.com", "sub.example.com"}, - }, - []string{}, - }, - { - "OnlyDomains check", - schema.UrlOptions{ - OnlyDomains: []string{"invalid"}, - }, - []string{"onlyDomains"}, - }, - { - "OnlyDomains success", - schema.UrlOptions{ - OnlyDomains: []string{"example.com", "sub.example.com"}, - }, - []string{}, - }, - { - "OnlyDomains + ExceptDomains at the same time", - schema.UrlOptions{ - ExceptDomains: []string{"test1.com"}, - OnlyDomains: []string{"test2.com"}, - }, - []string{"exceptDomains", "onlyDomains"}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestDateOptionsValidate(t *testing.T) { - date1 := types.NowDateTime() - date2, _ := types.ParseDateTime(date1.Time().AddDate(1, 0, 0)) - - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.DateOptions{}, - []string{}, - }, - { - "min only", - schema.DateOptions{ - Min: date1, - }, - []string{}, - }, - { - "max only", - schema.DateOptions{ - Min: date1, - }, - []string{}, - }, - { - "zero min + max", - schema.DateOptions{ - Min: types.DateTime{}, - Max: date1, - }, - []string{}, - }, - { - "min + zero max", - schema.DateOptions{ - Min: date1, - Max: types.DateTime{}, - }, - []string{}, - }, - { - "min > max", - schema.DateOptions{ - Min: date2, - Max: date1, - }, - []string{"max"}, - }, - { - "min == max", - schema.DateOptions{ - Min: date1, - Max: date1, - }, - []string{"max"}, - }, - { - "min < max", - schema.DateOptions{ - Min: date1, - Max: date2, - }, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestSelectOptionsValidate(t *testing.T) { - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.SelectOptions{}, - []string{"values", "maxSelect"}, - }, - { - "MaxSelect <= 0", - schema.SelectOptions{ - Values: []string{"test1", "test2"}, - MaxSelect: 0, - }, - []string{"maxSelect"}, - }, - { - "MaxSelect > Values", - schema.SelectOptions{ - Values: []string{"test1", "test2"}, - MaxSelect: 3, - }, - []string{"maxSelect"}, - }, - { - "MaxSelect <= Values", - schema.SelectOptions{ - Values: []string{"test1", "test2"}, - MaxSelect: 2, - }, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestJsonOptionsValidate(t *testing.T) { - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.JsonOptions{}, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestFileOptionsValidate(t *testing.T) { - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.FileOptions{}, - []string{"maxSelect", "maxSize"}, - }, - { - "MaxSelect <= 0 && maxSize <= 0", - schema.FileOptions{ - MaxSize: 0, - MaxSelect: 0, - }, - []string{"maxSelect", "maxSize"}, - }, - { - "MaxSelect > 0 && maxSize > 0", - schema.FileOptions{ - MaxSize: 2, - MaxSelect: 1, - }, - []string{}, - }, - { - "invalid thumbs format", - schema.FileOptions{ - MaxSize: 1, - MaxSelect: 2, - Thumbs: []string{"100", "200x100"}, - }, - []string{"thumbs"}, - }, - { - "invalid thumbs format - zero width and height", - schema.FileOptions{ - MaxSize: 1, - MaxSelect: 2, - Thumbs: []string{"0x0", "0x0t", "0x0b", "0x0f"}, - }, - []string{"thumbs"}, - }, - { - "valid thumbs format", - schema.FileOptions{ - MaxSize: 1, - MaxSelect: 2, - Thumbs: []string{ - "100x100", "200x100", "0x100", "100x0", - "10x10t", "10x10b", "10x10f", - }, - }, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} - -func TestRelationOptionsValidate(t *testing.T) { - scenarios := []fieldOptionsScenario{ - { - "empty", - schema.RelationOptions{}, - []string{"collectionId"}, - }, - { - "empty CollectionId", - schema.RelationOptions{ - CollectionId: "", - MaxSelect: types.Pointer(1), - }, - []string{"collectionId"}, - }, - { - "MaxSelect <= 0", - schema.RelationOptions{ - CollectionId: "abc", - MaxSelect: types.Pointer(0), - }, - []string{"maxSelect"}, - }, - { - "MaxSelect > 0 && non-empty CollectionId", - schema.RelationOptions{ - CollectionId: "abc", - MaxSelect: types.Pointer(1), - }, - []string{}, - }, - } - - checkFieldOptionsScenarios(t, scenarios) -} diff --git a/models/schema/schema_test.go b/models/schema/schema_test.go deleted file mode 100644 index 7642a79a8ca75f36769a36f997ac6c8402803cc1..0000000000000000000000000000000000000000 --- a/models/schema/schema_test.go +++ /dev/null @@ -1,414 +0,0 @@ -package schema_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/models/schema" -) - -func TestNewSchemaAndFields(t *testing.T) { - testSchema := schema.NewSchema( - &schema.SchemaField{Id: "id1", Name: "test1"}, - &schema.SchemaField{Name: "test2"}, - &schema.SchemaField{Id: "id1", Name: "test1_new"}, // should replace the original id1 field - ) - - fields := testSchema.Fields() - - if len(fields) != 2 { - t.Fatalf("Expected 2 fields, got %d (%v)", len(fields), fields) - } - - for _, f := range fields { - if f.Id == "" { - t.Fatalf("Expected field id to be set, found empty id for field %v", f) - } - } - - if fields[0].Name != "test1_new" { - t.Fatalf("Expected field with name test1_new, got %s", fields[0].Name) - } - - if fields[1].Name != "test2" { - t.Fatalf("Expected field with name test2, got %s", fields[1].Name) - } -} - -func TestSchemaInitFieldsOptions(t *testing.T) { - f0 := &schema.SchemaField{Name: "test1", Type: "unknown"} - schema0 := schema.NewSchema(f0) - - err0 := schema0.InitFieldsOptions() - if err0 == nil { - t.Fatalf("Expected unknown field schema to fail, got nil") - } - - // --- - - f1 := &schema.SchemaField{Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{Name: "test2", Type: schema.FieldTypeEmail} - schema1 := schema.NewSchema(f1, f2) - - err1 := schema1.InitFieldsOptions() - if err1 != nil { - t.Fatal(err1) - } - - if _, ok := f1.Options.(*schema.TextOptions); !ok { - t.Fatalf("Failed to init f1 options") - } - - if _, ok := f2.Options.(*schema.EmailOptions); !ok { - t.Fatalf("Failed to init f2 options") - } -} - -func TestSchemaClone(t *testing.T) { - f1 := &schema.SchemaField{Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{Name: "test2", Type: schema.FieldTypeEmail} - s1 := schema.NewSchema(f1, f2) - - s2, err := s1.Clone() - if err != nil { - t.Fatal(err) - } - - s1Encoded, _ := s1.MarshalJSON() - s2Encoded, _ := s2.MarshalJSON() - - if string(s1Encoded) != string(s2Encoded) { - t.Fatalf("Expected the cloned schema to be equal, got %v VS\n %v", s1, s2) - } - - // change in one schema shouldn't result to change in the other - // (aka. check if it is a deep clone) - s1.Fields()[0].Name = "test1_update" - if s2.Fields()[0].Name != "test1" { - t.Fatalf("Expected s2 field name to not change, got %q", s2.Fields()[0].Name) - } -} - -func TestSchemaAsMap(t *testing.T) { - f1 := &schema.SchemaField{Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{Name: "test2", Type: schema.FieldTypeEmail} - testSchema := schema.NewSchema(f1, f2) - - result := testSchema.AsMap() - - if len(result) != 2 { - t.Fatalf("Expected 2 map elements, got %d (%v)", len(result), result) - } - - expectedIndexes := []string{f1.Name, f2.Name} - - for _, index := range expectedIndexes { - if _, ok := result[index]; !ok { - t.Fatalf("Missing index %q", index) - } - } -} - -func TestSchemaGetFieldByName(t *testing.T) { - f1 := &schema.SchemaField{Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{Name: "test2", Type: schema.FieldTypeText} - testSchema := schema.NewSchema(f1, f2) - - // missing field - result1 := testSchema.GetFieldByName("missing") - if result1 != nil { - t.Fatalf("Found unexpected field %v", result1) - } - - // existing field - result2 := testSchema.GetFieldByName("test1") - if result2 == nil || result2.Name != "test1" { - t.Fatalf("Cannot find field with Name 'test1', got %v ", result2) - } -} - -func TestSchemaGetFieldById(t *testing.T) { - f1 := &schema.SchemaField{Id: "id1", Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{Id: "id2", Name: "test2", Type: schema.FieldTypeText} - testSchema := schema.NewSchema(f1, f2) - - // missing field id - result1 := testSchema.GetFieldById("test1") - if result1 != nil { - t.Fatalf("Found unexpected field %v", result1) - } - - // existing field id - result2 := testSchema.GetFieldById("id2") - if result2 == nil || result2.Id != "id2" { - t.Fatalf("Cannot find field with id 'id2', got %v ", result2) - } -} - -func TestSchemaRemoveField(t *testing.T) { - f1 := &schema.SchemaField{Id: "id1", Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{Id: "id2", Name: "test2", Type: schema.FieldTypeText} - f3 := &schema.SchemaField{Id: "id3", Name: "test3", Type: schema.FieldTypeText} - testSchema := schema.NewSchema(f1, f2, f3) - - testSchema.RemoveField("id2") - testSchema.RemoveField("test3") // should do nothing - - expected := []string{"test1", "test3"} - - if len(testSchema.Fields()) != len(expected) { - t.Fatalf("Expected %d, got %d (%v)", len(expected), len(testSchema.Fields()), testSchema) - } - - for _, name := range expected { - if f := testSchema.GetFieldByName(name); f == nil { - t.Fatalf("Missing field %q", name) - } - } -} - -func TestSchemaAddField(t *testing.T) { - f1 := &schema.SchemaField{Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{Id: "f2Id", Name: "test2", Type: schema.FieldTypeText} - f3 := &schema.SchemaField{Id: "f3Id", Name: "test3", Type: schema.FieldTypeText} - testSchema := schema.NewSchema(f1, f2, f3) - - f2New := &schema.SchemaField{Id: "f2Id", Name: "test2_new", Type: schema.FieldTypeEmail} - f4 := &schema.SchemaField{Name: "test4", Type: schema.FieldTypeUrl} - - testSchema.AddField(f2New) - testSchema.AddField(f4) - - if len(testSchema.Fields()) != 4 { - t.Fatalf("Expected %d, got %d (%v)", 4, len(testSchema.Fields()), testSchema) - } - - // check if each field has id - for _, f := range testSchema.Fields() { - if f.Id == "" { - t.Fatalf("Expected field id to be set, found empty id for field %v", f) - } - } - - // check if f2 field was replaced - if f := testSchema.GetFieldById("f2Id"); f == nil || f.Type != schema.FieldTypeEmail { - t.Fatalf("Expected f2 field to be replaced, found %v", f) - } - - // check if f4 was added - if f := testSchema.GetFieldByName("test4"); f == nil || f.Name != "test4" { - t.Fatalf("Expected f4 field to be added, found %v", f) - } -} - -func TestSchemaValidate(t *testing.T) { - // emulate duplicated field ids - duplicatedIdsSchema := schema.NewSchema( - &schema.SchemaField{Id: "id1", Name: "test1", Type: schema.FieldTypeText}, - &schema.SchemaField{Id: "id2", Name: "test2", Type: schema.FieldTypeText}, - ) - duplicatedIdsSchema.Fields()[1].Id = "id1" // manually set existing id - - scenarios := []struct { - schema schema.Schema - expectError bool - }{ - // no fields - { - schema.NewSchema(), - false, - }, - // duplicated field ids - { - duplicatedIdsSchema, - true, - }, - // duplicated field names (case insensitive) - { - schema.NewSchema( - &schema.SchemaField{Name: "test", Type: schema.FieldTypeText}, - &schema.SchemaField{Name: "TeSt", Type: schema.FieldTypeText}, - ), - true, - }, - // failure - base individual fields validation - { - schema.NewSchema( - &schema.SchemaField{Name: "", Type: schema.FieldTypeText}, - ), - true, - }, - // success - base individual fields validation - { - schema.NewSchema( - &schema.SchemaField{Name: "test", Type: schema.FieldTypeText}, - ), - false, - }, - // failure - individual field options validation - { - schema.NewSchema( - &schema.SchemaField{Name: "test", Type: schema.FieldTypeFile}, - ), - true, - }, - // success - individual field options validation - { - schema.NewSchema( - &schema.SchemaField{Name: "test", Type: schema.FieldTypeFile, Options: &schema.FileOptions{MaxSelect: 1, MaxSize: 1}}, - ), - false, - }, - } - - for i, s := range scenarios { - err := s.schema.Validate() - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - } -} - -func TestSchemaMarshalJSON(t *testing.T) { - f1 := &schema.SchemaField{Id: "f1id", Name: "test1", Type: schema.FieldTypeText} - f2 := &schema.SchemaField{ - Id: "f2id", - Name: "test2", - Type: schema.FieldTypeText, - Options: &schema.TextOptions{Pattern: "test"}, - } - testSchema := schema.NewSchema(f1, f2) - - result, err := testSchema.MarshalJSON() - if err != nil { - t.Fatal(err) - } - - expected := `[{"system":false,"id":"f1id","name":"test1","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}},{"system":false,"id":"f2id","name":"test2","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}]` - - if string(result) != expected { - t.Fatalf("Expected %s, got %s", expected, string(result)) - } -} - -func TestSchemaUnmarshalJSON(t *testing.T) { - encoded := `[{"system":false,"id":"fid1", "name":"test1","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}},{"system":false,"name":"test2","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}]` - testSchema := schema.Schema{} - testSchema.AddField(&schema.SchemaField{Name: "tempField", Type: schema.FieldTypeUrl}) - err := testSchema.UnmarshalJSON([]byte(encoded)) - if err != nil { - t.Fatal(err) - } - - fields := testSchema.Fields() - if len(fields) != 2 { - t.Fatalf("Expected 2 fields, found %v", fields) - } - - f1 := testSchema.GetFieldByName("test1") - if f1 == nil { - t.Fatal("Expected to find field 'test1', got nil") - } - if f1.Id != "fid1" { - t.Fatalf("Expected fid1 id, got %s", f1.Id) - } - _, ok := f1.Options.(*schema.TextOptions) - if !ok { - t.Fatal("'test1' field options are not inited.") - } - - f2 := testSchema.GetFieldByName("test2") - if f2 == nil { - t.Fatal("Expected to find field 'test2', got nil") - } - if f2.Id == "" { - t.Fatal("Expected f2 id to be set, got empty string") - } - o2, ok := f2.Options.(*schema.TextOptions) - if !ok { - t.Fatal("'test2' field options are not inited.") - } - if o2.Pattern != "test" { - t.Fatalf("Expected pattern to be %q, got %q", "test", o2.Pattern) - } -} - -func TestSchemaValue(t *testing.T) { - // empty schema - s1 := schema.Schema{} - v1, err := s1.Value() - if err != nil { - t.Fatal(err) - } - if v1 != "[]" { - t.Fatalf("Expected nil, got %v", v1) - } - - // schema with fields - f1 := &schema.SchemaField{Id: "f1id", Name: "test1", Type: schema.FieldTypeText} - s2 := schema.NewSchema(f1) - - v2, err := s2.Value() - if err != nil { - t.Fatal(err) - } - expected := `[{"system":false,"id":"f1id","name":"test1","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}}]` - - if v2 != expected { - t.Fatalf("Expected %v, got %v", expected, v2) - } -} - -func TestSchemaScan(t *testing.T) { - scenarios := []struct { - data any - expectError bool - expectJson string - }{ - {nil, false, "[]"}, - {"", false, "[]"}, - {[]byte{}, false, "[]"}, - {"[]", false, "[]"}, - {"invalid", true, "[]"}, - {123, true, "[]"}, - // no field type - {`[{}]`, true, `[]`}, - // unknown field type - { - `[{"system":false,"id":"123","name":"test1","type":"unknown","required":false,"unique":false}]`, - true, - `[]`, - }, - // without options - { - `[{"system":false,"id":"123","name":"test1","type":"text","required":false,"unique":false}]`, - false, - `[{"system":false,"id":"123","name":"test1","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":""}}]`, - }, - // with options - { - `[{"system":false,"id":"123","name":"test1","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}]`, - false, - `[{"system":false,"id":"123","name":"test1","type":"text","required":false,"unique":false,"options":{"min":null,"max":null,"pattern":"test"}}]`, - }, - } - - for i, s := range scenarios { - testSchema := schema.Schema{} - - err := testSchema.Scan(s.data) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - json, _ := testSchema.MarshalJSON() - if string(json) != s.expectJson { - t.Errorf("(%d) Expected json %v, got %v", i, s.expectJson, string(json)) - } - } -} diff --git a/models/settings/settings.go b/models/settings/settings.go deleted file mode 100644 index 481968cac481063de8467f6dbb8c1716311c75fa..0000000000000000000000000000000000000000 --- a/models/settings/settings.go +++ /dev/null @@ -1,490 +0,0 @@ -package settings - -import ( - "encoding/json" - "errors" - "fmt" - "strings" - "sync" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/go-ozzo/ozzo-validation/v4/is" - "github.com/pocketbase/pocketbase/tools/auth" - "github.com/pocketbase/pocketbase/tools/rest" - "github.com/pocketbase/pocketbase/tools/security" -) - -// Settings defines common app configuration options. -type Settings struct { - mux sync.RWMutex - - Meta MetaConfig `form:"meta" json:"meta"` - Logs LogsConfig `form:"logs" json:"logs"` - Smtp SmtpConfig `form:"smtp" json:"smtp"` - S3 S3Config `form:"s3" json:"s3"` - - AdminAuthToken TokenConfig `form:"adminAuthToken" json:"adminAuthToken"` - AdminPasswordResetToken TokenConfig `form:"adminPasswordResetToken" json:"adminPasswordResetToken"` - RecordAuthToken TokenConfig `form:"recordAuthToken" json:"recordAuthToken"` - RecordPasswordResetToken TokenConfig `form:"recordPasswordResetToken" json:"recordPasswordResetToken"` - RecordEmailChangeToken TokenConfig `form:"recordEmailChangeToken" json:"recordEmailChangeToken"` - RecordVerificationToken TokenConfig `form:"recordVerificationToken" json:"recordVerificationToken"` - - // Deprecated: Will be removed in v0.9+ - EmailAuth EmailAuthConfig `form:"emailAuth" json:"emailAuth"` - - GoogleAuth AuthProviderConfig `form:"googleAuth" json:"googleAuth"` - FacebookAuth AuthProviderConfig `form:"facebookAuth" json:"facebookAuth"` - GithubAuth AuthProviderConfig `form:"githubAuth" json:"githubAuth"` - GitlabAuth AuthProviderConfig `form:"gitlabAuth" json:"gitlabAuth"` - DiscordAuth AuthProviderConfig `form:"discordAuth" json:"discordAuth"` - TwitterAuth AuthProviderConfig `form:"twitterAuth" json:"twitterAuth"` - MicrosoftAuth AuthProviderConfig `form:"microsoftAuth" json:"microsoftAuth"` - SpotifyAuth AuthProviderConfig `form:"spotifyAuth" json:"spotifyAuth"` - KakaoAuth AuthProviderConfig `form:"kakaoAuth" json:"kakaoAuth"` - TwitchAuth AuthProviderConfig `form:"twitchAuth" json:"twitchAuth"` -} - -// New creates and returns a new default Settings instance. -func New() *Settings { - return &Settings{ - Meta: MetaConfig{ - AppName: "Acme", - AppUrl: "http://localhost:8090", - HideControls: false, - SenderName: "Support", - SenderAddress: "support@example.com", - VerificationTemplate: defaultVerificationTemplate, - ResetPasswordTemplate: defaultResetPasswordTemplate, - ConfirmEmailChangeTemplate: defaultConfirmEmailChangeTemplate, - }, - Logs: LogsConfig{ - MaxDays: 5, - }, - Smtp: SmtpConfig{ - Enabled: false, - Host: "smtp.example.com", - Port: 587, - Username: "", - Password: "", - Tls: false, - }, - AdminAuthToken: TokenConfig{ - Secret: security.RandomString(50), - Duration: 1209600, // 14 days, - }, - AdminPasswordResetToken: TokenConfig{ - Secret: security.RandomString(50), - Duration: 1800, // 30 minutes, - }, - RecordAuthToken: TokenConfig{ - Secret: security.RandomString(50), - Duration: 1209600, // 14 days, - }, - RecordPasswordResetToken: TokenConfig{ - Secret: security.RandomString(50), - Duration: 1800, // 30 minutes, - }, - RecordVerificationToken: TokenConfig{ - Secret: security.RandomString(50), - Duration: 604800, // 7 days, - }, - RecordEmailChangeToken: TokenConfig{ - Secret: security.RandomString(50), - Duration: 1800, // 30 minutes, - }, - GoogleAuth: AuthProviderConfig{ - Enabled: false, - }, - FacebookAuth: AuthProviderConfig{ - Enabled: false, - }, - GithubAuth: AuthProviderConfig{ - Enabled: false, - }, - GitlabAuth: AuthProviderConfig{ - Enabled: false, - }, - DiscordAuth: AuthProviderConfig{ - Enabled: false, - }, - TwitterAuth: AuthProviderConfig{ - Enabled: false, - }, - MicrosoftAuth: AuthProviderConfig{ - Enabled: false, - }, - SpotifyAuth: AuthProviderConfig{ - Enabled: false, - }, - KakaoAuth: AuthProviderConfig{ - Enabled: false, - }, - TwitchAuth: AuthProviderConfig{ - Enabled: false, - }, - } -} - -// Validate makes Settings validatable by implementing [validation.Validatable] interface. -func (s *Settings) Validate() error { - s.mux.Lock() - defer s.mux.Unlock() - - return validation.ValidateStruct(s, - validation.Field(&s.Meta), - validation.Field(&s.Logs), - validation.Field(&s.AdminAuthToken), - validation.Field(&s.AdminPasswordResetToken), - validation.Field(&s.RecordAuthToken), - validation.Field(&s.RecordPasswordResetToken), - validation.Field(&s.RecordEmailChangeToken), - validation.Field(&s.RecordVerificationToken), - validation.Field(&s.Smtp), - validation.Field(&s.S3), - validation.Field(&s.GoogleAuth), - validation.Field(&s.FacebookAuth), - validation.Field(&s.GithubAuth), - validation.Field(&s.GitlabAuth), - validation.Field(&s.DiscordAuth), - validation.Field(&s.TwitterAuth), - validation.Field(&s.MicrosoftAuth), - validation.Field(&s.SpotifyAuth), - validation.Field(&s.KakaoAuth), - validation.Field(&s.TwitchAuth), - ) -} - -// Merge merges `other` settings into the current one. -func (s *Settings) Merge(other *Settings) error { - s.mux.Lock() - defer s.mux.Unlock() - - bytes, err := json.Marshal(other) - if err != nil { - return err - } - - return json.Unmarshal(bytes, s) -} - -// Clone creates a new deep copy of the current settings. -func (s *Settings) Clone() (*Settings, error) { - clone := &Settings{} - if err := clone.Merge(s); err != nil { - return nil, err - } - return clone, nil -} - -// RedactClone creates a new deep copy of the current settings, -// while replacing the secret values with `******`. -func (s *Settings) RedactClone() (*Settings, error) { - clone, err := s.Clone() - if err != nil { - return nil, err - } - - mask := "******" - - sensitiveFields := []*string{ - &clone.Smtp.Password, - &clone.S3.Secret, - &clone.AdminAuthToken.Secret, - &clone.AdminPasswordResetToken.Secret, - &clone.RecordAuthToken.Secret, - &clone.RecordPasswordResetToken.Secret, - &clone.RecordEmailChangeToken.Secret, - &clone.RecordVerificationToken.Secret, - &clone.GoogleAuth.ClientSecret, - &clone.FacebookAuth.ClientSecret, - &clone.GithubAuth.ClientSecret, - &clone.GitlabAuth.ClientSecret, - &clone.DiscordAuth.ClientSecret, - &clone.TwitterAuth.ClientSecret, - &clone.MicrosoftAuth.ClientSecret, - &clone.SpotifyAuth.ClientSecret, - &clone.KakaoAuth.ClientSecret, - &clone.TwitchAuth.ClientSecret, - } - - // mask all sensitive fields - for _, v := range sensitiveFields { - if v != nil && *v != "" { - *v = mask - } - } - - return clone, nil -} - -// NamedAuthProviderConfigs returns a map with all registered OAuth2 -// provider configurations (indexed by their name identifier). -func (s *Settings) NamedAuthProviderConfigs() map[string]AuthProviderConfig { - s.mux.RLock() - defer s.mux.RUnlock() - - return map[string]AuthProviderConfig{ - auth.NameGoogle: s.GoogleAuth, - auth.NameFacebook: s.FacebookAuth, - auth.NameGithub: s.GithubAuth, - auth.NameGitlab: s.GitlabAuth, - auth.NameDiscord: s.DiscordAuth, - auth.NameTwitter: s.TwitterAuth, - auth.NameMicrosoft: s.MicrosoftAuth, - auth.NameSpotify: s.SpotifyAuth, - auth.NameKakao: s.KakaoAuth, - auth.NameTwitch: s.TwitchAuth, - } -} - -// ------------------------------------------------------------------- - -type TokenConfig struct { - Secret string `form:"secret" json:"secret"` - Duration int64 `form:"duration" json:"duration"` -} - -// Validate makes TokenConfig validatable by implementing [validation.Validatable] interface. -func (c TokenConfig) Validate() error { - return validation.ValidateStruct(&c, - validation.Field(&c.Secret, validation.Required, validation.Length(30, 300)), - validation.Field(&c.Duration, validation.Required, validation.Min(5), validation.Max(63072000)), - ) -} - -// ------------------------------------------------------------------- - -type SmtpConfig struct { - Enabled bool `form:"enabled" json:"enabled"` - Host string `form:"host" json:"host"` - Port int `form:"port" json:"port"` - Username string `form:"username" json:"username"` - Password string `form:"password" json:"password"` - - // Whether to enforce TLS encryption for the mail server connection. - // - // When set to false StartTLS command is send, leaving the server - // to decide whether to upgrade the connection or not. - Tls bool `form:"tls" json:"tls"` -} - -// Validate makes SmtpConfig validatable by implementing [validation.Validatable] interface. -func (c SmtpConfig) Validate() error { - return validation.ValidateStruct(&c, - validation.Field(&c.Host, is.Host, validation.When(c.Enabled, validation.Required)), - validation.Field(&c.Port, validation.When(c.Enabled, validation.Required), validation.Min(0)), - ) -} - -// ------------------------------------------------------------------- - -type S3Config struct { - Enabled bool `form:"enabled" json:"enabled"` - Bucket string `form:"bucket" json:"bucket"` - Region string `form:"region" json:"region"` - Endpoint string `form:"endpoint" json:"endpoint"` - AccessKey string `form:"accessKey" json:"accessKey"` - Secret string `form:"secret" json:"secret"` - ForcePathStyle bool `form:"forcePathStyle" json:"forcePathStyle"` -} - -// Validate makes S3Config validatable by implementing [validation.Validatable] interface. -func (c S3Config) Validate() error { - return validation.ValidateStruct(&c, - validation.Field(&c.Endpoint, is.URL, validation.When(c.Enabled, validation.Required)), - validation.Field(&c.Bucket, validation.When(c.Enabled, validation.Required)), - validation.Field(&c.Region, validation.When(c.Enabled, validation.Required)), - validation.Field(&c.AccessKey, validation.When(c.Enabled, validation.Required)), - validation.Field(&c.Secret, validation.When(c.Enabled, validation.Required)), - ) -} - -// ------------------------------------------------------------------- - -type MetaConfig struct { - AppName string `form:"appName" json:"appName"` - AppUrl string `form:"appUrl" json:"appUrl"` - HideControls bool `form:"hideControls" json:"hideControls"` - SenderName string `form:"senderName" json:"senderName"` - SenderAddress string `form:"senderAddress" json:"senderAddress"` - VerificationTemplate EmailTemplate `form:"verificationTemplate" json:"verificationTemplate"` - ResetPasswordTemplate EmailTemplate `form:"resetPasswordTemplate" json:"resetPasswordTemplate"` - ConfirmEmailChangeTemplate EmailTemplate `form:"confirmEmailChangeTemplate" json:"confirmEmailChangeTemplate"` -} - -// Validate makes MetaConfig validatable by implementing [validation.Validatable] interface. -func (c MetaConfig) Validate() error { - return validation.ValidateStruct(&c, - validation.Field(&c.AppName, validation.Required, validation.Length(1, 255)), - validation.Field(&c.AppUrl, validation.Required, is.URL), - validation.Field(&c.SenderName, validation.Required, validation.Length(1, 255)), - validation.Field(&c.SenderAddress, is.EmailFormat, validation.Required), - validation.Field(&c.VerificationTemplate, validation.Required), - validation.Field(&c.ResetPasswordTemplate, validation.Required), - validation.Field(&c.ConfirmEmailChangeTemplate, validation.Required), - ) -} - -type EmailTemplate struct { - Body string `form:"body" json:"body"` - Subject string `form:"subject" json:"subject"` - ActionUrl string `form:"actionUrl" json:"actionUrl"` -} - -// Validate makes EmailTemplate validatable by implementing [validation.Validatable] interface. -func (t EmailTemplate) Validate() error { - return validation.ValidateStruct(&t, - validation.Field(&t.Subject, validation.Required), - validation.Field( - &t.Body, - validation.Required, - validation.By(checkPlaceholderParams(EmailPlaceholderActionUrl)), - ), - validation.Field( - &t.ActionUrl, - validation.Required, - validation.By(checkPlaceholderParams(EmailPlaceholderToken)), - ), - ) -} - -func checkPlaceholderParams(params ...string) validation.RuleFunc { - return func(value any) error { - v, _ := value.(string) - - for _, param := range params { - if !strings.Contains(v, param) { - return validation.NewError( - "validation_missing_required_param", - fmt.Sprintf("Missing required parameter %q", param), - ) - } - } - - return nil - } -} - -// Resolve replaces the placeholder parameters in the current email -// template and returns its components as ready-to-use strings. -func (t EmailTemplate) Resolve( - appName string, - appUrl, - token string, -) (subject, body, actionUrl string) { - // replace action url placeholder params (if any) - actionUrlParams := map[string]string{ - EmailPlaceholderAppName: appName, - EmailPlaceholderAppUrl: appUrl, - EmailPlaceholderToken: token, - } - actionUrl = t.ActionUrl - for k, v := range actionUrlParams { - actionUrl = strings.ReplaceAll(actionUrl, k, v) - } - actionUrl, _ = rest.NormalizeUrl(actionUrl) - - // replace body placeholder params (if any) - bodyParams := map[string]string{ - EmailPlaceholderAppName: appName, - EmailPlaceholderAppUrl: appUrl, - EmailPlaceholderToken: token, - EmailPlaceholderActionUrl: actionUrl, - } - body = t.Body - for k, v := range bodyParams { - body = strings.ReplaceAll(body, k, v) - } - - // replace subject placeholder params (if any) - subjectParams := map[string]string{ - EmailPlaceholderAppName: appName, - EmailPlaceholderAppUrl: appUrl, - } - subject = t.Subject - for k, v := range subjectParams { - subject = strings.ReplaceAll(subject, k, v) - } - - return subject, body, actionUrl -} - -// ------------------------------------------------------------------- - -type LogsConfig struct { - MaxDays int `form:"maxDays" json:"maxDays"` -} - -// Validate makes LogsConfig validatable by implementing [validation.Validatable] interface. -func (c LogsConfig) Validate() error { - return validation.ValidateStruct(&c, - validation.Field(&c.MaxDays, validation.Min(0)), - ) -} - -// ------------------------------------------------------------------- - -type AuthProviderConfig struct { - Enabled bool `form:"enabled" json:"enabled"` - ClientId string `form:"clientId" json:"clientId,omitempty"` - ClientSecret string `form:"clientSecret" json:"clientSecret,omitempty"` - AuthUrl string `form:"authUrl" json:"authUrl,omitempty"` - TokenUrl string `form:"tokenUrl" json:"tokenUrl,omitempty"` - UserApiUrl string `form:"userApiUrl" json:"userApiUrl,omitempty"` -} - -// Validate makes `ProviderConfig` validatable by implementing [validation.Validatable] interface. -func (c AuthProviderConfig) Validate() error { - return validation.ValidateStruct(&c, - validation.Field(&c.ClientId, validation.When(c.Enabled, validation.Required)), - validation.Field(&c.ClientSecret, validation.When(c.Enabled, validation.Required)), - validation.Field(&c.AuthUrl, is.URL), - validation.Field(&c.TokenUrl, is.URL), - validation.Field(&c.UserApiUrl, is.URL), - ) -} - -// SetupProvider loads the current AuthProviderConfig into the specified provider. -func (c AuthProviderConfig) SetupProvider(provider auth.Provider) error { - if !c.Enabled { - return errors.New("The provider is not enabled.") - } - - if c.ClientId != "" { - provider.SetClientId(c.ClientId) - } - - if c.ClientSecret != "" { - provider.SetClientSecret(c.ClientSecret) - } - - if c.AuthUrl != "" { - provider.SetAuthUrl(c.AuthUrl) - } - - if c.UserApiUrl != "" { - provider.SetUserApiUrl(c.UserApiUrl) - } - - if c.TokenUrl != "" { - provider.SetTokenUrl(c.TokenUrl) - } - - return nil -} - -// ------------------------------------------------------------------- - -// Deprecated: Will be removed in v0.9+ -type EmailAuthConfig struct { - Enabled bool `form:"enabled" json:"enabled"` - ExceptDomains []string `form:"exceptDomains" json:"exceptDomains"` - OnlyDomains []string `form:"onlyDomains" json:"onlyDomains"` - MinPasswordLength int `form:"minPasswordLength" json:"minPasswordLength"` -} - -// Deprecated: Will be removed in v0.9+ -func (c EmailAuthConfig) Validate() error { - return nil -} diff --git a/models/settings/settings_templates.go b/models/settings/settings_templates.go deleted file mode 100644 index a0f913a38c320df9741a47516a15b3d5c31317ca..0000000000000000000000000000000000000000 --- a/models/settings/settings_templates.go +++ /dev/null @@ -1,54 +0,0 @@ -package settings - -// Common settings placeholder tokens -const ( - EmailPlaceholderAppName string = "{APP_NAME}" - EmailPlaceholderAppUrl string = "{APP_URL}" - EmailPlaceholderToken string = "{TOKEN}" - EmailPlaceholderActionUrl string = "{ACTION_URL}" -) - -var defaultVerificationTemplate = EmailTemplate{ - Subject: "Verify your " + EmailPlaceholderAppName + " email", - Body: `

Hello,

-

Thank you for joining us at ` + EmailPlaceholderAppName + `.

-

Click on the button below to verify your email address.

-

- Verify -

-

- Thanks,
- ` + EmailPlaceholderAppName + ` team -

`, - ActionUrl: EmailPlaceholderAppUrl + "/_/#/auth/confirm-verification/" + EmailPlaceholderToken, -} - -var defaultResetPasswordTemplate = EmailTemplate{ - Subject: "Reset your " + EmailPlaceholderAppName + " password", - Body: `

Hello,

-

Click on the button below to reset your password.

-

- Reset password -

-

If you didn't ask to reset your password, you can ignore this email.

-

- Thanks,
- ` + EmailPlaceholderAppName + ` team -

`, - ActionUrl: EmailPlaceholderAppUrl + "/_/#/auth/confirm-password-reset/" + EmailPlaceholderToken, -} - -var defaultConfirmEmailChangeTemplate = EmailTemplate{ - Subject: "Confirm your " + EmailPlaceholderAppName + " new email address", - Body: `

Hello,

-

Click on the button below to confirm your new email address.

-

- Confirm new email -

-

If you didn't ask to change your email address, you can ignore this email.

-

- Thanks,
- ` + EmailPlaceholderAppName + ` team -

`, - ActionUrl: EmailPlaceholderAppUrl + "/_/#/auth/confirm-email-change/" + EmailPlaceholderToken, -} diff --git a/models/settings/settings_test.go b/models/settings/settings_test.go deleted file mode 100644 index 044b39fe423f025a471e8be036b4709efc6efa9f..0000000000000000000000000000000000000000 --- a/models/settings/settings_test.go +++ /dev/null @@ -1,761 +0,0 @@ -package settings_test - -import ( - "encoding/json" - "fmt" - "strings" - "testing" - - validation "github.com/go-ozzo/ozzo-validation/v4" - "github.com/pocketbase/pocketbase/models/settings" - "github.com/pocketbase/pocketbase/tools/auth" -) - -func TestSettingsValidate(t *testing.T) { - s := settings.New() - - // set invalid settings data - s.Meta.AppName = "" - s.Logs.MaxDays = -10 - s.Smtp.Enabled = true - s.Smtp.Host = "" - s.S3.Enabled = true - s.S3.Endpoint = "invalid" - s.AdminAuthToken.Duration = -10 - s.AdminPasswordResetToken.Duration = -10 - s.RecordAuthToken.Duration = -10 - s.RecordPasswordResetToken.Duration = -10 - s.RecordEmailChangeToken.Duration = -10 - s.RecordVerificationToken.Duration = -10 - s.GoogleAuth.Enabled = true - s.GoogleAuth.ClientId = "" - s.FacebookAuth.Enabled = true - s.FacebookAuth.ClientId = "" - s.GithubAuth.Enabled = true - s.GithubAuth.ClientId = "" - s.GitlabAuth.Enabled = true - s.GitlabAuth.ClientId = "" - s.DiscordAuth.Enabled = true - s.DiscordAuth.ClientId = "" - s.TwitterAuth.Enabled = true - s.TwitterAuth.ClientId = "" - s.MicrosoftAuth.Enabled = true - s.MicrosoftAuth.ClientId = "" - s.SpotifyAuth.Enabled = true - s.SpotifyAuth.ClientId = "" - s.KakaoAuth.Enabled = true - s.KakaoAuth.ClientId = "" - s.TwitchAuth.Enabled = true - s.TwitchAuth.ClientId = "" - - // check if Validate() is triggering the members validate methods. - err := s.Validate() - if err == nil { - t.Fatalf("Expected error, got nil") - } - - expectations := []string{ - `"meta":{`, - `"logs":{`, - `"smtp":{`, - `"s3":{`, - `"adminAuthToken":{`, - `"adminPasswordResetToken":{`, - `"recordAuthToken":{`, - `"recordPasswordResetToken":{`, - `"recordEmailChangeToken":{`, - `"recordVerificationToken":{`, - `"googleAuth":{`, - `"facebookAuth":{`, - `"githubAuth":{`, - `"gitlabAuth":{`, - `"discordAuth":{`, - `"twitterAuth":{`, - `"microsoftAuth":{`, - `"spotifyAuth":{`, - `"kakaoAuth":{`, - `"twitchAuth":{`, - } - - errBytes, _ := json.Marshal(err) - jsonErr := string(errBytes) - for _, expected := range expectations { - if !strings.Contains(jsonErr, expected) { - t.Errorf("Expected error key %s in %v", expected, jsonErr) - } - } -} - -func TestSettingsMerge(t *testing.T) { - s1 := settings.New() - s1.Meta.AppUrl = "old_app_url" - - s2 := settings.New() - s2.Meta.AppName = "test" - s2.Logs.MaxDays = 123 - s2.Smtp.Host = "test" - s2.Smtp.Enabled = true - s2.S3.Enabled = true - s2.S3.Endpoint = "test" - s2.AdminAuthToken.Duration = 1 - s2.AdminPasswordResetToken.Duration = 2 - s2.RecordAuthToken.Duration = 3 - s2.RecordPasswordResetToken.Duration = 4 - s2.RecordEmailChangeToken.Duration = 5 - s2.RecordVerificationToken.Duration = 6 - s2.GoogleAuth.Enabled = true - s2.GoogleAuth.ClientId = "google_test" - s2.FacebookAuth.Enabled = true - s2.FacebookAuth.ClientId = "facebook_test" - s2.GithubAuth.Enabled = true - s2.GithubAuth.ClientId = "github_test" - s2.GitlabAuth.Enabled = true - s2.GitlabAuth.ClientId = "gitlab_test" - s2.DiscordAuth.Enabled = true - s2.DiscordAuth.ClientId = "discord_test" - s2.TwitterAuth.Enabled = true - s2.TwitterAuth.ClientId = "twitter_test" - s2.MicrosoftAuth.Enabled = true - s2.MicrosoftAuth.ClientId = "microsoft_test" - s2.SpotifyAuth.Enabled = true - s2.SpotifyAuth.ClientId = "spotify_test" - s2.KakaoAuth.Enabled = true - s2.KakaoAuth.ClientId = "kakao_test" - s2.TwitchAuth.Enabled = true - s2.TwitchAuth.ClientId = "twitch_test" - - if err := s1.Merge(s2); err != nil { - t.Fatal(err) - } - - s1Encoded, err := json.Marshal(s1) - if err != nil { - t.Fatal(err) - } - - s2Encoded, err := json.Marshal(s2) - if err != nil { - t.Fatal(err) - } - - if string(s1Encoded) != string(s2Encoded) { - t.Fatalf("Expected the same serialization, got %v VS %v", string(s1Encoded), string(s2Encoded)) - } -} - -func TestSettingsClone(t *testing.T) { - s1 := settings.New() - - s2, err := s1.Clone() - if err != nil { - t.Fatal(err) - } - - s1Bytes, err := json.Marshal(s1) - if err != nil { - t.Fatal(err) - } - - s2Bytes, err := json.Marshal(s2) - if err != nil { - t.Fatal(err) - } - - if string(s1Bytes) != string(s2Bytes) { - t.Fatalf("Expected equivalent serialization, got %v VS %v", string(s1Bytes), string(s2Bytes)) - } - - // verify that it is a deep copy - s1.Meta.AppName = "new" - if s1.Meta.AppName == s2.Meta.AppName { - t.Fatalf("Expected s1 and s2 to have different Meta.AppName, got %s", s1.Meta.AppName) - } -} - -func TestSettingsRedactClone(t *testing.T) { - s1 := settings.New() - s1.Meta.AppName = "test123" // control field - s1.Smtp.Password = "test123" - s1.Smtp.Tls = true - s1.S3.Secret = "test123" - s1.AdminAuthToken.Secret = "test123" - s1.AdminPasswordResetToken.Secret = "test123" - s1.RecordAuthToken.Secret = "test123" - s1.RecordPasswordResetToken.Secret = "test123" - s1.RecordEmailChangeToken.Secret = "test123" - s1.RecordVerificationToken.Secret = "test123" - s1.GoogleAuth.ClientSecret = "test123" - s1.FacebookAuth.ClientSecret = "test123" - s1.GithubAuth.ClientSecret = "test123" - s1.GitlabAuth.ClientSecret = "test123" - s1.DiscordAuth.ClientSecret = "test123" - s1.TwitterAuth.ClientSecret = "test123" - s1.MicrosoftAuth.ClientSecret = "test123" - s1.SpotifyAuth.ClientSecret = "test123" - s1.KakaoAuth.ClientSecret = "test123" - s1.TwitchAuth.ClientSecret = "test123" - - s2, err := s1.RedactClone() - if err != nil { - t.Fatal(err) - } - - encoded, err := json.Marshal(s2) - if err != nil { - t.Fatal(err) - } - - expected := `{"meta":{"appName":"test123","appUrl":"http://localhost:8090","hideControls":false,"senderName":"Support","senderAddress":"support@example.com","verificationTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eThank you for joining us at {APP_NAME}.\u003c/p\u003e\n\u003cp\u003eClick on the button below to verify your email address.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eVerify\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Verify your {APP_NAME} email","actionUrl":"{APP_URL}/_/#/auth/confirm-verification/{TOKEN}"},"resetPasswordTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to reset your password.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eReset password\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to reset your password, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Reset your {APP_NAME} password","actionUrl":"{APP_URL}/_/#/auth/confirm-password-reset/{TOKEN}"},"confirmEmailChangeTemplate":{"body":"\u003cp\u003eHello,\u003c/p\u003e\n\u003cp\u003eClick on the button below to confirm your new email address.\u003c/p\u003e\n\u003cp\u003e\n \u003ca class=\"btn\" href=\"{ACTION_URL}\" target=\"_blank\" rel=\"noopener\"\u003eConfirm new email\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ci\u003eIf you didn't ask to change your email address, you can ignore this email.\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003e\n Thanks,\u003cbr/\u003e\n {APP_NAME} team\n\u003c/p\u003e","subject":"Confirm your {APP_NAME} new email address","actionUrl":"{APP_URL}/_/#/auth/confirm-email-change/{TOKEN}"}},"logs":{"maxDays":5},"smtp":{"enabled":false,"host":"smtp.example.com","port":587,"username":"","password":"******","tls":true},"s3":{"enabled":false,"bucket":"","region":"","endpoint":"","accessKey":"","secret":"******","forcePathStyle":false},"adminAuthToken":{"secret":"******","duration":1209600},"adminPasswordResetToken":{"secret":"******","duration":1800},"recordAuthToken":{"secret":"******","duration":1209600},"recordPasswordResetToken":{"secret":"******","duration":1800},"recordEmailChangeToken":{"secret":"******","duration":1800},"recordVerificationToken":{"secret":"******","duration":604800},"emailAuth":{"enabled":false,"exceptDomains":null,"onlyDomains":null,"minPasswordLength":0},"googleAuth":{"enabled":false,"clientSecret":"******"},"facebookAuth":{"enabled":false,"clientSecret":"******"},"githubAuth":{"enabled":false,"clientSecret":"******"},"gitlabAuth":{"enabled":false,"clientSecret":"******"},"discordAuth":{"enabled":false,"clientSecret":"******"},"twitterAuth":{"enabled":false,"clientSecret":"******"},"microsoftAuth":{"enabled":false,"clientSecret":"******"},"spotifyAuth":{"enabled":false,"clientSecret":"******"},"kakaoAuth":{"enabled":false,"clientSecret":"******"},"twitchAuth":{"enabled":false,"clientSecret":"******"}}` - - if encodedStr := string(encoded); encodedStr != expected { - t.Fatalf("Expected\n%v\ngot\n%v", expected, encodedStr) - } -} - -func TestNamedAuthProviderConfigs(t *testing.T) { - s := settings.New() - - s.GoogleAuth.ClientId = "google_test" - s.FacebookAuth.ClientId = "facebook_test" - s.GithubAuth.ClientId = "github_test" - s.GitlabAuth.ClientId = "gitlab_test" - s.GitlabAuth.Enabled = true - s.DiscordAuth.ClientId = "discord_test" - s.TwitterAuth.ClientId = "twitter_test" - s.MicrosoftAuth.ClientId = "microsoft_test" - s.SpotifyAuth.ClientId = "spotify_test" - s.KakaoAuth.ClientId = "kakao_test" - s.TwitchAuth.ClientId = "twitch_test" - - result := s.NamedAuthProviderConfigs() - - encoded, err := json.Marshal(result) - if err != nil { - t.Fatal(err) - } - encodedStr := string(encoded) - - expectedParts := []string{ - `"discord":{"enabled":false,"clientId":"discord_test"}`, - `"facebook":{"enabled":false,"clientId":"facebook_test"}`, - `"github":{"enabled":false,"clientId":"github_test"}`, - `"gitlab":{"enabled":true,"clientId":"gitlab_test"}`, - `"google":{"enabled":false,"clientId":"google_test"}`, - `"microsoft":{"enabled":false,"clientId":"microsoft_test"}`, - `"spotify":{"enabled":false,"clientId":"spotify_test"}`, - `"twitter":{"enabled":false,"clientId":"twitter_test"}`, - `"kakao":{"enabled":false,"clientId":"kakao_test"}`, - `"twitch":{"enabled":false,"clientId":"twitch_test"}`, - } - for _, p := range expectedParts { - if !strings.Contains(encodedStr, p) { - t.Fatalf("Expected \n%s \nin \n%s", p, encodedStr) - } - } -} - -func TestTokenConfigValidate(t *testing.T) { - scenarios := []struct { - config settings.TokenConfig - expectError bool - }{ - // zero values - { - settings.TokenConfig{}, - true, - }, - // invalid data - { - settings.TokenConfig{ - Secret: strings.Repeat("a", 5), - Duration: 4, - }, - true, - }, - // valid secret but invalid duration - { - settings.TokenConfig{ - Secret: strings.Repeat("a", 30), - Duration: 63072000 + 1, - }, - true, - }, - // valid data - { - settings.TokenConfig{ - Secret: strings.Repeat("a", 30), - Duration: 100, - }, - false, - }, - } - - for i, scenario := range scenarios { - result := scenario.config.Validate() - - if result != nil && !scenario.expectError { - t.Errorf("(%d) Didn't expect error, got %v", i, result) - } - - if result == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - } -} - -func TestSmtpConfigValidate(t *testing.T) { - scenarios := []struct { - config settings.SmtpConfig - expectError bool - }{ - // zero values (disabled) - { - settings.SmtpConfig{}, - false, - }, - // zero values (enabled) - { - settings.SmtpConfig{Enabled: true}, - true, - }, - // invalid data - { - settings.SmtpConfig{ - Enabled: true, - Host: "test:test:test", - Port: -10, - }, - true, - }, - // valid data - { - settings.SmtpConfig{ - Enabled: true, - Host: "example.com", - Port: 100, - Tls: true, - }, - false, - }, - } - - for i, scenario := range scenarios { - result := scenario.config.Validate() - - if result != nil && !scenario.expectError { - t.Errorf("(%d) Didn't expect error, got %v", i, result) - } - - if result == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - } -} - -func TestS3ConfigValidate(t *testing.T) { - scenarios := []struct { - config settings.S3Config - expectError bool - }{ - // zero values (disabled) - { - settings.S3Config{}, - false, - }, - // zero values (enabled) - { - settings.S3Config{Enabled: true}, - true, - }, - // invalid data - { - settings.S3Config{ - Enabled: true, - Endpoint: "test:test:test", - }, - true, - }, - // valid data (url endpoint) - { - settings.S3Config{ - Enabled: true, - Endpoint: "https://localhost:8090", - Bucket: "test", - Region: "test", - AccessKey: "test", - Secret: "test", - }, - false, - }, - // valid data (hostname endpoint) - { - settings.S3Config{ - Enabled: true, - Endpoint: "example.com", - Bucket: "test", - Region: "test", - AccessKey: "test", - Secret: "test", - }, - false, - }, - } - - for i, scenario := range scenarios { - result := scenario.config.Validate() - - if result != nil && !scenario.expectError { - t.Errorf("(%d) Didn't expect error, got %v", i, result) - } - - if result == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - } -} - -func TestMetaConfigValidate(t *testing.T) { - invalidTemplate := settings.EmailTemplate{ - Subject: "test", - ActionUrl: "test", - Body: "test", - } - - noPlaceholdersTemplate := settings.EmailTemplate{ - Subject: "test", - ActionUrl: "http://example.com", - Body: "test", - } - - withPlaceholdersTemplate := settings.EmailTemplate{ - Subject: "test", - ActionUrl: "http://example.com" + settings.EmailPlaceholderToken, - Body: "test" + settings.EmailPlaceholderActionUrl, - } - - scenarios := []struct { - config settings.MetaConfig - expectError bool - }{ - // zero values - { - settings.MetaConfig{}, - true, - }, - // invalid data - { - settings.MetaConfig{ - AppName: strings.Repeat("a", 300), - AppUrl: "test", - SenderName: strings.Repeat("a", 300), - SenderAddress: "invalid_email", - VerificationTemplate: invalidTemplate, - ResetPasswordTemplate: invalidTemplate, - ConfirmEmailChangeTemplate: invalidTemplate, - }, - true, - }, - // invalid data (missing required placeholders) - { - settings.MetaConfig{ - AppName: "test", - AppUrl: "https://example.com", - SenderName: "test", - SenderAddress: "test@example.com", - VerificationTemplate: noPlaceholdersTemplate, - ResetPasswordTemplate: noPlaceholdersTemplate, - ConfirmEmailChangeTemplate: noPlaceholdersTemplate, - }, - true, - }, - // valid data - { - settings.MetaConfig{ - AppName: "test", - AppUrl: "https://example.com", - SenderName: "test", - SenderAddress: "test@example.com", - VerificationTemplate: withPlaceholdersTemplate, - ResetPasswordTemplate: withPlaceholdersTemplate, - ConfirmEmailChangeTemplate: withPlaceholdersTemplate, - }, - false, - }, - } - - for i, scenario := range scenarios { - result := scenario.config.Validate() - - if result != nil && !scenario.expectError { - t.Errorf("(%d) Didn't expect error, got %v", i, result) - } - - if result == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - } -} - -func TestEmailTemplateValidate(t *testing.T) { - scenarios := []struct { - emailTemplate settings.EmailTemplate - expectedErrors []string - }{ - // require values - { - settings.EmailTemplate{}, - []string{"subject", "actionUrl", "body"}, - }, - // missing placeholders - { - settings.EmailTemplate{ - Subject: "test", - ActionUrl: "test", - Body: "test", - }, - []string{"actionUrl", "body"}, - }, - // valid data - { - settings.EmailTemplate{ - Subject: "test", - ActionUrl: "test" + settings.EmailPlaceholderToken, - Body: "test" + settings.EmailPlaceholderActionUrl, - }, - []string{}, - }, - } - - for i, s := range scenarios { - result := s.emailTemplate.Validate() - - // parse errors - errs, ok := result.(validation.Errors) - if !ok && result != nil { - t.Errorf("(%d) Failed to parse errors %v", i, result) - continue - } - - // check errors - if len(errs) > len(s.expectedErrors) { - t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs) - } - for _, k := range s.expectedErrors { - if _, ok := errs[k]; !ok { - t.Errorf("(%d) Missing expected error key %q in %v", i, k, errs) - } - } - } -} - -func TestEmailTemplateResolve(t *testing.T) { - allPlaceholders := settings.EmailPlaceholderActionUrl + settings.EmailPlaceholderToken + settings.EmailPlaceholderAppName + settings.EmailPlaceholderAppUrl - - scenarios := []struct { - emailTemplate settings.EmailTemplate - expectedSubject string - expectedBody string - expectedActionUrl string - }{ - // no placeholders - { - emailTemplate: settings.EmailTemplate{ - Subject: "subject:", - Body: "body:", - ActionUrl: "/actionUrl////", - }, - expectedSubject: "subject:", - expectedActionUrl: "/actionUrl/", - expectedBody: "body:", - }, - // with placeholders - { - emailTemplate: settings.EmailTemplate{ - ActionUrl: "/actionUrl////" + allPlaceholders, - Subject: "subject:" + allPlaceholders, - Body: "body:" + allPlaceholders, - }, - expectedActionUrl: fmt.Sprintf( - "/actionUrl/%%7BACTION_URL%%7D%s%s%s", - "token_test", - "name_test", - "url_test", - ), - expectedSubject: fmt.Sprintf( - "subject:%s%s%s%s", - settings.EmailPlaceholderActionUrl, - settings.EmailPlaceholderToken, - "name_test", - "url_test", - ), - expectedBody: fmt.Sprintf( - "body:%s%s%s%s", - fmt.Sprintf( - "/actionUrl/%%7BACTION_URL%%7D%s%s%s", - "token_test", - "name_test", - "url_test", - ), - "token_test", - "name_test", - "url_test", - ), - }, - } - - for i, s := range scenarios { - subject, body, actionUrl := s.emailTemplate.Resolve("name_test", "url_test", "token_test") - - if s.expectedSubject != subject { - t.Errorf("(%d) Expected subject %q got %q", i, s.expectedSubject, subject) - } - - if s.expectedBody != body { - t.Errorf("(%d) Expected body \n%v got \n%v", i, s.expectedBody, body) - } - - if s.expectedActionUrl != actionUrl { - t.Errorf("(%d) Expected actionUrl \n%v got \n%v", i, s.expectedActionUrl, actionUrl) - } - } -} - -func TestLogsConfigValidate(t *testing.T) { - scenarios := []struct { - config settings.LogsConfig - expectError bool - }{ - // zero values - { - settings.LogsConfig{}, - false, - }, - // invalid data - { - settings.LogsConfig{MaxDays: -10}, - true, - }, - // valid data - { - settings.LogsConfig{MaxDays: 1}, - false, - }, - } - - for i, scenario := range scenarios { - result := scenario.config.Validate() - - if result != nil && !scenario.expectError { - t.Errorf("(%d) Didn't expect error, got %v", i, result) - } - - if result == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - } -} - -func TestAuthProviderConfigValidate(t *testing.T) { - scenarios := []struct { - config settings.AuthProviderConfig - expectError bool - }{ - // zero values (disabled) - { - settings.AuthProviderConfig{}, - false, - }, - // zero values (enabled) - { - settings.AuthProviderConfig{Enabled: true}, - true, - }, - // invalid data - { - settings.AuthProviderConfig{ - Enabled: true, - ClientId: "", - ClientSecret: "", - AuthUrl: "test", - TokenUrl: "test", - UserApiUrl: "test", - }, - true, - }, - // valid data (only the required) - { - settings.AuthProviderConfig{ - Enabled: true, - ClientId: "test", - ClientSecret: "test", - }, - false, - }, - // valid data (fill all fields) - { - settings.AuthProviderConfig{ - Enabled: true, - ClientId: "test", - ClientSecret: "test", - AuthUrl: "https://example.com", - TokenUrl: "https://example.com", - UserApiUrl: "https://example.com", - }, - false, - }, - } - - for i, scenario := range scenarios { - result := scenario.config.Validate() - - if result != nil && !scenario.expectError { - t.Errorf("(%d) Didn't expect error, got %v", i, result) - } - - if result == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - } -} - -func TestAuthProviderConfigSetupProvider(t *testing.T) { - provider := auth.NewGithubProvider() - - // disabled config - c1 := settings.AuthProviderConfig{Enabled: false} - if err := c1.SetupProvider(provider); err == nil { - t.Errorf("Expected error, got nil") - } - - c2 := settings.AuthProviderConfig{ - Enabled: true, - ClientId: "test_ClientId", - ClientSecret: "test_ClientSecret", - AuthUrl: "test_AuthUrl", - UserApiUrl: "test_UserApiUrl", - TokenUrl: "test_TokenUrl", - } - if err := c2.SetupProvider(provider); err != nil { - t.Error(err) - } - - if provider.ClientId() != c2.ClientId { - t.Fatalf("Expected ClientId %s, got %s", c2.ClientId, provider.ClientId()) - } - - if provider.ClientSecret() != c2.ClientSecret { - t.Fatalf("Expected ClientSecret %s, got %s", c2.ClientSecret, provider.ClientSecret()) - } - - if provider.AuthUrl() != c2.AuthUrl { - t.Fatalf("Expected AuthUrl %s, got %s", c2.AuthUrl, provider.AuthUrl()) - } - - if provider.UserApiUrl() != c2.UserApiUrl { - t.Fatalf("Expected UserApiUrl %s, got %s", c2.UserApiUrl, provider.UserApiUrl()) - } - - if provider.TokenUrl() != c2.TokenUrl { - t.Fatalf("Expected TokenUrl %s, got %s", c2.TokenUrl, provider.TokenUrl()) - } -} diff --git a/plugins/jsvm/migrations.go b/plugins/jsvm/migrations.go deleted file mode 100644 index 2709bf3a01d362343fd822ca54023192553f7015..0000000000000000000000000000000000000000 --- a/plugins/jsvm/migrations.go +++ /dev/null @@ -1,111 +0,0 @@ -package jsvm - -import ( - "os" - "path/filepath" - - "github.com/dop251/goja_nodejs/console" - "github.com/dop251/goja_nodejs/require" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - m "github.com/pocketbase/pocketbase/migrations" -) - -// MigrationsOptions defines optional struct to customize the default migrations loader behavior. -type MigrationsOptions struct { - // Dir specifies the directory with the JS migrations. - // - // If not set it fallbacks to a relative "pb_data/../pb_migrations" directory. - Dir string -} - -// migrations is the migrations loader plugin definition. -// Usually it is instantiated via RegisterMigrations or MustRegisterMigrations. -type migrations struct { - app core.App - options *MigrationsOptions -} - -// -// MustRegisterMigrations registers the migrations loader plugin to -// the provided app instance and panics if it fails. -// -// Internally it calls RegisterMigrations(app, options). -// -// If options is nil, by default the js files from pb_data/migrations are loaded. -// Set custom options.Dir if you want to change it to some other directory. -func MustRegisterMigrations(app core.App, options *MigrationsOptions) { - if err := RegisterMigrations(app, options); err != nil { - panic(err) - } -} - -// RegisterMigrations registers the plugin to the provided app instance. -// -// If options is nil, by default the js files from pb_data/migrations are loaded. -// Set custom options.Dir if you want to change it to some other directory. -func RegisterMigrations(app core.App, options *MigrationsOptions) error { - l := &migrations{app: app} - - if options != nil { - l.options = options - } else { - l.options = &MigrationsOptions{} - } - - if l.options.Dir == "" { - l.options.Dir = filepath.Join(app.DataDir(), "../pb_migrations") - } - - files, err := readDirFiles(l.options.Dir) - if err != nil { - return err - } - - registry := new(require.Registry) // this can be shared by multiple runtimes - - for file, content := range files { - vm := NewBaseVM() - registry.Enable(vm) - console.Enable(vm) - - vm.Set("migrate", func(up, down func(db dbx.Builder) error) { - m.AppMigrations.Register(up, down, file) - }) - - _, err := vm.RunString(string(content)) - if err != nil { - return err - } - } - - return nil -} - -// readDirFiles returns a map with all directory files and their content. -// -// If directory with dirPath is missing, it returns an empty map and no error. -func readDirFiles(dirPath string) (map[string][]byte, error) { - files, err := os.ReadDir(dirPath) - if err != nil { - if os.IsNotExist(err) { - return map[string][]byte{}, nil - } - return nil, err - } - - result := map[string][]byte{} - - for _, f := range files { - if f.IsDir() { - continue - } - raw, err := os.ReadFile(filepath.Join(dirPath, f.Name())) - if err != nil { - return nil, err - } - result[f.Name()] = raw - } - - return result, nil -} diff --git a/plugins/jsvm/vm.go b/plugins/jsvm/vm.go deleted file mode 100644 index 8cd255472dbbde81fea2d677714e6b5669d72302..0000000000000000000000000000000000000000 --- a/plugins/jsvm/vm.go +++ /dev/null @@ -1,206 +0,0 @@ -// Package jsvm implements optional utilities for binding a JS goja runtime -// to the PocketBase instance (loading migrations, attaching to app hooks, etc.). -// -// Currently it provides the following plugins: -// -// 1. JS Migrations loader: -// -// jsvm.MustRegisterMigrations(app, &jsvm.MigrationsOptions{ -// Dir: "custom_js_migrations_dir_path", // default to "pb_data/../pb_migrations" -// }) -package jsvm - -import ( - "encoding/json" - "reflect" - "strings" - "unicode" - - "github.com/dop251/goja" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/apis" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" -) - -func NewBaseVM() *goja.Runtime { - vm := goja.New() - vm.SetFieldNameMapper(FieldMapper{}) - - baseBinds(vm) - dbxBinds(vm) - - return vm -} - -func baseBinds(vm *goja.Runtime) { - vm.Set("unmarshal", func(src map[string]any, dest any) (any, error) { - raw, err := json.Marshal(src) - if err != nil { - return nil, err - } - - if err := json.Unmarshal(raw, &dest); err != nil { - return nil, err - } - - return dest, nil - }) - - vm.Set("Record", func(call goja.ConstructorCall) *goja.Object { - var instance *models.Record - - collection, ok := call.Argument(0).Export().(*models.Collection) - if ok { - instance = models.NewRecord(collection) - data, ok := call.Argument(1).Export().(map[string]any) - if ok { - if raw, err := json.Marshal(data); err == nil { - json.Unmarshal(raw, instance) - } - } - } else { - instance = &models.Record{} - } - - instanceValue := vm.ToValue(instance).(*goja.Object) - instanceValue.SetPrototype(call.This.Prototype()) - - return instanceValue - }) - - vm.Set("Collection", func(call goja.ConstructorCall) *goja.Object { - instance := &models.Collection{} - return defaultConstructor(vm, call, instance) - }) - - vm.Set("Admin", func(call goja.ConstructorCall) *goja.Object { - instance := &models.Admin{} - return defaultConstructor(vm, call, instance) - }) - - vm.Set("Schema", func(call goja.ConstructorCall) *goja.Object { - instance := &schema.Schema{} - return defaultConstructor(vm, call, instance) - }) - - vm.Set("SchemaField", func(call goja.ConstructorCall) *goja.Object { - instance := &schema.SchemaField{} - return defaultConstructor(vm, call, instance) - }) - - vm.Set("Dao", func(call goja.ConstructorCall) *goja.Object { - db, ok := call.Argument(0).Export().(dbx.Builder) - if !ok || db == nil { - panic("missing required Dao(db) argument") - } - - instance := daos.New(db) - instanceValue := vm.ToValue(instance).(*goja.Object) - instanceValue.SetPrototype(call.This.Prototype()) - - return instanceValue - }) -} - -func defaultConstructor(vm *goja.Runtime, call goja.ConstructorCall, instance any) *goja.Object { - if data := call.Argument(0).Export(); data != nil { - if raw, err := json.Marshal(data); err == nil { - json.Unmarshal(raw, instance) - } - } - - instanceValue := vm.ToValue(instance).(*goja.Object) - instanceValue.SetPrototype(call.This.Prototype()) - - return instanceValue -} - -func dbxBinds(vm *goja.Runtime) { - obj := vm.NewObject() - vm.Set("$dbx", obj) - - obj.Set("exp", dbx.NewExp) - obj.Set("hashExp", func(data map[string]any) dbx.HashExp { - exp := dbx.HashExp{} - for k, v := range data { - exp[k] = v - } - return exp - }) - obj.Set("not", dbx.Not) - obj.Set("and", dbx.And) - obj.Set("or", dbx.Or) - obj.Set("in", dbx.In) - obj.Set("notIn", dbx.NotIn) - obj.Set("like", dbx.Like) - obj.Set("orLike", dbx.OrLike) - obj.Set("notLike", dbx.NotLike) - obj.Set("orNotLike", dbx.OrNotLike) - obj.Set("exists", dbx.Exists) - obj.Set("notExists", dbx.NotExists) - obj.Set("between", dbx.Between) - obj.Set("notBetween", dbx.NotBetween) -} - -func apisBind(vm *goja.Runtime) { - obj := vm.NewObject() - vm.Set("$apis", obj) - - // middlewares - obj.Set("requireRecordAuth", apis.RequireRecordAuth) - obj.Set("requireRecordAuth", apis.RequireRecordAuth) - obj.Set("requireSameContextRecordAuth", apis.RequireSameContextRecordAuth) - obj.Set("requireAdminAuth", apis.RequireAdminAuth) - obj.Set("requireAdminAuthOnlyIfAny", apis.RequireAdminAuthOnlyIfAny) - obj.Set("requireAdminOrRecordAuth", apis.RequireAdminOrRecordAuth) - obj.Set("requireAdminOrOwnerAuth", apis.RequireAdminOrOwnerAuth) - obj.Set("activityLogger", apis.ActivityLogger) - - // api errors - obj.Set("notFoundError", apis.NewNotFoundError) - obj.Set("badRequestError", apis.NewBadRequestError) - obj.Set("forbiddenError", apis.NewForbiddenError) - obj.Set("unauthorizedError", apis.NewUnauthorizedError) - - // record helpers - obj.Set("requestData", apis.RequestData) - obj.Set("enrichRecord", apis.EnrichRecord) - obj.Set("enrichRecords", apis.EnrichRecords) -} - -// FieldMapper provides custom mapping between Go and JavaScript property names. -// -// It is similar to the builtin "uncapFieldNameMapper" but also converts -// all uppercase identifiers to their lowercase equivalent (eg. "GET" -> "get"). -type FieldMapper struct { -} - -// FieldName implements the [FieldNameMapper.FieldName] interface method. -func (u FieldMapper) FieldName(_ reflect.Type, f reflect.StructField) string { - return convertGoToJSName(f.Name) -} - -// MethodName implements the [FieldNameMapper.MethodName] interface method. -func (u FieldMapper) MethodName(_ reflect.Type, m reflect.Method) string { - return convertGoToJSName(m.Name) -} - -func convertGoToJSName(name string) string { - allUppercase := true - for _, c := range name { - if c != '_' && !unicode.IsUpper(c) { - allUppercase = false - break - } - } - - // eg. "JSON" -> "json" - if allUppercase { - return strings.ToLower(name) - } - - // eg. "GetField" -> "getField" - return strings.ToLower(name[0:1]) + name[1:] -} diff --git a/plugins/jsvm/vm_test.go b/plugins/jsvm/vm_test.go deleted file mode 100644 index daa890bf6364a646babae240a977914a261cc3dd..0000000000000000000000000000000000000000 --- a/plugins/jsvm/vm_test.go +++ /dev/null @@ -1,268 +0,0 @@ -package jsvm_test - -import ( - "reflect" - "testing" - - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/plugins/jsvm" - "github.com/pocketbase/pocketbase/tests" -) - -func TestBaseVMUnmarshal(t *testing.T) { - vm := jsvm.NewBaseVM() - - v, err := vm.RunString(`unmarshal({ name: "test" }, new Collection())`) - if err != nil { - t.Fatal(err) - } - - m, ok := v.Export().(*models.Collection) - if !ok { - t.Fatalf("Expected models.Collection, got %v", m) - } - - if m.Name != "test" { - t.Fatalf("Expected collection with name %q, got %q", "test", m.Name) - } -} - -func TestBaseVMRecordBind(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("users") - if err != nil { - t.Fatal(err) - } - - vm := jsvm.NewBaseVM() - vm.Set("collection", collection) - - // without record data - // --- - v1, err := vm.RunString(`new Record(collection)`) - if err != nil { - t.Fatal(err) - } - - m1, ok := v1.Export().(*models.Record) - if !ok { - t.Fatalf("Expected m1 to be models.Record, got \n%v", m1) - } - - // with record data - // --- - v2, err := vm.RunString(`new Record(collection, { email: "test@example.com" })`) - if err != nil { - t.Fatal(err) - } - - m2, ok := v2.Export().(*models.Record) - if !ok { - t.Fatalf("Expected m2 to be models.Record, got \n%v", m2) - } - - if m2.Collection().Name != "users" { - t.Fatalf("Expected record with collection %q, got \n%v", "users", m2.Collection()) - } - - if m2.Email() != "test@example.com" { - t.Fatalf("Expected record with email field set to %q, got \n%v", "test@example.com", m2) - } -} - -// @todo enable after https://github.com/dop251/goja/issues/426 -// func TestBaseVMRecordGetAndSetBind(t *testing.T) { -// app, _ := tests.NewTestApp() -// defer app.Cleanup() - -// collection, err := app.Dao().FindCollectionByNameOrId("users") -// if err != nil { -// t.Fatal(err) -// } - -// vm := jsvm.NewBaseVM() -// vm.Set("collection", collection) -// vm.Set("getRecord", func() *models.Record { -// return models.NewRecord(collection) -// }) - -// _, runErr := vm.RunString(` -// const jsRecord = new Record(collection); -// jsRecord.email = "test@example.com"; // test js record setter -// const email = jsRecord.email; // test js record getter - -// const goRecord = getRecord() -// goRecord.name = "test" // test go record setter -// const name = goRecord.name; // test go record getter -// `) -// if runErr != nil { -// t.Fatal(runErr) -// } - -// expectedEmail := "test@example.com" -// expectedName := "test" - -// jsRecord, ok := vm.Get("jsRecord").Export().(*models.Record) -// if !ok { -// t.Fatalf("Failed to export jsRecord") -// } -// if v := jsRecord.Email(); v != expectedEmail { -// t.Fatalf("Expected the js created record to have email %q, got %q", expectedEmail, v) -// } - -// email := vm.Get("email").Export().(string) -// if email != expectedEmail { -// t.Fatalf("Expected exported email %q, got %q", expectedEmail, email) -// } - -// goRecord, ok := vm.Get("goRecord").Export().(*models.Record) -// if !ok { -// t.Fatalf("Failed to export goRecord") -// } -// if v := goRecord.GetString("name"); v != expectedName { -// t.Fatalf("Expected the go created record to have name %q, got %q", expectedName, v) -// } - -// name := vm.Get("name").Export().(string) -// if name != expectedName { -// t.Fatalf("Expected exported name %q, got %q", expectedName, name) -// } - -// // ensure that the two record instances are not mixed -// if v := goRecord.Email(); v != "" { -// t.Fatalf("Expected the go created record to not have an email, got %q", v) -// } -// if v := jsRecord.GetString("name"); v != "" { -// t.Fatalf("Expected the js created record to not have a name, got %q", v) -// } -// } - -func TestBaseVMCollectionBind(t *testing.T) { - vm := jsvm.NewBaseVM() - - v, err := vm.RunString(`new Collection({ name: "test", schema: [{name: "title", "type": "text"}] })`) - if err != nil { - t.Fatal(err) - } - - m, ok := v.Export().(*models.Collection) - if !ok { - t.Fatalf("Expected models.Collection, got %v", m) - } - - if m.Name != "test" { - t.Fatalf("Expected collection with name %q, got %q", "test", m.Name) - } - - if f := m.Schema.GetFieldByName("title"); f == nil { - t.Fatalf("Expected schema to be set, got %v", m.Schema) - } -} - -func TestBaseVMAdminBind(t *testing.T) { - vm := jsvm.NewBaseVM() - - v, err := vm.RunString(`new Admin({ email: "test@example.com" })`) - if err != nil { - t.Fatal(err) - } - - m, ok := v.Export().(*models.Admin) - if !ok { - t.Fatalf("Expected models.Admin, got %v", m) - } -} - -func TestBaseVMSchemaBind(t *testing.T) { - vm := jsvm.NewBaseVM() - - v, err := vm.RunString(`new Schema([{name: "title", "type": "text"}])`) - if err != nil { - t.Fatal(err) - } - - m, ok := v.Export().(*schema.Schema) - if !ok { - t.Fatalf("Expected schema.Schema, got %v", m) - } - - if f := m.GetFieldByName("title"); f == nil { - t.Fatalf("Expected schema fields to be loaded, got %v", m.Fields()) - } -} - -func TestBaseVMSchemaFieldBind(t *testing.T) { - vm := jsvm.NewBaseVM() - - v, err := vm.RunString(`new SchemaField({name: "title", "type": "text"})`) - if err != nil { - t.Fatal(err) - } - - f, ok := v.Export().(*schema.SchemaField) - if !ok { - t.Fatalf("Expected schema.SchemaField, got %v", f) - } - - if f.Name != "title" { - t.Fatalf("Expected field %q, got %v", "title", f) - } -} - -func TestBaseVMDaoBind(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - vm := jsvm.NewBaseVM() - vm.Set("db", app.DB()) - - v, err := vm.RunString(`new Dao(db)`) - if err != nil { - t.Fatal(err) - } - - d, ok := v.Export().(*daos.Dao) - if !ok { - t.Fatalf("Expected daos.Dao, got %v", d) - } - - if d.DB() != app.DB() { - t.Fatalf("The db instances doesn't match") - } -} - -func TestFieldMapper(t *testing.T) { - mapper := jsvm.FieldMapper{} - - scenarios := []struct { - name string - expected string - }{ - {"", ""}, - {"test", "test"}, - {"Test", "test"}, - {"miXeD", "miXeD"}, - {"MiXeD", "miXeD"}, - {"ResolveRequestAsJSON", "resolveRequestAsJSON"}, - {"Variable_with_underscore", "variable_with_underscore"}, - {"ALLCAPS", "allcaps"}, - {"NOTALLCAPs", "nOTALLCAPs"}, - {"ALL_CAPS_WITH_UNDERSCORE", "all_caps_with_underscore"}, - } - - for i, s := range scenarios { - field := reflect.StructField{Name: s.name} - if v := mapper.FieldName(nil, field); v != s.expected { - t.Fatalf("[%d] Expected FieldName %q, got %q", i, s.expected, v) - } - - method := reflect.Method{Name: s.name} - if v := mapper.MethodName(nil, method); v != s.expected { - t.Fatalf("[%d] Expected MethodName %q, got %q", i, s.expected, v) - } - } -} diff --git a/plugins/migratecmd/automigrate.go b/plugins/migratecmd/automigrate.go deleted file mode 100644 index 2853615c3617eb2be028bfcd9b5e8e94e9c2e9d0..0000000000000000000000000000000000000000 --- a/plugins/migratecmd/automigrate.go +++ /dev/null @@ -1,154 +0,0 @@ -package migratecmd - -import ( - "database/sql" - "errors" - "fmt" - "os" - "path/filepath" - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/migrate" -) - -const collectionsCacheKey = "migratecmd_collections" - -// onCollectionChange handles the automigration snapshot generation on -// collection change event (create/update/delete). -func (p *plugin) afterCollectionChange() func(*core.ModelEvent) error { - return func(e *core.ModelEvent) error { - if e.Model.TableName() != "_collections" { - return nil // not a collection - } - - // @todo replace with the OldModel when added to the ModelEvent - oldCollections, err := p.getCachedCollections() - if err != nil { - return err - } - - old := oldCollections[e.Model.GetId()] - - new, err := p.app.Dao().FindCollectionByNameOrId(e.Model.GetId()) - if err != nil && !errors.Is(err, sql.ErrNoRows) { - return err - } - - var template string - var templateErr error - if p.options.TemplateLang == TemplateLangJS { - template, templateErr = p.jsDiffTemplate(new, old) - } else { - template, templateErr = p.goDiffTemplate(new, old) - } - if templateErr != nil { - if errors.Is(templateErr, emptyTemplateErr) { - return nil // no changes - } - return fmt.Errorf("failed to resolve template: %w", templateErr) - } - - var action string - switch { - case new == nil: - action = "deleted_" + old.Name - case old == nil: - action = "created_" + new.Name - default: - action = "updated_" + old.Name - } - - appliedTime := time.Now().Unix() - name := fmt.Sprintf("%d_%s.%s", appliedTime, action, p.options.TemplateLang) - filePath := filepath.Join(p.options.Dir, name) - - return p.app.Dao().RunInTransaction(func(txDao *daos.Dao) error { - // insert the migration entry - _, err := txDao.DB().Insert(migrate.DefaultMigrationsTable, dbx.Params{ - "file": name, - "applied": appliedTime, - }).Execute() - if err != nil { - return err - } - - // ensure that the local migrations dir exist - if err := os.MkdirAll(p.options.Dir, os.ModePerm); err != nil { - return fmt.Errorf("failed to create migration dir: %w", err) - } - - if err := os.WriteFile(filePath, []byte(template), 0644); err != nil { - return fmt.Errorf("failed to save automigrate file: %w", err) - } - - p.updateSingleCachedCollection(new, old) - - return nil - }) - } -} - -func (p *plugin) updateSingleCachedCollection(new, old *models.Collection) { - cached, _ := p.app.Cache().Get(collectionsCacheKey).(map[string]*models.Collection) - - switch { - case new == nil: - delete(cached, old.Id) - default: - cached[new.Id] = new - } - - p.app.Cache().Set(collectionsCacheKey, cached) -} - -func (p *plugin) refreshCachedCollections() error { - if p.app.Dao() == nil { - return errors.New("app is not initialized yet") - } - - var collections []*models.Collection - if err := p.app.Dao().CollectionQuery().All(&collections); err != nil { - return err - } - - cached := map[string]*models.Collection{} - for _, c := range collections { - cached[c.Id] = c - } - - p.app.Cache().Set(collectionsCacheKey, cached) - - return nil -} - -func (p *plugin) getCachedCollections() (map[string]*models.Collection, error) { - if !p.app.Cache().Has(collectionsCacheKey) { - if err := p.refreshCachedCollections(); err != nil { - return nil, err - } - } - - result, _ := p.app.Cache().Get(collectionsCacheKey).(map[string]*models.Collection) - - return result, nil -} - -func (p *plugin) hasCustomMigrations() bool { - files, err := os.ReadDir(p.options.Dir) - if err != nil { - return false - } - - for _, f := range files { - if f.IsDir() { - continue - } - return true - } - - return false -} diff --git a/plugins/migratecmd/migratecmd.go b/plugins/migratecmd/migratecmd.go deleted file mode 100644 index c335235f3b73c3107830ff0ed17af758fe58b928..0000000000000000000000000000000000000000 --- a/plugins/migratecmd/migratecmd.go +++ /dev/null @@ -1,240 +0,0 @@ -// Package migratecmd adds a new "migrate" command support to a PocketBase instance. -// -// It also comes with automigrations support and templates generation -// (both for JS and GO migration files). -// -// Example usage: -// -// migratecmd.MustRegister(app, app.RootCmd, &migratecmd.Options{ -// TemplateLang: migratecmd.TemplateLangJS, // default to migratecmd.TemplateLangGo -// Automigrate: true, -// Dir: "migrations_dir_path", // optional template migrations path; default to "pb_migrations" (for JS) and "migrations" (for Go) -// }) -// -// Note: To allow running JS migrations you'll need to enable first -// [jsvm.MustRegisterMigrations]. -package migratecmd - -import ( - "fmt" - "log" - "os" - "path" - "path/filepath" - "time" - - "github.com/AlecAivazis/survey/v2" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/inflector" - "github.com/pocketbase/pocketbase/tools/migrate" - "github.com/spf13/cobra" -) - -// Options defines optional struct to customize the default plugin behavior. -type Options struct { - // Dir specifies the directory with the user defined migrations. - // - // If not set it fallbacks to a relative "pb_data/../pb_migrations" (for js) - // or "pb_data/../migrations" (for go) directory. - Dir string - - // Automigrate specifies whether to enable automigrations. - Automigrate bool - - // TemplateLang specifies the template language to use when - // generating migrations - js or go (default). - TemplateLang string -} - -type plugin struct { - app core.App - options *Options -} - -func MustRegister(app core.App, rootCmd *cobra.Command, options *Options) { - if err := Register(app, rootCmd, options); err != nil { - panic(err) - } -} - -func Register(app core.App, rootCmd *cobra.Command, options *Options) error { - p := &plugin{app: app} - - if options != nil { - p.options = options - } else { - p.options = &Options{} - } - - if p.options.TemplateLang == "" { - p.options.TemplateLang = TemplateLangGo - } - - if p.options.Dir == "" { - if p.options.TemplateLang == TemplateLangJS { - p.options.Dir = filepath.Join(p.app.DataDir(), "../pb_migrations") - } else { - p.options.Dir = filepath.Join(p.app.DataDir(), "../migrations") - } - } - - // attach the migrate command - if rootCmd != nil { - rootCmd.AddCommand(p.createCommand()) - } - - // watch for collection changes - if p.options.Automigrate { - // refresh the cache right after app bootstap - p.app.OnAfterBootstrap().Add(func(e *core.BootstrapEvent) error { - p.refreshCachedCollections() - return nil - }) - - // refresh the cache to ensure that it constains the latest changes - // when migrations are applied on server start - p.app.OnBeforeServe().Add(func(e *core.ServeEvent) error { - p.refreshCachedCollections() - - cachedCollections, _ := p.getCachedCollections() - // create a full initial snapshot, if there are no custom - // migrations but there is already at least 1 collection created, - // to ensure that the automigrate will work with up-to-date collections data - if !p.hasCustomMigrations() && len(cachedCollections) > 1 { - p.migrateCollectionsHandler(nil, false) - } - - return nil - }) - - p.app.OnModelAfterCreate().Add(p.afterCollectionChange()) - p.app.OnModelAfterUpdate().Add(p.afterCollectionChange()) - p.app.OnModelAfterDelete().Add(p.afterCollectionChange()) - } - - return nil -} - -func (p *plugin) createCommand() *cobra.Command { - const cmdDesc = `Supported arguments are: -- up - runs all available migrations -- down [number] - reverts the last [number] applied migrations -- create name - creates new blank migration template file -- collections - creates new migration file with snapshot of the local collections configuration -` - - command := &cobra.Command{ - Use: "migrate", - Short: "Executes app DB migration scripts", - ValidArgs: []string{"up", "down", "create", "collections"}, - Long: cmdDesc, - Run: func(command *cobra.Command, args []string) { - cmd := "" - if len(args) > 0 { - cmd = args[0] - } - - switch cmd { - case "create": - if err := p.migrateCreateHandler("", args[1:], true); err != nil { - log.Fatal(err) - } - case "collections": - if err := p.migrateCollectionsHandler(args[1:], true); err != nil { - log.Fatal(err) - } - default: - runner, err := migrate.NewRunner(p.app.DB(), migrations.AppMigrations) - if err != nil { - log.Fatal(err) - } - - if err := runner.Run(args...); err != nil { - log.Fatal(err) - } - } - }, - } - - return command -} - -func (p *plugin) migrateCreateHandler(template string, args []string, interactive bool) error { - if len(args) < 1 { - return fmt.Errorf("Missing migration file name") - } - - name := args[0] - dir := p.options.Dir - - resultFilePath := path.Join( - dir, - fmt.Sprintf("%d_%s.%s", time.Now().Unix(), inflector.Snakecase(name), p.options.TemplateLang), - ) - - if interactive { - confirm := false - prompt := &survey.Confirm{ - Message: fmt.Sprintf("Do you really want to create migration %q?", resultFilePath), - } - survey.AskOne(prompt, &confirm) - if !confirm { - fmt.Println("The command has been cancelled") - return nil - } - } - - // get default create template - if template == "" { - var templateErr error - if p.options.TemplateLang == TemplateLangJS { - template, templateErr = p.jsBlankTemplate() - } else { - template, templateErr = p.goBlankTemplate() - } - if templateErr != nil { - return fmt.Errorf("Failed to resolve create template: %v\n", templateErr) - } - } - - // ensure that the migrations dir exist - if err := os.MkdirAll(dir, os.ModePerm); err != nil { - return err - } - - // save the migration file - if err := os.WriteFile(resultFilePath, []byte(template), 0644); err != nil { - return fmt.Errorf("Failed to save migration file %q: %v\n", resultFilePath, err) - } - - if interactive { - fmt.Printf("Successfully created file %q\n", resultFilePath) - } - - return nil -} - -func (p *plugin) migrateCollectionsHandler(args []string, interactive bool) error { - createArgs := []string{"collections_snapshot"} - createArgs = append(createArgs, args...) - - collections := []*models.Collection{} - if err := p.app.Dao().CollectionQuery().OrderBy("created ASC").All(&collections); err != nil { - return fmt.Errorf("Failed to fetch migrations list: %v", err) - } - - var template string - var templateErr error - if p.options.TemplateLang == TemplateLangJS { - template, templateErr = p.jsSnapshotTemplate(collections) - } else { - template, templateErr = p.goSnapshotTemplate(collections) - } - if templateErr != nil { - return fmt.Errorf("Failed to resolve template: %v", templateErr) - } - - return p.migrateCreateHandler(template, createArgs, interactive) -} diff --git a/plugins/migratecmd/migratecmd_test.go b/plugins/migratecmd/migratecmd_test.go deleted file mode 100644 index 4f8e8ff34de6b6c6ffa8491c24b5bad172e86c45..0000000000000000000000000000000000000000 --- a/plugins/migratecmd/migratecmd_test.go +++ /dev/null @@ -1,746 +0,0 @@ -package migratecmd_test - -import ( - "os" - "path/filepath" - "strings" - "testing" - - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/plugins/migratecmd" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestAutomigrateCollectionCreate(t *testing.T) { - scenarios := []struct { - lang string - expectedTemplate string - }{ - { - migratecmd.TemplateLangJS, - ` -migrate((db) => { - const collection = new Collection({ - "id": "new_id", - "created": "2022-01-01 00:00:00.000Z", - "updated": "2022-01-01 00:00:00.000Z", - "name": "new_name", - "type": "auth", - "system": true, - "schema": [], - "listRule": "@request.auth.id != '' && created > 0 || 'backtick` + "`" + `test' = 0", - "viewRule": "id = \"1\"", - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": null, - "manageRule": "created > 0", - "minPasswordLength": 20, - "onlyEmailDomains": null, - "requireEmail": false - } - }); - - return Dao(db).saveCollection(collection); -}, (db) => { - const dao = new Dao(db); - const collection = dao.findCollectionByNameOrId("new_id"); - - return dao.deleteCollection(collection); -}) -`, - }, - { - migratecmd.TemplateLangGo, - ` -package _test_migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := ` + "`" + `{ - "id": "new_id", - "created": "2022-01-01 00:00:00.000Z", - "updated": "2022-01-01 00:00:00.000Z", - "name": "new_name", - "type": "auth", - "system": true, - "schema": [], - "listRule": "@request.auth.id != '' && created > 0 || ` + "'backtick` + \"`\" + `test' = 0" + `", - "viewRule": "id = \"1\"", - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": null, - "manageRule": "created > 0", - "minPasswordLength": 20, - "onlyEmailDomains": null, - "requireEmail": false - } - }` + "`" + ` - - collection := &models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collection); err != nil { - return err - } - - return daos.New(db).SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId("new_id") - if err != nil { - return err - } - - return dao.DeleteCollection(collection) - }) -} -`, - }, - } - - for i, s := range scenarios { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - migrationsDir := filepath.Join(app.DataDir(), "_test_migrations") - - migratecmd.MustRegister(app, nil, &migratecmd.Options{ - TemplateLang: s.lang, - Automigrate: true, - Dir: migrationsDir, - }) - - // @todo remove after collections cache is replaced - app.Bootstrap() - - collection := &models.Collection{} - collection.Id = "new_id" - collection.Name = "new_name" - collection.Type = models.CollectionTypeAuth - collection.System = true - collection.Created, _ = types.ParseDateTime("2022-01-01 00:00:00.000Z") - collection.Updated = collection.Created - collection.ListRule = types.Pointer("@request.auth.id != '' && created > 0 || 'backtick`test' = 0") - collection.ViewRule = types.Pointer(`id = "1"`) - collection.SetOptions(models.CollectionAuthOptions{ - ManageRule: types.Pointer("created > 0"), - MinPasswordLength: 20, - }) - collection.MarkAsNew() - - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatalf("[%d] Failed to save collection, got %v", i, err) - } - - files, err := os.ReadDir(migrationsDir) - if err != nil { - t.Fatalf("[%d] Expected migrationsDir to be created, got: %v", i, err) - } - - if total := len(files); total != 1 { - t.Fatalf("[%d] Expected 1 file to be generated, got %d", i, total) - } - - expectedName := "_created_new_name." + s.lang - if !strings.Contains(files[0].Name(), expectedName) { - t.Fatalf("[%d] Expected filename to contains %q, got %q", i, expectedName, files[0].Name()) - } - - fullPath := filepath.Join(migrationsDir, files[0].Name()) - content, err := os.ReadFile(fullPath) - if err != nil { - t.Fatalf("[%d] Failed to read the generated migration file: %v", i, err) - } - - if v := strings.TrimSpace(string(content)); v != strings.TrimSpace(s.expectedTemplate) { - t.Fatalf("[%d] Expected template \n%v \ngot \n%v", i, s.expectedTemplate, v) - } - } -} - -func TestAutomigrateCollectionDelete(t *testing.T) { - scenarios := []struct { - lang string - expectedTemplate string - }{ - { - migratecmd.TemplateLangJS, - ` -migrate((db) => { - const dao = new Dao(db); - const collection = dao.findCollectionByNameOrId("test123"); - - return dao.deleteCollection(collection); -}, (db) => { - const collection = new Collection({ - "id": "test123", - "created": "2022-01-01 00:00:00.000Z", - "updated": "2022-01-01 00:00:00.000Z", - "name": "test456", - "type": "auth", - "system": false, - "schema": [], - "listRule": "@request.auth.id != '' && created > 0 || 'backtick` + "`" + `test' = 0", - "viewRule": "id = \"1\"", - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": null, - "manageRule": "created > 0", - "minPasswordLength": 20, - "onlyEmailDomains": null, - "requireEmail": false - } - }); - - return Dao(db).saveCollection(collection); -}) -`, - }, - { - migratecmd.TemplateLangGo, - ` -package _test_migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId("test123") - if err != nil { - return err - } - - return dao.DeleteCollection(collection) - }, func(db dbx.Builder) error { - jsonData := ` + "`" + `{ - "id": "test123", - "created": "2022-01-01 00:00:00.000Z", - "updated": "2022-01-01 00:00:00.000Z", - "name": "test456", - "type": "auth", - "system": false, - "schema": [], - "listRule": "@request.auth.id != '' && created > 0 || ` + "'backtick` + \"`\" + `test' = 0" + `", - "viewRule": "id = \"1\"", - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": null, - "manageRule": "created > 0", - "minPasswordLength": 20, - "onlyEmailDomains": null, - "requireEmail": false - } - }` + "`" + ` - - collection := &models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collection); err != nil { - return err - } - - return daos.New(db).SaveCollection(collection) - }) -} -`, - }, - } - - for i, s := range scenarios { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - migrationsDir := filepath.Join(app.DataDir(), "_test_migrations") - - migratecmd.MustRegister(app, nil, &migratecmd.Options{ - TemplateLang: s.lang, - Automigrate: true, - Dir: migrationsDir, - }) - - // create dummy collection - collection := &models.Collection{} - collection.Id = "test123" - collection.Name = "test456" - collection.Type = models.CollectionTypeAuth - collection.Created, _ = types.ParseDateTime("2022-01-01 00:00:00.000Z") - collection.Updated = collection.Created - collection.ListRule = types.Pointer("@request.auth.id != '' && created > 0 || 'backtick`test' = 0") - collection.ViewRule = types.Pointer(`id = "1"`) - collection.SetOptions(models.CollectionAuthOptions{ - ManageRule: types.Pointer("created > 0"), - MinPasswordLength: 20, - }) - collection.MarkAsNew() - - // use different dao to avoid triggering automigrate while saving the dummy collection - if err := daos.New(app.DB()).SaveCollection(collection); err != nil { - t.Fatalf("[%d] Failed to save dummy collection, got %v", i, err) - } - - // @todo remove after collections cache is replaced - app.Bootstrap() - - // delete the newly created dummy collection - if err := app.Dao().DeleteCollection(collection); err != nil { - t.Fatalf("[%d] Failed to delete dummy collection, got %v", i, err) - } - - files, err := os.ReadDir(migrationsDir) - if err != nil { - t.Fatalf("[%d] Expected migrationsDir to be created, got: %v", i, err) - } - - if total := len(files); total != 1 { - t.Fatalf("[%d] Expected 1 file to be generated, got %d", i, total) - } - - expectedName := "_deleted_test456." + s.lang - if !strings.Contains(files[0].Name(), expectedName) { - t.Fatalf("[%d] Expected filename to contains %q, got %q", i, expectedName, files[0].Name()) - } - - fullPath := filepath.Join(migrationsDir, files[0].Name()) - content, err := os.ReadFile(fullPath) - if err != nil { - t.Fatalf("[%d] Failed to read the generated migration file: %v", i, err) - } - - if v := strings.TrimSpace(string(content)); v != strings.TrimSpace(s.expectedTemplate) { - t.Fatalf("[%d] Expected template \n%v \ngot \n%v", i, s.expectedTemplate, v) - } - } -} - -func TestAutomigrateCollectionUpdate(t *testing.T) { - scenarios := []struct { - lang string - expectedTemplate string - }{ - { - migratecmd.TemplateLangJS, - ` -migrate((db) => { - const dao = new Dao(db) - const collection = dao.findCollectionByNameOrId("test123") - - collection.name = "test456_update" - collection.type = "base" - collection.listRule = null - collection.deleteRule = "updated > 0 && @request.auth.id != ''" - collection.options = {} - - // remove - collection.schema.removeField("f3_id") - - // add - collection.schema.addField(new SchemaField({ - "system": false, - "id": "f4_id", - "name": "f4_name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "` + "`" + `test backtick` + "`" + `123" - } - })) - - // update - collection.schema.addField(new SchemaField({ - "system": false, - "id": "f2_id", - "name": "f2_name_new", - "type": "number", - "required": false, - "unique": true, - "options": { - "min": 10, - "max": null - } - })) - - return dao.saveCollection(collection) -}, (db) => { - const dao = new Dao(db) - const collection = dao.findCollectionByNameOrId("test123") - - collection.name = "test456" - collection.type = "auth" - collection.listRule = "@request.auth.id != '' && created > 0" - collection.deleteRule = null - collection.options = { - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": null, - "manageRule": "created > 0", - "minPasswordLength": 20, - "onlyEmailDomains": null, - "requireEmail": false - } - - // add - collection.schema.addField(new SchemaField({ - "system": false, - "id": "f3_id", - "name": "f3_name", - "type": "bool", - "required": false, - "unique": false, - "options": {} - })) - - // remove - collection.schema.removeField("f4_id") - - // update - collection.schema.addField(new SchemaField({ - "system": false, - "id": "f2_id", - "name": "f2_name", - "type": "number", - "required": false, - "unique": true, - "options": { - "min": 10, - "max": null - } - })) - - return dao.saveCollection(collection) -}) -`, - }, - { - migratecmd.TemplateLangGo, - ` -package _test_migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/types" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId("test123") - if err != nil { - return err - } - - collection.Name = "test456_update" - - collection.Type = "base" - - collection.ListRule = nil - - collection.DeleteRule = types.Pointer("updated > 0 && @request.auth.id != ''") - - options := map[string]any{} - json.Unmarshal([]byte(` + "`" + `{}` + "`" + `), &options) - collection.SetOptions(options) - - // remove - collection.Schema.RemoveField("f3_id") - - // add - new_f4_name := &schema.SchemaField{} - json.Unmarshal([]byte(` + "`" + `{ - "system": false, - "id": "f4_id", - "name": "f4_name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": ` + "\"` + \"`\" + `test backtick` + \"`\" + `123\"" + ` - } - }` + "`" + `), new_f4_name) - collection.Schema.AddField(new_f4_name) - - // update - edit_f2_name_new := &schema.SchemaField{} - json.Unmarshal([]byte(` + "`" + `{ - "system": false, - "id": "f2_id", - "name": "f2_name_new", - "type": "number", - "required": false, - "unique": true, - "options": { - "min": 10, - "max": null - } - }` + "`" + `), edit_f2_name_new) - collection.Schema.AddField(edit_f2_name_new) - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId("test123") - if err != nil { - return err - } - - collection.Name = "test456" - - collection.Type = "auth" - - collection.ListRule = types.Pointer("@request.auth.id != '' && created > 0") - - collection.DeleteRule = nil - - options := map[string]any{} - json.Unmarshal([]byte(` + "`" + `{ - "allowEmailAuth": false, - "allowOAuth2Auth": false, - "allowUsernameAuth": false, - "exceptEmailDomains": null, - "manageRule": "created > 0", - "minPasswordLength": 20, - "onlyEmailDomains": null, - "requireEmail": false - }` + "`" + `), &options) - collection.SetOptions(options) - - // add - del_f3_name := &schema.SchemaField{} - json.Unmarshal([]byte(` + "`" + `{ - "system": false, - "id": "f3_id", - "name": "f3_name", - "type": "bool", - "required": false, - "unique": false, - "options": {} - }` + "`" + `), del_f3_name) - collection.Schema.AddField(del_f3_name) - - // remove - collection.Schema.RemoveField("f4_id") - - // update - edit_f2_name_new := &schema.SchemaField{} - json.Unmarshal([]byte(` + "`" + `{ - "system": false, - "id": "f2_id", - "name": "f2_name", - "type": "number", - "required": false, - "unique": true, - "options": { - "min": 10, - "max": null - } - }` + "`" + `), edit_f2_name_new) - collection.Schema.AddField(edit_f2_name_new) - - return dao.SaveCollection(collection) - }) -} -`, - }, - } - - for i, s := range scenarios { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - migrationsDir := filepath.Join(app.DataDir(), "_test_migrations") - - migratecmd.MustRegister(app, nil, &migratecmd.Options{ - TemplateLang: s.lang, - Automigrate: true, - Dir: migrationsDir, - }) - - // create dummy collection - collection := &models.Collection{} - collection.Id = "test123" - collection.Name = "test456" - collection.Type = models.CollectionTypeAuth - collection.Created, _ = types.ParseDateTime("2022-01-01 00:00:00.000Z") - collection.Updated = collection.Created - collection.ListRule = types.Pointer("@request.auth.id != '' && created > 0") - collection.ViewRule = types.Pointer(`id = "1"`) - collection.SetOptions(models.CollectionAuthOptions{ - ManageRule: types.Pointer("created > 0"), - MinPasswordLength: 20, - }) - collection.MarkAsNew() - collection.Schema.AddField(&schema.SchemaField{ - Id: "f1_id", - Name: "f1_name", - Type: schema.FieldTypeText, - Required: true, - }) - collection.Schema.AddField(&schema.SchemaField{ - Id: "f2_id", - Name: "f2_name", - Type: schema.FieldTypeNumber, - Unique: true, - Options: &schema.NumberOptions{ - Min: types.Pointer(10.0), - }, - }) - collection.Schema.AddField(&schema.SchemaField{ - Id: "f3_id", - Name: "f3_name", - Type: schema.FieldTypeBool, - }) - - // use different dao to avoid triggering automigrate while saving the dummy collection - if err := daos.New(app.DB()).SaveCollection(collection); err != nil { - t.Fatalf("[%d] Failed to save dummy collection, got %v", i, err) - } - - // @todo remove after collections cache is replaced - app.Bootstrap() - - collection.Name = "test456_update" - collection.Type = models.CollectionTypeBase - collection.DeleteRule = types.Pointer(`updated > 0 && @request.auth.id != ''`) - collection.ListRule = nil - collection.NormalizeOptions() - collection.Schema.RemoveField("f3_id") - collection.Schema.AddField(&schema.SchemaField{ - Id: "f4_id", - Name: "f4_name", - Type: schema.FieldTypeText, - Options: &schema.TextOptions{ - Pattern: "`test backtick`123", - }, - }) - f := collection.Schema.GetFieldById("f2_id") - f.Name = "f2_name_new" - - // save the changes and trigger automigrate - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatalf("[%d] Failed to save dummy collection changes, got %v", i, err) - } - - files, err := os.ReadDir(migrationsDir) - if err != nil { - t.Fatalf("[%d] Expected migrationsDir to be created, got: %v", i, err) - } - - if total := len(files); total != 1 { - t.Fatalf("[%d] Expected 1 file to be generated, got %d", i, total) - } - - expectedName := "_updated_test456." + s.lang - if !strings.Contains(files[0].Name(), expectedName) { - t.Fatalf("[%d] Expected filename to contains %q, got %q", i, expectedName, files[0].Name()) - } - - fullPath := filepath.Join(migrationsDir, files[0].Name()) - content, err := os.ReadFile(fullPath) - if err != nil { - t.Fatalf("[%d] Failed to read the generated migration file: %v", i, err) - } - - if v := strings.TrimSpace(string(content)); v != strings.TrimSpace(s.expectedTemplate) { - t.Fatalf("[%d] Expected template \n%v \ngot \n%v", i, s.expectedTemplate, v) - } - } -} - -func TestAutomigrateCollectionNoChanges(t *testing.T) { - scenarios := []struct { - lang string - }{ - { - migratecmd.TemplateLangJS, - }, - { - migratecmd.TemplateLangGo, - }, - } - - for i, s := range scenarios { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - migrationsDir := filepath.Join(app.DataDir(), "_test_migrations") - - migratecmd.MustRegister(app, nil, &migratecmd.Options{ - TemplateLang: s.lang, - Automigrate: true, - Dir: migrationsDir, - }) - - // create dummy collection - collection := &models.Collection{} - collection.Name = "test123" - collection.Type = models.CollectionTypeAuth - - // use different dao to avoid triggering automigrate while saving the dummy collection - if err := daos.New(app.DB()).SaveCollection(collection); err != nil { - t.Fatalf("[%d] Failed to save dummy collection, got %v", i, err) - } - - // @todo remove after collections cache is replaced - app.Bootstrap() - - // resave without changes and trigger automigrate - if err := app.Dao().SaveCollection(collection); err != nil { - t.Fatalf("[%d] Failed to save dummy collection update, got %v", i, err) - } - - files, _ := os.ReadDir(migrationsDir) - if total := len(files); total != 0 { - t.Fatalf("[%d] Expected 0 files to be generated, got %d", i, total) - } - } -} diff --git a/plugins/migratecmd/templates.go b/plugins/migratecmd/templates.go deleted file mode 100644 index 283973cde9fd86bab6a2a1fbb04f64749c5836ee..0000000000000000000000000000000000000000 --- a/plugins/migratecmd/templates.go +++ /dev/null @@ -1,743 +0,0 @@ -package migratecmd - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "path/filepath" - "strconv" - "strings" - - "github.com/pocketbase/pocketbase/models" -) - -const ( - TemplateLangJS = "js" - TemplateLangGo = "go" -) - -var emptyTemplateErr = errors.New("empty template") - -// ------------------------------------------------------------------- -// JavaScript templates -// ------------------------------------------------------------------- - -func (p *plugin) jsBlankTemplate() (string, error) { - const template = `migrate((db) => { - // add up queries... -}, (db) => { - // add down queries... -}) -` - - return template, nil -} - -func (p *plugin) jsSnapshotTemplate(collections []*models.Collection) (string, error) { - jsonData, err := marhshalWithoutEscape(collections, " ", " ") - if err != nil { - return "", fmt.Errorf("failed to serialize collections list: %w", err) - } - - const template = `migrate((db) => { - const snapshot = %s; - - const collections = snapshot.map((item) => new Collection(item)); - - return Dao(db).importCollections(collections, true, null); -}, (db) => { - return null; -}) -` - - return fmt.Sprintf(template, string(jsonData)), nil -} - -func (p *plugin) jsCreateTemplate(collection *models.Collection) (string, error) { - jsonData, err := marhshalWithoutEscape(collection, " ", " ") - if err != nil { - return "", fmt.Errorf("failed to serialize collections list: %w", err) - } - - const template = `migrate((db) => { - const collection = new Collection(%s); - - return Dao(db).saveCollection(collection); -}, (db) => { - const dao = new Dao(db); - const collection = dao.findCollectionByNameOrId(%q); - - return dao.deleteCollection(collection); -}) -` - - return fmt.Sprintf(template, string(jsonData), collection.Id), nil -} - -func (p *plugin) jsDeleteTemplate(collection *models.Collection) (string, error) { - jsonData, err := marhshalWithoutEscape(collection, " ", " ") - if err != nil { - return "", fmt.Errorf("failed to serialize collections list: %w", err) - } - - const template = `migrate((db) => { - const dao = new Dao(db); - const collection = dao.findCollectionByNameOrId(%q); - - return dao.deleteCollection(collection); -}, (db) => { - const collection = new Collection(%s); - - return Dao(db).saveCollection(collection); -}) -` - - return fmt.Sprintf(template, collection.Id, string(jsonData)), nil -} - -func (p *plugin) jsDiffTemplate(new *models.Collection, old *models.Collection) (string, error) { - if new == nil && old == nil { - return "", errors.New("the diff template require at least one of the collection to be non-nil") - } - - if new == nil { - return p.jsDeleteTemplate(old) - } - - if old == nil { - return p.jsCreateTemplate(new) - } - - upParts := []string{} - downParts := []string{} - varName := "collection" - - if old.Name != new.Name { - upParts = append(upParts, fmt.Sprintf("%s.name = %q", varName, new.Name)) - downParts = append(downParts, fmt.Sprintf("%s.name = %q", varName, old.Name)) - } - - if old.Type != new.Type { - upParts = append(upParts, fmt.Sprintf("%s.type = %q", varName, new.Type)) - downParts = append(downParts, fmt.Sprintf("%s.type = %q", varName, old.Type)) - } - - if old.System != new.System { - upParts = append(upParts, fmt.Sprintf("%s.system = %t", varName, new.System)) - downParts = append(downParts, fmt.Sprintf("%s.system = %t", varName, old.System)) - } - - // --- - // note: strconv.Quote is used because %q converts the rule operators in unicode char codes - // --- - - if old.ListRule != new.ListRule { - if old.ListRule != nil && new.ListRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.listRule = null", varName)) - downParts = append(downParts, fmt.Sprintf("%s.listRule = %s", varName, strconv.Quote(*old.ListRule))) - } else if old.ListRule == nil && new.ListRule != nil || *old.ListRule != *new.ListRule { - upParts = append(upParts, fmt.Sprintf("%s.listRule = %s", varName, strconv.Quote(*new.ListRule))) - downParts = append(downParts, fmt.Sprintf("%s.listRule = null", varName)) - } - } - - if old.ViewRule != new.ViewRule { - if old.ViewRule != nil && new.ViewRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.viewRule = null", varName)) - downParts = append(downParts, fmt.Sprintf("%s.viewRule = %s", varName, strconv.Quote(*old.ViewRule))) - } else if old.ViewRule == nil && new.ViewRule != nil || *old.ViewRule != *new.ViewRule { - upParts = append(upParts, fmt.Sprintf("%s.viewRule = %s", varName, strconv.Quote(*new.ViewRule))) - downParts = append(downParts, fmt.Sprintf("%s.viewRule = null", varName)) - } - } - - if old.CreateRule != new.CreateRule { - if old.CreateRule != nil && new.CreateRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.createRule = null", varName)) - downParts = append(downParts, fmt.Sprintf("%s.createRule = %s", varName, strconv.Quote(*old.CreateRule))) - } else if old.CreateRule == nil && new.CreateRule != nil || *old.CreateRule != *new.CreateRule { - upParts = append(upParts, fmt.Sprintf("%s.createRule = %s", varName, strconv.Quote(*new.CreateRule))) - downParts = append(downParts, fmt.Sprintf("%s.createRule = null", varName)) - } - } - - if old.UpdateRule != new.UpdateRule { - if old.UpdateRule != nil && new.UpdateRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.updateRule = null", varName)) - downParts = append(downParts, fmt.Sprintf("%s.updateRule = %s", varName, strconv.Quote(*old.UpdateRule))) - } else if old.UpdateRule == nil && new.UpdateRule != nil || *old.UpdateRule != *new.UpdateRule { - upParts = append(upParts, fmt.Sprintf("%s.updateRule = %s", varName, strconv.Quote(*new.UpdateRule))) - downParts = append(downParts, fmt.Sprintf("%s.updateRule = null", varName)) - } - } - - if old.DeleteRule != new.DeleteRule { - if old.DeleteRule != nil && new.DeleteRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.deleteRule = null", varName)) - downParts = append(downParts, fmt.Sprintf("%s.deleteRule = %s", varName, strconv.Quote(*old.DeleteRule))) - } else if old.DeleteRule == nil && new.DeleteRule != nil || *old.DeleteRule != *new.DeleteRule { - upParts = append(upParts, fmt.Sprintf("%s.deleteRule = %s", varName, strconv.Quote(*new.DeleteRule))) - downParts = append(downParts, fmt.Sprintf("%s.deleteRule = null", varName)) - } - } - - // Options - rawNewOptions, err := marhshalWithoutEscape(new.Options, " ", " ") - if err != nil { - return "", err - } - rawOldOptions, err := marhshalWithoutEscape(old.Options, " ", " ") - if err != nil { - return "", err - } - if !bytes.Equal(rawNewOptions, rawOldOptions) { - upParts = append(upParts, fmt.Sprintf("%s.options = %s", varName, rawNewOptions)) - downParts = append(downParts, fmt.Sprintf("%s.options = %s", varName, rawOldOptions)) - } - - // ensure new line between regular and collection fields - if len(upParts) > 0 { - upParts[len(upParts)-1] += "\n" - } - if len(downParts) > 0 { - downParts[len(downParts)-1] += "\n" - } - - // Schema - // ----------------------------------------------------------------- - - // deleted fields - for _, oldField := range old.Schema.Fields() { - if new.Schema.GetFieldById(oldField.Id) != nil { - continue // exist - } - - rawOldField, err := marhshalWithoutEscape(oldField, " ", " ") - if err != nil { - return "", err - } - - upParts = append(upParts, "// remove") - upParts = append(upParts, fmt.Sprintf("%s.schema.removeField(%q)\n", varName, oldField.Id)) - - downParts = append(downParts, "// add") - downParts = append(downParts, fmt.Sprintf("%s.schema.addField(new SchemaField(%s))\n", varName, rawOldField)) - } - - // created fields - for _, newField := range new.Schema.Fields() { - if old.Schema.GetFieldById(newField.Id) != nil { - continue // exist - } - - rawNewField, err := marhshalWithoutEscape(newField, " ", " ") - if err != nil { - return "", err - } - - upParts = append(upParts, "// add") - upParts = append(upParts, fmt.Sprintf("%s.schema.addField(new SchemaField(%s))\n", varName, rawNewField)) - - downParts = append(downParts, "// remove") - downParts = append(downParts, fmt.Sprintf("%s.schema.removeField(%q)\n", varName, newField.Id)) - } - - // modified fields - for _, newField := range new.Schema.Fields() { - oldField := old.Schema.GetFieldById(newField.Id) - if oldField == nil { - continue - } - - rawNewField, err := marhshalWithoutEscape(newField, " ", " ") - if err != nil { - return "", err - } - - rawOldField, err := marhshalWithoutEscape(oldField, " ", " ") - if err != nil { - return "", err - } - - if bytes.Equal(rawNewField, rawOldField) { - continue // no change - } - - upParts = append(upParts, "// update") - upParts = append(upParts, fmt.Sprintf("%s.schema.addField(new SchemaField(%s))\n", varName, rawNewField)) - - downParts = append(downParts, "// update") - downParts = append(downParts, fmt.Sprintf("%s.schema.addField(new SchemaField(%s))\n", varName, rawOldField)) - } - - // ----------------------------------------------------------------- - - if len(upParts) == 0 && len(downParts) == 0 { - return "", emptyTemplateErr - } - - up := strings.Join(upParts, "\n ") - down := strings.Join(downParts, "\n ") - - const template = `migrate((db) => { - const dao = new Dao(db) - const collection = dao.findCollectionByNameOrId(%q) - - %s - - return dao.saveCollection(collection) -}, (db) => { - const dao = new Dao(db) - const collection = dao.findCollectionByNameOrId(%q) - - %s - - return dao.saveCollection(collection) -}) -` - - return fmt.Sprintf( - template, - old.Id, strings.TrimSpace(up), - new.Id, strings.TrimSpace(down), - ), nil -} - -// ------------------------------------------------------------------- -// Go templates -// ------------------------------------------------------------------- - -func (p *plugin) goBlankTemplate() (string, error) { - const template = `package %s - -import ( - "github.com/pocketbase/dbx" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(db dbx.Builder) error { - // add up queries... - - return nil - }, func(db dbx.Builder) error { - // add down queries... - - return nil - }) -} -` - - return fmt.Sprintf(template, filepath.Base(p.options.Dir)), nil -} - -func (p *plugin) goSnapshotTemplate(collections []*models.Collection) (string, error) { - jsonData, err := marhshalWithoutEscape(collections, "\t\t", "\t") - if err != nil { - return "", fmt.Errorf("failed to serialize collections list: %w", err) - } - - const template = `package %s - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := ` + "`%s`" + ` - - collections := []*models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} -` - return fmt.Sprintf( - template, - filepath.Base(p.options.Dir), - escapeBacktick(string(jsonData)), - ), nil -} - -func (p *plugin) goCreateTemplate(collection *models.Collection) (string, error) { - jsonData, err := marhshalWithoutEscape(collection, "\t\t", "\t") - if err != nil { - return "", fmt.Errorf("failed to serialize collections list: %w", err) - } - - const template = `package %s - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := ` + "`%s`" + ` - - collection := &models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collection); err != nil { - return err - } - - return daos.New(db).SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId(%q) - if err != nil { - return err - } - - return dao.DeleteCollection(collection) - }) -} -` - - return fmt.Sprintf( - template, - filepath.Base(p.options.Dir), - escapeBacktick(string(jsonData)), - collection.Id, - ), nil -} - -func (p *plugin) goDeleteTemplate(collection *models.Collection) (string, error) { - jsonData, err := marhshalWithoutEscape(collection, "\t\t", "\t") - if err != nil { - return "", fmt.Errorf("failed to serialize collections list: %w", err) - } - - const template = `package %s - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId(%q) - if err != nil { - return err - } - - return dao.DeleteCollection(collection) - }, func(db dbx.Builder) error { - jsonData := ` + "`%s`" + ` - - collection := &models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collection); err != nil { - return err - } - - return daos.New(db).SaveCollection(collection) - }) -} -` - - return fmt.Sprintf( - template, - filepath.Base(p.options.Dir), - collection.Id, - escapeBacktick(string(jsonData)), - ), nil -} - -func (p *plugin) goDiffTemplate(new *models.Collection, old *models.Collection) (string, error) { - if new == nil && old == nil { - return "", errors.New("the diff template require at least one of the collection to be non-nil") - } - - if new == nil { - return p.goDeleteTemplate(old) - } - - if old == nil { - return p.goCreateTemplate(new) - } - - upParts := []string{} - downParts := []string{} - varName := "collection" - if old.Name != new.Name { - upParts = append(upParts, fmt.Sprintf("%s.Name = %q\n", varName, new.Name)) - downParts = append(downParts, fmt.Sprintf("%s.Name = %q\n", varName, old.Name)) - } - - if old.Type != new.Type { - upParts = append(upParts, fmt.Sprintf("%s.Type = %q\n", varName, new.Type)) - downParts = append(downParts, fmt.Sprintf("%s.Type = %q\n", varName, old.Type)) - } - - if old.System != new.System { - upParts = append(upParts, fmt.Sprintf("%s.System = %t\n", varName, new.System)) - downParts = append(downParts, fmt.Sprintf("%s.System = %t\n", varName, old.System)) - } - - // --- - // note: strconv.Quote is used because %q converts the rule operators in unicode char codes - // --- - - if old.ListRule != new.ListRule { - if old.ListRule != nil && new.ListRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.ListRule = nil\n", varName)) - downParts = append(downParts, fmt.Sprintf("%s.ListRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.ListRule))) - } else if old.ListRule == nil && new.ListRule != nil || *old.ListRule != *new.ListRule { - upParts = append(upParts, fmt.Sprintf("%s.ListRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.ListRule))) - downParts = append(downParts, fmt.Sprintf("%s.ListRule = nil\n", varName)) - } - } - - if old.ViewRule != new.ViewRule { - if old.ViewRule != nil && new.ViewRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.ViewRule = nil\n", varName)) - downParts = append(downParts, fmt.Sprintf("%s.ViewRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.ViewRule))) - } else if old.ViewRule == nil && new.ViewRule != nil || *old.ViewRule != *new.ViewRule { - upParts = append(upParts, fmt.Sprintf("%s.ViewRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.ViewRule))) - downParts = append(downParts, fmt.Sprintf("%s.ViewRule = nil\n", varName)) - } - } - - if old.CreateRule != new.CreateRule { - if old.CreateRule != nil && new.CreateRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.CreateRule = nil\n", varName)) - downParts = append(downParts, fmt.Sprintf("%s.CreateRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.CreateRule))) - } else if old.CreateRule == nil && new.CreateRule != nil || *old.CreateRule != *new.CreateRule { - upParts = append(upParts, fmt.Sprintf("%s.CreateRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.CreateRule))) - downParts = append(downParts, fmt.Sprintf("%s.CreateRule = nil\n", varName)) - } - } - - if old.UpdateRule != new.UpdateRule { - if old.UpdateRule != nil && new.UpdateRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.UpdateRule = nil\n", varName)) - downParts = append(downParts, fmt.Sprintf("%s.UpdateRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.UpdateRule))) - } else if old.UpdateRule == nil && new.UpdateRule != nil || *old.UpdateRule != *new.UpdateRule { - upParts = append(upParts, fmt.Sprintf("%s.UpdateRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.UpdateRule))) - downParts = append(downParts, fmt.Sprintf("%s.UpdateRule = nil\n", varName)) - } - } - - if old.DeleteRule != new.DeleteRule { - if old.DeleteRule != nil && new.DeleteRule == nil { - upParts = append(upParts, fmt.Sprintf("%s.DeleteRule = nil\n", varName)) - downParts = append(downParts, fmt.Sprintf("%s.DeleteRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.DeleteRule))) - } else if old.DeleteRule == nil && new.DeleteRule != nil || *old.DeleteRule != *new.DeleteRule { - upParts = append(upParts, fmt.Sprintf("%s.DeleteRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.DeleteRule))) - downParts = append(downParts, fmt.Sprintf("%s.DeleteRule = nil\n", varName)) - } - } - - // Options - rawNewOptions, err := marhshalWithoutEscape(new.Options, "\t\t", "\t") - if err != nil { - return "", err - } - rawOldOptions, err := marhshalWithoutEscape(old.Options, "\t\t", "\t") - if err != nil { - return "", err - } - if !bytes.Equal(rawNewOptions, rawOldOptions) { - upParts = append(upParts, "options := map[string]any{}") - upParts = append(upParts, fmt.Sprintf("json.Unmarshal([]byte(`%s`), &options)", escapeBacktick(string(rawNewOptions)))) - upParts = append(upParts, fmt.Sprintf("%s.SetOptions(options)\n", varName)) - // --- - downParts = append(downParts, "options := map[string]any{}") - downParts = append(downParts, fmt.Sprintf("json.Unmarshal([]byte(`%s`), &options)", escapeBacktick(string(rawOldOptions)))) - downParts = append(downParts, fmt.Sprintf("%s.SetOptions(options)\n", varName)) - } - - // Schema - // --------------------------------------------------------------- - // deleted fields - for _, oldField := range old.Schema.Fields() { - if new.Schema.GetFieldById(oldField.Id) != nil { - continue // exist - } - - rawOldField, err := marhshalWithoutEscape(oldField, "\t\t", "\t") - if err != nil { - return "", err - } - - fieldVar := fmt.Sprintf("del_%s", oldField.Name) - - upParts = append(upParts, "// remove") - upParts = append(upParts, fmt.Sprintf("%s.Schema.RemoveField(%q)\n", varName, oldField.Id)) - - downParts = append(downParts, "// add") - downParts = append(downParts, fmt.Sprintf("%s := &schema.SchemaField{}", fieldVar)) - downParts = append(downParts, fmt.Sprintf("json.Unmarshal([]byte(`%s`), %s)", escapeBacktick(string(rawOldField)), fieldVar)) - downParts = append(downParts, fmt.Sprintf("%s.Schema.AddField(%s)\n", varName, fieldVar)) - } - - // created fields - for _, newField := range new.Schema.Fields() { - if old.Schema.GetFieldById(newField.Id) != nil { - continue // exist - } - - rawNewField, err := marhshalWithoutEscape(newField, "\t\t", "\t") - if err != nil { - return "", err - } - - fieldVar := fmt.Sprintf("new_%s", newField.Name) - - upParts = append(upParts, "// add") - upParts = append(upParts, fmt.Sprintf("%s := &schema.SchemaField{}", fieldVar)) - upParts = append(upParts, fmt.Sprintf("json.Unmarshal([]byte(`%s`), %s)", escapeBacktick(string(rawNewField)), fieldVar)) - upParts = append(upParts, fmt.Sprintf("%s.Schema.AddField(%s)\n", varName, fieldVar)) - - downParts = append(downParts, "// remove") - downParts = append(downParts, fmt.Sprintf("%s.Schema.RemoveField(%q)\n", varName, newField.Id)) - } - - // modified fields - for _, newField := range new.Schema.Fields() { - oldField := old.Schema.GetFieldById(newField.Id) - if oldField == nil { - continue - } - - rawNewField, err := marhshalWithoutEscape(newField, "\t\t", "\t") - if err != nil { - return "", err - } - - rawOldField, err := marhshalWithoutEscape(oldField, "\t\t", "\t") - if err != nil { - return "", err - } - - if bytes.Equal(rawNewField, rawOldField) { - continue // no change - } - - fieldVar := fmt.Sprintf("edit_%s", newField.Name) - - upParts = append(upParts, "// update") - upParts = append(upParts, fmt.Sprintf("%s := &schema.SchemaField{}", fieldVar)) - upParts = append(upParts, fmt.Sprintf("json.Unmarshal([]byte(`%s`), %s)", escapeBacktick(string(rawNewField)), fieldVar)) - upParts = append(upParts, fmt.Sprintf("%s.Schema.AddField(%s)\n", varName, fieldVar)) - - downParts = append(downParts, "// update") - downParts = append(downParts, fmt.Sprintf("%s := &schema.SchemaField{}", fieldVar)) - downParts = append(downParts, fmt.Sprintf("json.Unmarshal([]byte(`%s`), %s)", escapeBacktick(string(rawOldField)), fieldVar)) - downParts = append(downParts, fmt.Sprintf("%s.Schema.AddField(%s)\n", varName, fieldVar)) - } - // --------------------------------------------------------------- - - if len(upParts) == 0 && len(downParts) == 0 { - return "", emptyTemplateErr - } - - up := strings.Join(upParts, "\n\t\t") - down := strings.Join(downParts, "\n\t\t") - combined := up + down - - // generate imports - // --- - var imports string - - if strings.Contains(combined, "json.Unmarshal(") || - strings.Contains(combined, "json.Marshal(") { - imports += "\n\t\"encoding/json\"\n" - } - - imports += "\n\t\"github.com/pocketbase/dbx\"" - imports += "\n\t\"github.com/pocketbase/pocketbase/daos\"" - imports += "\n\tm \"github.com/pocketbase/pocketbase/migrations\"" - - if strings.Contains(combined, "schema.SchemaField{") { - imports += "\n\t\"github.com/pocketbase/pocketbase/models/schema\"" - } - - if strings.Contains(combined, "types.Pointer(") { - imports += "\n\t\"github.com/pocketbase/pocketbase/tools/types\"" - } - // --- - - const template = `package %s - -import (%s -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId(%q) - if err != nil { - return err - } - - %s - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db); - - collection, err := dao.FindCollectionByNameOrId(%q) - if err != nil { - return err - } - - %s - - return dao.SaveCollection(collection) - }) -} -` - - return fmt.Sprintf( - template, - filepath.Base(p.options.Dir), - imports, - old.Id, strings.TrimSpace(up), - new.Id, strings.TrimSpace(down), - ), nil -} - -func marhshalWithoutEscape(v any, prefix string, indent string) ([]byte, error) { - raw, err := json.MarshalIndent(v, prefix, indent) - if err != nil { - return nil, err - } - - // unescape escaped unicode characters - unescaped, err := strconv.Unquote(strings.ReplaceAll(strconv.Quote(string(raw)), `\\u`, `\u`)) - if err != nil { - return nil, err - } - - return []byte(unescaped), nil -} - -func escapeBacktick(v string) string { - return strings.ReplaceAll(v, "`", "` + \"`\" + `") -} diff --git a/pocketbase.go b/pocketbase.go deleted file mode 100644 index 3c6af02e58add04c7ad153054edbf22ef1626e86..0000000000000000000000000000000000000000 --- a/pocketbase.go +++ /dev/null @@ -1,211 +0,0 @@ -package pocketbase - -import ( - "log" - "os" - "os/signal" - "path/filepath" - "strings" - "sync" - "syscall" - - "github.com/pocketbase/pocketbase/cmd" - "github.com/pocketbase/pocketbase/core" - "github.com/spf13/cobra" -) - -var _ core.App = (*PocketBase)(nil) - -// Version of PocketBase -var Version = "(untracked)" - -// appWrapper serves as a private core.App instance wrapper. -type appWrapper struct { - core.App -} - -// PocketBase defines a PocketBase app launcher. -// -// It implements [core.App] via embedding and all of the app interface methods -// could be accessed directly through the instance (eg. PocketBase.DataDir()). -type PocketBase struct { - *appWrapper - - debugFlag bool - dataDirFlag string - encryptionEnvFlag string - hideStartBanner bool - - // RootCmd is the main console command - RootCmd *cobra.Command -} - -// Config is the PocketBase initialization config struct. -type Config struct { - // optional default values for the console flags - DefaultDebug bool - DefaultDataDir string // if not set, it will fallback to "./pb_data" - DefaultEncryptionEnv string - - // hide the default console server info on app startup - HideStartBanner bool -} - -// New creates a new PocketBase instance with the default configuration. -// Use [NewWithConfig()] if you want to provide a custom configuration. -// -// Note that the application will not be initialized/bootstrapped yet, -// aka. DB connections, migrations, app settings, etc. will not be accessible. -// Everything will be initialized when [Start()] is executed. -// If you want to initialize the application before calling [Start()], -// then you'll have to manually call [Bootstrap()]. -func New() *PocketBase { - _, isUsingGoRun := inspectRuntime() - - return NewWithConfig(Config{ - DefaultDebug: isUsingGoRun, - }) -} - -// NewWithConfig creates a new PocketBase instance with the provided config. -// -// Note that the application will not be initialized/bootstrapped yet, -// aka. DB connections, migrations, app settings, etc. will not be accessible. -// Everything will be initialized when [Start()] is executed. -// If you want to initialize the application before calling [Start()], -// then you'll have to manually call [Bootstrap()]. -func NewWithConfig(config Config) *PocketBase { - // initialize a default data directory based on the executable baseDir - if config.DefaultDataDir == "" { - baseDir, _ := inspectRuntime() - config.DefaultDataDir = filepath.Join(baseDir, "pb_data") - } - - pb := &PocketBase{ - RootCmd: &cobra.Command{ - Use: filepath.Base(os.Args[0]), - Short: "PocketBase CLI", - Version: Version, - FParseErrWhitelist: cobra.FParseErrWhitelist{ - UnknownFlags: true, - }, - // no need to provide the default cobra completion command - CompletionOptions: cobra.CompletionOptions{ - DisableDefaultCmd: true, - }, - }, - debugFlag: config.DefaultDebug, - dataDirFlag: config.DefaultDataDir, - encryptionEnvFlag: config.DefaultEncryptionEnv, - hideStartBanner: config.HideStartBanner, - } - - // parse base flags - // (errors are ignored, since the full flags parsing happens on Execute()) - pb.eagerParseFlags(config) - - // initialize the app instance - pb.appWrapper = &appWrapper{core.NewBaseApp( - pb.dataDirFlag, - pb.encryptionEnvFlag, - pb.debugFlag, - )} - - // hide the default help command (allow only `--help` flag) - pb.RootCmd.SetHelpCommand(&cobra.Command{Hidden: true}) - - // hook the bootstrap process - pb.RootCmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error { - return pb.Bootstrap() - } - - return pb -} - -// Start starts the application, aka. registers the default system -// commands (serve, migrate, version) and executes pb.RootCmd. -func (pb *PocketBase) Start() error { - // register system commands - pb.RootCmd.AddCommand(cmd.NewServeCommand(pb, !pb.hideStartBanner)) - pb.RootCmd.AddCommand(cmd.NewTempUpgradeCommand(pb)) - - return pb.Execute() -} - -// Execute initializes the application (if not already) and executes -// the pb.RootCmd with graceful shutdown support. -// -// This method differs from pb.Start() by not registering the default -// system commands! -func (pb *PocketBase) Execute() error { - var wg sync.WaitGroup - - wg.Add(1) - - // wait for interrupt signal to gracefully shutdown the application - go func() { - defer wg.Done() - quit := make(chan os.Signal, 1) // we need to reserve to buffer size 1, so the notifier are not blocked - signal.Notify(quit, os.Interrupt, syscall.SIGTERM) - <-quit - }() - - // execute the root command - go func() { - defer wg.Done() - if err := pb.RootCmd.Execute(); err != nil { - log.Println(err) - } - }() - - wg.Wait() - - // cleanup - return pb.onTerminate() -} - -// onTerminate tries to release the app resources on app termination. -func (pb *PocketBase) onTerminate() error { - return pb.ResetBootstrapState() -} - -// eagerParseFlags parses the global app flags before calling pb.RootCmd.Execute(). -// so we can have all PocketBase flags ready for use on initialization. -func (pb *PocketBase) eagerParseFlags(config Config) error { - pb.RootCmd.PersistentFlags().StringVar( - &pb.dataDirFlag, - "dir", - config.DefaultDataDir, - "the PocketBase data directory", - ) - - pb.RootCmd.PersistentFlags().StringVar( - &pb.encryptionEnvFlag, - "encryptionEnv", - config.DefaultEncryptionEnv, - "the env variable whose value of 32 characters will be used \nas encryption key for the app settings (default none)", - ) - - pb.RootCmd.PersistentFlags().BoolVar( - &pb.debugFlag, - "debug", - config.DefaultDebug, - "enable debug mode, aka. showing more detailed logs", - ) - - return pb.RootCmd.ParseFlags(os.Args[1:]) -} - -// tries to find the base executable directory and how it was run -func inspectRuntime() (baseDir string, withGoRun bool) { - if strings.HasPrefix(os.Args[0], os.TempDir()) { - // probably ran with go run - withGoRun = true - baseDir, _ = os.Getwd() - } else { - // probably ran with go build - withGoRun = false - baseDir = filepath.Dir(os.Args[0]) - } - return -} diff --git a/resolvers/record_field_resolver.go b/resolvers/record_field_resolver.go deleted file mode 100644 index 01ad195dd0472e9049b1c5c1b12f94cf599e8d63..0000000000000000000000000000000000000000 --- a/resolvers/record_field_resolver.go +++ /dev/null @@ -1,440 +0,0 @@ -package resolvers - -import ( - "encoding/json" - "fmt" - "strconv" - "strings" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/models/schema" - "github.com/pocketbase/pocketbase/tools/inflector" - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/search" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/spf13/cast" -) - -// ensure that `search.FieldResolver` interface is implemented -var _ search.FieldResolver = (*RecordFieldResolver)(nil) - -// list of auth filter fields that don't require join with the auth -// collection or any other extra checks to be resolved -var plainRequestAuthFields = []string{ - "@request.auth." + schema.FieldNameId, - "@request.auth." + schema.FieldNameCollectionId, - "@request.auth." + schema.FieldNameCollectionName, - "@request.auth." + schema.FieldNameUsername, - "@request.auth." + schema.FieldNameEmail, - "@request.auth." + schema.FieldNameEmailVisibility, - "@request.auth." + schema.FieldNameVerified, - "@request.auth." + schema.FieldNameCreated, - "@request.auth." + schema.FieldNameUpdated, -} - -type join struct { - id string - table string - on dbx.Expression -} - -// RecordFieldResolver defines a custom search resolver struct for -// managing Record model search fields. -// -// Usually used together with `search.Provider`. Example: -// resolver := resolvers.NewRecordFieldResolver( -// app.Dao(), -// myCollection, -// &models.RequestData{...}, -// true, -// ) -// provider := search.NewProvider(resolver) -// ... -type RecordFieldResolver struct { - dao *daos.Dao - baseCollection *models.Collection - allowHiddenFields bool - allowedFields []string - loadedCollections []*models.Collection - joins []join // we cannot use a map because the insertion order is not preserved - exprs []dbx.Expression - requestData *models.RequestData - staticRequestData map[string]any -} - -// NewRecordFieldResolver creates and initializes a new `RecordFieldResolver`. -func NewRecordFieldResolver( - dao *daos.Dao, - baseCollection *models.Collection, - requestData *models.RequestData, - allowHiddenFields bool, -) *RecordFieldResolver { - r := &RecordFieldResolver{ - dao: dao, - baseCollection: baseCollection, - requestData: requestData, - allowHiddenFields: allowHiddenFields, - joins: []join{}, - exprs: []dbx.Expression{}, - loadedCollections: []*models.Collection{baseCollection}, - allowedFields: []string{ - `^\w+[\w\.]*$`, - `^\@request\.method$`, - `^\@request\.auth\.\w+[\w\.]*$`, - `^\@request\.data\.\w+[\w\.]*$`, - `^\@request\.query\.\w+[\w\.]*$`, - `^\@collection\.\w+\.\w+[\w\.]*$`, - }, - } - - // @todo remove after IN operator and multi-match filter enhancements - r.staticRequestData = map[string]any{} - if r.requestData != nil { - r.staticRequestData["method"] = r.requestData.Method - r.staticRequestData["query"] = r.requestData.Query - r.staticRequestData["data"] = r.requestData.Data - r.staticRequestData["auth"] = nil - if r.requestData.AuthRecord != nil { - r.requestData.AuthRecord.IgnoreEmailVisibility(true) - r.staticRequestData["auth"] = r.requestData.AuthRecord.PublicExport() - r.requestData.AuthRecord.IgnoreEmailVisibility(false) - } - } - - return r -} - -// UpdateQuery implements `search.FieldResolver` interface. -// -// Conditionally updates the provided search query based on the -// resolved fields (eg. dynamically joining relations). -func (r *RecordFieldResolver) UpdateQuery(query *dbx.SelectQuery) error { - if len(r.joins) > 0 { - query.Distinct(true) - - for _, join := range r.joins { - query.LeftJoin(join.table, join.on) - } - } - - for _, expr := range r.exprs { - if expr != nil { - query.AndWhere(expr) - } - } - - return nil -} - -// Resolve implements `search.FieldResolver` interface. -// -// Example of resolvable field formats: -// id -// project.screen.status -// @request.status -// @request.auth.someRelation.name -// @collection.product.name -func (r *RecordFieldResolver) Resolve(fieldName string) (resultName string, placeholderParams dbx.Params, err error) { - if len(r.allowedFields) > 0 && !list.ExistInSliceWithRegex(fieldName, r.allowedFields) { - return "", nil, fmt.Errorf("Failed to resolve field %q", fieldName) - } - - props := strings.Split(fieldName, ".") - - currentCollectionName := r.baseCollection.Name - currentTableAlias := inflector.Columnify(currentCollectionName) - - // flag indicating whether to return null on missing field or return on an error - nullifyMisingField := false - - allowHiddenFields := r.allowHiddenFields - - // check for @collection field (aka. non-relational join) - // must be in the format "@collection.COLLECTION_NAME.FIELD[.FIELD2....]" - if props[0] == "@collection" { - if len(props) < 3 { - return "", nil, fmt.Errorf("Invalid @collection field path in %q.", fieldName) - } - - currentCollectionName = props[1] - currentTableAlias = inflector.Columnify("__collection_" + currentCollectionName) - - collection, err := r.loadCollection(currentCollectionName) - if err != nil { - return "", nil, fmt.Errorf("Failed to load collection %q from field path %q.", currentCollectionName, fieldName) - } - - // always allow hidden fields since the @collection.* filter is a system one - allowHiddenFields = true - - r.registerJoin(inflector.Columnify(collection.Name), currentTableAlias, nil) - - props = props[2:] // leave only the collection fields - } else if props[0] == "@request" { - if len(props) == 1 { - return "", nil, fmt.Errorf("Invalid @request data field path in %q.", fieldName) - } - - if r.requestData == nil { - return "NULL", nil, nil - } - - // plain @request.* field - if !strings.HasPrefix(fieldName, "@request.auth.") || list.ExistInSlice(fieldName, plainRequestAuthFields) { - return r.resolveStaticRequestField(props[1:]...) - } - - // always allow hidden fields since the @request.* filter is a system one - allowHiddenFields = true - - // enable the ignore flag for missing @request.auth.* fields - // for consistency with @request.data.* and @request.query.* - nullifyMisingField = true - - // resolve the auth collection fields - // --- - if r.requestData == nil || r.requestData.AuthRecord == nil || r.requestData.AuthRecord.Collection() == nil { - return "NULL", nil, nil - } - - collection := r.requestData.AuthRecord.Collection() - r.loadedCollections = append(r.loadedCollections, collection) - - currentCollectionName = collection.Name - currentTableAlias = "__auth_" + inflector.Columnify(currentCollectionName) - - authIdParamKey := "auth" + security.PseudorandomString(5) - authIdParams := dbx.Params{authIdParamKey: r.requestData.AuthRecord.Id} - // --- - - // join the auth collection - r.registerJoin( - inflector.Columnify(collection.Name), - currentTableAlias, - dbx.NewExp(fmt.Sprintf( - // aka. __auth_users.id = :userId - "[[%s.id]] = {:%s}", - inflector.Columnify(currentTableAlias), - authIdParamKey, - ), authIdParams), - ) - - props = props[2:] // leave only the auth relation fields - } - - totalProps := len(props) - - for i, prop := range props { - collection, err := r.loadCollection(currentCollectionName) - if err != nil { - return "", nil, fmt.Errorf("Failed to resolve field %q.", prop) - } - - systemFieldNames := schema.BaseModelFieldNames() - if collection.IsAuth() { - systemFieldNames = append( - systemFieldNames, - schema.FieldNameUsername, - schema.FieldNameVerified, - schema.FieldNameEmailVisibility, - schema.FieldNameEmail, - ) - } - - // internal model prop (always available but not part of the collection schema) - if list.ExistInSlice(prop, systemFieldNames) { - // allow querying only auth records with emails marked as public - if prop == schema.FieldNameEmail && !allowHiddenFields { - r.registerExpr(dbx.NewExp(fmt.Sprintf( - "[[%s.%s]] = TRUE", - currentTableAlias, - inflector.Columnify(schema.FieldNameEmailVisibility), - ))) - } - - return fmt.Sprintf("[[%s.%s]]", currentTableAlias, inflector.Columnify(prop)), nil, nil - } - - field := collection.Schema.GetFieldByName(prop) - if field == nil { - if nullifyMisingField { - return "NULL", nil, nil - } - - return "", nil, fmt.Errorf("Unrecognized field %q.", prop) - } - - // last prop - if i == totalProps-1 { - return fmt.Sprintf("[[%s.%s]]", currentTableAlias, inflector.Columnify(prop)), nil, nil - } - - // check if it is a json field - if field.Type == schema.FieldTypeJson { - var jsonPath strings.Builder - jsonPath.WriteString("$") - for _, p := range props[i+1:] { - if _, err := strconv.Atoi(p); err == nil { - jsonPath.WriteString("[") - jsonPath.WriteString(inflector.Columnify(p)) - jsonPath.WriteString("]") - } else { - jsonPath.WriteString(".") - jsonPath.WriteString(inflector.Columnify(p)) - } - } - return fmt.Sprintf( - "JSON_EXTRACT([[%s.%s]], '%s')", - currentTableAlias, - inflector.Columnify(prop), - jsonPath.String(), - ), nil, nil - } - - // check if it is a relation field - if field.Type != schema.FieldTypeRelation { - return "", nil, fmt.Errorf("Field %q is not a valid relation.", prop) - } - - // auto join the relation - // --- - field.InitOptions() - options, ok := field.Options.(*schema.RelationOptions) - if !ok { - return "", nil, fmt.Errorf("Failed to initialize field %q options.", prop) - } - - relCollection, relErr := r.loadCollection(options.CollectionId) - if relErr != nil { - return "", nil, fmt.Errorf("Failed to find field %q collection.", prop) - } - - cleanFieldName := inflector.Columnify(field.Name) - newCollectionName := relCollection.Name - newTableAlias := currentTableAlias + "_" + cleanFieldName - - jeTable := currentTableAlias + "_" + cleanFieldName + "_je" - jePair := currentTableAlias + "." + cleanFieldName - - r.registerJoin( - fmt.Sprintf( - // note: the case is used to normalize value access for single and multiple relations. - `json_each(CASE WHEN json_valid([[%s]]) THEN [[%s]] ELSE json_array([[%s]]) END)`, - jePair, jePair, jePair, - ), - jeTable, - nil, - ) - r.registerJoin( - inflector.Columnify(newCollectionName), - newTableAlias, - dbx.NewExp(fmt.Sprintf("[[%s.id]] = [[%s.value]]", newTableAlias, jeTable)), - ) - - currentCollectionName = newCollectionName - currentTableAlias = newTableAlias - } - - return "", nil, fmt.Errorf("Failed to resolve field %q.", fieldName) -} - -func (r *RecordFieldResolver) resolveStaticRequestField(path ...string) (resultName string, placeholderParams dbx.Params, err error) { - // ignore error because requestData is dynamic and some of the - // lookup keys may not be defined for the request - resultVal, _ := extractNestedMapVal(r.staticRequestData, path...) - - switch v := resultVal.(type) { - case nil: - return "NULL", nil, nil - case string, bool, int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64: - // no further processing is needed... - default: - // non-plain value - // try casting to string (in case for exampe fmt.Stringer is implemented) - val, castErr := cast.ToStringE(v) - - // if that doesn't work, try encoding it - if castErr != nil { - encoded, jsonErr := json.Marshal(v) - if jsonErr == nil { - val = string(encoded) - } - } - - resultVal = val - } - - placeholder := "f" + security.PseudorandomString(5) - name := fmt.Sprintf("{:%s}", placeholder) - params := dbx.Params{placeholder: resultVal} - - return name, params, nil -} - -func extractNestedMapVal(m map[string]any, keys ...string) (result any, err error) { - var ok bool - - if len(keys) == 0 { - return nil, fmt.Errorf("At least one key should be provided.") - } - - if result, ok = m[keys[0]]; !ok { - return nil, fmt.Errorf("Invalid key path - missing key %q.", keys[0]) - } - - // end key reached - if len(keys) == 1 { - return result, nil - } - - if m, ok = result.(map[string]any); !ok { - return nil, fmt.Errorf("Expected map structure, got %#v.", result) - } - - return extractNestedMapVal(m, keys[1:]...) -} - -func (r *RecordFieldResolver) loadCollection(collectionNameOrId string) (*models.Collection, error) { - // return already loaded - for _, collection := range r.loadedCollections { - if collection.Id == collectionNameOrId || strings.EqualFold(collection.Name, collectionNameOrId) { - return collection, nil - } - } - - // load collection - collection, err := r.dao.FindCollectionByNameOrId(collectionNameOrId) - if err != nil { - return nil, err - } - r.loadedCollections = append(r.loadedCollections, collection) - - return collection, nil -} - -func (r *RecordFieldResolver) registerJoin(tableName string, tableAlias string, on dbx.Expression) { - tableExpr := fmt.Sprintf("%s %s", tableName, tableAlias) - - join := join{ - id: tableAlias, - table: tableExpr, - on: on, - } - - // replace existing join - for i, j := range r.joins { - if j.id == join.id { - r.joins[i] = join - return - } - } - - // register new join - r.joins = append(r.joins, join) -} - -func (r *RecordFieldResolver) registerExpr(expr dbx.Expression) { - r.exprs = append(r.exprs, expr) -} diff --git a/resolvers/record_field_resolver_test.go b/resolvers/record_field_resolver_test.go deleted file mode 100644 index 04b8a95340e4b818dbdc6f469996b98c78c6a690..0000000000000000000000000000000000000000 --- a/resolvers/record_field_resolver_test.go +++ /dev/null @@ -1,351 +0,0 @@ -package resolvers_test - -import ( - "encoding/json" - "regexp" - "testing" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/resolvers" - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tools/list" -) - -func TestRecordFieldResolverUpdateQuery(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - authRecord, err := app.Dao().FindRecordById("users", "4q1xlclmfloku33") - if err != nil { - t.Fatal(err) - } - - requestData := &models.RequestData{ - AuthRecord: authRecord, - } - - scenarios := []struct { - name string - collectionIdOrName string - fields []string - allowHiddenFields bool - expectQuery string - }{ - { - "missing field", - "demo4", - []string{""}, - false, - "SELECT `demo4`.* FROM `demo4`", - }, - { - "non relation field", - "demo4", - []string{"title"}, - false, - "SELECT `demo4`.* FROM `demo4`", - }, - { - "incomplete rel", - "demo4", - []string{"self_rel_one"}, - false, - "SELECT `demo4`.* FROM `demo4`", - }, - { - "single rel (self rel)", - "demo4", - []string{"self_rel_one.title"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_one]]) THEN [[demo4.self_rel_one]] ELSE json_array([[demo4.self_rel_one]]) END) `demo4_self_rel_one_je` LEFT JOIN `demo4` `demo4_self_rel_one` ON [[demo4_self_rel_one.id]] = [[demo4_self_rel_one_je.value]]", - }, - { - "single rel (other collection)", - "demo4", - []string{"rel_one_cascade.title"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.rel_one_cascade]]) THEN [[demo4.rel_one_cascade]] ELSE json_array([[demo4.rel_one_cascade]]) END) `demo4_rel_one_cascade_je` LEFT JOIN `demo3` `demo4_rel_one_cascade` ON [[demo4_rel_one_cascade.id]] = [[demo4_rel_one_cascade_je.value]]", - }, - { - "non-relation field + single rel", - "demo4", - []string{"title", "self_rel_one.title"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_one]]) THEN [[demo4.self_rel_one]] ELSE json_array([[demo4.self_rel_one]]) END) `demo4_self_rel_one_je` LEFT JOIN `demo4` `demo4_self_rel_one` ON [[demo4_self_rel_one.id]] = [[demo4_self_rel_one_je.value]]", - }, - { - "nested incomplete rels", - "demo4", - []string{"self_rel_many.self_rel_one"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE json_array([[demo4.self_rel_many]]) END) `demo4_self_rel_many_je` LEFT JOIN `demo4` `demo4_self_rel_many` ON [[demo4_self_rel_many.id]] = [[demo4_self_rel_many_je.value]]", - }, - { - "nested complete rels", - "demo4", - []string{"self_rel_many.self_rel_one.title"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE json_array([[demo4.self_rel_many]]) END) `demo4_self_rel_many_je` LEFT JOIN `demo4` `demo4_self_rel_many` ON [[demo4_self_rel_many.id]] = [[demo4_self_rel_many_je.value]] LEFT JOIN json_each(CASE WHEN json_valid([[demo4_self_rel_many.self_rel_one]]) THEN [[demo4_self_rel_many.self_rel_one]] ELSE json_array([[demo4_self_rel_many.self_rel_one]]) END) `demo4_self_rel_many_self_rel_one_je` LEFT JOIN `demo4` `demo4_self_rel_many_self_rel_one` ON [[demo4_self_rel_many_self_rel_one.id]] = [[demo4_self_rel_many_self_rel_one_je.value]]", - }, - { - "repeated nested rels", - "demo4", - []string{"self_rel_many.self_rel_one.self_rel_many.self_rel_one.title"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE json_array([[demo4.self_rel_many]]) END) `demo4_self_rel_many_je` LEFT JOIN `demo4` `demo4_self_rel_many` ON [[demo4_self_rel_many.id]] = [[demo4_self_rel_many_je.value]] LEFT JOIN json_each(CASE WHEN json_valid([[demo4_self_rel_many.self_rel_one]]) THEN [[demo4_self_rel_many.self_rel_one]] ELSE json_array([[demo4_self_rel_many.self_rel_one]]) END) `demo4_self_rel_many_self_rel_one_je` LEFT JOIN `demo4` `demo4_self_rel_many_self_rel_one` ON [[demo4_self_rel_many_self_rel_one.id]] = [[demo4_self_rel_many_self_rel_one_je.value]] LEFT JOIN json_each(CASE WHEN json_valid([[demo4_self_rel_many_self_rel_one.self_rel_many]]) THEN [[demo4_self_rel_many_self_rel_one.self_rel_many]] ELSE json_array([[demo4_self_rel_many_self_rel_one.self_rel_many]]) END) `demo4_self_rel_many_self_rel_one_self_rel_many_je` LEFT JOIN `demo4` `demo4_self_rel_many_self_rel_one_self_rel_many` ON [[demo4_self_rel_many_self_rel_one_self_rel_many.id]] = [[demo4_self_rel_many_self_rel_one_self_rel_many_je.value]] LEFT JOIN json_each(CASE WHEN json_valid([[demo4_self_rel_many_self_rel_one_self_rel_many.self_rel_one]]) THEN [[demo4_self_rel_many_self_rel_one_self_rel_many.self_rel_one]] ELSE json_array([[demo4_self_rel_many_self_rel_one_self_rel_many.self_rel_one]]) END) `demo4_self_rel_many_self_rel_one_self_rel_many_self_rel_one_je` LEFT JOIN `demo4` `demo4_self_rel_many_self_rel_one_self_rel_many_self_rel_one` ON [[demo4_self_rel_many_self_rel_one_self_rel_many_self_rel_one.id]] = [[demo4_self_rel_many_self_rel_one_self_rel_many_self_rel_one_je.value]]", - }, - { - "multiple rels", - "demo4", - []string{"self_rel_many.title", "self_rel_one.onefile"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_many]]) THEN [[demo4.self_rel_many]] ELSE json_array([[demo4.self_rel_many]]) END) `demo4_self_rel_many_je` LEFT JOIN `demo4` `demo4_self_rel_many` ON [[demo4_self_rel_many.id]] = [[demo4_self_rel_many_je.value]] LEFT JOIN json_each(CASE WHEN json_valid([[demo4.self_rel_one]]) THEN [[demo4.self_rel_one]] ELSE json_array([[demo4.self_rel_one]]) END) `demo4_self_rel_one_je` LEFT JOIN `demo4` `demo4_self_rel_one` ON [[demo4_self_rel_one.id]] = [[demo4_self_rel_one_je.value]]", - }, - { - "@collection join", - "demo4", - []string{"@collection.demo1.text", "@collection.demo2.active", "@collection.demo1.file_one"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN `demo1` `__collection_demo1` LEFT JOIN `demo2` `__collection_demo2`", - }, - { - "@request.auth fields", - "demo4", - []string{"@request.auth.id", "@request.auth.username", "@request.auth.rel.title", "@request.data.demo"}, - false, - "^" + - regexp.QuoteMeta("SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN `users` `__auth_users` ON [[__auth_users.id]] =") + - " {:.*} " + - regexp.QuoteMeta("LEFT JOIN json_each(CASE WHEN json_valid([[__auth_users.rel]]) THEN [[__auth_users.rel]] ELSE json_array([[__auth_users.rel]]) END) `__auth_users_rel_je` LEFT JOIN `demo2` `__auth_users_rel` ON [[__auth_users_rel.id]] = [[__auth_users_rel_je.value]]") + - "$", - }, - { - "hidden field with system filters (ignore emailVisibility)", - "demo4", - []string{"@collection.users.email", "@request.auth.email"}, - false, - "SELECT DISTINCT `demo4`.* FROM `demo4` LEFT JOIN `users` `__collection_users`", - }, - { - "hidden field (add emailVisibility)", - "users", - []string{"email"}, - false, - "SELECT `users`.* FROM `users` WHERE [[users.emailVisibility]] = TRUE", - }, - { - "hidden field (force ignore emailVisibility)", - "users", - []string{"email"}, - true, - "SELECT `users`.* FROM `users`", - }, - } - - for _, s := range scenarios { - collection, err := app.Dao().FindCollectionByNameOrId(s.collectionIdOrName) - if err != nil { - t.Errorf("[%s] Failed to load collection %s: %v", s.name, s.collectionIdOrName, err) - } - - query := app.Dao().RecordQuery(collection) - - r := resolvers.NewRecordFieldResolver(app.Dao(), collection, requestData, s.allowHiddenFields) - for _, field := range s.fields { - r.Resolve(field) - } - - if err := r.UpdateQuery(query); err != nil { - t.Errorf("[%s] UpdateQuery failed with error %v", s.name, err) - continue - } - - rawQuery := query.Build().SQL() - - if !list.ExistInSliceWithRegex(rawQuery, []string{s.expectQuery}) { - t.Errorf("[%s] Expected query\n %v \ngot:\n %v", s.name, s.expectQuery, rawQuery) - } - } -} - -func TestRecordFieldResolverResolveSchemaFields(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo4") - if err != nil { - t.Fatal(err) - } - - authRecord, err := app.Dao().FindRecordById("users", "4q1xlclmfloku33") - if err != nil { - t.Fatal(err) - } - - requestData := &models.RequestData{ - AuthRecord: authRecord, - } - - r := resolvers.NewRecordFieldResolver(app.Dao(), collection, requestData, true) - - scenarios := []struct { - fieldName string - expectError bool - expectName string - }{ - {"", true, ""}, - {" ", true, ""}, - {"unknown", true, ""}, - {"invalid format", true, ""}, - {"id", false, "[[demo4.id]]"}, - {"created", false, "[[demo4.created]]"}, - {"updated", false, "[[demo4.updated]]"}, - {"title", false, "[[demo4.title]]"}, - {"title.test", true, ""}, - {"self_rel_many", false, "[[demo4.self_rel_many]]"}, - {"self_rel_many.", true, ""}, - {"self_rel_many.unknown", true, ""}, - {"self_rel_many.title", false, "[[demo4_self_rel_many.title]]"}, - {"self_rel_many.self_rel_one.self_rel_many.title", false, "[[demo4_self_rel_many_self_rel_one_self_rel_many.title]]"}, - // json_extract - {"json_array.0", false, "JSON_EXTRACT([[demo4.json_array]], '$[0]')"}, - {"json_object.a.b.c", false, "JSON_EXTRACT([[demo4.json_object]], '$.a.b.c')"}, - // @request.auth relation join: - {"@request.auth.rel", false, "[[__auth_users.rel]]"}, - {"@request.auth.rel.title", false, "[[__auth_users_rel.title]]"}, - // @collection fieds: - {"@collect", true, ""}, - {"collection.demo4.title", true, ""}, - {"@collection", true, ""}, - {"@collection.unknown", true, ""}, - {"@collection.demo2", true, ""}, - {"@collection.demo2.", true, ""}, - {"@collection.demo2.title", false, "[[__collection_demo2.title]]"}, - {"@collection.demo4.title", false, "[[__collection_demo4.title]]"}, - {"@collection.demo4.id", false, "[[__collection_demo4.id]]"}, - {"@collection.demo4.created", false, "[[__collection_demo4.created]]"}, - {"@collection.demo4.updated", false, "[[__collection_demo4.updated]]"}, - {"@collection.demo4.self_rel_many.missing", true, ""}, - {"@collection.demo4.self_rel_many.self_rel_one.self_rel_many.self_rel_one.title", false, "[[__collection_demo4_self_rel_many_self_rel_one_self_rel_many_self_rel_one.title]]"}, - } - - for _, s := range scenarios { - name, params, err := r.Resolve(s.fieldName) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%q) Expected hasErr %v, got %v (%v)", s.fieldName, s.expectError, hasErr, err) - continue - } - - if name != s.expectName { - t.Errorf("(%q) Expected name %q, got %q", s.fieldName, s.expectName, name) - } - - // params should be empty for non @request fields - if len(params) != 0 { - t.Errorf("(%q) Expected 0 params, got %v", s.fieldName, params) - } - } -} - -func TestRecordFieldResolverResolveStaticRequestDataFields(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - collection, err := app.Dao().FindCollectionByNameOrId("demo4") - if err != nil { - t.Fatal(err) - } - - authRecord, err := app.Dao().FindRecordById("users", "4q1xlclmfloku33") - if err != nil { - t.Fatal(err) - } - - requestData := &models.RequestData{ - Method: "get", - Query: map[string]any{ - "a": 123, - }, - Data: map[string]any{ - "b": 456, - "c": map[string]int{"sub": 1}, - }, - AuthRecord: authRecord, - } - - r := resolvers.NewRecordFieldResolver(app.Dao(), collection, requestData, true) - - scenarios := []struct { - fieldName string - expectError bool - expectParamValue string // encoded json - }{ - {"@request", true, ""}, - {"@request.invalid format", true, ""}, - {"@request.invalid_format2!", true, ""}, - {"@request.missing", true, ""}, - {"@request.method", false, `"get"`}, - {"@request.query", true, ``}, - {"@request.query.a", false, `123`}, - {"@request.query.a.missing", false, ``}, - {"@request.data", true, ``}, - {"@request.data.b", false, `456`}, - {"@request.data.b.missing", false, ``}, - {"@request.data.c", false, `"{\"sub\":1}"`}, - {"@request.auth", true, ""}, - {"@request.auth.id", false, `"4q1xlclmfloku33"`}, - {"@request.auth.email", false, `"test@example.com"`}, - {"@request.auth.username", false, `"users75657"`}, - {"@request.auth.verified", false, `false`}, - {"@request.auth.emailVisibility", false, `false`}, - {"@request.auth.missing", false, `NULL`}, - } - - for i, s := range scenarios { - name, params, err := r.Resolve(s.fieldName) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if hasErr { - continue - } - - // missing key - // --- - if len(params) == 0 { - if name != "NULL" { - t.Errorf("(%d) Expected 0 placeholder parameters for %v, got %v", i, name, params) - } - continue - } - - // existing key - // --- - if len(params) != 1 { - t.Errorf("(%d) Expected 1 placeholder parameter for %v, got %v", i, name, params) - continue - } - - var paramName string - var paramValue any - for k, v := range params { - paramName = k - paramValue = v - } - - if name != ("{:" + paramName + "}") { - t.Errorf("(%d) Expected parameter name %q, got %q", i, paramName, name) - } - - encodedParamValue, _ := json.Marshal(paramValue) - if string(encodedParamValue) != s.expectParamValue { - t.Errorf("(%d) Expected params %v for %v, got %v", i, s.expectParamValue, name, string(encodedParamValue)) - } - } -} diff --git a/resolvers/resolvers.go b/resolvers/resolvers.go deleted file mode 100644 index 8c045a89791ba1942c5a92ca738b5f3f2e12f8fe..0000000000000000000000000000000000000000 --- a/resolvers/resolvers.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package resolvers contains custom search.FieldResolver implementations. -package resolvers diff --git a/tests/api.go b/tests/api.go deleted file mode 100644 index 554290a6be8d700f34ae115aa7f919e0f534bc85..0000000000000000000000000000000000000000 --- a/tests/api.go +++ /dev/null @@ -1,165 +0,0 @@ -package tests - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "io" - "net/http/httptest" - "strings" - "testing" - "time" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/apis" -) - -// ApiScenario defines a single api request test case/scenario. -type ApiScenario struct { - Name string - Method string - Url string - Body io.Reader - RequestHeaders map[string]string - - // Delay adds a delay before checking the expectations usually - // to ensure that all fired non-awaited go routines have finished - Delay time.Duration - - // expectations - // --- - ExpectedStatus int - ExpectedContent []string - NotExpectedContent []string - ExpectedEvents map[string]int - - // test hooks - // --- - TestAppFactory func() (*TestApp, error) - BeforeTestFunc func(t *testing.T, app *TestApp, e *echo.Echo) - AfterTestFunc func(t *testing.T, app *TestApp, e *echo.Echo) -} - -// Test executes the test case/scenario. -func (scenario *ApiScenario) Test(t *testing.T) { - var testApp *TestApp - var testAppErr error - if scenario.TestAppFactory != nil { - testApp, testAppErr = scenario.TestAppFactory() - } else { - testApp, testAppErr = NewTestApp() - } - if testAppErr != nil { - t.Fatalf("Failed to initialize the test app instance: %v", testAppErr) - } - defer testApp.Cleanup() - - e, err := apis.InitApi(testApp) - if err != nil { - t.Fatal(err) - } - - if scenario.BeforeTestFunc != nil { - scenario.BeforeTestFunc(t, testApp, e) - } - - recorder := httptest.NewRecorder() - req := httptest.NewRequest(scenario.Method, scenario.Url, scenario.Body) - - // add middleware to timeout long-running requests (eg. keep-alive routes) - e.Pre(func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - ctx, cancelFunc := context.WithTimeout(c.Request().Context(), 100*time.Millisecond) - defer cancelFunc() - c.SetRequest(c.Request().Clone(ctx)) - return next(c) - } - }) - - // set default header - req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON) - - // set scenario headers - for k, v := range scenario.RequestHeaders { - req.Header.Set(k, v) - } - - // execute request - e.ServeHTTP(recorder, req) - - res := recorder.Result() - - var prefix = scenario.Name - if prefix == "" { - prefix = fmt.Sprintf("%s:%s", scenario.Method, scenario.Url) - } - - if res.StatusCode != scenario.ExpectedStatus { - t.Errorf("[%s] Expected status code %d, got %d", prefix, scenario.ExpectedStatus, res.StatusCode) - } - - if scenario.Delay > 0 { - time.Sleep(scenario.Delay) - } - - if len(scenario.ExpectedContent) == 0 && len(scenario.NotExpectedContent) == 0 { - if len(recorder.Body.Bytes()) != 0 { - t.Errorf("[%s] Expected empty body, got \n%v", prefix, recorder.Body.String()) - } - } else { - // normalize json response format - buffer := new(bytes.Buffer) - err := json.Compact(buffer, recorder.Body.Bytes()) - var normalizedBody string - if err != nil { - // not a json... - normalizedBody = recorder.Body.String() - } else { - normalizedBody = buffer.String() - } - - for _, item := range scenario.ExpectedContent { - if !strings.Contains(normalizedBody, item) { - t.Errorf("[%s] Cannot find %v in response body \n%v", prefix, item, normalizedBody) - break - } - } - - for _, item := range scenario.NotExpectedContent { - if strings.Contains(normalizedBody, item) { - t.Errorf("[%s] Didn't expect %v in response body \n%v", prefix, item, normalizedBody) - break - } - } - } - - // to minimize the breaking changes we always expect the error - // events to be called on API error - if res.StatusCode >= 400 { - if scenario.ExpectedEvents == nil { - scenario.ExpectedEvents = map[string]int{} - } - if _, ok := scenario.ExpectedEvents["OnBeforeApiError"]; !ok { - scenario.ExpectedEvents["OnBeforeApiError"] = 1 - } - if _, ok := scenario.ExpectedEvents["OnAfterApiError"]; !ok { - scenario.ExpectedEvents["OnAfterApiError"] = 1 - } - } - - if len(testApp.EventCalls) > len(scenario.ExpectedEvents) { - t.Errorf("[%s] Expected events %v, got %v", prefix, scenario.ExpectedEvents, testApp.EventCalls) - } - - for event, expectedCalls := range scenario.ExpectedEvents { - actualCalls := testApp.EventCalls[event] - if actualCalls != expectedCalls { - t.Errorf("[%s] Expected event %s to be called %d, got %d", prefix, event, expectedCalls, actualCalls) - } - } - - if scenario.AfterTestFunc != nil { - scenario.AfterTestFunc(t, testApp, e) - } -} diff --git a/tests/app.go b/tests/app.go deleted file mode 100644 index 7174430147209f96adb46593822cae02076660ef..0000000000000000000000000000000000000000 --- a/tests/app.go +++ /dev/null @@ -1,514 +0,0 @@ -// Package tests provides common helpers and mocks used in PocketBase application tests. -package tests - -import ( - "io" - "os" - "path" - "path/filepath" - "runtime" - - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/tools/mailer" -) - -// TestApp is a wrapper app instance used for testing. -type TestApp struct { - *core.BaseApp - - // EventCalls defines a map to inspect which app events - // (and how many times) were triggered. - // - // The following events are not counted because they execute always: - // - OnBeforeBootstrap - // - OnAfterBootstrap - // - OnBeforeServe - EventCalls map[string]int - - TestMailer *TestMailer -} - -// Cleanup resets the test application state and removes the test -// app's dataDir from the filesystem. -// -// After this call, the app instance shouldn't be used anymore. -func (t *TestApp) Cleanup() { - t.ResetEventCalls() - t.ResetBootstrapState() - - if t.DataDir() != "" { - os.RemoveAll(t.DataDir()) - } -} - -func (t *TestApp) NewMailClient() mailer.Mailer { - t.TestMailer.Reset() - return t.TestMailer -} - -// ResetEventCalls resets the EventCalls counter. -func (t *TestApp) ResetEventCalls() { - t.EventCalls = make(map[string]int) -} - -// NewTestApp creates and initializes a test application instance. -// -// It is the caller's responsibility to call `app.Cleanup()` -// when the app is no longer needed. -func NewTestApp(optTestDataDir ...string) (*TestApp, error) { - var testDataDir string - if len(optTestDataDir) == 0 || optTestDataDir[0] == "" { - // fallback to the default test data directory - _, currentFile, _, _ := runtime.Caller(0) - testDataDir = filepath.Join(path.Dir(currentFile), "data") - } else { - testDataDir = optTestDataDir[0] - } - - tempDir, err := TempDirClone(testDataDir) - if err != nil { - return nil, err - } - - app := core.NewBaseApp(tempDir, "pb_test_env", false) - - // load data dir and db connections - if err := app.Bootstrap(); err != nil { - return nil, err - } - - // force disable request logs because the logs db call execute in a separate - // go routine and it is possible to panic due to earlier api test completion. - app.Settings().Logs.MaxDays = 0 - - t := &TestApp{ - BaseApp: app, - EventCalls: make(map[string]int), - TestMailer: &TestMailer{}, - } - - t.OnBeforeApiError().Add(func(e *core.ApiErrorEvent) error { - t.EventCalls["OnBeforeApiError"]++ - return nil - }) - - t.OnAfterApiError().Add(func(e *core.ApiErrorEvent) error { - t.EventCalls["OnAfterApiError"]++ - return nil - }) - - t.OnModelBeforeCreate().Add(func(e *core.ModelEvent) error { - t.EventCalls["OnModelBeforeCreate"]++ - return nil - }) - - t.OnModelAfterCreate().Add(func(e *core.ModelEvent) error { - t.EventCalls["OnModelAfterCreate"]++ - return nil - }) - - t.OnModelBeforeUpdate().Add(func(e *core.ModelEvent) error { - t.EventCalls["OnModelBeforeUpdate"]++ - return nil - }) - - t.OnModelAfterUpdate().Add(func(e *core.ModelEvent) error { - t.EventCalls["OnModelAfterUpdate"]++ - return nil - }) - - t.OnModelBeforeDelete().Add(func(e *core.ModelEvent) error { - t.EventCalls["OnModelBeforeDelete"]++ - return nil - }) - - t.OnModelAfterDelete().Add(func(e *core.ModelEvent) error { - t.EventCalls["OnModelAfterDelete"]++ - return nil - }) - - t.OnRecordsListRequest().Add(func(e *core.RecordsListEvent) error { - t.EventCalls["OnRecordsListRequest"]++ - return nil - }) - - t.OnRecordViewRequest().Add(func(e *core.RecordViewEvent) error { - t.EventCalls["OnRecordViewRequest"]++ - return nil - }) - - t.OnRecordBeforeCreateRequest().Add(func(e *core.RecordCreateEvent) error { - t.EventCalls["OnRecordBeforeCreateRequest"]++ - return nil - }) - - t.OnRecordAfterCreateRequest().Add(func(e *core.RecordCreateEvent) error { - t.EventCalls["OnRecordAfterCreateRequest"]++ - return nil - }) - - t.OnRecordBeforeUpdateRequest().Add(func(e *core.RecordUpdateEvent) error { - t.EventCalls["OnRecordBeforeUpdateRequest"]++ - return nil - }) - - t.OnRecordAfterUpdateRequest().Add(func(e *core.RecordUpdateEvent) error { - t.EventCalls["OnRecordAfterUpdateRequest"]++ - return nil - }) - - t.OnRecordBeforeDeleteRequest().Add(func(e *core.RecordDeleteEvent) error { - t.EventCalls["OnRecordBeforeDeleteRequest"]++ - return nil - }) - - t.OnRecordAfterDeleteRequest().Add(func(e *core.RecordDeleteEvent) error { - t.EventCalls["OnRecordAfterDeleteRequest"]++ - return nil - }) - - t.OnRecordAuthRequest().Add(func(e *core.RecordAuthEvent) error { - t.EventCalls["OnRecordAuthRequest"]++ - return nil - }) - - t.OnRecordBeforeRequestPasswordResetRequest().Add(func(e *core.RecordRequestPasswordResetEvent) error { - t.EventCalls["OnRecordBeforeRequestPasswordResetRequest"]++ - return nil - }) - - t.OnRecordAfterRequestPasswordResetRequest().Add(func(e *core.RecordRequestPasswordResetEvent) error { - t.EventCalls["OnRecordAfterRequestPasswordResetRequest"]++ - return nil - }) - - t.OnRecordBeforeConfirmPasswordResetRequest().Add(func(e *core.RecordConfirmPasswordResetEvent) error { - t.EventCalls["OnRecordBeforeConfirmPasswordResetRequest"]++ - return nil - }) - - t.OnRecordAfterConfirmPasswordResetRequest().Add(func(e *core.RecordConfirmPasswordResetEvent) error { - t.EventCalls["OnRecordAfterConfirmPasswordResetRequest"]++ - return nil - }) - - t.OnRecordBeforeRequestVerificationRequest().Add(func(e *core.RecordRequestVerificationEvent) error { - t.EventCalls["OnRecordBeforeRequestVerificationRequest"]++ - return nil - }) - - t.OnRecordAfterRequestVerificationRequest().Add(func(e *core.RecordRequestVerificationEvent) error { - t.EventCalls["OnRecordAfterRequestVerificationRequest"]++ - return nil - }) - - t.OnRecordBeforeConfirmVerificationRequest().Add(func(e *core.RecordConfirmVerificationEvent) error { - t.EventCalls["OnRecordBeforeConfirmVerificationRequest"]++ - return nil - }) - - t.OnRecordAfterConfirmVerificationRequest().Add(func(e *core.RecordConfirmVerificationEvent) error { - t.EventCalls["OnRecordAfterConfirmVerificationRequest"]++ - return nil - }) - - t.OnRecordBeforeRequestEmailChangeRequest().Add(func(e *core.RecordRequestEmailChangeEvent) error { - t.EventCalls["OnRecordBeforeRequestEmailChangeRequest"]++ - return nil - }) - - t.OnRecordAfterRequestEmailChangeRequest().Add(func(e *core.RecordRequestEmailChangeEvent) error { - t.EventCalls["OnRecordAfterRequestEmailChangeRequest"]++ - return nil - }) - - t.OnRecordBeforeConfirmEmailChangeRequest().Add(func(e *core.RecordConfirmEmailChangeEvent) error { - t.EventCalls["OnRecordBeforeConfirmEmailChangeRequest"]++ - return nil - }) - - t.OnRecordAfterConfirmEmailChangeRequest().Add(func(e *core.RecordConfirmEmailChangeEvent) error { - t.EventCalls["OnRecordAfterConfirmEmailChangeRequest"]++ - return nil - }) - - t.OnRecordListExternalAuthsRequest().Add(func(e *core.RecordListExternalAuthsEvent) error { - t.EventCalls["OnRecordListExternalAuthsRequest"]++ - return nil - }) - - t.OnRecordBeforeUnlinkExternalAuthRequest().Add(func(e *core.RecordUnlinkExternalAuthEvent) error { - t.EventCalls["OnRecordBeforeUnlinkExternalAuthRequest"]++ - return nil - }) - - t.OnRecordAfterUnlinkExternalAuthRequest().Add(func(e *core.RecordUnlinkExternalAuthEvent) error { - t.EventCalls["OnRecordAfterUnlinkExternalAuthRequest"]++ - return nil - }) - - t.OnMailerBeforeAdminResetPasswordSend().Add(func(e *core.MailerAdminEvent) error { - t.EventCalls["OnMailerBeforeAdminResetPasswordSend"]++ - return nil - }) - - t.OnMailerAfterAdminResetPasswordSend().Add(func(e *core.MailerAdminEvent) error { - t.EventCalls["OnMailerAfterAdminResetPasswordSend"]++ - return nil - }) - - t.OnMailerBeforeRecordResetPasswordSend().Add(func(e *core.MailerRecordEvent) error { - t.EventCalls["OnMailerBeforeRecordResetPasswordSend"]++ - return nil - }) - - t.OnMailerAfterRecordResetPasswordSend().Add(func(e *core.MailerRecordEvent) error { - t.EventCalls["OnMailerAfterRecordResetPasswordSend"]++ - return nil - }) - - t.OnMailerBeforeRecordVerificationSend().Add(func(e *core.MailerRecordEvent) error { - t.EventCalls["OnMailerBeforeRecordVerificationSend"]++ - return nil - }) - - t.OnMailerAfterRecordVerificationSend().Add(func(e *core.MailerRecordEvent) error { - t.EventCalls["OnMailerAfterRecordVerificationSend"]++ - return nil - }) - - t.OnMailerBeforeRecordChangeEmailSend().Add(func(e *core.MailerRecordEvent) error { - t.EventCalls["OnMailerBeforeRecordChangeEmailSend"]++ - return nil - }) - - t.OnMailerAfterRecordChangeEmailSend().Add(func(e *core.MailerRecordEvent) error { - t.EventCalls["OnMailerAfterRecordChangeEmailSend"]++ - return nil - }) - - t.OnRealtimeConnectRequest().Add(func(e *core.RealtimeConnectEvent) error { - t.EventCalls["OnRealtimeConnectRequest"]++ - return nil - }) - - t.OnRealtimeDisconnectRequest().Add(func(e *core.RealtimeDisconnectEvent) error { - t.EventCalls["OnRealtimeDisconnectRequest"]++ - return nil - }) - - t.OnRealtimeBeforeMessageSend().Add(func(e *core.RealtimeMessageEvent) error { - t.EventCalls["OnRealtimeBeforeMessageSend"]++ - return nil - }) - - t.OnRealtimeAfterMessageSend().Add(func(e *core.RealtimeMessageEvent) error { - t.EventCalls["OnRealtimeAfterMessageSend"]++ - return nil - }) - - t.OnRealtimeBeforeSubscribeRequest().Add(func(e *core.RealtimeSubscribeEvent) error { - t.EventCalls["OnRealtimeBeforeSubscribeRequest"]++ - return nil - }) - - t.OnRealtimeAfterSubscribeRequest().Add(func(e *core.RealtimeSubscribeEvent) error { - t.EventCalls["OnRealtimeAfterSubscribeRequest"]++ - return nil - }) - - t.OnSettingsListRequest().Add(func(e *core.SettingsListEvent) error { - t.EventCalls["OnSettingsListRequest"]++ - return nil - }) - - t.OnSettingsBeforeUpdateRequest().Add(func(e *core.SettingsUpdateEvent) error { - t.EventCalls["OnSettingsBeforeUpdateRequest"]++ - return nil - }) - - t.OnSettingsAfterUpdateRequest().Add(func(e *core.SettingsUpdateEvent) error { - t.EventCalls["OnSettingsAfterUpdateRequest"]++ - return nil - }) - - t.OnCollectionsListRequest().Add(func(e *core.CollectionsListEvent) error { - t.EventCalls["OnCollectionsListRequest"]++ - return nil - }) - - t.OnCollectionViewRequest().Add(func(e *core.CollectionViewEvent) error { - t.EventCalls["OnCollectionViewRequest"]++ - return nil - }) - - t.OnCollectionBeforeCreateRequest().Add(func(e *core.CollectionCreateEvent) error { - t.EventCalls["OnCollectionBeforeCreateRequest"]++ - return nil - }) - - t.OnCollectionAfterCreateRequest().Add(func(e *core.CollectionCreateEvent) error { - t.EventCalls["OnCollectionAfterCreateRequest"]++ - return nil - }) - - t.OnCollectionBeforeUpdateRequest().Add(func(e *core.CollectionUpdateEvent) error { - t.EventCalls["OnCollectionBeforeUpdateRequest"]++ - return nil - }) - - t.OnCollectionAfterUpdateRequest().Add(func(e *core.CollectionUpdateEvent) error { - t.EventCalls["OnCollectionAfterUpdateRequest"]++ - return nil - }) - - t.OnCollectionBeforeDeleteRequest().Add(func(e *core.CollectionDeleteEvent) error { - t.EventCalls["OnCollectionBeforeDeleteRequest"]++ - return nil - }) - - t.OnCollectionAfterDeleteRequest().Add(func(e *core.CollectionDeleteEvent) error { - t.EventCalls["OnCollectionAfterDeleteRequest"]++ - return nil - }) - - t.OnCollectionsBeforeImportRequest().Add(func(e *core.CollectionsImportEvent) error { - t.EventCalls["OnCollectionsBeforeImportRequest"]++ - return nil - }) - - t.OnCollectionsAfterImportRequest().Add(func(e *core.CollectionsImportEvent) error { - t.EventCalls["OnCollectionsAfterImportRequest"]++ - return nil - }) - - t.OnAdminsListRequest().Add(func(e *core.AdminsListEvent) error { - t.EventCalls["OnAdminsListRequest"]++ - return nil - }) - - t.OnAdminViewRequest().Add(func(e *core.AdminViewEvent) error { - t.EventCalls["OnAdminViewRequest"]++ - return nil - }) - - t.OnAdminBeforeCreateRequest().Add(func(e *core.AdminCreateEvent) error { - t.EventCalls["OnAdminBeforeCreateRequest"]++ - return nil - }) - - t.OnAdminAfterCreateRequest().Add(func(e *core.AdminCreateEvent) error { - t.EventCalls["OnAdminAfterCreateRequest"]++ - return nil - }) - - t.OnAdminBeforeUpdateRequest().Add(func(e *core.AdminUpdateEvent) error { - t.EventCalls["OnAdminBeforeUpdateRequest"]++ - return nil - }) - - t.OnAdminAfterUpdateRequest().Add(func(e *core.AdminUpdateEvent) error { - t.EventCalls["OnAdminAfterUpdateRequest"]++ - return nil - }) - - t.OnAdminBeforeDeleteRequest().Add(func(e *core.AdminDeleteEvent) error { - t.EventCalls["OnAdminBeforeDeleteRequest"]++ - return nil - }) - - t.OnAdminAfterDeleteRequest().Add(func(e *core.AdminDeleteEvent) error { - t.EventCalls["OnAdminAfterDeleteRequest"]++ - return nil - }) - - t.OnAdminAuthRequest().Add(func(e *core.AdminAuthEvent) error { - t.EventCalls["OnAdminAuthRequest"]++ - return nil - }) - - t.OnFileDownloadRequest().Add(func(e *core.FileDownloadEvent) error { - t.EventCalls["OnFileDownloadRequest"]++ - return nil - }) - - return t, nil -} - -// TempDirClone creates a new temporary directory copy from the -// provided directory path. -// -// It is the caller's responsibility to call `os.RemoveAll(tempDir)` -// when the directory is no longer needed! -func TempDirClone(dirToClone string) (string, error) { - tempDir, err := os.MkdirTemp("", "pb_test_*") - if err != nil { - return "", err - } - - // copy everything from testDataDir to tempDir - if err := copyDir(dirToClone, tempDir); err != nil { - return "", err - } - - return tempDir, nil -} - -// ------------------------------------------------------------------- -// Helpers -// ------------------------------------------------------------------- - -func copyDir(src string, dest string) error { - if err := os.MkdirAll(dest, os.ModePerm); err != nil { - return err - } - - sourceDir, err := os.Open(src) - if err != nil { - return err - } - defer sourceDir.Close() - - items, err := sourceDir.Readdir(-1) - if err != nil { - return err - } - - for _, item := range items { - fullSrcPath := filepath.Join(src, item.Name()) - fullDestPath := filepath.Join(dest, item.Name()) - - var copyErr error - if item.IsDir() { - copyErr = copyDir(fullSrcPath, fullDestPath) - } else { - copyErr = copyFile(fullSrcPath, fullDestPath) - } - - if copyErr != nil { - return copyErr - } - } - - return nil -} - -func copyFile(src string, dest string) error { - srcFile, err := os.Open(src) - if err != nil { - return err - } - defer srcFile.Close() - - destFile, err := os.Create(dest) - if err != nil { - return err - } - defer destFile.Close() - - if _, err := io.Copy(destFile, srcFile); err != nil { - return err - } - - return nil -} diff --git a/tests/data/.gitignore b/tests/data/.gitignore deleted file mode 100644 index b7eca6ed358e5265f75fab1095fac2c698f749c3..0000000000000000000000000000000000000000 --- a/tests/data/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.db-shm -*.db-wal diff --git a/tests/data/data.db b/tests/data/data.db deleted file mode 100644 index 4ff0718b9e9c4fba9ec710aa0da8166c4aabdb2f..0000000000000000000000000000000000000000 Binary files a/tests/data/data.db and /dev/null differ diff --git a/tests/data/logs.db b/tests/data/logs.db deleted file mode 100644 index 363a146ce03586e5cf65dc816713e4a4aa5dffa5..0000000000000000000000000000000000000000 Binary files a/tests/data/logs.db and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png deleted file mode 100644 index f6ce991a899fe7894821ae0b946074b2df783dd6..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png.attrs deleted file mode 100644 index e78288f65aafc8b11a467f01374dda6287203ddf..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"zZhZjzVvCvpcxtMAJie3GQ=="} diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/0x50_300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/0x50_300_1SEi6Q6U72.png deleted file mode 100644 index 21cedaff35094808532f8f7778058be406a3c109..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/0x50_300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/0x50_300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/0x50_300_1SEi6Q6U72.png.attrs deleted file mode 100644 index 25de6a1b656afbc429240681295fa88bd4be5d0e..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/0x50_300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"iqCiUST0LvGibMMM1qxZAA=="} diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/100x100_300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/100x100_300_1SEi6Q6U72.png deleted file mode 100644 index 1b876773a71ac97ea074e3167990cef97c6f49e1..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/100x100_300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/100x100_300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/100x100_300_1SEi6Q6U72.png.attrs deleted file mode 100644 index 64e4c1d2dc4525b815a0e66a1bce86a15c8b1ca0..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/100x100_300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"R7TqfvF8HP3C4+FO2eZ9tg=="} diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x0_300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x0_300_1SEi6Q6U72.png deleted file mode 100644 index 8eef56dab7b6eb042c4d15dca0a2622c13383f7e..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x0_300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x0_300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x0_300_1SEi6Q6U72.png.attrs deleted file mode 100644 index a382ad30b7929bbad8a03a0de9a2797d32b141e8..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x0_300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"XQUKRr4ZwZ9MTo2kR+KfIg=="} diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50_300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50_300_1SEi6Q6U72.png deleted file mode 100644 index e261a55ca00ee57d2011cffc4b3d990e1a42a245..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50_300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50_300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50_300_1SEi6Q6U72.png.attrs deleted file mode 100644 index df305abc380d21a6f5119f601a8bdde24f59341b..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50_300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"EoyFICWlQdYZgUYTEMsp/A=="} diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50b_300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50b_300_1SEi6Q6U72.png deleted file mode 100644 index 77b11074276834d9632172892e20d8f0b150536e..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50b_300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50b_300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50b_300_1SEi6Q6U72.png.attrs deleted file mode 100644 index 0a7f16556bf592353a3f9832a87f0adcd373f359..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50b_300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"Pb/AI46vKOtcBW9bOsdREA=="} diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50f_300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50f_300_1SEi6Q6U72.png deleted file mode 100644 index 21cedaff35094808532f8f7778058be406a3c109..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50f_300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50f_300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50f_300_1SEi6Q6U72.png.attrs deleted file mode 100644 index 25de6a1b656afbc429240681295fa88bd4be5d0e..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50f_300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"iqCiUST0LvGibMMM1qxZAA=="} diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50t_300_1SEi6Q6U72.png b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50t_300_1SEi6Q6U72.png deleted file mode 100644 index beeaf735c6416215937bf443db8fedd94de8cf38..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50t_300_1SEi6Q6U72.png and /dev/null differ diff --git a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50t_300_1SEi6Q6U72.png.attrs b/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50t_300_1SEi6Q6U72.png.attrs deleted file mode 100644 index 7774ef0abfed97f472c77b709df6c00d6fda9334..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/4q1xlclmfloku33/thumbs_300_1SEi6Q6U72.png/70x50t_300_1SEi6Q6U72.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"rcwrlxKlvwTgDpsHLHzBqA=="} diff --git a/tests/data/storage/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt b/tests/data/storage/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt deleted file mode 100644 index 9daeafb9864cf43055ae93beb0afd6c7d144bfa4..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/tests/data/storage/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt.attrs b/tests/data/storage/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt.attrs deleted file mode 100644 index 3396b8b701134da58a38c8f58b9951e45d2cfd3b..0000000000000000000000000000000000000000 --- a/tests/data/storage/_pb_users_auth_/oap640cot4yru2s/test_kfd2wYLxkz.txt.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"text/plain; charset=utf-8","user.metadata":null,"md5":"2Oj8otwPiW/Xy0ywAxuiSQ=="} diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/300_WlbFWSGmW9.png b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/300_WlbFWSGmW9.png deleted file mode 100644 index f6ce991a899fe7894821ae0b946074b2df783dd6..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/300_WlbFWSGmW9.png and /dev/null differ diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/300_WlbFWSGmW9.png.attrs b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/300_WlbFWSGmW9.png.attrs deleted file mode 100644 index e78288f65aafc8b11a467f01374dda6287203ddf..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/300_WlbFWSGmW9.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"zZhZjzVvCvpcxtMAJie3GQ=="} diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/logo_vcfJJG5TAh.svg b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/logo_vcfJJG5TAh.svg deleted file mode 100644 index 5b5de956be9559dcd24af65b67875992b244f2c1..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/logo_vcfJJG5TAh.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/logo_vcfJJG5TAh.svg.attrs b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/logo_vcfJJG5TAh.svg.attrs deleted file mode 100644 index 7938a5a420e076ca7f7e05437e8eae7c59383515..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/logo_vcfJJG5TAh.svg.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/svg+xml","user.metadata":null,"md5":"9/B7afas4c3O6vbFcbpOug=="} diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_QZFjKjXchk.txt b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_QZFjKjXchk.txt deleted file mode 100644 index 9daeafb9864cf43055ae93beb0afd6c7d144bfa4..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_QZFjKjXchk.txt +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_QZFjKjXchk.txt.attrs b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_QZFjKjXchk.txt.attrs deleted file mode 100644 index 3396b8b701134da58a38c8f58b9951e45d2cfd3b..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_QZFjKjXchk.txt.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"text/plain; charset=utf-8","user.metadata":null,"md5":"2Oj8otwPiW/Xy0ywAxuiSQ=="} diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_d61b33QdDU.txt b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_d61b33QdDU.txt deleted file mode 100644 index 9daeafb9864cf43055ae93beb0afd6c7d144bfa4..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_d61b33QdDU.txt +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_d61b33QdDU.txt.attrs b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_d61b33QdDU.txt.attrs deleted file mode 100644 index 3396b8b701134da58a38c8f58b9951e45d2cfd3b..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/test_d61b33QdDU.txt.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"text/plain; charset=utf-8","user.metadata":null,"md5":"2Oj8otwPiW/Xy0ywAxuiSQ=="} diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/thumbs_300_WlbFWSGmW9.png/100x100_300_WlbFWSGmW9.png b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/thumbs_300_WlbFWSGmW9.png/100x100_300_WlbFWSGmW9.png deleted file mode 100644 index 1b876773a71ac97ea074e3167990cef97c6f49e1..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/thumbs_300_WlbFWSGmW9.png/100x100_300_WlbFWSGmW9.png and /dev/null differ diff --git a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/thumbs_300_WlbFWSGmW9.png/100x100_300_WlbFWSGmW9.png.attrs b/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/thumbs_300_WlbFWSGmW9.png/100x100_300_WlbFWSGmW9.png.attrs deleted file mode 100644 index 64e4c1d2dc4525b815a0e66a1bce86a15c8b1ca0..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/84nmscqy84lsi1t/thumbs_300_WlbFWSGmW9.png/100x100_300_WlbFWSGmW9.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"R7TqfvF8HP3C4+FO2eZ9tg=="} diff --git a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/300_Jsjq7RdBgA.png b/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/300_Jsjq7RdBgA.png deleted file mode 100644 index f6ce991a899fe7894821ae0b946074b2df783dd6..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/300_Jsjq7RdBgA.png and /dev/null differ diff --git a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/300_Jsjq7RdBgA.png.attrs b/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/300_Jsjq7RdBgA.png.attrs deleted file mode 100644 index e78288f65aafc8b11a467f01374dda6287203ddf..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/300_Jsjq7RdBgA.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"zZhZjzVvCvpcxtMAJie3GQ=="} diff --git a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/thumbs_300_Jsjq7RdBgA.png/100x100_300_Jsjq7RdBgA.png b/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/thumbs_300_Jsjq7RdBgA.png/100x100_300_Jsjq7RdBgA.png deleted file mode 100644 index 1b876773a71ac97ea074e3167990cef97c6f49e1..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/thumbs_300_Jsjq7RdBgA.png/100x100_300_Jsjq7RdBgA.png and /dev/null differ diff --git a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/thumbs_300_Jsjq7RdBgA.png/100x100_300_Jsjq7RdBgA.png.attrs b/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/thumbs_300_Jsjq7RdBgA.png/100x100_300_Jsjq7RdBgA.png.attrs deleted file mode 100644 index 64e4c1d2dc4525b815a0e66a1bce86a15c8b1ca0..0000000000000000000000000000000000000000 --- a/tests/data/storage/wsmn24bux7wo113/al1h9ijdeojtsjy/thumbs_300_Jsjq7RdBgA.png/100x100_300_Jsjq7RdBgA.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"R7TqfvF8HP3C4+FO2eZ9tg=="} diff --git a/tests/data/storage/wzlqyes4orhoygb/7nwo8tuiatetxdm/test_JnXeKEwgwr.txt b/tests/data/storage/wzlqyes4orhoygb/7nwo8tuiatetxdm/test_JnXeKEwgwr.txt deleted file mode 100644 index 9daeafb9864cf43055ae93beb0afd6c7d144bfa4..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/7nwo8tuiatetxdm/test_JnXeKEwgwr.txt +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/tests/data/storage/wzlqyes4orhoygb/7nwo8tuiatetxdm/test_JnXeKEwgwr.txt.attrs b/tests/data/storage/wzlqyes4orhoygb/7nwo8tuiatetxdm/test_JnXeKEwgwr.txt.attrs deleted file mode 100644 index 3396b8b701134da58a38c8f58b9951e45d2cfd3b..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/7nwo8tuiatetxdm/test_JnXeKEwgwr.txt.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"text/plain; charset=utf-8","user.metadata":null,"md5":"2Oj8otwPiW/Xy0ywAxuiSQ=="} diff --git a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/300_UhLKX91HVb.png b/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/300_UhLKX91HVb.png deleted file mode 100644 index f6ce991a899fe7894821ae0b946074b2df783dd6..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/300_UhLKX91HVb.png and /dev/null differ diff --git a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/300_UhLKX91HVb.png.attrs b/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/300_UhLKX91HVb.png.attrs deleted file mode 100644 index e78288f65aafc8b11a467f01374dda6287203ddf..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/300_UhLKX91HVb.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"zZhZjzVvCvpcxtMAJie3GQ=="} diff --git a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/test_FLurQTgrY8.txt b/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/test_FLurQTgrY8.txt deleted file mode 100644 index 9daeafb9864cf43055ae93beb0afd6c7d144bfa4..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/test_FLurQTgrY8.txt +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/test_FLurQTgrY8.txt.attrs b/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/test_FLurQTgrY8.txt.attrs deleted file mode 100644 index 3396b8b701134da58a38c8f58b9951e45d2cfd3b..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/test_FLurQTgrY8.txt.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"text/plain; charset=utf-8","user.metadata":null,"md5":"2Oj8otwPiW/Xy0ywAxuiSQ=="} diff --git a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/thumbs_300_UhLKX91HVb.png/100x100_300_UhLKX91HVb.png b/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/thumbs_300_UhLKX91HVb.png/100x100_300_UhLKX91HVb.png deleted file mode 100644 index 1b876773a71ac97ea074e3167990cef97c6f49e1..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/thumbs_300_UhLKX91HVb.png/100x100_300_UhLKX91HVb.png and /dev/null differ diff --git a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/thumbs_300_UhLKX91HVb.png/100x100_300_UhLKX91HVb.png.attrs b/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/thumbs_300_UhLKX91HVb.png/100x100_300_UhLKX91HVb.png.attrs deleted file mode 100644 index 64e4c1d2dc4525b815a0e66a1bce86a15c8b1ca0..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/lcl9d87w22ml6jy/thumbs_300_UhLKX91HVb.png/100x100_300_UhLKX91HVb.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"R7TqfvF8HP3C4+FO2eZ9tg=="} diff --git a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/300_JdfBOieXAW.png b/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/300_JdfBOieXAW.png deleted file mode 100644 index f6ce991a899fe7894821ae0b946074b2df783dd6..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/300_JdfBOieXAW.png and /dev/null differ diff --git a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/300_JdfBOieXAW.png.attrs b/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/300_JdfBOieXAW.png.attrs deleted file mode 100644 index e78288f65aafc8b11a467f01374dda6287203ddf..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/300_JdfBOieXAW.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"zZhZjzVvCvpcxtMAJie3GQ=="} diff --git a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/thumbs_300_JdfBOieXAW.png/100x100_300_JdfBOieXAW.png b/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/thumbs_300_JdfBOieXAW.png/100x100_300_JdfBOieXAW.png deleted file mode 100644 index 1b876773a71ac97ea074e3167990cef97c6f49e1..0000000000000000000000000000000000000000 Binary files a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/thumbs_300_JdfBOieXAW.png/100x100_300_JdfBOieXAW.png and /dev/null differ diff --git a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/thumbs_300_JdfBOieXAW.png/100x100_300_JdfBOieXAW.png.attrs b/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/thumbs_300_JdfBOieXAW.png/100x100_300_JdfBOieXAW.png.attrs deleted file mode 100644 index 64e4c1d2dc4525b815a0e66a1bce86a15c8b1ca0..0000000000000000000000000000000000000000 --- a/tests/data/storage/wzlqyes4orhoygb/mk5fmymtx4wsprk/thumbs_300_JdfBOieXAW.png/100x100_300_JdfBOieXAW.png.attrs +++ /dev/null @@ -1 +0,0 @@ -{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"R7TqfvF8HP3C4+FO2eZ9tg=="} diff --git a/tests/logs.go b/tests/logs.go deleted file mode 100644 index 39ed21724c2b605e5a0210465b16de304a78af94..0000000000000000000000000000000000000000 --- a/tests/logs.go +++ /dev/null @@ -1,53 +0,0 @@ -package tests - -func MockRequestLogsData(app *TestApp) error { - _, err := app.LogsDB().NewQuery(` - delete from {{_requests}}; - - insert into {{_requests}} ( - [[id]], - [[url]], - [[method]], - [[status]], - [[auth]], - [[userIp]], - [[remoteIp]], - [[referer]], - [[userAgent]], - [[meta]], - [[created]], - [[updated]] - ) - values - ( - "873f2133-9f38-44fb-bf82-c8f53b310d91", - "/test1", - "get", - 200, - "guest", - "127.0.0.1", - "127.0.0.1", - "", - "", - "{}", - "2022-05-01 10:00:00.123Z", - "2022-05-01 10:00:00.123Z" - ), - ( - "f2133873-44fb-9f38-bf82-c918f53b310d", - "/test2", - "post", - 400, - "admin", - "127.0.0.1", - "127.0.0.1", - "", - "", - '{"errorDetails":"error_details..."}', - "2022-05-02 10:00:00.123Z", - "2022-05-02 10:00:00.123Z" - ); - `).Execute() - - return err -} diff --git a/tests/mailer.go b/tests/mailer.go deleted file mode 100644 index fa6c2116fbc66701a93d33a48a0166e65ee5991b..0000000000000000000000000000000000000000 --- a/tests/mailer.go +++ /dev/null @@ -1,27 +0,0 @@ -package tests - -import ( - "github.com/pocketbase/pocketbase/tools/mailer" -) - -var _ mailer.Mailer = (*TestMailer)(nil) - -// TestMailer is a mock `mailer.Mailer` implementation. -type TestMailer struct { - TotalSend int - LastMessage mailer.Message -} - -// Reset clears any previously test collected data. -func (m *TestMailer) Reset() { - m.TotalSend = 0 - m.LastMessage = mailer.Message{} -} - -// Send implements `mailer.Mailer` interface. -func (c *TestMailer) Send(m *mailer.Message) error { - c.TotalSend++ - c.LastMessage = *m - - return nil -} diff --git a/tests/request.go b/tests/request.go deleted file mode 100644 index f8d46b8b41d3fae2a3fb112819fb4dbffee3277e..0000000000000000000000000000000000000000 --- a/tests/request.go +++ /dev/null @@ -1,54 +0,0 @@ -package tests - -import ( - "bytes" - "io" - "mime/multipart" - "os" -) - -// MockMultipartData creates a mocked multipart/form-data payload. -// -// Example -// data, mp, err := tests.MockMultipartData( -// map[string]string{"title": "new"}, -// "file1", -// "file2", -// ... -// ) -func MockMultipartData(data map[string]string, fileFields ...string) (*bytes.Buffer, *multipart.Writer, error) { - body := new(bytes.Buffer) - mp := multipart.NewWriter(body) - defer mp.Close() - - // write data fields - for k, v := range data { - mp.WriteField(k, v) - } - - // write file fields - for _, fileField := range fileFields { - // create a test temporary file - tmpFile, err := os.CreateTemp(os.TempDir(), "tmpfile-*.txt") - if err != nil { - return nil, nil, err - } - if _, err := tmpFile.Write([]byte("test")); err != nil { - return nil, nil, err - } - tmpFile.Seek(0, 0) - defer tmpFile.Close() - defer os.Remove(tmpFile.Name()) - - // stub uploaded file - w, err := mp.CreateFormFile(fileField, tmpFile.Name()) - if err != nil { - return nil, mp, err - } - if _, err := io.Copy(w, tmpFile); err != nil { - return nil, mp, err - } - } - - return body, mp, nil -} diff --git a/tokens/admin.go b/tokens/admin.go deleted file mode 100644 index 3a21b90ab563089d0aac5c2497d67850c7c584ff..0000000000000000000000000000000000000000 --- a/tokens/admin.go +++ /dev/null @@ -1,26 +0,0 @@ -package tokens - -import ( - "github.com/golang-jwt/jwt/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/security" -) - -// NewAdminAuthToken generates and returns a new admin authentication token. -func NewAdminAuthToken(app core.App, admin *models.Admin) (string, error) { - return security.NewToken( - jwt.MapClaims{"id": admin.Id, "type": TypeAdmin}, - (admin.TokenKey + app.Settings().AdminAuthToken.Secret), - app.Settings().AdminAuthToken.Duration, - ) -} - -// NewAdminResetPasswordToken generates and returns a new admin password reset request token. -func NewAdminResetPasswordToken(app core.App, admin *models.Admin) (string, error) { - return security.NewToken( - jwt.MapClaims{"id": admin.Id, "type": TypeAdmin, "email": admin.Email}, - (admin.TokenKey + app.Settings().AdminPasswordResetToken.Secret), - app.Settings().AdminPasswordResetToken.Duration, - ) -} diff --git a/tokens/admin_test.go b/tokens/admin_test.go deleted file mode 100644 index 9bba76ecee181b84dbff2f4ae565a79f8cad6309..0000000000000000000000000000000000000000 --- a/tokens/admin_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package tokens_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tokens" -) - -func TestNewAdminAuthToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - admin, err := app.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - - token, err := tokens.NewAdminAuthToken(app, admin) - if err != nil { - t.Fatal(err) - } - - tokenAdmin, _ := app.Dao().FindAdminByToken( - token, - app.Settings().AdminAuthToken.Secret, - ) - if tokenAdmin == nil || tokenAdmin.Id != admin.Id { - t.Fatalf("Expected admin %v, got %v", admin, tokenAdmin) - } -} - -func TestNewAdminResetPasswordToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - admin, err := app.Dao().FindAdminByEmail("test@example.com") - if err != nil { - t.Fatal(err) - } - - token, err := tokens.NewAdminResetPasswordToken(app, admin) - if err != nil { - t.Fatal(err) - } - - tokenAdmin, _ := app.Dao().FindAdminByToken( - token, - app.Settings().AdminPasswordResetToken.Secret, - ) - if tokenAdmin == nil || tokenAdmin.Id != admin.Id { - t.Fatalf("Expected admin %v, got %v", admin, tokenAdmin) - } -} diff --git a/tokens/record.go b/tokens/record.go deleted file mode 100644 index 0cf7d0f09145fe551c7b529a0f0cb5b53ed8eea8..0000000000000000000000000000000000000000 --- a/tokens/record.go +++ /dev/null @@ -1,78 +0,0 @@ -package tokens - -import ( - "errors" - - "github.com/golang-jwt/jwt/v4" - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/security" -) - -// NewRecordAuthToken generates and returns a new auth record authentication token. -func NewRecordAuthToken(app core.App, record *models.Record) (string, error) { - if !record.Collection().IsAuth() { - return "", errors.New("The record is not from an auth collection.") - } - - return security.NewToken( - jwt.MapClaims{ - "id": record.Id, - "type": TypeAuthRecord, - "collectionId": record.Collection().Id, - }, - (record.TokenKey() + app.Settings().RecordAuthToken.Secret), - app.Settings().RecordAuthToken.Duration, - ) -} - -// NewRecordVerifyToken generates and returns a new record verification token. -func NewRecordVerifyToken(app core.App, record *models.Record) (string, error) { - if !record.Collection().IsAuth() { - return "", errors.New("The record is not from an auth collection.") - } - - return security.NewToken( - jwt.MapClaims{ - "id": record.Id, - "type": TypeAuthRecord, - "collectionId": record.Collection().Id, - "email": record.Email(), - }, - (record.TokenKey() + app.Settings().RecordVerificationToken.Secret), - app.Settings().RecordVerificationToken.Duration, - ) -} - -// NewRecordResetPasswordToken generates and returns a new auth record password reset request token. -func NewRecordResetPasswordToken(app core.App, record *models.Record) (string, error) { - if !record.Collection().IsAuth() { - return "", errors.New("The record is not from an auth collection.") - } - - return security.NewToken( - jwt.MapClaims{ - "id": record.Id, - "type": TypeAuthRecord, - "collectionId": record.Collection().Id, - "email": record.Email(), - }, - (record.TokenKey() + app.Settings().RecordPasswordResetToken.Secret), - app.Settings().RecordPasswordResetToken.Duration, - ) -} - -// NewRecordChangeEmailToken generates and returns a new auth record change email request token. -func NewRecordChangeEmailToken(app core.App, record *models.Record, newEmail string) (string, error) { - return security.NewToken( - jwt.MapClaims{ - "id": record.Id, - "type": TypeAuthRecord, - "collectionId": record.Collection().Id, - "email": record.Email(), - "newEmail": newEmail, - }, - (record.TokenKey() + app.Settings().RecordEmailChangeToken.Secret), - app.Settings().RecordEmailChangeToken.Duration, - ) -} diff --git a/tokens/record_test.go b/tokens/record_test.go deleted file mode 100644 index e9470cbdd13d0262686ba13a49e6b668167eb492..0000000000000000000000000000000000000000 --- a/tokens/record_test.go +++ /dev/null @@ -1,100 +0,0 @@ -package tokens_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tests" - "github.com/pocketbase/pocketbase/tokens" -) - -func TestNewRecordAuthToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - user, err := app.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - token, err := tokens.NewRecordAuthToken(app, user) - if err != nil { - t.Fatal(err) - } - - tokenRecord, _ := app.Dao().FindAuthRecordByToken( - token, - app.Settings().RecordAuthToken.Secret, - ) - if tokenRecord == nil || tokenRecord.Id != user.Id { - t.Fatalf("Expected auth record %v, got %v", user, tokenRecord) - } -} - -func TestNewRecordVerifyToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - user, err := app.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - token, err := tokens.NewRecordVerifyToken(app, user) - if err != nil { - t.Fatal(err) - } - - tokenRecord, _ := app.Dao().FindAuthRecordByToken( - token, - app.Settings().RecordVerificationToken.Secret, - ) - if tokenRecord == nil || tokenRecord.Id != user.Id { - t.Fatalf("Expected auth record %v, got %v", user, tokenRecord) - } -} - -func TestNewRecordResetPasswordToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - user, err := app.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - token, err := tokens.NewRecordResetPasswordToken(app, user) - if err != nil { - t.Fatal(err) - } - - tokenRecord, _ := app.Dao().FindAuthRecordByToken( - token, - app.Settings().RecordPasswordResetToken.Secret, - ) - if tokenRecord == nil || tokenRecord.Id != user.Id { - t.Fatalf("Expected auth record %v, got %v", user, tokenRecord) - } -} - -func TestNewRecordChangeEmailToken(t *testing.T) { - app, _ := tests.NewTestApp() - defer app.Cleanup() - - user, err := app.Dao().FindAuthRecordByEmail("users", "test@example.com") - if err != nil { - t.Fatal(err) - } - - token, err := tokens.NewRecordChangeEmailToken(app, user, "test_new@example.com") - if err != nil { - t.Fatal(err) - } - - tokenRecord, _ := app.Dao().FindAuthRecordByToken( - token, - app.Settings().RecordEmailChangeToken.Secret, - ) - if tokenRecord == nil || tokenRecord.Id != user.Id { - t.Fatalf("Expected auth record %v, got %v", user, tokenRecord) - } -} diff --git a/tokens/tokens.go b/tokens/tokens.go deleted file mode 100644 index 7a0a928aee6ec8611a5c98e50c4cba83a188a23f..0000000000000000000000000000000000000000 --- a/tokens/tokens.go +++ /dev/null @@ -1,7 +0,0 @@ -// Package tokens implements various user and admin tokens generation methods. -package tokens - -const ( - TypeAdmin = "admin" - TypeAuthRecord = "authRecord" -) diff --git a/tools/auth/auth.go b/tools/auth/auth.go deleted file mode 100644 index 1af34a0a4fda145d37b2924b7052f137b218f234..0000000000000000000000000000000000000000 --- a/tools/auth/auth.go +++ /dev/null @@ -1,111 +0,0 @@ -package auth - -import ( - "errors" - "net/http" - - "golang.org/x/oauth2" -) - -// AuthUser defines a standardized oauth2 user data structure. -type AuthUser struct { - Id string `json:"id"` - Name string `json:"name"` - Username string `json:"username"` - Email string `json:"email"` - AvatarUrl string `json:"avatarUrl"` - RawUser map[string]any `json:"rawUser"` - AccessToken string `json:"accessToken"` -} - -// Provider defines a common interface for an OAuth2 client. -type Provider interface { - // Scopes returns the provider access permissions that will be requested. - Scopes() []string - - // SetScopes sets the provider access permissions that will be requested later. - SetScopes(scopes []string) - - // ClientId returns the provider client's app ID. - ClientId() string - - // SetClientId sets the provider client's ID. - SetClientId(clientId string) - - // ClientSecret returns the provider client's app secret. - ClientSecret() string - - // SetClientSecret sets the provider client's app secret. - SetClientSecret(secret string) - - // RedirectUrl returns the end address to redirect the user - // going through the OAuth flow. - RedirectUrl() string - - // SetRedirectUrl sets the provider's RedirectUrl. - SetRedirectUrl(url string) - - // AuthUrl returns the provider's authorization service url. - AuthUrl() string - - // SetAuthUrl sets the provider's AuthUrl. - SetAuthUrl(url string) - - // TokenUrl returns the provider's token exchange service url. - TokenUrl() string - - // SetTokenUrl sets the provider's TokenUrl. - SetTokenUrl(url string) - - // UserApiUrl returns the provider's user info api url. - UserApiUrl() string - - // SetUserApiUrl sets the provider's UserApiUrl. - SetUserApiUrl(url string) - - // Client returns an http client using the provided token. - Client(token *oauth2.Token) *http.Client - - // BuildAuthUrl returns a URL to the provider's consent page - // that asks for permissions for the required scopes explicitly. - BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string - - // FetchToken converts an authorization code to token. - FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error) - - // FetchRawUserData requests and marshalizes into `result` the - // the OAuth user api response. - FetchRawUserData(token *oauth2.Token) ([]byte, error) - - // FetchAuthUser is similar to FetchRawUserData, but normalizes and - // marshalizes the user api response into a standardized AuthUser struct. - FetchAuthUser(token *oauth2.Token) (user *AuthUser, err error) -} - -// NewProviderByName returns a new preconfigured provider instance by its name identifier. -func NewProviderByName(name string) (Provider, error) { - switch name { - case NameGoogle: - return NewGoogleProvider(), nil - case NameFacebook: - return NewFacebookProvider(), nil - case NameGithub: - return NewGithubProvider(), nil - case NameGitlab: - return NewGitlabProvider(), nil - case NameDiscord: - return NewDiscordProvider(), nil - case NameTwitter: - return NewTwitterProvider(), nil - case NameMicrosoft: - return NewMicrosoftProvider(), nil - case NameSpotify: - return NewSpotifyProvider(), nil - case NameKakao: - return NewKakaoProvider(), nil - case NameTwitch: - return NewTwitchProvider(), nil - default: - return nil, errors.New("Missing provider " + name) - } -} diff --git a/tools/auth/auth_test.go b/tools/auth/auth_test.go deleted file mode 100644 index 349502e2c30f442379722c51a684ff7fe24fbc2e..0000000000000000000000000000000000000000 --- a/tools/auth/auth_test.go +++ /dev/null @@ -1,111 +0,0 @@ -package auth_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/auth" -) - -func TestNewProviderByName(t *testing.T) { - var err error - var p auth.Provider - - // invalid - p, err = auth.NewProviderByName("invalid") - if err == nil { - t.Error("Expected error, got nil") - } - if p != nil { - t.Errorf("Expected provider to be nil, got %v", p) - } - - // google - p, err = auth.NewProviderByName(auth.NameGoogle) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Google); !ok { - t.Error("Expected to be instance of *auth.Google") - } - - // facebook - p, err = auth.NewProviderByName(auth.NameFacebook) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Facebook); !ok { - t.Error("Expected to be instance of *auth.Facebook") - } - - // github - p, err = auth.NewProviderByName(auth.NameGithub) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Github); !ok { - t.Error("Expected to be instance of *auth.Github") - } - - // gitlab - p, err = auth.NewProviderByName(auth.NameGitlab) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Gitlab); !ok { - t.Error("Expected to be instance of *auth.Gitlab") - } - - // twitter - p, err = auth.NewProviderByName(auth.NameTwitter) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Twitter); !ok { - t.Error("Expected to be instance of *auth.Twitter") - } - - // discord - p, err = auth.NewProviderByName(auth.NameDiscord) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Discord); !ok { - t.Error("Expected to be instance of *auth.Discord") - } - - // microsoft - p, err = auth.NewProviderByName(auth.NameMicrosoft) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Microsoft); !ok { - t.Error("Expected to be instance of *auth.Microsoft") - } - - // spotify - p, err = auth.NewProviderByName(auth.NameSpotify) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Spotify); !ok { - t.Error("Expected to be instance of *auth.Spotify") - } - - // kakao - p, err = auth.NewProviderByName(auth.NameKakao) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Kakao); !ok { - t.Error("Expected to be instance of *auth.Kakao") - } - - // twitch - p, err = auth.NewProviderByName(auth.NameTwitch) - if err != nil { - t.Errorf("Expected nil, got error %v", err) - } - if _, ok := p.(*auth.Twitch); !ok { - t.Error("Expected to be instance of *auth.Twitch") - } -} diff --git a/tools/auth/base_provider.go b/tools/auth/base_provider.go deleted file mode 100644 index 99085b6cdb501b8c0a102fa38fc4d8915ae0765a..0000000000000000000000000000000000000000 --- a/tools/auth/base_provider.go +++ /dev/null @@ -1,158 +0,0 @@ -package auth - -import ( - "context" - "fmt" - "io/ioutil" - "net/http" - - "golang.org/x/oauth2" -) - -// baseProvider defines common fields and methods used by OAuth2 client providers. -type baseProvider struct { - scopes []string - clientId string - clientSecret string - redirectUrl string - authUrl string - tokenUrl string - userApiUrl string -} - -// Scopes implements Provider.Scopes interface. -func (p *baseProvider) Scopes() []string { - return p.scopes -} - -// SetScopes implements Provider.SetScopes interface. -func (p *baseProvider) SetScopes(scopes []string) { - p.scopes = scopes -} - -// ClientId implements Provider.ClientId interface. -func (p *baseProvider) ClientId() string { - return p.clientId -} - -// SetClientId implements Provider.SetClientId interface. -func (p *baseProvider) SetClientId(clientId string) { - p.clientId = clientId -} - -// ClientSecret implements Provider.ClientSecret interface. -func (p *baseProvider) ClientSecret() string { - return p.clientSecret -} - -// SetClientSecret implements Provider.SetClientSecret interface. -func (p *baseProvider) SetClientSecret(secret string) { - p.clientSecret = secret -} - -// RedirectUrl implements Provider.RedirectUrl interface. -func (p *baseProvider) RedirectUrl() string { - return p.redirectUrl -} - -// SetRedirectUrl implements Provider.SetRedirectUrl interface. -func (p *baseProvider) SetRedirectUrl(url string) { - p.redirectUrl = url -} - -// AuthUrl implements Provider.AuthUrl interface. -func (p *baseProvider) AuthUrl() string { - return p.authUrl -} - -// SetAuthUrl implements Provider.SetAuthUrl interface. -func (p *baseProvider) SetAuthUrl(url string) { - p.authUrl = url -} - -// TokenUrl implements Provider.TokenUrl interface. -func (p *baseProvider) TokenUrl() string { - return p.tokenUrl -} - -// SetTokenUrl implements Provider.SetTokenUrl interface. -func (p *baseProvider) SetTokenUrl(url string) { - p.tokenUrl = url -} - -// UserApiUrl implements Provider.UserApiUrl interface. -func (p *baseProvider) UserApiUrl() string { - return p.userApiUrl -} - -// SetUserApiUrl implements Provider.SetUserApiUrl interface. -func (p *baseProvider) SetUserApiUrl(url string) { - p.userApiUrl = url -} - -// BuildAuthUrl implements Provider.BuildAuthUrl interface. -func (p *baseProvider) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string { - return p.oauth2Config().AuthCodeURL(state, opts...) -} - -// FetchToken implements Provider.FetchToken interface. -func (p *baseProvider) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error) { - return p.oauth2Config().Exchange(context.Background(), code, opts...) -} - -// Client implements Provider.Client interface. -func (p *baseProvider) Client(token *oauth2.Token) *http.Client { - return p.oauth2Config().Client(context.Background(), token) -} - -// FetchRawUserData implements Provider.FetchRawUserData interface. -func (p *baseProvider) FetchRawUserData(token *oauth2.Token) ([]byte, error) { - req, err := http.NewRequest("GET", p.userApiUrl, nil) - if err != nil { - return nil, err - } - - return p.sendRawUserDataRequest(req, token) -} - -// sendRawUserDataRequest sends the specified user data request and return its raw response body. -func (p *baseProvider) sendRawUserDataRequest(req *http.Request, token *oauth2.Token) ([]byte, error) { - client := p.Client(token) - - response, err := client.Do(req) - if err != nil { - return nil, err - } - defer response.Body.Close() - - result, err := ioutil.ReadAll(response.Body) - if err != nil { - return nil, err - } - - // http.Client.Get doesn't treat non 2xx responses as error - if response.StatusCode >= 400 { - return nil, fmt.Errorf( - "Failed to fetch OAuth2 user profile via %s (%d):\n%s", - p.userApiUrl, - response.StatusCode, - string(result), - ) - } - - return result, nil -} - -// oauth2Config constructs a oauth2.Config instance based on the provider settings. -func (p *baseProvider) oauth2Config() *oauth2.Config { - return &oauth2.Config{ - RedirectURL: p.redirectUrl, - ClientID: p.clientId, - ClientSecret: p.clientSecret, - Scopes: p.scopes, - Endpoint: oauth2.Endpoint{ - AuthURL: p.authUrl, - TokenURL: p.tokenUrl, - }, - } -} diff --git a/tools/auth/base_provider_test.go b/tools/auth/base_provider_test.go deleted file mode 100644 index 7a494004a4087aad5fdbe3a3c9922d85fc2fc09b..0000000000000000000000000000000000000000 --- a/tools/auth/base_provider_test.go +++ /dev/null @@ -1,183 +0,0 @@ -package auth - -import ( - "testing" - - "golang.org/x/oauth2" -) - -func TestScopes(t *testing.T) { - b := baseProvider{} - - before := b.Scopes() - if len(before) != 0 { - t.Errorf("Expected 0 scopes, got %v", before) - } - - b.SetScopes([]string{"test1", "test2"}) - - after := b.Scopes() - if len(after) != 2 { - t.Errorf("Expected 2 scopes, got %v", after) - } -} - -func TestClientId(t *testing.T) { - b := baseProvider{} - - before := b.ClientId() - if before != "" { - t.Errorf("Expected clientId to be empty, got %v", before) - } - - b.SetClientId("test") - - after := b.ClientId() - if after != "test" { - t.Errorf("Expected clientId to be 'test', got %v", after) - } -} - -func TestClientSecret(t *testing.T) { - b := baseProvider{} - - before := b.ClientSecret() - if before != "" { - t.Errorf("Expected clientSecret to be empty, got %v", before) - } - - b.SetClientSecret("test") - - after := b.ClientSecret() - if after != "test" { - t.Errorf("Expected clientSecret to be 'test', got %v", after) - } -} - -func TestRedirectUrl(t *testing.T) { - b := baseProvider{} - - before := b.RedirectUrl() - if before != "" { - t.Errorf("Expected RedirectUrl to be empty, got %v", before) - } - - b.SetRedirectUrl("test") - - after := b.RedirectUrl() - if after != "test" { - t.Errorf("Expected RedirectUrl to be 'test', got %v", after) - } -} - -func TestAuthUrl(t *testing.T) { - b := baseProvider{} - - before := b.AuthUrl() - if before != "" { - t.Errorf("Expected authUrl to be empty, got %v", before) - } - - b.SetAuthUrl("test") - - after := b.AuthUrl() - if after != "test" { - t.Errorf("Expected authUrl to be 'test', got %v", after) - } -} - -func TestTokenUrl(t *testing.T) { - b := baseProvider{} - - before := b.TokenUrl() - if before != "" { - t.Errorf("Expected tokenUrl to be empty, got %v", before) - } - - b.SetTokenUrl("test") - - after := b.TokenUrl() - if after != "test" { - t.Errorf("Expected tokenUrl to be 'test', got %v", after) - } -} - -func TestUserApiUrl(t *testing.T) { - b := baseProvider{} - - before := b.UserApiUrl() - if before != "" { - t.Errorf("Expected userApiUrl to be empty, got %v", before) - } - - b.SetUserApiUrl("test") - - after := b.UserApiUrl() - if after != "test" { - t.Errorf("Expected userApiUrl to be 'test', got %v", after) - } -} - -func TestBuildAuthUrl(t *testing.T) { - b := baseProvider{ - authUrl: "authUrl_test", - tokenUrl: "tokenUrl_test", - redirectUrl: "redirectUrl_test", - clientId: "clientId_test", - clientSecret: "clientSecret_test", - scopes: []string{"test_scope"}, - } - - expected := "authUrl_test?access_type=offline&client_id=clientId_test&prompt=consent&redirect_uri=redirectUrl_test&response_type=code&scope=test_scope&state=state_test" - result := b.BuildAuthUrl("state_test", oauth2.AccessTypeOffline, oauth2.ApprovalForce) - - if result != expected { - t.Errorf("Expected auth url %q, got %q", expected, result) - } -} - -func TestClient(t *testing.T) { - b := baseProvider{} - - result := b.Client(&oauth2.Token{}) - if result == nil { - t.Error("Expected *http.Client instance, got nil") - } -} - -func TestOauth2Config(t *testing.T) { - b := baseProvider{ - authUrl: "authUrl_test", - tokenUrl: "tokenUrl_test", - redirectUrl: "redirectUrl_test", - clientId: "clientId_test", - clientSecret: "clientSecret_test", - scopes: []string{"test"}, - } - - result := b.oauth2Config() - - if result.RedirectURL != b.RedirectUrl() { - t.Errorf("Expected redirectUrl %s, got %s", b.RedirectUrl(), result.RedirectURL) - } - - if result.ClientID != b.ClientId() { - t.Errorf("Expected clientId %s, got %s", b.ClientId(), result.ClientID) - } - - if result.ClientSecret != b.ClientSecret() { - t.Errorf("Expected clientSecret %s, got %s", b.ClientSecret(), result.ClientSecret) - } - - if result.Endpoint.AuthURL != b.AuthUrl() { - t.Errorf("Expected authUrl %s, got %s", b.AuthUrl(), result.Endpoint.AuthURL) - } - - if result.Endpoint.TokenURL != b.TokenUrl() { - t.Errorf("Expected authUrl %s, got %s", b.TokenUrl(), result.Endpoint.TokenURL) - } - - if len(result.Scopes) != len(b.Scopes()) || result.Scopes[0] != b.Scopes()[0] { - t.Errorf("Expected scopes %s, got %s", b.Scopes(), result.Scopes) - } -} diff --git a/tools/auth/discord.go b/tools/auth/discord.go deleted file mode 100644 index 5385ea9644aa3c128965d843b426e25dbc338257..0000000000000000000000000000000000000000 --- a/tools/auth/discord.go +++ /dev/null @@ -1,78 +0,0 @@ -package auth - -import ( - "encoding/json" - "fmt" - - "golang.org/x/oauth2" -) - -var _ Provider = (*Discord)(nil) - -// NameDiscord is the unique name of the Discord provider. -const NameDiscord string = "discord" - -// Discord allows authentication via Discord OAuth2. -type Discord struct { - *baseProvider -} - -// NewDiscordProvider creates a new Discord provider instance with some defaults. -func NewDiscordProvider() *Discord { - // https://discord.com/developers/docs/topics/oauth2 - // https://discord.com/developers/docs/resources/user#get-current-user - return &Discord{&baseProvider{ - scopes: []string{"identify", "email"}, - authUrl: "https://discord.com/api/oauth2/authorize", - tokenUrl: "https://discord.com/api/oauth2/token", - userApiUrl: "https://discord.com/api/users/@me", - }} -} - -// FetchAuthUser returns an AuthUser instance from Discord's user api. -// -// API reference: https://discord.com/developers/docs/resources/user#user-object -func (p *Discord) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Id string `json:"id"` - Username string `json:"username"` - Discriminator string `json:"discriminator"` - Email string `json:"email"` - Verified bool `json:"verified"` - Avatar string `json:"avatar"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - // Build a full avatar URL using the avatar hash provided in the API response - // https://discord.com/developers/docs/reference#image-formatting - avatarUrl := fmt.Sprintf("https://cdn.discordapp.com/avatars/%s/%s.png", extracted.Id, extracted.Avatar) - - // Concatenate the user's username and discriminator into a single username string - username := fmt.Sprintf("%s#%s", extracted.Username, extracted.Discriminator) - - user := &AuthUser{ - Id: extracted.Id, - Name: username, - Username: extracted.Username, - AvatarUrl: avatarUrl, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - if extracted.Verified { - user.Email = extracted.Email - } - - return user, nil -} diff --git a/tools/auth/facebook.go b/tools/auth/facebook.go deleted file mode 100644 index f4e4f66e81d20e950bb2926b188e3db7d7c85f93..0000000000000000000000000000000000000000 --- a/tools/auth/facebook.go +++ /dev/null @@ -1,66 +0,0 @@ -package auth - -import ( - "encoding/json" - - "golang.org/x/oauth2" - "golang.org/x/oauth2/facebook" -) - -var _ Provider = (*Facebook)(nil) - -// NameFacebook is the unique name of the Facebook provider. -const NameFacebook string = "facebook" - -// Facebook allows authentication via Facebook OAuth2. -type Facebook struct { - *baseProvider -} - -// NewFacebookProvider creates new Facebook provider instance with some defaults. -func NewFacebookProvider() *Facebook { - return &Facebook{&baseProvider{ - scopes: []string{"email"}, - authUrl: facebook.Endpoint.AuthURL, - tokenUrl: facebook.Endpoint.TokenURL, - userApiUrl: "https://graph.facebook.com/me?fields=name,email,picture.type(large)", - }} -} - -// FetchAuthUser returns an AuthUser instance based on the Facebook's user api. -// -// API reference: https://developers.facebook.com/docs/graph-api/reference/user/ -func (p *Facebook) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Id string - Name string - Email string - Picture struct { - Data struct{ Url string } - } - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: extracted.Id, - Name: extracted.Name, - Email: extracted.Email, - AvatarUrl: extracted.Picture.Data.Url, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - - return user, nil -} diff --git a/tools/auth/github.go b/tools/auth/github.go deleted file mode 100644 index 7e10873aa4dc5b40f6419c591da543b7e599fdcb..0000000000000000000000000000000000000000 --- a/tools/auth/github.go +++ /dev/null @@ -1,102 +0,0 @@ -package auth - -import ( - "encoding/json" - "io/ioutil" - "strconv" - - "golang.org/x/oauth2" - "golang.org/x/oauth2/github" -) - -var _ Provider = (*Github)(nil) - -// NameGithub is the unique name of the Github provider. -const NameGithub string = "github" - -// Github allows authentication via Github OAuth2. -type Github struct { - *baseProvider -} - -// NewGithubProvider creates new Github provider instance with some defaults. -func NewGithubProvider() *Github { - return &Github{&baseProvider{ - scopes: []string{"read:user", "user:email"}, - authUrl: github.Endpoint.AuthURL, - tokenUrl: github.Endpoint.TokenURL, - userApiUrl: "https://api.github.com/user", - }} -} - -// FetchAuthUser returns an AuthUser instance based the Github's user api. -// -// API reference: https://docs.github.com/en/rest/reference/users#get-the-authenticated-user -func (p *Github) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Login string `json:"login"` - Id int `json:"id"` - Name string `json:"name"` - Email string `json:"email"` - AvatarUrl string `json:"avatar_url"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: strconv.Itoa(extracted.Id), - Name: extracted.Name, - Username: extracted.Login, - Email: extracted.Email, - AvatarUrl: extracted.AvatarUrl, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - - // in case user set "Keep my email address private", - // email should be retrieved via extra API request - if user.Email == "" { - client := p.Client(token) - - response, err := client.Get(p.userApiUrl + "/emails") - if err != nil { - return user, err - } - defer response.Body.Close() - - content, err := ioutil.ReadAll(response.Body) - if err != nil { - return user, err - } - - emails := []struct { - Email string - Verified bool - Primary bool - }{} - if err := json.Unmarshal(content, &emails); err != nil { - return user, err - } - - // extract the verified primary email - for _, email := range emails { - if email.Verified && email.Primary { - user.Email = email.Email - break - } - } - } - - return user, nil -} diff --git a/tools/auth/gitlab.go b/tools/auth/gitlab.go deleted file mode 100644 index 86aab02b5a605ee24a291bb4f56a3c789d61d51f..0000000000000000000000000000000000000000 --- a/tools/auth/gitlab.go +++ /dev/null @@ -1,66 +0,0 @@ -package auth - -import ( - "encoding/json" - "strconv" - - "golang.org/x/oauth2" -) - -var _ Provider = (*Gitlab)(nil) - -// NameGitlab is the unique name of the Gitlab provider. -const NameGitlab string = "gitlab" - -// Gitlab allows authentication via Gitlab OAuth2. -type Gitlab struct { - *baseProvider -} - -// NewGitlabProvider creates new Gitlab provider instance with some defaults. -func NewGitlabProvider() *Gitlab { - return &Gitlab{&baseProvider{ - scopes: []string{"read_user"}, - authUrl: "https://gitlab.com/oauth/authorize", - tokenUrl: "https://gitlab.com/oauth/token", - userApiUrl: "https://gitlab.com/api/v4/user", - }} -} - -// FetchAuthUser returns an AuthUser instance based the Gitlab's user api. -// -// API reference: https://docs.gitlab.com/ee/api/users.html#for-admin -func (p *Gitlab) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Id int `json:"id"` - Name string `json:"name"` - Username string `json:"username"` - Email string `json:"email"` - AvatarUrl string `json:"avatar_url"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: strconv.Itoa(extracted.Id), - Name: extracted.Name, - Username: extracted.Username, - Email: extracted.Email, - AvatarUrl: extracted.AvatarUrl, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - - return user, nil -} diff --git a/tools/auth/google.go b/tools/auth/google.go deleted file mode 100644 index 2fe1d95de8d7394c99cf052752fee7b08c388408..0000000000000000000000000000000000000000 --- a/tools/auth/google.go +++ /dev/null @@ -1,64 +0,0 @@ -package auth - -import ( - "encoding/json" - - "golang.org/x/oauth2" -) - -var _ Provider = (*Google)(nil) - -// NameGoogle is the unique name of the Google provider. -const NameGoogle string = "google" - -// Google allows authentication via Google OAuth2. -type Google struct { - *baseProvider -} - -// NewGoogleProvider creates new Google provider instance with some defaults. -func NewGoogleProvider() *Google { - return &Google{&baseProvider{ - scopes: []string{ - "https://www.googleapis.com/auth/userinfo.profile", - "https://www.googleapis.com/auth/userinfo.email", - }, - authUrl: "https://accounts.google.com/o/oauth2/auth", - tokenUrl: "https://accounts.google.com/o/oauth2/token", - userApiUrl: "https://www.googleapis.com/oauth2/v1/userinfo", - }} -} - -// FetchAuthUser returns an AuthUser instance based the Google's user api. -func (p *Google) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Id string - Name string - Email string - Picture string - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: extracted.Id, - Name: extracted.Name, - Email: extracted.Email, - AvatarUrl: extracted.Picture, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - - return user, nil -} diff --git a/tools/auth/kakao.go b/tools/auth/kakao.go deleted file mode 100644 index 6c66ba323d9ddbda922b72b2981d5092d618ba7b..0000000000000000000000000000000000000000 --- a/tools/auth/kakao.go +++ /dev/null @@ -1,73 +0,0 @@ -package auth - -import ( - "encoding/json" - "strconv" - - "golang.org/x/oauth2" - "golang.org/x/oauth2/kakao" -) - -var _ Provider = (*Kakao)(nil) - -// NameKakao is the unique name of the Kakao provider. -const NameKakao string = "kakao" - -// Kakao allows authentication via Kakao OAuth2. -type Kakao struct { - *baseProvider -} - -// NewKakaoProvider creates a new Kakao provider instance with some defaults. -func NewKakaoProvider() *Kakao { - return &Kakao{&baseProvider{ - scopes: []string{"account_email", "profile_nickname", "profile_image"}, - authUrl: kakao.Endpoint.AuthURL, - tokenUrl: kakao.Endpoint.TokenURL, - userApiUrl: "https://kapi.kakao.com/v2/user/me", - }} -} - -// FetchAuthUser returns an AuthUser instance based on the Kakao's user api. -// -// API reference: https://developers.kakao.com/docs/latest/en/kakaologin/rest-api#req-user-info-response -func (p *Kakao) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Id int `json:"id"` - Profile struct { - Nickname string `json:"nickname"` - ImageUrl string `json:"profile_image"` - } `json:"properties"` - KakaoAccount struct { - Email string `json:"email"` - IsEmailVerified bool `json:"is_email_verified"` - IsEmailValid bool `json:"is_email_valid"` - } `json:"kakao_account"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: strconv.Itoa(extracted.Id), - Username: extracted.Profile.Nickname, - AvatarUrl: extracted.Profile.ImageUrl, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - if extracted.KakaoAccount.IsEmailValid && extracted.KakaoAccount.IsEmailVerified { - user.Email = extracted.KakaoAccount.Email - } - - return user, nil -} diff --git a/tools/auth/microsoft.go b/tools/auth/microsoft.go deleted file mode 100644 index 67e2d4d0864d992d689632d73cc00f97903ed78e..0000000000000000000000000000000000000000 --- a/tools/auth/microsoft.go +++ /dev/null @@ -1,64 +0,0 @@ -package auth - -import ( - "encoding/json" - - "golang.org/x/oauth2" - "golang.org/x/oauth2/microsoft" -) - -var _ Provider = (*Microsoft)(nil) - -// NameMicrosoft is the unique name of the Microsoft provider. -const NameMicrosoft string = "microsoft" - -// Microsoft allows authentication via AzureADEndpoint OAuth2. -type Microsoft struct { - *baseProvider -} - -// NewMicrosoftProvider creates new Microsoft AD provider instance with some defaults. -func NewMicrosoftProvider() *Microsoft { - endpoints := microsoft.AzureADEndpoint("") - return &Microsoft{&baseProvider{ - scopes: []string{"User.Read"}, - authUrl: endpoints.AuthURL, - tokenUrl: endpoints.TokenURL, - userApiUrl: "https://graph.microsoft.com/v1.0/me", - }} -} - -// FetchAuthUser returns an AuthUser instance based on the Microsoft's user api. -// -// API reference: https://learn.microsoft.com/en-us/azure/active-directory/develop/userinfo -// Graph explorer: https://developer.microsoft.com/en-us/graph/graph-explorer -func (p *Microsoft) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Id string `json:"id"` - Name string `json:"displayName"` - Email string `json:"mail"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: extracted.Id, - Name: extracted.Name, - Email: extracted.Email, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - - return user, nil -} diff --git a/tools/auth/spotify.go b/tools/auth/spotify.go deleted file mode 100644 index 8414c902c139f4284b17dd0a06b7333f97df18a3..0000000000000000000000000000000000000000 --- a/tools/auth/spotify.go +++ /dev/null @@ -1,74 +0,0 @@ -package auth - -import ( - "encoding/json" - - "golang.org/x/oauth2" - "golang.org/x/oauth2/spotify" -) - -var _ Provider = (*Spotify)(nil) - -// NameSpotify is the unique name of the Spotify provider. -const NameSpotify string = "spotify" - -// Spotify allows authentication via Spotify OAuth2. -type Spotify struct { - *baseProvider -} - -// NewSpotifyProvider creates a new Spotify provider instance with some defaults. -func NewSpotifyProvider() *Spotify { - return &Spotify{&baseProvider{ - scopes: []string{ - "user-read-private", - // currently Spotify doesn't return information whether the email is verified or not - // "user-read-email", - }, - authUrl: spotify.Endpoint.AuthURL, - tokenUrl: spotify.Endpoint.TokenURL, - userApiUrl: "https://api.spotify.com/v1/me", - }} -} - -// FetchAuthUser returns an AuthUser instance based on the Spotify's user api. -// -// API reference: https://developer.spotify.com/documentation/web-api/reference/#/operations/get-current-users-profile -func (p *Spotify) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Id string `json:"id"` - Name string `json:"display_name"` - Images []struct { - Url string `json:"url"` - } `json:"images"` - // don't map the email because per the official docs - // the email field is "unverified" and there is no proof - // that it actually belongs to the user - // Email string `json:"email"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: extracted.Id, - Name: extracted.Name, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - if len(extracted.Images) > 0 { - user.AvatarUrl = extracted.Images[0].Url - } - - return user, nil -} diff --git a/tools/auth/twitch.go b/tools/auth/twitch.go deleted file mode 100644 index d7400cfd63f850476476754d94f1e9b115583110..0000000000000000000000000000000000000000 --- a/tools/auth/twitch.go +++ /dev/null @@ -1,88 +0,0 @@ -package auth - -import ( - "encoding/json" - "errors" - "net/http" - - "golang.org/x/oauth2" - "golang.org/x/oauth2/twitch" -) - -var _ Provider = (*Twitch)(nil) - -// NameTwitch is the unique name of the Twitch provider. -const NameTwitch string = "twitch" - -// Twitch allows authentication via Twitch OAuth2. -type Twitch struct { - *baseProvider -} - -// NewTwitchProvider creates new Twitch provider instance with some defaults. -func NewTwitchProvider() *Twitch { - return &Twitch{&baseProvider{ - scopes: []string{"user:read:email"}, - authUrl: twitch.Endpoint.AuthURL, - tokenUrl: twitch.Endpoint.TokenURL, - userApiUrl: "https://api.twitch.tv/helix/users", - }} -} - -// FetchAuthUser returns an AuthUser instance based the Twitch's user api. -// -// API reference: https://dev.twitch.tv/docs/api/reference#get-users -func (p *Twitch) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Data []struct { - Id string `json:"id"` - Login string `json:"login"` - DisplayName string `json:"display_name"` - Email string `json:"email"` - ProfileImageUrl string `json:"profile_image_url"` - } `json:"data"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - if len(extracted.Data) == 0 { - return nil, errors.New("Failed to fetch AuthUser data") - } - - user := &AuthUser{ - Id: extracted.Data[0].Id, - Name: extracted.Data[0].DisplayName, - Username: extracted.Data[0].Login, - Email: extracted.Data[0].Email, - AvatarUrl: extracted.Data[0].ProfileImageUrl, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - - return user, nil -} - -// FetchRawUserData implements Provider.FetchRawUserData interface. -// -// This differ from baseProvider because Twitch requires the `Client-Id` header. -func (p *Twitch) FetchRawUserData(token *oauth2.Token) ([]byte, error) { - req, err := http.NewRequest("GET", p.userApiUrl, nil) - if err != nil { - return nil, err - } - - req.Header.Set("Client-Id", p.clientId) - - return p.sendRawUserDataRequest(req, token) -} diff --git a/tools/auth/twitter.go b/tools/auth/twitter.go deleted file mode 100644 index 092df656c3b37a5ba18d2035a7e409ea3e1d1221..0000000000000000000000000000000000000000 --- a/tools/auth/twitter.go +++ /dev/null @@ -1,75 +0,0 @@ -package auth - -import ( - "encoding/json" - - "golang.org/x/oauth2" -) - -var _ Provider = (*Twitter)(nil) - -// NameTwitter is the unique name of the Twitter provider. -const NameTwitter string = "twitter" - -// Twitter allows authentication via Twitter OAuth2. -type Twitter struct { - *baseProvider -} - -// NewTwitterProvider creates new Twitter provider instance with some defaults. -func NewTwitterProvider() *Twitter { - return &Twitter{&baseProvider{ - scopes: []string{ - "users.read", - - // we don't actually use this scope, but for some reason it is required by the `/2/users/me` endpoint - // (see https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me) - "tweet.read", - }, - authUrl: "https://twitter.com/i/oauth2/authorize", - tokenUrl: "https://api.twitter.com/2/oauth2/token", - userApiUrl: "https://api.twitter.com/2/users/me?user.fields=id,name,username,profile_image_url", - }} -} - -// FetchAuthUser returns an AuthUser instance based on the Twitter's user api. -// -// API reference: https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me -func (p *Twitter) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) { - data, err := p.FetchRawUserData(token) - if err != nil { - return nil, err - } - - rawUser := map[string]any{} - if err := json.Unmarshal(data, &rawUser); err != nil { - return nil, err - } - - extracted := struct { - Data struct { - Id string `json:"id"` - Name string `json:"name"` - Username string `json:"username"` - ProfileImageUrl string `json:"profile_image_url"` - - // NB! At the time of writing, Twitter OAuth2 doesn't support returning the user email address - // (see https://twittercommunity.com/t/which-api-to-get-user-after-oauth2-authorization/162417/33) - // Email string `json:"email"` - } `json:"data"` - }{} - if err := json.Unmarshal(data, &extracted); err != nil { - return nil, err - } - - user := &AuthUser{ - Id: extracted.Data.Id, - Name: extracted.Data.Name, - Username: extracted.Data.Username, - AvatarUrl: extracted.Data.ProfileImageUrl, - RawUser: rawUser, - AccessToken: token.AccessToken, - } - - return user, nil -} diff --git a/tools/filesystem/filesystem.go b/tools/filesystem/filesystem.go deleted file mode 100644 index 05aba30bba1d14ca30eb04de142f025085d43a95..0000000000000000000000000000000000000000 --- a/tools/filesystem/filesystem.go +++ /dev/null @@ -1,381 +0,0 @@ -package filesystem - -import ( - "context" - "errors" - "image" - "io" - "mime/multipart" - "net/http" - "os" - "path/filepath" - "regexp" - "sort" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/disintegration/imaging" - "github.com/gabriel-vasile/mimetype" - "github.com/pocketbase/pocketbase/tools/list" - "gocloud.dev/blob" - "gocloud.dev/blob/fileblob" - "gocloud.dev/blob/s3blob" -) - -type System struct { - ctx context.Context - bucket *blob.Bucket -} - -// NewS3 initializes an S3 filesystem instance. -// -// NB! Make sure to call `Close()` after you are done working with it. -func NewS3( - bucketName string, - region string, - endpoint string, - accessKey string, - secretKey string, - s3ForcePathStyle bool, -) (*System, error) { - ctx := context.Background() // default context - - cred := credentials.NewStaticCredentials(accessKey, secretKey, "") - - sess, err := session.NewSession(&aws.Config{ - Region: aws.String(region), - Endpoint: aws.String(endpoint), - Credentials: cred, - S3ForcePathStyle: aws.Bool(s3ForcePathStyle), - }) - if err != nil { - return nil, err - } - - bucket, err := s3blob.OpenBucket(ctx, sess, bucketName, nil) - if err != nil { - return nil, err - } - - return &System{ctx: ctx, bucket: bucket}, nil -} - -// NewLocal initializes a new local filesystem instance. -// -// NB! Make sure to call `Close()` after you are done working with it. -func NewLocal(dirPath string) (*System, error) { - ctx := context.Background() // default context - - // makes sure that the directory exist - if err := os.MkdirAll(dirPath, os.ModePerm); err != nil { - return nil, err - } - - bucket, err := fileblob.OpenBucket(dirPath, nil) - if err != nil { - return nil, err - } - - return &System{ctx: ctx, bucket: bucket}, nil -} - -// Close releases any resources used for the related filesystem. -func (s *System) Close() error { - return s.bucket.Close() -} - -// Exists checks if file with fileKey path exists or not. -func (s *System) Exists(fileKey string) (bool, error) { - return s.bucket.Exists(s.ctx, fileKey) -} - -// Attributes returns the attributes for the file with fileKey path. -func (s *System) Attributes(fileKey string) (*blob.Attributes, error) { - return s.bucket.Attributes(s.ctx, fileKey) -} - -// Upload writes content into the fileKey location. -func (s *System) Upload(content []byte, fileKey string) error { - opts := &blob.WriterOptions{ - ContentType: mimetype.Detect(content).String(), - } - - w, writerErr := s.bucket.NewWriter(s.ctx, fileKey, opts) - if writerErr != nil { - return writerErr - } - - if _, err := w.Write(content); err != nil { - w.Close() - return err - } - - return w.Close() -} - -// UploadMultipart upload the provided multipart file to the fileKey location. -func (s *System) UploadMultipart(fh *multipart.FileHeader, fileKey string) error { - f, err := fh.Open() - if err != nil { - return err - } - defer f.Close() - - mt, err := mimetype.DetectReader(f) - if err != nil { - return err - } - - // rewind - f.Seek(0, io.SeekStart) - - originalName := fh.Filename - if len(originalName) > 255 { - // keep only the first 255 chars as a very rudimentary measure - // to prevent the metadata to grow too big in size - originalName = originalName[:255] - } - opts := &blob.WriterOptions{ - ContentType: mt.String(), - Metadata: map[string]string{ - "original_filename": originalName, - }, - } - - w, err := s.bucket.NewWriter(s.ctx, fileKey, opts) - if err != nil { - return err - } - - if _, err := w.ReadFrom(f); err != nil { - w.Close() - return err - } - - return w.Close() -} - -// Delete deletes stored file at fileKey location. -func (s *System) Delete(fileKey string) error { - return s.bucket.Delete(s.ctx, fileKey) -} - -// DeletePrefix deletes everything starting with the specified prefix. -func (s *System) DeletePrefix(prefix string) []error { - failed := []error{} - - if prefix == "" { - failed = append(failed, errors.New("Prefix mustn't be empty.")) - return failed - } - - dirsMap := map[string]struct{}{} - dirsMap[prefix] = struct{}{} - - // delete all files with the prefix - // --- - iter := s.bucket.List(&blob.ListOptions{ - Prefix: prefix, - }) - for { - obj, err := iter.Next(s.ctx) - if err == io.EOF { - break - } - - if err != nil { - failed = append(failed, err) - continue - } - - if err := s.Delete(obj.Key); err != nil { - failed = append(failed, err) - } else { - dirsMap[filepath.Dir(obj.Key)] = struct{}{} - } - } - // --- - - // try to delete the empty remaining dir objects - // (this operation usually is optional and there is no need to strictly check the result) - // --- - // fill dirs slice - dirs := make([]string, 0, len(dirsMap)) - for d := range dirsMap { - dirs = append(dirs, d) - } - - // sort the child dirs first, aka. ["a/b/c", "a/b", "a"] - sort.SliceStable(dirs, func(i, j int) bool { - return len(strings.Split(dirs[i], "/")) > len(strings.Split(dirs[j], "/")) - }) - - // delete dirs - for _, d := range dirs { - if d != "" { - s.Delete(d) - } - } - // --- - - return failed -} - -var inlineServeContentTypes = []string{ - // image - "image/png", "image/jpg", "image/jpeg", "image/gif", "image/webp", "image/x-icon", "image/bmp", - // video - "video/webm", "video/mp4", "video/3gpp", "video/quicktime", "video/x-ms-wmv", - // audio - "audio/basic", "audio/aiff", "audio/mpeg", "audio/midi", "audio/mp3", "audio/wave", - "audio/wav", "audio/x-wav", "audio/x-mpeg", "audio/x-m4a", "audio/aac", - // document - "application/pdf", "application/x-pdf", -} - -// manualExtensionContentTypes is a map of file extensions to content types. -var manualExtensionContentTypes = map[string]string{ - ".svg": "image/svg+xml", // (see https://github.com/whatwg/mimesniff/issues/7) - ".css": "text/css", // (see https://github.com/gabriel-vasile/mimetype/pull/113) -} - -// Serve serves the file at fileKey location to an HTTP response. -func (s *System) Serve(res http.ResponseWriter, req *http.Request, fileKey string, name string) error { - br, readErr := s.bucket.NewReader(s.ctx, fileKey, nil) - if readErr != nil { - return readErr - } - defer br.Close() - - disposition := "attachment" - realContentType := br.ContentType() - if list.ExistInSlice(realContentType, inlineServeContentTypes) { - disposition = "inline" - } - - // make an exception for specific content types and force a custom - // content type to send in the response so that it can be loaded directly - extContentType := realContentType - if ct, found := manualExtensionContentTypes[filepath.Ext(name)]; found && extContentType != ct { - extContentType = ct - } - - // clickjacking shouldn't be a concern when serving uploaded files, - // so it safe to unset the global X-Frame-Options to allow files embedding - // (see https://github.com/pocketbase/pocketbase/issues/677) - res.Header().Del("X-Frame-Options") - - res.Header().Set("Content-Disposition", disposition+"; filename="+name) - res.Header().Set("Content-Type", extContentType) - res.Header().Set("Content-Length", strconv.FormatInt(br.Size(), 10)) - res.Header().Set("Content-Security-Policy", "default-src 'none'; media-src 'self'; style-src 'unsafe-inline'; sandbox") - - // all HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT) - // (see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1) - // - // NB! time.LoadLocation may fail on non-Unix systems (see https://github.com/pocketbase/pocketbase/issues/45) - location, locationErr := time.LoadLocation("GMT") - if locationErr == nil { - res.Header().Set("Last-Modified", br.ModTime().In(location).Format("Mon, 02 Jan 06 15:04:05 MST")) - } - - // set a default cache-control header - // (valid for 30 days but the cache is allowed to reuse the file for any requests - // that are made in the last day while revalidating the res in the background) - if res.Header().Get("Cache-Control") == "" { - res.Header().Set("Cache-Control", "max-age=2592000, stale-while-revalidate=86400") - } - - http.ServeContent(res, req, name, br.ModTime(), br) - - return nil -} - -var ThumbSizeRegex = regexp.MustCompile(`^(\d+)x(\d+)(t|b|f)?$`) - -// CreateThumb creates a new thumb image for the file at originalKey location. -// The new thumb file is stored at thumbKey location. -// -// thumbSize is in the format: -// - 0xH (eg. 0x100) - resize to H height preserving the aspect ratio -// - Wx0 (eg. 300x0) - resize to W width preserving the aspect ratio -// - WxH (eg. 300x100) - resize and crop to WxH viewbox (from center) -// - WxHt (eg. 300x100t) - resize and crop to WxH viewbox (from top) -// - WxHb (eg. 300x100b) - resize and crop to WxH viewbox (from bottom) -// - WxHf (eg. 300x100f) - fit inside a WxH viewbox (without cropping) -func (s *System) CreateThumb(originalKey string, thumbKey, thumbSize string) error { - sizeParts := ThumbSizeRegex.FindStringSubmatch(thumbSize) - if len(sizeParts) != 4 { - return errors.New("Thumb size must be in WxH, WxHt, WxHb or WxHf format.") - } - - width, _ := strconv.Atoi(sizeParts[1]) - height, _ := strconv.Atoi(sizeParts[2]) - resizeType := sizeParts[3] - - if width == 0 && height == 0 { - return errors.New("Thumb width and height cannot be zero at the same time.") - } - - // fetch the original - r, readErr := s.bucket.NewReader(s.ctx, originalKey, nil) - if readErr != nil { - return readErr - } - defer r.Close() - - // create imaging object from the original reader - // (note: only the first frame for animated image formats) - img, decodeErr := imaging.Decode(r, imaging.AutoOrientation(true)) - if decodeErr != nil { - return decodeErr - } - - var thumbImg *image.NRGBA - - if width == 0 || height == 0 { - // force resize preserving aspect ratio - thumbImg = imaging.Resize(img, width, height, imaging.CatmullRom) - } else { - switch resizeType { - case "f": - // fit - thumbImg = imaging.Fit(img, width, height, imaging.CatmullRom) - case "t": - // fill and crop from top - thumbImg = imaging.Fill(img, width, height, imaging.Top, imaging.CatmullRom) - case "b": - // fill and crop from bottom - thumbImg = imaging.Fill(img, width, height, imaging.Bottom, imaging.CatmullRom) - default: - // fill and crop from center - thumbImg = imaging.Fill(img, width, height, imaging.Center, imaging.CatmullRom) - } - } - - // open a thumb storage writer (aka. prepare for upload) - w, writerErr := s.bucket.NewWriter(s.ctx, thumbKey, nil) - if writerErr != nil { - return writerErr - } - - // try to detect the thumb format based on the original file name - // (fallbacks to png on error) - format, err := imaging.FormatFromFilename(thumbKey) - if err != nil { - format = imaging.PNG - } - - // thumb encode (aka. upload) - if err := imaging.Encode(w, thumbImg, format); err != nil { - w.Close() - return err - } - - // check for close errors to ensure that the thumb was really saved - return w.Close() -} diff --git a/tools/filesystem/filesystem_test.go b/tools/filesystem/filesystem_test.go deleted file mode 100644 index 29c8e57802ad6e0f251ef4670730f282d505d7d7..0000000000000000000000000000000000000000 --- a/tools/filesystem/filesystem_test.go +++ /dev/null @@ -1,473 +0,0 @@ -package filesystem_test - -import ( - "bytes" - "image" - "image/png" - "mime/multipart" - "net/http" - "net/http/httptest" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/pocketbase/pocketbase/tools/filesystem" -) - -func TestFileSystemExists(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - scenarios := []struct { - file string - exists bool - }{ - {"sub1.txt", false}, - {"test/sub1.txt", true}, - {"test/sub2.txt", true}, - {"image.png", true}, - } - - for i, scenario := range scenarios { - exists, _ := fs.Exists(scenario.file) - - if exists != scenario.exists { - t.Errorf("(%d) Expected %v, got %v", i, scenario.exists, exists) - } - } -} - -func TestFileSystemAttributes(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - scenarios := []struct { - file string - expectError bool - expectContentType string - }{ - {"sub1.txt", true, ""}, - {"test/sub1.txt", false, "application/octet-stream"}, - {"test/sub2.txt", false, "application/octet-stream"}, - {"image.png", false, "image/png"}, - } - - for i, scenario := range scenarios { - attr, err := fs.Attributes(scenario.file) - - if err == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - - if err != nil && !scenario.expectError { - t.Errorf("(%d) Expected nil, got error, %v", i, err) - } - - if err == nil && attr.ContentType != scenario.expectContentType { - t.Errorf("(%d) Expected attr.ContentType to be %q, got %q", i, scenario.expectContentType, attr.ContentType) - } - } -} - -func TestFileSystemDelete(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - if err := fs.Delete("missing.txt"); err == nil { - t.Fatal("Expected error, got nil") - } - - if err := fs.Delete("image.png"); err != nil { - t.Fatalf("Expected nil, got error %v", err) - } -} - -func TestFileSystemDeletePrefix(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - if errs := fs.DeletePrefix(""); len(errs) == 0 { - t.Fatal("Expected error, got nil", errs) - } - - if errs := fs.DeletePrefix("missing/"); len(errs) != 0 { - t.Fatalf("Not existing prefix shouldn't error, got %v", errs) - } - - if errs := fs.DeletePrefix("test"); len(errs) != 0 { - t.Fatalf("Expected nil, got errors %v", errs) - } - - // ensure that the test/ files are deleted - if exists, _ := fs.Exists("test/sub1.txt"); exists { - t.Fatalf("Expected test/sub1.txt to be deleted") - } - if exists, _ := fs.Exists("test/sub2.txt"); exists { - t.Fatalf("Expected test/sub2.txt to be deleted") - } -} - -func TestFileSystemUploadMultipart(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - // create multipart form file - body := new(bytes.Buffer) - mp := multipart.NewWriter(body) - w, err := mp.CreateFormFile("test", "test") - if err != nil { - t.Fatalf("Failed creating form file: %v", err) - } - w.Write([]byte("demo")) - mp.Close() - - req := httptest.NewRequest(http.MethodPost, "/", body) - req.Header.Add("Content-Type", mp.FormDataContentType()) - - file, fh, err := req.FormFile("test") - if err != nil { - t.Fatalf("Failed to fetch form file: %v", err) - } - defer file.Close() - // --- - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - fileKey := "newdir/newkey.txt" - - uploadErr := fs.UploadMultipart(fh, fileKey) - if uploadErr != nil { - t.Fatal(uploadErr) - } - - if exists, _ := fs.Exists(fileKey); !exists { - t.Fatalf("Expected newdir/newkey.txt to exist") - } - - attrs, err := fs.Attributes(fileKey) - if err != nil { - t.Fatalf("Failed to fetch file attributes: %v", err) - } - if name, ok := attrs.Metadata["original_filename"]; !ok || name != "test" { - t.Fatalf("Expected original_filename to be %q, got %q", "test", name) - } -} - -func TestFileSystemUpload(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - uploadErr := fs.Upload([]byte("demo"), "newdir/newkey.txt") - if uploadErr != nil { - t.Fatal(uploadErr) - } - - if exists, _ := fs.Exists("newdir/newkey.txt"); !exists { - t.Fatalf("Expected newdir/newkey.txt to exist") - } -} - -func TestFileSystemServe(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - scenarios := []struct { - path string - name string - expectError bool - expectHeaders map[string]string - }{ - { - // missing - "missing.txt", - "test_name.txt", - true, - nil, - }, - { - // existing regular file - "test/sub1.txt", - "test_name.txt", - false, - map[string]string{ - "Content-Disposition": "attachment; filename=test_name.txt", - "Content-Type": "application/octet-stream", - "Content-Length": "0", - "Content-Security-Policy": "default-src 'none'; media-src 'self'; style-src 'unsafe-inline'; sandbox", - }, - }, - { - // png inline - "image.png", - "test_name.png", - false, - map[string]string{ - "Content-Disposition": "inline; filename=test_name.png", - "Content-Type": "image/png", - "Content-Length": "73", - "Content-Security-Policy": "default-src 'none'; media-src 'self'; style-src 'unsafe-inline'; sandbox", - }, - }, - { - // svg exception - "image.svg", - "test_name.svg", - false, - map[string]string{ - "Content-Disposition": "attachment; filename=test_name.svg", - "Content-Type": "image/svg+xml", - "Content-Length": "0", - "Content-Security-Policy": "default-src 'none'; media-src 'self'; style-src 'unsafe-inline'; sandbox", - }, - }, - { - // css exception - "style.css", - "test_name.css", - false, - map[string]string{ - "Content-Disposition": "attachment; filename=test_name.css", - "Content-Type": "text/css", - "Content-Length": "0", - "Content-Security-Policy": "default-src 'none'; media-src 'self'; style-src 'unsafe-inline'; sandbox", - }, - }, - } - - for _, scenario := range scenarios { - res := httptest.NewRecorder() - req := httptest.NewRequest("GET", "/", nil) - - err := fs.Serve(res, req, scenario.path, scenario.name) - hasErr := err != nil - - if hasErr != scenario.expectError { - t.Errorf("(%s) Expected hasError %v, got %v (%v)", scenario.path, scenario.expectError, hasErr, err) - continue - } - - if scenario.expectError { - continue - } - - result := res.Result() - - for hName, hValue := range scenario.expectHeaders { - v := result.Header.Get(hName) - if v != hValue { - t.Errorf("(%s) Expected value %q for header %q, got %q", scenario.path, hValue, hName, v) - } - } - - if v := result.Header.Get("X-Frame-Options"); v != "" { - t.Errorf("(%s) Expected the X-Frame-Options header to be unset, got %v", scenario.path, v) - } - - if v := result.Header.Get("Cache-Control"); v == "" { - t.Errorf("(%s) Expected Cache-Control header to be set, got empty string", scenario.path) - } - } -} - -func TestFileSystemServeSingleRange(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - res := httptest.NewRecorder() - req := httptest.NewRequest("GET", "/", nil) - req.Header.Add("Range", "bytes=0-20") - - if err := fs.Serve(res, req, "image.png", "image.png"); err != nil { - t.Fatal(err) - } - - result := res.Result() - - if result.StatusCode != http.StatusPartialContent { - t.Fatalf("Expected StatusCode %d, got %d", http.StatusPartialContent, result.StatusCode) - } - - expectedRange := "bytes 0-20/73" - if cr := result.Header.Get("Content-Range"); cr != expectedRange { - t.Fatalf("Expected Content-Range %q, got %q", expectedRange, cr) - } - - if l := result.Header.Get("Content-Length"); l != "21" { - t.Fatalf("Expected Content-Length %v, got %v", 21, l) - } -} - -func TestFileSystemServeMultiRange(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - res := httptest.NewRecorder() - req := httptest.NewRequest("GET", "/", nil) - req.Header.Add("Range", "bytes=0-20, 25-30") - - if err := fs.Serve(res, req, "image.png", "image.png"); err != nil { - t.Fatal(err) - } - - result := res.Result() - - if result.StatusCode != http.StatusPartialContent { - t.Fatalf("Expected StatusCode %d, got %d", http.StatusPartialContent, result.StatusCode) - } - - if ct := result.Header.Get("Content-Type"); !strings.HasPrefix(ct, "multipart/byteranges; boundary=") { - t.Fatalf("Expected Content-Type to be multipart/byteranges, got %v", ct) - } -} - -func TestFileSystemCreateThumb(t *testing.T) { - dir := createTestDir(t) - defer os.RemoveAll(dir) - - fs, err := filesystem.NewLocal(dir) - if err != nil { - t.Fatal(err) - } - defer fs.Close() - - scenarios := []struct { - file string - thumb string - cropCenter bool - expectError bool - }{ - // missing - {"missing.txt", "thumb_test_missing", true, true}, - // non-image existing file - {"test/sub1.txt", "thumb_test_sub1", true, true}, - // existing image file - crop center - {"image.png", "thumb_file_center", true, false}, - // existing image file - crop top - {"image.png", "thumb_file_top", false, false}, - // existing image file with existing thumb path = should fail - {"image.png", "test", true, true}, - } - - for i, scenario := range scenarios { - err := fs.CreateThumb(scenario.file, scenario.thumb, "100x100") - - hasErr := err != nil - if hasErr != scenario.expectError { - t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, scenario.expectError, hasErr, err) - continue - } - - if scenario.expectError { - continue - } - - if exists, _ := fs.Exists(scenario.thumb); !exists { - t.Errorf("(%d) Couldn't find %q thumb", i, scenario.thumb) - } - } -} - -// --- - -func createTestDir(t *testing.T) string { - dir, err := os.MkdirTemp(os.TempDir(), "pb_test") - if err != nil { - t.Fatal(err) - } - - if err := os.MkdirAll(filepath.Join(dir, "test"), os.ModePerm); err != nil { - t.Fatal(err) - } - - file1, err := os.OpenFile(filepath.Join(dir, "test/sub1.txt"), os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - t.Fatal(err) - } - file1.Close() - - file2, err := os.OpenFile(filepath.Join(dir, "test/sub2.txt"), os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - t.Fatal(err) - } - file2.Close() - - file3, err := os.OpenFile(filepath.Join(dir, "image.png"), os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - t.Fatal(err) - } - // tiny 1x1 png - imgRect := image.Rect(0, 0, 1, 1) - png.Encode(file3, imgRect) - file3.Close() - err2 := os.WriteFile(filepath.Join(dir, "image.png.attrs"), []byte(`{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null}`), 0644) - if err2 != nil { - t.Fatal(err2) - } - - file4, err := os.OpenFile(filepath.Join(dir, "image.svg"), os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - t.Fatal(err) - } - file4.Close() - - file5, err := os.OpenFile(filepath.Join(dir, "style.css"), os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - t.Fatal(err) - } - file5.Close() - - return dir -} diff --git a/tools/hook/hook.go b/tools/hook/hook.go deleted file mode 100644 index d2e039eb3e442deee9620b70c62a1cc11a3cf37c..0000000000000000000000000000000000000000 --- a/tools/hook/hook.go +++ /dev/null @@ -1,78 +0,0 @@ -package hook - -import ( - "errors" - "sync" -) - -var StopPropagation = errors.New("Event hook propagation stopped") - -// Handler defines a hook handler function. -type Handler[T any] func(e T) error - -// Hook defines a concurrent safe structure for handling event hooks -// (aka. callbacks propagation). -type Hook[T any] struct { - mux sync.RWMutex - handlers []Handler[T] -} - -// PreAdd registers a new handler to the hook by prepending it to the existing queue. -func (h *Hook[T]) PreAdd(fn Handler[T]) { - h.mux.Lock() - defer h.mux.Unlock() - - // minimize allocations by shifting the slice - h.handlers = append(h.handlers, nil) - copy(h.handlers[1:], h.handlers) - h.handlers[0] = fn -} - -// Add registers a new handler to the hook by appending it to the existing queue. -func (h *Hook[T]) Add(fn Handler[T]) { - h.mux.Lock() - defer h.mux.Unlock() - - h.handlers = append(h.handlers, fn) -} - -// Reset removes all registered handlers. -func (h *Hook[T]) Reset() { - h.mux.Lock() - defer h.mux.Unlock() - - h.handlers = nil -} - -// Trigger executes all registered hook handlers one by one -// with the specified `data` as an argument. -// -// Optionally, this method allows also to register additional one off -// handlers that will be temporary appended to the handlers queue. -// -// The execution stops when: -// - hook.StopPropagation is returned in one of the handlers -// - any non-nil error is returned in one of the handlers -func (h *Hook[T]) Trigger(data T, oneOffHandlers ...Handler[T]) error { - h.mux.RLock() - handlers := make([]Handler[T], 0, len(h.handlers)+len(oneOffHandlers)) - handlers = append(handlers, h.handlers...) - handlers = append(handlers, oneOffHandlers...) - // unlock is not deferred to avoid deadlocks when Trigger is called recursive by the handlers - h.mux.RUnlock() - - for _, fn := range handlers { - err := fn(data) - if err == nil { - continue - } - - if errors.Is(err, StopPropagation) { - return nil - } - - return err - } - - return nil -} diff --git a/tools/hook/hook_test.go b/tools/hook/hook_test.go deleted file mode 100644 index 11fd3a02770e2cff66cc56eb49724208237cbcac..0000000000000000000000000000000000000000 --- a/tools/hook/hook_test.go +++ /dev/null @@ -1,145 +0,0 @@ -package hook - -import ( - "errors" - "testing" -) - -func TestAddAndPreAdd(t *testing.T) { - h := Hook[int]{} - - if total := len(h.handlers); total != 0 { - t.Fatalf("Expected no handlers, found %d", total) - } - - triggerSequence := "" - - f1 := func(data int) error { triggerSequence += "f1"; return nil } - f2 := func(data int) error { triggerSequence += "f2"; return nil } - f3 := func(data int) error { triggerSequence += "f3"; return nil } - f4 := func(data int) error { triggerSequence += "f4"; return nil } - - h.Add(f1) - h.Add(f2) - h.PreAdd(f3) - h.PreAdd(f4) - h.Trigger(1) - - if total := len(h.handlers); total != 4 { - t.Fatalf("Expected %d handlers, found %d", 4, total) - } - - expectedTriggerSequence := "f4f3f1f2" - - if triggerSequence != expectedTriggerSequence { - t.Fatalf("Expected trigger sequence %s, got %s", expectedTriggerSequence, triggerSequence) - } -} - -func TestReset(t *testing.T) { - h := Hook[int]{} - - h.Reset() // should do nothing and not panic - - h.Add(func(data int) error { return nil }) - h.Add(func(data int) error { return nil }) - - if total := len(h.handlers); total != 2 { - t.Fatalf("Expected 2 handlers before Reset, found %d", total) - } - - h.Reset() - - if total := len(h.handlers); total != 0 { - t.Fatalf("Expected no handlers after Reset, found %d", total) - } -} - -func TestTrigger(t *testing.T) { - err1 := errors.New("demo") - err2 := errors.New("demo") - - scenarios := []struct { - handlers []Handler[int] - expectedError error - }{ - { - []Handler[int]{ - func(data int) error { return nil }, - func(data int) error { return nil }, - }, - nil, - }, - { - []Handler[int]{ - func(data int) error { return nil }, - func(data int) error { return err1 }, - func(data int) error { return err2 }, - }, - err1, - }, - } - - for i, scenario := range scenarios { - h := Hook[int]{} - for _, handler := range scenario.handlers { - h.Add(handler) - } - result := h.Trigger(1) - if result != scenario.expectedError { - t.Fatalf("(%d) Expected %v, got %v", i, scenario.expectedError, result) - } - } -} - -func TestTriggerStopPropagation(t *testing.T) { - called1 := false - f1 := func(data int) error { called1 = true; return nil } - - called2 := false - f2 := func(data int) error { called2 = true; return nil } - - called3 := false - f3 := func(data int) error { called3 = true; return nil } - - called4 := false - f4 := func(data int) error { called4 = true; return StopPropagation } - - called5 := false - f5 := func(data int) error { called5 = true; return nil } - - called6 := false - f6 := func(data int) error { called6 = true; return nil } - - h := Hook[int]{} - h.Add(f1) - h.Add(f2) - - result := h.Trigger(123, f3, f4, f5, f6) - - if result != nil { - t.Fatalf("Expected nil after StopPropagation, got %v", result) - } - - // ensure that the trigger handler were not persisted - if total := len(h.handlers); total != 2 { - t.Fatalf("Expected 2 handlers, found %d", total) - } - - scenarios := []struct { - called bool - expected bool - }{ - {called1, true}, - {called2, true}, - {called3, true}, - {called4, true}, // StopPropagation - {called5, false}, - {called6, false}, - } - for i, scenario := range scenarios { - if scenario.called != scenario.expected { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expected, scenario.called) - } - } -} diff --git a/tools/inflector/inflector.go b/tools/inflector/inflector.go deleted file mode 100644 index 3fa1ab13b71ea8e8836fdd02e8ebc1159f68cf8f..0000000000000000000000000000000000000000 --- a/tools/inflector/inflector.go +++ /dev/null @@ -1,85 +0,0 @@ -package inflector - -import ( - "regexp" - "strings" - "unicode" -) - -var columnifyRemoveRegex = regexp.MustCompile(`[^\w\.\*\-\_\@\#]+`) -var snakecaseSplitRegex = regexp.MustCompile(`[\W_]+`) - -// UcFirst converts the first character of a string into uppercase. -func UcFirst(str string) string { - if str == "" { - return "" - } - - s := []rune(str) - - return string(unicode.ToUpper(s[0])) + string(s[1:]) -} - -// Columnify strips invalid db identifier characters. -func Columnify(str string) string { - return columnifyRemoveRegex.ReplaceAllString(str, "") -} - -// Sentenize converts and normalizes string into a sentence. -func Sentenize(str string) string { - str = strings.TrimSpace(str) - if str == "" { - return "" - } - - str = UcFirst(str) - - lastChar := str[len(str)-1:] - if lastChar != "." && lastChar != "?" && lastChar != "!" { - return str + "." - } - - return str -} - -// Sanitize sanitizes `str` by removing all characters satisfying `removePattern`. -// Returns an error if the pattern is not valid regex string. -func Sanitize(str string, removePattern string) (string, error) { - exp, err := regexp.Compile(removePattern) - if err != nil { - return "", err - } - - return exp.ReplaceAllString(str, ""), nil -} - -// Snakecase removes all non word characters and converts any english text into a snakecase. -// "ABBREVIATIONS" are preserved, eg. "myTestDB" will become "my_test_db". -func Snakecase(str string) string { - var result strings.Builder - - // split at any non word character and underscore - words := snakecaseSplitRegex.Split(str, -1) - - for _, word := range words { - if word == "" { - continue - } - - if result.Len() > 0 { - result.WriteString("_") - } - - for i, c := range word { - if unicode.IsUpper(c) && i > 0 && - // is not a following uppercase character - !unicode.IsUpper(rune(word[i-1])) { - result.WriteString("_") - } - - result.WriteRune(c) - } - } - - return strings.ToLower(result.String()) -} diff --git a/tools/inflector/inflector_test.go b/tools/inflector/inflector_test.go deleted file mode 100644 index a4d21223adef9aecbb0597d721db8d5a698ff10a..0000000000000000000000000000000000000000 --- a/tools/inflector/inflector_test.go +++ /dev/null @@ -1,134 +0,0 @@ -package inflector_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/inflector" -) - -func TestUcFirst(t *testing.T) { - scenarios := []struct { - val string - expected string - }{ - {"", ""}, - {" ", " "}, - {"Test", "Test"}, - {"test", "Test"}, - {"test test2", "Test test2"}, - } - - for i, scenario := range scenarios { - if result := inflector.UcFirst(scenario.val); result != scenario.expected { - t.Errorf("(%d) Expected %q, got %q", i, scenario.expected, result) - } - } -} - -func TestColumnify(t *testing.T) { - scenarios := []struct { - val string - expected string - }{ - {"", ""}, - {" ", ""}, - {"123", "123"}, - {"Test.", "Test."}, - {" test ", "test"}, - {"test1.test2", "test1.test2"}, - {"@test!abc", "@testabc"}, - {"#test?abc", "#testabc"}, - {"123test(123)#", "123test123#"}, - {"test1--test2", "test1--test2"}, - } - - for i, scenario := range scenarios { - if result := inflector.Columnify(scenario.val); result != scenario.expected { - t.Errorf("(%d) Expected %q, got %q", i, scenario.expected, result) - } - } -} - -func TestSentenize(t *testing.T) { - scenarios := []struct { - val string - expected string - }{ - {"", ""}, - {" ", ""}, - {".", "."}, - {"?", "?"}, - {"!", "!"}, - {"Test", "Test."}, - {" test ", "Test."}, - {"hello world", "Hello world."}, - {"hello world.", "Hello world."}, - {"hello world!", "Hello world!"}, - {"hello world?", "Hello world?"}, - } - - for i, scenario := range scenarios { - if result := inflector.Sentenize(scenario.val); result != scenario.expected { - t.Errorf("(%d) Expected %q, got %q", i, scenario.expected, result) - } - } -} - -func TestSanitize(t *testing.T) { - scenarios := []struct { - val string - pattern string - expected string - expectErr bool - }{ - {"", ``, "", false}, - {" ", ``, " ", false}, - {" ", ` `, "", false}, - {"", `[A-Z]`, "", false}, - {"abcABC", `[A-Z]`, "abc", false}, - {"abcABC", `[A-Z`, "", true}, // invalid pattern - } - - for i, scenario := range scenarios { - result, err := inflector.Sanitize(scenario.val, scenario.pattern) - hasErr := err != nil - - if scenario.expectErr != hasErr { - if scenario.expectErr { - t.Errorf("(%d) Expected error, got nil", i) - } else { - t.Errorf("(%d) Didn't expect error, got", err) - } - } - - if result != scenario.expected { - t.Errorf("(%d) Expected %q, got %q", i, scenario.expected, result) - } - } -} - -func TestSnakecase(t *testing.T) { - scenarios := []struct { - val string - expected string - }{ - {"", ""}, - {" ", ""}, - {"!@#$%^", ""}, - {"...", ""}, - {"_", ""}, - {"John Doe", "john_doe"}, - {"John_Doe", "john_doe"}, - {".a!b@c#d$e%123. ", "a_b_c_d_e_123"}, - {"HelloWorld", "hello_world"}, - {"HelloWorld1HelloWorld2", "hello_world1_hello_world2"}, - {"TEST", "test"}, - {"testABR", "test_abr"}, - } - - for i, scenario := range scenarios { - if result := inflector.Snakecase(scenario.val); result != scenario.expected { - t.Errorf("(%d) Expected %q, got %q", i, scenario.expected, result) - } - } -} diff --git a/tools/list/list.go b/tools/list/list.go deleted file mode 100644 index aaace6d4d1715eb19e12fdaa2fea8edf65ee9547..0000000000000000000000000000000000000000 --- a/tools/list/list.go +++ /dev/null @@ -1,118 +0,0 @@ -package list - -import ( - "encoding/json" - "regexp" - "strings" - - "github.com/spf13/cast" -) - -var cachedPatterns = map[string]*regexp.Regexp{} - -// ExistInSlice checks whether a comparable element exists in a slice of the same type. -func ExistInSlice[T comparable](item T, list []T) bool { - if len(list) == 0 { - return false - } - - for _, v := range list { - if v == item { - return true - } - } - - return false -} - -// ExistInSliceWithRegex checks whether a string exists in a slice -// either by direct match, or by a regular expression (eg. `^\w+$`). -// -// _Note: Only list items starting with '^' and ending with '$' are treated as regular expressions!_ -func ExistInSliceWithRegex(str string, list []string) bool { - for _, field := range list { - isRegex := strings.HasPrefix(field, "^") && strings.HasSuffix(field, "$") - - if !isRegex { - // check for direct match - if str == field { - return true - } - continue - } - - // check for regex match - pattern, ok := cachedPatterns[field] - if !ok { - var err error - pattern, err = regexp.Compile(field) - if err != nil { - continue - } - // "cache" the pattern to avoid compiling it every time - cachedPatterns[field] = pattern - } - - if pattern != nil && pattern.MatchString(str) { - return true - } - } - - return false -} - -// ToInterfaceSlice converts a generic slice to slice of interfaces. -func ToInterfaceSlice[T any](list []T) []any { - result := make([]any, len(list)) - - for i := range list { - result[i] = list[i] - } - - return result -} - -// NonzeroUniques returns only the nonzero unique values from a slice. -func NonzeroUniques[T comparable](list []T) []T { - result := make([]T, 0, len(list)) - existMap := make(map[T]struct{}, len(list)) - - var zeroVal T - - for _, val := range list { - if _, ok := existMap[val]; ok || val == zeroVal { - continue - } - existMap[val] = struct{}{} - result = append(result, val) - } - - return result -} - -// ToUniqueStringSlice casts `value` to a slice of non-zero unique strings. -func ToUniqueStringSlice(value any) (result []string) { - switch val := value.(type) { - case nil: - // nothing to cast - case []string: - result = val - case string: - if val == "" { - break - } - - // check if it is a json encoded array of strings - if err := json.Unmarshal([]byte(val), &result); err != nil { - // not a json array, just add the string as single array element - result = append(result, val) - } - case json.Marshaler: // eg. JsonArray - raw, _ := val.MarshalJSON() - _ = json.Unmarshal(raw, &result) - default: - result = cast.ToStringSlice(value) - } - - return NonzeroUniques(result) -} diff --git a/tools/list/list_test.go b/tools/list/list_test.go deleted file mode 100644 index 16bbacd05820787c7d63d12fe0856afbae70a8fb..0000000000000000000000000000000000000000 --- a/tools/list/list_test.go +++ /dev/null @@ -1,174 +0,0 @@ -package list_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/list" - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestExistInSliceString(t *testing.T) { - scenarios := []struct { - item string - list []string - expected bool - }{ - {"", []string{""}, true}, - {"", []string{"1", "2", "test 123"}, false}, - {"test", []string{}, false}, - {"test", []string{"TEST"}, false}, - {"test", []string{"1", "2", "test 123"}, false}, - {"test", []string{"1", "2", "test"}, true}, - } - - for i, scenario := range scenarios { - result := list.ExistInSlice(scenario.item, scenario.list) - if result != scenario.expected { - if scenario.expected { - t.Errorf("(%d) Expected to exist in the list", i) - } else { - t.Errorf("(%d) Expected NOT to exist in the list", i) - } - } - } -} - -func TestExistInSliceInt(t *testing.T) { - scenarios := []struct { - item int - list []int - expected bool - }{ - {0, []int{}, false}, - {0, []int{0}, true}, - {4, []int{1, 2, 3}, false}, - {1, []int{1, 2, 3}, true}, - {-1, []int{0, 1, 2, 3}, false}, - {-1, []int{0, -1, -2, -3, -4}, true}, - } - - for i, scenario := range scenarios { - result := list.ExistInSlice(scenario.item, scenario.list) - if result != scenario.expected { - if scenario.expected { - t.Errorf("(%d) Expected to exist in the list", i) - } else { - t.Errorf("(%d) Expected NOT to exist in the list", i) - } - } - } -} - -func TestExistInSliceWithRegex(t *testing.T) { - scenarios := []struct { - item string - list []string - expected bool - }{ - {"", []string{``}, true}, - {"", []string{`^\W+$`}, false}, - {" ", []string{`^\W+$`}, true}, - {"test", []string{`^\invalid[+$`}, false}, // invalid regex - {"test", []string{`^\W+$`, "test"}, true}, - {`^\W+$`, []string{`^\W+$`, "test"}, false}, // direct match shouldn't work for this case - {`\W+$`, []string{`\W+$`, "test"}, true}, // direct match should work for this case because it is not an actual supported pattern format - {"!?@", []string{`\W+$`, "test"}, false}, // the method requires the pattern elems to start with '^' - {"!?@", []string{`^\W+`, "test"}, false}, // the method requires the pattern elems to end with '$' - {"!?@", []string{`^\W+$`, "test"}, true}, - {"!?@test", []string{`^\W+$`, "test"}, false}, - } - - for i, scenario := range scenarios { - result := list.ExistInSliceWithRegex(scenario.item, scenario.list) - if result != scenario.expected { - if scenario.expected { - t.Errorf("(%d) Expected the string to exist in the list", i) - } else { - t.Errorf("(%d) Expected the string NOT to exist in the list", i) - } - } - } -} - -func TestToInterfaceSlice(t *testing.T) { - scenarios := []struct { - items []string - }{ - {[]string{}}, - {[]string{""}}, - {[]string{"1", "test"}}, - {[]string{"test1", "test2", "test3"}}, - } - - for i, scenario := range scenarios { - result := list.ToInterfaceSlice(scenario.items) - - if len(result) != len(scenario.items) { - t.Errorf("(%d) Result list length doesn't match with the original list", i) - } - - for j, v := range result { - if v != scenario.items[j] { - t.Errorf("(%d:%d) Result list item should match with the original list item", i, j) - } - } - } -} - -func TestNonzeroUniquesString(t *testing.T) { - scenarios := []struct { - items []string - expected []string - }{ - {[]string{}, []string{}}, - {[]string{""}, []string{}}, - {[]string{"1", "test"}, []string{"1", "test"}}, - {[]string{"test1", "", "test2", "Test2", "test1", "test3"}, []string{"test1", "test2", "Test2", "test3"}}, - } - - for i, scenario := range scenarios { - result := list.NonzeroUniques(scenario.items) - - if len(result) != len(scenario.expected) { - t.Errorf("(%d) Result list length doesn't match with the expected list", i) - } - - for j, v := range result { - if v != scenario.expected[j] { - t.Errorf("(%d:%d) Result list item should match with the expected list item", i, j) - } - } - } -} - -func TestToUniqueStringSlice(t *testing.T) { - scenarios := []struct { - value any - expected []string - }{ - {nil, []string{}}, - {"", []string{}}, - {[]any{}, []string{}}, - {[]int{}, []string{}}, - {"test", []string{"test"}}, - {[]int{1, 2, 3}, []string{"1", "2", "3"}}, - {[]any{0, 1, "test", ""}, []string{"0", "1", "test"}}, - {[]string{"test1", "test2", "test1"}, []string{"test1", "test2"}}, - {`["test1", "test2", "test2"]`, []string{"test1", "test2"}}, - {types.JsonArray{"test1", "test2", "test1"}, []string{"test1", "test2"}}, - } - - for i, scenario := range scenarios { - result := list.ToUniqueStringSlice(scenario.value) - - if len(result) != len(scenario.expected) { - t.Errorf("(%d) Result list length doesn't match with the expected list", i) - } - - for j, v := range result { - if v != scenario.expected[j] { - t.Errorf("(%d:%d) Result list item should match with the expected list item", i, j) - } - } - } -} diff --git a/tools/mailer/html2text.go b/tools/mailer/html2text.go deleted file mode 100644 index f045654ac7f43cbed215630c16d3d409d8df874e..0000000000000000000000000000000000000000 --- a/tools/mailer/html2text.go +++ /dev/null @@ -1,105 +0,0 @@ -package mailer - -import ( - "regexp" - "strings" - - "github.com/pocketbase/pocketbase/tools/list" - "golang.org/x/net/html" -) - -var whitespaceRegex = regexp.MustCompile(`\s+`) - -// Very rudimentary auto HTML to Text mail body converter. -// -// Caveats: -// - This method doesn't check for correctness of the HTML document. -// - Links will be converted to "[text](url)" format. -// - List items (
  • ) are prefixed with "- ". -// - Indentation is stripped (both tabs and spaces). -// - Trailing spaces are preserved. -// - Multiple consequence newlines are collapsed as one unless multiple
    tags are used. -func html2Text(htmlDocument string) (string, error) { - var builder strings.Builder - - doc, err := html.Parse(strings.NewReader(htmlDocument)) - if err != nil { - return "", err - } - - tagsToSkip := []string{ - "style", "script", "iframe", "applet", "object", "svg", "img", - "button", "form", "textarea", "input", "select", "option", "template", - } - - inlineTags := []string{ - "a", "span", "small", "strike", "strong", - "sub", "sup", "em", "b", "u", "i", - } - - var canAddNewLine bool - - // see https://pkg.go.dev/golang.org/x/net/html#Parse - var f func(*html.Node) - f = func(n *html.Node) { - // start link wrapping for producing "[text](link)" formatted string - isLink := n.Type == html.ElementNode && n.Data == "a" - if isLink { - builder.WriteString("[") - } - - switch n.Type { - case html.TextNode: - txt := whitespaceRegex.ReplaceAllString(n.Data, " ") - - // the prev node has new line so it is safe to trim the indentation - if !canAddNewLine { - txt = strings.TrimLeft(txt, " ") - } - - if txt != "" { - builder.WriteString(txt) - canAddNewLine = true - } - case html.ElementNode: - if n.Data == "br" { - // always write new lines when
    tag is used - builder.WriteString("\r\n") - canAddNewLine = false - } else if canAddNewLine && !list.ExistInSlice(n.Data, inlineTags) { - builder.WriteString("\r\n") - canAddNewLine = false - } - - // prefix list items with dash - if n.Data == "li" { - builder.WriteString("- ") - } - } - - for c := n.FirstChild; c != nil; c = c.NextSibling { - if c.Type != html.ElementNode || !list.ExistInSlice(c.Data, tagsToSkip) { - f(c) - } - } - - // end link wrapping - if isLink { - builder.WriteString("]") - for _, a := range n.Attr { - if a.Key == "href" { - if a.Val != "" { - builder.WriteString("(") - builder.WriteString(a.Val) - builder.WriteString(")") - } - break - } - } - } - } - - f(doc) - - return strings.TrimSpace(builder.String()), nil -} diff --git a/tools/mailer/html2text_test.go b/tools/mailer/html2text_test.go deleted file mode 100644 index eb8f4d44289c93bb38309eda4f73fec4c030f033..0000000000000000000000000000000000000000 --- a/tools/mailer/html2text_test.go +++ /dev/null @@ -1,131 +0,0 @@ -package mailer - -import ( - "testing" -) - -func TestHtml2Text(t *testing.T) { - scenarios := []struct { - html string - expected string - }{ - { - "", - "", - }, - { - "ab c", - "ab c", - }, - { - "", - "", - }, - { - " a ", - "a", - }, - { - "abc", - "abc", - }, - { - `test`, - "[test](a/b/c)", - }, - { - `test`, - "[test]", - }, - { - "a b", - "a b", - }, - { - "a b c", - "a b c", - }, - { - "a b
    c
    ", - "a b \r\nc", - }, - { - ` - - - - - - - - - - -
    -
    -

    Lorem ipsum

    -

    Dolor sit amet

    -

    - Verify -

    -
    -

    - Verify2.1 Verify2.2 -

    -
    -
    -
    -
    -
    -
      -
    • ul.test1
    • -
    • ul.test2
    • -
    • ul.test3
    • -
    -
      -
    1. ol.test1
    2. -
    3. ol.test2
    4. -
    5. ol.test3
    6. -
    -
    -
    -
    - - - - -

    - Thanks,
    - PocketBase team -

    -
    -
    - - - `, - "Lorem ipsum \r\nDolor sit amet \r\n[Verify](a/b/c) \r\n[Verify2.1 Verify2.2](a/b/c) \r\n\r\n- ul.test1 \r\n- ul.test2 \r\n- ul.test3 \r\n- ol.test1 \r\n- ol.test2 \r\n- ol.test3 \r\nThanks,\r\nPocketBase team", - }, - } - - for i, s := range scenarios { - result, err := html2Text(s.html) - if err != nil { - t.Errorf("(%d) Unexpected error %v", i, err) - } - - if result != s.expected { - t.Errorf("(%d) Expected \n(%q)\n%v,\n\ngot:\n\n(%q)\n%v", i, s.expected, s.expected, result, result) - } - } -} diff --git a/tools/mailer/mailer.go b/tools/mailer/mailer.go deleted file mode 100644 index d46ac4ea6103be792405da5fe4a7f689b47f6201..0000000000000000000000000000000000000000 --- a/tools/mailer/mailer.go +++ /dev/null @@ -1,25 +0,0 @@ -package mailer - -import ( - "io" - "net/mail" -) - -// Message defines a generic email message struct. -type Message struct { - From mail.Address - To mail.Address - Bcc []string - Cc []string - Subject string - HTML string - Text string - Headers map[string]string - Attachments map[string]io.Reader -} - -// Mailer defines a base mail client interface. -type Mailer interface { - // Send sends an email with the provided Message. - Send(message *Message) error -} diff --git a/tools/mailer/sendmail.go b/tools/mailer/sendmail.go deleted file mode 100644 index e56e53f15d3f9d4d438c91837eb1f9d73512fef4..0000000000000000000000000000000000000000 --- a/tools/mailer/sendmail.go +++ /dev/null @@ -1,75 +0,0 @@ -package mailer - -import ( - "bytes" - "errors" - "mime" - "net/http" - "os/exec" -) - -var _ Mailer = (*Sendmail)(nil) - -// Sendmail implements `mailer.Mailer` interface and defines a mail -// client that sends emails via the `sendmail` *nix command. -// -// This client is usually recommended only for development and testing. -type Sendmail struct { -} - -// Send implements `mailer.Mailer` interface. -func (c *Sendmail) Send(m *Message) error { - headers := make(http.Header) - headers.Set("Subject", mime.QEncoding.Encode("utf-8", m.Subject)) - headers.Set("From", m.From.String()) - headers.Set("To", m.To.String()) - headers.Set("Content-Type", "text/html; charset=UTF-8") - - cmdPath, err := findSendmailPath() - if err != nil { - return err - } - - var buffer bytes.Buffer - - // write - // --- - if err := headers.Write(&buffer); err != nil { - return err - } - if _, err := buffer.Write([]byte("\r\n")); err != nil { - return err - } - if m.HTML != "" { - if _, err := buffer.Write([]byte(m.HTML)); err != nil { - return err - } - } else { - if _, err := buffer.Write([]byte(m.Text)); err != nil { - return err - } - } - // --- - - sendmail := exec.Command(cmdPath, m.To.Address) - sendmail.Stdin = &buffer - - return sendmail.Run() -} - -func findSendmailPath() (string, error) { - options := []string{ - "/usr/sbin/sendmail", - "/usr/bin/sendmail", - "sendmail", - } - - for _, option := range options { - path, err := exec.LookPath(option) - if err == nil { - return path, err - } - } - - return "", errors.New("Failed to locate a sendmail executable path.") -} diff --git a/tools/mailer/smtp.go b/tools/mailer/smtp.go deleted file mode 100644 index 56fc862df57c7e6563a93972baa0bee4e44620de..0000000000000000000000000000000000000000 --- a/tools/mailer/smtp.go +++ /dev/null @@ -1,110 +0,0 @@ -package mailer - -import ( - "fmt" - "net/smtp" - "strings" - - "github.com/domodwyer/mailyak/v3" - "github.com/pocketbase/pocketbase/tools/security" -) - -var _ Mailer = (*SmtpClient)(nil) - -// NewSmtpClient creates new `SmtpClient` with the provided configuration. -func NewSmtpClient( - host string, - port int, - username string, - password string, - tls bool, -) *SmtpClient { - return &SmtpClient{ - host: host, - port: port, - username: username, - password: password, - tls: tls, - } -} - -// SmtpClient defines a SMTP mail client structure that implements -// `mailer.Mailer` interface. -type SmtpClient struct { - host string - port int - username string - password string - tls bool -} - -// Send implements `mailer.Mailer` interface. -func (c *SmtpClient) Send(m *Message) error { - var smtpAuth smtp.Auth - if c.username != "" || c.password != "" { - smtpAuth = smtp.PlainAuth("", c.username, c.password, c.host) - } - - // create mail instance - var yak *mailyak.MailYak - if c.tls { - var tlsErr error - yak, tlsErr = mailyak.NewWithTLS(fmt.Sprintf("%s:%d", c.host, c.port), smtpAuth, nil) - if tlsErr != nil { - return tlsErr - } - } else { - yak = mailyak.New(fmt.Sprintf("%s:%d", c.host, c.port), smtpAuth) - } - - if m.From.Name != "" { - yak.FromName(m.From.Name) - } - yak.From(m.From.Address) - yak.To(m.To.Address) - yak.Subject(m.Subject) - yak.HTML().Set(m.HTML) - - if m.Text == "" { - // try to generate a plain text version of the HTML - if plain, err := html2Text(m.HTML); err == nil { - yak.Plain().Set(plain) - } - } else { - yak.Plain().Set(m.Text) - } - - if len(m.Bcc) > 0 { - yak.Bcc(m.Bcc...) - } - - if len(m.Cc) > 0 { - yak.Cc(m.Cc...) - } - - // add attachements (if any) - for name, data := range m.Attachments { - yak.Attach(name, data) - } - - // add custom headers (if any) - var hasMessageId bool - for k, v := range m.Headers { - if strings.EqualFold(k, "Message-ID") { - hasMessageId = true - } - yak.AddHeader(k, v) - } - if !hasMessageId { - // add a default message id if missing - fromParts := strings.Split(m.From.Address, "@") - if len(fromParts) == 2 { - yak.AddHeader("Message-ID", fmt.Sprintf("<%s@%s>", - security.PseudorandomString(15), - fromParts[1], - )) - } - } - - return yak.Send() -} diff --git a/tools/migrate/list.go b/tools/migrate/list.go deleted file mode 100644 index 65d249920c69dbb63e34b18565ee53ae107b44b7..0000000000000000000000000000000000000000 --- a/tools/migrate/list.go +++ /dev/null @@ -1,59 +0,0 @@ -package migrate - -import ( - "path/filepath" - "runtime" - "sort" - - "github.com/pocketbase/dbx" -) - -type Migration struct { - File string - Up func(db dbx.Builder) error - Down func(db dbx.Builder) error -} - -// MigrationsList defines a list with migration definitions -type MigrationsList struct { - list []*Migration -} - -// Item returns a single migration from the list by its index. -func (l *MigrationsList) Item(index int) *Migration { - return l.list[index] -} - -// Items returns the internal migrations list slice. -func (l *MigrationsList) Items() []*Migration { - return l.list -} - -// Register adds new migration definition to the list. -// -// If `optFilename` is not provided, it will try to get the name from its .go file. -// -// The list will be sorted automatically based on the migrations file name. -func (l *MigrationsList) Register( - up func(db dbx.Builder) error, - down func(db dbx.Builder) error, - optFilename ...string, -) { - var file string - if len(optFilename) > 0 { - file = optFilename[0] - } else { - _, path, _, _ := runtime.Caller(1) - file = filepath.Base(path) - } - - l.list = append(l.list, &Migration{ - File: file, - Up: up, - Down: down, - }) - - sort.Slice(l.list, func(i int, j int) bool { - return l.list[i].File < l.list[j].File - }) -} diff --git a/tools/migrate/list_test.go b/tools/migrate/list_test.go deleted file mode 100644 index 5030e882db4f6b7f09581f35a12c63a0df41d051..0000000000000000000000000000000000000000 --- a/tools/migrate/list_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package migrate - -import ( - "testing" -) - -func TestMigrationsList(t *testing.T) { - l := MigrationsList{} - - l.Register(nil, nil, "3_test.go") - l.Register(nil, nil, "1_test.go") - l.Register(nil, nil, "2_test.go") - l.Register(nil, nil /* auto detect file name */) - - expected := []string{ - "1_test.go", - "2_test.go", - "3_test.go", - "list_test.go", - } - - items := l.Items() - if len(items) != len(expected) { - t.Fatalf("Expected %d items, got %d: \n%#v", len(expected), len(items), items) - } - - for i, name := range expected { - item := l.Item(i) - if item.File != name { - t.Fatalf("Expected name %s for index %d, got %s", name, i, item.File) - } - } -} diff --git a/tools/migrate/runner.go b/tools/migrate/runner.go deleted file mode 100644 index 7485e5e266d11144738ca4cefc8f77a228809f37..0000000000000000000000000000000000000000 --- a/tools/migrate/runner.go +++ /dev/null @@ -1,220 +0,0 @@ -package migrate - -import ( - "fmt" - "time" - - "github.com/AlecAivazis/survey/v2" - "github.com/fatih/color" - "github.com/pocketbase/dbx" - "github.com/spf13/cast" -) - -const DefaultMigrationsTable = "_migrations" - -// Runner defines a simple struct for managing the execution of db migrations. -type Runner struct { - db *dbx.DB - migrationsList MigrationsList - tableName string -} - -// NewRunner creates and initializes a new db migrations Runner instance. -func NewRunner(db *dbx.DB, migrationsList MigrationsList) (*Runner, error) { - runner := &Runner{ - db: db, - migrationsList: migrationsList, - tableName: DefaultMigrationsTable, - } - - if err := runner.createMigrationsTable(); err != nil { - return nil, err - } - - return runner, nil -} - -// Run interactively executes the current runner with the provided args. -// -// The following commands are supported: -// - up - applies all migrations -// - down [n] - reverts the last n applied migrations -func (r *Runner) Run(args ...string) error { - cmd := "up" - if len(args) > 0 { - cmd = args[0] - } - - switch cmd { - case "up": - applied, err := r.Up() - if err != nil { - color.Red(err.Error()) - return err - } - - if len(applied) == 0 { - color.Green("No new migrations to apply.") - } else { - for _, file := range applied { - color.Green("Applied %s", file) - } - } - - return nil - case "down": - toRevertCount := 1 - if len(args) > 1 { - toRevertCount = cast.ToInt(args[1]) - if toRevertCount < 0 { - // revert all applied migrations - toRevertCount = len(r.migrationsList.Items()) - } - } - - confirm := false - prompt := &survey.Confirm{ - Message: fmt.Sprintf("Do you really want to revert the last %d applied migration(s)?", toRevertCount), - } - survey.AskOne(prompt, &confirm) - if !confirm { - fmt.Println("The command has been cancelled") - return nil - } - - reverted, err := r.Down(toRevertCount) - if err != nil { - color.Red(err.Error()) - return err - } - - if len(reverted) == 0 { - color.Green("No migrations to revert.") - } else { - for _, file := range reverted { - color.Green("Reverted %s", file) - } - } - - return nil - default: - return fmt.Errorf("Unsupported command: %q\n", cmd) - } -} - -// Up executes all unapplied migrations for the provided runner. -// -// On success returns list with the applied migrations file names. -func (r *Runner) Up() ([]string, error) { - applied := []string{} - - err := r.db.Transactional(func(tx *dbx.Tx) error { - for _, m := range r.migrationsList.Items() { - // skip applied - if r.isMigrationApplied(tx, m.File) { - continue - } - - // ignore empty Up action - if m.Up != nil { - if err := m.Up(tx); err != nil { - return fmt.Errorf("Failed to apply migration %s: %w", m.File, err) - } - } - - if err := r.saveAppliedMigration(tx, m.File); err != nil { - return fmt.Errorf("Failed to save applied migration info for %s: %w", m.File, err) - } - - applied = append(applied, m.File) - } - - return nil - }) - - if err != nil { - return nil, err - } - return applied, nil -} - -// Down reverts the last `toRevertCount` applied migrations. -// -// On success returns list with the reverted migrations file names. -func (r *Runner) Down(toRevertCount int) ([]string, error) { - reverted := make([]string, 0, toRevertCount) - - err := r.db.Transactional(func(tx *dbx.Tx) error { - for i := len(r.migrationsList.Items()) - 1; i >= 0; i-- { - m := r.migrationsList.Item(i) - - // skip unapplied - if !r.isMigrationApplied(tx, m.File) { - continue - } - - // revert limit reached - if toRevertCount-len(reverted) <= 0 { - break - } - - // ignore empty Down action - if m.Down != nil { - if err := m.Down(tx); err != nil { - return fmt.Errorf("Failed to revert migration %s: %w", m.File, err) - } - } - - if err := r.saveRevertedMigration(tx, m.File); err != nil { - return fmt.Errorf("Failed to save reverted migration info for %s: %w", m.File, err) - } - - reverted = append(reverted, m.File) - } - - return nil - }) - - if err != nil { - return nil, err - } - return reverted, nil -} - -func (r *Runner) createMigrationsTable() error { - rawQuery := fmt.Sprintf( - "CREATE TABLE IF NOT EXISTS %v (file VARCHAR(255) PRIMARY KEY NOT NULL, applied INTEGER NOT NULL)", - r.db.QuoteTableName(r.tableName), - ) - - _, err := r.db.NewQuery(rawQuery).Execute() - - return err -} - -func (r *Runner) isMigrationApplied(tx dbx.Builder, file string) bool { - var exists bool - - err := tx.Select("count(*)"). - From(r.tableName). - Where(dbx.HashExp{"file": file}). - Limit(1). - Row(&exists) - - return err == nil && exists -} - -func (r *Runner) saveAppliedMigration(tx dbx.Builder, file string) error { - _, err := tx.Insert(r.tableName, dbx.Params{ - "file": file, - "applied": time.Now().Unix(), - }).Execute() - - return err -} - -func (r *Runner) saveRevertedMigration(tx dbx.Builder, file string) error { - _, err := tx.Delete(r.tableName, dbx.HashExp{"file": file}).Execute() - - return err -} diff --git a/tools/migrate/runner_test.go b/tools/migrate/runner_test.go deleted file mode 100644 index bd579ab039da35cfa3eb14ea56ab9980d4ee105d..0000000000000000000000000000000000000000 --- a/tools/migrate/runner_test.go +++ /dev/null @@ -1,150 +0,0 @@ -package migrate - -import ( - "context" - "database/sql" - "testing" - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/tools/list" - _ "modernc.org/sqlite" -) - -func TestNewRunner(t *testing.T) { - testDB, err := createTestDB() - if err != nil { - t.Fatal(err) - } - defer testDB.Close() - - l := MigrationsList{} - l.Register(nil, nil, "1_test.go") - l.Register(nil, nil, "2_test.go") - l.Register(nil, nil, "3_test.go") - - r, err := NewRunner(testDB.DB, l) - if err != nil { - t.Fatal(err) - } - - if len(r.migrationsList.Items()) != len(l.Items()) { - t.Fatalf("Expected the same migrations list to be assigned, got \n%#v", r.migrationsList) - } - - expectedQueries := []string{ - "CREATE TABLE IF NOT EXISTS `_migrations` (file VARCHAR(255) PRIMARY KEY NOT NULL, applied INTEGER NOT NULL)", - } - if len(expectedQueries) != len(testDB.CalledQueries) { - t.Fatalf("Expected %d queries, got %d: \n%v", len(expectedQueries), len(testDB.CalledQueries), testDB.CalledQueries) - } - for _, q := range expectedQueries { - if !list.ExistInSlice(q, testDB.CalledQueries) { - t.Fatalf("Query %s was not found in \n%v", q, testDB.CalledQueries) - } - } -} - -func TestRunnerUpAndDown(t *testing.T) { - testDB, err := createTestDB() - if err != nil { - t.Fatal(err) - } - defer testDB.Close() - - var test1UpCalled bool - var test1DownCalled bool - var test2UpCalled bool - var test2DownCalled bool - - l := MigrationsList{} - l.Register(func(db dbx.Builder) error { - test1UpCalled = true - return nil - }, func(db dbx.Builder) error { - test1DownCalled = true - return nil - }, "1_test") - l.Register(func(db dbx.Builder) error { - test2UpCalled = true - return nil - }, func(db dbx.Builder) error { - test2DownCalled = true - return nil - }, "2_test") - - r, err := NewRunner(testDB.DB, l) - if err != nil { - t.Fatal(err) - } - - // simulate partially run migration - r.saveAppliedMigration(testDB, r.migrationsList.Item(0).File) - - // Up() - // --- - if _, err := r.Up(); err != nil { - t.Fatal(err) - } - - if test1UpCalled { - t.Fatalf("Didn't expect 1_test to be called") - } - - if !test2UpCalled { - t.Fatalf("Expected 2_test to be called") - } - - // simulate unrun migration - var test3DownCalled bool - r.migrationsList.Register(nil, func(db dbx.Builder) error { - test3DownCalled = true - return nil - }, "3_test") - - // Down() - // --- - // revert one migration - if _, err := r.Down(1); err != nil { - t.Fatal(err) - } - - if test3DownCalled { - t.Fatal("Didn't expect 3_test to be reverted.") - } - - if !test2DownCalled { - t.Fatal("Expected 2_test to be reverted.") - } - - if test1DownCalled { - t.Fatal("Didn't expect 1_test to be reverted.") - } -} - -// ------------------------------------------------------------------- -// Helpers -// ------------------------------------------------------------------- - -type testDB struct { - *dbx.DB - CalledQueries []string -} - -// NB! Don't forget to call `db.Close()` at the end of the test. -func createTestDB() (*testDB, error) { - sqlDB, err := sql.Open("sqlite", ":memory:") - if err != nil { - return nil, err - } - - db := testDB{DB: dbx.NewFromDB(sqlDB, "sqlite")} - db.QueryLogFunc = func(ctx context.Context, t time.Duration, sql string, rows *sql.Rows, err error) { - db.CalledQueries = append(db.CalledQueries, sql) - } - db.ExecLogFunc = func(ctx context.Context, t time.Duration, sql string, result sql.Result, err error) { - db.CalledQueries = append(db.CalledQueries, sql) - } - - return &db, nil -} diff --git a/tools/rest/multi_binder.go b/tools/rest/multi_binder.go deleted file mode 100644 index 5467909adf3757def237c50e10eebb3373d054a2..0000000000000000000000000000000000000000 --- a/tools/rest/multi_binder.go +++ /dev/null @@ -1,59 +0,0 @@ -package rest - -import ( - "bytes" - "encoding/json" - "io" - "net/http" - "strings" - - "github.com/labstack/echo/v5" -) - -// BindBody binds request body content to i. -// -// This is similar to `echo.BindBody()`, but for JSON requests uses -// custom json reader that **copies** the request body, allowing multiple reads. -func BindBody(c echo.Context, i interface{}) error { - req := c.Request() - if req.ContentLength == 0 { - return nil - } - - ctype := req.Header.Get(echo.HeaderContentType) - switch { - case strings.HasPrefix(ctype, echo.MIMEApplicationJSON): - err := CopyJsonBody(c.Request(), i) - if err != nil { - return echo.NewHTTPErrorWithInternal(http.StatusBadRequest, err, err.Error()) - } - return nil - default: - // fallback to the default binder - return echo.BindBody(c, i) - } -} - -// CopyJsonBody reads the request body into i by -// creating a copy of `r.Body` to allow multiple reads. -func CopyJsonBody(r *http.Request, i interface{}) error { - body := r.Body - - // this usually shouldn't be needed because the Server calls close for us - // but we are changing the request body with a new reader - defer body.Close() - - limitReader := io.LimitReader(body, DefaultMaxMemory) - - bodyBytes, readErr := io.ReadAll(limitReader) - if readErr != nil { - return readErr - } - - err := json.NewDecoder(bytes.NewReader(bodyBytes)).Decode(i) - - // set new body reader - r.Body = io.NopCloser(bytes.NewReader(bodyBytes)) - - return err -} diff --git a/tools/rest/multi_binder_test.go b/tools/rest/multi_binder_test.go deleted file mode 100644 index 853e21911d756870f0a7f4766062c47677382671..0000000000000000000000000000000000000000 --- a/tools/rest/multi_binder_test.go +++ /dev/null @@ -1,102 +0,0 @@ -package rest_test - -import ( - "io" - "net/http" - "net/http/httptest" - "net/url" - "strings" - "testing" - - "github.com/labstack/echo/v5" - "github.com/pocketbase/pocketbase/tools/rest" -) - -func TestBindBody(t *testing.T) { - scenarios := []struct { - body io.Reader - contentType string - result map[string]string - expectError bool - }{ - { - strings.NewReader(""), - echo.MIMEApplicationJSON, - map[string]string{}, - false, - }, - { - strings.NewReader(`{"test":"invalid`), - echo.MIMEApplicationJSON, - map[string]string{}, - true, - }, - { - strings.NewReader(`{"test":"test123"}`), - echo.MIMEApplicationJSON, - map[string]string{"test": "test123"}, - false, - }, - { - strings.NewReader(url.Values{"test": []string{"test123"}}.Encode()), - echo.MIMEApplicationForm, - map[string]string{"test": "test123"}, - false, - }, - } - - for i, scenario := range scenarios { - e := echo.New() - req := httptest.NewRequest(http.MethodPost, "/", scenario.body) - req.Header.Set(echo.HeaderContentType, scenario.contentType) - rec := httptest.NewRecorder() - c := e.NewContext(req, rec) - - result := map[string]string{} - err := rest.BindBody(c, &result) - - if err == nil && scenario.expectError { - t.Errorf("(%d) Expected error, got nil", i) - } - - if err != nil && !scenario.expectError { - t.Errorf("(%d) Expected nil, got error %v", i, err) - } - - if len(result) != len(scenario.result) { - t.Errorf("(%d) Expected %v, got %v", i, scenario.result, result) - } - - for k, v := range result { - if sv, ok := scenario.result[k]; !ok || v != sv { - t.Errorf("(%d) Expected value %v for key %s, got %v", i, sv, k, v) - } - } - } -} - -func TestCopyJsonBody(t *testing.T) { - req := httptest.NewRequest(http.MethodGet, "/", strings.NewReader(`{"test":"test123"}`)) - - // simulate multiple reads from the same request - result1 := map[string]string{} - rest.CopyJsonBody(req, &result1) - result2 := map[string]string{} - rest.CopyJsonBody(req, &result2) - - if len(result1) == 0 { - t.Error("Expected result1 to be filled") - } - - if len(result2) == 0 { - t.Error("Expected result2 to be filled") - } - - if v, ok := result1["test"]; !ok || v != "test123" { - t.Errorf("Expected result1.test to be %q, got %q", "test123", v) - } - - if v, ok := result2["test"]; !ok || v != "test123" { - t.Errorf("Expected result2.test to be %q, got %q", "test123", v) - } -} diff --git a/tools/rest/uploaded_file.go b/tools/rest/uploaded_file.go deleted file mode 100644 index 8376f2b3768d3dc6271e46056e639b6167e1ad76..0000000000000000000000000000000000000000 --- a/tools/rest/uploaded_file.go +++ /dev/null @@ -1,100 +0,0 @@ -package rest - -import ( - "fmt" - "mime/multipart" - "net/http" - "path/filepath" - "regexp" - "strings" - - "github.com/gabriel-vasile/mimetype" - "github.com/pocketbase/pocketbase/tools/inflector" - "github.com/pocketbase/pocketbase/tools/security" -) - -// DefaultMaxMemory defines the default max memory bytes that -// will be used when parsing a form request body. -const DefaultMaxMemory = 32 << 20 // 32mb - -var extensionInvalidCharsRegex = regexp.MustCompile(`[^\w\.\*\-\+\=\#]+`) - -// UploadedFile defines a single multipart uploaded file instance. -type UploadedFile struct { - name string - header *multipart.FileHeader -} - -// Name returns an assigned unique name to the uploaded file. -func (f *UploadedFile) Name() string { - return f.name -} - -// Header returns the file header that comes with the multipart request. -func (f *UploadedFile) Header() *multipart.FileHeader { - return f.header -} - -// FindUploadedFiles extracts all form files of `key` from a http request -// and returns a slice with `UploadedFile` instances (if any). -func FindUploadedFiles(r *http.Request, key string) ([]*UploadedFile, error) { - if r.MultipartForm == nil { - err := r.ParseMultipartForm(DefaultMaxMemory) - if err != nil { - return nil, err - } - } - - if r.MultipartForm == nil || r.MultipartForm.File == nil || len(r.MultipartForm.File[key]) == 0 { - return nil, http.ErrMissingFile - } - - result := make([]*UploadedFile, 0, len(r.MultipartForm.File[key])) - - for _, fh := range r.MultipartForm.File[key] { - file, err := fh.Open() - if err != nil { - return nil, err - } - defer file.Close() - - // extension - // --- - originalExt := filepath.Ext(fh.Filename) - sanitizedExt := extensionInvalidCharsRegex.ReplaceAllString(originalExt, "") - if sanitizedExt == "" { - // try to detect the extension from the mime type - mt, err := mimetype.DetectReader(file) - if err != nil { - return nil, err - } - sanitizedExt = mt.Extension() - } - - // name - // --- - originalName := strings.TrimSuffix(fh.Filename, originalExt) - sanitizedName := inflector.Snakecase(originalName) - if length := len(sanitizedName); length < 3 { - // the name is too short so we concatenate an additional random part - sanitizedName += security.RandomString(10) - } else if length > 100 { - // keep only the first 100 characters (it is multibyte safe after Snakecase) - sanitizedName = sanitizedName[:100] - } - - uploadedFilename := fmt.Sprintf( - "%s_%s%s", - sanitizedName, - security.RandomString(10), // ensure that there is always a random part - sanitizedExt, - ) - - result = append(result, &UploadedFile{ - name: uploadedFilename, - header: fh, - }) - } - - return result, nil -} diff --git a/tools/rest/uploaded_file_test.go b/tools/rest/uploaded_file_test.go deleted file mode 100644 index b11ebde34b5101dbfcb84ff056185de318d62555..0000000000000000000000000000000000000000 --- a/tools/rest/uploaded_file_test.go +++ /dev/null @@ -1,80 +0,0 @@ -package rest_test - -import ( - "bytes" - "mime/multipart" - "net/http" - "net/http/httptest" - "regexp" - "strings" - "testing" - - "github.com/pocketbase/pocketbase/tools/rest" -) - -func TestFindUploadedFiles(t *testing.T) { - scenarios := []struct { - filename string - expectedPattern string - }{ - {"ab.png", `^ab\w{10}_\w{10}\.png$`}, - {"test", `^test_\w{10}\.txt$`}, - {"a b c d!@$.j!@$pg", `^a_b_c_d_\w{10}\.jpg$`}, - {strings.Repeat("a", 150), `^a{100}_\w{10}\.txt$`}, - } - - for i, s := range scenarios { - // create multipart form file body - body := new(bytes.Buffer) - mp := multipart.NewWriter(body) - w, err := mp.CreateFormFile("test", s.filename) - if err != nil { - t.Fatal(err) - } - w.Write([]byte("test")) - mp.Close() - // --- - - req := httptest.NewRequest(http.MethodPost, "/", body) - req.Header.Add("Content-Type", mp.FormDataContentType()) - - result, err := rest.FindUploadedFiles(req, "test") - if err != nil { - t.Fatal(err) - } - - if len(result) != 1 { - t.Errorf("[%d] Expected 1 file, got %d", i, len(result)) - } - - if result[0].Header().Size != 4 { - t.Errorf("[%d] Expected the file size to be 4 bytes, got %d", i, result[0].Header().Size) - } - - pattern, err := regexp.Compile(s.expectedPattern) - if err != nil { - t.Errorf("[%d] Invalid filename pattern %q: %v", i, s.expectedPattern, err) - } - if !pattern.MatchString(result[0].Name()) { - t.Fatalf("Expected filename to match %s, got filename %s", s.expectedPattern, result[0].Name()) - } - } -} - -func TestFindUploadedFilesMissing(t *testing.T) { - body := new(bytes.Buffer) - mp := multipart.NewWriter(body) - mp.Close() - - req := httptest.NewRequest(http.MethodPost, "/", body) - req.Header.Add("Content-Type", mp.FormDataContentType()) - - result, err := rest.FindUploadedFiles(req, "test") - if err == nil { - t.Error("Expected error, got nil") - } - - if result != nil { - t.Errorf("Expected result to be nil, got %v", result) - } -} diff --git a/tools/rest/url.go b/tools/rest/url.go deleted file mode 100644 index 87dd6b21c14f099c2358d61e225186c02dfbc1ad..0000000000000000000000000000000000000000 --- a/tools/rest/url.go +++ /dev/null @@ -1,29 +0,0 @@ -package rest - -import ( - "net/url" - "path" - "strings" -) - -// NormalizeUrl removes duplicated slashes from a url path. -func NormalizeUrl(originalUrl string) (string, error) { - u, err := url.Parse(originalUrl) - if err != nil { - return "", err - } - - hasSlash := strings.HasSuffix(u.Path, "/") - - // clean up path by removing duplicated / - u.Path = path.Clean(u.Path) - u.RawPath = path.Clean(u.RawPath) - - // restore original trailing slash - if hasSlash && !strings.HasSuffix(u.Path, "/") { - u.Path += "/" - u.RawPath += "/" - } - - return u.String(), nil -} diff --git a/tools/rest/url_test.go b/tools/rest/url_test.go deleted file mode 100644 index 091d5bc4e18f3aeacd7595b2c824190f90fa285e..0000000000000000000000000000000000000000 --- a/tools/rest/url_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package rest_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/rest" -) - -func TestNormalizeUrl(t *testing.T) { - scenarios := []struct { - url string - expectError bool - expectUrl string - }{ - {":/", true, ""}, - {"./", false, "./"}, - {"../../test////", false, "../../test/"}, - {"/a/b/c", false, "/a/b/c"}, - {"a/////b//c/", false, "a/b/c/"}, - {"/a/////b//c", false, "/a/b/c"}, - {"///a/b/c", false, "/a/b/c"}, - {"//a/b/c", false, "//a/b/c"}, // preserve "auto-schema" - {"http://a/b/c", false, "http://a/b/c"}, - {"a//bc?test=1//dd", false, "a/bc?test=1//dd"}, // only the path is normalized - {"a//bc?test=1#12///3", false, "a/bc?test=1#12///3"}, // only the path is normalized - } - - for i, s := range scenarios { - result, err := rest.NormalizeUrl(s.url) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v", i, s.expectError, hasErr) - } - - if result != s.expectUrl { - t.Errorf("(%d) Expected url %q, got %q", i, s.expectUrl, result) - } - } -} diff --git a/tools/routine/routine.go b/tools/routine/routine.go deleted file mode 100644 index 7974d58b7464ce7bf0f9ba748e4614260fc3cc0e..0000000000000000000000000000000000000000 --- a/tools/routine/routine.go +++ /dev/null @@ -1,32 +0,0 @@ -package routine - -import ( - "log" - "runtime/debug" - "sync" -) - -// FireAndForget executes `f()` in a new go routine and auto recovers if panic. -// -// **Note:** Use this only if you are not interested in the result of `f()` -// and don't want to block the parent go routine. -func FireAndForget(f func(), wg ...*sync.WaitGroup) { - if len(wg) > 0 && wg[0] != nil { - wg[0].Add(1) - } - - go func() { - if len(wg) > 0 && wg[0] != nil { - defer wg[0].Done() - } - - defer func() { - if err := recover(); err != nil { - log.Printf("RECOVERED FROM PANIC: %v", err) - log.Printf("%s\n", string(debug.Stack())) - } - }() - - f() - }() -} diff --git a/tools/routine/routine_test.go b/tools/routine/routine_test.go deleted file mode 100644 index dcb6ace60ba4ed7bff80a013b2999907d8228b85..0000000000000000000000000000000000000000 --- a/tools/routine/routine_test.go +++ /dev/null @@ -1,27 +0,0 @@ -package routine_test - -import ( - "sync" - "testing" - - "github.com/pocketbase/pocketbase/tools/routine" -) - -func TestFireAndForget(t *testing.T) { - called := false - - fn := func() { - called = true - panic("test") - } - - wg := &sync.WaitGroup{} - - routine.FireAndForget(fn, wg) - - wg.Wait() - - if !called { - t.Error("Expected fn to be called.") - } -} diff --git a/tools/search/filter.go b/tools/search/filter.go deleted file mode 100644 index 516a79946f8ae00a56c1a7d893938714da0691ab..0000000000000000000000000000000000000000 --- a/tools/search/filter.go +++ /dev/null @@ -1,211 +0,0 @@ -package search - -import ( - "errors" - "fmt" - "strings" - - "github.com/ganigeorgiev/fexpr" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/tools/security" - "github.com/pocketbase/pocketbase/tools/store" - "github.com/pocketbase/pocketbase/tools/types" - "github.com/spf13/cast" -) - -// FilterData is a filter expression string following the `fexpr` package grammar. -// -// Example: -// -// var filter FilterData = "id = null || (name = 'test' && status = true)" -// resolver := search.NewSimpleFieldResolver("id", "name", "status") -// expr, err := filter.BuildExpr(resolver) -type FilterData string - -// parsedFilterData holds a cache with previously parsed filter data expressions -// (initialized with some preallocated empty data map) -var parsedFilterData = store.New(make(map[string][]fexpr.ExprGroup, 50)) - -// BuildExpr parses the current filter data and returns a new db WHERE expression. -func (f FilterData) BuildExpr(fieldResolver FieldResolver) (dbx.Expression, error) { - raw := string(f) - if parsedFilterData.Has(raw) { - return f.build(parsedFilterData.Get(raw), fieldResolver) - } - data, err := fexpr.Parse(raw) - if err != nil { - return nil, err - } - // store in cache - // (the limit size is arbitrary and it is there to prevent the cache growing too big) - parsedFilterData.SetIfLessThanLimit(raw, data, 500) - return f.build(data, fieldResolver) -} - -func (f FilterData) build(data []fexpr.ExprGroup, fieldResolver FieldResolver) (dbx.Expression, error) { - if len(data) == 0 { - return nil, errors.New("Empty filter expression.") - } - - var result dbx.Expression - - for _, group := range data { - var expr dbx.Expression - var exprErr error - - switch item := group.Item.(type) { - case fexpr.Expr: - expr, exprErr = f.resolveTokenizedExpr(item, fieldResolver) - case fexpr.ExprGroup: - expr, exprErr = f.build([]fexpr.ExprGroup{item}, fieldResolver) - case []fexpr.ExprGroup: - expr, exprErr = f.build(item, fieldResolver) - default: - exprErr = errors.New("Unsupported expression item.") - } - - if exprErr != nil { - return nil, exprErr - } - - if group.Join == fexpr.JoinAnd { - result = dbx.And(result, expr) - } else { - result = dbx.Or(result, expr) - } - } - - return result, nil -} - -func (f FilterData) resolveTokenizedExpr(expr fexpr.Expr, fieldResolver FieldResolver) (dbx.Expression, error) { - lName, lParams, lErr := f.resolveToken(expr.Left, fieldResolver) - if lName == "" || lErr != nil { - return nil, fmt.Errorf("Invalid left operand %q - %v.", expr.Left.Literal, lErr) - } - - rName, rParams, rErr := f.resolveToken(expr.Right, fieldResolver) - if rName == "" || rErr != nil { - return nil, fmt.Errorf("Invalid right operand %q - %v.", expr.Right.Literal, rErr) - } - - switch expr.Op { - case fexpr.SignEq: - return dbx.NewExp(fmt.Sprintf("COALESCE(%s, '') = COALESCE(%s, '')", lName, rName), mergeParams(lParams, rParams)), nil - case fexpr.SignNeq: - return dbx.NewExp(fmt.Sprintf("COALESCE(%s, '') != COALESCE(%s, '')", lName, rName), mergeParams(lParams, rParams)), nil - case fexpr.SignLike: - // the right side is a column and therefor wrap it with "%" for contains like behavior - if len(rParams) == 0 { - return dbx.NewExp(fmt.Sprintf("%s LIKE ('%%' || %s || '%%')", lName, rName), lParams), nil - } - - return dbx.NewExp(fmt.Sprintf("%s LIKE %s", lName, rName), mergeParams(lParams, wrapLikeParams(rParams))), nil - case fexpr.SignNlike: - // the right side is a column and therefor wrap it with "%" for not-contains like behavior - if len(rParams) == 0 { - return dbx.NewExp(fmt.Sprintf("%s NOT LIKE ('%%' || %s || '%%')", lName, rName), lParams), nil - } - - // normalize operands and switch sides if the left operand is a number/text, but the right one is a column - // (usually this shouldn't be needed, but it's kept for backward compatibility) - if len(lParams) > 0 && len(rParams) == 0 { - return dbx.NewExp(fmt.Sprintf("%s NOT LIKE %s", rName, lName), wrapLikeParams(lParams)), nil - } - - return dbx.NewExp(fmt.Sprintf("%s NOT LIKE %s", lName, rName), mergeParams(lParams, wrapLikeParams(rParams))), nil - case fexpr.SignLt: - return dbx.NewExp(fmt.Sprintf("%s < %s", lName, rName), mergeParams(lParams, rParams)), nil - case fexpr.SignLte: - return dbx.NewExp(fmt.Sprintf("%s <= %s", lName, rName), mergeParams(lParams, rParams)), nil - case fexpr.SignGt: - return dbx.NewExp(fmt.Sprintf("%s > %s", lName, rName), mergeParams(lParams, rParams)), nil - case fexpr.SignGte: - return dbx.NewExp(fmt.Sprintf("%s >= %s", lName, rName), mergeParams(lParams, rParams)), nil - } - - return nil, fmt.Errorf("Unknown expression operator %q", expr.Op) -} - -func (f FilterData) resolveToken(token fexpr.Token, fieldResolver FieldResolver) (name string, params dbx.Params, err error) { - switch token.Type { - case fexpr.TokenIdentifier: - // current datetime constant - // --- - if token.Literal == "@now" { - placeholder := "t" + security.PseudorandomString(8) - name := fmt.Sprintf("{:%s}", placeholder) - params := dbx.Params{placeholder: types.NowDateTime().String()} - - return name, params, nil - } - - // custom resolver - // --- - name, params, err := fieldResolver.Resolve(token.Literal) - - if name == "" || err != nil { - m := map[string]string{ - // if `null` field is missing, treat `null` identifier as NULL token - "null": "NULL", - // if `true` field is missing, treat `true` identifier as TRUE token - "true": "1", - // if `false` field is missing, treat `false` identifier as FALSE token - "false": "0", - } - if v, ok := m[strings.ToLower(token.Literal)]; ok { - return v, nil, nil - } - return "", nil, err - } - - return name, params, err - case fexpr.TokenText: - placeholder := "t" + security.PseudorandomString(8) - name := fmt.Sprintf("{:%s}", placeholder) - params := dbx.Params{placeholder: token.Literal} - - return name, params, nil - case fexpr.TokenNumber: - placeholder := "t" + security.PseudorandomString(8) - name := fmt.Sprintf("{:%s}", placeholder) - params := dbx.Params{placeholder: cast.ToFloat64(token.Literal)} - - return name, params, nil - } - - return "", nil, errors.New("Unresolvable token type.") -} - -// mergeParams returns new dbx.Params where each provided params item -// is merged in the order they are specified. -func mergeParams(params ...dbx.Params) dbx.Params { - result := dbx.Params{} - - for _, p := range params { - for k, v := range p { - result[k] = v - } - } - - return result -} - -// wrapLikeParams wraps each provided param value string with `%` -// if the string doesn't contains the `%` char (including its escape sequence). -func wrapLikeParams(params dbx.Params) dbx.Params { - result := dbx.Params{} - - for k, v := range params { - vStr := cast.ToString(v) - if !strings.Contains(vStr, "%") { - for i := 0; i < len(dbx.DefaultLikeEscape); i += 2 { - vStr = strings.ReplaceAll(vStr, dbx.DefaultLikeEscape[i], dbx.DefaultLikeEscape[i+1]) - } - vStr = "%" + vStr + "%" - } - result[k] = vStr - } - - return result -} diff --git a/tools/search/filter_test.go b/tools/search/filter_test.go deleted file mode 100644 index 98a8c23c7d755bd0e9f8045a9b9006fed17328a4..0000000000000000000000000000000000000000 --- a/tools/search/filter_test.go +++ /dev/null @@ -1,156 +0,0 @@ -package search_test - -import ( - "regexp" - "testing" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/tools/search" -) - -func TestFilterDataBuildExpr(t *testing.T) { - resolver := search.NewSimpleFieldResolver("test1", "test2", "test3", "test4.sub") - - scenarios := []struct { - filterData search.FilterData - expectError bool - expectPattern string - }{ - // empty - {"", true, ""}, - // invalid format - {"(test1 > 1", true, ""}, - // invalid operator - {"test1 + 123", true, ""}, - // unknown field - {"test1 = 'example' && unknown > 1", true, ""}, - // simple expression - {"test1 > 1", false, - "^" + - regexp.QuoteMeta("[[test1]] > {:") + - ".+" + - regexp.QuoteMeta("}") + - "$", - }, - // like with 2 columns - {"test1 ~ test2", false, - "^" + - regexp.QuoteMeta("[[test1]] LIKE ('%' || [[test2]] || '%')") + - "$", - }, - // like with right column operand - {"'lorem' ~ test1", false, - "^" + - regexp.QuoteMeta("{:") + - ".+" + - regexp.QuoteMeta("} LIKE ('%' || [[test1]] || '%')") + - "$", - }, - // like with left column operand and text as right operand - {"test1 ~ 'lorem'", false, - "^" + - regexp.QuoteMeta("[[test1]] LIKE {:") + - ".+" + - regexp.QuoteMeta("}") + - "$", - }, - // not like with 2 columns - {"test1 !~ test2", false, - "^" + - regexp.QuoteMeta("[[test1]] NOT LIKE ('%' || [[test2]] || '%')") + - "$", - }, - // not like with right column operand - {"'lorem' !~ test1", false, - "^" + - regexp.QuoteMeta("{:") + - ".+" + - regexp.QuoteMeta("} NOT LIKE ('%' || [[test1]] || '%')") + - "$", - }, - // like with left column operand and text as right operand - {"test1 !~ 'lorem'", false, - "^" + - regexp.QuoteMeta("[[test1]] NOT LIKE {:") + - ".+" + - regexp.QuoteMeta("}") + - "$", - }, - // current datetime constant - {"test1 > @now", false, - "^" + - regexp.QuoteMeta("[[test1]] > {:") + - ".+" + - regexp.QuoteMeta("}") + - "$", - }, - // complex expression - { - "((test1 > 1) || (test2 != 2)) && test3 ~ '%%example' && test4.sub = null", - false, - "^" + - regexp.QuoteMeta("((([[test1]] > {:") + - ".+" + - regexp.QuoteMeta("}) OR (COALESCE([[test2]], '') != COALESCE({:") + - ".+" + - regexp.QuoteMeta("}, ''))) AND ([[test3]] LIKE {:") + - ".+" + - regexp.QuoteMeta("})) AND (COALESCE([[test4.sub]], '') = COALESCE(NULL, ''))") + - "$", - }, - // combination of special literals (null, true, false) - { - "test1=true && test2 != false && test3 = null || test4.sub != null", - false, - "^" + regexp.QuoteMeta("(((COALESCE([[test1]], '') = COALESCE(1, '')) AND (COALESCE([[test2]], '') != COALESCE(0, ''))) AND (COALESCE([[test3]], '') = COALESCE(NULL, ''))) OR (COALESCE([[test4.sub]], '') != COALESCE(NULL, ''))") + "$", - }, - // all operators - { - "(test1 = test2 || test2 != test3) && (test2 ~ 'example' || test2 !~ '%%abc') && 'switch1%%' ~ test1 && 'switch2' !~ test2 && test3 > 1 && test3 >= 0 && test3 <= 4 && 2 < 5", - false, - "^" + - regexp.QuoteMeta("((((((((COALESCE([[test1]], '') = COALESCE([[test2]], '')) OR (COALESCE([[test2]], '') != COALESCE([[test3]], ''))) AND (([[test2]] LIKE {:") + - ".+" + - regexp.QuoteMeta("}) OR ([[test2]] NOT LIKE {:") + - ".+" + - regexp.QuoteMeta("}))) AND ({:") + - ".+" + - regexp.QuoteMeta("} LIKE ('%' || [[test1]] || '%'))) AND ({:") + - ".+" + - regexp.QuoteMeta("} NOT LIKE ('%' || [[test2]] || '%'))) AND ([[test3]] > {:") + - ".+" + - regexp.QuoteMeta("})) AND ([[test3]] >= {:") + - ".+" + - regexp.QuoteMeta("})) AND ([[test3]] <= {:") + - ".+" + - regexp.QuoteMeta("})) AND ({:") + - ".+" + - regexp.QuoteMeta("} < {:") + - ".+" + - regexp.QuoteMeta("})") + - "$", - }, - } - - for i, s := range scenarios { - expr, err := s.filterData.BuildExpr(resolver) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if hasErr { - continue - } - - dummyDB := &dbx.DB{} - rawSql := expr.Build(dummyDB, map[string]any{}) - - pattern := regexp.MustCompile(s.expectPattern) - if !pattern.MatchString(rawSql) { - t.Errorf("(%d) Pattern %v don't match with expression: \n%v", i, s.expectPattern, rawSql) - } - } -} diff --git a/tools/search/provider.go b/tools/search/provider.go deleted file mode 100644 index f8d728fb13ce263b5417049d93e88ef841946ed7..0000000000000000000000000000000000000000 --- a/tools/search/provider.go +++ /dev/null @@ -1,251 +0,0 @@ -package search - -import ( - "errors" - "math" - "net/url" - "strconv" - "strings" - - "github.com/pocketbase/dbx" -) - -// DefaultPerPage specifies the default returned search result items. -const DefaultPerPage int = 30 - -// MaxPerPage specifies the maximum allowed search result items returned in a single page. -const MaxPerPage int = 500 - -// url search query params -const ( - PageQueryParam string = "page" - PerPageQueryParam string = "perPage" - SortQueryParam string = "sort" - FilterQueryParam string = "filter" -) - -// Result defines the returned search result structure. -type Result struct { - Page int `json:"page"` - PerPage int `json:"perPage"` - TotalItems int `json:"totalItems"` - TotalPages int `json:"totalPages"` - Items any `json:"items"` -} - -// Provider represents a single configured search provider instance. -type Provider struct { - fieldResolver FieldResolver - query *dbx.SelectQuery - page int - perPage int - sort []SortField - filter []FilterData -} - -// NewProvider creates and returns a new search provider. -// -// Example: -// -// baseQuery := db.Select("*").From("user") -// fieldResolver := search.NewSimpleFieldResolver("id", "name") -// models := []*YourDataStruct{} -// -// result, err := search.NewProvider(fieldResolver). -// Query(baseQuery). -// ParseAndExec("page=2&filter=id>0&sort=-email", &models) -func NewProvider(fieldResolver FieldResolver) *Provider { - return &Provider{ - fieldResolver: fieldResolver, - page: 1, - perPage: DefaultPerPage, - sort: []SortField{}, - filter: []FilterData{}, - } -} - -// Query sets the base query that will be used to fetch the search items. -func (s *Provider) Query(query *dbx.SelectQuery) *Provider { - s.query = query - return s -} - -// Page sets the `page` field of the current search provider. -// -// Normalization on the `page` value is done during `Exec()`. -func (s *Provider) Page(page int) *Provider { - s.page = page - return s -} - -// PerPage sets the `perPage` field of the current search provider. -// -// Normalization on the `perPage` value is done during `Exec()`. -func (s *Provider) PerPage(perPage int) *Provider { - s.perPage = perPage - return s -} - -// Sort sets the `sort` field of the current search provider. -func (s *Provider) Sort(sort []SortField) *Provider { - s.sort = sort - return s -} - -// AddSort appends the provided SortField to the existing provider's sort field. -func (s *Provider) AddSort(field SortField) *Provider { - s.sort = append(s.sort, field) - return s -} - -// Filter sets the `filter` field of the current search provider. -func (s *Provider) Filter(filter []FilterData) *Provider { - s.filter = filter - return s -} - -// AddFilter appends the provided FilterData to the existing provider's filter field. -func (s *Provider) AddFilter(filter FilterData) *Provider { - if filter != "" { - s.filter = append(s.filter, filter) - } - return s -} - -// Parse parses the search query parameter from the provided query string -// and assigns the found fields to the current search provider. -// -// The data from the "sort" and "filter" query parameters are appended -// to the existing provider's `sort` and `filter` fields -// (aka. using `AddSort` and `AddFilter`). -func (s *Provider) Parse(urlQuery string) error { - params, err := url.ParseQuery(urlQuery) - if err != nil { - return err - } - - if rawPage := params.Get(PageQueryParam); rawPage != "" { - page, err := strconv.Atoi(rawPage) - if err != nil { - return err - } - s.Page(page) - } - - if rawPerPage := params.Get(PerPageQueryParam); rawPerPage != "" { - perPage, err := strconv.Atoi(rawPerPage) - if err != nil { - return err - } - s.PerPage(perPage) - } - - if rawSort := params.Get(SortQueryParam); rawSort != "" { - for _, sortField := range ParseSortFromString(rawSort) { - s.AddSort(sortField) - } - } - - if rawFilter := params.Get(FilterQueryParam); rawFilter != "" { - s.AddFilter(FilterData(rawFilter)) - } - - return nil -} - -// Exec executes the search provider and fills/scans -// the provided `items` slice with the found models. -func (s *Provider) Exec(items any) (*Result, error) { - if s.query == nil { - return nil, errors.New("Query is not set.") - } - - // clone provider's query - modelsQuery := *s.query - - // build filters - for _, f := range s.filter { - expr, err := f.BuildExpr(s.fieldResolver) - if err != nil { - return nil, err - } - if expr != nil { - modelsQuery.AndWhere(expr) - } - } - - // apply sorting - for _, sortField := range s.sort { - expr, err := sortField.BuildExpr(s.fieldResolver) - if err != nil { - return nil, err - } - if expr != "" { - modelsQuery.AndOrderBy(expr) - } - } - - // apply field resolver query modifications (if any) - if err := s.fieldResolver.UpdateQuery(&modelsQuery); err != nil { - return nil, err - } - - queryInfo := modelsQuery.Info() - - // count - var totalCount int64 - var baseTable string - if len(queryInfo.From) > 0 { - baseTable = queryInfo.From[0] - } - countQuery := modelsQuery - rawCountQuery := countQuery.Select(strings.Join([]string{baseTable, "id"}, ".")).OrderBy().Build().SQL() - wrappedCountQuery := queryInfo.Builder.NewQuery("SELECT COUNT(*) FROM (" + rawCountQuery + ")") - wrappedCountQuery.Bind(countQuery.Build().Params()) - if err := wrappedCountQuery.Row(&totalCount); err != nil { - return nil, err - } - - // normalize perPage - if s.perPage <= 0 { - s.perPage = DefaultPerPage - } else if s.perPage > MaxPerPage { - s.perPage = MaxPerPage - } - - totalPages := int(math.Ceil(float64(totalCount) / float64(s.perPage))) - - // normalize page according to the total count - if s.page <= 0 || totalCount == 0 { - s.page = 1 - } else if s.page > totalPages { - s.page = totalPages - } - - // apply pagination - modelsQuery.Limit(int64(s.perPage)) - modelsQuery.Offset(int64(s.perPage * (s.page - 1))) - - // fetch models - if err := modelsQuery.All(items); err != nil { - return nil, err - } - - return &Result{ - Page: s.page, - PerPage: s.perPage, - TotalItems: int(totalCount), - TotalPages: totalPages, - Items: items, - }, nil -} - -// ParseAndExec is a short convenient method to trigger both -// `Parse()` and `Exec()` in a single call. -func (s *Provider) ParseAndExec(urlQuery string, modelsSlice any) (*Result, error) { - if err := s.Parse(urlQuery); err != nil { - return nil, err - } - - return s.Exec(modelsSlice) -} diff --git a/tools/search/provider_test.go b/tools/search/provider_test.go deleted file mode 100644 index c65fe7c33102a8b9c2968a75970f5b67c8986578..0000000000000000000000000000000000000000 --- a/tools/search/provider_test.go +++ /dev/null @@ -1,505 +0,0 @@ -package search - -import ( - "context" - "database/sql" - "encoding/json" - "errors" - "fmt" - "testing" - "time" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/tools/list" - _ "modernc.org/sqlite" -) - -func TestNewProvider(t *testing.T) { - r := &testFieldResolver{} - p := NewProvider(r) - - if p.page != 1 { - t.Fatalf("Expected page %d, got %d", 1, p.page) - } - - if p.perPage != DefaultPerPage { - t.Fatalf("Expected perPage %d, got %d", DefaultPerPage, p.perPage) - } -} - -func TestProviderQuery(t *testing.T) { - db := dbx.NewFromDB(nil, "") - query := db.Select("id").From("test") - querySql := query.Build().SQL() - - r := &testFieldResolver{} - p := NewProvider(r).Query(query) - - expected := p.query.Build().SQL() - - if querySql != expected { - t.Fatalf("Expected %v, got %v", expected, querySql) - } -} - -func TestProviderPage(t *testing.T) { - r := &testFieldResolver{} - p := NewProvider(r).Page(10) - - if p.page != 10 { - t.Fatalf("Expected page %v, got %v", 10, p.page) - } -} - -func TestProviderPerPage(t *testing.T) { - r := &testFieldResolver{} - p := NewProvider(r).PerPage(456) - - if p.perPage != 456 { - t.Fatalf("Expected perPage %v, got %v", 456, p.perPage) - } -} - -func TestProviderSort(t *testing.T) { - initialSort := []SortField{{"test1", SortAsc}, {"test2", SortAsc}} - r := &testFieldResolver{} - p := NewProvider(r). - Sort(initialSort). - AddSort(SortField{"test3", SortDesc}) - - encoded, _ := json.Marshal(p.sort) - expected := `[{"name":"test1","direction":"ASC"},{"name":"test2","direction":"ASC"},{"name":"test3","direction":"DESC"}]` - - if string(encoded) != expected { - t.Fatalf("Expected sort %v, got \n%v", expected, string(encoded)) - } -} - -func TestProviderFilter(t *testing.T) { - initialFilter := []FilterData{"test1", "test2"} - r := &testFieldResolver{} - p := NewProvider(r). - Filter(initialFilter). - AddFilter("test3") - - encoded, _ := json.Marshal(p.filter) - expected := `["test1","test2","test3"]` - - if string(encoded) != expected { - t.Fatalf("Expected filter %v, got \n%v", expected, string(encoded)) - } -} - -func TestProviderParse(t *testing.T) { - initialPage := 2 - initialPerPage := 123 - initialSort := []SortField{{"test1", SortAsc}, {"test2", SortAsc}} - initialFilter := []FilterData{"test1", "test2"} - - scenarios := []struct { - query string - expectError bool - expectPage int - expectPerPage int - expectSort string - expectFilter string - }{ - // empty - { - "", - false, - initialPage, - initialPerPage, - `[{"name":"test1","direction":"ASC"},{"name":"test2","direction":"ASC"}]`, - `["test1","test2"]`, - }, - // invalid query - { - "invalid;", - true, - initialPage, - initialPerPage, - `[{"name":"test1","direction":"ASC"},{"name":"test2","direction":"ASC"}]`, - `["test1","test2"]`, - }, - // invalid page - { - "page=a", - true, - initialPage, - initialPerPage, - `[{"name":"test1","direction":"ASC"},{"name":"test2","direction":"ASC"}]`, - `["test1","test2"]`, - }, - // invalid perPage - { - "perPage=a", - true, - initialPage, - initialPerPage, - `[{"name":"test1","direction":"ASC"},{"name":"test2","direction":"ASC"}]`, - `["test1","test2"]`, - }, - // valid query parameters - { - "page=3&perPage=456&filter=test3&sort=-a,b,+c&other=123", - false, - 3, - 456, - `[{"name":"test1","direction":"ASC"},{"name":"test2","direction":"ASC"},{"name":"a","direction":"DESC"},{"name":"b","direction":"ASC"},{"name":"c","direction":"ASC"}]`, - `["test1","test2","test3"]`, - }, - } - - for i, s := range scenarios { - r := &testFieldResolver{} - p := NewProvider(r). - Page(initialPage). - PerPage(initialPerPage). - Sort(initialSort). - Filter(initialFilter) - - err := p.Parse(s.query) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if p.page != s.expectPage { - t.Errorf("(%d) Expected page %v, got %v", i, s.expectPage, p.page) - } - - if p.perPage != s.expectPerPage { - t.Errorf("(%d) Expected perPage %v, got %v", i, s.expectPerPage, p.perPage) - } - - encodedSort, _ := json.Marshal(p.sort) - if string(encodedSort) != s.expectSort { - t.Errorf("(%d) Expected sort %v, got \n%v", i, s.expectSort, string(encodedSort)) - } - - encodedFilter, _ := json.Marshal(p.filter) - if string(encodedFilter) != s.expectFilter { - t.Errorf("(%d) Expected filter %v, got \n%v", i, s.expectFilter, string(encodedFilter)) - } - } -} - -func TestProviderExecEmptyQuery(t *testing.T) { - p := NewProvider(&testFieldResolver{}). - Query(nil) - - _, err := p.Exec(&[]testTableStruct{}) - if err == nil { - t.Fatalf("Expected error with empty query, got nil") - } -} - -func TestProviderExecNonEmptyQuery(t *testing.T) { - testDB, err := createTestDB() - if err != nil { - t.Fatal(err) - } - defer testDB.Close() - - query := testDB.Select("*"). - From("test"). - Where(dbx.Not(dbx.HashExp{"test1": nil})). - OrderBy("test1 ASC") - - scenarios := []struct { - page int - perPage int - sort []SortField - filter []FilterData - expectError bool - expectResult string - expectQueries []string - }{ - // page normalization - { - -1, - 10, - []SortField{}, - []FilterData{}, - false, - `{"page":1,"perPage":10,"totalItems":2,"totalPages":1,"items":[{"test1":1,"test2":"test2.1","test3":""},{"test1":2,"test2":"test2.2","test3":""}]}`, - []string{ - "SELECT COUNT(*) FROM (SELECT `test`.`id` FROM `test` WHERE NOT (`test1` IS NULL))", - "SELECT * FROM `test` WHERE NOT (`test1` IS NULL) ORDER BY `test1` ASC LIMIT 10", - }, - }, - // perPage normalization - { - 10, // will be capped by total count - 0, // fallback to default - []SortField{}, - []FilterData{}, - false, - `{"page":1,"perPage":30,"totalItems":2,"totalPages":1,"items":[{"test1":1,"test2":"test2.1","test3":""},{"test1":2,"test2":"test2.2","test3":""}]}`, - []string{ - "SELECT COUNT(*) FROM (SELECT `test`.`id` FROM `test` WHERE NOT (`test1` IS NULL))", - "SELECT * FROM `test` WHERE NOT (`test1` IS NULL) ORDER BY `test1` ASC LIMIT 30", - }, - }, - // invalid sort field - { - 1, - 10, - []SortField{{"unknown", SortAsc}}, - []FilterData{}, - true, - "", - nil, - }, - // invalid filter - { - 1, - 10, - []SortField{}, - []FilterData{"test2 = 'test2.1'", "invalid"}, - true, - "", - nil, - }, - // valid sort and filter fields - { - 1, - 5555, // will be limited by MaxPerPage - []SortField{{"test2", SortDesc}}, - []FilterData{"test2 != null", "test1 >= 2"}, - false, - `{"page":1,"perPage":` + fmt.Sprint(MaxPerPage) + `,"totalItems":1,"totalPages":1,"items":[{"test1":2,"test2":"test2.2","test3":""}]}`, - []string{ - "SELECT COUNT(*) FROM (SELECT `test`.`id` FROM `test` WHERE ((NOT (`test1` IS NULL)) AND (COALESCE(test2, '') != COALESCE(null, ''))) AND (test1 >= 2))", - "SELECT * FROM `test` WHERE ((NOT (`test1` IS NULL)) AND (COALESCE(test2, '') != COALESCE(null, ''))) AND (test1 >= 2) ORDER BY `test1` ASC, `test2` DESC LIMIT 500", - }, - }, - // valid sort and filter fields (zero results) - { - 1, - 10, - []SortField{{"test3", SortAsc}}, - []FilterData{"test3 != ''"}, - false, - `{"page":1,"perPage":10,"totalItems":0,"totalPages":0,"items":[]}`, - []string{ - "SELECT COUNT(*) FROM (SELECT `test`.`id` FROM `test` WHERE (NOT (`test1` IS NULL)) AND (COALESCE(test3, '') != COALESCE('', '')))", - "SELECT * FROM `test` WHERE (NOT (`test1` IS NULL)) AND (COALESCE(test3, '') != COALESCE('', '')) ORDER BY `test1` ASC, `test3` ASC LIMIT 10", - }, - }, - // pagination test - { - 3, - 1, - []SortField{}, - []FilterData{}, - false, - `{"page":2,"perPage":1,"totalItems":2,"totalPages":2,"items":[{"test1":2,"test2":"test2.2","test3":""}]}`, - []string{ - "SELECT COUNT(*) FROM (SELECT `test`.`id` FROM `test` WHERE NOT (`test1` IS NULL))", - "SELECT * FROM `test` WHERE NOT (`test1` IS NULL) ORDER BY `test1` ASC LIMIT 1 OFFSET 1", - }, - }, - } - - for i, s := range scenarios { - testDB.CalledQueries = []string{} // reset - - testResolver := &testFieldResolver{} - p := NewProvider(testResolver). - Query(query). - Page(s.page). - PerPage(s.perPage). - Sort(s.sort). - Filter(s.filter) - - result, err := p.Exec(&[]testTableStruct{}) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if hasErr { - continue - } - - if testResolver.UpdateQueryCalls != 1 { - t.Errorf("(%d) Expected resolver.Update to be called %d, got %d", i, 1, testResolver.UpdateQueryCalls) - } - - encoded, _ := json.Marshal(result) - if string(encoded) != s.expectResult { - t.Errorf("(%d) Expected result %v, got \n%v", i, s.expectResult, string(encoded)) - } - - if len(s.expectQueries) != len(testDB.CalledQueries) { - t.Errorf("(%d) Expected %d queries, got %d: \n%v", i, len(s.expectQueries), len(testDB.CalledQueries), testDB.CalledQueries) - continue - } - - for _, q := range testDB.CalledQueries { - if !list.ExistInSliceWithRegex(q, s.expectQueries) { - t.Errorf("(%d) Didn't expect query \n%v in \n%v", i, q, testDB.CalledQueries) - } - } - } -} - -func TestProviderParseAndExec(t *testing.T) { - testDB, err := createTestDB() - if err != nil { - t.Fatal(err) - } - defer testDB.Close() - - query := testDB.Select("*"). - From("test"). - Where(dbx.Not(dbx.HashExp{"test1": nil})). - OrderBy("test1 ASC") - - scenarios := []struct { - queryString string - expectError bool - expectResult string - }{ - // empty - { - "", - false, - `{"page":1,"perPage":123,"totalItems":2,"totalPages":1,"items":[{"test1":1,"test2":"test2.1","test3":""},{"test1":2,"test2":"test2.2","test3":""}]}`, - }, - // invalid query - { - "invalid;", - true, - "", - }, - // invalid page - { - "page=a", - true, - "", - }, - // invalid perPage - { - "perPage=a", - true, - "", - }, - // invalid sorting field - { - "sort=-unknown", - true, - "", - }, - // invalid filter field - { - "filter=unknown>1", - true, - "", - }, - // valid query params - { - "page=3&perPage=9999&filter=test1>1&sort=-test2,test3", - false, - `{"page":1,"perPage":500,"totalItems":1,"totalPages":1,"items":[{"test1":2,"test2":"test2.2","test3":""}]}`, - }, - } - - for i, s := range scenarios { - testDB.CalledQueries = []string{} // reset - - testResolver := &testFieldResolver{} - provider := NewProvider(testResolver). - Query(query). - Page(2). - PerPage(123). - Sort([]SortField{{"test2", SortAsc}}). - Filter([]FilterData{"test1 > 0"}) - - result, err := provider.ParseAndExec(s.queryString, &[]testTableStruct{}) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if hasErr { - continue - } - - if testResolver.UpdateQueryCalls != 1 { - t.Errorf("(%d) Expected resolver.Update to be called %d, got %d", i, 1, testResolver.UpdateQueryCalls) - } - - if len(testDB.CalledQueries) != 2 { - t.Errorf("(%d) Expected %d db queries, got %d: \n%v", i, 2, len(testDB.CalledQueries), testDB.CalledQueries) - } - - encoded, _ := json.Marshal(result) - if string(encoded) != s.expectResult { - t.Errorf("(%d) Expected result %v, got \n%v", i, s.expectResult, string(encoded)) - } - } -} - -// ------------------------------------------------------------------- -// Helpers -// ------------------------------------------------------------------- - -type testTableStruct struct { - Test1 int `db:"test1" json:"test1"` - Test2 string `db:"test2" json:"test2"` - Test3 string `db:"test3" json:"test3"` -} - -type testDB struct { - *dbx.DB - CalledQueries []string -} - -// NB! Don't forget to call `db.Close()` at the end of the test. -func createTestDB() (*testDB, error) { - sqlDB, err := sql.Open("sqlite", ":memory:") - if err != nil { - return nil, err - } - - db := testDB{DB: dbx.NewFromDB(sqlDB, "sqlite")} - db.CreateTable("test", map[string]string{"id": "int default 0", "test1": "int default 0", "test2": "text default ''", "test3": "text default ''"}).Execute() - db.Insert("test", dbx.Params{"id": 1, "test1": 1, "test2": "test2.1"}).Execute() - db.Insert("test", dbx.Params{"id": 2, "test1": 2, "test2": "test2.2"}).Execute() - db.QueryLogFunc = func(ctx context.Context, t time.Duration, sql string, rows *sql.Rows, err error) { - db.CalledQueries = append(db.CalledQueries, sql) - } - - return &db, nil -} - -// --- - -type testFieldResolver struct { - UpdateQueryCalls int - ResolveCalls int -} - -func (t *testFieldResolver) UpdateQuery(query *dbx.SelectQuery) error { - t.UpdateQueryCalls++ - return nil -} - -func (t *testFieldResolver) Resolve(field string) (name string, placeholderParams dbx.Params, err error) { - t.ResolveCalls++ - - if field == "unknown" { - return "", nil, errors.New("test error") - } - - return field, nil, nil -} diff --git a/tools/search/simple_field_resolver.go b/tools/search/simple_field_resolver.go deleted file mode 100644 index 4e07fb4ab63266f050ea78fd1769df37d9268a71..0000000000000000000000000000000000000000 --- a/tools/search/simple_field_resolver.go +++ /dev/null @@ -1,58 +0,0 @@ -package search - -import ( - "fmt" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/tools/inflector" - "github.com/pocketbase/pocketbase/tools/list" -) - -// FieldResolver defines an interface for managing search fields. -type FieldResolver interface { - // UpdateQuery allows to updated the provided db query based on the - // resolved search fields (eg. adding joins aliases, etc.). - // - // Called internally by `search.Provider` before executing the search request. - UpdateQuery(query *dbx.SelectQuery) error - - // Resolve parses the provided field and returns a properly - // formatted db identifier (eg. NULL, quoted column, placeholder parameter, etc.). - Resolve(field string) (name string, placeholderParams dbx.Params, err error) -} - -// NewSimpleFieldResolver creates a new `SimpleFieldResolver` with the -// provided `allowedFields`. -// -// Each `allowedFields` could be a plain string (eg. "name") -// or a regexp pattern (eg. `^\w+[\w\.]*$`). -func NewSimpleFieldResolver(allowedFields ...string) *SimpleFieldResolver { - return &SimpleFieldResolver{ - allowedFields: allowedFields, - } -} - -// SimpleFieldResolver defines a generic search resolver that allows -// only its listed fields to be resolved and take part in a search query. -// -// If `allowedFields` are empty no fields filtering is applied. -type SimpleFieldResolver struct { - allowedFields []string -} - -// UpdateQuery implements `search.UpdateQuery` interface. -func (r *SimpleFieldResolver) UpdateQuery(query *dbx.SelectQuery) error { - // nothing to update... - return nil -} - -// Resolve implements `search.Resolve` interface. -// -// Returns error if `field` is not in `r.allowedFields`. -func (r *SimpleFieldResolver) Resolve(field string) (resultName string, placeholderParams dbx.Params, err error) { - if !list.ExistInSliceWithRegex(field, r.allowedFields) { - return "", nil, fmt.Errorf("Failed to resolve field %q.", field) - } - - return fmt.Sprintf("[[%s]]", inflector.Columnify(field)), nil, nil -} diff --git a/tools/search/simple_field_resolver_test.go b/tools/search/simple_field_resolver_test.go deleted file mode 100644 index f3f0f8ff5d7fb87727d146ab396f12df6d6f7c3f..0000000000000000000000000000000000000000 --- a/tools/search/simple_field_resolver_test.go +++ /dev/null @@ -1,81 +0,0 @@ -package search_test - -import ( - "testing" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/tools/search" -) - -func TestSimpleFieldResolverUpdateQuery(t *testing.T) { - r := search.NewSimpleFieldResolver("test") - - scenarios := []struct { - fieldName string - expectQuery string - }{ - // missing field (the query shouldn't change) - {"", `SELECT "id" FROM "test"`}, - // unknown field (the query shouldn't change) - {"unknown", `SELECT "id" FROM "test"`}, - // allowed field (the query shouldn't change) - {"test", `SELECT "id" FROM "test"`}, - } - - for i, s := range scenarios { - db := dbx.NewFromDB(nil, "") - query := db.Select("id").From("test") - - r.Resolve(s.fieldName) - - if err := r.UpdateQuery(nil); err != nil { - t.Errorf("(%d) UpdateQuery failed with error %v", i, err) - continue - } - - rawQuery := query.Build().SQL() - // rawQuery := s.expectQuery - - if rawQuery != s.expectQuery { - t.Errorf("(%d) Expected query %v, got \n%v", i, s.expectQuery, rawQuery) - } - } -} - -func TestSimpleFieldResolverResolve(t *testing.T) { - r := search.NewSimpleFieldResolver("test", `^test_regex\d+$`, "Test columnify!") - - scenarios := []struct { - fieldName string - expectError bool - expectName string - }{ - {"", true, ""}, - {" ", true, ""}, - {"unknown", true, ""}, - {"test", false, "[[test]]"}, - {"test.sub", true, ""}, - {"test_regex", true, ""}, - {"test_regex1", false, "[[test_regex1]]"}, - {"Test columnify!", false, "[[Testcolumnify]]"}, - } - - for i, s := range scenarios { - name, params, err := r.Resolve(s.fieldName) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if name != s.expectName { - t.Errorf("(%d) Expected name %q, got %q", i, s.expectName, name) - } - - // params should be empty - if len(params) != 0 { - t.Errorf("(%d) Expected 0 params, got %v", i, params) - } - } -} diff --git a/tools/search/sort.go b/tools/search/sort.go deleted file mode 100644 index f3e46524e53d0557dea16fe87bbb92b3393b4d04..0000000000000000000000000000000000000000 --- a/tools/search/sort.go +++ /dev/null @@ -1,51 +0,0 @@ -package search - -import ( - "fmt" - "strings" -) - -// sort field directions -const ( - SortAsc string = "ASC" - SortDesc string = "DESC" -) - -// SortField defines a single search sort field. -type SortField struct { - Name string `json:"name"` - Direction string `json:"direction"` -} - -// BuildExpr resolves the sort field into a valid db sort expression. -func (s *SortField) BuildExpr(fieldResolver FieldResolver) (string, error) { - name, params, err := fieldResolver.Resolve(s.Name) - - // invalidate empty fields and non-column identifiers - if err != nil || len(params) > 0 || name == "" || strings.ToLower(name) == "null" { - return "", fmt.Errorf("Invalid sort field %q.", s.Name) - } - - return fmt.Sprintf("%s %s", name, s.Direction), nil -} - -// ParseSortFromString parses the provided string expression -// into a slice of SortFields. -// -// Example: -// fields := search.ParseSortFromString("-name,+created") -func ParseSortFromString(str string) (fields []SortField) { - data := strings.Split(str, ",") - - for _, field := range data { - // trim whitespaces - field = strings.TrimSpace(field) - if strings.HasPrefix(field, "-") { - fields = append(fields, SortField{strings.TrimPrefix(field, "-"), SortDesc}) - } else { - fields = append(fields, SortField{strings.TrimPrefix(field, "+"), SortAsc}) - } - } - - return -} diff --git a/tools/search/sort_test.go b/tools/search/sort_test.go deleted file mode 100644 index 83323624ad490c7ed0c795e740d7d9f8ff7698b4..0000000000000000000000000000000000000000 --- a/tools/search/sort_test.go +++ /dev/null @@ -1,67 +0,0 @@ -package search_test - -import ( - "encoding/json" - "testing" - - "github.com/pocketbase/pocketbase/tools/search" -) - -func TestSortFieldBuildExpr(t *testing.T) { - resolver := search.NewSimpleFieldResolver("test1", "test2", "test3", "test4.sub") - - scenarios := []struct { - sortField search.SortField - expectError bool - expectExpression string - }{ - // empty - {search.SortField{"", search.SortDesc}, true, ""}, - // unknown field - {search.SortField{"unknown", search.SortAsc}, true, ""}, - // placeholder field - {search.SortField{"'test'", search.SortAsc}, true, ""}, - // null field - {search.SortField{"null", search.SortAsc}, true, ""}, - // allowed field - asc - {search.SortField{"test1", search.SortAsc}, false, "[[test1]] ASC"}, - // allowed field - desc - {search.SortField{"test1", search.SortDesc}, false, "[[test1]] DESC"}, - } - - for i, s := range scenarios { - result, err := s.sortField.BuildExpr(resolver) - - hasErr := err != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected hasErr %v, got %v (%v)", i, s.expectError, hasErr, err) - continue - } - - if result != s.expectExpression { - t.Errorf("(%d) Expected expression %v, got %v", i, s.expectExpression, result) - } - } -} - -func TestParseSortFromString(t *testing.T) { - scenarios := []struct { - value string - expectedJson string - }{ - {"", `[{"name":"","direction":"ASC"}]`}, - {"test", `[{"name":"test","direction":"ASC"}]`}, - {"+test", `[{"name":"test","direction":"ASC"}]`}, - {"-test", `[{"name":"test","direction":"DESC"}]`}, - {"test1,-test2,+test3", `[{"name":"test1","direction":"ASC"},{"name":"test2","direction":"DESC"},{"name":"test3","direction":"ASC"}]`}, - } - - for i, s := range scenarios { - result := search.ParseSortFromString(s.value) - encoded, _ := json.Marshal(result) - - if string(encoded) != s.expectedJson { - t.Errorf("(%d) Expected expression %v, got %v", i, s.expectedJson, string(encoded)) - } - } -} diff --git a/tools/security/encrypt.go b/tools/security/encrypt.go deleted file mode 100644 index 2d15b7032a8df7df54cf76c2076b91b55b8443f4..0000000000000000000000000000000000000000 --- a/tools/security/encrypt.go +++ /dev/null @@ -1,70 +0,0 @@ -package security - -import ( - "crypto/aes" - "crypto/cipher" - crand "crypto/rand" - "crypto/sha256" - "encoding/base64" - "io" - "strings" -) - -// S256Challenge creates base64 encoded sha256 challenge string derived from code. -// The padding of the result base64 string is stripped per [RFC 7636]. -// -// [RFC 7636]: https://datatracker.ietf.org/doc/html/rfc7636#section-4.2 -func S256Challenge(code string) string { - h := sha256.New() - h.Write([]byte(code)) - return strings.TrimRight(base64.URLEncoding.EncodeToString(h.Sum(nil)), "=") -} - -// Encrypt encrypts data with key (must be valid 32 char aes key). -func Encrypt(data []byte, key string) (string, error) { - block, err := aes.NewCipher([]byte(key)) - if err != nil { - return "", err - } - - gcm, err := cipher.NewGCM(block) - if err != nil { - return "", err - } - - nonce := make([]byte, gcm.NonceSize()) - - // populates the nonce with a cryptographically secure random sequence - if _, err := io.ReadFull(crand.Reader, nonce); err != nil { - return "", err - } - - cipherByte := gcm.Seal(nonce, nonce, data, nil) - - result := base64.StdEncoding.EncodeToString(cipherByte) - - return result, nil -} - -// Decrypt decrypts encrypted text with key (must be valid 32 chars aes key). -func Decrypt(cipherText string, key string) ([]byte, error) { - block, err := aes.NewCipher([]byte(key)) - if err != nil { - return nil, err - } - - gcm, err := cipher.NewGCM(block) - if err != nil { - return nil, err - } - - nonceSize := gcm.NonceSize() - - cipherByte, err := base64.StdEncoding.DecodeString(cipherText) - if err != nil { - return nil, err - } - - nonce, cipherByteClean := cipherByte[:nonceSize], cipherByte[nonceSize:] - return gcm.Open(nil, nonce, cipherByteClean, nil) -} diff --git a/tools/security/encrypt_test.go b/tools/security/encrypt_test.go deleted file mode 100644 index 614601daca60e28bc6556d47cb5af4d356c7b42f..0000000000000000000000000000000000000000 --- a/tools/security/encrypt_test.go +++ /dev/null @@ -1,93 +0,0 @@ -package security_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestS256Challenge(t *testing.T) { - scenarios := []struct { - code string - expected string - }{ - {"", "47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU"}, - {"123", "pmWkWSBCL51Bfkhn79xPuKBKHz__H6B-mY6G9_eieuM"}, - } - - for i, scenario := range scenarios { - result := security.S256Challenge(scenario.code) - - if result != scenario.expected { - t.Errorf("(%d) Expected %q, got %q", i, scenario.expected, result) - } - } -} - -func TestEncrypt(t *testing.T) { - scenarios := []struct { - data string - key string - expectError bool - }{ - {"", "", true}, - {"123", "test", true}, // key must be valid 32 char aes string - {"123", "abcdabcdabcdabcdabcdabcdabcdabcd", false}, - } - - for i, scenario := range scenarios { - result, err := security.Encrypt([]byte(scenario.data), scenario.key) - - if scenario.expectError && err == nil { - t.Errorf("(%d) Expected error got nil", i) - } - if !scenario.expectError && err != nil { - t.Errorf("(%d) Expected nil got error %v", i, err) - } - - if scenario.expectError && result != "" { - t.Errorf("(%d) Expected empty string, got %q", i, result) - } - if !scenario.expectError && result == "" { - t.Errorf("(%d) Expected non empty encrypted result string", i) - } - - // try to decrypt - if result != "" { - decrypted, _ := security.Decrypt(result, scenario.key) - if string(decrypted) != scenario.data { - t.Errorf("(%d) Expected decrypted value to match with the data input, got %q", i, decrypted) - } - } - } -} - -func TestDecrypt(t *testing.T) { - scenarios := []struct { - cipher string - key string - expectError bool - expectedData string - }{ - {"", "", true, ""}, - {"123", "test", true, ""}, // key must be valid 32 char aes string - {"8kcEqilvvYKYcfnSr0aSC54gmnQCsB02SaB8ATlnA==", "abcdabcdabcdabcdabcdabcdabcdabcd", true, ""}, // illegal base64 encoded cipherText - {"8kcEqilvv+YKYcfnSr0aSC54gmnQCsB02SaB8ATlnA==", "abcdabcdabcdabcdabcdabcdabcdabcd", false, "123"}, - } - - for i, scenario := range scenarios { - result, err := security.Decrypt(scenario.cipher, scenario.key) - - if scenario.expectError && err == nil { - t.Errorf("(%d) Expected error got nil", i) - } - if !scenario.expectError && err != nil { - t.Errorf("(%d) Expected nil got error %v", i, err) - } - - resultStr := string(result) - if resultStr != scenario.expectedData { - t.Errorf("(%d) Expected %q, got %q", i, scenario.expectedData, resultStr) - } - } -} diff --git a/tools/security/jwt.go b/tools/security/jwt.go deleted file mode 100644 index 4f6e2b46c439a47e2e3c44773e008ea1d216e54a..0000000000000000000000000000000000000000 --- a/tools/security/jwt.go +++ /dev/null @@ -1,58 +0,0 @@ -package security - -import ( - "errors" - "time" - - "github.com/golang-jwt/jwt/v4" -) - -// ParseUnverifiedJWT parses JWT token and returns its claims -// but DOES NOT verify the signature. -// -// It verifies only the exp, iat and nbf claims. -func ParseUnverifiedJWT(token string) (jwt.MapClaims, error) { - claims := jwt.MapClaims{} - - parser := &jwt.Parser{} - _, _, err := parser.ParseUnverified(token, claims) - - if err == nil { - err = claims.Valid() - } - - return claims, err -} - -// ParseJWT verifies and parses JWT token and returns its claims. -func ParseJWT(token string, verificationKey string) (jwt.MapClaims, error) { - parser := jwt.NewParser(jwt.WithValidMethods([]string{"HS256"})) - - parsedToken, err := parser.Parse(token, func(t *jwt.Token) (any, error) { - return []byte(verificationKey), nil - }) - if err != nil { - return nil, err - } - - if claims, ok := parsedToken.Claims.(jwt.MapClaims); ok && parsedToken.Valid { - return claims, nil - } - - return nil, errors.New("Unable to parse token.") -} - -// NewToken generates and returns new HS256 signed JWT token. -func NewToken(payload jwt.MapClaims, signingKey string, secondsDuration int64) (string, error) { - seconds := time.Duration(secondsDuration) * time.Second - - claims := jwt.MapClaims{ - "exp": time.Now().Add(seconds).Unix(), - } - - for k, v := range payload { - claims[k] = v - } - - return jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString([]byte(signingKey)) -} diff --git a/tools/security/jwt_test.go b/tools/security/jwt_test.go deleted file mode 100644 index a523ad1ad6b9dccf04ad397347d290f14ec132c0..0000000000000000000000000000000000000000 --- a/tools/security/jwt_test.go +++ /dev/null @@ -1,179 +0,0 @@ -package security_test - -import ( - "testing" - - "github.com/golang-jwt/jwt/v4" - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestParseUnverifiedJWT(t *testing.T) { - // invalid formatted JWT token - result1, err1 := security.ParseUnverifiedJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCJ9") - if err1 == nil { - t.Error("Expected error got nil") - } - if len(result1) > 0 { - t.Error("Expected no parsed claims, got", result1) - } - - // properly formatted JWT token with INVALID claims - // {"name": "test", "exp": 1516239022} - result2, err2 := security.ParseUnverifiedJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCIsImV4cCI6MTUxNjIzOTAyMn0.xYHirwESfSEW3Cq2BL47CEASvD_p_ps3QCA54XtNktU") - if err2 == nil { - t.Error("Expected error got nil") - } - if len(result2) != 2 || result2["name"] != "test" { - t.Errorf("Expected to have 2 claims, got %v", result2) - } - - // properly formatted JWT token with VALID claims - // {"name": "test"} - result3, err3 := security.ParseUnverifiedJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCJ9.ml0QsTms3K9wMygTu41ZhKlTyjmW9zHQtoS8FUsCCjU") - if err3 != nil { - t.Error("Expected nil, got", err3) - } - if len(result3) != 1 || result3["name"] != "test" { - t.Errorf("Expected to have 2 claims, got %v", result3) - } -} - -func TestParseJWT(t *testing.T) { - scenarios := []struct { - token string - secret string - expectError bool - expectClaims jwt.MapClaims - }{ - // invalid formatted JWT token - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCJ9", - "test", - true, - nil, - }, - // properly formatted JWT token with INVALID claims and INVALID secret - // {"name": "test", "exp": 1516239022} - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCIsImV4cCI6MTUxNjIzOTAyMn0.xYHirwESfSEW3Cq2BL47CEASvD_p_ps3QCA54XtNktU", - "invalid", - true, - nil, - }, - // properly formatted JWT token with INVALID claims and VALID secret - // {"name": "test", "exp": 1516239022} - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCIsImV4cCI6MTUxNjIzOTAyMn0.xYHirwESfSEW3Cq2BL47CEASvD_p_ps3QCA54XtNktU", - "test", - true, - nil, - }, - // properly formatted JWT token with VALID claims and INVALID secret - // {"name": "test", "exp": 1898636137} - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCIsImV4cCI6MTg5ODYzNjEzN30.gqRkHjpK5s1PxxBn9qPaWEWxTbpc1PPSD-an83TsXRY", - "invalid", - true, - nil, - }, - // properly formatted EXPIRED JWT token with VALID secret - // {"name": "test", "exp": 1652097610} - { - "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdCIsImV4cCI6OTU3ODczMzc0fQ.0oUUKUnsQHs4nZO1pnxQHahKtcHspHu4_AplN2sGC4A", - "test", - true, - nil, - }, - // properly formatted JWT token with VALID claims and VALID secret - // {"name": "test", "exp": 1898636137} - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCIsImV4cCI6MTg5ODYzNjEzN30.gqRkHjpK5s1PxxBn9qPaWEWxTbpc1PPSD-an83TsXRY", - "test", - false, - jwt.MapClaims{"name": "test", "exp": 1898636137.0}, - }, - // properly formatted JWT token with VALID claims (without exp) and VALID secret - // {"name": "test"} - { - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdCJ9.ml0QsTms3K9wMygTu41ZhKlTyjmW9zHQtoS8FUsCCjU", - "test", - false, - jwt.MapClaims{"name": "test"}, - }, - } - - for i, scenario := range scenarios { - result, err := security.ParseJWT(scenario.token, scenario.secret) - if scenario.expectError && err == nil { - t.Errorf("(%d) Expected error got nil", i) - } - if !scenario.expectError && err != nil { - t.Errorf("(%d) Expected nil got error %v", i, err) - } - if len(result) != len(scenario.expectClaims) { - t.Errorf("(%d) Expected %v got %v", i, scenario.expectClaims, result) - } - for k, v := range scenario.expectClaims { - v2, ok := result[k] - if !ok { - t.Errorf("(%d) Missing expected claim %q", i, k) - } - if v != v2 { - t.Errorf("(%d) Expected %v for %q claim, got %v", i, v, k, v2) - } - } - } -} - -func TestNewToken(t *testing.T) { - scenarios := []struct { - claims jwt.MapClaims - key string - duration int64 - expectError bool - }{ - // empty, zero duration - {jwt.MapClaims{}, "", 0, true}, - // empty, 10 seconds duration - {jwt.MapClaims{}, "", 10, false}, - // non-empty, 10 seconds duration - {jwt.MapClaims{"name": "test"}, "test", 10, false}, - } - - for i, scenario := range scenarios { - token, tokenErr := security.NewToken(scenario.claims, scenario.key, scenario.duration) - if tokenErr != nil { - t.Errorf("(%d) Expected NewToken to succeed, got error %v", i, tokenErr) - continue - } - - claims, parseErr := security.ParseJWT(token, scenario.key) - - hasParseErr := parseErr != nil - if hasParseErr != scenario.expectError { - t.Errorf("(%d) Expected hasParseErr to be %v, got %v (%v)", i, scenario.expectError, hasParseErr, parseErr) - continue - } - - if scenario.expectError { - continue - } - - if _, ok := claims["exp"]; !ok { - t.Errorf("(%d) Missing required claim exp, got %v", i, claims) - } - - // clear exp claim to match with the scenario ones - delete(claims, "exp") - - if len(claims) != len(scenario.claims) { - t.Errorf("(%d) Expected %v claims, got %v", i, scenario.claims, claims) - } - - for j, k := range claims { - if claims[j] != scenario.claims[j] { - t.Errorf("(%d) Expected %v for %q claim, got %v", i, claims[j], k, scenario.claims[j]) - } - } - } -} diff --git a/tools/security/random.go b/tools/security/random.go deleted file mode 100644 index 10663d467f2095351e1564c5bc338466fbed39e4..0000000000000000000000000000000000000000 --- a/tools/security/random.go +++ /dev/null @@ -1,64 +0,0 @@ -package security - -import ( - cryptoRand "crypto/rand" - "math/big" - mathRand "math/rand" - "time" -) - -const defaultRandomAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" - -func init() { - mathRand.Seed(time.Now().UnixNano()) -} - -// RandomString generates a cryptographically random string with the specified length. -// -// The generated string matches [A-Za-z0-9]+ and it's transparent to URL-encoding. -func RandomString(length int) string { - return RandomStringWithAlphabet(length, defaultRandomAlphabet) -} - -// RandomStringWithAlphabet generates a cryptographically random string -// with the specified length and characters set. -// -// It panics if for some reason rand.Int returns a non-nil error. -func RandomStringWithAlphabet(length int, alphabet string) string { - b := make([]byte, length) - max := big.NewInt(int64(len(alphabet))) - - for i := range b { - n, err := cryptoRand.Int(cryptoRand.Reader, max) - if err != nil { - panic(err) - } - b[i] = alphabet[n.Int64()] - } - - return string(b) -} - -// PseudorandomString generates a pseudorandom string with the specified length. -// -// The generated string matches [A-Za-z0-9]+ and it's transparent to URL-encoding. -// -// For a cryptographically random string (but a little bit slower) use RandomString instead. -func PseudorandomString(length int) string { - return PseudorandomStringWithAlphabet(length, defaultRandomAlphabet) -} - -// PseudorandomStringWithAlphabet generates a pseudorandom string -// with the specified length and characters set. -// -// For a cryptographically random (but a little bit slower) use RandomStringWithAlphabet instead. -func PseudorandomStringWithAlphabet(length int, alphabet string) string { - b := make([]byte, length) - max := len(alphabet) - - for i := range b { - b[i] = alphabet[mathRand.Intn(max)] - } - - return string(b) -} diff --git a/tools/security/random_test.go b/tools/security/random_test.go deleted file mode 100644 index 2130903e4e8b38295eb8e5121239d313cc8063f8..0000000000000000000000000000000000000000 --- a/tools/security/random_test.go +++ /dev/null @@ -1,89 +0,0 @@ -package security_test - -import ( - "regexp" - "testing" - - "github.com/pocketbase/pocketbase/tools/security" -) - -func TestRandomString(t *testing.T) { - testRandomString(t, security.RandomString) -} - -func TestRandomStringWithAlphabet(t *testing.T) { - testRandomStringWithAlphabet(t, security.RandomStringWithAlphabet) -} - -func TestPseudorandomString(t *testing.T) { - testRandomString(t, security.PseudorandomString) -} - -func TestPseudorandomStringWithAlphabet(t *testing.T) { - testRandomStringWithAlphabet(t, security.PseudorandomStringWithAlphabet) -} - -// ------------------------------------------------------------------- - -func testRandomStringWithAlphabet(t *testing.T, randomFunc func(n int, alphabet string) string) { - scenarios := []struct { - alphabet string - expectPattern string - }{ - {"0123456789_", `[0-9_]+`}, - {"abcdef", `[abcdef]+`}, - {"!@#$%^&*()", `[\!\@\#\$\%\^\&\*\(\)]+`}, - } - - for i, s := range scenarios { - generated := make([]string, 0, 1000) - length := 10 - - for j := 0; j < 1000; j++ { - result := randomFunc(length, s.alphabet) - - if len(result) != length { - t.Fatalf("(%d:%d) Expected the length of the string to be %d, got %d", i, j, length, len(result)) - } - - reg := regexp.MustCompile(s.expectPattern) - if match := reg.MatchString(result); !match { - t.Fatalf("(%d:%d) The generated string should have only %s characters, got %q", i, j, s.expectPattern, result) - } - - for _, str := range generated { - if str == result { - t.Fatalf("(%d:%d) Repeating random string - found %q in %q", i, j, result, generated) - } - } - - generated = append(generated, result) - } - } -} - -func testRandomString(t *testing.T, randomFunc func(n int) string) { - generated := make([]string, 0, 1000) - reg := regexp.MustCompile(`[a-zA-Z0-9]+`) - length := 10 - - for i := 0; i < 1000; i++ { - result := randomFunc(length) - - if len(result) != length { - t.Fatalf("(%d) Expected the length of the string to be %d, got %d", i, length, len(result)) - } - - if match := reg.MatchString(result); !match { - t.Fatalf("(%d) The generated string should have only [a-zA-Z0-9]+ characters, got %q", i, result) - } - - for _, str := range generated { - if str == result { - t.Fatalf("(%d) Repeating random string - found %q in \n%v", i, result, generated) - } - } - - generated = append(generated, result) - } -} diff --git a/tools/store/store.go b/tools/store/store.go deleted file mode 100644 index e2a290d3309c31cb982722effbe20df83aa4c9a7..0000000000000000000000000000000000000000 --- a/tools/store/store.go +++ /dev/null @@ -1,92 +0,0 @@ -package store - -import "sync" - -// Store defines a concurrent safe in memory key-value data store. -type Store[T any] struct { - mux sync.RWMutex - data map[string]T -} - -// New creates a new Store[T] instance. -func New[T any](data map[string]T) *Store[T] { - return &Store[T]{data: data} -} - -// RemoveAll removes all the existing store entries. -func (s *Store[T]) RemoveAll() { - s.mux.Lock() - defer s.mux.Unlock() - - s.data = make(map[string]T) -} - -// Remove removes a single entry from the store. -// -// Remove does nothing if key doesn't exist in the store. -func (s *Store[T]) Remove(key string) { - s.mux.Lock() - defer s.mux.Unlock() - - delete(s.data, key) -} - -// Has checks if element with the specified key exist or not. -func (s *Store[T]) Has(key string) bool { - s.mux.RLock() - defer s.mux.RUnlock() - - _, ok := s.data[key] - - return ok -} - -// Get returns a single element value from the store. -// -// If key is not set, the zero T value is returned. -func (s *Store[T]) Get(key string) T { - s.mux.RLock() - defer s.mux.RUnlock() - - return s.data[key] -} - -// Set sets (or overwrite if already exist) a new value for key. -func (s *Store[T]) Set(key string, value T) { - s.mux.Lock() - defer s.mux.Unlock() - - if s.data == nil { - s.data = make(map[string]T) - } - - s.data[key] = value -} - -// SetIfLessThanLimit sets (or overwrite if already exist) a new value for key. -// -// This method is similar to Set() but **it will skip adding new elements** -// to the store if the store length has reached the specified limit. -// `false` is returned if maxAllowedElements limit is reached. -func (s *Store[T]) SetIfLessThanLimit(key string, value T, maxAllowedElements int) bool { - s.mux.Lock() - defer s.mux.Unlock() - - // init map if not already - if s.data == nil { - s.data = make(map[string]T) - } - - // check for existing item - _, ok := s.data[key] - - if !ok && len(s.data) >= maxAllowedElements { - // cannot add more items - return false - } - - // add/overwrite item - s.data[key] = value - - return true -} diff --git a/tools/store/store_test.go b/tools/store/store_test.go deleted file mode 100644 index d19cfbdaf93a5a6e4e5afc4ae36e5306482fae82..0000000000000000000000000000000000000000 --- a/tools/store/store_test.go +++ /dev/null @@ -1,140 +0,0 @@ -package store_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/store" -) - -func TestNew(t *testing.T) { - s := store.New(map[string]int{"test": 1}) - - if s.Get("test") != 1 { - t.Error("Expected the initizialized store map to be loaded") - } -} - -func TestRemoveAll(t *testing.T) { - s := store.New(map[string]bool{"test1": true, "test2": true}) - - keys := []string{"test1", "test2"} - - s.RemoveAll() - - for i, key := range keys { - if s.Has(key) { - t.Errorf("(%d) Expected %q to be removed", i, key) - } - } -} - -func TestRemove(t *testing.T) { - s := store.New(map[string]bool{"test": true}) - - keys := []string{"test", "missing"} - - for i, key := range keys { - s.Remove(key) - if s.Has(key) { - t.Errorf("(%d) Expected %q to be removed", i, key) - } - } -} - -func TestHas(t *testing.T) { - s := store.New(map[string]int{"test1": 0, "test2": 1}) - - scenarios := []struct { - key string - exist bool - }{ - {"test1", true}, - {"test2", true}, - {"missing", false}, - } - - for i, scenario := range scenarios { - exist := s.Has(scenario.key) - if exist != scenario.exist { - t.Errorf("(%d) Expected %v, got %v", i, scenario.exist, exist) - } - } -} - -func TestGet(t *testing.T) { - s := store.New(map[string]int{"test1": 0, "test2": 1}) - - scenarios := []struct { - key string - expect int - }{ - {"test1", 0}, - {"test2", 1}, - {"missing", 0}, // should auto fallback to the zero value - } - - for i, scenario := range scenarios { - val := s.Get(scenario.key) - if val != scenario.expect { - t.Errorf("(%d) Expected %v, got %v", i, scenario.expect, val) - } - } -} - -func TestSet(t *testing.T) { - s := store.New[int](nil) - - data := map[string]int{"test1": 0, "test2": 1, "test3": 3} - - // set values - for k, v := range data { - s.Set(k, v) - } - - // verify that the values are set - for k, v := range data { - if !s.Has(k) { - t.Errorf("Expected key %q", k) - } - - val := s.Get(k) - if val != v { - t.Errorf("Expected %v, got %v for key %q", v, val, k) - } - } -} - -func TestSetIfLessThanLimit(t *testing.T) { - s := store.New[int](nil) - - limit := 2 - - // set values - scenarios := []struct { - key string - value int - expected bool - }{ - {"test1", 1, true}, - {"test2", 2, true}, - {"test3", 3, false}, - {"test2", 4, true}, // overwrite - } - - for i, scenario := range scenarios { - result := s.SetIfLessThanLimit(scenario.key, scenario.value, limit) - - if result != scenario.expected { - t.Errorf("(%d) Expected result %v, got %v", i, scenario.expected, result) - } - - if !scenario.expected && s.Has(scenario.key) { - t.Errorf("(%d) Expected key %q to not be set", i, scenario.key) - } - - val := s.Get(scenario.key) - if scenario.expected && val != scenario.value { - t.Errorf("(%d) Expected value %v, got %v", i, scenario.value, val) - } - } -} diff --git a/tools/subscriptions/broker.go b/tools/subscriptions/broker.go deleted file mode 100644 index bdee3552cfdefe9bd9441c885f6c6ad6f762fd4b..0000000000000000000000000000000000000000 --- a/tools/subscriptions/broker.go +++ /dev/null @@ -1,64 +0,0 @@ -package subscriptions - -import ( - "fmt" - "sync" -) - -// Broker defines a struct for managing subscriptions clients. -type Broker struct { - mux sync.RWMutex - clients map[string]Client -} - -// NewBroker initializes and returns a new Broker instance. -func NewBroker() *Broker { - return &Broker{ - clients: make(map[string]Client), - } -} - -// Clients returns all registered clients. -func (b *Broker) Clients() map[string]Client { - b.mux.RLock() - defer b.mux.RUnlock() - - return b.clients -} - -// ClientById finds a registered client by its id. -// -// Returns non-nil error when client with clientId is not registered. -func (b *Broker) ClientById(clientId string) (Client, error) { - b.mux.RLock() - defer b.mux.RUnlock() - - client, ok := b.clients[clientId] - if !ok { - return nil, fmt.Errorf("No client associated with connection ID %q", clientId) - } - - return client, nil -} - -// Register adds a new client to the broker instance. -func (b *Broker) Register(client Client) { - b.mux.Lock() - defer b.mux.Unlock() - - b.clients[client.Id()] = client -} - -// Unregister removes a single client by its id. -// -// If client with clientId doesn't exist, this method does nothing. -func (b *Broker) Unregister(clientId string) { - b.mux.Lock() - defer b.mux.Unlock() - - // Note: - // There is no need to explicitly close the client's channel since it will be GC-ed anyway. - // Addinitionally, closing the channel explicitly could panic when there are several - // subscriptions attached to the client that needs to receive the same event. - delete(b.clients, clientId) -} diff --git a/tools/subscriptions/broker_test.go b/tools/subscriptions/broker_test.go deleted file mode 100644 index 87774a61ec9302028c28a3d3609d2ffd898baef4..0000000000000000000000000000000000000000 --- a/tools/subscriptions/broker_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package subscriptions_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/subscriptions" -) - -func TestNewBroker(t *testing.T) { - b := subscriptions.NewBroker() - - if b.Clients() == nil { - t.Fatal("Expected clients map to be initialized") - } -} - -func TestClients(t *testing.T) { - b := subscriptions.NewBroker() - - if total := len(b.Clients()); total != 0 { - t.Fatalf("Expected no clients, got %v", total) - } - - b.Register(subscriptions.NewDefaultClient()) - b.Register(subscriptions.NewDefaultClient()) - - if total := len(b.Clients()); total != 2 { - t.Fatalf("Expected 2 clients, got %v", total) - } -} - -func TestClientById(t *testing.T) { - b := subscriptions.NewBroker() - - clientA := subscriptions.NewDefaultClient() - clientB := subscriptions.NewDefaultClient() - b.Register(clientA) - b.Register(clientB) - - resultClient, err := b.ClientById(clientA.Id()) - if err != nil { - t.Fatalf("Expected client with id %s, got error %v", clientA.Id(), err) - } - if resultClient.Id() != clientA.Id() { - t.Fatalf("Expected client %s, got %s", clientA.Id(), resultClient.Id()) - } - - if c, err := b.ClientById("missing"); err == nil { - t.Fatalf("Expected error, found client %v", c) - } -} - -func TestRegister(t *testing.T) { - b := subscriptions.NewBroker() - - client := subscriptions.NewDefaultClient() - b.Register(client) - - if _, err := b.ClientById(client.Id()); err != nil { - t.Fatalf("Expected client with id %s, got error %v", client.Id(), err) - } -} - -func TestUnregister(t *testing.T) { - b := subscriptions.NewBroker() - - clientA := subscriptions.NewDefaultClient() - clientB := subscriptions.NewDefaultClient() - b.Register(clientA) - b.Register(clientB) - - if _, err := b.ClientById(clientA.Id()); err != nil { - t.Fatalf("Expected client with id %s, got error %v", clientA.Id(), err) - } - - b.Unregister(clientA.Id()) - - if c, err := b.ClientById(clientA.Id()); err == nil { - t.Fatalf("Expected error, found client %v", c) - } - - // clientB shouldn't have been removed - if _, err := b.ClientById(clientB.Id()); err != nil { - t.Fatalf("Expected client with id %s, got error %v", clientB.Id(), err) - } -} diff --git a/tools/subscriptions/client.go b/tools/subscriptions/client.go deleted file mode 100644 index c948a530a675bb57240460ce04f58aad438ad615..0000000000000000000000000000000000000000 --- a/tools/subscriptions/client.go +++ /dev/null @@ -1,141 +0,0 @@ -package subscriptions - -import ( - "sync" - - "github.com/pocketbase/pocketbase/tools/security" -) - -// Message defines a client's channel data. -type Message struct { - Name string - Data string -} - -// Client is an interface for a generic subscription client. -type Client interface { - // Id Returns the unique id of the client. - Id() string - - // Channel returns the client's communication channel. - Channel() chan Message - - // Subscriptions returns all subscriptions to which the client has subscribed to. - Subscriptions() map[string]struct{} - - // Subscribe subscribes the client to the provided subscriptions list. - Subscribe(subs ...string) - - // Unsubscribe unsubscribes the client from the provided subscriptions list. - Unsubscribe(subs ...string) - - // HasSubscription checks if the client is subscribed to `sub`. - HasSubscription(sub string) bool - - // Set stores any value to the client's context. - Set(key string, value any) - - // Get retrieves the key value from the client's context. - Get(key string) any -} - -// ensures that DefaultClient satisfies the Client interface -var _ Client = (*DefaultClient)(nil) - -// DefaultClient defines a generic subscription client. -type DefaultClient struct { - mux sync.RWMutex - id string - store map[string]any - channel chan Message - subscriptions map[string]struct{} -} - -// NewDefaultClient creates and returns a new DefaultClient instance. -func NewDefaultClient() *DefaultClient { - return &DefaultClient{ - id: security.RandomString(40), - store: map[string]any{}, - channel: make(chan Message), - subscriptions: make(map[string]struct{}), - } -} - -// Id implements the [Client.Id] interface method. -func (c *DefaultClient) Id() string { - return c.id -} - -// Channel implements the [Client.Channel] interface method. -func (c *DefaultClient) Channel() chan Message { - return c.channel -} - -// Subscriptions implements the [Client.Subscriptions] interface method. -func (c *DefaultClient) Subscriptions() map[string]struct{} { - c.mux.RLock() - defer c.mux.RUnlock() - - return c.subscriptions -} - -// Subscribe implements the [Client.Subscribe] interface method. -// -// Empty subscriptions (aka. "") are ignored. -func (c *DefaultClient) Subscribe(subs ...string) { - c.mux.Lock() - defer c.mux.Unlock() - - for _, s := range subs { - if s == "" { - continue // skip empty - } - - c.subscriptions[s] = struct{}{} - } -} - -// Unsubscribe implements the [Client.Unsubscribe] interface method. -// -// If subs is not set, this method removes all registered client's subscriptions. -func (c *DefaultClient) Unsubscribe(subs ...string) { - c.mux.Lock() - defer c.mux.Unlock() - - if len(subs) > 0 { - for _, s := range subs { - delete(c.subscriptions, s) - } - } else { - // unsubscribe all - for s := range c.subscriptions { - delete(c.subscriptions, s) - } - } -} - -// HasSubscription implements the [Client.HasSubscription] interface method. -func (c *DefaultClient) HasSubscription(sub string) bool { - c.mux.RLock() - defer c.mux.RUnlock() - - _, ok := c.subscriptions[sub] - - return ok -} - -// Get implements the [Client.Get] interface method. -func (c *DefaultClient) Get(key string) any { - c.mux.RLock() - defer c.mux.RUnlock() - - return c.store[key] -} - -// Set implements the [Client.Set] interface method. -func (c *DefaultClient) Set(key string, value any) { - c.mux.Lock() - defer c.mux.Unlock() - - c.store[key] = value -} diff --git a/tools/subscriptions/client_test.go b/tools/subscriptions/client_test.go deleted file mode 100644 index b26ae68581865698960497408f20bb194dbbe60f..0000000000000000000000000000000000000000 --- a/tools/subscriptions/client_test.go +++ /dev/null @@ -1,131 +0,0 @@ -package subscriptions_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/subscriptions" -) - -func TestNewDefaultClient(t *testing.T) { - c := subscriptions.NewDefaultClient() - - if c.Channel() == nil { - t.Errorf("Expected channel to be initialized") - } - - if c.Subscriptions() == nil { - t.Errorf("Expected subscriptions map to be initialized") - } - - if c.Id() == "" { - t.Errorf("Expected unique id to be set") - } -} - -func TestId(t *testing.T) { - clients := []*subscriptions.DefaultClient{ - subscriptions.NewDefaultClient(), - subscriptions.NewDefaultClient(), - subscriptions.NewDefaultClient(), - subscriptions.NewDefaultClient(), - } - - ids := map[string]struct{}{} - for i, c := range clients { - // check uniqueness - if _, ok := ids[c.Id()]; ok { - t.Errorf("(%d) Expected unique id, got %v", i, c.Id()) - } else { - ids[c.Id()] = struct{}{} - } - - // check length - if len(c.Id()) != 40 { - t.Errorf("(%d) Expected unique id to have 40 chars length, got %v", i, c.Id()) - } - } -} - -func TestChannel(t *testing.T) { - c := subscriptions.NewDefaultClient() - - if c.Channel() == nil { - t.Errorf("Expected channel to be initialized, got") - } -} - -func TestSubscriptions(t *testing.T) { - c := subscriptions.NewDefaultClient() - - if len(c.Subscriptions()) != 0 { - t.Errorf("Expected subscriptions to be empty") - } - - c.Subscribe("sub1", "sub2", "sub3") - - if len(c.Subscriptions()) != 3 { - t.Errorf("Expected 3 subscriptions, got %v", c.Subscriptions()) - } -} - -func TestSubscribe(t *testing.T) { - c := subscriptions.NewDefaultClient() - - subs := []string{"", "sub1", "sub2", "sub3"} - expected := []string{"sub1", "sub2", "sub3"} - - c.Subscribe(subs...) // empty string should be skipped - - if len(c.Subscriptions()) != 3 { - t.Errorf("Expected 3 subscriptions, got %v", c.Subscriptions()) - } - - for i, s := range expected { - if !c.HasSubscription(s) { - t.Errorf("(%d) Expected sub %s", i, s) - } - } -} - -func TestUnsubscribe(t *testing.T) { - c := subscriptions.NewDefaultClient() - - c.Subscribe("sub1", "sub2", "sub3") - - c.Unsubscribe("sub1") - - if c.HasSubscription("sub1") { - t.Error("Expected sub1 to be removed") - } - - c.Unsubscribe( /* all */ ) - if len(c.Subscriptions()) != 0 { - t.Errorf("Expected all subscriptions to be removed, got %v", c.Subscriptions()) - } -} - -func TestHasSubscription(t *testing.T) { - c := subscriptions.NewDefaultClient() - - if c.HasSubscription("missing") { - t.Error("Expected false, got true") - } - - c.Subscribe("sub") - - if !c.HasSubscription("sub") { - t.Error("Expected true, got false") - } -} - -func TestSetAndGet(t *testing.T) { - c := subscriptions.NewDefaultClient() - - c.Set("demo", 1) - - result, _ := c.Get("demo").(int) - - if result != 1 { - t.Errorf("Expected 1, got %v", result) - } -} diff --git a/tools/types/datetime.go b/tools/types/datetime.go deleted file mode 100644 index 27036dd3c60685b71f662e0fadf5aefe6cd6cd21..0000000000000000000000000000000000000000 --- a/tools/types/datetime.go +++ /dev/null @@ -1,93 +0,0 @@ -package types - -import ( - "database/sql/driver" - "encoding/json" - "time" - - "github.com/spf13/cast" -) - -// DefaultDateLayout specifies the default app date strings layout. -const DefaultDateLayout = "2006-01-02 15:04:05.000Z" - -// NowDateTime returns new DateTime instance with the current local time. -func NowDateTime() DateTime { - return DateTime{t: time.Now()} -} - -// ParseDateTime creates a new DateTime from the provided value -// (could be [cast.ToTime] supported string, [time.Time], etc.). -func ParseDateTime(value any) (DateTime, error) { - d := DateTime{} - err := d.Scan(value) - return d, err -} - -// DateTime represents a [time.Time] instance in UTC that is wrapped -// and serialized using the app default date layout. -type DateTime struct { - t time.Time -} - -// Time returns the internal [time.Time] instance. -func (d DateTime) Time() time.Time { - return d.t -} - -// IsZero checks whether the current DateTime instance has zero time value. -func (d DateTime) IsZero() bool { - return d.Time().IsZero() -} - -// String serializes the current DateTime instance into a formatted -// UTC date string. -// -// The zero value is serialized to an empty string. -func (d DateTime) String() string { - if d.IsZero() { - return "" - } - return d.Time().UTC().Format(DefaultDateLayout) -} - -// MarshalJSON implements the [json.Marshaler] interface. -func (d DateTime) MarshalJSON() ([]byte, error) { - return json.Marshal(d.String()) -} - -// UnmarshalJSON implements the [json.Unmarshaler] interface. -func (d *DateTime) UnmarshalJSON(b []byte) error { - var raw string - if err := json.Unmarshal(b, &raw); err != nil { - return err - } - return d.Scan(raw) -} - -// Value implements the [driver.Valuer] interface. -func (d DateTime) Value() (driver.Value, error) { - return d.String(), nil -} - -// Scan implements [sql.Scanner] interface to scan the provided value -// into the current DateTime instance. -func (d *DateTime) Scan(value any) error { - switch v := value.(type) { - case DateTime: - d.t = v.Time() - case time.Time: - d.t = v - case int: - d.t = cast.ToTime(v) - default: - str := cast.ToString(v) - if str == "" { - d.t = time.Time{} - } else { - d.t = cast.ToTime(str) - } - } - - return nil -} diff --git a/tools/types/datetime_test.go b/tools/types/datetime_test.go deleted file mode 100644 index 3091518031cf5f9754f7ef3f266673e5e4f957b5..0000000000000000000000000000000000000000 --- a/tools/types/datetime_test.go +++ /dev/null @@ -1,199 +0,0 @@ -package types_test - -import ( - "strings" - "testing" - "time" - - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestNowDateTime(t *testing.T) { - now := time.Now().UTC().Format("2006-01-02 15:04:05") // without ms part for test consistency - dt := types.NowDateTime() - - if !strings.Contains(dt.String(), now) { - t.Fatalf("Expected %q, got %q", now, dt.String()) - } -} - -func TestParseDateTime(t *testing.T) { - nowTime := time.Now().UTC() - nowDateTime, _ := types.ParseDateTime(nowTime) - nowStr := nowTime.Format(types.DefaultDateLayout) - - scenarios := []struct { - value any - expected string - }{ - {nil, ""}, - {"", ""}, - {"invalid", ""}, - {nowDateTime, nowStr}, - {nowTime, nowStr}, - {1641024040, "2022-01-01 08:00:40.000Z"}, - {"2022-01-01 11:23:45.678", "2022-01-01 11:23:45.678Z"}, - } - - for i, s := range scenarios { - dt, err := types.ParseDateTime(s.value) - if err != nil { - t.Errorf("(%d) Failed to parse %v: %v", i, s.value, err) - continue - } - - if dt.String() != s.expected { - t.Errorf("(%d) Expected %q, got %q", i, s.expected, dt.String()) - } - } -} - -func TestDateTimeTime(t *testing.T) { - str := "2022-01-01 11:23:45.678Z" - - expected, err := time.Parse(types.DefaultDateLayout, str) - if err != nil { - t.Fatal(err) - } - - dt, err := types.ParseDateTime(str) - if err != nil { - t.Fatal(err) - } - - result := dt.Time() - - if !expected.Equal(result) { - t.Errorf("Expected time %v, got %v", expected, result) - } -} - -func TestDateTimeIsZero(t *testing.T) { - dt0 := types.DateTime{} - if !dt0.IsZero() { - t.Fatalf("Expected zero datatime, got %v", dt0) - } - - dt1 := types.NowDateTime() - if dt1.IsZero() { - t.Fatalf("Expected non-zero datatime, got %v", dt1) - } -} - -func TestDateTimeString(t *testing.T) { - dt0 := types.DateTime{} - if dt0.String() != "" { - t.Fatalf("Expected empty string for zer datetime, got %q", dt0.String()) - } - - expected := "2022-01-01 11:23:45.678Z" - dt1, _ := types.ParseDateTime(expected) - if dt1.String() != expected { - t.Fatalf("Expected %q, got %v", expected, dt1) - } -} - -func TestDateTimeMarshalJSON(t *testing.T) { - scenarios := []struct { - date string - expected string - }{ - {"", `""`}, - {"2022-01-01 11:23:45.678", `"2022-01-01 11:23:45.678Z"`}, - } - - for i, s := range scenarios { - dt, err := types.ParseDateTime(s.date) - if err != nil { - t.Errorf("(%d) %v", i, err) - } - - result, err := dt.MarshalJSON() - if err != nil { - t.Errorf("(%d) %v", i, err) - } - - if string(result) != s.expected { - t.Errorf("(%d) Expected %q, got %q", i, s.expected, string(result)) - } - } -} - -func TestDateTimeUnmarshalJSON(t *testing.T) { - scenarios := []struct { - date string - expected string - }{ - {"", ""}, - {"invalid_json", ""}, - {"'123'", ""}, - {"2022-01-01 11:23:45.678", ""}, - {`"2022-01-01 11:23:45.678"`, "2022-01-01 11:23:45.678Z"}, - } - - for i, s := range scenarios { - dt := types.DateTime{} - dt.UnmarshalJSON([]byte(s.date)) - - if dt.String() != s.expected { - t.Errorf("(%d) Expected %q, got %q", i, s.expected, dt.String()) - } - } -} - -func TestDateTimeValue(t *testing.T) { - scenarios := []struct { - value any - expected string - }{ - {"", ""}, - {"invalid", ""}, - {1641024040, "2022-01-01 08:00:40.000Z"}, - {"2022-01-01 11:23:45.678", "2022-01-01 11:23:45.678Z"}, - {types.NowDateTime(), types.NowDateTime().String()}, - } - - for i, s := range scenarios { - dt, _ := types.ParseDateTime(s.value) - result, err := dt.Value() - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - - if result != s.expected { - t.Errorf("(%d) Expected %q, got %q", i, s.expected, result) - } - } -} - -func TestDateTimeScan(t *testing.T) { - now := time.Now().UTC().Format("2006-01-02 15:04:05") // without ms part for test consistency - - scenarios := []struct { - value any - expected string - }{ - {nil, ""}, - {"", ""}, - {"invalid", ""}, - {types.NowDateTime(), now}, - {time.Now(), now}, - {1641024040, "2022-01-01 08:00:40.000Z"}, - {"2022-01-01 11:23:45.678", "2022-01-01 11:23:45.678Z"}, - } - - for i, s := range scenarios { - dt := types.DateTime{} - - err := dt.Scan(s.value) - if err != nil { - t.Errorf("(%d) Failed to parse %v: %v", i, s.value, err) - continue - } - - if !strings.Contains(dt.String(), s.expected) { - t.Errorf("(%d) Expected %q, got %q", i, s.expected, dt.String()) - } - } -} diff --git a/tools/types/json_array.go b/tools/types/json_array.go deleted file mode 100644 index 2b555268d17d149bb442568f459c36ddf93ac6f2..0000000000000000000000000000000000000000 --- a/tools/types/json_array.go +++ /dev/null @@ -1,51 +0,0 @@ -package types - -import ( - "database/sql/driver" - "encoding/json" - "fmt" -) - -// JsonArray defines a slice that is safe for json and db read/write. -type JsonArray []any - -// MarshalJSON implements the [json.Marshaler] interface. -func (m JsonArray) MarshalJSON() ([]byte, error) { - type alias JsonArray // prevent recursion - - // initialize an empty map to ensure that `[]` is returned as json - if m == nil { - m = JsonArray{} - } - - return json.Marshal(alias(m)) -} - -// Value implements the [driver.Valuer] interface. -func (m JsonArray) Value() (driver.Value, error) { - data, err := json.Marshal(m) - - return string(data), err -} - -// Scan implements [sql.Scanner] interface to scan the provided value -// into the current `JsonArray` instance. -func (m *JsonArray) Scan(value any) error { - var data []byte - switch v := value.(type) { - case nil: - // no cast needed - case []byte: - data = v - case string: - data = []byte(v) - default: - return fmt.Errorf("Failed to unmarshal JsonArray value: %q.", value) - } - - if len(data) == 0 { - data = []byte("[]") - } - - return json.Unmarshal(data, m) -} diff --git a/tools/types/json_array_test.go b/tools/types/json_array_test.go deleted file mode 100644 index bbe239a020f8dd5c9f93044f3140c8433564d2ba..0000000000000000000000000000000000000000 --- a/tools/types/json_array_test.go +++ /dev/null @@ -1,95 +0,0 @@ -package types_test - -import ( - "database/sql/driver" - "testing" - - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestJsonArrayMarshalJSON(t *testing.T) { - scenarios := []struct { - json types.JsonArray - expected string - }{ - {nil, "[]"}, - {types.JsonArray{}, `[]`}, - {types.JsonArray{1, 2, 3}, `[1,2,3]`}, - {types.JsonArray{"test1", "test2", "test3"}, `["test1","test2","test3"]`}, - {types.JsonArray{1, "test"}, `[1,"test"]`}, - } - - for i, s := range scenarios { - result, err := s.json.MarshalJSON() - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - if string(result) != s.expected { - t.Errorf("(%d) Expected %s, got %s", i, s.expected, string(result)) - } - } -} - -func TestJsonArrayValue(t *testing.T) { - scenarios := []struct { - json types.JsonArray - expected driver.Value - }{ - {nil, `[]`}, - {types.JsonArray{}, `[]`}, - {types.JsonArray{1, 2, 3}, `[1,2,3]`}, - {types.JsonArray{"test1", "test2", "test3"}, `["test1","test2","test3"]`}, - {types.JsonArray{1, "test"}, `[1,"test"]`}, - } - - for i, s := range scenarios { - result, err := s.json.Value() - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - if result != s.expected { - t.Errorf("(%d) Expected %s, got %v", i, s.expected, result) - } - } -} - -func TestJsonArrayScan(t *testing.T) { - scenarios := []struct { - value any - expectError bool - expectJson string - }{ - {``, false, `[]`}, - {[]byte{}, false, `[]`}, - {nil, false, `[]`}, - {123, true, `[]`}, - {`""`, true, `[]`}, - {`invalid_json`, true, `[]`}, - {`"test"`, true, `[]`}, - {`1,2,3`, true, `[]`}, - {`[1, 2, 3`, true, `[]`}, - {`[1, 2, 3]`, false, `[1,2,3]`}, - {[]byte(`[1, 2, 3]`), false, `[1,2,3]`}, - {`[1, "test"]`, false, `[1,"test"]`}, - {`[]`, false, `[]`}, - } - - for i, s := range scenarios { - arr := types.JsonArray{} - scanErr := arr.Scan(s.value) - - hasErr := scanErr != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected %v, got %v (%v)", i, s.expectError, hasErr, scanErr) - continue - } - - result, _ := arr.MarshalJSON() - - if string(result) != s.expectJson { - t.Errorf("(%d) Expected %s, got %v", i, s.expectJson, string(result)) - } - } -} diff --git a/tools/types/json_map.go b/tools/types/json_map.go deleted file mode 100644 index 6358959cd91d57172c2e094042e4f0a494175510..0000000000000000000000000000000000000000 --- a/tools/types/json_map.go +++ /dev/null @@ -1,51 +0,0 @@ -package types - -import ( - "database/sql/driver" - "encoding/json" - "fmt" -) - -// JsonMap defines a map that is safe for json and db read/write. -type JsonMap map[string]any - -// MarshalJSON implements the [json.Marshaler] interface. -func (m JsonMap) MarshalJSON() ([]byte, error) { - type alias JsonMap // prevent recursion - - // initialize an empty map to ensure that `{}` is returned as json - if m == nil { - m = JsonMap{} - } - - return json.Marshal(alias(m)) -} - -// Value implements the [driver.Valuer] interface. -func (m JsonMap) Value() (driver.Value, error) { - data, err := json.Marshal(m) - - return string(data), err -} - -// Scan implements [sql.Scanner] interface to scan the provided value -// into the current `JsonMap` instance. -func (m *JsonMap) Scan(value any) error { - var data []byte - switch v := value.(type) { - case nil: - // no cast needed - case []byte: - data = v - case string: - data = []byte(v) - default: - return fmt.Errorf("Failed to unmarshal JsonMap value: %q.", value) - } - - if len(data) == 0 { - data = []byte("{}") - } - - return json.Unmarshal(data, m) -} diff --git a/tools/types/json_map_test.go b/tools/types/json_map_test.go deleted file mode 100644 index c0e5628d3cf01365e5a600261009d34b09938db2..0000000000000000000000000000000000000000 --- a/tools/types/json_map_test.go +++ /dev/null @@ -1,92 +0,0 @@ -package types_test - -import ( - "database/sql/driver" - "testing" - - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestJsonMapMarshalJSON(t *testing.T) { - scenarios := []struct { - json types.JsonMap - expected string - }{ - {nil, "{}"}, - {types.JsonMap{}, `{}`}, - {types.JsonMap{"test1": 123, "test2": "lorem"}, `{"test1":123,"test2":"lorem"}`}, - {types.JsonMap{"test": []int{1, 2, 3}}, `{"test":[1,2,3]}`}, - } - - for i, s := range scenarios { - result, err := s.json.MarshalJSON() - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - if string(result) != s.expected { - t.Errorf("(%d) Expected %s, got %s", i, s.expected, string(result)) - } - } -} - -func TestJsonMapValue(t *testing.T) { - scenarios := []struct { - json types.JsonMap - expected driver.Value - }{ - {nil, `{}`}, - {types.JsonMap{}, `{}`}, - {types.JsonMap{"test1": 123, "test2": "lorem"}, `{"test1":123,"test2":"lorem"}`}, - {types.JsonMap{"test": []int{1, 2, 3}}, `{"test":[1,2,3]}`}, - } - - for i, s := range scenarios { - result, err := s.json.Value() - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - if result != s.expected { - t.Errorf("(%d) Expected %s, got %v", i, s.expected, result) - } - } -} - -func TestJsonArrayMapScan(t *testing.T) { - scenarios := []struct { - value any - expectError bool - expectJson string - }{ - {``, false, `{}`}, - {nil, false, `{}`}, - {[]byte{}, false, `{}`}, - {`{}`, false, `{}`}, - {123, true, `{}`}, - {`""`, true, `{}`}, - {`invalid_json`, true, `{}`}, - {`"test"`, true, `{}`}, - {`1,2,3`, true, `{}`}, - {`{"test": 1`, true, `{}`}, - {`{"test": 1}`, false, `{"test":1}`}, - {[]byte(`{"test": 1}`), false, `{"test":1}`}, - } - - for i, s := range scenarios { - arr := types.JsonMap{} - scanErr := arr.Scan(s.value) - - hasErr := scanErr != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected %v, got %v (%v)", i, s.expectError, hasErr, scanErr) - continue - } - - result, _ := arr.MarshalJSON() - - if string(result) != s.expectJson { - t.Errorf("(%d) Expected %s, got %v", i, s.expectJson, string(result)) - } - } -} diff --git a/tools/types/json_raw.go b/tools/types/json_raw.go deleted file mode 100644 index 7f5defe54ef025734b18c2978cd98c21b7c43fb3..0000000000000000000000000000000000000000 --- a/tools/types/json_raw.go +++ /dev/null @@ -1,83 +0,0 @@ -package types - -import ( - "database/sql/driver" - "encoding/json" - "errors" -) - -// JsonRaw defines a json value type that is safe for db read/write. -type JsonRaw []byte - -// ParseJsonRaw creates a new JsonRaw instance from the provided value -// (could be JsonRaw, int, float, string, []byte, etc.). -func ParseJsonRaw(value any) (JsonRaw, error) { - result := JsonRaw{} - err := result.Scan(value) - return result, err -} - -// String returns the current JsonRaw instance as a json encoded string. -func (j JsonRaw) String() string { - return string(j) -} - -// MarshalJSON implements the [json.Marshaler] interface. -func (j JsonRaw) MarshalJSON() ([]byte, error) { - if len(j) == 0 { - return []byte("null"), nil - } - - return j, nil -} - -// UnmarshalJSON implements the [json.Unmarshaler] interface. -func (j *JsonRaw) UnmarshalJSON(b []byte) error { - if j == nil { - return errors.New("JsonRaw: UnmarshalJSON on nil pointer") - } - - *j = append((*j)[0:0], b...) - - return nil -} - -// Value implements the [driver.Valuer] interface. -func (j JsonRaw) Value() (driver.Value, error) { - if len(j) == 0 { - return nil, nil - } - - return j.String(), nil -} - -// Scan implements [sql.Scanner] interface to scan the provided value -// into the current JsonRaw instance. -func (j *JsonRaw) Scan(value interface{}) error { - var data []byte - - switch v := value.(type) { - case nil: - // no cast is needed - case []byte: - if len(v) != 0 { - data = v - } - case string: - if v != "" { - data = []byte(v) - } - case JsonRaw: - if len(v) != 0 { - data = []byte(v) - } - default: - bytes, err := json.Marshal(v) - if err != nil { - return err - } - data = bytes - } - - return j.UnmarshalJSON(data) -} diff --git a/tools/types/json_raw_test.go b/tools/types/json_raw_test.go deleted file mode 100644 index 6683b3ff1833dc3ed70afca8e5dadf11f4c11e38..0000000000000000000000000000000000000000 --- a/tools/types/json_raw_test.go +++ /dev/null @@ -1,178 +0,0 @@ -package types_test - -import ( - "database/sql/driver" - "testing" - - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestParseJsonRaw(t *testing.T) { - scenarios := []struct { - value any - expectError bool - expectJson string - }{ - {nil, false, `null`}, - {``, false, `null`}, - {[]byte{}, false, `null`}, - {types.JsonRaw{}, false, `null`}, - {`{}`, false, `{}`}, - {`[]`, false, `[]`}, - {123, false, `123`}, - {`""`, false, `""`}, - {`test`, false, `test`}, - {`{"invalid"`, false, `{"invalid"`}, // treated as a byte casted string - {`{"test":1}`, false, `{"test":1}`}, - {[]byte(`[1,2,3]`), false, `[1,2,3]`}, - {[]int{1, 2, 3}, false, `[1,2,3]`}, - {map[string]int{"test": 1}, false, `{"test":1}`}, - } - - for i, s := range scenarios { - raw, parseErr := types.ParseJsonRaw(s.value) - hasErr := parseErr != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected %v, got %v (%v)", i, s.expectError, hasErr, parseErr) - continue - } - - result, _ := raw.MarshalJSON() - - if string(result) != s.expectJson { - t.Errorf("(%d) Expected %s, got %v", i, s.expectJson, string(result)) - } - } -} - -func TestJsonRawString(t *testing.T) { - scenarios := []struct { - json types.JsonRaw - expected string - }{ - {nil, ``}, - {types.JsonRaw{}, ``}, - {types.JsonRaw([]byte(`123`)), `123`}, - {types.JsonRaw(`{"demo":123}`), `{"demo":123}`}, - } - - for i, s := range scenarios { - result := s.json.String() - if result != s.expected { - t.Errorf("(%d) Expected %q, got %q", i, s.expected, result) - } - } -} - -func TestJsonRawMarshalJSON(t *testing.T) { - scenarios := []struct { - json types.JsonRaw - expected string - }{ - {nil, `null`}, - {types.JsonRaw{}, `null`}, - {types.JsonRaw([]byte(`123`)), `123`}, - {types.JsonRaw(`{"demo":123}`), `{"demo":123}`}, - } - - for i, s := range scenarios { - result, err := s.json.MarshalJSON() - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - - if string(result) != s.expected { - t.Errorf("(%d) Expected %q, got %q", i, s.expected, string(result)) - } - } -} - -func TestJsonRawUnmarshalJSON(t *testing.T) { - scenarios := []struct { - json []byte - expectString string - }{ - {nil, ""}, - {[]byte{0, 1, 2}, "\x00\x01\x02"}, - {[]byte("123"), "123"}, - {[]byte("test"), "test"}, - {[]byte(`{"test":123}`), `{"test":123}`}, - } - - for i, s := range scenarios { - raw := types.JsonRaw{} - err := raw.UnmarshalJSON(s.json) - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - - if raw.String() != s.expectString { - t.Errorf("(%d) Expected %q, got %q", i, s.expectString, raw.String()) - } - } -} - -func TestJsonRawValue(t *testing.T) { - scenarios := []struct { - json types.JsonRaw - expected driver.Value - }{ - {nil, nil}, - {types.JsonRaw{}, nil}, - {types.JsonRaw(``), nil}, - {types.JsonRaw(`test`), `test`}, - } - - for i, s := range scenarios { - result, err := s.json.Value() - if err != nil { - t.Errorf("(%d) %v", i, err) - continue - } - if result != s.expected { - t.Errorf("(%d) Expected %s, got %v", i, s.expected, result) - } - } -} - -func TestJsonRawScan(t *testing.T) { - scenarios := []struct { - value any - expectError bool - expectJson string - }{ - {nil, false, `null`}, - {``, false, `null`}, - {[]byte{}, false, `null`}, - {types.JsonRaw{}, false, `null`}, - {types.JsonRaw(`test`), false, `test`}, - {`{}`, false, `{}`}, - {`[]`, false, `[]`}, - {123, false, `123`}, - {`""`, false, `""`}, - {`test`, false, `test`}, - {`{"invalid"`, false, `{"invalid"`}, // treated as a byte casted string - {`{"test":1}`, false, `{"test":1}`}, - {[]byte(`[1,2,3]`), false, `[1,2,3]`}, - {[]int{1, 2, 3}, false, `[1,2,3]`}, - {map[string]int{"test": 1}, false, `{"test":1}`}, - } - - for i, s := range scenarios { - raw := types.JsonRaw{} - scanErr := raw.Scan(s.value) - hasErr := scanErr != nil - if hasErr != s.expectError { - t.Errorf("(%d) Expected %v, got %v (%v)", i, s.expectError, hasErr, scanErr) - continue - } - - result, _ := raw.MarshalJSON() - - if string(result) != s.expectJson { - t.Errorf("(%d) Expected %s, got %v", i, s.expectJson, string(result)) - } - } -} diff --git a/tools/types/types.go b/tools/types/types.go deleted file mode 100644 index c07d80541dd1f2223fe0d2be11d5d749ad31095b..0000000000000000000000000000000000000000 --- a/tools/types/types.go +++ /dev/null @@ -1,8 +0,0 @@ -// Package types implements some commonly used db serializable types -// like datetime, json, etc. -package types - -// Pointer is a generic helper that returns val as *T. -func Pointer[T any](val T) *T { - return &val -} diff --git a/tools/types/types_test.go b/tools/types/types_test.go deleted file mode 100644 index 615ac4c61ea9696637a60dce77d4ee817405def3..0000000000000000000000000000000000000000 --- a/tools/types/types_test.go +++ /dev/null @@ -1,24 +0,0 @@ -package types_test - -import ( - "testing" - - "github.com/pocketbase/pocketbase/tools/types" -) - -func TestPointer(t *testing.T) { - s1 := types.Pointer("") - if s1 == nil || *s1 != "" { - t.Fatalf("Expected empty string pointer, got %#v", s1) - } - - s2 := types.Pointer("test") - if s2 == nil || *s2 != "test" { - t.Fatalf("Expected 'test' string pointer, got %#v", s2) - } - - s3 := types.Pointer(123) - if s3 == nil || *s3 != 123 { - t.Fatalf("Expected 123 string pointer, got %#v", s3) - } -} diff --git a/tools/types/untitled.js.erb b/tools/types/untitled.js.erb deleted file mode 100644 index 93939fcfa02ab3f037fadb721b77c43186918aea..0000000000000000000000000000000000000000 --- a/tools/types/untitled.js.erb +++ /dev/null @@ -1,27 +0,0 @@ -const { exec } = require('node:child_process'); - -// you can use any other library for copying directories recursively -const fse = require('fs-extra'); - -let controller; // this will be used to terminate the PocketBase process - -const srcTestDirPath = "./test_pb_data"; -const tempTestDirPath = "./temp_test_pb_data"; - -beforeEach(() => { - // copy test_pb_date to a temp location - fse.copySync(srcTestDirPath, tempTestDirPath); - - controller = new AbortController(); - - // start PocketBase with the test_pb_data - exec('./pocketbase serve --dir=' + tempTestDirPath, { signal: controller.signal}); -}); - -afterEach(() => { - // stop the PocketBase process - controller.abort(); - - // clean up the temp test directory - fse.removeSync(tempTestDirPath); -}); diff --git a/types.go b/types.go new file mode 100644 index 0000000000000000000000000000000000000000..20e62b3ca92e90805bd87c7ccd2fc0fc01af5883 --- /dev/null +++ b/types.go @@ -0,0 +1,51 @@ +package main + +import "github.com/pocketbase/pocketbase/tools/types" + +type Response struct { + Status int64 `json:"status"` + Message map[string]interface{} `json:"message"` +} + +type ErrorResponse struct { + Status int64 `json:"status"` + Error error `json:"error"` +} + +type DistInfo struct { + Integrity string `json:"integrity"` + Tarball string `json:"tarball"` + FileCount int64 `json:"fileCount"` + UnpackedSize int64 `json:"unpackedSize"` +} + +type VersionInfo struct { + Id string `json:"_id"` + Access []string `json:"_maintainers"` + Version string `json:"version"` + Published types.DateTime `json:"published"` + Description string `json:"description"` + Author string `json:"author"` + License string `json:"license"` + Private bool `json:"private"` + Dependencies map[string]string `json:"dependencies"` + Dist DistInfo `json:"dist"` +} + +type PackageInfo struct { + Id string `json:"_id"` + Name string `json:"name"` + License string `json:"license"` + Description string `json:"description"` + Versions map[string]VersionInfo `json:"versions"` + Times map[string]types.DateTime `json:"times"` + Dist DistInfo `json:"dist"` +} + +type Result struct { + Page int `json:"page"` + PerPage int `json:"perPage"` + TotalItems int `json:"totalItems"` + TotalPages int `json:"totalPages"` + Packages any `json:"packages"` +} diff --git a/ui/.env b/ui/.env deleted file mode 100644 index 6b4723356611560efb383d3c8bbd7fb30b6e031c..0000000000000000000000000000000000000000 --- a/ui/.env +++ /dev/null @@ -1,10 +0,0 @@ -# all environments should start with 'PB_' prefix -PB_BACKEND_URL = "../" -PB_INSTALLER_PARAM = "installer" -PB_OAUTH2_EXAMPLE = "https://pocketbase.io/docs/authentication/#web-oauth2-integration" -PB_RULES_SYNTAX_DOCS = "https://pocketbase.io/docs/api-rules-and-filters/" -PB_FILE_UPLOAD_DOCS = "https://pocketbase.io/docs/files-handling/" -PB_JS_SDK_URL = "https://github.com/pocketbase/js-sdk" -PB_DART_SDK_URL = "https://github.com/pocketbase/dart-sdk" -PB_RELEASES = "https://github.com/pocketbase/pocketbase/releases" -PB_VERSION = "v0.9.0" diff --git a/ui/.env.development b/ui/.env.development deleted file mode 100644 index d00088b5ceb7223ae39eee6a51bab1e2128b7311..0000000000000000000000000000000000000000 --- a/ui/.env.development +++ /dev/null @@ -1 +0,0 @@ -PB_BACKEND_URL = "http://127.0.0.1:8090" diff --git a/ui/.gitignore b/ui/.gitignore deleted file mode 100644 index 631b5f8662a3ff1d7b9d781ced189a2a649dcc66..0000000000000000000000000000000000000000 --- a/ui/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/node_modules/ -/.vscode/ -.DS_Store - -# exclude local env files -.env.local -.env.*.local diff --git a/ui/README.md b/ui/README.md deleted file mode 100644 index a0e650efd002a93222e617f2f84ec45cbefd517b..0000000000000000000000000000000000000000 --- a/ui/README.md +++ /dev/null @@ -1,24 +0,0 @@ -PocketBase Admin dashboard UI -====================================================================== - -This is the PocketBase Admin dashboard UI (built with Svelte and Vite). - -Although it could be used independently, it is mainly intended to be embedded -as part of a PocketBase app executable (hence the `embed.go` file). - -The used admins avatars are from https://boringavatars.com/. - -## Development - -Download the repo and run the appropriate console commands: - -```sh -# install dependencies -npm install - -# start a dev server with hot reload at localhost:3000 -npm run dev - -# or generate production ready bundle in dist/ directory -npm run build -``` diff --git a/ui/dist/assets/AuthMethodsDocs.a60349f6.js b/ui/dist/assets/AuthMethodsDocs.a60349f6.js deleted file mode 100644 index e8f970603b591256673fa5935ae18ad3b738bf6c..0000000000000000000000000000000000000000 --- a/ui/dist/assets/AuthMethodsDocs.a60349f6.js +++ /dev/null @@ -1,64 +0,0 @@ -import{S as ke,i as be,s as ge,e as r,w as b,b as g,c as _e,f as k,g as h,h as n,m as me,x as G,N as re,O as we,k as ve,P as Ce,n as Pe,t as L,a as Y,o as _,d as pe,Q as Me,C as Se,p as $e,r as H,u as je,M as Ae}from"./index.662e825a.js";import{S as Be}from"./SdkTabs.1e98a608.js";function ue(a,l,o){const s=a.slice();return s[5]=l[o],s}function de(a,l,o){const s=a.slice();return s[5]=l[o],s}function fe(a,l){let o,s=l[5].code+"",m,f,i,u;function d(){return l[4](l[5])}return{key:a,first:null,c(){o=r("button"),m=b(s),f=g(),k(o,"class","tab-item"),H(o,"active",l[1]===l[5].code),this.first=o},m(v,C){h(v,o,C),n(o,m),n(o,f),i||(u=je(o,"click",d),i=!0)},p(v,C){l=v,C&4&&s!==(s=l[5].code+"")&&G(m,s),C&6&&H(o,"active",l[1]===l[5].code)},d(v){v&&_(o),i=!1,u()}}}function he(a,l){let o,s,m,f;return s=new Ae({props:{content:l[5].body}}),{key:a,first:null,c(){o=r("div"),_e(s.$$.fragment),m=g(),k(o,"class","tab-item"),H(o,"active",l[1]===l[5].code),this.first=o},m(i,u){h(i,o,u),me(s,o,null),n(o,m),f=!0},p(i,u){l=i;const d={};u&4&&(d.content=l[5].body),s.$set(d),(!f||u&6)&&H(o,"active",l[1]===l[5].code)},i(i){f||(L(s.$$.fragment,i),f=!0)},o(i){Y(s.$$.fragment,i),f=!1},d(i){i&&_(o),pe(s)}}}function Oe(a){var ae,ne;let l,o,s=a[0].name+"",m,f,i,u,d,v,C,F=a[0].name+"",U,X,q,P,D,j,W,M,K,R,Q,A,Z,V,y=a[0].name+"",I,x,E,B,J,S,O,w=[],ee=new Map,te,T,p=[],le=new Map,$;P=new Be({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${a[3]}'); - - ... - - const result = await pb.collection('${(ae=a[0])==null?void 0:ae.name}').listAuthMethods(); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${a[3]}'); - - ... - - final result = await pb.collection('${(ne=a[0])==null?void 0:ne.name}').listAuthMethods(); - `}});let z=a[2];const oe=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eo(1,f=d.code);return a.$$set=d=>{"collection"in d&&o(0,m=d.collection)},o(3,s=Se.getApiExampleUrl($e.baseUrl)),o(2,i=[{code:200,body:` - { - "usernamePassword": true, - "emailPassword": true, - "authProviders": [ - { - "name": "github", - "state": "3Yd8jNkK_6PJG6hPWwBjLqKwse6Ejd", - "codeVerifier": "KxFDWz1B3fxscCDJ_9gHQhLuh__ie7", - "codeChallenge": "NM1oVexB6Q6QH8uPtOUfK7tq4pmu4Jz6lNDIwoxHZNE=", - "codeChallengeMethod": "S256", - "authUrl": "https://github.com/login/oauth/authorize?client_id=demo&code_challenge=NM1oVexB6Q6QH8uPtOUfK7tq4pmu4Jz6lNDIwoxHZNE%3D&code_challenge_method=S256&response_type=code&scope=user&state=3Yd8jNkK_6PJG6hPWwBjLqKwse6Ejd&redirect_uri=" - }, - { - "name": "gitlab", - "state": "NeQSbtO5cShr_mk5__3CUukiMnymeb", - "codeVerifier": "ahTFHOgua8mkvPAlIBGwCUJbWKR_xi", - "codeChallenge": "O-GATkTj4eXDCnfonsqGLCd6njvTixlpCMvy5kjgOOg=", - "codeChallengeMethod": "S256", - "authUrl": "https://gitlab.com/oauth/authorize?client_id=demo&code_challenge=O-GATkTj4eXDCnfonsqGLCd6njvTixlpCMvy5kjgOOg%3D&code_challenge_method=S256&response_type=code&scope=read_user&state=NeQSbtO5cShr_mk5__3CUukiMnymeb&redirect_uri=" - }, - { - "name": "google", - "state": "zB3ZPifV1TW2GMuvuFkamSXfSNkHPQ", - "codeVerifier": "t3CmO5VObGzdXqieakvR_fpjiW0zdO", - "codeChallenge": "KChwoQPKYlz2anAdqtgsSTdIo8hdwtc1fh2wHMwW2Yk=", - "codeChallengeMethod": "S256", - "authUrl": "https://accounts.google.com/o/oauth2/auth?client_id=demo&code_challenge=KChwoQPKYlz2anAdqtgsSTdIo8hdwtc1fh2wHMwW2Yk%3D&code_challenge_method=S256&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=zB3ZPifV1TW2GMuvuFkamSXfSNkHPQ&redirect_uri=" - } - ] - } - `}]),[m,f,i,s,u]}class Ke extends ke{constructor(l){super(),be(this,l,Te,Oe,ge,{collection:0})}}export{Ke as default}; diff --git a/ui/dist/assets/AuthRefreshDocs.22f0390a.js b/ui/dist/assets/AuthRefreshDocs.22f0390a.js deleted file mode 100644 index 90e15530095d214274fe8eaab55c674961a10011..0000000000000000000000000000000000000000 --- a/ui/dist/assets/AuthRefreshDocs.22f0390a.js +++ /dev/null @@ -1,82 +0,0 @@ -import{S as ze,i as Ue,s as je,M as Ve,e as a,w as k,b as p,c as ae,f as b,g as c,h as o,m as ne,x as re,N as qe,O as xe,k as Ie,P as Je,n as Ke,t as U,a as j,o as d,d as ie,Q as Qe,C as He,p as We,r as x,u as Ge}from"./index.662e825a.js";import{S as Xe}from"./SdkTabs.1e98a608.js";function Ee(r,l,s){const n=r.slice();return n[5]=l[s],n}function Fe(r,l,s){const n=r.slice();return n[5]=l[s],n}function Le(r,l){let s,n=l[5].code+"",m,_,i,f;function v(){return l[4](l[5])}return{key:r,first:null,c(){s=a("button"),m=k(n),_=p(),b(s,"class","tab-item"),x(s,"active",l[1]===l[5].code),this.first=s},m(g,w){c(g,s,w),o(s,m),o(s,_),i||(f=Ge(s,"click",v),i=!0)},p(g,w){l=g,w&4&&n!==(n=l[5].code+"")&&re(m,n),w&6&&x(s,"active",l[1]===l[5].code)},d(g){g&&d(s),i=!1,f()}}}function Ne(r,l){let s,n,m,_;return n=new Ve({props:{content:l[5].body}}),{key:r,first:null,c(){s=a("div"),ae(n.$$.fragment),m=p(),b(s,"class","tab-item"),x(s,"active",l[1]===l[5].code),this.first=s},m(i,f){c(i,s,f),ne(n,s,null),o(s,m),_=!0},p(i,f){l=i;const v={};f&4&&(v.content=l[5].body),n.$set(v),(!_||f&6)&&x(s,"active",l[1]===l[5].code)},i(i){_||(U(n.$$.fragment,i),_=!0)},o(i){j(n.$$.fragment,i),_=!1},d(i){i&&d(s),ie(n)}}}function Ye(r){var Ae,Be;let l,s,n=r[0].name+"",m,_,i,f,v,g,w,A,I,S,F,ce,L,B,de,J,N=r[0].name+"",K,ue,pe,V,Q,D,W,T,G,fe,X,C,Y,he,Z,be,h,me,R,_e,ke,ve,ee,ge,te,ye,Se,$e,oe,we,le,O,se,P,q,$=[],Te=new Map,Ce,H,y=[],Pe=new Map,M;g=new Xe({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${r[3]}'); - - ... - - const authData = await pb.collection('${(Ae=r[0])==null?void 0:Ae.name}').authRefresh(); - - // after the above you can also access the refreshed auth data from the authStore - console.log(pb.authStore.isValid); - console.log(pb.authStore.token); - console.log(pb.authStore.model.id); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${r[3]}'); - - ... - - final authData = await pb.collection('${(Be=r[0])==null?void 0:Be.name}').authRefresh(); - - // after the above you can also access the refreshed auth data from the authStore - print(pb.authStore.isValid); - print(pb.authStore.token); - print(pb.authStore.model.id); - `}}),R=new Ve({props:{content:"?expand=relField1,relField2.subRelField"}});let z=r[2];const Re=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eReturns a new auth response (token and record data) for an - already authenticated record.

    -

    This method is usually called by users on page/screen reload to ensure that the previously stored - data in pb.authStore is still valid and up-to-date.

    `,v=p(),ae(g.$$.fragment),w=p(),A=a("h6"),A.textContent="API details",I=p(),S=a("div"),F=a("strong"),F.textContent="POST",ce=p(),L=a("div"),B=a("p"),de=k("/api/collections/"),J=a("strong"),K=k(N),ue=k("/auth-refresh"),pe=p(),V=a("p"),V.innerHTML="Requires record Authorization:TOKEN header",Q=p(),D=a("div"),D.textContent="Query parameters",W=p(),T=a("table"),G=a("thead"),G.innerHTML=`Param - Type - Description`,fe=p(),X=a("tbody"),C=a("tr"),Y=a("td"),Y.textContent="expand",he=p(),Z=a("td"),Z.innerHTML='String',be=p(),h=a("td"),me=k(`Auto expand record relations. Ex.: - `),ae(R.$$.fragment),_e=k(` - Supports up to 6-levels depth nested relations expansion. `),ke=a("br"),ve=k(` - The expanded relations will be appended to the record under the - `),ee=a("code"),ee.textContent="expand",ge=k(" property (eg. "),te=a("code"),te.textContent='"expand": {"relField1": {...}, ...}',ye=k(`). - `),Se=a("br"),$e=k(` - Only the relations to which the request user has permissions to `),oe=a("strong"),oe.textContent="view",we=k(" will be expanded."),le=p(),O=a("div"),O.textContent="Responses",se=p(),P=a("div"),q=a("div");for(let e=0;e<$.length;e+=1)$[e].c();Ce=p(),H=a("div");for(let e=0;es(1,_=v.code);return r.$$set=v=>{"collection"in v&&s(0,m=v.collection)},r.$$.update=()=>{r.$$.dirty&1&&s(2,i=[{code:200,body:JSON.stringify({token:"JWT_TOKEN",record:He.dummyCollectionRecord(m)},null,2)},{code:401,body:` - { - "code": 401, - "message": "The request requires valid record authorization token to be set.", - "data": {} - } - `},{code:403,body:` - { - "code": 403, - "message": "The authorized record model is not allowed to perform this action.", - "data": {} - } - `},{code:404,body:` - { - "code": 404, - "message": "Missing auth record context.", - "data": {} - } - `}])},s(3,n=He.getApiExampleUrl(We.baseUrl)),[m,_,i,n,f]}class ot extends ze{constructor(l){super(),Ue(this,l,Ze,Ye,je,{collection:0})}}export{ot as default}; diff --git a/ui/dist/assets/AuthWithOAuth2Docs.9e9d428f.js b/ui/dist/assets/AuthWithOAuth2Docs.9e9d428f.js deleted file mode 100644 index 7e252de5ca16c344e63895038bbe5b2c06e5eb8e..0000000000000000000000000000000000000000 --- a/ui/dist/assets/AuthWithOAuth2Docs.9e9d428f.js +++ /dev/null @@ -1,151 +0,0 @@ -import{S as je,i as He,s as Je,M as We,e as s,w as v,b as p,c as re,f as h,g as r,h as a,m as ce,x as de,N as Ve,O as Ne,k as Qe,P as ze,n as Ke,t as j,a as H,o as c,d as ue,Q as Ye,C as Be,p as Ge,r as J,u as Xe}from"./index.662e825a.js";import{S as Ze}from"./SdkTabs.1e98a608.js";function Fe(i,l,o){const n=i.slice();return n[5]=l[o],n}function Le(i,l,o){const n=i.slice();return n[5]=l[o],n}function Me(i,l){let o,n=l[5].code+"",m,_,d,b;function g(){return l[4](l[5])}return{key:i,first:null,c(){o=s("button"),m=v(n),_=p(),h(o,"class","tab-item"),J(o,"active",l[1]===l[5].code),this.first=o},m(k,y){r(k,o,y),a(o,m),a(o,_),d||(b=Xe(o,"click",g),d=!0)},p(k,y){l=k,y&4&&n!==(n=l[5].code+"")&&de(m,n),y&6&&J(o,"active",l[1]===l[5].code)},d(k){k&&c(o),d=!1,b()}}}function xe(i,l){let o,n,m,_;return n=new We({props:{content:l[5].body}}),{key:i,first:null,c(){o=s("div"),re(n.$$.fragment),m=p(),h(o,"class","tab-item"),J(o,"active",l[1]===l[5].code),this.first=o},m(d,b){r(d,o,b),ce(n,o,null),a(o,m),_=!0},p(d,b){l=d;const g={};b&4&&(g.content=l[5].body),n.$set(g),(!_||b&6)&&J(o,"active",l[1]===l[5].code)},i(d){_||(j(n.$$.fragment,d),_=!0)},o(d){H(n.$$.fragment,d),_=!1},d(d){d&&c(o),ue(n)}}}function et(i){var qe,Ie;let l,o,n=i[0].name+"",m,_,d,b,g,k,y,C,N,O,L,pe,M,D,he,Q,x=i[0].name+"",z,be,K,q,Y,I,G,P,X,R,Z,fe,ee,$,te,me,ae,_e,f,ve,E,ge,ke,we,le,Se,oe,ye,Oe,Re,se,$e,ne,U,ie,A,V,S=[],Ae=new Map,Ee,B,w=[],Te=new Map,T;k=new Ze({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${i[3]}'); - - ... - - const authData = await pb.collection('${(qe=i[0])==null?void 0:qe.name}').authWithOAuth2( - 'google', - 'CODE', - 'VERIFIER', - 'REDIRECT_URL', - // optional data that will be used for the new account on OAuth2 sign-up - { - 'name': 'test', - }, - ); - - // after the above you can also access the auth data from the authStore - console.log(pb.authStore.isValid); - console.log(pb.authStore.token); - console.log(pb.authStore.model.id); - - // "logout" the last authenticated account - pb.authStore.clear(); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${i[3]}'); - - ... - - final authData = await pb.collection('${(Ie=i[0])==null?void 0:Ie.name}').authWithOAuth2( - 'google', - 'CODE', - 'VERIFIER', - 'REDIRECT_URL', - // optional data that will be used for the new account on OAuth2 sign-up - createData: { - 'name': 'test', - }, - ); - - // after the above you can also access the auth data from the authStore - print(pb.authStore.isValid); - print(pb.authStore.token); - print(pb.authStore.model.id); - - // "logout" the last authenticated account - pb.authStore.clear(); - `}}),E=new We({props:{content:"?expand=relField1,relField2.subRelField"}});let W=i[2];const Ce=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eAuthenticate with an OAuth2 provider and returns a new auth token and record data.

    -

    This action usually should be called right after the provider login page redirect.

    -

    You could also check the - OAuth2 web integration example - .

    `,g=p(),re(k.$$.fragment),y=p(),C=s("h6"),C.textContent="API details",N=p(),O=s("div"),L=s("strong"),L.textContent="POST",pe=p(),M=s("div"),D=s("p"),he=v("/api/collections/"),Q=s("strong"),z=v(x),be=v("/auth-with-oauth2"),K=p(),q=s("div"),q.textContent="Body Parameters",Y=p(),I=s("table"),I.innerHTML=`Param - Type - Description -
    Required - provider
    - String - The name of the OAuth2 client provider (eg. "google"). -
    Required - code
    - String - The authorization code returned from the initial request. -
    Required - codeVerifier
    - String - The code verifier sent with the initial request as part of the code_challenge. -
    Required - redirectUrl
    - String - The redirect url sent with the initial request. -
    Optional - createData
    - Object -

    Optional data that will be used when creating the auth record on OAuth2 sign-up.

    -

    The created auth record must comply with the same requirements and validations in the - regular create action. -
    - The data can only be in json, aka. multipart/form-data and files - upload currently are not supported during OAuth2 sign-ups.

    `,G=p(),P=s("div"),P.textContent="Query parameters",X=p(),R=s("table"),Z=s("thead"),Z.innerHTML=`Param - Type - Description`,fe=p(),ee=s("tbody"),$=s("tr"),te=s("td"),te.textContent="expand",me=p(),ae=s("td"),ae.innerHTML='String',_e=p(),f=s("td"),ve=v(`Auto expand record relations. Ex.: - `),re(E.$$.fragment),ge=v(` - Supports up to 6-levels depth nested relations expansion. `),ke=s("br"),we=v(` - The expanded relations will be appended to the record under the - `),le=s("code"),le.textContent="expand",Se=v(" property (eg. "),oe=s("code"),oe.textContent='"expand": {"relField1": {...}, ...}',ye=v(`). - `),Oe=s("br"),Re=v(` - Only the relations to which the request user has permissions to `),se=s("strong"),se.textContent="view",$e=v(" will be expanded."),ne=p(),U=s("div"),U.textContent="Responses",ie=p(),A=s("div"),V=s("div");for(let e=0;eo(1,_=g.code);return i.$$set=g=>{"collection"in g&&o(0,m=g.collection)},i.$$.update=()=>{i.$$.dirty&1&&o(2,d=[{code:200,body:JSON.stringify({token:"JWT_TOKEN",record:Be.dummyCollectionRecord(m),meta:{id:"abc123",name:"John Doe",username:"john.doe",email:"test@example.com",avatarUrl:"https://example.com/avatar.png"}},null,2)},{code:400,body:` - { - "code": 400, - "message": "An error occurred while submitting the form.", - "data": { - "provider": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `}])},o(3,n=Be.getApiExampleUrl(Ge.baseUrl)),[m,_,d,n,b]}class ot extends je{constructor(l){super(),He(this,l,tt,et,Je,{collection:0})}}export{ot as default}; diff --git a/ui/dist/assets/AuthWithPasswordDocs.e5fec4ed.js b/ui/dist/assets/AuthWithPasswordDocs.e5fec4ed.js deleted file mode 100644 index b56ae77823b88c2e6b57c294af8020132d111f14..0000000000000000000000000000000000000000 --- a/ui/dist/assets/AuthWithPasswordDocs.e5fec4ed.js +++ /dev/null @@ -1,106 +0,0 @@ -import{S as Se,i as ve,s as we,M as ke,e as s,w as f,b as u,c as Ot,f as h,g as r,h as o,m as At,x as Tt,N as ce,O as ye,k as ge,P as Pe,n as $e,t as tt,a as et,o as c,d as Mt,Q as Re,C as de,p as Ce,r as lt,u as Oe}from"./index.662e825a.js";import{S as Ae}from"./SdkTabs.1e98a608.js";function ue(n,e,l){const i=n.slice();return i[8]=e[l],i}function fe(n,e,l){const i=n.slice();return i[8]=e[l],i}function Te(n){let e;return{c(){e=f("email")},m(l,i){r(l,e,i)},d(l){l&&c(e)}}}function Me(n){let e;return{c(){e=f("username")},m(l,i){r(l,e,i)},d(l){l&&c(e)}}}function Ue(n){let e;return{c(){e=f("username/email")},m(l,i){r(l,e,i)},d(l){l&&c(e)}}}function pe(n){let e;return{c(){e=s("strong"),e.textContent="username"},m(l,i){r(l,e,i)},d(l){l&&c(e)}}}function be(n){let e;return{c(){e=f("or")},m(l,i){r(l,e,i)},d(l){l&&c(e)}}}function me(n){let e;return{c(){e=s("strong"),e.textContent="email"},m(l,i){r(l,e,i)},d(l){l&&c(e)}}}function he(n,e){let l,i=e[8].code+"",S,m,p,d;function _(){return e[7](e[8])}return{key:n,first:null,c(){l=s("button"),S=f(i),m=u(),h(l,"class","tab-item"),lt(l,"active",e[3]===e[8].code),this.first=l},m(R,C){r(R,l,C),o(l,S),o(l,m),p||(d=Oe(l,"click",_),p=!0)},p(R,C){e=R,C&16&&i!==(i=e[8].code+"")&&Tt(S,i),C&24&<(l,"active",e[3]===e[8].code)},d(R){R&&c(l),p=!1,d()}}}function _e(n,e){let l,i,S,m;return i=new ke({props:{content:e[8].body}}),{key:n,first:null,c(){l=s("div"),Ot(i.$$.fragment),S=u(),h(l,"class","tab-item"),lt(l,"active",e[3]===e[8].code),this.first=l},m(p,d){r(p,l,d),At(i,l,null),o(l,S),m=!0},p(p,d){e=p;const _={};d&16&&(_.content=e[8].body),i.$set(_),(!m||d&24)&<(l,"active",e[3]===e[8].code)},i(p){m||(tt(i.$$.fragment,p),m=!0)},o(p){et(i.$$.fragment,p),m=!1},d(p){p&&c(l),Mt(i)}}}function De(n){var se,ne;let e,l,i=n[0].name+"",S,m,p,d,_,R,C,O,B,Ut,ot,T,at,F,st,M,G,Dt,X,I,Et,nt,Z=n[0].name+"",it,Wt,rt,N,ct,U,dt,Lt,V,D,ut,Bt,ft,Ht,g,Yt,pt,bt,mt,qt,ht,_t,j,kt,E,St,Ft,vt,W,wt,It,yt,Nt,k,Vt,H,jt,Jt,Qt,gt,Kt,Pt,zt,Gt,Xt,$t,Zt,Rt,J,Ct,L,Q,A=[],xt=new Map,te,K,P=[],ee=new Map,Y;function le(t,a){if(t[1]&&t[2])return Ue;if(t[1])return Me;if(t[2])return Te}let q=le(n),$=q&&q(n);T=new Ae({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${n[6]}'); - - ... - - const authData = await pb.collection('${(se=n[0])==null?void 0:se.name}').authWithPassword( - '${n[5]}', - 'YOUR_PASSWORD', - ); - - // after the above you can also access the auth data from the authStore - console.log(pb.authStore.isValid); - console.log(pb.authStore.token); - console.log(pb.authStore.model.id); - - // "logout" the last authenticated account - pb.authStore.clear(); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${n[6]}'); - - ... - - final authData = await pb.collection('${(ne=n[0])==null?void 0:ne.name}').authWithPassword( - '${n[5]}', - 'YOUR_PASSWORD', - ); - - // after the above you can also access the auth data from the authStore - print(pb.authStore.isValid); - print(pb.authStore.token); - print(pb.authStore.model.id); - - // "logout" the last authenticated account - pb.authStore.clear(); - `}});let v=n[1]&&pe(),w=n[1]&&n[2]&&be(),y=n[2]&&me();H=new ke({props:{content:"?expand=relField1,relField2.subRelField"}});let x=n[4];const oe=t=>t[8].code;for(let t=0;tt[8].code;for(let t=0;tParam - Type - Description`,Lt=u(),V=s("tbody"),D=s("tr"),ut=s("td"),ut.innerHTML=`
    Required - identity
    `,Bt=u(),ft=s("td"),ft.innerHTML='String',Ht=u(),g=s("td"),Yt=f(`The - `),v&&v.c(),pt=u(),w&&w.c(),bt=u(),y&&y.c(),mt=f(` - of the record to authenticate.`),qt=u(),ht=s("tr"),ht.innerHTML=`
    Required - password
    - String - The auth record password.`,_t=u(),j=s("div"),j.textContent="Query parameters",kt=u(),E=s("table"),St=s("thead"),St.innerHTML=`Param - Type - Description`,Ft=u(),vt=s("tbody"),W=s("tr"),wt=s("td"),wt.textContent="expand",It=u(),yt=s("td"),yt.innerHTML='String',Nt=u(),k=s("td"),Vt=f(`Auto expand record relations. Ex.: - `),Ot(H.$$.fragment),jt=f(` - Supports up to 6-levels depth nested relations expansion. `),Jt=s("br"),Qt=f(` - The expanded relations will be appended to the record under the - `),gt=s("code"),gt.textContent="expand",Kt=f(" property (eg. "),Pt=s("code"),Pt.textContent='"expand": {"relField1": {...}, ...}',zt=f(`). - `),Gt=s("br"),Xt=f(` - Only the relations to which the request user has permissions to `),$t=s("strong"),$t.textContent="view",Zt=f(" will be expanded."),Rt=u(),J=s("div"),J.textContent="Responses",Ct=u(),L=s("div"),Q=s("div");for(let t=0;tl(3,_=O.code);return n.$$set=O=>{"collection"in O&&l(0,d=O.collection)},n.$$.update=()=>{var O,B;n.$$.dirty&1&&l(2,S=(O=d==null?void 0:d.options)==null?void 0:O.allowEmailAuth),n.$$.dirty&1&&l(1,m=(B=d==null?void 0:d.options)==null?void 0:B.allowUsernameAuth),n.$$.dirty&6&&l(5,p=m&&S?"YOUR_USERNAME_OR_EMAIL":m?"YOUR_USERNAME":"YOUR_EMAIL"),n.$$.dirty&1&&l(4,R=[{code:200,body:JSON.stringify({token:"JWT_TOKEN",record:de.dummyCollectionRecord(d)},null,2)},{code:400,body:` - { - "code": 400, - "message": "Failed to authenticate.", - "data": { - "identity": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `}])},l(6,i=de.getApiExampleUrl(Ce.baseUrl)),[d,m,S,_,R,p,i,C]}class Be extends Se{constructor(e){super(),ve(this,e,Ee,De,we,{collection:0})}}export{Be as default}; diff --git a/ui/dist/assets/CodeEditor.032be7a5.js b/ui/dist/assets/CodeEditor.032be7a5.js deleted file mode 100644 index b039f5daab7ae14b22c11ea0dc57d6ece9ddf0db..0000000000000000000000000000000000000000 --- a/ui/dist/assets/CodeEditor.032be7a5.js +++ /dev/null @@ -1,13 +0,0 @@ -import{S as _e,i as xe,s as Ue,e as Ve,f as ke,T as bO,g as Re,y as TO,o as we,J as je,K as ve,L as We}from"./index.662e825a.js";import{P as Ge,N as Ce,u as Ye,D as ze,v as QO,T as Y,I as HO,w as cO,x as n,y as Ae,L as hO,z as uO,A as z,B as dO,F as Oe,G as pO,H as v,J as Ee,K as De,E as y,M as j,O as Ie,Q as Ne,R as m,U as Be,a as k,h as Je,b as Le,c as Me,d as Fe,e as Ke,s as He,f as Ot,g as et,i as tt,r as at,j as it,k as rt,l as st,m as lt,n as nt,o as ot,p as Qt,q as ct,t as XO,C as W}from"./index.e8a8986f.js";class N{constructor(O,t,a,i,r,s,l,Q,c,h=0,o){this.p=O,this.stack=t,this.state=a,this.reducePos=i,this.pos=r,this.score=s,this.buffer=l,this.bufferBase=Q,this.curContext=c,this.lookAhead=h,this.parent=o}toString(){return`[${this.stack.filter((O,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(O,t,a=0){let i=O.parser.context;return new N(O,[],t,a,a,0,[],0,i?new ZO(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(O,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=O}reduce(O){let t=O>>19,a=O&65535,{parser:i}=this.p,r=i.dynamicPrecedence(a);if(r&&(this.score+=r),t==0){this.pushState(i.getGoto(this.state,a,!0),this.reducePos),as;)this.stack.pop();this.reduceContext(a,l)}storeNode(O,t,a,i=4,r=!1){if(O==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&s.buffer[l-4]==0&&s.buffer[l-1]>-1){if(t==a)return;if(s.buffer[l-2]>=t){s.buffer[l-2]=a;return}}}if(!r||this.pos==a)this.buffer.push(O,t,a,i);else{let s=this.buffer.length;if(s>0&&this.buffer[s-4]!=0)for(;s>0&&this.buffer[s-2]>a;)this.buffer[s]=this.buffer[s-4],this.buffer[s+1]=this.buffer[s-3],this.buffer[s+2]=this.buffer[s-2],this.buffer[s+3]=this.buffer[s-1],s-=4,i>4&&(i-=4);this.buffer[s]=O,this.buffer[s+1]=t,this.buffer[s+2]=a,this.buffer[s+3]=i}}shift(O,t,a){let i=this.pos;if(O&131072)this.pushState(O&65535,this.pos);else if((O&262144)==0){let r=O,{parser:s}=this.p;(a>this.pos||t<=s.maxNode)&&(this.pos=a,s.stateFlag(r,1)||(this.reducePos=a)),this.pushState(r,i),this.shiftContext(t,i),t<=s.maxNode&&this.buffer.push(t,i,a,4)}else this.pos=a,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,a,4)}apply(O,t,a){O&65536?this.reduce(O):this.shift(O,t,a)}useNode(O,t){let a=this.p.reused.length-1;(a<0||this.p.reused[a]!=O)&&(this.p.reused.push(O),a++);let i=this.pos;this.reducePos=this.pos=i+O.length,this.pushState(t,i),this.buffer.push(a,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,O,this,this.p.stream.reset(this.pos-O.length)))}split(){let O=this,t=O.buffer.length;for(;t>0&&O.buffer[t-2]>O.reducePos;)t-=4;let a=O.buffer.slice(t),i=O.bufferBase+t;for(;O&&i==O.bufferBase;)O=O.parent;return new N(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,a,i,this.curContext,this.lookAhead,O)}recoverByDelete(O,t){let a=O<=this.p.parser.maxNode;a&&this.storeNode(O,this.pos,t,4),this.storeNode(0,this.pos,t,a?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(O){for(let t=new ht(this);;){let a=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,O);if(a==0)return!1;if((a&65536)==0)return!0;t.reduce(a)}}recoverByInsert(O){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let i=[];for(let r=0,s;rQ&1&&l==s)||i.push(t[r],s)}t=i}let a=[];for(let i=0;i>19,i=O&65535,r=this.stack.length-a*3;if(r<0||t.getGoto(this.stack[r],i,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(O),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:O}=this.p;return O.data[O.stateSlot(this.state,1)]==65535&&!O.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(O){if(this.state!=O.state||this.stack.length!=O.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=O)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class ZO{constructor(O,t){this.tracker=O,this.context=t,this.hash=O.strict?O.hash(t):0}}var qO;(function(e){e[e.Insert=200]="Insert",e[e.Delete=190]="Delete",e[e.Reduce=100]="Reduce",e[e.MaxNext=4]="MaxNext",e[e.MaxInsertStackDepth=300]="MaxInsertStackDepth",e[e.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(qO||(qO={}));class ht{constructor(O){this.start=O,this.state=O.state,this.stack=O.stack,this.base=this.stack.length}reduce(O){let t=O&65535,a=O>>19;a==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(a-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}}class B{constructor(O,t,a){this.stack=O,this.pos=t,this.index=a,this.buffer=O.buffer,this.index==0&&this.maybeNext()}static create(O,t=O.bufferBase+O.buffer.length){return new B(O,t,t-O.bufferBase)}maybeNext(){let O=this.stack.parent;O!=null&&(this.index=this.stack.bufferBase-O.bufferBase,this.stack=O,this.buffer=O.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new B(this.stack,this.pos,this.index)}}class A{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const yO=new A;class ut{constructor(O,t){this.input=O,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=yO,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(O,t){let a=this.range,i=this.rangeIndex,r=this.pos+O;for(;ra.to:r>=a.to;){if(i==this.ranges.length-1)return null;let s=this.ranges[++i];r+=s.from-a.to,a=s}return r}clipPos(O){if(O>=this.range.from&&OO)return Math.max(O,t.from);return this.end}peek(O){let t=this.chunkOff+O,a,i;if(t>=0&&t=this.chunk2Pos&&al.to&&(this.chunk2=this.chunk2.slice(0,l.to-a)),i=this.chunk2.charCodeAt(0)}}return a>=this.token.lookAhead&&(this.token.lookAhead=a+1),i}acceptToken(O,t=0){let a=t?this.resolveOffset(t,-1):this.pos;if(a==null||a=this.chunk2Pos&&this.posthis.range.to?O.slice(0,this.range.to-this.pos):O,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(O=1){for(this.chunkOff+=O;this.pos+O>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();O-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=O,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(O,t){if(t?(this.token=t,t.start=O,t.lookAhead=O+1,t.value=t.extended=-1):this.token=yO,this.pos!=O){if(this.pos=O,O==this.end)return this.setDone(),this;for(;O=this.range.to;)this.range=this.ranges[++this.rangeIndex];O>=this.chunkPos&&O=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(O-this.chunkPos,t-this.chunkPos);if(O>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(O-this.chunk2Pos,t-this.chunk2Pos);if(O>=this.range.from&&t<=this.range.to)return this.input.read(O,t);let a="";for(let i of this.ranges){if(i.from>=t)break;i.to>O&&(a+=this.input.read(Math.max(i.from,O),Math.min(i.to,t)))}return a}}class E{constructor(O,t){this.data=O,this.id=t}token(O,t){dt(this.data,O,t,this.id)}}E.prototype.contextual=E.prototype.fallback=E.prototype.extend=!1;class b{constructor(O,t={}){this.token=O,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function dt(e,O,t,a){let i=0,r=1<0){let p=e[d];if(l.allows(p)&&(O.token.value==-1||O.token.value==p||s.overrides(p,O.token.value))){O.acceptToken(p);break}}let c=O.next,h=0,o=e[i+2];if(O.next<0&&o>h&&e[Q+o*3-3]==65535&&e[Q+o*3-3]==65535){i=e[Q+o*3-1];continue O}for(;h>1,p=Q+d+(d<<1),$=e[p],T=e[p+1]||65536;if(c<$)o=d;else if(c>=T)h=d+1;else{i=e[p+2],O.advance();continue O}}break}}function G(e,O=Uint16Array){if(typeof e!="string")return e;let t=null;for(let a=0,i=0;a=92&&s--,s>=34&&s--;let Q=s-32;if(Q>=46&&(Q-=46,l=!0),r+=Q,l)break;r*=46}t?t[i++]=r:t=new O(r)}return t}const g=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG);let H=null;var _O;(function(e){e[e.Margin=25]="Margin"})(_O||(_O={}));function xO(e,O,t){let a=e.cursor(HO.IncludeAnonymous);for(a.moveTo(O);;)if(!(t<0?a.childBefore(O):a.childAfter(O)))for(;;){if((t<0?a.toO)&&!a.type.isError)return t<0?Math.max(0,Math.min(a.to-1,O-25)):Math.min(e.length,Math.max(a.from+1,O+25));if(t<0?a.prevSibling():a.nextSibling())break;if(!a.parent())return t<0?0:e.length}}class pt{constructor(O,t){this.fragments=O,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let O=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(O){for(this.safeFrom=O.openStart?xO(O.tree,O.from+O.offset,1)-O.offset:O.from,this.safeTo=O.openEnd?xO(O.tree,O.to+O.offset,-1)-O.offset:O.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(O.tree),this.start.push(-O.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(O){if(OO)return this.nextStart=s,null;if(r instanceof Y){if(s==O){if(s=Math.max(this.safeFrom,O)&&(this.trees.push(r),this.start.push(s),this.index.push(0))}else this.index[t]++,this.nextStart=s+r.length}}}class $t{constructor(O,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=O.tokenizers.map(a=>new A)}getActions(O){let t=0,a=null,{parser:i}=O.p,{tokenizers:r}=i,s=i.stateSlot(O.state,3),l=O.curContext?O.curContext.hash:0,Q=0;for(let c=0;co.end+25&&(Q=Math.max(o.lookAhead,Q)),o.value!=0)){let d=t;if(o.extended>-1&&(t=this.addActions(O,o.extended,o.end,t)),t=this.addActions(O,o.value,o.end,t),!h.extend&&(a=o,t>d))break}}for(;this.actions.length>t;)this.actions.pop();return Q&&O.setLookAhead(Q),!a&&O.pos==this.stream.end&&(a=new A,a.value=O.p.parser.eofTerm,a.start=a.end=O.pos,t=this.addActions(O,a.value,a.end,t)),this.mainToken=a,this.actions}getMainToken(O){if(this.mainToken)return this.mainToken;let t=new A,{pos:a,p:i}=O;return t.start=a,t.end=Math.min(a+1,i.stream.end),t.value=a==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(O,t,a){let i=this.stream.clipPos(a.pos);if(t.token(this.stream.reset(i,O),a),O.value>-1){let{parser:r}=a.p;for(let s=0;s=0&&a.p.parser.dialect.allows(l>>1)){(l&1)==0?O.value=l>>1:O.extended=l>>1;break}}}else O.value=0,O.end=this.stream.clipPos(i+1)}putAction(O,t,a,i){for(let r=0;rO.bufferLength*4?new pt(a,O.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let O=this.stacks,t=this.minStackPos,a=this.stacks=[],i,r;for(let s=0;st)a.push(l);else{if(this.advanceStack(l,a,O))continue;{i||(i=[],r=[]),i.push(l);let Q=this.tokens.getMainToken(l);r.push(Q.value,Q.end)}}break}}if(!a.length){let s=i&&Pt(i);if(s)return this.stackToTree(s);if(this.parser.strict)throw g&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&i){let s=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,r,a);if(s)return this.stackToTree(s.forceAll())}if(this.recovering){let s=this.recovering==1?1:this.recovering*3;if(a.length>s)for(a.sort((l,Q)=>Q.score-l.score);a.length>s;)a.pop();a.some(l=>l.reducePos>t)&&this.recovering--}else if(a.length>1){O:for(let s=0;s500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.buffer.length)>0)a.splice(Q--,1);else{a.splice(s--,1);continue O}}}}this.minStackPos=a[0].pos;for(let s=1;s ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return O.forceReduce()?O:null;if(this.fragments){let c=O.curContext&&O.curContext.tracker.strict,h=c?O.curContext.hash:0;for(let o=this.fragments.nodeAt(i);o;){let d=this.parser.nodeSet.types[o.type.id]==o.type?r.getGoto(O.state,o.type.id):-1;if(d>-1&&o.length&&(!c||(o.prop(QO.contextHash)||0)==h))return O.useNode(o,d),g&&console.log(s+this.stackID(O)+` (via reuse of ${r.getName(o.type.id)})`),!0;if(!(o instanceof Y)||o.children.length==0||o.positions[0]>0)break;let p=o.children[0];if(p instanceof Y&&o.positions[0]==0)o=p;else break}}let l=r.stateSlot(O.state,4);if(l>0)return O.reduce(l),g&&console.log(s+this.stackID(O)+` (via always-reduce ${r.getName(l&65535)})`),!0;if(O.stack.length>=15e3)for(;O.stack.length>9e3&&O.forceReduce(););let Q=this.tokens.getActions(O);for(let c=0;ci?t.push($):a.push($)}return!1}advanceFully(O,t){let a=O.pos;for(;;){if(!this.advanceStack(O,null,null))return!1;if(O.pos>a)return VO(O,t),!0}}runRecovery(O,t,a){let i=null,r=!1;for(let s=0;s ":"";if(l.deadEnd&&(r||(r=!0,l.restart(),g&&console.log(h+this.stackID(l)+" (restarted)"),this.advanceFully(l,a))))continue;let o=l.split(),d=h;for(let p=0;o.forceReduce()&&p<10&&(g&&console.log(d+this.stackID(o)+" (via force-reduce)"),!this.advanceFully(o,a));p++)g&&(d=this.stackID(o)+" -> ");for(let p of l.recoverByInsert(Q))g&&console.log(h+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,a);this.stream.end>l.pos?(c==l.pos&&(c++,Q=0),l.recoverByDelete(Q,c),g&&console.log(h+this.stackID(l)+` (via recover-delete ${this.parser.getName(Q)})`),VO(l,a)):(!i||i.scoree;class ee{constructor(O){this.start=O.start,this.shift=O.shift||OO,this.reduce=O.reduce||OO,this.reuse=O.reuse||OO,this.hash=O.hash||(()=>0),this.strict=O.strict!==!1}}class _ extends Ge{constructor(O){if(super(),this.wrappers=[],O.version!=14)throw new RangeError(`Parser version (${O.version}) doesn't match runtime version (${14})`);let t=O.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;lO.topRules[l][1]),i=[];for(let l=0;l=0)r(h,Q,l[c++]);else{let o=l[c+-h];for(let d=-h;d>0;d--)r(l[c++],Q,o);c++}}}this.nodeSet=new Ce(t.map((l,Q)=>Ye.define({name:Q>=this.minRepeatTerm?void 0:l,id:Q,props:i[Q],top:a.indexOf(Q)>-1,error:Q==0,skipped:O.skippedNodes&&O.skippedNodes.indexOf(Q)>-1}))),O.propSources&&(this.nodeSet=this.nodeSet.extend(...O.propSources)),this.strict=!1,this.bufferLength=ze;let s=G(O.tokenData);this.context=O.context,this.specializerSpecs=O.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;ltypeof l=="number"?new E(s,l):l),this.topRules=O.topRules,this.dialects=O.dialects||{},this.dynamicPrecedences=O.dynamicPrecedences||null,this.tokenPrecTable=O.tokenPrec,this.termNames=O.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(O,t,a){let i=new ft(this,O,t,a);for(let r of this.wrappers)i=r(i,O,t,a);return i}getGoto(O,t,a=!1){let i=this.goto;if(t>=i[0])return-1;for(let r=i[t+1];;){let s=i[r++],l=s&1,Q=i[r++];if(l&&a)return Q;for(let c=r+(s>>1);r0}validAction(O,t){if(t==this.stateSlot(O,4))return!0;for(let a=this.stateSlot(O,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=X(this.data,a+2);else return!1;if(t==X(this.data,a+1))return!0}}nextStates(O){let t=[];for(let a=this.stateSlot(O,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=X(this.data,a+2);else break;if((this.data[a+2]&1)==0){let i=this.data[a+1];t.some((r,s)=>s&1&&r==i)||t.push(this.data[a],i)}}return t}overrides(O,t){let a=kO(this.data,this.tokenPrecTable,t);return a<0||kO(this.data,this.tokenPrecTable,O){let i=O.tokenizers.find(r=>r.from==a);return i?i.to:a})),O.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((a,i)=>{let r=O.specializers.find(l=>l.from==a.external);if(!r)return a;let s=Object.assign(Object.assign({},a),{external:r.to});return t.specializers[i]=RO(s),s})),O.contextTracker&&(t.context=O.contextTracker),O.dialect&&(t.dialect=this.parseDialect(O.dialect)),O.strict!=null&&(t.strict=O.strict),O.wrap&&(t.wrappers=t.wrappers.concat(O.wrap)),O.bufferLength!=null&&(t.bufferLength=O.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(O){return this.termNames?this.termNames[O]:String(O<=this.maxNode&&this.nodeSet.types[O].name||O)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(O){let t=this.dynamicPrecedences;return t==null?0:t[O]||0}parseDialect(O){let t=Object.keys(this.dialects),a=t.map(()=>!1);if(O)for(let r of O.split(" ")){let s=t.indexOf(r);s>=0&&(a[s]=!0)}let i=null;for(let r=0;ra)&&t.p.parser.stateFlag(t.state,2)&&(!O||O.scoree.external(t,a)<<1|O}return e.get}const mt=54,gt=1,bt=55,Tt=2,Xt=56,Zt=3,J=4,te=5,ae=6,ie=7,re=8,qt=9,yt=10,_t=11,eO=57,xt=12,wO=58,Ut=18,Vt=20,se=21,kt=22,nO=24,le=25,Rt=27,wt=30,jt=33,vt=35,Wt=0,Gt={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},Ct={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},jO={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function Yt(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function ne(e){return e==9||e==10||e==13||e==32}let vO=null,WO=null,GO=0;function oO(e,O){let t=e.pos+O;if(GO==t&&WO==e)return vO;let a=e.peek(O);for(;ne(a);)a=e.peek(++O);let i="";for(;Yt(a);)i+=String.fromCharCode(a),a=e.peek(++O);return WO=e,GO=t,vO=i?i.toLowerCase():a==zt||a==At?void 0:null}const oe=60,Qe=62,ce=47,zt=63,At=33,Et=45;function CO(e,O){this.name=e,this.parent=O,this.hash=O?O.hash:0;for(let t=0;t-1?new CO(oO(a,1)||"",e):e},reduce(e,O){return O==Ut&&e?e.parent:e},reuse(e,O,t,a){let i=O.type.id;return i==J||i==vt?new CO(oO(a,1)||"",e):e},hash(e){return e?e.hash:0},strict:!1}),Nt=new b((e,O)=>{if(e.next!=oe){e.next<0&&O.context&&e.acceptToken(eO);return}e.advance();let t=e.next==ce;t&&e.advance();let a=oO(e,0);if(a===void 0)return;if(!a)return e.acceptToken(t?xt:J);let i=O.context?O.context.name:null;if(t){if(a==i)return e.acceptToken(qt);if(i&&Ct[i])return e.acceptToken(eO,-2);if(O.dialectEnabled(Wt))return e.acceptToken(yt);for(let r=O.context;r;r=r.parent)if(r.name==a)return;e.acceptToken(_t)}else{if(a=="script")return e.acceptToken(te);if(a=="style")return e.acceptToken(ae);if(a=="textarea")return e.acceptToken(ie);if(Gt.hasOwnProperty(a))return e.acceptToken(re);i&&jO[i]&&jO[i][a]?e.acceptToken(eO,-1):e.acceptToken(J)}},{contextual:!0}),Bt=new b(e=>{for(let O=0,t=0;;t++){if(e.next<0){t&&e.acceptToken(wO);break}if(e.next==Et)O++;else if(e.next==Qe&&O>=2){t>3&&e.acceptToken(wO,-2);break}else O=0;e.advance()}});function $O(e,O,t){let a=2+e.length;return new b(i=>{for(let r=0,s=0,l=0;;l++){if(i.next<0){l&&i.acceptToken(O);break}if(r==0&&i.next==oe||r==1&&i.next==ce||r>=2&&rs?i.acceptToken(O,-s):i.acceptToken(t,-(s-2));break}else if((i.next==10||i.next==13)&&l){i.acceptToken(O,1);break}else r=s=0;i.advance()}})}const Jt=$O("script",mt,gt),Lt=$O("style",bt,Tt),Mt=$O("textarea",Xt,Zt),Ft=cO({"Text RawText":n.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":n.angleBracket,TagName:n.tagName,"MismatchedCloseTag/TagName":[n.tagName,n.invalid],AttributeName:n.attributeName,"AttributeValue UnquotedAttributeValue":n.attributeValue,Is:n.definitionOperator,"EntityReference CharacterReference":n.character,Comment:n.blockComment,ProcessingInst:n.processingInstruction,DoctypeDecl:n.documentMeta}),Kt=_.deserialize({version:14,states:",xOVOxOOO!WQ!bO'#CoO!]Q!bO'#CyO!bQ!bO'#C|O!gQ!bO'#DPO!lQ!bO'#DRO!qOXO'#CnO!|OYO'#CnO#XO[O'#CnO$eOxO'#CnOOOW'#Cn'#CnO$lO!rO'#DTO$tQ!bO'#DVO$yQ!bO'#DWOOOW'#Dk'#DkOOOW'#DY'#DYQVOxOOO%OQ#tO,59ZO%WQ#tO,59eO%`Q#tO,59hO%hQ#tO,59kO%sQ#tO,59mOOOX'#D^'#D^O%{OXO'#CwO&WOXO,59YOOOY'#D_'#D_O&`OYO'#CzO&kOYO,59YOOO['#D`'#D`O&sO[O'#C}O'OO[O,59YOOOW'#Da'#DaO'WOxO,59YO'_Q!bO'#DQOOOW,59Y,59YOOO`'#Db'#DbO'dO!rO,59oOOOW,59o,59oO'lQ!bO,59qO'qQ!bO,59rOOOW-E7W-E7WO'vQ#tO'#CqOOQO'#DZ'#DZO(UQ#tO1G.uOOOX1G.u1G.uO(^Q#tO1G/POOOY1G/P1G/PO(fQ#tO1G/SOOO[1G/S1G/SO(nQ#tO1G/VOOOW1G/V1G/VOOOW1G/X1G/XO(yQ#tO1G/XOOOX-E7[-E7[O)RQ!bO'#CxOOOW1G.t1G.tOOOY-E7]-E7]O)WQ!bO'#C{OOO[-E7^-E7^O)]Q!bO'#DOOOOW-E7_-E7_O)bQ!bO,59lOOO`-E7`-E7`OOOW1G/Z1G/ZOOOW1G/]1G/]OOOW1G/^1G/^O)gQ&jO,59]OOQO-E7X-E7XOOOX7+$a7+$aOOOY7+$k7+$kOOO[7+$n7+$nOOOW7+$q7+$qOOOW7+$s7+$sO)rQ!bO,59dO)wQ!bO,59gO)|Q!bO,59jOOOW1G/W1G/WO*RO,UO'#CtO*dO7[O'#CtOOQO1G.w1G.wOOOW1G/O1G/OOOOW1G/R1G/ROOOW1G/U1G/UOOOO'#D['#D[O*uO,UO,59`OOQO,59`,59`OOOO'#D]'#D]O+WO7[O,59`OOOO-E7Y-E7YOOQO1G.z1G.zOOOO-E7Z-E7Z",stateData:"+u~O!^OS~OSSOTPOUQOVROWTOY]OZ[O[^O^^O_^O`^Oa^Ox^O{_O!dZO~OdaO~OdbO~OdcO~OddO~OdeO~O!WfOPkP!ZkP~O!XiOQnP!ZnP~O!YlORqP!ZqP~OSSOTPOUQOVROWTOXqOY]OZ[O[^O^^O_^O`^Oa^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OdvO~OdwO~OfyOj|O~OfyOj!OO~OfyOj!QO~OfyOj!SOv!TO~OfyOj!TO~O!WfOPkX!ZkX~OP!WO!Z!XO~O!XiOQnX!ZnX~OQ!ZO!Z!XO~O!YlORqX!ZqX~OR!]O!Z!XO~O!Z!XO~P#dOd!_O~O![sO!e!aO~Oj!bO~Oj!cO~Og!dOfeXjeXveX~OfyOj!fO~OfyOj!gO~OfyOj!hO~OfyOj!iOv!jO~OfyOj!jO~Od!kO~Od!lO~Od!mO~Oj!nO~Oi!qO!`!oO!b!pO~Oj!rO~Oj!sO~Oj!tO~O_!uO`!uOa!uO!`!wO!a!uO~O_!xO`!xOa!xO!b!wO!c!xO~O_!uO`!uOa!uO!`!{O!a!uO~O_!xO`!xOa!xO!b!{O!c!xO~Ov~vj`!dx{_a_~",goto:"%p!`PPPPPPPPPPPPPPPPPP!a!gP!mPP!yPP!|#P#S#Y#]#`#f#i#l#r#xP!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue EndTag ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag SelfClosingEndTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:It,nodeProps:[["closedBy",-10,1,2,3,5,6,7,8,9,10,11,"EndTag",4,"EndTag SelfClosingEndTag",-4,19,29,32,35,"CloseTag"],["group",-9,12,15,16,17,18,39,40,41,42,"Entity",14,"Entity TextContent",-3,27,30,33,"TextContent Entity"],["openedBy",26,"StartTag StartCloseTag",-4,28,31,34,36,"OpenTag",38,"StartTag"]],propSources:[Ft],skippedNodes:[0],repeatNodeCount:9,tokenData:"#(r!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs4ysv-_vw5iwxJ^x}-_}!OKP!O!P-_!P!Q!!O!Q![-_![!]!$c!]!^-_!^!_!(k!_!`#'S!`!a#'z!a!c-_!c!}!$c!}#R-_#R#S!$c#S#T3V#T#o!$c#o#s-_#s$f$q$f%W-_%W%o!$c%o%p-_%p&a!$c&a&b-_&b1p!$c1p4U-_4U4d!$c4d4e-_4e$IS!$c$IS$I`-_$I`$Ib!$c$Ib$Kh-_$Kh%#t!$c%#t&/x-_&/x&Et!$c&Et&FV-_&FV;'S!$c;'S;:j!(e;:j;=`4s<%l?&r-_?&r?Ah!$c?Ah?BY$q?BY?Mn!$c?MnO$q!Z$|c^PiW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX^P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV^P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT^POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W^P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYiWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`^P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljfS^PiW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ecfSiWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0uXfSqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0pS1eP;=`<%l0p[1kP;=`<%l/^!U1wbfS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!U3SP;=`<%l1n!V3bcfS^P!a`!cpOq&Xqr3Vrs&}sv3Vvw0pwx(tx!P3V!P!Q&X!Q!^3V!^!_1n!_!a&X!a#s3V#s$f&X$f;'S3V;'S;=`4m<%l?Ah3V?Ah?BY&X?BY?Mn3V?MnO&X!V4pP;=`<%l3V!_4vP;=`<%l-_!Z5SV!`h^P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_5rjfSiWa!ROX7dXZ8qZ[7d[^8q^p7dqr:crs8qst@Ttw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^/^!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!Z7ibiWOX7dXZ8qZ[7d[^8q^p7dqr7drs8qst+Ptw7dwx8qx!]7d!]!^9f!^!a8q!a#S7d#S#T8q#T;'S7d;'S;=`:]<%lO7d!R8tVOp8qqs8qt!]8q!]!^9Z!^;'S8q;'S;=`9`<%lO8q!R9`O_!R!R9cP;=`<%l8q!Z9mYiW_!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z:`P;=`<%l7d!_:jjfSiWOX7dXZ8qZ[7d[^8q^p7dqr:crs8qst/^tw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^<[!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!_{let Q=s.type.id;if(Q==Rt)return tO(s,l,t);if(Q==wt)return tO(s,l,a);if(Q==jt)return tO(s,l,i);if(r&&Q==se){let c=s.node,h;if(h=c.firstChild){let o=r[l.read(h.from,h.to)];if(o)for(let d of o){if(d.tagName){if(!tagName){let $=c.parent.getChild(Vt);tagName=$?l.read($.from,$.to):" "}if(attrTagName!=tagName)continue}let p=c.lastChild;if(p.type.id==nO)return{parser:d.parser,overlay:[{from:p.from+1,to:p.to-1}]};if(p.type.id==le)return{parser:d.parser,overlay:[{from:p.from,to:p.to}]}}}}return null})}const Oa=95,YO=1,ea=96,ta=97,zO=2,ue=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],aa=58,ia=40,de=95,ra=91,D=45,sa=46,la=35,na=37;function L(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function oa(e){return e>=48&&e<=57}const Qa=new b((e,O)=>{for(let t=!1,a=0,i=0;;i++){let{next:r}=e;if(L(r)||r==D||r==de||t&&oa(r))!t&&(r!=D||i>0)&&(t=!0),a===i&&r==D&&a++,e.advance();else{t&&e.acceptToken(r==ia?ea:a==2&&O.canShift(zO)?zO:ta);break}}}),ca=new b(e=>{if(ue.includes(e.peek(-1))){let{next:O}=e;(L(O)||O==de||O==la||O==sa||O==ra||O==aa||O==D)&&e.acceptToken(Oa)}}),ha=new b(e=>{if(!ue.includes(e.peek(-1))){let{next:O}=e;if(O==na&&(e.advance(),e.acceptToken(YO)),L(O)){do e.advance();while(L(e.next));e.acceptToken(YO)}}}),ua=cO({"AtKeyword import charset namespace keyframes media supports":n.definitionKeyword,"from to selector":n.keyword,NamespaceName:n.namespace,KeyframeName:n.labelName,TagName:n.tagName,ClassName:n.className,PseudoClassName:n.constant(n.className),IdName:n.labelName,"FeatureName PropertyName":n.propertyName,AttributeName:n.attributeName,NumberLiteral:n.number,KeywordQuery:n.keyword,UnaryQueryOp:n.operatorKeyword,"CallTag ValueName":n.atom,VariableName:n.variableName,Callee:n.operatorKeyword,Unit:n.unit,"UniversalSelector NestingSelector":n.definitionOperator,MatchOp:n.compareOperator,"ChildOp SiblingOp, LogicOp":n.logicOperator,BinOp:n.arithmeticOperator,Important:n.modifier,Comment:n.blockComment,ParenthesizedContent:n.special(n.name),ColorLiteral:n.color,StringLiteral:n.string,":":n.punctuation,"PseudoOp #":n.derefOperator,"; ,":n.separator,"( )":n.paren,"[ ]":n.squareBracket,"{ }":n.brace}),da={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},pa={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},$a={__proto__:null,not:128,only:128,from:158,to:160},fa=_.deserialize({version:14,states:"8SQYQ[OOO!ZQ[OOOOQP'#Cd'#CdOOQP'#Cc'#CcO!cQ[O'#CfO#VQXO'#CaO#^Q[O'#ChO#iQ[O'#DPO#nQ[O'#DTOOQP'#Ee'#EeO#sQdO'#DeO$_Q[O'#DrO#sQdO'#DtO$pQ[O'#DvO${Q[O'#DyO%QQ[O'#EPO%`Q[O'#EROOQS'#Ed'#EdOOQS'#ET'#ETQYQ[OOOOQO'#Db'#DbO%gQWO'#DaQ%lQWOOOOQP'#Cg'#CgOOQP,59Q,59QO!cQ[O,59QO%qQ[O'#EWO&]QWO,58{O&eQ[O,59SO#iQ[O,59kO#nQ[O,59oO%qQ[O,59sO%qQ[O,59uO%qQ[O,59vO'tQ[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO'{QWO,59SO(QQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO(VQ`O,59oOOQS'#Cp'#CpO#sQdO'#CqO(_QvO'#CsO)lQtO,5:POOQO'#Cx'#CxO(QQWO'#CwO*QQWO'#CyOOQS'#Eh'#EhOOQO'#Dh'#DhO*VQ[O'#DoO*eQWO'#EkO%QQ[O'#DmO*sQWO'#DpOOQO'#El'#ElO&`QWO,5:^O*xQpO,5:`OOQS'#Dx'#DxO+QQWO,5:bO+VQ[O,5:bOOQO'#D{'#D{O+_QWO,5:eO+dQWO,5:kO+lQWO,5:mOOQS-E8R-E8RO#sQdO,59{O+tQ[O'#E]Q%lQWOOOOQP1G.l1G.lO,nQXO,5:rOOQO-E8U-E8UOOQS1G.g1G.gOOQP1G.n1G.nO'{QWO1G.nO(QQWO1G.nOOQP1G/V1G/VO,{Q`O1G/ZO-fQXO1G/_O-|QXO1G/aO.dQXO1G/bO.zQXO'#CdOOQS,59z,59zO/oQWO,59zO/wQ[O,59zO0OQ[O'#DOO0VQdO'#CoOOQP1G/Z1G/ZO#sQdO1G/ZO0^QpO,59]OOQS,59_,59_O#sQdO,59aO0fQWO1G/kOOQS,59c,59cO0kQ!bO,59eO0sQWO'#DhO1OQWO,5:TO1TQWO,5:ZO%QQ[O,5:VO%QQ[O'#EZO1]QWO,5;VO1hQWO,5:XO%qQ[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O1yQWO1G/|O2OQdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO2^QtO1G/gOOQO,5:w,5:wOOQO-E8Z-E8ZOOQP7+$Y7+$YOOQP7+$u7+$uO#sQdO7+$uO2tQ[O'#EYO3OQWO1G/fOOQS1G/f1G/fO3OQWO1G/fO3WQXO'#EjO3_QWO,59jO3dQtO'#EUO4XQdO'#EgO4cQWO,59ZO4hQpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO4pQWO1G/PO#sQdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO4uQWO,5:uOOQO-E8X-E8XO5TQXO1G/vOOQS7+%h7+%hO5[QYO'#CsO&`QWO'#E[O5dQdO,5:hOOQS,5:h,5:hO5rQtO'#EXO#sQdO'#EXO6pQdO7+%ROOQO7+%R7+%RO7TQpO<T![;'S%^;'S;=`%o<%lO%^^;TUoWOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^^;nYoW#]UOy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^^[[oW#]UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^_?VSpVOy%^z;'S%^;'S;=`%o<%lO%^^?hWjSOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^_@VU#YPOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjSOy%^z{@}{;'S%^;'S;=`%o<%lO%^~ASUoWOy@}yzAfz{Bm{;'S@};'S;=`Co<%lO@}~AiTOzAfz{Ax{;'SAf;'S;=`Bg<%lOAf~A{VOzAfz{Ax{!PAf!P!QBb!Q;'SAf;'S;=`Bg<%lOAf~BgOR~~BjP;=`<%lAf~BrWoWOy@}yzAfz{Bm{!P@}!P!QC[!Q;'S@};'S;=`Co<%lO@}~CcSoWR~Oy%^z;'S%^;'S;=`%o<%lO%^~CrP;=`<%l@}^Cz[#]UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^XDuU]POy%^z![%^![!]EX!];'S%^;'S;=`%o<%lO%^XE`S^PoWOy%^z;'S%^;'S;=`%o<%lO%^_EqS!WVOy%^z;'S%^;'S;=`%o<%lO%^YFSSzQOy%^z;'S%^;'S;=`%o<%lO%^XFeU|POy%^z!`%^!`!aFw!a;'S%^;'S;=`%o<%lO%^XGOS|PoWOy%^z;'S%^;'S;=`%o<%lO%^XG_WOy%^z!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHO[!YPoWOy%^z}%^}!OGw!O!Q%^!Q![Gw![!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHySxPOy%^z;'S%^;'S;=`%o<%lO%^^I[SvUOy%^z;'S%^;'S;=`%o<%lO%^XIkUOy%^z#b%^#b#cI}#c;'S%^;'S;=`%o<%lO%^XJSUoWOy%^z#W%^#W#XJf#X;'S%^;'S;=`%o<%lO%^XJmS!`PoWOy%^z;'S%^;'S;=`%o<%lO%^XJ|UOy%^z#f%^#f#gJf#g;'S%^;'S;=`%o<%lO%^XKeS!RPOy%^z;'S%^;'S;=`%o<%lO%^_KvS!QVOy%^z;'S%^;'S;=`%o<%lO%^ZLXU!PPOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^WLnP;=`<%l$}",tokenizers:[ca,ha,Qa,0,1,2,3],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:96,get:e=>da[e]||-1},{term:56,get:e=>pa[e]||-1},{term:97,get:e=>$a[e]||-1}],tokenPrec:1120});let aO=null;function iO(){if(!aO&&typeof document=="object"&&document.body){let e=[];for(let O in document.body.style)/[A-Z]|^-|^(item|length)$/.test(O)||e.push(O);aO=e.sort().map(O=>({type:"property",label:O}))}return aO||[]}const AO=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(e=>({type:"class",label:e})),EO=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(e=>({type:"keyword",label:e})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(e=>({type:"constant",label:e}))),Sa=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(e=>({type:"type",label:e})),q=/^[\w-]*/,Pa=e=>{let{state:O,pos:t}=e,a=v(O).resolveInner(t,-1);if(a.name=="PropertyName")return{from:a.from,options:iO(),validFor:q};if(a.name=="ValueName")return{from:a.from,options:EO,validFor:q};if(a.name=="PseudoClassName")return{from:a.from,options:AO,validFor:q};if(a.name=="TagName"){for(let{parent:s}=a;s;s=s.parent)if(s.name=="Block")return{from:a.from,options:iO(),validFor:q};return{from:a.from,options:Sa,validFor:q}}if(!e.explicit)return null;let i=a.resolve(t),r=i.childBefore(t);return r&&r.name==":"&&i.name=="PseudoClassSelector"?{from:t,options:AO,validFor:q}:r&&r.name==":"&&i.name=="Declaration"||i.name=="ArgList"?{from:t,options:EO,validFor:q}:i.name=="Block"?{from:t,options:iO(),validFor:q}:null},M=hO.define({name:"css",parser:fa.configure({props:[uO.add({Declaration:z()}),dO.add({Block:Oe})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function ma(){return new pO(M,M.data.of({autocomplete:Pa}))}const ga=1,DO=294,IO=2,ba=3,C=295,Ta=4,Xa=296,NO=297,Za=299,qa=300,ya=5,_a=6,xa=1,Ua=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],pe=125,Va=123,ka=59,BO=47,Ra=42,wa=43,ja=45,va=36,Wa=96,Ga=92,Ca=new ee({start:!1,shift(e,O){return O==ya||O==_a||O==Za?e:O==qa},strict:!1}),Ya=new b((e,O)=>{let{next:t}=e;(t==pe||t==-1||O.context)&&O.canShift(NO)&&e.acceptToken(NO)},{contextual:!0,fallback:!0}),za=new b((e,O)=>{let{next:t}=e,a;Ua.indexOf(t)>-1||t==BO&&((a=e.peek(1))==BO||a==Ra)||t!=pe&&t!=ka&&t!=-1&&!O.context&&O.canShift(DO)&&e.acceptToken(DO)},{contextual:!0}),Aa=new b((e,O)=>{let{next:t}=e;if((t==wa||t==ja)&&(e.advance(),t==e.next)){e.advance();let a=!O.context&&O.canShift(IO);e.acceptToken(a?IO:ba)}},{contextual:!0}),Ea=new b(e=>{for(let O=!1,t=0;;t++){let{next:a}=e;if(a<0){t&&e.acceptToken(C);break}else if(a==Wa){t?e.acceptToken(C):e.acceptToken(Xa,1);break}else if(a==Va&&O){t==1?e.acceptToken(Ta,1):e.acceptToken(C,-1);break}else if(a==10&&t){e.advance(),e.acceptToken(C);break}else a==Ga&&e.advance();O=a==va,e.advance()}}),Da=new b((e,O)=>{if(!(e.next!=101||!O.dialectEnabled(xa))){e.advance();for(let t=0;t<6;t++){if(e.next!="xtends".charCodeAt(t))return;e.advance()}e.next>=57&&e.next<=65||e.next>=48&&e.next<=90||e.next==95||e.next>=97&&e.next<=122||e.next>160||e.acceptToken(ga)}}),Ia=cO({"get set async static":n.modifier,"for while do if else switch try catch finally return throw break continue default case":n.controlKeyword,"in of await yield void typeof delete instanceof":n.operatorKeyword,"let var const function class extends":n.definitionKeyword,"import export from":n.moduleKeyword,"with debugger as new":n.keyword,TemplateString:n.special(n.string),super:n.atom,BooleanLiteral:n.bool,this:n.self,null:n.null,Star:n.modifier,VariableName:n.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":n.function(n.variableName),VariableDefinition:n.definition(n.variableName),Label:n.labelName,PropertyName:n.propertyName,PrivatePropertyName:n.special(n.propertyName),"CallExpression/MemberExpression/PropertyName":n.function(n.propertyName),"FunctionDeclaration/VariableDefinition":n.function(n.definition(n.variableName)),"ClassDeclaration/VariableDefinition":n.definition(n.className),PropertyDefinition:n.definition(n.propertyName),PrivatePropertyDefinition:n.definition(n.special(n.propertyName)),UpdateOp:n.updateOperator,LineComment:n.lineComment,BlockComment:n.blockComment,Number:n.number,String:n.string,ArithOp:n.arithmeticOperator,LogicOp:n.logicOperator,BitOp:n.bitwiseOperator,CompareOp:n.compareOperator,RegExp:n.regexp,Equals:n.definitionOperator,Arrow:n.function(n.punctuation),": Spread":n.punctuation,"( )":n.paren,"[ ]":n.squareBracket,"{ }":n.brace,"InterpolationStart InterpolationEnd":n.special(n.brace),".":n.derefOperator,", ;":n.separator,"@":n.meta,TypeName:n.typeName,TypeDefinition:n.definition(n.typeName),"type enum interface implements namespace module declare":n.definitionKeyword,"abstract global Privacy readonly override":n.modifier,"is keyof unique infer":n.operatorKeyword,JSXAttributeValue:n.attributeValue,JSXText:n.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":n.angleBracket,"JSXIdentifier JSXNameSpacedName":n.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":n.attributeName,"JSXBuiltin/JSXIdentifier":n.standard(n.tagName)}),Na={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:50,true:58,false:58,null:68,void:72,typeof:76,super:92,new:126,await:143,yield:145,delete:146,class:156,extends:158,public:213,private:213,protected:213,readonly:215,instanceof:234,satisfies:237,in:238,const:240,import:272,keyof:327,unique:331,infer:337,is:373,abstract:393,implements:395,type:397,let:400,var:402,interface:409,enum:413,namespace:419,module:421,declare:425,global:429,for:450,of:459,while:462,with:466,do:470,if:474,else:476,switch:480,case:486,try:492,catch:496,finally:500,return:504,throw:508,break:512,continue:516,debugger:520},Ba={__proto__:null,async:113,get:115,set:117,public:175,private:175,protected:175,static:177,abstract:179,override:181,readonly:187,accessor:189,new:377},Ja={__proto__:null,"<":133},La=_.deserialize({version:14,states:"$CWO`QdOOO$}QdOOO)WQ(C|O'#ChO)_OWO'#DYO+jQdO'#D_O+zQdO'#DjO$}QdO'#DtO.OQdO'#DzOOQ(C['#ET'#ETO.fQ`O'#EQOOQO'#IW'#IWO.nQ`O'#GgOOQO'#Ee'#EeO.yQ`O'#EdO/OQ`O'#EdO1QQ(C|O'#JQO3nQ(C|O'#JRO4_Q`O'#FSO4dQ!bO'#FkOOQ(C['#F['#F[O4oO#tO'#F[O4}Q&jO'#FrO6bQ`O'#FqOOQ(C['#JR'#JROOQ(CW'#JQ'#JQOOQS'#Jk'#JkO6gQ`O'#H{O6lQ(ChO'#H|OOQS'#Iu'#IuOOQS'#IO'#IOQ`QdOOO$}QdO'#DlO6tQ`O'#GgO6yQ&jO'#CmO7XQ`O'#EcO7dQ`O'#EnO7iQ&jO'#FZO8TQ`O'#GgO8YQ`O'#GkO8eQ`O'#GkO8sQ`O'#GnO8sQ`O'#GoO8sQ`O'#GqO6tQ`O'#GtO9dQ`O'#GwO:uQ`O'#CdO;VQ`O'#HUO;_Q`O'#H[O;_Q`O'#H^O`QdO'#H`O;_Q`O'#HbO;_Q`O'#HeO;dQ`O'#HkO;iQ(CjO'#HqO$}QdO'#HsO;tQ(CjO'#HuOWQpO'#FZO$}QdO'#DZOOOW'#IQ'#IQO>`OWO,59tOOQ(C[,59t,59tO>kQdO'#IRO?OQ`O'#JSOAQQtO'#JSO)jQdO'#JSOAXQ`O,59yOAoQ`O'#EeOA|Q`O'#J`OBXQ`O'#J_OBXQ`O'#J_OBaQ`O,5;ROBfQ`O'#J^OOQ(C[,5:U,5:UOBmQdO,5:UODnQ(C|O,5:`OE_Q`O,5:fOEdQ`O'#J[OF^Q(ChO'#J]O8YQ`O'#J[OFeQ`O'#J[OFmQ`O,5;QOFrQ`O'#J[OOQ(C]'#Ch'#ChO$}QdO'#DzOGfQpO,5:lOOQO'#JX'#JXOOQO-EgOOQS'#Ix'#IxOOQS,5>h,5>hOOQS-E;|-E;|O!.xQ(C|O,5:WOOQ(CX'#Cp'#CpO!/lQ&kO,5=ROOQO'#Cf'#CfO!/}Q(ChO'#IyO6bQ`O'#IyO;dQ`O,59XO!0`Q!bO,59XO!0hQ&jO,59XO6yQ&jO,59XO!0sQ`O,5;OO!0{Q`O'#HTO!1ZQ`O'#JoO$}QdO,5;sO!1cQ,UO,5;uO!1hQ`O,5=nO!1mQ`O,5=nO!1rQ`O,5=nO6lQ(ChO,5=nO!2QQ`O'#EgO!2wQ,UO'#EhOOQ(CW'#J^'#J^O!3OQ(ChO'#JlO6lQ(ChO,5=VO8sQ`O,5=]OOQP'#Cs'#CsO!3ZQ!bO,5=YO!3cQ!cO,5=ZO!3nQ`O,5=]O!3sQpO,5=`O;dQ`O'#GyO6tQ`O'#G{O!3{Q`O'#G{O6yQ&jO'#HOO!4QQ`O'#HOOOQS,5=c,5=cO!4VQ`O'#HPO!4_Q`O'#CmO!4dQ`O,59OO!4nQ`O,59OO!6sQdO,59OOOQS,59O,59OO!7QQ(ChO,59OO$}QdO,59OO!7]QdO'#HWOOQS'#HX'#HXOOQS'#HY'#HYO`QdO,5=pO!7mQ`O,5=pO`QdO,5=vO`QdO,5=xO!7rQ`O,5=zO`QdO,5=|O!7wQ`O,5>PO!7|QdO,5>VOOQS,5>],5>]O$}QdO,5>]O6lQ(ChO,5>_OOQS,5>a,5>aO!aOOQS,5>c,5>cO!cOOQS,5>e,5>eO!mO)jQdO,5>mOOQO,5>s,5>sO!CUQdO'#IROOQO-ExOOQ(CW-E<[-E<[O#5]Q(C}O1G0tOOQ(C[1G0t1G0tO#7hQ(C|O1G1YO#8[Q!bO,5;}O#8dQ!bO,5OQ,UO'#GXOOQ(C],5=Q,5=QOKhQ&jO,5?hOKhQ&jO,5?hO#>TQ`O'#IcO#>`Q`O,5?gO#>hQ`O,59^O#?XQ&kO,59mOOQ(C],59m,59mO#?zQ&kO,5<`O#@mQ&kO,5mO$)XQ`O1G5YO$)aQ`O1G5eO$)iQtO1G5fO8YQ`O,5>sO$)sQ`O1G5bO$)sQ`O1G5bO8YQ`O1G5bO$){Q(C|O1G5cO$}QdO1G5cO$*]Q(ChO1G5cO$*nQ`O,5>uO8YQ`O,5>uOOQO,5>u,5>uO$+SQ`O,5>uOOQO-Ez,5>zO$8rQ`O,5>zOOQ(C]1G2Z1G2ZP$8wQ`O'#I`POQ(C]-E<^-E<^O$9hQ&kO1G2gO$:ZQ&kO1G2iO$:eQqO1G2kOOQ(C]1G2S1G2SO$:lQ`O'#I_O$:zQ`O,5@SO$:zQ`O,5@SO$;SQ`O,5@SO$;_Q`O,5@SOOQO1G2U1G2UO$;mQ&kO1G2TOKhQ&jO1G2TO$;}QMhO'#IaO$<_Q`O,5@TOJRQ&jO,5@TO$|,5>|OOQO-E<`-E<`OOQ(C]1G2]1G2]O!)dQ,UO,5},5>}OOQO-EkQqO'#JjO$(iQ`O7+(XO$>uQ`O7+(XO$>}QqO7+(XO$?XQ(CyO'#ChO$?lQ(CyO,5ROOQS,5>R,5>RO$}QdO'#HhO$EoQ`O'#HjOOQS,5>X,5>XO8YQ`O,5>XOOQS,5>Z,5>ZOOQS7+)]7+)]OOQS7+)c7+)cOOQS7+)g7+)gOOQS7+)i7+)iO$EtQ!bO1G5[O$FYQ!LUO1G0oO$FdQ`O1G0oOOQO1G/k1G/kO$FoQ!LUO1G/kO$FyQ`O,5?pO;dQ`O1G/kOMqQdO'#DeOOQO,5>n,5>nOOQO-Et,5>tOOQO-EoOOQO-EpO$}QdO,5>pOOQO-ExOOOO7+'_7+'_OOOW1G/S1G/SOOQ(C]1G4f1G4fOKhQ&jO7+(VO%7}Q`O,5>yO6tQ`O,5>yOOQO-E<]-E<]O%8]Q`O1G5nO%8]Q`O1G5nO%8eQ`O1G5nO%8pQ&kO7+'oO%9QQqO,5>{O%9[Q`O,5>{OJRQ&jO,5>{OOQO-E<_-E<_O%9aQqO1G5oO%9kQ`O1G5oOOQ(CW1G2_1G2_O$VQdO'#JUO%>^Q,UO'#E[O%>tQ(ChO'#E[O$$sQ(DjO'#E[O$%hQ,UO'#G}OOQO'#Ih'#IhO%?YQ,UO,5=hOOQS,5=h,5=hO%?aQ,UO'#E[O%?rQ,UO'#E[O%@YQ,UO'#E[O%@vQ,UO'#G}O%AXQ`O7+(mO%A^Q`O7+(mO%AfQqO7+(mOOQS7+(m7+(mOJRQ&jO7+(mO$}QdO7+(mOJRQ&jO7+(mO%ApQaO7+(mOOQS7+(p7+(pO6lQ(ChO7+(pO#=PQ`O7+(pO6bQ`O7+(pO!0`Q!bO7+(pO%BOQ`O,5?TOOQO-ESOOQS,5>U,5>UO%CYQ`O1G3sO8YQ`O7+&ZOMqQdO7+&ZOOQ(CW1G5[1G5[OOQO7+%V7+%VO%C_Q!LUO1G5fO;dQ`O7+%VO;dQ`O1G0VOOQO1G0b1G0bO$}QdO1G0bO%CiQ(ChO1G0bO%CtQ(ChO1G0bO!0`Q!bO1G0VO$%_Q,UO1G0VO%DSQ,UO1G0VO%DaQ(DjO1G0bO%D{Q,UO1G0VO$%_Q,UO1G0bO%E]Q,UO1G0bO%EvQ(ChO1G0bOOQO1G0V1G0VO%F[Q(C|O1G0bOOQ(C[<VQdO,5iQ!LVO7+'qO&@_Q&kOG26wOOQO<wAN>wO;dQ`OAN>wO$}QdOAN?SO!0`Q!bOAN>wO&ATQ(ChOAN?SO$%_Q,UOAN>wO&A`Q(ChOAN?SOOQS!$(!P!$(!PO$(iQ`O!$(!PO&AnQ(C}OG26wOOQ(CWG26lG26lOOQO<SO!T+rO!U'wX~O!U+tO~O!_+kO#T+jO!T#]X!U#]X~O!T+uO!U(TX~O!U+wO~O]&VOl&VO{+nO'k$vO's)TO~O!Z+xO![+xO~P!AQO_+}O!U,PO!Y,QO!Z+|O![+|O!u;WO!y,UO!z,SO!{,TO!|,RO#P,VO#Q,VO'|+zO~P!AQOP,[O!V&cO!q,ZO~Oo,aO~O!Q&ua!T&ua~P!-RO!S,eO!Q&uX!T&uX~P$}O!T&rO!Q'va~O!Q'va~P?WO!T&yO!Q(Ra~O{%WO!S,iO!V%XO'j$tO!Q&{X!T&{X~O!T'WO!e(Oa~O{%WO!V%XO#_,lO'j$tO~O#T,nO!T(Pa!e(Pa_(Pa'e(Pa~O!_#UO~P!DvO{%WO!S,qO!V%XO!uXO#^,sO#_,qO'j$tO!T&}X!e&}X~Oy,wO!f#XO~OP,{O!V&cO!q,zO%],yO'n$bO~O_#Wi!T#Wi'e#Wi'a#Wi!Q#Wi!e#Wio#Wi!V#Wi%]#Wi!_#Wi~P!-ROP=mOx(mO{(nO(U(pO(V(rO~O#`#Sa!T#Sa!e#Sa#T#Sa!V#Sa_#Sa'e#Sa!Q#Sa~P!G[O!d#WOP'qXx'qX{'qX(U'qX(V'qXQ'qXZ'qXk'qXy'qX!T'qX!c'qX!f'qX!l'qX#c'qX#d'qX#e'qX#f'qX#g'qX#h'qX#i'qX#j'qX#k'qX#m'qX#o'qX#q'qX#r'qX'r'qX'}'qX~O#`'qX_'qX'e'qX!e'qX!Q'qX'a'qX!V'qX#T'qXo'qX%]'qX!_'qX~P!HZO!T-UOe'yX~P!&VOe-WO~O!T-XO!e'zX~P!-RO!e-[O~O!Q-^O~OQ#lOx#YOy#ZO{#[O!d#WO!f#XO!l#lO'rROZ#bi_#bik#bi!T#bi!c#bi#d#bi#e#bi#f#bi#g#bi#h#bi#i#bi#j#bi#k#bi#m#bi#o#bi#q#bi#r#bi'e#bi'}#bi(U#bi(V#bi'a#bi!Q#bi!e#bio#bi!V#bi%]#bi!_#bi~O#c#bi~P!KrO#c#_O~P!KrOQ#lOx#YOy#ZO{#[O!d#WO!f#XO!l#lO#c#_O#d#`O#e#`O#f#`O'rROZ#bi_#bi!T#bi!c#bi#g#bi#h#bi#i#bi#j#bi#k#bi#m#bi#o#bi#q#bi#r#bi'e#bi'}#bi(U#bi(V#bi'a#bi!Q#bi!e#bio#bi!V#bi%]#bi!_#bi~Ok#bi~P!NdOk#aO~P!NdOQ#lOk#aOx#YOy#ZO{#[O!d#WO!f#XO!l#lO#c#_O#d#`O#e#`O#f#`O#g#bO'rRO_#bi!T#bi#m#bi#o#bi#q#bi#r#bi'e#bi'}#bi(U#bi(V#bi'a#bi!Q#bi!e#bio#bi!V#bi%]#bi!_#bi~OZ#bi!c#bi#h#bi#i#bi#j#bi#k#bi~P##UOZ#sO!c#cO#h#cO#i#cO#j#rO#k#cO~P##UOQ#lOZ#sOk#aOx#YOy#ZO{#[O!c#cO!d#WO!f#XO!l#lO#c#_O#d#`O#e#`O#f#`O#g#bO#h#cO#i#cO#j#rO#k#cO#m#dO'rRO_#bi!T#bi#o#bi#q#bi#r#bi'e#bi'}#bi(V#bi'a#bi!Q#bi!e#bio#bi!V#bi%]#bi!_#bi~O(U#bi~P#&VO(U#]O~P#&VOQ#lOZ#sOk#aOx#YOy#ZO{#[O!c#cO!d#WO!f#XO!l#lO#c#_O#d#`O#e#`O#f#`O#g#bO#h#cO#i#cO#j#rO#k#cO#m#dO#o#fO'rRO(U#]O_#bi!T#bi#q#bi#r#bi'e#bi'}#bi'a#bi!Q#bi!e#bio#bi!V#bi%]#bi!_#bi~O(V#bi~P#(wO(V#^O~P#(wOQ#lOZ#sOk#aOx#YOy#ZO{#[O!c#cO!d#WO!f#XO!l#lO#c#_O#d#`O#e#`O#f#`O#g#bO#h#cO#i#cO#j#rO#k#cO#m#dO#o#fO#q#hO'rRO(U#]O(V#^O~O_#bi!T#bi#r#bi'e#bi'}#bi'a#bi!Q#bi!e#bio#bi!V#bi%]#bi!_#bi~P#+iOQ[XZ[Xk[Xx[Xy[X{[X!c[X!d[X!f[X!l[X#T[X#`dX#c[X#d[X#e[X#f[X#g[X#h[X#i[X#j[X#k[X#m[X#o[X#q[X#r[X#w[X'r[X'}[X(U[X(V[X!T[X!U[X~O#u[X~P#.SOQ#lOZ;mOk;aOx#YOy#ZO{#[O!c;cO!d#WO!f#XO!l#lO#c;_O#d;`O#e;`O#f;`O#g;bO#h;cO#i;cO#j;lO#k;cO#m;dO#o;fO#q;hO#r;iO'rRO'}#jO(U#]O(V#^O~O#u-`O~P#0aOQ'uXZ'uXk'uXx'uXy'uX{'uX!c'uX!d'uX!f'uX!l'uX#c'uX#d'uX#e'uX#f'uX#g'uX#h'uX#i'uX#j'uX#m'uX#o'uX#q'uX#r'uX'r'uX'}'uX(U'uX(V'uX!T'uX~O#T;nO#w;nO#k'uX#u'uX!U'uX~P#2_O_'Qa!T'Qa'e'Qa'a'Qa!e'Qao'Qa!Q'Qa!V'Qa%]'Qa!_'Qa~P!-ROQ#biZ#bi_#bik#biy#bi!T#bi!c#bi!d#bi!f#bi!l#bi#c#bi#d#bi#e#bi#f#bi#g#bi#h#bi#i#bi#j#bi#k#bi#m#bi#o#bi#q#bi#r#bi'e#bi'r#bi'}#bi'a#bi!Q#bi!e#bio#bi!V#bi%]#bi!_#bi~P!G[O_#vi!T#vi'e#vi'a#vi!Q#vi!e#vio#vi!V#vi%]#vi!_#vi~P!-RO$S-cO$U-cO~O$S-dO$U-dO~O!_(VO#T-eO!V$YX$P$YX$S$YX$U$YX$]$YX~O!S-fO~O!V(YO$P-hO$S(XO$U(XO$]-iO~O!T;jO!U'tX~P#0aO!U-jO~O$]-lO~OS(hO'c(iO'd-oO~O]-rOl-rO!Q-sO~O!TdX!_dX!edX!e$oX'}dX~P!$|O!e-yO~P!G[O!T-zO!_#UO'}'SO!e([X~O!e.PO~O!S(yO'j$tO!e([P~O#`.RO~O!Q$oX!T$oX!_$vX~P!$|O!T.SO!Q(]X~P!G[O!_.UO~O!Q.WO~Ok.[O!_#UO!f$mO'n$bO'}'SO~O'j.^O~O!_)yO~O_$pO!T.bO'e$pO~O!U.dO~P!(wO!Z.eO![.eO'k$vO's)TO~O{.gO's)TO~O#P.hO~O'j%^Oe'VX!T'VX~O!T)dOe'oa~Oe.mO~Ox.nOy.nO{.oOPua(Uua(Vua!Tua#Tua~Oeua#uua~P#>mOx(mO{(nOP$ha(U$ha(V$ha!T$ha#T$ha~Oe$ha#u$ha~P#?cOx(mO{(nOP$ja(U$ja(V$ja!T$ja#T$ja~Oe$ja#u$ja~P#@UO].pO~O#`.qO~Oe$xa!T$xa#T$xa#u$xa~P!&VO#`.tO~OP,{O!V&cO!q,zO%],yO~O]$SOk$TOl$SOm$SOr$dOt$eOv;oO{$[O!V$]O!a=`O!f$XO#_;xO#|$iO$i;rO$k;uO$n$jO'n$bO'r$UO~Oi.{O'j.zO~P#AvO!_)yO!V'ma_'ma!T'ma'e'ma~O#`/RO~OZ[X!TdX!UdX~O!T/SO!U(dX~O!U/UO~OZ/VO~O]/XO'j*RO~O!V%OO'j$tO^'_X!T'_X~O!T*WO^(ca~O!e/[O~P!-RO]/^O~OZ/_O~O^/`O~O!T*dO_(`a'e(`a~O#T/fO~OP/iO!V$]O~O's'lO!U(aP~OP/sO!V/oO!q/rO%]/qO'n$bO~OZ/}O!T/{O!U(bX~O!U0OO~O^0QO_$pO'e$pO~O]0RO~O]0SO'j!|O~O#k0TO%}0UO~P1nO#T#tO#k0TO%}0UO~O_0VO~P$}O_0XO~O&W0]OQ&UiR&UiX&Ui]&Ui_&Uib&Uic&Uii&Uik&Uil&Uim&Uir&Uit&Uiv&Ui{&Ui!O&Ui!P&Ui!V&Ui!a&Ui!f&Ui!i&Ui!j&Ui!k&Ui!l&Ui!m&Ui!p&Ui!u&Ui#l&Ui#|&Ui$Q&Ui%[&Ui%^&Ui%`&Ui%a&Ui%d&Ui%f&Ui%i&Ui%j&Ui%l&Ui%y&Ui&P&Ui&R&Ui&T&Ui&V&Ui&Y&Ui&`&Ui&f&Ui&h&Ui&j&Ui&l&Ui&n&Ui'a&Ui'j&Ui'r&Ui'|&Ui(Z&Ui!U&Ui`&Ui&]&Ui~O`0cO!U0aO&]0bO~P`O!VTO!f0eO~O&d+aOQ&_iR&_iX&_i]&_i_&_ib&_ic&_ii&_ik&_il&_im&_ir&_it&_iv&_i{&_i!O&_i!P&_i!V&_i!a&_i!f&_i!i&_i!j&_i!k&_i!l&_i!m&_i!p&_i!u&_i#l&_i#|&_i$Q&_i%[&_i%^&_i%`&_i%a&_i%d&_i%f&_i%i&_i%j&_i%l&_i%y&_i&P&_i&R&_i&T&_i&V&_i&Y&_i&`&_i&f&_i&h&_i&j&_i&l&_i&n&_i'a&_i'j&_i'r&_i'|&_i(Z&_i!U&_i&W&_i`&_i&]&_i~O!Q0kO~O!T!Xa!U!Xa~P#0aO!S0rO!Y&bO!Z&ZO![&ZO!T&vX!U&vX~P!AQO!T+rO!U'wa~O!T&|X!U&|X~P!2fO!T+uO!U(Ta~O!Y0{O!Z0zO![0zO!u;WO!y1OO!z0}O!{0}O!|0|O#P1PO#Q1PO'|+zO~P!AQO_$pO!_#UO!f$mO!l1UO#T1SO'e$pO'n$bO'}'SO~O]&VOl&VO{+nO's)TO'|+zO~O_+}O!U1XO!Y,QO!Z+|O![+|O!u;WO!y,UO!z,SO!{,TO!|,RO#P,VO#Q,VO'|+zO~P!AQO!Z0zO![0zO'|+zO~P!AQO!Y0{O!Z0zO![0zO'|+zO~P!AQO!VTO!Y0{O!Z0zO![0zO!|0|O#P1PO#Q1PO'|+zO~P!AQO!Y0{O!Z0zO![0zO!z0}O!{0}O!|0|O#P1PO#Q1PO'|+zO~P!AQO!V&cO~O!V&cO~P!G[O!T#pOo$ga~O!Q&ui!T&ui~P!-RO!T&rO!Q'vi~O!T&yO!Q(Ri~O!Q(Si!T(Si~P!-RO!T'WO!e(Oi~O!T(Pi!e(Pi_(Pi'e(Pi~P!-RO#T1eO!T(Pi!e(Pi_(Pi'e(Pi~O{%WO!V%XO!uXO#^1hO#_1gO'j$tO~O{%WO!V%XO#_1gO'j$tO~OP1pO!V&cO!q1oO%]1nO~OP1pO!V&cO!q1oO%]1nO'n$bO~O#`uaQuaZua_uakua!cua!dua!fua!lua#cua#dua#eua#fua#gua#hua#iua#jua#kua#mua#oua#qua#rua'eua'rua'}ua!eua!Qua'aua!Vuaoua%]ua!_ua~P#>mO#`$haQ$haZ$ha_$hak$hay$ha!c$ha!d$ha!f$ha!l$ha#c$ha#d$ha#e$ha#f$ha#g$ha#h$ha#i$ha#j$ha#k$ha#m$ha#o$ha#q$ha#r$ha'e$ha'r$ha'}$ha!e$ha!Q$ha'a$ha!V$hao$ha%]$ha!_$ha~P#?cO#`$jaQ$jaZ$ja_$jak$jay$ja!c$ja!d$ja!f$ja!l$ja#c$ja#d$ja#e$ja#f$ja#g$ja#h$ja#i$ja#j$ja#k$ja#m$ja#o$ja#q$ja#r$ja'e$ja'r$ja'}$ja!e$ja!Q$ja'a$ja!V$jao$ja%]$ja!_$ja~P#@UO#`$xaQ$xaZ$xa_$xak$xay$xa!T$xa!c$xa!d$xa!f$xa!l$xa#c$xa#d$xa#e$xa#f$xa#g$xa#h$xa#i$xa#j$xa#k$xa#m$xa#o$xa#q$xa#r$xa'e$xa'r$xa'}$xa!e$xa!Q$xa'a$xa!V$xa#T$xao$xa%]$xa!_$xa~P!G[O_#Wq!T#Wq'e#Wq'a#Wq!Q#Wq!e#Wqo#Wq!V#Wq%]#Wq!_#Wq~P!-ROe&wX!T&wX~PKhO!T-UOe'ya~O!S1xO!T&xX!e&xX~P$}O!T-XO!e'za~O!T-XO!e'za~P!-RO!Q1{O~O#u!ha!U!ha~PBtO#u!`a!T!`a!U!`a~P#0aO!V2^O$QbO$Z2_O~O!U2cO~Oo2dO~P!G[O_$dq!T$dq'e$dq'a$dq!Q$dq!e$dqo$dq!V$dq%]$dq!_$dq~P!-RO!Q2eO~O]-rOl-rO~Ox(mO{(nO(V(rOP%Ti(U%Ti!T%Ti#T%Ti~Oe%Ti#u%Ti~P$9POx(mO{(nOP%Vi(U%Vi(V%Vi!T%Vi#T%Vi~Oe%Vi#u%Vi~P$9rO'}#jO~P!G[O!S2hO'j$tO!T'RX!e'RX~O!T-zO!e([a~O!T-zO!_#UO!e([a~O!T-zO!_#UO'}'SO!e([a~Oe$qi!T$qi#T$qi#u$qi~P!&VO!S2pO'j)OO!Q'TX!T'TX~P!&tO!T.SO!Q(]a~O!T.SO!Q(]a~P!G[O!_#UO~O!_#UO#k2xO~Ok2{O!_#UO'}'SO~Oe'pi!T'pi~P!&VO#T3OOe'pi!T'pi~P!&VO!e3RO~O_$eq!T$eq'e$eq'a$eq!Q$eq!e$eqo$eq!V$eq%]$eq!_$eq~P!-RO!T3VO!V(^X~P!G[O!V&cO%]1nO~O!V&cO%]1nO~P!G[O!V$oX%Q[X_$oX!T$oX'e$oX~P!$|O%Q3XOPhXxhX{hX!VhX(UhX(VhX_hX!ThX'ehX~O%Q3XO~O]3_O%^3`O'j*RO!T'^X!U'^X~O!T/SO!U(da~OZ3dO~O^3eO~O]3hO~O!Q3iO~O_$pO'e$pO~P!G[O!V$]O~P!G[O!T3nO#T3pO!U(aX~O!U3qO~O]&VOl&VO{3sO!Y4OO!Z3wO![3wO!u;WO!y3}O!z3|O!{3|O#P3{O#Q,VO'k$vO's)TO'|+zO~O!U3zO~P$BTOP4VO!V/oO!q4UO%]4TO~OP4VO!V/oO!q4UO%]4TO'n$bO~O'j!|O!T']X!U']X~O!T/{O!U(ba~O]4aO's4`O~O]4bO~O^4dO~O!e4gO~P$}O_4iO~O_4iO~P$}O#k4kO%}4lO~PExO`0cO!U4pO&]0bO~P`O!_4rO~O!_4tO!T'xi!U'xi!_'xi!f'xi'n'xi~O!T#]i!U#]i~P#0aO#T4uO!T#]i!U#]i~O!T!Xi!U!Xi~P#0aO!Q4vO~O]!tal!ta!Y!ta!Z!ta![!ta!y!ta!z!ta!{!ta!|!ta#P!ta#Q!ta'k!ta's!ta'|!ta~PGQO_$pO!_#UO!f$mO!l5OO#T4|O'e$pO'n$bO'}'SO~O!Z5QO![5QO'|+zO~P!AQO!Y5RO!Z5QO![5QO'|+zO~P!AQO!Y5RO!Z5QO![5QO!|5TO#P5UO#Q5UO'|+zO~P!AQO!Y5RO!Z5QO![5QO!z5VO!{5VO!|5TO#P5UO#Q5UO'|+zO~P!AQO_$pO#T4|O'e$pO~O_$pO!_#UO#T4|O'e$pO~O_$pO!_#UO!l5OO#T4|O'e$pO'}'SO~O!T'WO!e(Oq~O!T(Pq!e(Pq_(Pq'e(Pq~P!-RO{%WO!V%XO#_5aO'j$tO~O!V&cO%]5cO~O!V&cO%]5cO~P!G[OP5hO!V&cO!q5gO%]5cO~O#`%TiQ%TiZ%Ti_%Tik%Tiy%Ti!c%Ti!d%Ti!f%Ti!l%Ti#c%Ti#d%Ti#e%Ti#f%Ti#g%Ti#h%Ti#i%Ti#j%Ti#k%Ti#m%Ti#o%Ti#q%Ti#r%Ti'e%Ti'r%Ti'}%Ti!e%Ti!Q%Ti'a%Ti!V%Tio%Ti%]%Ti!_%Ti~P$9PO#`%ViQ%ViZ%Vi_%Vik%Viy%Vi!c%Vi!d%Vi!f%Vi!l%Vi#c%Vi#d%Vi#e%Vi#f%Vi#g%Vi#h%Vi#i%Vi#j%Vi#k%Vi#m%Vi#o%Vi#q%Vi#r%Vi'e%Vi'r%Vi'}%Vi!e%Vi!Q%Vi'a%Vi!V%Vio%Vi%]%Vi!_%Vi~P$9rO#`$qiQ$qiZ$qi_$qik$qiy$qi!T$qi!c$qi!d$qi!f$qi!l$qi#c$qi#d$qi#e$qi#f$qi#g$qi#h$qi#i$qi#j$qi#k$qi#m$qi#o$qi#q$qi#r$qi'e$qi'r$qi'}$qi!e$qi!Q$qi'a$qi!V$qi#T$qio$qi%]$qi!_$qi~P!G[Oe&wa!T&wa~P!&VO!T&xa!e&xa~P!-RO!T-XO!e'zi~O#u#Wi!T#Wi!U#Wi~P#0aOQ#lOx#YOy#ZO{#[O!d#WO!f#XO!l#lO'rROZ#bik#bi!c#bi#d#bi#e#bi#f#bi#g#bi#h#bi#i#bi#j#bi#k#bi#m#bi#o#bi#q#bi#r#bi#u#bi'}#bi(U#bi(V#bi!T#bi!U#bi~O#c#bi~P%&nO#c;_O~P%&nOQ#lOx#YOy#ZO{#[O!d#WO!f#XO!l#lO#c;_O#d;`O#e;`O#f;`O'rROZ#bi!c#bi#g#bi#h#bi#i#bi#j#bi#k#bi#m#bi#o#bi#q#bi#r#bi#u#bi'}#bi(U#bi(V#bi!T#bi!U#bi~Ok#bi~P%(yOk;aO~P%(yOQ#lOk;aOx#YOy#ZO{#[O!d#WO!f#XO!l#lO#c;_O#d;`O#e;`O#f;`O#g;bO'rRO#m#bi#o#bi#q#bi#r#bi#u#bi'}#bi(U#bi(V#bi!T#bi!U#bi~OZ#bi!c#bi#h#bi#i#bi#j#bi#k#bi~P%+UOZ;mO!c;cO#h;cO#i;cO#j;lO#k;cO~P%+UOQ#lOZ;mOk;aOx#YOy#ZO{#[O!c;cO!d#WO!f#XO!l#lO#c;_O#d;`O#e;`O#f;`O#g;bO#h;cO#i;cO#j;lO#k;cO#m;dO'rRO#o#bi#q#bi#r#bi#u#bi'}#bi(V#bi!T#bi!U#bi~O(U#bi~P%-pO(U#]O~P%-pOQ#lOZ;mOk;aOx#YOy#ZO{#[O!c;cO!d#WO!f#XO!l#lO#c;_O#d;`O#e;`O#f;`O#g;bO#h;cO#i;cO#j;lO#k;cO#m;dO#o;fO'rRO(U#]O#q#bi#r#bi#u#bi'}#bi!T#bi!U#bi~O(V#bi~P%/{O(V#^O~P%/{OQ#lOZ;mOk;aOx#YOy#ZO{#[O!c;cO!d#WO!f#XO!l#lO#c;_O#d;`O#e;`O#f;`O#g;bO#h;cO#i;cO#j;lO#k;cO#m;dO#o;fO#q;hO'rRO(U#]O(V#^O~O#r#bi#u#bi'}#bi!T#bi!U#bi~P%2WO_#sy!T#sy'e#sy'a#sy!Q#sy!e#syo#sy!V#sy%]#sy!_#sy~P!-ROP=oOx(mO{(nO(U(pO(V(rO~OQ#biZ#bik#biy#bi!c#bi!d#bi!f#bi!l#bi#c#bi#d#bi#e#bi#f#bi#g#bi#h#bi#i#bi#j#bi#k#bi#m#bi#o#bi#q#bi#r#bi#u#bi'r#bi'}#bi!T#bi!U#bi~P%5OO#u'qX!U'qX~P!HZO#u#vi!T#vi!U#vi~P#0aO!U5tO~O!T'Qa!U'Qa~P#0aO!_#UO'}'SO!T'Ra!e'Ra~O!T-zO!e([i~O!T-zO!_#UO!e([i~Oe$qq!T$qq#T$qq#u$qq~P!&VO!Q'Ta!T'Ta~P!G[O!_5{O~O!T.SO!Q(]i~P!G[O!T.SO!Q(]i~O!Q6PO~O!_#UO#k6UO~Ok6VO!_#UO'}'SO~O!Q6XO~Oe$sq!T$sq#T$sq#u$sq~P!&VO_$ey!T$ey'e$ey'a$ey!Q$ey!e$eyo$ey!V$ey%]$ey!_$ey~P!-RO!T3VO!V(^a~O_#Wy!T#Wy'e#Wy'a#Wy!Q#Wy!e#Wyo#Wy!V#Wy%]#Wy!_#Wy~P!-ROZ6^O~O]6`O'j*RO~O!T/SO!U(di~O]6cO~O^6dO~O!_4tO~O's'lO!T'YX!U'YX~O!T3nO!U(aa~O!f$mO'n$bO_'xX!_'xX!l'xX#T'xX'e'xX'}'xX~O'j6mO~P,RO!u;WO!y6oO!z6nO!{6nO#P1PO#Q1PO~P$%_O_$pO!_#UO!l1UO#T1SO'e$pO'}'SO~O!U6rO~P$BTO]&VOl&VO{6sO's)TO'|+zO~O!Y6wO!Z6vO![6vO#P1PO#Q1PO'|+zO~P!AQO!Y6wO!Z6vO![6vO!z6xO!{6xO#P1PO#Q1PO'|+zO~P!AQO!Z6vO![6vO'k$vO's)TO'|+zO~O!V/oO~O!V/oO%]6zO~O!V/oO%]6zO~P!G[OP7PO!V/oO!q7OO%]6zO~OZ7UO!T']a!U']a~O!T/{O!U(bi~O]7XO~O!e7YO~O!e7ZO~O!e7[O~O!e7[O~P$}O_7^O~O!_7aO~O!e7bO~O!T(Si!U(Si~P#0aO_$pO#T7iO'e$pO~O_$pO!_#UO#T7iO'e$pO~O!Z7mO![7mO'|+zO~P!AQO_$pO!_#UO!f$mO!l7nO#T7iO'e$pO'n$bO'}'SO~O!Y7oO!Z7mO![7mO'|+zO~P!AQO!Y7oO!Z7mO![7mO!|7rO#P7sO#Q7sO'|+zO~P!AQO_$pO!_#UO!l7nO#T7iO'e$pO'}'SO~O_$pO'e$pO~P!-RO!T'WO!e(Oy~O!T(Py!e(Py_(Py'e(Py~P!-RO!V&cO%]7xO~O!V&cO%]7xO~P!G[O#`$qqQ$qqZ$qq_$qqk$qqy$qq!T$qq!c$qq!d$qq!f$qq!l$qq#c$qq#d$qq#e$qq#f$qq#g$qq#h$qq#i$qq#j$qq#k$qq#m$qq#o$qq#q$qq#r$qq'e$qq'r$qq'}$qq!e$qq!Q$qq'a$qq!V$qq#T$qqo$qq%]$qq!_$qq~P!G[O#`$sqQ$sqZ$sq_$sqk$sqy$sq!T$sq!c$sq!d$sq!f$sq!l$sq#c$sq#d$sq#e$sq#f$sq#g$sq#h$sq#i$sq#j$sq#k$sq#m$sq#o$sq#q$sq#r$sq'e$sq'r$sq'}$sq!e$sq!Q$sq'a$sq!V$sq#T$sqo$sq%]$sq!_$sq~P!G[O!T&xi!e&xi~P!-RO#u#Wq!T#Wq!U#Wq~P#0aOx.nOy.nO{.oOPua(Uua(Vua!Uua~OQuaZuakua!cua!dua!fua!lua#cua#dua#eua#fua#gua#hua#iua#jua#kua#mua#oua#qua#rua#uua'rua'}ua!Tua~P%LmOx(mO{(nOP$ha(U$ha(V$ha!U$ha~OQ$haZ$hak$hay$ha!c$ha!d$ha!f$ha!l$ha#c$ha#d$ha#e$ha#f$ha#g$ha#h$ha#i$ha#j$ha#k$ha#m$ha#o$ha#q$ha#r$ha#u$ha'r$ha'}$ha!T$ha~P%NtOx(mO{(nOP$ja(U$ja(V$ja!U$ja~OQ$jaZ$jak$jay$ja!c$ja!d$ja!f$ja!l$ja#c$ja#d$ja#e$ja#f$ja#g$ja#h$ja#i$ja#j$ja#k$ja#m$ja#o$ja#q$ja#r$ja#u$ja'r$ja'}$ja!T$ja~P&!{OQ$xaZ$xak$xay$xa!c$xa!d$xa!f$xa!l$xa#c$xa#d$xa#e$xa#f$xa#g$xa#h$xa#i$xa#j$xa#k$xa#m$xa#o$xa#q$xa#r$xa#u$xa'r$xa'}$xa!T$xa!U$xa~P%5OO#u$dq!T$dq!U$dq~P#0aO#u$eq!T$eq!U$eq~P#0aO!U8RO~O#u8SO~P!&VO!_#UO!T'Ri!e'Ri~O!_#UO'}'SO!T'Ri!e'Ri~O!T-zO!e([q~O!Q'Ti!T'Ti~P!G[O!T.SO!Q(]q~O!Q8YO~P!G[O!Q8YO~Oe'py!T'py~P!&VO!T'Wa!V'Wa~P!G[O!V%Pq_%Pq!T%Pq'e%Pq~P!G[OZ8_O~O!T/SO!U(dq~O]8bO~O#T8cO!T'Ya!U'Ya~O!T3nO!U(ai~P#0aOQ[XZ[Xk[Xx[Xy[X{[X!Q[X!T[X!c[X!d[X!f[X!l[X#T[X#`dX#c[X#d[X#e[X#f[X#g[X#h[X#i[X#j[X#k[X#m[X#o[X#q[X#r[X#w[X'r[X'}[X(U[X(V[X~O!_$}X#k$}X~P&*pO#P5UO#Q5UO~P$%_O!z8gO!{8gO#P5UO#Q5UO~P$%_O!Z8jO![8jO'k$vO's)TO'|+zO~O!Y8mO!Z8jO![8jO#P5UO#Q5UO'|+zO~P!AQO!V/oO%]8pO~O!V/oO%]8pO~P!G[O]8wO's8vO~O!T/{O!U(bq~O!e8yO~O!e8yO~P$}O!e8{O~O!e8|O~O#T9OO!T#]y!U#]y~O!T#]y!U#]y~P#0aO_$pO#T9RO'e$pO~O_$pO!_#UO#T9RO'e$pO~O!Z9WO![9WO'|+zO~P!AQO_$pO!_#UO!l9XO#T9RO'e$pO'}'SO~O!f$mO'n$bO~P&0|O!Y9YO!Z9WO![9WO'|+zO~P!AQO!V&cO%]9^O~O!V&cO%]9^O~P!G[O#u#sy!T#sy!U#sy~P#0aOQ$qiZ$qik$qiy$qi!c$qi!d$qi!f$qi!l$qi#c$qi#d$qi#e$qi#f$qi#g$qi#h$qi#i$qi#j$qi#k$qi#m$qi#o$qi#q$qi#r$qi#u$qi'r$qi'}$qi!T$qi!U$qi~P%5OOx(mO{(nO(V(rOP%Ti(U%Ti!U%Ti~OQ%TiZ%Tik%Tiy%Ti!c%Ti!d%Ti!f%Ti!l%Ti#c%Ti#d%Ti#e%Ti#f%Ti#g%Ti#h%Ti#i%Ti#j%Ti#k%Ti#m%Ti#o%Ti#q%Ti#r%Ti#u%Ti'r%Ti'}%Ti!T%Ti~P&4cOx(mO{(nOP%Vi(U%Vi(V%Vi!U%Vi~OQ%ViZ%Vik%Viy%Vi!c%Vi!d%Vi!f%Vi!l%Vi#c%Vi#d%Vi#e%Vi#f%Vi#g%Vi#h%Vi#i%Vi#j%Vi#k%Vi#m%Vi#o%Vi#q%Vi#r%Vi#u%Vi'r%Vi'}%Vi!T%Vi~P&6jO#u$ey!T$ey!U$ey~P#0aO#u#Wy!T#Wy!U#Wy~P#0aO!_#UO!T'Rq!e'Rq~O!T-zO!e([y~O!Q'Tq!T'Tq~P!G[O!Q9dO~P!G[O!T/SO!U(dy~O!T3nO!U(aq~O#P7sO#Q7sO~P$%_O!Z9nO![9nO'k$vO's)TO'|+zO~O!V/oO%]9qO~O!V/oO%]9qO~P!G[O!e9tO~O_$pO#T9zO'e$pO~O_$pO!_#UO#T9zO'e$pO~O!Z9}O![9}O'|+zO~P!AQO_$pO!_#UO!l:OO#T9zO'e$pO'}'SO~OQ$qqZ$qqk$qqy$qq!c$qq!d$qq!f$qq!l$qq#c$qq#d$qq#e$qq#f$qq#g$qq#h$qq#i$qq#j$qq#k$qq#m$qq#o$qq#q$qq#r$qq#u$qq'r$qq'}$qq!T$qq!U$qq~P%5OOQ$sqZ$sqk$sqy$sq!c$sq!d$sq!f$sq!l$sq#c$sq#d$sq#e$sq#f$sq#g$sq#h$sq#i$sq#j$sq#k$sq#m$sq#o$sq#q$sq#r$sq#u$sq'r$sq'}$sq!T$sq!U$sq~P%5OOe%X!Z!T%X!Z#T%X!Z#u%X!Z~P!&VO!T'Yq!U'Yq~P#0aO!T#]!Z!U#]!Z~P#0aO_$pO#T:aO'e$pO~O_$pO!_#UO#T:aO'e$pO~O#`%X!ZQ%X!ZZ%X!Z_%X!Zk%X!Zy%X!Z!T%X!Z!c%X!Z!d%X!Z!f%X!Z!l%X!Z#c%X!Z#d%X!Z#e%X!Z#f%X!Z#g%X!Z#h%X!Z#i%X!Z#j%X!Z#k%X!Z#m%X!Z#o%X!Z#q%X!Z#r%X!Z'e%X!Z'r%X!Z'}%X!Z!e%X!Z!Q%X!Z'a%X!Z!V%X!Z#T%X!Zo%X!Z%]%X!Z!_%X!Z~P!G[O_$pO#T:oO'e$pO~OP=nOx(mO{(nO(U(pO(V(rO~O]#Sal#Sa!U#Sa!Y#Sa!Z#Sa![#Sa!u#Sa!y#Sa!z#Sa!{#Sa#P#Sa#Q#Sa'k#Sa's#Sa'|#Sa~P&D[OQ%X!ZZ%X!Zk%X!Zy%X!Z!c%X!Z!d%X!Z!f%X!Z!l%X!Z#c%X!Z#d%X!Z#e%X!Z#f%X!Z#g%X!Z#h%X!Z#i%X!Z#j%X!Z#k%X!Z#m%X!Z#o%X!Z#q%X!Z#r%X!Z#u%X!Z'r%X!Z'}%X!Z!T%X!Z!U%X!Z~P%5OO]ualua!Yua!Zua![ua!uua!yua!zua!{ua#Pua#Qua'kua'sua'|ua~P%LmO]$hal$ha!Y$ha!Z$ha![$ha!u$ha!y$ha!z$ha!{$ha#P$ha#Q$ha'k$ha's$ha'|$ha~P%NtO]$jal$ja!Y$ja!Z$ja![$ja!u$ja!y$ja!z$ja!{$ja#P$ja#Q$ja'k$ja's$ja'|$ja~P&!{O]$xal$xa!U$xa!Y$xa!Z$xa![$xa!u$xa!y$xa!z$xa!{$xa#P$xa#Q$xa'k$xa's$xa'|$xa~P&D[O]%Til%Ti!Y%Ti!Z%Ti![%Ti!u%Ti!y%Ti!z%Ti!{%Ti#P%Ti#Q%Ti'k%Ti's%Ti'|%Ti~P&4cO]%Vil%Vi!Y%Vi!Z%Vi![%Vi!u%Vi!y%Vi!z%Vi!{%Vi#P%Vi#Q%Vi'k%Vi's%Vi'|%Vi~P&6jO]$qil$qi!U$qi!Y$qi!Z$qi![$qi!u$qi!y$qi!z$qi!{$qi#P$qi#Q$qi'k$qi's$qi'|$qi~P&D[O]$qql$qq!U$qq!Y$qq!Z$qq![$qq!u$qq!y$qq!z$qq!{$qq#P$qq#Q$qq'k$qq's$qq'|$qq~P&D[O]$sql$sq!U$sq!Y$sq!Z$sq![$sq!u$sq!y$sq!z$sq!{$sq#P$sq#Q$sq'k$sq's$sq'|$sq~P&D[O]%X!Zl%X!Z!U%X!Z!Y%X!Z!Z%X!Z![%X!Z!u%X!Z!y%X!Z!z%X!Z!{%X!Z#P%X!Z#Q%X!Z'k%X!Z's%X!Z'|%X!Z~P&D[Oo'tX~P/WO!QdX!TdX#TdX~P&*pOQ[XZ[Xk[Xx[Xy[X{[X!T[X!TdX!c[X!d[X!f[X!l[X#T[X#TdX#`dX#c[X#d[X#e[X#f[X#g[X#h[X#i[X#j[X#k[X#m[X#o[X#q[X#r[X#w[X'r[X'}[X(U[X(V[X~O!_dX!e[X!edX'}dX~P'$ZOQ;VOR;VO]gOb=ZOc!`OigOk;VOlgOmgOrgOt;VOv;VO{SO!OgO!PgO!VTO!a;YO!fVO!i;VO!j;VO!k;VO!l;VO!m;VO!p!_O#|!bO$QbO'j'|O'rRO'|WO(Z=XO~O]$SOi$cOk$TOl$SOm$SOr$dOt$eOv;pO{$[O!V$]O!a=aO!f$XO#_;yO#|$iO$i;sO$k;vO$n$jO'j'dO'n$bO'r$UO~O!T;jO!U$ga~O]$SOi$cOk$TOl$SOm$SOr$dOt$eOv;qO{$[O!V$]O!a=bO!f$XO#_;zO#|$iO$i;tO$k;wO$n$jO'j'dO'n$bO'r$UO~O#l(TO~P'*^O!U[X!UdX~P'$ZO!_;^O~O#`;]O~O!_#UO#`;]O~O#T;nO~O#k;cO~O#T;{O!T(SX!U(SX~O#T;nO!T(QX!U(QX~O#`;|O~Oe TypeParamList TypeDefinition ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression await yield delete LogicOp BitOp ParenthesizedExpression ClassExpression class extends ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression",maxTerm:345,context:Ca,nodeProps:[["closedBy",4,"InterpolationEnd",43,"]",53,"}",68,")",140,"JSXSelfCloseEndTag JSXEndTag",156,"JSXEndTag"],["group",-26,8,15,17,60,195,199,202,203,205,208,211,222,224,230,232,234,236,239,245,251,253,255,257,259,261,262,"Statement",-30,12,13,25,28,29,34,44,46,47,49,54,62,70,76,77,99,100,109,110,127,130,132,133,134,135,137,138,158,159,161,"Expression",-23,24,26,30,33,35,37,162,164,166,167,169,170,171,173,174,175,177,178,179,189,191,193,194,"Type",-3,81,92,98,"ClassItem"],["openedBy",31,"InterpolationStart",48,"[",52,"{",67,"(",139,"JSXStartTag",151,"JSXStartTag JSXStartCloseTag"]],propSources:[Ia],skippedNodes:[0,5,6],repeatNodeCount:29,tokenData:"#2k~R!bOX%ZXY%uYZ'kZ[%u[]%Z]^'k^p%Zpq%uqr(Rrs)mst7]tu9guvlxyJcyzJyz{Ka{|Lm|}MW}!OLm!O!PMn!P!Q!$v!Q!R!Er!R![!G_![!]!Nc!]!^!N{!^!_# c!_!`#!`!`!a##d!a!b#%s!b!c#'h!c!}9g!}#O#(O#O#P%Z#P#Q#(f#Q#R#(|#R#S9g#S#T#)g#T#o#)}#o#p#,w#p#q#,|#q#r#-j#r#s#.S#s$f%Z$f$g%u$g#BY9g#BY#BZ#.j#BZ$IS9g$IS$I_#.j$I_$I|9g$I|$I}#1X$I}$JO#1X$JO$JT9g$JT$JU#.j$JU$KV9g$KV$KW#.j$KW&FU9g&FU&FV#.j&FV;'S9g;'S;=`Rw!^%Z!_!`YU$`W#q&lO!^%Z!_!`s]$`W]&ZOY>lYZ?lZw>lwx,jx!^>l!^!_@|!_#O>l#O#PE_#P#o>l#o#p@|#p;'S>l;'S;=`J]<%lO>l,^?qX$`WOw?lwx+_x!^?l!^!_@^!_#o?l#o#p@^#p;'S?l;'S;=`@v<%lO?l,U@aTOw@^wx,Xx;'S@^;'S;=`@p<%lO@^,U@sP;=`<%l@^,^@yP;=`<%l?l1aARX]&ZOY@|YZ@^Zw@|wx-tx#O@|#O#PAn#P;'S@|;'S;=`EX<%lO@|1aAqUOw@|wxBTx;'S@|;'S;=`Dg;=`<%lBt<%lO@|1aB[W$Z,U]&ZOYBtZwBtwx/px#OBt#O#PCc#P;'SBt;'S;=`Da<%lOBt&ZByW]&ZOYBtZwBtwx/px#OBt#O#PCc#P;'SBt;'S;=`Da<%lOBt&ZCfRO;'SBt;'S;=`Co;=`OBt&ZCtX]&ZOYBtZwBtwx/px#OBt#O#PCc#P;'SBt;'S;=`Da;=`<%lBt<%lOBt&ZDdP;=`<%lBt1aDlX]&ZOYBtZwBtwx/px#OBt#O#PCc#P;'SBt;'S;=`Da;=`<%l@|<%lOBt1aE[P;=`<%l@|1iEdY$`WOw>lwxFSx!^>l!^!_@|!_#o>l#o#p@|#p;'S>l;'S;=`Ik;=`<%lBt<%lO>l1iF]]$Z,U$`W]&ZOYGUYZ%ZZwGUwx4hx!^GU!^!_Bt!_#OGU#O#PHU#P#oGU#o#pBt#p;'SGU;'S;=`Ie<%lOGU&cG]]$`W]&ZOYGUYZ%ZZwGUwx4hx!^GU!^!_Bt!_#OGU#O#PHU#P#oGU#o#pBt#p;'SGU;'S;=`Ie<%lOGU&cHZW$`WO!^GU!^!_Bt!_#oGU#o#pBt#p;'SGU;'S;=`Hs;=`<%lBt<%lOGU&cHxX]&ZOYBtZwBtwx/px#OBt#O#PCc#P;'SBt;'S;=`Da;=`<%lGU<%lOBt&cIhP;=`<%lGU1iIpX]&ZOYBtZwBtwx/px#OBt#O#PCc#P;'SBt;'S;=`Da;=`<%l>l<%lOBt1iJ`P;=`<%l>l,TJjT!f+{$`WO!^%Z!_#o%Z#p;'S%Z;'S;=`%o<%lO%Z$PKQT!e#w$`WO!^%Z!_#o%Z#p;'S%Z;'S;=`%o<%lO%Z)ZKjW$`W'k#e#f&lOz%Zz{LS{!^%Z!_!`q#P#Q!-n#Q#o!;l#o#p!6|#p;'S!;l;'S;=`!?i<%lO!;l7Z!q#P#Q!-n#Q#o!;l#o#p!6|#p;'S!;l;'S;=`!?i<%lO!;l7Z!={[$`WU7ROY!+TYZ%ZZ!^!+T!^!_!)o!_#O!+T#O#P!,O#P#Q!&V#Q#o!+T#o#p!)o#p;'S!+T;'S;=`!,p<%lO!+T7Z!>vZ$`WOY!;lYZ!.wZz!;lz{!Na[e]||-1},{term:311,get:e=>Ba[e]||-1},{term:65,get:e=>Ja[e]||-1}],tokenPrec:13429}),Ma=[m("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),m("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),m("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),m("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),m("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),m(`try { - \${} -} catch (\${error}) { - \${} -}`,{label:"try",detail:"/ catch block",type:"keyword"}),m("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),m(`if (\${}) { - \${} -} else { - \${} -}`,{label:"if",detail:"/ else block",type:"keyword"}),m(`class \${name} { - constructor(\${params}) { - \${} - } -}`,{label:"class",detail:"definition",type:"keyword"}),m('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),m('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],JO=new Be,$e=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function R(e){return(O,t)=>{let a=O.node.getChild("VariableDefinition");return a&&t(a,e),!0}}const Fa=["FunctionDeclaration"],Ka={FunctionDeclaration:R("function"),ClassDeclaration:R("class"),ClassExpression:()=>!0,EnumDeclaration:R("constant"),TypeAliasDeclaration:R("type"),NamespaceDeclaration:R("namespace"),VariableDefinition(e,O){e.matchContext(Fa)||O(e,"variable")},TypeDefinition(e,O){O(e,"type")},__proto__:null};function fe(e,O){let t=JO.get(O);if(t)return t;let a=[],i=!0;function r(s,l){let Q=e.sliceString(s.from,s.to);a.push({label:Q,type:l})}return O.cursor(HO.IncludeAnonymous).iterate(s=>{if(i)i=!1;else if(s.name){let l=Ka[s.name];if(l&&l(s,r)||$e.has(s.name))return!1}else if(s.to-s.from>8192){for(let l of fe(e,s.node))a.push(l);return!1}}),JO.set(O,a),a}const LO=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Se=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function Ha(e){let O=v(e.state).resolveInner(e.pos,-1);if(Se.indexOf(O.name)>-1)return null;let t=O.name=="VariableName"||O.to-O.from<20&&LO.test(e.state.sliceDoc(O.from,O.to));if(!t&&!e.explicit)return null;let a=[];for(let i=O;i;i=i.parent)$e.has(i.name)&&(a=a.concat(fe(e.state.doc,i)));return{options:a,from:t?O.from:e.pos,validFor:LO}}const Z=hO.define({name:"javascript",parser:La.configure({props:[uO.add({IfStatement:z({except:/^\s*({|else\b)/}),TryStatement:z({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Ie,SwitchBody:e=>{let O=e.textAfter,t=/^\s*\}/.test(O),a=/^\s*(case|default)\b/.test(O);return e.baseIndent+(t?0:a?1:2)*e.unit},Block:Ne({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":z({except:/^{/}),JSXElement(e){let O=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(O?0:e.unit)},JSXEscape(e){let O=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(O?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),dO.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":Oe,BlockComment(e){return{from:e.from+2,to:e.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Pe=Z.configure({dialect:"ts"},"typescript"),me=Z.configure({dialect:"jsx"}),ge=Z.configure({dialect:"jsx ts"},"typescript"),Oi="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(e=>({label:e,type:"keyword"}));function be(e={}){let O=e.jsx?e.typescript?ge:me:e.typescript?Pe:Z;return new pO(O,[Z.data.of({autocomplete:Ee(Se,De(Ma.concat(Oi)))}),Z.data.of({autocomplete:Ha}),e.jsx?ti:[]])}function MO(e,O,t=e.length){if(!O)return"";let a=O.getChild("JSXIdentifier");return a?e.sliceString(a.from,Math.min(a.to,t)):""}const ei=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),ti=y.inputHandler.of((e,O,t,a)=>{if((ei?e.composing:e.compositionStarted)||e.state.readOnly||O!=t||a!=">"&&a!="/"||!Z.isActiveAt(e.state,O,-1))return!1;let{state:i}=e,r=i.changeByRange(s=>{var l,Q,c;let{head:h}=s,o=v(i).resolveInner(h,-1),d;if(o.name=="JSXStartTag"&&(o=o.parent),a==">"&&o.name=="JSXFragmentTag")return{range:j.cursor(h+1),changes:{from:h,insert:"><>"}};if(a==">"&&o.name=="JSXIdentifier"){if(((Q=(l=o.parent)===null||l===void 0?void 0:l.lastChild)===null||Q===void 0?void 0:Q.name)!="JSXEndTag"&&(d=MO(i.doc,o.parent,h)))return{range:j.cursor(h+1),changes:{from:h,insert:`>`}}}else if(a=="/"&&o.name=="JSXFragmentTag"){let p=o.parent,$=p==null?void 0:p.parent;if(p.from==h-1&&((c=$.lastChild)===null||c===void 0?void 0:c.name)!="JSXEndTag"&&(d=MO(i.doc,$==null?void 0:$.firstChild,h))){let T=`/${d}>`;return{range:j.cursor(h+T.length),changes:{from:h,insert:T}}}}return{range:s}});return r.changes.empty?!1:(e.dispatch(r,{userEvent:"input.type",scrollIntoView:!0}),!0)}),w=["_blank","_self","_top","_parent"],rO=["ascii","utf-8","utf-16","latin1","latin1"],sO=["get","post","put","delete"],lO=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],S=["true","false"],u={},ai={a:{attrs:{href:null,ping:null,type:null,media:null,target:w,hreflang:null}},abbr:u,address:u,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:u,aside:u,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:u,base:{attrs:{href:null,target:w}},bdi:u,bdo:u,blockquote:{attrs:{cite:null}},body:u,br:u,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:lO,formmethod:sO,formnovalidate:["novalidate"],formtarget:w,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:u,center:u,cite:u,code:u,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:u,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:u,div:u,dl:u,dt:u,em:u,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:u,figure:u,footer:u,form:{attrs:{action:null,name:null,"accept-charset":rO,autocomplete:["on","off"],enctype:lO,method:sO,novalidate:["novalidate"],target:w}},h1:u,h2:u,h3:u,h4:u,h5:u,h6:u,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:u,hgroup:u,hr:u,html:{attrs:{manifest:null}},i:u,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:lO,formmethod:sO,formnovalidate:["novalidate"],formtarget:w,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:u,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:u,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:u,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:rO,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:u,noscript:u,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:u,param:{attrs:{name:null,value:null}},pre:u,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:u,rt:u,ruby:u,samp:u,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:rO}},section:u,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:u,source:{attrs:{src:null,type:null,media:null}},span:u,strong:u,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:u,summary:u,sup:u,table:u,tbody:u,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:u,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:u,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:u,time:{attrs:{datetime:null}},title:u,tr:u,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:u,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:u},ii={accesskey:null,class:null,contenteditable:S,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:S,autocorrect:S,autocapitalize:S,style:null,tabindex:null,title:null,translate:["yes","no"],onclick:null,rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":S,"aria-autocomplete":["inline","list","both","none"],"aria-busy":S,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":S,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":S,"aria-hidden":S,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":S,"aria-multiselectable":S,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":S,"aria-relevant":null,"aria-required":S,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null};class F{constructor(O,t){this.tags=Object.assign(Object.assign({},ai),O),this.globalAttrs=Object.assign(Object.assign({},ii),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}F.default=new F;function x(e,O,t=e.length){if(!O)return"";let a=O.firstChild,i=a&&a.getChild("TagName");return i?e.sliceString(i.from,Math.min(i.to,t)):""}function K(e,O=!1){for(let t=e.parent;t;t=t.parent)if(t.name=="Element")if(O)O=!1;else return t;return null}function Te(e,O,t){let a=t.tags[x(e,K(O,!0))];return(a==null?void 0:a.children)||t.allTags}function fO(e,O){let t=[];for(let a=O;a=K(a);){let i=x(e,a);if(i&&a.lastChild.name=="CloseTag")break;i&&t.indexOf(i)<0&&(O.name=="EndTag"||O.from>=a.firstChild.to)&&t.push(i)}return t}const Xe=/^[:\-\.\w\u00b7-\uffff]*$/;function FO(e,O,t,a,i){let r=/\s*>/.test(e.sliceDoc(i,i+5))?"":">";return{from:a,to:i,options:Te(e.doc,t,O).map(s=>({label:s,type:"type"})).concat(fO(e.doc,t).map((s,l)=>({label:"/"+s,apply:"/"+s+r,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function KO(e,O,t,a){let i=/\s*>/.test(e.sliceDoc(a,a+5))?"":">";return{from:t,to:a,options:fO(e.doc,O).map((r,s)=>({label:r,apply:r+i,type:"type",boost:99-s})),validFor:Xe}}function ri(e,O,t,a){let i=[],r=0;for(let s of Te(e.doc,t,O))i.push({label:"<"+s,type:"type"});for(let s of fO(e.doc,t))i.push({label:"",type:"type",boost:99-r++});return{from:a,to:a,options:i,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function si(e,O,t,a,i){let r=K(t),s=r?O.tags[x(e.doc,r)]:null,l=s&&s.attrs?Object.keys(s.attrs):[],Q=s&&s.globalAttrs===!1?l:l.length?l.concat(O.globalAttrNames):O.globalAttrNames;return{from:a,to:i,options:Q.map(c=>({label:c,type:"property"})),validFor:Xe}}function li(e,O,t,a,i){var r;let s=(r=t.parent)===null||r===void 0?void 0:r.getChild("AttributeName"),l=[],Q;if(s){let c=e.sliceDoc(s.from,s.to),h=O.globalAttrs[c];if(!h){let o=K(t),d=o?O.tags[x(e.doc,o)]:null;h=(d==null?void 0:d.attrs)&&d.attrs[c]}if(h){let o=e.sliceDoc(a,i).toLowerCase(),d='"',p='"';/^['"]/.test(o)?(Q=o[0]=='"'?/^[^"]*$/:/^[^']*$/,d="",p=e.sliceDoc(i,i+1)==o[0]?"":o[0],o=o.slice(1),a++):Q=/^[^\s<>='"]*$/;for(let $ of h)l.push({label:$,apply:d+$+p,type:"constant"})}}return{from:a,to:i,options:l,validFor:Q}}function ni(e,O){let{state:t,pos:a}=O,i=v(t).resolveInner(a),r=i.resolve(a,-1);for(let s=a,l;i==r&&(l=r.childBefore(s));){let Q=l.lastChild;if(!Q||!Q.type.isError||Q.fromni(a,i)}const Ze=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:Pe.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:me.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:ge.parser},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:Z.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:M.parser}],qe=[{name:"style",parser:M.parser.configure({top:"Styles"})}].concat("beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(e=>({name:"on"+e,parser:Z.parser}))),I=hO.define({name:"html",parser:Kt.configure({props:[uO.add({Element(e){let O=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+O[0].length?e.continue():e.lineIndent(e.node.from)+(O[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].length"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}});function Qi(e={}){let O="",t;e.matchClosingTags===!1&&(O="noMatch"),e.selfClosingTags===!0&&(O=(O?O+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(t=he((e.nestedLanguages||[]).concat(Ze),(e.nestedAttributes||[]).concat(qe)));let a=t||O?I.configure({dialect:O,wrap:t}):I;return new pO(a,[I.data.of({autocomplete:oi(e)}),e.autoCloseTags!==!1?ci:[],be().support,ma().support])}const ci=y.inputHandler.of((e,O,t,a)=>{if(e.composing||e.state.readOnly||O!=t||a!=">"&&a!="/"||!I.isActiveAt(e.state,O,-1))return!1;let{state:i}=e,r=i.changeByRange(s=>{var l,Q,c;let{head:h}=s,o=v(i).resolveInner(h,-1),d;if((o.name=="TagName"||o.name=="StartTag")&&(o=o.parent),a==">"&&o.name=="OpenTag"){if(((Q=(l=o.parent)===null||l===void 0?void 0:l.lastChild)===null||Q===void 0?void 0:Q.name)!="CloseTag"&&(d=x(i.doc,o.parent,h))){let p=e.state.doc.sliceString(h,h+1)===">",$=`${p?"":">"}`;return{range:j.cursor(h+1),changes:{from:h+(p?1:0),insert:$}}}}else if(a=="/"&&o.name=="OpenTag"){let p=o.parent,$=p==null?void 0:p.parent;if(p.from==h-1&&((c=$.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(d=x(i.doc,$,h))){let T=e.state.doc.sliceString(h,h+1)===">",U=`/${d}${T?"":">"}`,V=h+U.length+(T?1:0);return{range:j.cursor(V),changes:{from:h,insert:U}}}}return{range:s}});return r.changes.empty?!1:(e.dispatch(r,{userEvent:"input.type",scrollIntoView:!0}),!0)});function hi(e){let O;return{c(){O=Ve("div"),ke(O,"class","code-editor"),bO(O,"max-height",e[0]?e[0]+"px":"auto")},m(t,a){Re(t,O,a),e[10](O)},p(t,[a]){a&1&&bO(O,"max-height",t[0]?t[0]+"px":"auto")},i:TO,o:TO,d(t){t&&we(O),e[10](null)}}}function ui(e,O,t){const a=je();let{id:i=""}=O,{value:r=""}=O,{maxHeight:s=null}=O,{disabled:l=!1}=O,{placeholder:Q=""}=O,{language:c="javascript"}=O,{singleLine:h=!1}=O,o,d,p=new W,$=new W,T=new W,U=new W;function V(){o==null||o.focus()}function SO(){d==null||d.dispatchEvent(new CustomEvent("change",{detail:{value:r},bubbles:!0}))}function PO(){if(!i)return;const f=document.querySelectorAll('[for="'+i+'"]');for(let P of f)P.removeEventListener("click",V)}function mO(){if(!i)return;PO();const f=document.querySelectorAll('[for="'+i+'"]');for(let P of f)P.addEventListener("click",V)}function gO(){return c==="html"?Qi():be()}ve(()=>{const f={key:"Enter",run:P=>{h&&a("submit",r)}};return mO(),t(9,o=new y({parent:d,state:k.create({doc:r,extensions:[Je(),Le(),Me(),Fe(),Ke(),k.allowMultipleSelections.of(!0),He(Ot,{fallback:!0}),et(),tt(),at(),it(),rt.of([f,...st,...lt,nt.find(P=>P.key==="Mod-d"),...ot,...Qt]),y.lineWrapping,ct({icons:!1}),p.of(gO()),U.of(XO(Q)),$.of(y.editable.of(!0)),T.of(k.readOnly.of(!1)),k.transactionFilter.of(P=>h&&P.newDoc.lines>1?[]:P),y.updateListener.of(P=>{!P.docChanged||l||(t(2,r=P.state.doc.toString()),SO())})]})})),()=>{PO(),o==null||o.destroy()}});function ye(f){We[f?"unshift":"push"](()=>{d=f,t(1,d)})}return e.$$set=f=>{"id"in f&&t(3,i=f.id),"value"in f&&t(2,r=f.value),"maxHeight"in f&&t(0,s=f.maxHeight),"disabled"in f&&t(4,l=f.disabled),"placeholder"in f&&t(5,Q=f.placeholder),"language"in f&&t(6,c=f.language),"singleLine"in f&&t(7,h=f.singleLine)},e.$$.update=()=>{e.$$.dirty&8&&i&&mO(),e.$$.dirty&576&&o&&c&&o.dispatch({effects:[p.reconfigure(gO())]}),e.$$.dirty&528&&o&&typeof l<"u"&&(o.dispatch({effects:[$.reconfigure(y.editable.of(!l)),T.reconfigure(k.readOnly.of(l))]}),SO()),e.$$.dirty&516&&o&&r!=o.state.doc.toString()&&o.dispatch({changes:{from:0,to:o.state.doc.length,insert:r}}),e.$$.dirty&544&&o&&typeof Q<"u"&&o.dispatch({effects:[U.reconfigure(XO(Q))]})},[s,d,r,i,l,Q,c,h,V,o,ye]}class $i extends _e{constructor(O){super(),xe(this,O,ui,hi,Ue,{id:3,value:2,maxHeight:0,disabled:4,placeholder:5,language:6,singleLine:7,focus:8})}get focus(){return this.$$.ctx[8]}}export{$i as default}; diff --git a/ui/dist/assets/ConfirmEmailChangeDocs.25e65842.js b/ui/dist/assets/ConfirmEmailChangeDocs.25e65842.js deleted file mode 100644 index 606b06dc875ebdd12c1f506157663e0a59397ccb..0000000000000000000000000000000000000000 --- a/ui/dist/assets/ConfirmEmailChangeDocs.25e65842.js +++ /dev/null @@ -1,66 +0,0 @@ -import{S as Ce,i as $e,s as we,e as c,w as v,b as h,c as he,f as b,g as r,h as n,m as ve,x as Y,N as pe,O as Pe,k as Se,P as Oe,n as Re,t as Z,a as x,o as f,d as ge,Q as Te,C as Ee,p as ye,r as j,u as Be,M as qe}from"./index.662e825a.js";import{S as Ae}from"./SdkTabs.1e98a608.js";function ue(o,l,s){const a=o.slice();return a[5]=l[s],a}function be(o,l,s){const a=o.slice();return a[5]=l[s],a}function _e(o,l){let s,a=l[5].code+"",_,u,i,d;function p(){return l[4](l[5])}return{key:o,first:null,c(){s=c("button"),_=v(a),u=h(),b(s,"class","tab-item"),j(s,"active",l[1]===l[5].code),this.first=s},m(C,$){r(C,s,$),n(s,_),n(s,u),i||(d=Be(s,"click",p),i=!0)},p(C,$){l=C,$&4&&a!==(a=l[5].code+"")&&Y(_,a),$&6&&j(s,"active",l[1]===l[5].code)},d(C){C&&f(s),i=!1,d()}}}function ke(o,l){let s,a,_,u;return a=new qe({props:{content:l[5].body}}),{key:o,first:null,c(){s=c("div"),he(a.$$.fragment),_=h(),b(s,"class","tab-item"),j(s,"active",l[1]===l[5].code),this.first=s},m(i,d){r(i,s,d),ve(a,s,null),n(s,_),u=!0},p(i,d){l=i;const p={};d&4&&(p.content=l[5].body),a.$set(p),(!u||d&6)&&j(s,"active",l[1]===l[5].code)},i(i){u||(Z(a.$$.fragment,i),u=!0)},o(i){x(a.$$.fragment,i),u=!1},d(i){i&&f(s),ge(a)}}}function Ue(o){var re,fe;let l,s,a=o[0].name+"",_,u,i,d,p,C,$,D=o[0].name+"",H,ee,I,w,F,R,L,P,M,te,N,T,le,Q,K=o[0].name+"",z,se,G,E,J,y,V,B,X,S,q,g=[],ae=new Map,oe,A,k=[],ne=new Map,O;w=new Ae({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${o[3]}'); - - ... - - await pb.collection('${(re=o[0])==null?void 0:re.name}').confirmEmailChange( - 'TOKEN', - 'YOUR_PASSWORD', - ); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${o[3]}'); - - ... - - await pb.collection('${(fe=o[0])==null?void 0:fe.name}').confirmEmailChange( - 'TOKEN', - 'YOUR_PASSWORD', - ); - `}});let W=o[2];const ie=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eParam - Type - Description -
    Required - token
    - String - The token from the change email request email. -
    Required - password
    - String - The account password to confirm the email change.`,V=h(),B=c("div"),B.textContent="Responses",X=h(),S=c("div"),q=c("div");for(let e=0;es(1,u=p.code);return o.$$set=p=>{"collection"in p&&s(0,_=p.collection)},s(3,a=Ee.getApiExampleUrl(ye.baseUrl)),s(2,i=[{code:204,body:"null"},{code:400,body:` - { - "code": 400, - "message": "Failed to authenticate.", - "data": { - "token": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `}]),[_,u,i,a,d]}class Ke extends Ce{constructor(l){super(),$e(this,l,De,Ue,we,{collection:0})}}export{Ke as default}; diff --git a/ui/dist/assets/ConfirmPasswordResetDocs.4e774978.js b/ui/dist/assets/ConfirmPasswordResetDocs.4e774978.js deleted file mode 100644 index fa7abca808c9446417d985dc026bf7e1a4cee3ed..0000000000000000000000000000000000000000 --- a/ui/dist/assets/ConfirmPasswordResetDocs.4e774978.js +++ /dev/null @@ -1,74 +0,0 @@ -import{S as Se,i as he,s as Re,e as c,w,b as v,c as ve,f as b,g as r,h as n,m as we,x as K,N as me,O as Oe,k as Ne,P as Ce,n as We,t as Z,a as x,o as d,d as Pe,Q as $e,C as Ee,p as Te,r as U,u as ge,M as Ae}from"./index.662e825a.js";import{S as De}from"./SdkTabs.1e98a608.js";function ue(o,s,l){const a=o.slice();return a[5]=s[l],a}function be(o,s,l){const a=o.slice();return a[5]=s[l],a}function _e(o,s){let l,a=s[5].code+"",_,u,i,p;function m(){return s[4](s[5])}return{key:o,first:null,c(){l=c("button"),_=w(a),u=v(),b(l,"class","tab-item"),U(l,"active",s[1]===s[5].code),this.first=l},m(S,h){r(S,l,h),n(l,_),n(l,u),i||(p=ge(l,"click",m),i=!0)},p(S,h){s=S,h&4&&a!==(a=s[5].code+"")&&K(_,a),h&6&&U(l,"active",s[1]===s[5].code)},d(S){S&&d(l),i=!1,p()}}}function ke(o,s){let l,a,_,u;return a=new Ae({props:{content:s[5].body}}),{key:o,first:null,c(){l=c("div"),ve(a.$$.fragment),_=v(),b(l,"class","tab-item"),U(l,"active",s[1]===s[5].code),this.first=l},m(i,p){r(i,l,p),we(a,l,null),n(l,_),u=!0},p(i,p){s=i;const m={};p&4&&(m.content=s[5].body),a.$set(m),(!u||p&6)&&U(l,"active",s[1]===s[5].code)},i(i){u||(Z(a.$$.fragment,i),u=!0)},o(i){x(a.$$.fragment,i),u=!1},d(i){i&&d(l),Pe(a)}}}function ye(o){var re,de;let s,l,a=o[0].name+"",_,u,i,p,m,S,h,M=o[0].name+"",j,ee,H,R,L,W,Q,O,q,te,B,$,se,z,I=o[0].name+"",G,le,J,E,V,T,X,g,Y,N,A,P=[],ae=new Map,oe,D,k=[],ne=new Map,C;R=new De({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${o[3]}'); - - ... - - await pb.collection('${(re=o[0])==null?void 0:re.name}').confirmPasswordReset( - 'TOKEN', - 'NEW_PASSWORD', - 'NEW_PASSWORD_CONFIRM', - ); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${o[3]}'); - - ... - - await pb.collection('${(de=o[0])==null?void 0:de.name}').confirmPasswordReset( - 'TOKEN', - 'NEW_PASSWORD', - 'NEW_PASSWORD_CONFIRM', - ); - `}});let F=o[2];const ie=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eParam - Type - Description -
    Required - token
    - String - The token from the password reset request email. -
    Required - password
    - String - The new password to set. -
    Required - passwordConfirm
    - String - The new password confirmation.`,X=v(),g=c("div"),g.textContent="Responses",Y=v(),N=c("div"),A=c("div");for(let e=0;el(1,u=m.code);return o.$$set=m=>{"collection"in m&&l(0,_=m.collection)},l(3,a=Ee.getApiExampleUrl(Te.baseUrl)),l(2,i=[{code:204,body:"null"},{code:400,body:` - { - "code": 400, - "message": "Failed to authenticate.", - "data": { - "token": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `}]),[_,u,i,a,p]}class Ie extends Se{constructor(s){super(),he(this,s,Me,ye,Re,{collection:0})}}export{Ie as default}; diff --git a/ui/dist/assets/ConfirmVerificationDocs.e3577ba9.js b/ui/dist/assets/ConfirmVerificationDocs.e3577ba9.js deleted file mode 100644 index 196292c974a8a9bbef0f1e5eb383810cd50c9fac..0000000000000000000000000000000000000000 --- a/ui/dist/assets/ConfirmVerificationDocs.e3577ba9.js +++ /dev/null @@ -1,50 +0,0 @@ -import{S as we,i as Ce,s as Pe,e as c,w as h,b as v,c as ve,f as b,g as r,h as n,m as he,x as H,N as de,O as Te,k as ge,P as ye,n as Be,t as Z,a as x,o as f,d as $e,Q as qe,C as Oe,p as Se,r as I,u as Ee,M as Me}from"./index.662e825a.js";import{S as Ne}from"./SdkTabs.1e98a608.js";function ue(i,l,s){const o=i.slice();return o[5]=l[s],o}function be(i,l,s){const o=i.slice();return o[5]=l[s],o}function _e(i,l){let s,o=l[5].code+"",_,u,a,p;function d(){return l[4](l[5])}return{key:i,first:null,c(){s=c("button"),_=h(o),u=v(),b(s,"class","tab-item"),I(s,"active",l[1]===l[5].code),this.first=s},m(w,C){r(w,s,C),n(s,_),n(s,u),a||(p=Ee(s,"click",d),a=!0)},p(w,C){l=w,C&4&&o!==(o=l[5].code+"")&&H(_,o),C&6&&I(s,"active",l[1]===l[5].code)},d(w){w&&f(s),a=!1,p()}}}function ke(i,l){let s,o,_,u;return o=new Me({props:{content:l[5].body}}),{key:i,first:null,c(){s=c("div"),ve(o.$$.fragment),_=v(),b(s,"class","tab-item"),I(s,"active",l[1]===l[5].code),this.first=s},m(a,p){r(a,s,p),he(o,s,null),n(s,_),u=!0},p(a,p){l=a;const d={};p&4&&(d.content=l[5].body),o.$set(d),(!u||p&6)&&I(s,"active",l[1]===l[5].code)},i(a){u||(Z(o.$$.fragment,a),u=!0)},o(a){x(o.$$.fragment,a),u=!1},d(a){a&&f(s),$e(o)}}}function Ve(i){var re,fe;let l,s,o=i[0].name+"",_,u,a,p,d,w,C,K=i[0].name+"",R,ee,F,P,L,B,Q,T,A,te,U,q,le,z,j=i[0].name+"",G,se,J,O,W,S,X,E,Y,g,M,$=[],oe=new Map,ie,N,k=[],ne=new Map,y;P=new Ne({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${i[3]}'); - - ... - - await pb.collection('${(re=i[0])==null?void 0:re.name}').confirmVerification('TOKEN'); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${i[3]}'); - - ... - - await pb.collection('${(fe=i[0])==null?void 0:fe.name}').confirmVerification('TOKEN'); - `}});let D=i[2];const ae=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eParam - Type - Description -
    Required - token
    - String - The token from the verification request email.`,X=v(),E=c("div"),E.textContent="Responses",Y=v(),g=c("div"),M=c("div");for(let e=0;e<$.length;e+=1)$[e].c();ie=v(),N=c("div");for(let e=0;es(1,u=d.code);return i.$$set=d=>{"collection"in d&&s(0,_=d.collection)},s(3,o=Oe.getApiExampleUrl(Se.baseUrl)),s(2,a=[{code:204,body:"null"},{code:400,body:` - { - "code": 400, - "message": "Failed to authenticate.", - "data": { - "token": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `}]),[_,u,a,o,p]}class je extends we{constructor(l){super(),Ce(this,l,Ke,Ve,Pe,{collection:0})}}export{je as default}; diff --git a/ui/dist/assets/CreateApiDocs.3f3559b2.js b/ui/dist/assets/CreateApiDocs.3f3559b2.js deleted file mode 100644 index 5475368f88bbc689818683fa02ee9b8adf9ef4a4..0000000000000000000000000000000000000000 --- a/ui/dist/assets/CreateApiDocs.3f3559b2.js +++ /dev/null @@ -1,114 +0,0 @@ -import{S as Ht,i as Lt,s as Pt,C as Q,M as At,e as a,w as k,b as m,c as Pe,f as h,g as r,h as n,m as Be,x,N as Le,O as ht,k as Bt,P as Ft,n as Rt,t as fe,a as pe,o as d,d as Fe,Q as gt,p as jt,r as ue,u as Dt,y as le}from"./index.662e825a.js";import{S as Nt}from"./SdkTabs.1e98a608.js";function wt(o,e,l){const s=o.slice();return s[7]=e[l],s}function Ct(o,e,l){const s=o.slice();return s[7]=e[l],s}function St(o,e,l){const s=o.slice();return s[12]=e[l],s}function $t(o){let e;return{c(){e=a("p"),e.innerHTML="Requires admin Authorization:TOKEN header",h(e,"class","txt-hint txt-sm txt-right")},m(l,s){r(l,e,s)},d(l){l&&d(e)}}}function Tt(o){let e,l,s,b,p,c,f,y,T,w,M,g,D,V,L,I,j,F,S,N,q,C,_;function O(u,$){var ee,K;return(K=(ee=u[0])==null?void 0:ee.options)!=null&&K.requireEmail?It:Vt}let z=O(o),P=z(o);return{c(){e=a("tr"),e.innerHTML='Auth fields',l=m(),s=a("tr"),s.innerHTML=`
    Optional - username
    - String - The username of the auth record. -
    - If not set, it will be auto generated.`,b=m(),p=a("tr"),c=a("td"),f=a("div"),P.c(),y=m(),T=a("span"),T.textContent="email",w=m(),M=a("td"),M.innerHTML='String',g=m(),D=a("td"),D.textContent="Auth record email address.",V=m(),L=a("tr"),L.innerHTML=`
    Optional - emailVisibility
    - Boolean - Whether to show/hide the auth record email when fetching the record data.`,I=m(),j=a("tr"),j.innerHTML=`
    Required - password
    - String - Auth record password.`,F=m(),S=a("tr"),S.innerHTML=`
    Required - passwordConfirm
    - String - Auth record password confirmation.`,N=m(),q=a("tr"),q.innerHTML=`
    Optional - verified
    - Boolean - Indicates whether the auth record is verified or not. -
    - This field can be set only by admins or auth records with "Manage" access.`,C=m(),_=a("tr"),_.innerHTML='Schema fields',h(f,"class","inline-flex")},m(u,$){r(u,e,$),r(u,l,$),r(u,s,$),r(u,b,$),r(u,p,$),n(p,c),n(c,f),P.m(f,null),n(f,y),n(f,T),n(p,w),n(p,M),n(p,g),n(p,D),r(u,V,$),r(u,L,$),r(u,I,$),r(u,j,$),r(u,F,$),r(u,S,$),r(u,N,$),r(u,q,$),r(u,C,$),r(u,_,$)},p(u,$){z!==(z=O(u))&&(P.d(1),P=z(u),P&&(P.c(),P.m(f,y)))},d(u){u&&d(e),u&&d(l),u&&d(s),u&&d(b),u&&d(p),P.d(),u&&d(V),u&&d(L),u&&d(I),u&&d(j),u&&d(F),u&&d(S),u&&d(N),u&&d(q),u&&d(C),u&&d(_)}}}function Vt(o){let e;return{c(){e=a("span"),e.textContent="Optional",h(e,"class","label label-warning")},m(l,s){r(l,e,s)},d(l){l&&d(e)}}}function It(o){let e;return{c(){e=a("span"),e.textContent="Required",h(e,"class","label label-success")},m(l,s){r(l,e,s)},d(l){l&&d(e)}}}function Jt(o){let e;return{c(){e=a("span"),e.textContent="Optional",h(e,"class","label label-warning")},m(l,s){r(l,e,s)},d(l){l&&d(e)}}}function Et(o){let e;return{c(){e=a("span"),e.textContent="Required",h(e,"class","label label-success")},m(l,s){r(l,e,s)},d(l){l&&d(e)}}}function Ut(o){var p;let e,l=((p=o[12].options)==null?void 0:p.maxSelect)===1?"id":"ids",s,b;return{c(){e=k("Relation record "),s=k(l),b=k(".")},m(c,f){r(c,e,f),r(c,s,f),r(c,b,f)},p(c,f){var y;f&1&&l!==(l=((y=c[12].options)==null?void 0:y.maxSelect)===1?"id":"ids")&&x(s,l)},d(c){c&&d(e),c&&d(s),c&&d(b)}}}function Qt(o){let e,l,s,b,p;return{c(){e=k("File object."),l=a("br"),s=k(` - Set to `),b=a("code"),b.textContent="null",p=k(" to delete already uploaded file(s).")},m(c,f){r(c,e,f),r(c,l,f),r(c,s,f),r(c,b,f),r(c,p,f)},p:le,d(c){c&&d(e),c&&d(l),c&&d(s),c&&d(b),c&&d(p)}}}function zt(o){let e;return{c(){e=k("URL address.")},m(l,s){r(l,e,s)},p:le,d(l){l&&d(e)}}}function Kt(o){let e;return{c(){e=k("Email address.")},m(l,s){r(l,e,s)},p:le,d(l){l&&d(e)}}}function Wt(o){let e;return{c(){e=k("JSON array or object.")},m(l,s){r(l,e,s)},p:le,d(l){l&&d(e)}}}function Yt(o){let e;return{c(){e=k("Number value.")},m(l,s){r(l,e,s)},p:le,d(l){l&&d(e)}}}function Gt(o){let e;return{c(){e=k("Plain text value.")},m(l,s){r(l,e,s)},p:le,d(l){l&&d(e)}}}function qt(o,e){let l,s,b,p,c,f=e[12].name+"",y,T,w,M,g=Q.getFieldValueType(e[12])+"",D,V,L,I;function j(_,O){return _[12].required?Et:Jt}let F=j(e),S=F(e);function N(_,O){if(_[12].type==="text")return Gt;if(_[12].type==="number")return Yt;if(_[12].type==="json")return Wt;if(_[12].type==="email")return Kt;if(_[12].type==="url")return zt;if(_[12].type==="file")return Qt;if(_[12].type==="relation")return Ut}let q=N(e),C=q&&q(e);return{key:o,first:null,c(){l=a("tr"),s=a("td"),b=a("div"),S.c(),p=m(),c=a("span"),y=k(f),T=m(),w=a("td"),M=a("span"),D=k(g),V=m(),L=a("td"),C&&C.c(),I=m(),h(b,"class","inline-flex"),h(M,"class","label"),this.first=l},m(_,O){r(_,l,O),n(l,s),n(s,b),S.m(b,null),n(b,p),n(b,c),n(c,y),n(l,T),n(l,w),n(w,M),n(M,D),n(l,V),n(l,L),C&&C.m(L,null),n(l,I)},p(_,O){e=_,F!==(F=j(e))&&(S.d(1),S=F(e),S&&(S.c(),S.m(b,p))),O&1&&f!==(f=e[12].name+"")&&x(y,f),O&1&&g!==(g=Q.getFieldValueType(e[12])+"")&&x(D,g),q===(q=N(e))&&C?C.p(e,O):(C&&C.d(1),C=q&&q(e),C&&(C.c(),C.m(L,null)))},d(_){_&&d(l),S.d(),C&&C.d()}}}function Mt(o,e){let l,s=e[7].code+"",b,p,c,f;function y(){return e[6](e[7])}return{key:o,first:null,c(){l=a("button"),b=k(s),p=m(),h(l,"class","tab-item"),ue(l,"active",e[1]===e[7].code),this.first=l},m(T,w){r(T,l,w),n(l,b),n(l,p),c||(f=Dt(l,"click",y),c=!0)},p(T,w){e=T,w&4&&s!==(s=e[7].code+"")&&x(b,s),w&6&&ue(l,"active",e[1]===e[7].code)},d(T){T&&d(l),c=!1,f()}}}function Ot(o,e){let l,s,b,p;return s=new At({props:{content:e[7].body}}),{key:o,first:null,c(){l=a("div"),Pe(s.$$.fragment),b=m(),h(l,"class","tab-item"),ue(l,"active",e[1]===e[7].code),this.first=l},m(c,f){r(c,l,f),Be(s,l,null),n(l,b),p=!0},p(c,f){e=c;const y={};f&4&&(y.content=e[7].body),s.$set(y),(!p||f&6)&&ue(l,"active",e[1]===e[7].code)},i(c){p||(fe(s.$$.fragment,c),p=!0)},o(c){pe(s.$$.fragment,c),p=!1},d(c){c&&d(l),Fe(s)}}}function Xt(o){var st,it,at,ot,rt,dt,ct,ft;let e,l,s=o[0].name+"",b,p,c,f,y,T,w,M=o[0].name+"",g,D,V,L,I,j,F,S,N,q,C,_,O,z,P,u,$,ee,K=o[0].name+"",me,Re,ge,be,ne,_e,W,ke,je,J,ye,De,ve,E=[],Ne=new Map,he,se,we,Y,Ce,Ve,Se,G,$e,Ie,Te,Je,A,Ee,te,Ue,Qe,ze,qe,Ke,Me,We,Ye,Ge,Oe,Xe,Ae,ie,He,X,ae,U=[],Ze=new Map,xe,oe,R=[],et=new Map,Z;S=new Nt({props:{js:` -import PocketBase from 'pocketbase'; - -const pb = new PocketBase('${o[4]}'); - -... - -// example create data -const data = ${JSON.stringify(Object.assign({},o[3],Q.dummyCollectionSchemaData(o[0])),null,4)}; - -const record = await pb.collection('${(st=o[0])==null?void 0:st.name}').create(data); -`+((it=o[0])!=null&&it.isAuth?` -// (optional) send an email verification request -await pb.collection('${(at=o[0])==null?void 0:at.name}').requestVerification('test@example.com'); -`:""),dart:` -import 'package:pocketbase/pocketbase.dart'; - -final pb = PocketBase('${o[4]}'); - -... - -// example create body -final body = ${JSON.stringify(Object.assign({},o[3],Q.dummyCollectionSchemaData(o[0])),null,2)}; - -final record = await pb.collection('${(ot=o[0])==null?void 0:ot.name}').create(body: body); -`+((rt=o[0])!=null&&rt.isAuth?` -// (optional) send an email verification request -await pb.collection('${(dt=o[0])==null?void 0:dt.name}').requestVerification('test@example.com'); -`:"")}});let B=o[5]&&$t(),H=((ct=o[0])==null?void 0:ct.isAuth)&&Tt(o),de=(ft=o[0])==null?void 0:ft.schema;const tt=t=>t[12].name;for(let t=0;tt[7].code;for(let t=0;tt[7].code;for(let t=0;tapplication/json or - multipart/form-data.`,I=m(),j=a("p"),j.innerHTML=`File upload is supported only via multipart/form-data. -
    - For more info and examples you could check the detailed - Files upload and handling docs - .`,F=m(),Pe(S.$$.fragment),N=m(),q=a("h6"),q.textContent="API details",C=m(),_=a("div"),O=a("strong"),O.textContent="POST",z=m(),P=a("div"),u=a("p"),$=k("/api/collections/"),ee=a("strong"),me=k(K),Re=k("/records"),ge=m(),B&&B.c(),be=m(),ne=a("div"),ne.textContent="Body Parameters",_e=m(),W=a("table"),ke=a("thead"),ke.innerHTML=`Param - Type - Description`,je=m(),J=a("tbody"),ye=a("tr"),ye.innerHTML=`
    Optional - id
    - String - 15 characters string to store as record ID. -
    - If not set, it will be auto generated.`,De=m(),H&&H.c(),ve=m();for(let t=0;tParam - Type - Description`,Ve=m(),Se=a("tbody"),G=a("tr"),$e=a("td"),$e.textContent="expand",Ie=m(),Te=a("td"),Te.innerHTML='String',Je=m(),A=a("td"),Ee=k(`Auto expand relations when returning the created record. Ex.: - `),Pe(te.$$.fragment),Ue=k(` - Supports up to 6-levels depth nested relations expansion. `),Qe=a("br"),ze=k(` - The expanded relations will be appended to the record under the - `),qe=a("code"),qe.textContent="expand",Ke=k(" property (eg. "),Me=a("code"),Me.textContent='"expand": {"relField1": {...}, ...}',We=k(`). - `),Ye=a("br"),Ge=k(` - Only the relations to which the request user has permissions to `),Oe=a("strong"),Oe.textContent="view",Xe=k(" will be expanded."),Ae=m(),ie=a("div"),ie.textContent="Responses",He=m(),X=a("div"),ae=a("div");for(let t=0;t${JSON.stringify(Object.assign({},t[3],Q.dummyCollectionSchemaData(t[0])),null,2)}; - -final record = await pb.collection('${(bt=t[0])==null?void 0:bt.name}').create(body: body); -`+((_t=t[0])!=null&&_t.isAuth?` -// (optional) send an email verification request -await pb.collection('${(kt=t[0])==null?void 0:kt.name}').requestVerification('test@example.com'); -`:"")),S.$set(v),(!Z||i&1)&&K!==(K=t[0].name+"")&&x(me,K),t[5]?B||(B=$t(),B.c(),B.m(_,null)):B&&(B.d(1),B=null),(yt=t[0])!=null&&yt.isAuth?H?H.p(t,i):(H=Tt(t),H.c(),H.m(J,ve)):H&&(H.d(1),H=null),i&1&&(de=(vt=t[0])==null?void 0:vt.schema,E=Le(E,i,tt,1,t,de,Ne,J,ht,qt,null,St)),i&6&&(ce=t[2],U=Le(U,i,lt,1,t,ce,Ze,ae,ht,Mt,null,Ct)),i&6&&(re=t[2],Bt(),R=Le(R,i,nt,1,t,re,et,oe,Ft,Ot,null,wt),Rt())},i(t){if(!Z){fe(S.$$.fragment,t),fe(te.$$.fragment,t);for(let i=0;il(1,c=w.code);return o.$$set=w=>{"collection"in w&&l(0,p=w.collection)},o.$$.update=()=>{var w,M;o.$$.dirty&1&&l(5,s=(p==null?void 0:p.createRule)===null),o.$$.dirty&1&&l(2,f=[{code:200,body:JSON.stringify(Q.dummyCollectionRecord(p),null,2)},{code:400,body:` - { - "code": 400, - "message": "Failed to create record.", - "data": { - "${(M=(w=p==null?void 0:p.schema)==null?void 0:w[0])==null?void 0:M.name}": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `},{code:403,body:` - { - "code": 403, - "message": "You are not allowed to perform this request.", - "data": {} - } - `}]),o.$$.dirty&1&&(p.isAuth?l(3,y={username:"test_username",email:"test@example.com",emailVisibility:!0,password:"12345678",passwordConfirm:"12345678"}):l(3,y={}))},l(4,b=Q.getApiExampleUrl(jt.baseUrl)),[p,c,f,y,b,s,T]}class tl extends Ht{constructor(e){super(),Lt(this,e,Zt,Xt,Pt,{collection:0})}}export{tl as default}; diff --git a/ui/dist/assets/DeleteApiDocs.f6458b62.js b/ui/dist/assets/DeleteApiDocs.f6458b62.js deleted file mode 100644 index 849caf465814a42b39398492b54b1b4279046951..0000000000000000000000000000000000000000 --- a/ui/dist/assets/DeleteApiDocs.f6458b62.js +++ /dev/null @@ -1,58 +0,0 @@ -import{S as Ce,i as Re,s as Pe,e as c,w as D,b as k,c as $e,f as m,g as d,h as n,m as we,x,N as _e,O as Ee,k as Oe,P as Te,n as Be,t as ee,a as te,o as f,d as ge,Q as Ie,C as Me,p as Ae,r as N,u as Se,M as qe}from"./index.662e825a.js";import{S as He}from"./SdkTabs.1e98a608.js";function ke(o,l,s){const a=o.slice();return a[6]=l[s],a}function he(o,l,s){const a=o.slice();return a[6]=l[s],a}function ve(o){let l;return{c(){l=c("p"),l.innerHTML="Requires admin Authorization:TOKEN header",m(l,"class","txt-hint txt-sm txt-right")},m(s,a){d(s,l,a)},d(s){s&&f(l)}}}function ye(o,l){let s,a=l[6].code+"",h,i,r,u;function $(){return l[5](l[6])}return{key:o,first:null,c(){s=c("button"),h=D(a),i=k(),m(s,"class","tab-item"),N(s,"active",l[2]===l[6].code),this.first=s},m(b,g){d(b,s,g),n(s,h),n(s,i),r||(u=Se(s,"click",$),r=!0)},p(b,g){l=b,g&20&&N(s,"active",l[2]===l[6].code)},d(b){b&&f(s),r=!1,u()}}}function De(o,l){let s,a,h,i;return a=new qe({props:{content:l[6].body}}),{key:o,first:null,c(){s=c("div"),$e(a.$$.fragment),h=k(),m(s,"class","tab-item"),N(s,"active",l[2]===l[6].code),this.first=s},m(r,u){d(r,s,u),we(a,s,null),n(s,h),i=!0},p(r,u){l=r,(!i||u&20)&&N(s,"active",l[2]===l[6].code)},i(r){i||(ee(a.$$.fragment,r),i=!0)},o(r){te(a.$$.fragment,r),i=!1},d(r){r&&f(s),ge(a)}}}function Le(o){var ue,pe;let l,s,a=o[0].name+"",h,i,r,u,$,b,g,q=o[0].name+"",z,le,F,C,K,O,Q,y,H,se,L,E,oe,G,U=o[0].name+"",J,ae,V,ne,W,T,X,B,Y,I,Z,R,M,w=[],ie=new Map,re,A,v=[],ce=new Map,P;C=new He({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${o[3]}'); - - ... - - await pb.collection('${(ue=o[0])==null?void 0:ue.name}').delete('RECORD_ID'); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${o[3]}'); - - ... - - await pb.collection('${(pe=o[0])==null?void 0:pe.name}').delete('RECORD_ID'); - `}});let _=o[1]&&ve(),j=o[4];const de=e=>e[6].code;for(let e=0;ee[6].code;for(let e=0;eParam - Type - Description - id - String - ID of the record to delete.`,Y=k(),I=c("div"),I.textContent="Responses",Z=k(),R=c("div"),M=c("div");for(let e=0;es(2,r=b.code);return o.$$set=b=>{"collection"in b&&s(0,i=b.collection)},o.$$.update=()=>{o.$$.dirty&1&&s(1,a=(i==null?void 0:i.deleteRule)===null),o.$$.dirty&3&&i!=null&&i.id&&(u.push({code:204,body:` - null - `}),u.push({code:400,body:` - { - "code": 400, - "message": "Failed to delete record. Make sure that the record is not part of a required relation reference.", - "data": {} - } - `}),a&&u.push({code:403,body:` - { - "code": 403, - "message": "Only admins can access this action.", - "data": {} - } - `}),u.push({code:404,body:` - { - "code": 404, - "message": "The requested resource wasn't found.", - "data": {} - } - `}))},s(3,h=Me.getApiExampleUrl(Ae.baseUrl)),[i,a,r,h,u,$]}class ze extends Ce{constructor(l){super(),Re(this,l,Ue,Le,Pe,{collection:0})}}export{ze as default}; diff --git a/ui/dist/assets/FilterAutocompleteInput.b06e61da.js b/ui/dist/assets/FilterAutocompleteInput.b06e61da.js deleted file mode 100644 index a372b205efc72a9e3b703a2429ab4399bd532827..0000000000000000000000000000000000000000 --- a/ui/dist/assets/FilterAutocompleteInput.b06e61da.js +++ /dev/null @@ -1 +0,0 @@ -import{S as ie,i as re,s as se,e as oe,f as ae,g as ue,y as _,o as le,H as ce,I as fe,J as de,K as he,C as L,L as ge}from"./index.662e825a.js";import{C as I,E as x,a as C,h as pe,b as ye,c as me,d as be,e as ke,s as Ke,f as xe,g as Ce,i as qe,r as we,j as Se,k as Le,l as Ie,m as Ee,n as Re,o as Ae,p as ve,q as Be,t as z,S as _e}from"./index.e8a8986f.js";function He(e){Q(e,"start");var i={},t=e.languageData||{},h=!1;for(var g in e)if(g!=t&&e.hasOwnProperty(g))for(var d=i[g]=[],o=e[g],s=0;s2&&o.token&&typeof o.token!="string"){t.pending=[];for(var a=2;a-1)return null;var g=t.indent.length-1,d=e[t.state];e:for(;;){for(var o=0;ot(21,h=n));const g=de();let{id:d=""}=i,{value:o=""}=i,{disabled:s=!1}=i,{placeholder:u=""}=i,{baseCollection:a=null}=i,{singleLine:y=!1}=i,{extraAutocompleteKeys:E=[]}=i,{disableRequestKeys:k=!1}=i,{disableIndirectCollectionsKeys:K=!1}=i,f,m,R=s,H=new I,O=new I,D=new I,M=new I,q=[],F=[],T=[],U=[],w="",A="";function v(){f==null||f.focus()}let B=null;function X(){clearTimeout(B),B=setTimeout(()=>{q=Y(h),U=Z(),F=k?[]:j(),T=K?[]:$()},300)}function Y(n){let r=n.slice();return a&&L.pushOrReplaceByKey(r,a,"id"),r}function W(){m==null||m.dispatchEvent(new CustomEvent("change",{detail:{value:o},bubbles:!0}))}function N(){if(!d)return;const n=document.querySelectorAll('[for="'+d+'"]');for(let r of n)r.removeEventListener("click",v)}function V(){if(!d)return;N();const n=document.querySelectorAll('[for="'+d+'"]');for(let r of n)r.addEventListener("click",v)}function S(n,r="",l=0){let p=q.find(b=>b.name==n||b.id==n);if(!p||l>=4)return[];let c=[r+"id",r+"created",r+"updated"];p.isAuth&&(c.push(r+"username"),c.push(r+"email"),c.push(r+"emailVisibility"),c.push(r+"verified"));for(const b of p.schema){const P=r+b.name;if(c.push(P),b.type==="relation"&&b.options.collectionId){const G=S(b.options.collectionId,P+".",l+1);G.length&&(c=c.concat(G))}}return c}function Z(){return S(a==null?void 0:a.name)}function j(){const n=[];n.push("@request.method"),n.push("@request.query."),n.push("@request.data."),n.push("@request.auth."),n.push("@request.auth.id"),n.push("@request.auth.collectionId"),n.push("@request.auth.collectionName"),n.push("@request.auth.verified"),n.push("@request.auth.username"),n.push("@request.auth.email"),n.push("@request.auth.emailVisibility"),n.push("@request.auth.created"),n.push("@request.auth.updated");const r=q.filter(l=>l.isAuth);for(const l of r){const p=S(l.id,"@request.auth.");for(const c of p)L.pushUnique(n,c)}return n}function $(){const n=[];for(const r of q){const l="@collection."+r.name+".",p=S(r.name,l);for(const c of p)n.push(c)}return n}function ee(n=!0,r=!0){let l=[].concat(E);return l=l.concat(U||[]),n&&(l=l.concat(F||[])),r&&(l=l.concat(T||[])),l.sort(function(p,c){return c.length-p.length}),l}function te(n){let r=n.matchBefore(/[\'\"\@\w\.]*/);if(r&&r.from==r.to&&!n.explicit)return null;let l=[{label:"false"},{label:"true"},{label:"@now"}];K||l.push({label:"@collection.*",apply:"@collection."});const p=ee(!k,!k&&r.text.startsWith("@c"));for(const c of p)l.push({label:c.endsWith(".")?c+"*":c,apply:c});return{from:r.from,options:l}}function J(){return _e.define(He({start:[{regex:/true|false|null/,token:"atom"},{regex:/"(?:[^\\]|\\.)*?(?:"|$)/,token:"string"},{regex:/'(?:[^\\]|\\.)*?(?:'|$)/,token:"string"},{regex:/0x[a-f\d]+|[-+]?(?:\.\d+|\d+\.?\d*)(?:e[-+]?\d+)?/i,token:"number"},{regex:/\&\&|\|\||\=|\!\=|\~|\!\~|\>|\<|\>\=|\<\=/,token:"operator"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0},{regex:/\w+[\w\.]*\w+/,token:"keyword"},{regex:L.escapeRegExp("@now"),token:"keyword"},{regex:L.escapeRegExp("@request.method"),token:"keyword"}]}))}he(()=>{const n={key:"Enter",run:r=>{y&&g("submit",o)}};return V(),t(11,f=new x({parent:m,state:C.create({doc:o,extensions:[pe(),ye(),me(),be(),ke(),C.allowMultipleSelections.of(!0),Ke(xe,{fallback:!0}),Ce(),qe(),we(),Se(),Le.of([n,...Ie,...Ee,Re.find(r=>r.key==="Mod-d"),...Ae,...ve]),x.lineWrapping,Be({override:[te],icons:!1}),M.of(z(u)),O.of(x.editable.of(!s)),D.of(C.readOnly.of(s)),H.of(J()),C.transactionFilter.of(r=>y&&r.newDoc.lines>1?[]:r),x.updateListener.of(r=>{!r.docChanged||s||(t(1,o=r.state.doc.toString()),W())})]})})),()=>{clearTimeout(B),N(),f==null||f.destroy()}});function ne(n){ge[n?"unshift":"push"](()=>{m=n,t(0,m)})}return e.$$set=n=>{"id"in n&&t(2,d=n.id),"value"in n&&t(1,o=n.value),"disabled"in n&&t(3,s=n.disabled),"placeholder"in n&&t(4,u=n.placeholder),"baseCollection"in n&&t(5,a=n.baseCollection),"singleLine"in n&&t(6,y=n.singleLine),"extraAutocompleteKeys"in n&&t(7,E=n.extraAutocompleteKeys),"disableRequestKeys"in n&&t(8,k=n.disableRequestKeys),"disableIndirectCollectionsKeys"in n&&t(9,K=n.disableIndirectCollectionsKeys)},e.$$.update=()=>{e.$$.dirty[0]&32&&t(13,w=We(a)),e.$$.dirty[0]&25352&&!s&&(A!=w||k!==-1||K!==-1)&&(t(14,A=w),X()),e.$$.dirty[0]&4&&d&&V(),e.$$.dirty[0]&2080&&f&&(a==null?void 0:a.schema)&&f.dispatch({effects:[H.reconfigure(J())]}),e.$$.dirty[0]&6152&&f&&R!=s&&(f.dispatch({effects:[O.reconfigure(x.editable.of(!s)),D.reconfigure(C.readOnly.of(s))]}),t(12,R=s),W()),e.$$.dirty[0]&2050&&f&&o!=f.state.doc.toString()&&f.dispatch({changes:{from:0,to:f.state.doc.length,insert:o}}),e.$$.dirty[0]&2064&&f&&typeof u<"u"&&f.dispatch({effects:[M.reconfigure(z(u))]})},[m,o,d,s,u,a,y,E,k,K,v,f,R,w,A,ne]}class Pe extends ie{constructor(i){super(),re(this,i,Ne,Ue,se,{id:2,value:1,disabled:3,placeholder:4,baseCollection:5,singleLine:6,extraAutocompleteKeys:7,disableRequestKeys:8,disableIndirectCollectionsKeys:9,focus:10},null,[-1,-1])}get focus(){return this.$$.ctx[10]}}export{Pe as default}; diff --git a/ui/dist/assets/ListApiDocs.68f52edd.css b/ui/dist/assets/ListApiDocs.68f52edd.css deleted file mode 100644 index b4b4197471f52830c32855ff55913989d418fb5b..0000000000000000000000000000000000000000 --- a/ui/dist/assets/ListApiDocs.68f52edd.css +++ /dev/null @@ -1 +0,0 @@ -.filter-op.svelte-1w7s5nw{display:inline-block;vertical-align:top;margin-right:5px;width:30px;text-align:center;padding-left:0;padding-right:0} diff --git a/ui/dist/assets/ListApiDocs.ce5b163a.js b/ui/dist/assets/ListApiDocs.ce5b163a.js deleted file mode 100644 index 51da92ade037d3422eaf48651e063eed4a571128..0000000000000000000000000000000000000000 --- a/ui/dist/assets/ListApiDocs.ce5b163a.js +++ /dev/null @@ -1,134 +0,0 @@ -import{S as Et,i as Nt,s as Mt,e as l,b as a,E as qt,f as d,g as p,u as Ht,y as xt,o as u,w as k,h as e,M as Ae,c as ge,m as ye,x as Ue,N as Lt,O as Dt,k as It,P as Bt,n as zt,t as ce,a as de,d as ve,Q as Gt,C as je,p as Ut,r as Ee}from"./index.662e825a.js";import{S as jt}from"./SdkTabs.1e98a608.js";function Qt(r){let s,n,i;return{c(){s=l("span"),s.textContent="Show details",n=a(),i=l("i"),d(s,"class","txt"),d(i,"class","ri-arrow-down-s-line")},m(c,f){p(c,s,f),p(c,n,f),p(c,i,f)},d(c){c&&u(s),c&&u(n),c&&u(i)}}}function Jt(r){let s,n,i;return{c(){s=l("span"),s.textContent="Hide details",n=a(),i=l("i"),d(s,"class","txt"),d(i,"class","ri-arrow-up-s-line")},m(c,f){p(c,s,f),p(c,n,f),p(c,i,f)},d(c){c&&u(s),c&&u(n),c&&u(i)}}}function Tt(r){let s,n,i,c,f,m,_,w,b,$,h,M,W,fe,T,pe,O,G,C,H,Fe,A,E,Ce,U,X,q,Y,xe,j,Q,D,P,ue,Z,v,I,ee,me,te,N,B,le,be,se,x,J,ne,Le,K,he,V;return{c(){s=l("p"),s.innerHTML=`The syntax basically follows the format - OPERAND - OPERATOR - OPERAND, where:`,n=a(),i=l("ul"),c=l("li"),c.innerHTML=`OPERAND - could be any of the above field literal, string (single - or double quoted), number, null, true, false`,f=a(),m=l("li"),_=l("code"),_.textContent="OPERATOR",w=k(` - is one of: - `),b=l("br"),$=a(),h=l("ul"),M=l("li"),W=l("code"),W.textContent="=",fe=a(),T=l("span"),T.textContent="Equal",pe=a(),O=l("li"),G=l("code"),G.textContent="!=",C=a(),H=l("span"),H.textContent="NOT equal",Fe=a(),A=l("li"),E=l("code"),E.textContent=">",Ce=a(),U=l("span"),U.textContent="Greater than",X=a(),q=l("li"),Y=l("code"),Y.textContent=">=",xe=a(),j=l("span"),j.textContent="Greater than or equal",Q=a(),D=l("li"),P=l("code"),P.textContent="<",ue=a(),Z=l("span"),Z.textContent="Less than or equal",v=a(),I=l("li"),ee=l("code"),ee.textContent="<=",me=a(),te=l("span"),te.textContent="Less than or equal",N=a(),B=l("li"),le=l("code"),le.textContent="~",be=a(),se=l("span"),se.textContent=`Like/Contains (if not specified auto wraps the right string OPERAND in a "%" for - wildcard match)`,x=a(),J=l("li"),ne=l("code"),ne.textContent="!~",Le=a(),K=l("span"),K.textContent=`NOT Like/Contains (if not specified auto wraps the right string OPERAND in a "%" for - wildcard match)`,he=a(),V=l("p"),V.innerHTML=`To group and combine several expressions you could use brackets - (...), && (AND) and || (OR) tokens.`,d(_,"class","txt-danger"),d(W,"class","filter-op svelte-1w7s5nw"),d(T,"class","txt-hint"),d(G,"class","filter-op svelte-1w7s5nw"),d(H,"class","txt-hint"),d(E,"class","filter-op svelte-1w7s5nw"),d(U,"class","txt-hint"),d(Y,"class","filter-op svelte-1w7s5nw"),d(j,"class","txt-hint"),d(P,"class","filter-op svelte-1w7s5nw"),d(Z,"class","txt-hint"),d(ee,"class","filter-op svelte-1w7s5nw"),d(te,"class","txt-hint"),d(le,"class","filter-op svelte-1w7s5nw"),d(se,"class","txt-hint"),d(ne,"class","filter-op svelte-1w7s5nw"),d(K,"class","txt-hint")},m(F,R){p(F,s,R),p(F,n,R),p(F,i,R),e(i,c),e(i,f),e(i,m),e(m,_),e(m,w),e(m,b),e(m,$),e(m,h),e(h,M),e(M,W),e(M,fe),e(M,T),e(h,pe),e(h,O),e(O,G),e(O,C),e(O,H),e(h,Fe),e(h,A),e(A,E),e(A,Ce),e(A,U),e(h,X),e(h,q),e(q,Y),e(q,xe),e(q,j),e(h,Q),e(h,D),e(D,P),e(D,ue),e(D,Z),e(h,v),e(h,I),e(I,ee),e(I,me),e(I,te),e(h,N),e(h,B),e(B,le),e(B,be),e(B,se),e(h,x),e(h,J),e(J,ne),e(J,Le),e(J,K),p(F,he,R),p(F,V,R)},d(F){F&&u(s),F&&u(n),F&&u(i),F&&u(he),F&&u(V)}}}function Kt(r){let s,n,i,c,f;function m($,h){return $[0]?Jt:Qt}let _=m(r),w=_(r),b=r[0]&&Tt();return{c(){s=l("button"),w.c(),n=a(),b&&b.c(),i=qt(),d(s,"class","btn btn-sm btn-secondary m-t-5")},m($,h){p($,s,h),w.m(s,null),p($,n,h),b&&b.m($,h),p($,i,h),c||(f=Ht(s,"click",r[1]),c=!0)},p($,[h]){_!==(_=m($))&&(w.d(1),w=_($),w&&(w.c(),w.m(s,null))),$[0]?b||(b=Tt(),b.c(),b.m(i.parentNode,i)):b&&(b.d(1),b=null)},i:xt,o:xt,d($){$&&u(s),w.d(),$&&u(n),b&&b.d($),$&&u(i),c=!1,f()}}}function Vt(r,s,n){let i=!1;function c(){n(0,i=!i)}return[i,c]}class Wt extends Et{constructor(s){super(),Nt(this,s,Vt,Kt,Mt,{})}}function Pt(r,s,n){const i=r.slice();return i[6]=s[n],i}function Rt(r,s,n){const i=r.slice();return i[6]=s[n],i}function St(r){let s;return{c(){s=l("p"),s.innerHTML="Requires admin Authorization:TOKEN header",d(s,"class","txt-hint txt-sm txt-right")},m(n,i){p(n,s,i)},d(n){n&&u(s)}}}function Ot(r,s){let n,i=s[6].code+"",c,f,m,_;function w(){return s[5](s[6])}return{key:r,first:null,c(){n=l("div"),c=k(i),f=a(),d(n,"class","tab-item"),Ee(n,"active",s[2]===s[6].code),this.first=n},m(b,$){p(b,n,$),e(n,c),e(n,f),m||(_=Ht(n,"click",w),m=!0)},p(b,$){s=b,$&20&&Ee(n,"active",s[2]===s[6].code)},d(b){b&&u(n),m=!1,_()}}}function At(r,s){let n,i,c,f;return i=new Ae({props:{content:s[6].body}}),{key:r,first:null,c(){n=l("div"),ge(i.$$.fragment),c=a(),d(n,"class","tab-item"),Ee(n,"active",s[2]===s[6].code),this.first=n},m(m,_){p(m,n,_),ye(i,n,null),e(n,c),f=!0},p(m,_){s=m,(!f||_&20)&&Ee(n,"active",s[2]===s[6].code)},i(m){f||(ce(i.$$.fragment,m),f=!0)},o(m){de(i.$$.fragment,m),f=!1},d(m){m&&u(n),ve(i)}}}function Xt(r){var mt,bt,ht,_t,$t,kt;let s,n,i=r[0].name+"",c,f,m,_,w,b,$,h=r[0].name+"",M,W,fe,T,pe,O,G,C,H,Fe,A,E,Ce,U,X=r[0].name+"",q,Y,xe,j,Q,D,P,ue,Z,v,I,ee,me,te,N,B,le,be,se,x,J,ne,Le,K,he,V,F,R,Qe,ie,Ne,Je,Me,Ke,_e,Ve,$e,We,ke,Xe,oe,He,Ye,qe,Ze,y,et,we,tt,lt,st,De,nt,Ie,it,ot,at,Be,rt,ze,Te,Ge,ae,Pe,z=[],ct=new Map,dt,Re,S=[],ft=new Map,re;T=new jt({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${r[3]}'); - - ... - - // fetch a paginated records list - const resultList = await pb.collection('${(mt=r[0])==null?void 0:mt.name}').getList(1, 50, { - filter: 'created >= "2022-01-01 00:00:00" && someFiled1 != someField2', - }); - - // you can also fetch all records at once via getFullList - const records = await pb.collection('${(bt=r[0])==null?void 0:bt.name}').getFullList(200 /* batch size */, { - sort: '-created', - }); - - // or fetch only the first record that matches the specified filter - const record = await pb.collection('${(ht=r[0])==null?void 0:ht.name}').getFirstListItem('someField="test"', { - expand: 'relField1,relField2.subRelField', - }); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${r[3]}'); - - ... - - // fetch a paginated records list - final resultList = await pb.collection('${(_t=r[0])==null?void 0:_t.name}').getList( - page: 1, - perPage: 50, - filter: 'created >= "2022-01-01 00:00:00" && someFiled1 != someField2', - ); - - // you can also fetch all records at once via getFullList - final records = await pb.collection('${($t=r[0])==null?void 0:$t.name}').getFullList( - batch: 200, - sort: '-created', - ); - - // or fetch only the first record that matches the specified filter - final record = await pb.collection('${(kt=r[0])==null?void 0:kt.name}').getFirstListItem( - 'someField="test"', - expand: 'relField1,relField2.subRelField', - ); - `}});let L=r[1]&&St();R=new Ae({props:{content:` - // DESC by created and ASC by id - ?sort=-created,id - `}}),$e=new Ae({props:{content:` - ?filter=(id='abc' && created>'2022-01-01') - `}}),ke=new Wt({}),we=new Ae({props:{content:"?expand=relField1,relField2.subRelField"}});let Oe=r[4];const pt=t=>t[6].code;for(let t=0;tt[6].code;for(let t=0;tParam - Type - Description`,Z=a(),v=l("tbody"),I=l("tr"),I.innerHTML=`page - Number - The page (aka. offset) of the paginated list (default to 1).`,ee=a(),me=l("tr"),me.innerHTML=`perPage - Number - Specify the max returned records per page (default to 30).`,te=a(),N=l("tr"),B=l("td"),B.textContent="sort",le=a(),be=l("td"),be.innerHTML='String',se=a(),x=l("td"),J=k("Specify the records order attribute(s). "),ne=l("br"),Le=k(` - Add `),K=l("code"),K.textContent="-",he=k(" / "),V=l("code"),V.textContent="+",F=k(` (default) in front of the attribute for DESC / ASC order. - Ex.: - `),ge(R.$$.fragment),Qe=a(),ie=l("tr"),Ne=l("td"),Ne.textContent="filter",Je=a(),Me=l("td"),Me.innerHTML='String',Ke=a(),_e=l("td"),Ve=k(`Filter the returned records. Ex.: - `),ge($e.$$.fragment),We=a(),ge(ke.$$.fragment),Xe=a(),oe=l("tr"),He=l("td"),He.textContent="expand",Ye=a(),qe=l("td"),qe.innerHTML='String',Ze=a(),y=l("td"),et=k(`Auto expand record relations. Ex.: - `),ge(we.$$.fragment),tt=k(` - Supports up to 6-levels depth nested relations expansion. `),lt=l("br"),st=k(` - The expanded relations will be appended to each individual record under the - `),De=l("code"),De.textContent="expand",nt=k(" property (eg. "),Ie=l("code"),Ie.textContent='"expand": {"relField1": {...}, ...}',it=k(`). - `),ot=l("br"),at=k(` - Only the relations to which the request user has permissions to `),Be=l("strong"),Be.textContent="view",rt=k(" will be expanded."),ze=a(),Te=l("div"),Te.textContent="Responses",Ge=a(),ae=l("div"),Pe=l("div");for(let t=0;t= "2022-01-01 00:00:00" && someFiled1 != someField2', - }); - - // you can also fetch all records at once via getFullList - const records = await pb.collection('${(gt=t[0])==null?void 0:gt.name}').getFullList(200 /* batch size */, { - sort: '-created', - }); - - // or fetch only the first record that matches the specified filter - const record = await pb.collection('${(yt=t[0])==null?void 0:yt.name}').getFirstListItem('someField="test"', { - expand: 'relField1,relField2.subRelField', - }); - `),o&9&&(g.dart=` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${t[3]}'); - - ... - - // fetch a paginated records list - final resultList = await pb.collection('${(vt=t[0])==null?void 0:vt.name}').getList( - page: 1, - perPage: 50, - filter: 'created >= "2022-01-01 00:00:00" && someFiled1 != someField2', - ); - - // you can also fetch all records at once via getFullList - final records = await pb.collection('${(Ft=t[0])==null?void 0:Ft.name}').getFullList( - batch: 200, - sort: '-created', - ); - - // or fetch only the first record that matches the specified filter - final record = await pb.collection('${(Ct=t[0])==null?void 0:Ct.name}').getFirstListItem( - 'someField="test"', - expand: 'relField1,relField2.subRelField', - ); - `),T.$set(g),(!re||o&1)&&X!==(X=t[0].name+"")&&Ue(q,X),t[1]?L||(L=St(),L.c(),L.m(C,null)):L&&(L.d(1),L=null),o&20&&(Oe=t[4],z=Lt(z,o,pt,1,t,Oe,ct,Pe,Dt,Ot,null,Rt)),o&20&&(Se=t[4],It(),S=Lt(S,o,ut,1,t,Se,ft,Re,Bt,At,null,Pt),zt())},i(t){if(!re){ce(T.$$.fragment,t),ce(R.$$.fragment,t),ce($e.$$.fragment,t),ce(ke.$$.fragment,t),ce(we.$$.fragment,t);for(let o=0;on(2,m=b.code);return r.$$set=b=>{"collection"in b&&n(0,f=b.collection)},r.$$.update=()=>{r.$$.dirty&1&&n(1,i=(f==null?void 0:f.listRule)===null),r.$$.dirty&3&&f!=null&&f.id&&(_.push({code:200,body:JSON.stringify({page:1,perPage:30,totalPages:1,totalItems:2,items:[je.dummyCollectionRecord(f),je.dummyCollectionRecord(f)]},null,2)}),_.push({code:400,body:` - { - "code": 400, - "message": "Something went wrong while processing your request. Invalid filter.", - "data": {} - } - `}),i&&_.push({code:403,body:` - { - "code": 403, - "message": "Only admins can access this action.", - "data": {} - } - `}))},n(3,c=je.getApiExampleUrl(Ut.baseUrl)),[f,i,m,c,_,w]}class tl extends Et{constructor(s){super(),Nt(this,s,Yt,Xt,Mt,{collection:0})}}export{tl as default}; diff --git a/ui/dist/assets/ListExternalAuthsDocs.084671ec.js b/ui/dist/assets/ListExternalAuthsDocs.084671ec.js deleted file mode 100644 index 13b16495896bd5966964902cdf35d2b1c9e6f37a..0000000000000000000000000000000000000000 --- a/ui/dist/assets/ListExternalAuthsDocs.084671ec.js +++ /dev/null @@ -1,93 +0,0 @@ -import{S as Be,i as qe,s as Me,e as i,w as v,b as _,c as Ie,f as b,g as r,h as s,m as Se,x as U,N as Pe,O as Oe,k as Le,P as We,n as ze,t as te,a as le,o as d,d as Ee,Q as De,C as He,p as Re,r as j,u as Ue,M as je}from"./index.662e825a.js";import{S as Ne}from"./SdkTabs.1e98a608.js";function ye(a,l,o){const n=a.slice();return n[5]=l[o],n}function Ae(a,l,o){const n=a.slice();return n[5]=l[o],n}function Ce(a,l){let o,n=l[5].code+"",f,h,c,u;function m(){return l[4](l[5])}return{key:a,first:null,c(){o=i("button"),f=v(n),h=_(),b(o,"class","tab-item"),j(o,"active",l[1]===l[5].code),this.first=o},m(g,P){r(g,o,P),s(o,f),s(o,h),c||(u=Ue(o,"click",m),c=!0)},p(g,P){l=g,P&4&&n!==(n=l[5].code+"")&&U(f,n),P&6&&j(o,"active",l[1]===l[5].code)},d(g){g&&d(o),c=!1,u()}}}function Te(a,l){let o,n,f,h;return n=new je({props:{content:l[5].body}}),{key:a,first:null,c(){o=i("div"),Ie(n.$$.fragment),f=_(),b(o,"class","tab-item"),j(o,"active",l[1]===l[5].code),this.first=o},m(c,u){r(c,o,u),Se(n,o,null),s(o,f),h=!0},p(c,u){l=c;const m={};u&4&&(m.content=l[5].body),n.$set(m),(!h||u&6)&&j(o,"active",l[1]===l[5].code)},i(c){h||(te(n.$$.fragment,c),h=!0)},o(c){le(n.$$.fragment,c),h=!1},d(c){c&&d(o),Ee(n)}}}function Ge(a){var be,he,_e,ke;let l,o,n=a[0].name+"",f,h,c,u,m,g,P,L=a[0].name+"",N,oe,se,G,K,y,Q,I,F,w,W,ae,z,A,ne,J,D=a[0].name+"",V,ie,X,ce,re,H,Y,S,Z,E,x,B,ee,C,q,$=[],de=new Map,ue,M,k=[],pe=new Map,T;y=new Ne({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${a[3]}'); - - ... - - await pb.collection('${(be=a[0])==null?void 0:be.name}').authWithPassword('test@example.com', '123456'); - - const result = await pb.collection('${(he=a[0])==null?void 0:he.name}').listExternalAuths( - pb.authStore.model.id - ); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${a[3]}'); - - ... - - await pb.collection('${(_e=a[0])==null?void 0:_e.name}').authWithPassword('test@example.com', '123456'); - - final result = await pb.collection('${(ke=a[0])==null?void 0:ke.name}').listExternalAuths( - pb.authStore.model.id, - ); - `}});let R=a[2];const fe=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eAuthorization:TOKEN header",Y=_(),S=i("div"),S.textContent="Path Parameters",Z=_(),E=i("table"),E.innerHTML=`Param - Type - Description - id - String - ID of the auth record.`,x=_(),B=i("div"),B.textContent="Responses",ee=_(),C=i("div"),q=i("div");for(let e=0;e<$.length;e+=1)$[e].c();ue=_(),M=i("div");for(let e=0;eo(1,h=m.code);return a.$$set=m=>{"collection"in m&&o(0,f=m.collection)},a.$$.update=()=>{a.$$.dirty&1&&o(2,c=[{code:200,body:` - [ - { - "id": "8171022dc95a4e8", - "created": "2022-09-01 10:24:18.434", - "updated": "2022-09-01 10:24:18.889", - "recordId": "e22581b6f1d44ea", - "collectionId": "${f.id}", - "provider": "google", - "providerId": "2da15468800514p", - }, - { - "id": "171022dc895a4e8", - "created": "2022-09-01 10:24:18.434", - "updated": "2022-09-01 10:24:18.889", - "recordId": "e22581b6f1d44ea", - "collectionId": "${f.id}", - "provider": "twitter", - "providerId": "720688005140514", - } - ] - `},{code:401,body:` - { - "code": 401, - "message": "The request requires valid record authorization token to be set.", - "data": {} - } - `},{code:403,body:` - { - "code": 403, - "message": "The authorized record model is not allowed to perform this action.", - "data": {} - } - `},{code:404,body:` - { - "code": 404, - "message": "The requested resource wasn't found.", - "data": {} - } - `}])},o(3,n=He.getApiExampleUrl(Re.baseUrl)),[f,h,c,n,u]}class Je extends Be{constructor(l){super(),qe(this,l,Ke,Ge,Me,{collection:0})}}export{Je as default}; diff --git a/ui/dist/assets/PageAdminConfirmPasswordReset.998f445a.js b/ui/dist/assets/PageAdminConfirmPasswordReset.998f445a.js deleted file mode 100644 index 745e1f4b0d6d3e47c9264994b3739b9a52c87461..0000000000000000000000000000000000000000 --- a/ui/dist/assets/PageAdminConfirmPasswordReset.998f445a.js +++ /dev/null @@ -1,2 +0,0 @@ -import{S as E,i as G,s as I,F as K,c as A,m as B,t as H,a as N,d as T,C as M,q as J,e as c,w as q,b as C,f as u,r as L,g as b,h as _,u as h,v as O,j as Q,l as U,o as w,A as V,p as W,B as X,D as Y,x as Z,z as S}from"./index.662e825a.js";function y(f){let e,o,s;return{c(){e=q("for "),o=c("strong"),s=q(f[3]),u(o,"class","txt-nowrap")},m(l,t){b(l,e,t),b(l,o,t),_(o,s)},p(l,t){t&8&&Z(s,l[3])},d(l){l&&w(e),l&&w(o)}}}function x(f){let e,o,s,l,t,r,p,d;return{c(){e=c("label"),o=q("New password"),l=C(),t=c("input"),u(e,"for",s=f[8]),u(t,"type","password"),u(t,"id",r=f[8]),t.required=!0,t.autofocus=!0},m(n,i){b(n,e,i),_(e,o),b(n,l,i),b(n,t,i),S(t,f[0]),t.focus(),p||(d=h(t,"input",f[6]),p=!0)},p(n,i){i&256&&s!==(s=n[8])&&u(e,"for",s),i&256&&r!==(r=n[8])&&u(t,"id",r),i&1&&t.value!==n[0]&&S(t,n[0])},d(n){n&&w(e),n&&w(l),n&&w(t),p=!1,d()}}}function ee(f){let e,o,s,l,t,r,p,d;return{c(){e=c("label"),o=q("New password confirm"),l=C(),t=c("input"),u(e,"for",s=f[8]),u(t,"type","password"),u(t,"id",r=f[8]),t.required=!0},m(n,i){b(n,e,i),_(e,o),b(n,l,i),b(n,t,i),S(t,f[1]),p||(d=h(t,"input",f[7]),p=!0)},p(n,i){i&256&&s!==(s=n[8])&&u(e,"for",s),i&256&&r!==(r=n[8])&&u(t,"id",r),i&2&&t.value!==n[1]&&S(t,n[1])},d(n){n&&w(e),n&&w(l),n&&w(t),p=!1,d()}}}function te(f){let e,o,s,l,t,r,p,d,n,i,g,R,P,v,k,F,j,m=f[3]&&y(f);return r=new J({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:f}}}),d=new J({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:f}}}),{c(){e=c("form"),o=c("div"),s=c("h4"),l=q(`Reset your admin password - `),m&&m.c(),t=C(),A(r.$$.fragment),p=C(),A(d.$$.fragment),n=C(),i=c("button"),g=c("span"),g.textContent="Set new password",R=C(),P=c("div"),v=c("a"),v.textContent="Back to login",u(s,"class","m-b-xs"),u(o,"class","content txt-center m-b-sm"),u(g,"class","txt"),u(i,"type","submit"),u(i,"class","btn btn-lg btn-block"),i.disabled=f[2],L(i,"btn-loading",f[2]),u(e,"class","m-b-base"),u(v,"href","/login"),u(v,"class","link-hint"),u(P,"class","content txt-center")},m(a,$){b(a,e,$),_(e,o),_(o,s),_(s,l),m&&m.m(s,null),_(e,t),B(r,e,null),_(e,p),B(d,e,null),_(e,n),_(e,i),_(i,g),b(a,R,$),b(a,P,$),_(P,v),k=!0,F||(j=[h(e,"submit",O(f[4])),Q(U.call(null,v))],F=!0)},p(a,$){a[3]?m?m.p(a,$):(m=y(a),m.c(),m.m(s,null)):m&&(m.d(1),m=null);const z={};$&769&&(z.$$scope={dirty:$,ctx:a}),r.$set(z);const D={};$&770&&(D.$$scope={dirty:$,ctx:a}),d.$set(D),(!k||$&4)&&(i.disabled=a[2]),(!k||$&4)&&L(i,"btn-loading",a[2])},i(a){k||(H(r.$$.fragment,a),H(d.$$.fragment,a),k=!0)},o(a){N(r.$$.fragment,a),N(d.$$.fragment,a),k=!1},d(a){a&&w(e),m&&m.d(),T(r),T(d),a&&w(R),a&&w(P),F=!1,V(j)}}}function se(f){let e,o;return e=new K({props:{$$slots:{default:[te]},$$scope:{ctx:f}}}),{c(){A(e.$$.fragment)},m(s,l){B(e,s,l),o=!0},p(s,[l]){const t={};l&527&&(t.$$scope={dirty:l,ctx:s}),e.$set(t)},i(s){o||(H(e.$$.fragment,s),o=!0)},o(s){N(e.$$.fragment,s),o=!1},d(s){T(e,s)}}}function le(f,e,o){let s,{params:l}=e,t="",r="",p=!1;async function d(){if(!p){o(2,p=!0);try{await W.admins.confirmPasswordReset(l==null?void 0:l.token,t,r),X("Successfully set a new admin password."),Y("/")}catch(g){W.errorResponseHandler(g)}o(2,p=!1)}}function n(){t=this.value,o(0,t)}function i(){r=this.value,o(1,r)}return f.$$set=g=>{"params"in g&&o(5,l=g.params)},f.$$.update=()=>{f.$$.dirty&32&&o(3,s=M.getJWTPayload(l==null?void 0:l.token).email||"")},[t,r,p,s,d,l,n,i]}class ae extends E{constructor(e){super(),G(this,e,le,se,I,{params:5})}}export{ae as default}; diff --git a/ui/dist/assets/PageAdminRequestPasswordReset.1557a730.js b/ui/dist/assets/PageAdminRequestPasswordReset.1557a730.js deleted file mode 100644 index 8d5a1b7cde18f8cf67a89ae1e95381b11930ab91..0000000000000000000000000000000000000000 --- a/ui/dist/assets/PageAdminRequestPasswordReset.1557a730.js +++ /dev/null @@ -1,2 +0,0 @@ -import{S as M,i as T,s as j,F as z,c as H,m as L,t as w,a as y,d as S,b as g,e as _,f as p,g as k,h as d,j as A,l as B,k as N,n as D,o as v,p as C,q as G,r as F,u as E,v as I,w as h,x as J,y as P,z as R}from"./index.662e825a.js";function K(c){let e,s,n,l,t,o,f,m,i,a,b,u;return l=new G({props:{class:"form-field required",name:"email",$$slots:{default:[Q,({uniqueId:r})=>({5:r}),({uniqueId:r})=>r?32:0]},$$scope:{ctx:c}}}),{c(){e=_("form"),s=_("div"),s.innerHTML=`

    Forgotten admin password

    -

    Enter the email associated with your account and we\u2019ll send you a recovery link:

    `,n=g(),H(l.$$.fragment),t=g(),o=_("button"),f=_("i"),m=g(),i=_("span"),i.textContent="Send recovery link",p(s,"class","content txt-center m-b-sm"),p(f,"class","ri-mail-send-line"),p(i,"class","txt"),p(o,"type","submit"),p(o,"class","btn btn-lg btn-block"),o.disabled=c[1],F(o,"btn-loading",c[1]),p(e,"class","m-b-base")},m(r,$){k(r,e,$),d(e,s),d(e,n),L(l,e,null),d(e,t),d(e,o),d(o,f),d(o,m),d(o,i),a=!0,b||(u=E(e,"submit",I(c[3])),b=!0)},p(r,$){const q={};$&97&&(q.$$scope={dirty:$,ctx:r}),l.$set(q),(!a||$&2)&&(o.disabled=r[1]),(!a||$&2)&&F(o,"btn-loading",r[1])},i(r){a||(w(l.$$.fragment,r),a=!0)},o(r){y(l.$$.fragment,r),a=!1},d(r){r&&v(e),S(l),b=!1,u()}}}function O(c){let e,s,n,l,t,o,f,m,i;return{c(){e=_("div"),s=_("div"),s.innerHTML='',n=g(),l=_("div"),t=_("p"),o=h("Check "),f=_("strong"),m=h(c[0]),i=h(" for the recovery link."),p(s,"class","icon"),p(f,"class","txt-nowrap"),p(l,"class","content"),p(e,"class","alert alert-success")},m(a,b){k(a,e,b),d(e,s),d(e,n),d(e,l),d(l,t),d(t,o),d(t,f),d(f,m),d(t,i)},p(a,b){b&1&&J(m,a[0])},i:P,o:P,d(a){a&&v(e)}}}function Q(c){let e,s,n,l,t,o,f,m;return{c(){e=_("label"),s=h("Email"),l=g(),t=_("input"),p(e,"for",n=c[5]),p(t,"type","email"),p(t,"id",o=c[5]),t.required=!0,t.autofocus=!0},m(i,a){k(i,e,a),d(e,s),k(i,l,a),k(i,t,a),R(t,c[0]),t.focus(),f||(m=E(t,"input",c[4]),f=!0)},p(i,a){a&32&&n!==(n=i[5])&&p(e,"for",n),a&32&&o!==(o=i[5])&&p(t,"id",o),a&1&&t.value!==i[0]&&R(t,i[0])},d(i){i&&v(e),i&&v(l),i&&v(t),f=!1,m()}}}function U(c){let e,s,n,l,t,o,f,m;const i=[O,K],a=[];function b(u,r){return u[2]?0:1}return e=b(c),s=a[e]=i[e](c),{c(){s.c(),n=g(),l=_("div"),t=_("a"),t.textContent="Back to login",p(t,"href","/login"),p(t,"class","link-hint"),p(l,"class","content txt-center")},m(u,r){a[e].m(u,r),k(u,n,r),k(u,l,r),d(l,t),o=!0,f||(m=A(B.call(null,t)),f=!0)},p(u,r){let $=e;e=b(u),e===$?a[e].p(u,r):(N(),y(a[$],1,1,()=>{a[$]=null}),D(),s=a[e],s?s.p(u,r):(s=a[e]=i[e](u),s.c()),w(s,1),s.m(n.parentNode,n))},i(u){o||(w(s),o=!0)},o(u){y(s),o=!1},d(u){a[e].d(u),u&&v(n),u&&v(l),f=!1,m()}}}function V(c){let e,s;return e=new z({props:{$$slots:{default:[U]},$$scope:{ctx:c}}}),{c(){H(e.$$.fragment)},m(n,l){L(e,n,l),s=!0},p(n,[l]){const t={};l&71&&(t.$$scope={dirty:l,ctx:n}),e.$set(t)},i(n){s||(w(e.$$.fragment,n),s=!0)},o(n){y(e.$$.fragment,n),s=!1},d(n){S(e,n)}}}function W(c,e,s){let n="",l=!1,t=!1;async function o(){if(!l){s(1,l=!0);try{await C.admins.requestPasswordReset(n),s(2,t=!0)}catch(m){C.errorResponseHandler(m)}s(1,l=!1)}}function f(){n=this.value,s(0,n)}return[n,l,t,o,f]}class Y extends M{constructor(e){super(),T(this,e,W,V,j,{})}}export{Y as default}; diff --git a/ui/dist/assets/PageRecordConfirmEmailChange.824a9bd8.js b/ui/dist/assets/PageRecordConfirmEmailChange.824a9bd8.js deleted file mode 100644 index dddb58619443e3b7314dbc3fc96ff73021bbd03f..0000000000000000000000000000000000000000 --- a/ui/dist/assets/PageRecordConfirmEmailChange.824a9bd8.js +++ /dev/null @@ -1,4 +0,0 @@ -import{S as z,i as G,s as I,F as J,c as S,m as T,t as v,a as y,d as L,C as M,E as N,g as _,k as W,n as Y,o as b,R as j,G as A,p as B,q as D,e as m,w as C,b as h,f as d,r as F,h as k,u as q,v as K,y as E,x as O,z as H}from"./index.662e825a.js";function Q(r){let e,t,l,s,n,o,c,i,a,u,g,$,p=r[3]&&R(r);return o=new D({props:{class:"form-field required",name:"password",$$slots:{default:[V,({uniqueId:f})=>({8:f}),({uniqueId:f})=>f?256:0]},$$scope:{ctx:r}}}),{c(){e=m("form"),t=m("div"),l=m("h5"),s=C(`Type your password to confirm changing your email address - `),p&&p.c(),n=h(),S(o.$$.fragment),c=h(),i=m("button"),a=m("span"),a.textContent="Confirm new email",d(t,"class","content txt-center m-b-base"),d(a,"class","txt"),d(i,"type","submit"),d(i,"class","btn btn-lg btn-block"),i.disabled=r[1],F(i,"btn-loading",r[1])},m(f,w){_(f,e,w),k(e,t),k(t,l),k(l,s),p&&p.m(l,null),k(e,n),T(o,e,null),k(e,c),k(e,i),k(i,a),u=!0,g||($=q(e,"submit",K(r[4])),g=!0)},p(f,w){f[3]?p?p.p(f,w):(p=R(f),p.c(),p.m(l,null)):p&&(p.d(1),p=null);const P={};w&769&&(P.$$scope={dirty:w,ctx:f}),o.$set(P),(!u||w&2)&&(i.disabled=f[1]),(!u||w&2)&&F(i,"btn-loading",f[1])},i(f){u||(v(o.$$.fragment,f),u=!0)},o(f){y(o.$$.fragment,f),u=!1},d(f){f&&b(e),p&&p.d(),L(o),g=!1,$()}}}function U(r){let e,t,l,s,n;return{c(){e=m("div"),e.innerHTML=`
    -

    Successfully changed the user email address.

    -

    You can now sign in with your new email address.

    `,t=h(),l=m("button"),l.textContent="Close",d(e,"class","alert alert-success"),d(l,"type","button"),d(l,"class","btn btn-secondary btn-block")},m(o,c){_(o,e,c),_(o,t,c),_(o,l,c),s||(n=q(l,"click",r[6]),s=!0)},p:E,i:E,o:E,d(o){o&&b(e),o&&b(t),o&&b(l),s=!1,n()}}}function R(r){let e,t,l;return{c(){e=C("to "),t=m("strong"),l=C(r[3]),d(t,"class","txt-nowrap")},m(s,n){_(s,e,n),_(s,t,n),k(t,l)},p(s,n){n&8&&O(l,s[3])},d(s){s&&b(e),s&&b(t)}}}function V(r){let e,t,l,s,n,o,c,i;return{c(){e=m("label"),t=C("Password"),s=h(),n=m("input"),d(e,"for",l=r[8]),d(n,"type","password"),d(n,"id",o=r[8]),n.required=!0,n.autofocus=!0},m(a,u){_(a,e,u),k(e,t),_(a,s,u),_(a,n,u),H(n,r[0]),n.focus(),c||(i=q(n,"input",r[7]),c=!0)},p(a,u){u&256&&l!==(l=a[8])&&d(e,"for",l),u&256&&o!==(o=a[8])&&d(n,"id",o),u&1&&n.value!==a[0]&&H(n,a[0])},d(a){a&&b(e),a&&b(s),a&&b(n),c=!1,i()}}}function X(r){let e,t,l,s;const n=[U,Q],o=[];function c(i,a){return i[2]?0:1}return e=c(r),t=o[e]=n[e](r),{c(){t.c(),l=N()},m(i,a){o[e].m(i,a),_(i,l,a),s=!0},p(i,a){let u=e;e=c(i),e===u?o[e].p(i,a):(W(),y(o[u],1,1,()=>{o[u]=null}),Y(),t=o[e],t?t.p(i,a):(t=o[e]=n[e](i),t.c()),v(t,1),t.m(l.parentNode,l))},i(i){s||(v(t),s=!0)},o(i){y(t),s=!1},d(i){o[e].d(i),i&&b(l)}}}function Z(r){let e,t;return e=new J({props:{nobranding:!0,$$slots:{default:[X]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(l,s){T(e,l,s),t=!0},p(l,[s]){const n={};s&527&&(n.$$scope={dirty:s,ctx:l}),e.$set(n)},i(l){t||(v(e.$$.fragment,l),t=!0)},o(l){y(e.$$.fragment,l),t=!1},d(l){L(e,l)}}}function x(r,e,t){let l,{params:s}=e,n="",o=!1,c=!1;async function i(){if(o)return;t(1,o=!0);const g=new j("../");try{const $=A(s==null?void 0:s.token);await g.collection($.collectionId).confirmEmailChange(s==null?void 0:s.token,n),t(2,c=!0)}catch($){B.errorResponseHandler($)}t(1,o=!1)}const a=()=>window.close();function u(){n=this.value,t(0,n)}return r.$$set=g=>{"params"in g&&t(5,s=g.params)},r.$$.update=()=>{r.$$.dirty&32&&t(3,l=M.getJWTPayload(s==null?void 0:s.token).newEmail||"")},[n,o,c,l,i,s,a,u]}class te extends z{constructor(e){super(),G(this,e,x,Z,I,{params:5})}}export{te as default}; diff --git a/ui/dist/assets/PageRecordConfirmPasswordReset.e9685272.js b/ui/dist/assets/PageRecordConfirmPasswordReset.e9685272.js deleted file mode 100644 index 5b5110344572e0fb997b7bafd451ee36d4f491c2..0000000000000000000000000000000000000000 --- a/ui/dist/assets/PageRecordConfirmPasswordReset.e9685272.js +++ /dev/null @@ -1,4 +0,0 @@ -import{S as J,i as M,s as W,F as Y,c as H,m as N,t as P,a as q,d as L,C as j,E as A,g as _,k as B,n as D,o as m,R as K,G as O,p as Q,q as E,e as b,w as R,b as y,f as p,r as G,h as w,u as S,v as U,y as F,x as V,z as h}from"./index.662e825a.js";function X(r){let e,l,s,n,t,o,c,u,i,a,v,k,g,C,d=r[4]&&I(r);return o=new E({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:r}}}),u=new E({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:r}}}),{c(){e=b("form"),l=b("div"),s=b("h5"),n=R(`Reset your user password - `),d&&d.c(),t=y(),H(o.$$.fragment),c=y(),H(u.$$.fragment),i=y(),a=b("button"),v=b("span"),v.textContent="Set new password",p(l,"class","content txt-center m-b-base"),p(v,"class","txt"),p(a,"type","submit"),p(a,"class","btn btn-lg btn-block"),a.disabled=r[2],G(a,"btn-loading",r[2])},m(f,$){_(f,e,$),w(e,l),w(l,s),w(s,n),d&&d.m(s,null),w(e,t),N(o,e,null),w(e,c),N(u,e,null),w(e,i),w(e,a),w(a,v),k=!0,g||(C=S(e,"submit",U(r[5])),g=!0)},p(f,$){f[4]?d?d.p(f,$):(d=I(f),d.c(),d.m(s,null)):d&&(d.d(1),d=null);const T={};$&3073&&(T.$$scope={dirty:$,ctx:f}),o.$set(T);const z={};$&3074&&(z.$$scope={dirty:$,ctx:f}),u.$set(z),(!k||$&4)&&(a.disabled=f[2]),(!k||$&4)&&G(a,"btn-loading",f[2])},i(f){k||(P(o.$$.fragment,f),P(u.$$.fragment,f),k=!0)},o(f){q(o.$$.fragment,f),q(u.$$.fragment,f),k=!1},d(f){f&&m(e),d&&d.d(),L(o),L(u),g=!1,C()}}}function Z(r){let e,l,s,n,t;return{c(){e=b("div"),e.innerHTML=`
    -

    Successfully changed the user password.

    -

    You can now sign in with your new password.

    `,l=y(),s=b("button"),s.textContent="Close",p(e,"class","alert alert-success"),p(s,"type","button"),p(s,"class","btn btn-secondary btn-block")},m(o,c){_(o,e,c),_(o,l,c),_(o,s,c),n||(t=S(s,"click",r[7]),n=!0)},p:F,i:F,o:F,d(o){o&&m(e),o&&m(l),o&&m(s),n=!1,t()}}}function I(r){let e,l,s;return{c(){e=R("for "),l=b("strong"),s=R(r[4])},m(n,t){_(n,e,t),_(n,l,t),w(l,s)},p(n,t){t&16&&V(s,n[4])},d(n){n&&m(e),n&&m(l)}}}function x(r){let e,l,s,n,t,o,c,u;return{c(){e=b("label"),l=R("New password"),n=y(),t=b("input"),p(e,"for",s=r[10]),p(t,"type","password"),p(t,"id",o=r[10]),t.required=!0,t.autofocus=!0},m(i,a){_(i,e,a),w(e,l),_(i,n,a),_(i,t,a),h(t,r[0]),t.focus(),c||(u=S(t,"input",r[8]),c=!0)},p(i,a){a&1024&&s!==(s=i[10])&&p(e,"for",s),a&1024&&o!==(o=i[10])&&p(t,"id",o),a&1&&t.value!==i[0]&&h(t,i[0])},d(i){i&&m(e),i&&m(n),i&&m(t),c=!1,u()}}}function ee(r){let e,l,s,n,t,o,c,u;return{c(){e=b("label"),l=R("New password confirm"),n=y(),t=b("input"),p(e,"for",s=r[10]),p(t,"type","password"),p(t,"id",o=r[10]),t.required=!0},m(i,a){_(i,e,a),w(e,l),_(i,n,a),_(i,t,a),h(t,r[1]),c||(u=S(t,"input",r[9]),c=!0)},p(i,a){a&1024&&s!==(s=i[10])&&p(e,"for",s),a&1024&&o!==(o=i[10])&&p(t,"id",o),a&2&&t.value!==i[1]&&h(t,i[1])},d(i){i&&m(e),i&&m(n),i&&m(t),c=!1,u()}}}function te(r){let e,l,s,n;const t=[Z,X],o=[];function c(u,i){return u[3]?0:1}return e=c(r),l=o[e]=t[e](r),{c(){l.c(),s=A()},m(u,i){o[e].m(u,i),_(u,s,i),n=!0},p(u,i){let a=e;e=c(u),e===a?o[e].p(u,i):(B(),q(o[a],1,1,()=>{o[a]=null}),D(),l=o[e],l?l.p(u,i):(l=o[e]=t[e](u),l.c()),P(l,1),l.m(s.parentNode,s))},i(u){n||(P(l),n=!0)},o(u){q(l),n=!1},d(u){o[e].d(u),u&&m(s)}}}function se(r){let e,l;return e=new Y({props:{nobranding:!0,$$slots:{default:[te]},$$scope:{ctx:r}}}),{c(){H(e.$$.fragment)},m(s,n){N(e,s,n),l=!0},p(s,[n]){const t={};n&2079&&(t.$$scope={dirty:n,ctx:s}),e.$set(t)},i(s){l||(P(e.$$.fragment,s),l=!0)},o(s){q(e.$$.fragment,s),l=!1},d(s){L(e,s)}}}function le(r,e,l){let s,{params:n}=e,t="",o="",c=!1,u=!1;async function i(){if(c)return;l(2,c=!0);const g=new K("../");try{const C=O(n==null?void 0:n.token);await g.collection(C.collectionId).confirmPasswordReset(n==null?void 0:n.token,t,o),l(3,u=!0)}catch(C){Q.errorResponseHandler(C)}l(2,c=!1)}const a=()=>window.close();function v(){t=this.value,l(0,t)}function k(){o=this.value,l(1,o)}return r.$$set=g=>{"params"in g&&l(6,n=g.params)},r.$$.update=()=>{r.$$.dirty&64&&l(4,s=j.getJWTPayload(n==null?void 0:n.token).email||"")},[t,o,c,u,s,i,n,a,v,k]}class oe extends J{constructor(e){super(),M(this,e,le,se,W,{params:6})}}export{oe as default}; diff --git a/ui/dist/assets/PageRecordConfirmVerification.195e3a55.js b/ui/dist/assets/PageRecordConfirmVerification.195e3a55.js deleted file mode 100644 index 3a6ff1d184c4bc1b8b09e3abbb95537eb1e31ed5..0000000000000000000000000000000000000000 --- a/ui/dist/assets/PageRecordConfirmVerification.195e3a55.js +++ /dev/null @@ -1,3 +0,0 @@ -import{S as v,i as y,s as w,F as x,c as C,m as g,t as $,a as L,d as H,R as M,G as P,E as S,g as r,o as a,e as u,b as _,f,u as b,y as p}from"./index.662e825a.js";function T(o){let t,s,e,n,l;return{c(){t=u("div"),t.innerHTML=`
    -

    Invalid or expired verification token.

    `,s=_(),e=u("button"),e.textContent="Close",f(t,"class","alert alert-danger"),f(e,"type","button"),f(e,"class","btn btn-secondary btn-block")},m(i,c){r(i,t,c),r(i,s,c),r(i,e,c),n||(l=b(e,"click",o[4]),n=!0)},p,d(i){i&&a(t),i&&a(s),i&&a(e),n=!1,l()}}}function F(o){let t,s,e,n,l;return{c(){t=u("div"),t.innerHTML=`
    -

    Successfully verified email address.

    `,s=_(),e=u("button"),e.textContent="Close",f(t,"class","alert alert-success"),f(e,"type","button"),f(e,"class","btn btn-secondary btn-block")},m(i,c){r(i,t,c),r(i,s,c),r(i,e,c),n||(l=b(e,"click",o[3]),n=!0)},p,d(i){i&&a(t),i&&a(s),i&&a(e),n=!1,l()}}}function I(o){let t;return{c(){t=u("div"),t.innerHTML='
    Please wait...
    ',f(t,"class","txt-center")},m(s,e){r(s,t,e)},p,d(s){s&&a(t)}}}function R(o){let t;function s(l,i){return l[1]?I:l[0]?F:T}let e=s(o),n=e(o);return{c(){n.c(),t=S()},m(l,i){n.m(l,i),r(l,t,i)},p(l,i){e===(e=s(l))&&n?n.p(l,i):(n.d(1),n=e(l),n&&(n.c(),n.m(t.parentNode,t)))},d(l){n.d(l),l&&a(t)}}}function V(o){let t,s;return t=new x({props:{nobranding:!0,$$slots:{default:[R]},$$scope:{ctx:o}}}),{c(){C(t.$$.fragment)},m(e,n){g(t,e,n),s=!0},p(e,[n]){const l={};n&67&&(l.$$scope={dirty:n,ctx:e}),t.$set(l)},i(e){s||($(t.$$.fragment,e),s=!0)},o(e){L(t.$$.fragment,e),s=!1},d(e){H(t,e)}}}function q(o,t,s){let{params:e}=t,n=!1,l=!1;i();async function i(){s(1,l=!0);const d=new M("../");try{const m=P(e==null?void 0:e.token);await d.collection(m.collectionId).confirmVerification(e==null?void 0:e.token),s(0,n=!0)}catch{s(0,n=!1)}s(1,l=!1)}const c=()=>window.close(),k=()=>window.close();return o.$$set=d=>{"params"in d&&s(2,e=d.params)},[n,l,e,c,k]}class G extends v{constructor(t){super(),y(this,t,q,V,w,{params:2})}}export{G as default}; diff --git a/ui/dist/assets/RealtimeApiDocs.09f1a44d.js b/ui/dist/assets/RealtimeApiDocs.09f1a44d.js deleted file mode 100644 index 82276337dda9ecf779c6c031cd4a221d99059e12..0000000000000000000000000000000000000000 --- a/ui/dist/assets/RealtimeApiDocs.09f1a44d.js +++ /dev/null @@ -1,107 +0,0 @@ -import{S as re,i as ae,s as be,M as ue,C as P,e as u,w as y,b as a,c as te,f as p,g as t,h as I,m as ne,x as pe,t as ie,a as le,o as n,d as ce,Q as me,p as de}from"./index.662e825a.js";import{S as fe}from"./SdkTabs.1e98a608.js";function $e(o){var B,U,W,A,H,L,M,T,q,j,J,N;let i,m,l=o[0].name+"",b,d,h,f,_,$,k,c,S,v,w,R,C,g,E,r,D;return c=new fe({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${o[1]}'); - - ... - - // (Optionally) authenticate - await pb.collection('users').authWithPassword('test@example.com', '123456'); - - // Subscribe to changes in any ${(B=o[0])==null?void 0:B.name} record - pb.collection('${(U=o[0])==null?void 0:U.name}').subscribe('*', function (e) { - console.log(e.record); - }); - - // Subscribe to changes only in the specified record - pb.collection('${(W=o[0])==null?void 0:W.name}').subscribe('RECORD_ID', function (e) { - console.log(e.record); - }); - - // Unsubscribe - pb.collection('${(A=o[0])==null?void 0:A.name}').unsubscribe('RECORD_ID'); // remove all 'RECORD_ID' subscriptions - pb.collection('${(H=o[0])==null?void 0:H.name}').unsubscribe('*'); // remove all '*' topic subscriptions - pb.collection('${(L=o[0])==null?void 0:L.name}').unsubscribe(); // remove all subscriptions in the collection - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${o[1]}'); - - ... - - // (Optionally) authenticate - await pb.collection('users').authWithPassword('test@example.com', '123456'); - - // Subscribe to changes in any ${(M=o[0])==null?void 0:M.name} record - pb.collection('${(T=o[0])==null?void 0:T.name}').subscribe('*', (e) { - console.log(e.record); - }); - - // Subscribe to changes only in the specified record - pb.collection('${(q=o[0])==null?void 0:q.name}').subscribe('RECORD_ID', (e) { - console.log(e.record); - }); - - // Unsubscribe - pb.collection('${(j=o[0])==null?void 0:j.name}').unsubscribe('RECORD_ID'); // remove all 'RECORD_ID' subscriptions - pb.collection('${(J=o[0])==null?void 0:J.name}').unsubscribe('*'); // remove all '*' topic subscriptions - pb.collection('${(N=o[0])==null?void 0:N.name}').unsubscribe(); // remove all subscriptions in the collection - `}}),r=new ue({props:{content:JSON.stringify({action:"create",record:P.dummyCollectionRecord(o[0])},null,2).replace('"action": "create"','"action": "create" // create, update or delete')}}),{c(){i=u("h3"),m=y("Realtime ("),b=y(l),d=y(")"),h=a(),f=u("div"),f.innerHTML=`

    Subscribe to realtime changes via Server-Sent Events (SSE).

    -

    Events are sent for create, update - and delete record operations (see "Event data format" section below).

    `,_=a(),$=u("div"),$.innerHTML=`
    -

    You could subscribe to a single record or to an entire collection.

    -

    When you subscribe to a single record, the collection's - ViewRule will be used to determine whether the subscriber has access to receive the - event message.

    -

    When you subscribe to an entire collection, the collection's - ListRule will be used to determine whether the subscriber has access to receive the - event message.

    `,k=a(),te(c.$$.fragment),S=a(),v=u("h6"),v.textContent="API details",w=a(),R=u("div"),R.innerHTML=`SSE -

    /api/realtime

    `,C=a(),g=u("div"),g.textContent="Event data format",E=a(),te(r.$$.fragment),p(i,"class","m-b-sm"),p(f,"class","content txt-lg m-b-sm"),p($,"class","alert alert-info m-t-10 m-b-sm"),p(v,"class","m-b-xs"),p(R,"class","alert"),p(g,"class","section-title")},m(e,s){t(e,i,s),I(i,m),I(i,b),I(i,d),t(e,h,s),t(e,f,s),t(e,_,s),t(e,$,s),t(e,k,s),ne(c,e,s),t(e,S,s),t(e,v,s),t(e,w,s),t(e,R,s),t(e,C,s),t(e,g,s),t(e,E,s),ne(r,e,s),D=!0},p(e,[s]){var V,Y,z,F,G,K,X,Z,x,ee,se,oe;(!D||s&1)&&l!==(l=e[0].name+"")&&pe(b,l);const O={};s&3&&(O.js=` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${e[1]}'); - - ... - - // (Optionally) authenticate - await pb.collection('users').authWithPassword('test@example.com', '123456'); - - // Subscribe to changes in any ${(V=e[0])==null?void 0:V.name} record - pb.collection('${(Y=e[0])==null?void 0:Y.name}').subscribe('*', function (e) { - console.log(e.record); - }); - - // Subscribe to changes only in the specified record - pb.collection('${(z=e[0])==null?void 0:z.name}').subscribe('RECORD_ID', function (e) { - console.log(e.record); - }); - - // Unsubscribe - pb.collection('${(F=e[0])==null?void 0:F.name}').unsubscribe('RECORD_ID'); // remove all 'RECORD_ID' subscriptions - pb.collection('${(G=e[0])==null?void 0:G.name}').unsubscribe('*'); // remove all '*' topic subscriptions - pb.collection('${(K=e[0])==null?void 0:K.name}').unsubscribe(); // remove all subscriptions in the collection - `),s&3&&(O.dart=` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${e[1]}'); - - ... - - // (Optionally) authenticate - await pb.collection('users').authWithPassword('test@example.com', '123456'); - - // Subscribe to changes in any ${(X=e[0])==null?void 0:X.name} record - pb.collection('${(Z=e[0])==null?void 0:Z.name}').subscribe('*', (e) { - console.log(e.record); - }); - - // Subscribe to changes only in the specified record - pb.collection('${(x=e[0])==null?void 0:x.name}').subscribe('RECORD_ID', (e) { - console.log(e.record); - }); - - // Unsubscribe - pb.collection('${(ee=e[0])==null?void 0:ee.name}').unsubscribe('RECORD_ID'); // remove all 'RECORD_ID' subscriptions - pb.collection('${(se=e[0])==null?void 0:se.name}').unsubscribe('*'); // remove all '*' topic subscriptions - pb.collection('${(oe=e[0])==null?void 0:oe.name}').unsubscribe(); // remove all subscriptions in the collection - `),c.$set(O);const Q={};s&1&&(Q.content=JSON.stringify({action:"create",record:P.dummyCollectionRecord(e[0])},null,2).replace('"action": "create"','"action": "create" // create, update or delete')),r.$set(Q)},i(e){D||(ie(c.$$.fragment,e),ie(r.$$.fragment,e),D=!0)},o(e){le(c.$$.fragment,e),le(r.$$.fragment,e),D=!1},d(e){e&&n(i),e&&n(h),e&&n(f),e&&n(_),e&&n($),e&&n(k),ce(c,e),e&&n(S),e&&n(v),e&&n(w),e&&n(R),e&&n(C),e&&n(g),e&&n(E),ce(r,e)}}}function ve(o,i,m){let l,{collection:b=new me}=i;return o.$$set=d=>{"collection"in d&&m(0,b=d.collection)},m(1,l=P.getApiExampleUrl(de.baseUrl)),[b,l]}class De extends re{constructor(i){super(),ae(this,i,ve,$e,be,{collection:0})}}export{De as default}; diff --git a/ui/dist/assets/RequestEmailChangeDocs.7c5e6cd7.js b/ui/dist/assets/RequestEmailChangeDocs.7c5e6cd7.js deleted file mode 100644 index fe1f9b5003e04d74d07d4bc22e2681824af956fe..0000000000000000000000000000000000000000 --- a/ui/dist/assets/RequestEmailChangeDocs.7c5e6cd7.js +++ /dev/null @@ -1,70 +0,0 @@ -import{S as Te,i as Ee,s as Be,e as c,w as v,b as h,c as Pe,f,g as r,h as n,m as Ce,x as I,N as ve,O as Se,k as Me,P as Re,n as Ae,t as x,a as ee,o as m,d as ye,Q as We,C as ze,p as He,r as L,u as Oe,M as Ue}from"./index.662e825a.js";import{S as je}from"./SdkTabs.1e98a608.js";function we(o,l,s){const a=o.slice();return a[5]=l[s],a}function ge(o,l,s){const a=o.slice();return a[5]=l[s],a}function $e(o,l){let s,a=l[5].code+"",_,b,i,p;function u(){return l[4](l[5])}return{key:o,first:null,c(){s=c("button"),_=v(a),b=h(),f(s,"class","tab-item"),L(s,"active",l[1]===l[5].code),this.first=s},m($,q){r($,s,q),n(s,_),n(s,b),i||(p=Oe(s,"click",u),i=!0)},p($,q){l=$,q&4&&a!==(a=l[5].code+"")&&I(_,a),q&6&&L(s,"active",l[1]===l[5].code)},d($){$&&m(s),i=!1,p()}}}function qe(o,l){let s,a,_,b;return a=new Ue({props:{content:l[5].body}}),{key:o,first:null,c(){s=c("div"),Pe(a.$$.fragment),_=h(),f(s,"class","tab-item"),L(s,"active",l[1]===l[5].code),this.first=s},m(i,p){r(i,s,p),Ce(a,s,null),n(s,_),b=!0},p(i,p){l=i;const u={};p&4&&(u.content=l[5].body),a.$set(u),(!b||p&6)&&L(s,"active",l[1]===l[5].code)},i(i){b||(x(a.$$.fragment,i),b=!0)},o(i){ee(a.$$.fragment,i),b=!1},d(i){i&&m(s),ye(a)}}}function De(o){var de,pe,ue,fe;let l,s,a=o[0].name+"",_,b,i,p,u,$,q,z=o[0].name+"",N,te,F,P,K,T,Q,w,H,le,O,E,se,G,U=o[0].name+"",J,ae,oe,j,V,B,X,S,Y,M,Z,C,R,g=[],ne=new Map,ie,A,k=[],ce=new Map,y;P=new je({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${o[3]}'); - - ... - - await pb.collection('${(de=o[0])==null?void 0:de.name}').authWithPassword('test@example.com', '1234567890'); - - await pb.collection('${(pe=o[0])==null?void 0:pe.name}').requestEmailChange('new@example.com'); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${o[3]}'); - - ... - - await pb.collection('${(ue=o[0])==null?void 0:ue.name}').authWithPassword('test@example.com', '1234567890'); - - await pb.collection('${(fe=o[0])==null?void 0:fe.name}').requestEmailChange('new@example.com'); - `}});let D=o[2];const re=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eAuthorization:TOKEN header",V=h(),B=c("div"),B.textContent="Body Parameters",X=h(),S=c("table"),S.innerHTML=`Param - Type - Description -
    Required - newEmail
    - String - The new email address to send the change email request.`,Y=h(),M=c("div"),M.textContent="Responses",Z=h(),C=c("div"),R=c("div");for(let e=0;es(1,b=u.code);return o.$$set=u=>{"collection"in u&&s(0,_=u.collection)},s(3,a=ze.getApiExampleUrl(He.baseUrl)),s(2,i=[{code:204,body:"null"},{code:400,body:` - { - "code": 400, - "message": "Failed to authenticate.", - "data": { - "newEmail": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `},{code:401,body:` - { - "code": 401, - "message": "The request requires valid record authorization token to be set.", - "data": {} - } - `},{code:403,body:` - { - "code": 403, - "message": "The authorized record model is not allowed to perform this action.", - "data": {} - } - `}]),[_,b,i,a,p]}class Fe extends Te{constructor(l){super(),Ee(this,l,Ie,De,Be,{collection:0})}}export{Fe as default}; diff --git a/ui/dist/assets/RequestPasswordResetDocs.b951fc1c.js b/ui/dist/assets/RequestPasswordResetDocs.b951fc1c.js deleted file mode 100644 index ab439d4e570488531bbba370457af8c14b991f3b..0000000000000000000000000000000000000000 --- a/ui/dist/assets/RequestPasswordResetDocs.b951fc1c.js +++ /dev/null @@ -1,50 +0,0 @@ -import{S as Pe,i as $e,s as qe,e as c,w,b as v,c as ve,f as b,g as r,h as n,m as we,x as F,N as ue,O as ge,k as ye,P as Re,n as Be,t as Z,a as x,o as d,d as he,Q as Ce,C as Se,p as Te,r as L,u as Me,M as Ae}from"./index.662e825a.js";import{S as Ue}from"./SdkTabs.1e98a608.js";function me(a,s,l){const o=a.slice();return o[5]=s[l],o}function be(a,s,l){const o=a.slice();return o[5]=s[l],o}function _e(a,s){let l,o=s[5].code+"",_,m,i,p;function u(){return s[4](s[5])}return{key:a,first:null,c(){l=c("button"),_=w(o),m=v(),b(l,"class","tab-item"),L(l,"active",s[1]===s[5].code),this.first=l},m(P,$){r(P,l,$),n(l,_),n(l,m),i||(p=Me(l,"click",u),i=!0)},p(P,$){s=P,$&4&&o!==(o=s[5].code+"")&&F(_,o),$&6&&L(l,"active",s[1]===s[5].code)},d(P){P&&d(l),i=!1,p()}}}function ke(a,s){let l,o,_,m;return o=new Ae({props:{content:s[5].body}}),{key:a,first:null,c(){l=c("div"),ve(o.$$.fragment),_=v(),b(l,"class","tab-item"),L(l,"active",s[1]===s[5].code),this.first=l},m(i,p){r(i,l,p),we(o,l,null),n(l,_),m=!0},p(i,p){s=i;const u={};p&4&&(u.content=s[5].body),o.$set(u),(!m||p&6)&&L(l,"active",s[1]===s[5].code)},i(i){m||(Z(o.$$.fragment,i),m=!0)},o(i){x(o.$$.fragment,i),m=!1},d(i){i&&d(l),he(o)}}}function je(a){var re,de;let s,l,o=a[0].name+"",_,m,i,p,u,P,$,D=a[0].name+"",N,ee,Q,q,z,B,G,g,H,te,I,C,se,J,O=a[0].name+"",K,le,V,S,W,T,X,M,Y,y,A,h=[],oe=new Map,ae,U,k=[],ne=new Map,R;q=new Ue({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${a[3]}'); - - ... - - await pb.collection('${(re=a[0])==null?void 0:re.name}').requestPasswordReset('test@example.com'); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${a[3]}'); - - ... - - await pb.collection('${(de=a[0])==null?void 0:de.name}').requestPasswordReset('test@example.com'); - `}});let E=a[2];const ie=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eParam - Type - Description -
    Required - email
    - String - The auth record email address to send the password reset request (if exists).`,X=v(),M=c("div"),M.textContent="Responses",Y=v(),y=c("div"),A=c("div");for(let e=0;el(1,m=u.code);return a.$$set=u=>{"collection"in u&&l(0,_=u.collection)},l(3,o=Se.getApiExampleUrl(Te.baseUrl)),l(2,i=[{code:204,body:"null"},{code:400,body:` - { - "code": 400, - "message": "Failed to authenticate.", - "data": { - "email": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `}]),[_,m,i,o,p]}class Oe extends Pe{constructor(s){super(),$e(this,s,De,je,qe,{collection:0})}}export{Oe as default}; diff --git a/ui/dist/assets/RequestVerificationDocs.721e1f8a.js b/ui/dist/assets/RequestVerificationDocs.721e1f8a.js deleted file mode 100644 index e129ab7a345423f5b369a82a19a86b971844a8b9..0000000000000000000000000000000000000000 --- a/ui/dist/assets/RequestVerificationDocs.721e1f8a.js +++ /dev/null @@ -1,50 +0,0 @@ -import{S as we,i as qe,s as Pe,e as c,w as h,b as v,c as ve,f as b,g as r,h as i,m as he,x as E,N as ue,O as ge,k as ye,P as Be,n as Ce,t as Z,a as x,o as f,d as $e,Q as Se,C as Te,p as Me,r as F,u as Ve,M as Re}from"./index.662e825a.js";import{S as Ae}from"./SdkTabs.1e98a608.js";function me(a,l,s){const o=a.slice();return o[5]=l[s],o}function be(a,l,s){const o=a.slice();return o[5]=l[s],o}function _e(a,l){let s,o=l[5].code+"",_,m,n,p;function u(){return l[4](l[5])}return{key:a,first:null,c(){s=c("button"),_=h(o),m=v(),b(s,"class","tab-item"),F(s,"active",l[1]===l[5].code),this.first=s},m(w,q){r(w,s,q),i(s,_),i(s,m),n||(p=Ve(s,"click",u),n=!0)},p(w,q){l=w,q&4&&o!==(o=l[5].code+"")&&E(_,o),q&6&&F(s,"active",l[1]===l[5].code)},d(w){w&&f(s),n=!1,p()}}}function ke(a,l){let s,o,_,m;return o=new Re({props:{content:l[5].body}}),{key:a,first:null,c(){s=c("div"),ve(o.$$.fragment),_=v(),b(s,"class","tab-item"),F(s,"active",l[1]===l[5].code),this.first=s},m(n,p){r(n,s,p),he(o,s,null),i(s,_),m=!0},p(n,p){l=n;const u={};p&4&&(u.content=l[5].body),o.$set(u),(!m||p&6)&&F(s,"active",l[1]===l[5].code)},i(n){m||(Z(o.$$.fragment,n),m=!0)},o(n){x(o.$$.fragment,n),m=!1},d(n){n&&f(s),$e(o)}}}function Ue(a){var re,fe;let l,s,o=a[0].name+"",_,m,n,p,u,w,q,j=a[0].name+"",L,ee,N,P,Q,C,z,g,D,te,H,S,le,G,I=a[0].name+"",J,se,K,T,W,M,X,V,Y,y,R,$=[],oe=new Map,ae,A,k=[],ie=new Map,B;P=new Ae({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${a[3]}'); - - ... - - await pb.collection('${(re=a[0])==null?void 0:re.name}').requestVerification('test@example.com'); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${a[3]}'); - - ... - - await pb.collection('${(fe=a[0])==null?void 0:fe.name}').requestVerification('test@example.com'); - `}});let O=a[2];const ne=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eParam - Type - Description -
    Required - email
    - String - The auth record email address to send the verification request (if exists).`,X=v(),V=c("div"),V.textContent="Responses",Y=v(),y=c("div"),R=c("div");for(let e=0;e<$.length;e+=1)$[e].c();ae=v(),A=c("div");for(let e=0;es(1,m=u.code);return a.$$set=u=>{"collection"in u&&s(0,_=u.collection)},s(3,o=Te.getApiExampleUrl(Me.baseUrl)),s(2,n=[{code:204,body:"null"},{code:400,body:` - { - "code": 400, - "message": "Failed to authenticate.", - "data": { - "email": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `}]),[_,m,n,o,p]}class Ie extends we{constructor(l){super(),qe(this,l,je,Ue,Pe,{collection:0})}}export{Ie as default}; diff --git a/ui/dist/assets/SdkTabs.1e98a608.js b/ui/dist/assets/SdkTabs.1e98a608.js deleted file mode 100644 index 4e4b03e5ca84a13b9a7fdc0543a901db76e3b94d..0000000000000000000000000000000000000000 --- a/ui/dist/assets/SdkTabs.1e98a608.js +++ /dev/null @@ -1 +0,0 @@ -import{S as q,i as B,s as F,e as v,b as j,f as h,g as y,h as m,N as C,O as J,k as O,P as Y,n as z,t as N,a as P,o as w,w as E,r as S,u as A,x as R,M as G,c as H,m as L,d as Q}from"./index.662e825a.js";function D(o,e,l){const s=o.slice();return s[6]=e[l],s}function K(o,e,l){const s=o.slice();return s[6]=e[l],s}function M(o,e){let l,s,g=e[6].title+"",r,i,n,k;function c(){return e[5](e[6])}return{key:o,first:null,c(){l=v("button"),s=v("div"),r=E(g),i=j(),h(s,"class","txt"),h(l,"class","tab-item svelte-1maocj6"),S(l,"active",e[1]===e[6].language),this.first=l},m(u,_){y(u,l,_),m(l,s),m(s,r),m(l,i),n||(k=A(l,"click",c),n=!0)},p(u,_){e=u,_&4&&g!==(g=e[6].title+"")&&R(r,g),_&6&&S(l,"active",e[1]===e[6].language)},d(u){u&&w(l),n=!1,k()}}}function T(o,e){let l,s,g,r,i,n,k=e[6].title+"",c,u,_,p,f;return s=new G({props:{language:e[6].language,content:e[6].content}}),{key:o,first:null,c(){l=v("div"),H(s.$$.fragment),g=j(),r=v("div"),i=v("em"),n=v("a"),c=E(k),u=E(" SDK"),p=j(),h(n,"href",_=e[6].url),h(n,"target","_blank"),h(n,"rel","noopener noreferrer"),h(i,"class","txt-sm txt-hint"),h(r,"class","txt-right"),h(l,"class","tab-item svelte-1maocj6"),S(l,"active",e[1]===e[6].language),this.first=l},m(b,t){y(b,l,t),L(s,l,null),m(l,g),m(l,r),m(r,i),m(i,n),m(n,c),m(n,u),m(l,p),f=!0},p(b,t){e=b;const a={};t&4&&(a.language=e[6].language),t&4&&(a.content=e[6].content),s.$set(a),(!f||t&4)&&k!==(k=e[6].title+"")&&R(c,k),(!f||t&4&&_!==(_=e[6].url))&&h(n,"href",_),(!f||t&6)&&S(l,"active",e[1]===e[6].language)},i(b){f||(N(s.$$.fragment,b),f=!0)},o(b){P(s.$$.fragment,b),f=!1},d(b){b&&w(l),Q(s)}}}function U(o){let e,l,s=[],g=new Map,r,i,n=[],k=new Map,c,u,_=o[2];const p=t=>t[6].language;for(let t=0;t<_.length;t+=1){let a=K(o,_,t),d=p(a);g.set(d,s[t]=M(d,a))}let f=o[2];const b=t=>t[6].language;for(let t=0;tl(1,n=c.language);return o.$$set=c=>{"class"in c&&l(0,g=c.class),"js"in c&&l(3,r=c.js),"dart"in c&&l(4,i=c.dart)},o.$$.update=()=>{o.$$.dirty&2&&n&&localStorage.setItem(I,n),o.$$.dirty&24&&l(2,s=[{title:"JavaScript",language:"javascript",content:r,url:"https://github.com/pocketbase/js-sdk"},{title:"Dart",language:"dart",content:i,url:"https://github.com/pocketbase/dart-sdk"}])},[g,n,s,r,i,k]}class X extends q{constructor(e){super(),B(this,e,V,U,F,{class:0,js:3,dart:4})}}export{X as S}; diff --git a/ui/dist/assets/SdkTabs.9b0b7a06.css b/ui/dist/assets/SdkTabs.9b0b7a06.css deleted file mode 100644 index 64e6ba64fd9b526fee975ccf217f872731180322..0000000000000000000000000000000000000000 --- a/ui/dist/assets/SdkTabs.9b0b7a06.css +++ /dev/null @@ -1 +0,0 @@ -.sdk-tabs.svelte-1maocj6 .tabs-header .tab-item.svelte-1maocj6{min-width:100px} diff --git a/ui/dist/assets/UnlinkExternalAuthDocs.b6769a74.js b/ui/dist/assets/UnlinkExternalAuthDocs.b6769a74.js deleted file mode 100644 index 4e6d769803f96d69ef4e6a86ef59df391f6fbe27..0000000000000000000000000000000000000000 --- a/ui/dist/assets/UnlinkExternalAuthDocs.b6769a74.js +++ /dev/null @@ -1,80 +0,0 @@ -import{S as qe,i as Me,s as Oe,e as i,w as v,b as h,c as Se,f,g as r,h as s,m as Be,x as j,N as ye,O as De,k as We,P as ze,n as He,t as le,a as oe,o as d,d as Ue,Q as Ie,C as Le,p as je,r as N,u as Ne,M as Re}from"./index.662e825a.js";import{S as Ke}from"./SdkTabs.1e98a608.js";function Ae(n,l,o){const a=n.slice();return a[5]=l[o],a}function Ce(n,l,o){const a=n.slice();return a[5]=l[o],a}function Te(n,l){let o,a=l[5].code+"",_,b,c,u;function m(){return l[4](l[5])}return{key:n,first:null,c(){o=i("button"),_=v(a),b=h(),f(o,"class","tab-item"),N(o,"active",l[1]===l[5].code),this.first=o},m($,P){r($,o,P),s(o,_),s(o,b),c||(u=Ne(o,"click",m),c=!0)},p($,P){l=$,P&4&&a!==(a=l[5].code+"")&&j(_,a),P&6&&N(o,"active",l[1]===l[5].code)},d($){$&&d(o),c=!1,u()}}}function Ee(n,l){let o,a,_,b;return a=new Re({props:{content:l[5].body}}),{key:n,first:null,c(){o=i("div"),Se(a.$$.fragment),_=h(),f(o,"class","tab-item"),N(o,"active",l[1]===l[5].code),this.first=o},m(c,u){r(c,o,u),Be(a,o,null),s(o,_),b=!0},p(c,u){l=c;const m={};u&4&&(m.content=l[5].body),a.$set(m),(!b||u&6)&&N(o,"active",l[1]===l[5].code)},i(c){b||(le(a.$$.fragment,c),b=!0)},o(c){oe(a.$$.fragment,c),b=!1},d(c){c&&d(o),Ue(a)}}}function Qe(n){var he,_e,ke,ve;let l,o,a=n[0].name+"",_,b,c,u,m,$,P,D=n[0].name+"",R,se,ae,K,Q,A,F,E,G,g,W,ne,z,y,ie,J,H=n[0].name+"",V,ce,X,re,Y,de,I,Z,S,x,B,ee,U,te,C,q,w=[],ue=new Map,pe,M,k=[],me=new Map,T;A=new Ke({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${n[3]}'); - - ... - - await pb.collection('${(he=n[0])==null?void 0:he.name}').authWithPassword('test@example.com', '123456'); - - await pb.collection('${(_e=n[0])==null?void 0:_e.name}').unlinkExternalAuth( - pb.authStore.model.id, - 'google' - ); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${n[3]}'); - - ... - - await pb.collection('${(ke=n[0])==null?void 0:ke.name}').authWithPassword('test@example.com', '123456'); - - await pb.collection('${(ve=n[0])==null?void 0:ve.name}').unlinkExternalAuth( - pb.authStore.model.id, - 'google', - ); - `}});let L=n[2];const fe=e=>e[5].code;for(let e=0;ee[5].code;for(let e=0;eAuthorization:TOKEN header",Z=h(),S=i("div"),S.textContent="Path Parameters",x=h(),B=i("table"),B.innerHTML=`Param - Type - Description - id - String - ID of the auth record. - provider - String - The name of the auth provider to unlink, eg. google, twitter, - github, etc.`,ee=h(),U=i("div"),U.textContent="Responses",te=h(),C=i("div"),q=i("div");for(let e=0;eo(1,b=m.code);return n.$$set=m=>{"collection"in m&&o(0,_=m.collection)},o(3,a=Le.getApiExampleUrl(je.baseUrl)),o(2,c=[{code:204,body:"null"},{code:401,body:` - { - "code": 401, - "message": "The request requires valid record authorization token to be set.", - "data": {} - } - `},{code:403,body:` - { - "code": 403, - "message": "The authorized record model is not allowed to perform this action.", - "data": {} - } - `},{code:404,body:` - { - "code": 404, - "message": "The requested resource wasn't found.", - "data": {} - } - `}]),[_,b,c,a,u]}class Ve extends qe{constructor(l){super(),Me(this,l,Fe,Qe,Oe,{collection:0})}}export{Ve as default}; diff --git a/ui/dist/assets/UpdateApiDocs.4f916b3c.js b/ui/dist/assets/UpdateApiDocs.4f916b3c.js deleted file mode 100644 index e210be80086e4f39cda07bac0e6f5fad111bfd93..0000000000000000000000000000000000000000 --- a/ui/dist/assets/UpdateApiDocs.4f916b3c.js +++ /dev/null @@ -1,118 +0,0 @@ -import{S as Ct,i as St,s as Ot,C as I,M as Tt,e as r,w as y,b as m,c as Ae,f as T,g as a,h as i,m as Be,x as U,N as Pe,O as ut,k as Mt,P as $t,n as qt,t as pe,a as fe,o,d as Fe,Q as Dt,p as Ht,r as ce,u as Rt,y as G}from"./index.662e825a.js";import{S as Lt}from"./SdkTabs.1e98a608.js";function bt(p,t,l){const s=p.slice();return s[7]=t[l],s}function mt(p,t,l){const s=p.slice();return s[7]=t[l],s}function _t(p,t,l){const s=p.slice();return s[12]=t[l],s}function yt(p){let t;return{c(){t=r("p"),t.innerHTML="Requires admin Authorization:TOKEN header",T(t,"class","txt-hint txt-sm txt-right")},m(l,s){a(l,t,s)},d(l){l&&o(t)}}}function kt(p){let t,l,s,b,u,d,f,k,C,v,O,H,A,F,M,N,B;return{c(){t=r("tr"),t.innerHTML='Auth fields',l=m(),s=r("tr"),s.innerHTML=`
    Optional - username
    - String - The username of the auth record.`,b=m(),u=r("tr"),u.innerHTML=`
    Optional - email
    - String - The auth record email address. -
    - This field can be updated only by admins or auth records with "Manage" access. -
    - Regular accounts can update their email by calling "Request email change".`,d=m(),f=r("tr"),f.innerHTML=`
    Optional - emailVisibility
    - Boolean - Whether to show/hide the auth record email when fetching the record data.`,k=m(),C=r("tr"),C.innerHTML=`
    Optional - oldPassword
    - String - Old auth record password. -
    - This field is required only when changing the record password. Admins and auth records with - "Manage" access can skip this field.`,v=m(),O=r("tr"),O.innerHTML=`
    Optional - password
    - String - New auth record password.`,H=m(),A=r("tr"),A.innerHTML=`
    Optional - passwordConfirm
    - String - New auth record password confirmation.`,F=m(),M=r("tr"),M.innerHTML=`
    Optional - verified
    - Boolean - Indicates whether the auth record is verified or not. -
    - This field can be set only by admins or auth records with "Manage" access.`,N=m(),B=r("tr"),B.innerHTML='Schema fields'},m(c,_){a(c,t,_),a(c,l,_),a(c,s,_),a(c,b,_),a(c,u,_),a(c,d,_),a(c,f,_),a(c,k,_),a(c,C,_),a(c,v,_),a(c,O,_),a(c,H,_),a(c,A,_),a(c,F,_),a(c,M,_),a(c,N,_),a(c,B,_)},d(c){c&&o(t),c&&o(l),c&&o(s),c&&o(b),c&&o(u),c&&o(d),c&&o(f),c&&o(k),c&&o(C),c&&o(v),c&&o(O),c&&o(H),c&&o(A),c&&o(F),c&&o(M),c&&o(N),c&&o(B)}}}function Pt(p){let t;return{c(){t=r("span"),t.textContent="Optional",T(t,"class","label label-warning")},m(l,s){a(l,t,s)},d(l){l&&o(t)}}}function At(p){let t;return{c(){t=r("span"),t.textContent="Required",T(t,"class","label label-success")},m(l,s){a(l,t,s)},d(l){l&&o(t)}}}function Bt(p){var u;let t,l=((u=p[12].options)==null?void 0:u.maxSelect)>1?"ids":"id",s,b;return{c(){t=y("User "),s=y(l),b=y(".")},m(d,f){a(d,t,f),a(d,s,f),a(d,b,f)},p(d,f){var k;f&1&&l!==(l=((k=d[12].options)==null?void 0:k.maxSelect)>1?"ids":"id")&&U(s,l)},d(d){d&&o(t),d&&o(s),d&&o(b)}}}function Ft(p){var u;let t,l=((u=p[12].options)==null?void 0:u.maxSelect)>1?"ids":"id",s,b;return{c(){t=y("Relation record "),s=y(l),b=y(".")},m(d,f){a(d,t,f),a(d,s,f),a(d,b,f)},p(d,f){var k;f&1&&l!==(l=((k=d[12].options)==null?void 0:k.maxSelect)>1?"ids":"id")&&U(s,l)},d(d){d&&o(t),d&&o(s),d&&o(b)}}}function Nt(p){let t,l,s,b,u;return{c(){t=y("File object."),l=r("br"),s=y(` - Set to `),b=r("code"),b.textContent="null",u=y(" to delete already uploaded file(s).")},m(d,f){a(d,t,f),a(d,l,f),a(d,s,f),a(d,b,f),a(d,u,f)},p:G,d(d){d&&o(t),d&&o(l),d&&o(s),d&&o(b),d&&o(u)}}}function jt(p){let t;return{c(){t=y("URL address.")},m(l,s){a(l,t,s)},p:G,d(l){l&&o(t)}}}function Et(p){let t;return{c(){t=y("Email address.")},m(l,s){a(l,t,s)},p:G,d(l){l&&o(t)}}}function It(p){let t;return{c(){t=y("JSON array or object.")},m(l,s){a(l,t,s)},p:G,d(l){l&&o(t)}}}function Ut(p){let t;return{c(){t=y("Number value.")},m(l,s){a(l,t,s)},p:G,d(l){l&&o(t)}}}function Jt(p){let t;return{c(){t=y("Plain text value.")},m(l,s){a(l,t,s)},p:G,d(l){l&&o(t)}}}function ht(p,t){let l,s,b,u,d,f=t[12].name+"",k,C,v,O,H=I.getFieldValueType(t[12])+"",A,F,M,N;function B(h,L){return h[12].required?At:Pt}let c=B(t),_=c(t);function K(h,L){if(h[12].type==="text")return Jt;if(h[12].type==="number")return Ut;if(h[12].type==="json")return It;if(h[12].type==="email")return Et;if(h[12].type==="url")return jt;if(h[12].type==="file")return Nt;if(h[12].type==="relation")return Ft;if(h[12].type==="user")return Bt}let R=K(t),S=R&&R(t);return{key:p,first:null,c(){l=r("tr"),s=r("td"),b=r("div"),_.c(),u=m(),d=r("span"),k=y(f),C=m(),v=r("td"),O=r("span"),A=y(H),F=m(),M=r("td"),S&&S.c(),N=m(),T(b,"class","inline-flex"),T(O,"class","label"),this.first=l},m(h,L){a(h,l,L),i(l,s),i(s,b),_.m(b,null),i(b,u),i(b,d),i(d,k),i(l,C),i(l,v),i(v,O),i(O,A),i(l,F),i(l,M),S&&S.m(M,null),i(l,N)},p(h,L){t=h,c!==(c=B(t))&&(_.d(1),_=c(t),_&&(_.c(),_.m(b,u))),L&1&&f!==(f=t[12].name+"")&&U(k,f),L&1&&H!==(H=I.getFieldValueType(t[12])+"")&&U(A,H),R===(R=K(t))&&S?S.p(t,L):(S&&S.d(1),S=R&&R(t),S&&(S.c(),S.m(M,null)))},d(h){h&&o(l),_.d(),S&&S.d()}}}function vt(p,t){let l,s=t[7].code+"",b,u,d,f;function k(){return t[6](t[7])}return{key:p,first:null,c(){l=r("button"),b=y(s),u=m(),T(l,"class","tab-item"),ce(l,"active",t[1]===t[7].code),this.first=l},m(C,v){a(C,l,v),i(l,b),i(l,u),d||(f=Rt(l,"click",k),d=!0)},p(C,v){t=C,v&4&&s!==(s=t[7].code+"")&&U(b,s),v&6&&ce(l,"active",t[1]===t[7].code)},d(C){C&&o(l),d=!1,f()}}}function wt(p,t){let l,s,b,u;return s=new Tt({props:{content:t[7].body}}),{key:p,first:null,c(){l=r("div"),Ae(s.$$.fragment),b=m(),T(l,"class","tab-item"),ce(l,"active",t[1]===t[7].code),this.first=l},m(d,f){a(d,l,f),Be(s,l,null),i(l,b),u=!0},p(d,f){t=d;const k={};f&4&&(k.content=t[7].body),s.$set(k),(!u||f&6)&&ce(l,"active",t[1]===t[7].code)},i(d){u||(pe(s.$$.fragment,d),u=!0)},o(d){fe(s.$$.fragment,d),u=!1},d(d){d&&o(l),Fe(s)}}}function gt(p){var it,at,ot,dt;let t,l,s=p[0].name+"",b,u,d,f,k,C,v,O=p[0].name+"",H,A,F,M,N,B,c,_,K,R,S,h,L,Ne,ae,W,je,ue,oe=p[0].name+"",be,Ee,me,Ie,_e,X,ye,Z,ke,ee,he,J,ve,Ue,g,we,j=[],Je=new Map,Te,te,Ce,V,Se,ge,Oe,x,Me,Ve,$e,xe,$,Qe,Y,ze,Ke,We,qe,Ye,De,Ge,He,Xe,Re,le,Le,Q,se,E=[],Ze=new Map,et,ne,P=[],tt=new Map,z;_=new Lt({props:{js:` -import PocketBase from 'pocketbase'; - -const pb = new PocketBase('${p[4]}'); - -... - -// example update data -const data = ${JSON.stringify(Object.assign({},p[3],I.dummyCollectionSchemaData(p[0])),null,4)}; - -const record = await pb.collection('${(it=p[0])==null?void 0:it.name}').update('RECORD_ID', data); - `,dart:` -import 'package:pocketbase/pocketbase.dart'; - -final pb = PocketBase('${p[4]}'); - -... - -// example update body -final body = ${JSON.stringify(Object.assign({},p[3],I.dummyCollectionSchemaData(p[0])),null,2)}; - -final record = await pb.collection('${(at=p[0])==null?void 0:at.name}').update('RECORD_ID', body: body); - `}});let q=p[5]&&yt(),D=((ot=p[0])==null?void 0:ot.isAuth)&&kt(),de=(dt=p[0])==null?void 0:dt.schema;const lt=e=>e[12].name;for(let e=0;ee[7].code;for(let e=0;ee[7].code;for(let e=0;eapplication/json or - multipart/form-data.`,N=m(),B=r("p"),B.innerHTML=`File upload is supported only via multipart/form-data. -
    - For more info and examples you could check the detailed - Files upload and handling docs - .`,c=m(),Ae(_.$$.fragment),K=m(),R=r("h6"),R.textContent="API details",S=m(),h=r("div"),L=r("strong"),L.textContent="PATCH",Ne=m(),ae=r("div"),W=r("p"),je=y("/api/collections/"),ue=r("strong"),be=y(oe),Ee=y("/records/"),me=r("strong"),me.textContent=":id",Ie=m(),q&&q.c(),_e=m(),X=r("div"),X.textContent="Path parameters",ye=m(),Z=r("table"),Z.innerHTML=`Param - Type - Description - id - String - ID of the record to update.`,ke=m(),ee=r("div"),ee.textContent="Body Parameters",he=m(),J=r("table"),ve=r("thead"),ve.innerHTML=`Param - Type - Description`,Ue=m(),g=r("tbody"),D&&D.c(),we=m();for(let e=0;eParam - Type - Description`,ge=m(),Oe=r("tbody"),x=r("tr"),Me=r("td"),Me.textContent="expand",Ve=m(),$e=r("td"),$e.innerHTML='String',xe=m(),$=r("td"),Qe=y(`Auto expand relations when returning the updated record. Ex.: - `),Ae(Y.$$.fragment),ze=y(` - Supports up to 6-levels depth nested relations expansion. `),Ke=r("br"),We=y(` - The expanded relations will be appended to the record under the - `),qe=r("code"),qe.textContent="expand",Ye=y(" property (eg. "),De=r("code"),De.textContent='"expand": {"relField1": {...}, ...}',Ge=y(`). Only - the relations that the user has permissions to `),He=r("strong"),He.textContent="view",Xe=y(" will be expanded."),Re=m(),le=r("div"),le.textContent="Responses",Le=m(),Q=r("div"),se=r("div");for(let e=0;e${JSON.stringify(Object.assign({},e[3],I.dummyCollectionSchemaData(e[0])),null,2)}; - -final record = await pb.collection('${(pt=e[0])==null?void 0:pt.name}').update('RECORD_ID', body: body); - `),_.$set(w),(!z||n&1)&&oe!==(oe=e[0].name+"")&&U(be,oe),e[5]?q||(q=yt(),q.c(),q.m(h,null)):q&&(q.d(1),q=null),(ft=e[0])!=null&&ft.isAuth?D||(D=kt(),D.c(),D.m(g,we)):D&&(D.d(1),D=null),n&1&&(de=(ct=e[0])==null?void 0:ct.schema,j=Pe(j,n,lt,1,e,de,Je,g,ut,ht,null,_t)),n&6&&(re=e[2],E=Pe(E,n,st,1,e,re,Ze,se,ut,vt,null,mt)),n&6&&(ie=e[2],Mt(),P=Pe(P,n,nt,1,e,ie,tt,ne,$t,wt,null,bt),qt())},i(e){if(!z){pe(_.$$.fragment,e),pe(Y.$$.fragment,e);for(let n=0;nl(1,d=v.code);return p.$$set=v=>{"collection"in v&&l(0,u=v.collection)},p.$$.update=()=>{var v,O;p.$$.dirty&1&&l(5,s=(u==null?void 0:u.updateRule)===null),p.$$.dirty&1&&l(2,f=[{code:200,body:JSON.stringify(I.dummyCollectionRecord(u),null,2)},{code:400,body:` - { - "code": 400, - "message": "Failed to update record.", - "data": { - "${(O=(v=u==null?void 0:u.schema)==null?void 0:v[0])==null?void 0:O.name}": { - "code": "validation_required", - "message": "Missing required value." - } - } - } - `},{code:403,body:` - { - "code": 403, - "message": "You are not allowed to perform this request.", - "data": {} - } - `},{code:404,body:` - { - "code": 404, - "message": "The requested resource wasn't found.", - "data": {} - } - `}]),p.$$.dirty&1&&(u.isAuth?l(3,k={username:"test_username_update",emailVisibility:!1,password:"87654321",passwordConfirm:"87654321",oldPassword:"12345678"}):l(3,k={}))},l(4,b=I.getApiExampleUrl(Ht.baseUrl)),[u,d,f,k,b,s,C]}class zt extends Ct{constructor(t){super(),St(this,t,Vt,gt,Ot,{collection:0})}}export{zt as default}; diff --git a/ui/dist/assets/ViewApiDocs.fc364f02.js b/ui/dist/assets/ViewApiDocs.fc364f02.js deleted file mode 100644 index 5c162fbc880344890c32c9533265e50de8cd4609..0000000000000000000000000000000000000000 --- a/ui/dist/assets/ViewApiDocs.fc364f02.js +++ /dev/null @@ -1,66 +0,0 @@ -import{S as Ze,i as et,s as tt,M as Ye,e as o,w as m,b as f,c as _e,f as _,g as r,h as l,m as ke,x as me,N as Ve,O as lt,k as st,P as nt,n as ot,t as z,a as G,o as d,d as he,Q as it,C as ze,p as at,r as J,u as rt}from"./index.662e825a.js";import{S as dt}from"./SdkTabs.1e98a608.js";function Ge(i,s,n){const a=i.slice();return a[6]=s[n],a}function Je(i,s,n){const a=i.slice();return a[6]=s[n],a}function Ke(i){let s;return{c(){s=o("p"),s.innerHTML="Requires admin Authorization:TOKEN header",_(s,"class","txt-hint txt-sm txt-right")},m(n,a){r(n,s,a)},d(n){n&&d(s)}}}function We(i,s){let n,a=s[6].code+"",w,c,p,u;function C(){return s[5](s[6])}return{key:i,first:null,c(){n=o("button"),w=m(a),c=f(),_(n,"class","tab-item"),J(n,"active",s[2]===s[6].code),this.first=n},m(h,R){r(h,n,R),l(n,w),l(n,c),p||(u=rt(n,"click",C),p=!0)},p(h,R){s=h,R&20&&J(n,"active",s[2]===s[6].code)},d(h){h&&d(n),p=!1,u()}}}function Xe(i,s){let n,a,w,c;return a=new Ye({props:{content:s[6].body}}),{key:i,first:null,c(){n=o("div"),_e(a.$$.fragment),w=f(),_(n,"class","tab-item"),J(n,"active",s[2]===s[6].code),this.first=n},m(p,u){r(p,n,u),ke(a,n,null),l(n,w),c=!0},p(p,u){s=p,(!c||u&20)&&J(n,"active",s[2]===s[6].code)},i(p){c||(z(a.$$.fragment,p),c=!0)},o(p){G(a.$$.fragment,p),c=!1},d(p){p&&d(n),he(a)}}}function ct(i){var Ne,Ue;let s,n,a=i[0].name+"",w,c,p,u,C,h,R,N=i[0].name+"",K,ve,W,g,X,B,Y,$,U,we,j,E,ye,Z,Q=i[0].name+"",ee,$e,te,Ce,le,I,se,M,ne,x,oe,O,ie,Fe,ae,D,re,Re,de,ge,k,Oe,S,De,Pe,Te,ce,Ee,pe,Se,Be,Ie,fe,Me,ue,A,be,P,H,F=[],xe=new Map,Ae,q,y=[],He=new Map,T;g=new dt({props:{js:` - import PocketBase from 'pocketbase'; - - const pb = new PocketBase('${i[3]}'); - - ... - - const record = await pb.collection('${(Ne=i[0])==null?void 0:Ne.name}').getOne('RECORD_ID', { - expand: 'relField1,relField2.subRelField', - }); - `,dart:` - import 'package:pocketbase/pocketbase.dart'; - - final pb = PocketBase('${i[3]}'); - - ... - - final record = await pb.collection('${(Ue=i[0])==null?void 0:Ue.name}').getOne('RECORD_ID', - 'expand': 'relField1,relField2.subRelField', - ); - `}});let v=i[1]&&Ke();S=new Ye({props:{content:"?expand=relField1,relField2.subRelField"}});let V=i[4];const qe=e=>e[6].code;for(let e=0;ee[6].code;for(let e=0;eParam - Type - Description - id - String - ID of the record to view.`,ne=f(),x=o("div"),x.textContent="Query parameters",oe=f(),O=o("table"),ie=o("thead"),ie.innerHTML=`Param - Type - Description`,Fe=f(),ae=o("tbody"),D=o("tr"),re=o("td"),re.textContent="expand",Re=f(),de=o("td"),de.innerHTML='String',ge=f(),k=o("td"),Oe=m(`Auto expand record relations. Ex.: - `),_e(S.$$.fragment),De=m(` - Supports up to 6-levels depth nested relations expansion. `),Pe=o("br"),Te=m(` - The expanded relations will be appended to the record under the - `),ce=o("code"),ce.textContent="expand",Ee=m(" property (eg. "),pe=o("code"),pe.textContent='"expand": {"relField1": {...}, ...}',Se=m(`). - `),Be=o("br"),Ie=m(` - Only the relations to which the request user has permissions to `),fe=o("strong"),fe.textContent="view",Me=m(" will be expanded."),ue=f(),A=o("div"),A.textContent="Responses",be=f(),P=o("div"),H=o("div");for(let e=0;en(2,p=h.code);return i.$$set=h=>{"collection"in h&&n(0,c=h.collection)},i.$$.update=()=>{i.$$.dirty&1&&n(1,a=(c==null?void 0:c.viewRule)===null),i.$$.dirty&3&&c!=null&&c.id&&(u.push({code:200,body:JSON.stringify(ze.dummyCollectionRecord(c),null,2)}),a&&u.push({code:403,body:` - { - "code": 403, - "message": "Only admins can access this action.", - "data": {} - } - `}),u.push({code:404,body:` - { - "code": 404, - "message": "The requested resource wasn't found.", - "data": {} - } - `}))},n(3,w=ze.getApiExampleUrl(at.baseUrl)),[c,a,p,w,u,C]}class bt extends Ze{constructor(s){super(),et(this,s,pt,ct,tt,{collection:0})}}export{bt as default}; diff --git a/ui/dist/assets/index.1745053a.css b/ui/dist/assets/index.1745053a.css deleted file mode 100644 index 500652b13abba679da5a467f6ddeb3fcdae2f2d6..0000000000000000000000000000000000000000 --- a/ui/dist/assets/index.1745053a.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:remixicon;src:url(../fonts/remixicon/remixicon.woff2?v=1) format("woff2"),url(../fonts/remixicon/remixicon.woff?v=1) format("woff"),url(../fonts/remixicon/remixicon.ttf?v=1) format("truetype"),url(../fonts/remixicon/remixicon.svg?v=1#remixicon) format("svg");font-display:swap}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:400;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:600;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:600;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:700;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;src:local(""),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2) format("woff2"),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;src:local(""),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2) format("woff2"),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff) format("woff")}:root{--baseFontFamily: "Source Sans Pro", sans-serif, emoji;--monospaceFontFamily: "Ubuntu Mono", monospace, emoji;--iconFontFamily: "remixicon";--txtPrimaryColor: #16161a;--txtHintColor: #666f75;--txtDisabledColor: #adb3b8;--primaryColor: #16161a;--bodyColor: #f8f9fa;--baseColor: #ffffff;--baseAlt1Color: #ebeff2;--baseAlt2Color: #dee3e8;--baseAlt3Color: #a9b4bc;--baseAlt4Color: #7c868d;--infoColor: #3da9fc;--infoAltColor: #d8eefe;--successColor: #2cb67d;--successAltColor: #d6f5e8;--dangerColor: #ef4565;--dangerAltColor: #fcdee4;--warningColor: #ff8e3c;--warningAltColor: #ffe7d6;--overlayColor: rgba(65, 80, 105, .25);--tooltipColor: rgba(0, 0, 0, .85);--shadowColor: rgba(0, 0, 0, .06);--baseFontSize: 14.5px;--xsFontSize: 12px;--smFontSize: 13px;--lgFontSize: 15px;--xlFontSize: 16px;--baseLineHeight: 22px;--smLineHeight: 16px;--lgLineHeight: 24px;--inputHeight: 34px;--btnHeight: 40px;--xsBtnHeight: 24px;--smBtnHeight: 30px;--lgBtnHeight: 54px;--baseSpacing: 30px;--xsSpacing: 15px;--smSpacing: 20px;--lgSpacing: 50px;--xlSpacing: 60px;--wrapperWidth: 850px;--smWrapperWidth: 420px;--lgWrapperWidth: 1200px;--appSidebarWidth: 75px;--pageSidebarWidth: 220px;--baseAnimationSpeed: .15s;--activeAnimationSpeed: 70ms;--entranceAnimationSpeed: .25s;--baseRadius: 3px;--lgRadius: 12px;--btnRadius: 3px;accent-color:var(--primaryColor)}html,body,div,span,applet,object,iframe,h1,h2,.breadcrumbs .breadcrumb-item,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}i{font-family:remixicon!important;font-style:normal;font-weight:400;font-size:1.1238rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i:before{vertical-align:top;margin-top:1px;display:inline-block}.ri-24-hours-fill:before{content:"\ea01"}.ri-24-hours-line:before{content:"\ea02"}.ri-4k-fill:before{content:"\ea03"}.ri-4k-line:before{content:"\ea04"}.ri-a-b:before{content:"\ea05"}.ri-account-box-fill:before{content:"\ea06"}.ri-account-box-line:before{content:"\ea07"}.ri-account-circle-fill:before{content:"\ea08"}.ri-account-circle-line:before{content:"\ea09"}.ri-account-pin-box-fill:before{content:"\ea0a"}.ri-account-pin-box-line:before{content:"\ea0b"}.ri-account-pin-circle-fill:before{content:"\ea0c"}.ri-account-pin-circle-line:before{content:"\ea0d"}.ri-add-box-fill:before{content:"\ea0e"}.ri-add-box-line:before{content:"\ea0f"}.ri-add-circle-fill:before{content:"\ea10"}.ri-add-circle-line:before{content:"\ea11"}.ri-add-fill:before{content:"\ea12"}.ri-add-line:before{content:"\ea13"}.ri-admin-fill:before{content:"\ea14"}.ri-admin-line:before{content:"\ea15"}.ri-advertisement-fill:before{content:"\ea16"}.ri-advertisement-line:before{content:"\ea17"}.ri-airplay-fill:before{content:"\ea18"}.ri-airplay-line:before{content:"\ea19"}.ri-alarm-fill:before{content:"\ea1a"}.ri-alarm-line:before{content:"\ea1b"}.ri-alarm-warning-fill:before{content:"\ea1c"}.ri-alarm-warning-line:before{content:"\ea1d"}.ri-album-fill:before{content:"\ea1e"}.ri-album-line:before{content:"\ea1f"}.ri-alert-fill:before{content:"\ea20"}.ri-alert-line:before{content:"\ea21"}.ri-aliens-fill:before{content:"\ea22"}.ri-aliens-line:before{content:"\ea23"}.ri-align-bottom:before{content:"\ea24"}.ri-align-center:before{content:"\ea25"}.ri-align-justify:before{content:"\ea26"}.ri-align-left:before{content:"\ea27"}.ri-align-right:before{content:"\ea28"}.ri-align-top:before{content:"\ea29"}.ri-align-vertically:before{content:"\ea2a"}.ri-alipay-fill:before{content:"\ea2b"}.ri-alipay-line:before{content:"\ea2c"}.ri-amazon-fill:before{content:"\ea2d"}.ri-amazon-line:before{content:"\ea2e"}.ri-anchor-fill:before{content:"\ea2f"}.ri-anchor-line:before{content:"\ea30"}.ri-ancient-gate-fill:before{content:"\ea31"}.ri-ancient-gate-line:before{content:"\ea32"}.ri-ancient-pavilion-fill:before{content:"\ea33"}.ri-ancient-pavilion-line:before{content:"\ea34"}.ri-android-fill:before{content:"\ea35"}.ri-android-line:before{content:"\ea36"}.ri-angularjs-fill:before{content:"\ea37"}.ri-angularjs-line:before{content:"\ea38"}.ri-anticlockwise-2-fill:before{content:"\ea39"}.ri-anticlockwise-2-line:before{content:"\ea3a"}.ri-anticlockwise-fill:before{content:"\ea3b"}.ri-anticlockwise-line:before{content:"\ea3c"}.ri-app-store-fill:before{content:"\ea3d"}.ri-app-store-line:before{content:"\ea3e"}.ri-apple-fill:before{content:"\ea3f"}.ri-apple-line:before{content:"\ea40"}.ri-apps-2-fill:before{content:"\ea41"}.ri-apps-2-line:before{content:"\ea42"}.ri-apps-fill:before{content:"\ea43"}.ri-apps-line:before{content:"\ea44"}.ri-archive-drawer-fill:before{content:"\ea45"}.ri-archive-drawer-line:before{content:"\ea46"}.ri-archive-fill:before{content:"\ea47"}.ri-archive-line:before{content:"\ea48"}.ri-arrow-down-circle-fill:before{content:"\ea49"}.ri-arrow-down-circle-line:before{content:"\ea4a"}.ri-arrow-down-fill:before{content:"\ea4b"}.ri-arrow-down-line:before{content:"\ea4c"}.ri-arrow-down-s-fill:before{content:"\ea4d"}.ri-arrow-down-s-line:before{content:"\ea4e"}.ri-arrow-drop-down-fill:before{content:"\ea4f"}.ri-arrow-drop-down-line:before{content:"\ea50"}.ri-arrow-drop-left-fill:before{content:"\ea51"}.ri-arrow-drop-left-line:before{content:"\ea52"}.ri-arrow-drop-right-fill:before{content:"\ea53"}.ri-arrow-drop-right-line:before{content:"\ea54"}.ri-arrow-drop-up-fill:before{content:"\ea55"}.ri-arrow-drop-up-line:before{content:"\ea56"}.ri-arrow-go-back-fill:before{content:"\ea57"}.ri-arrow-go-back-line:before{content:"\ea58"}.ri-arrow-go-forward-fill:before{content:"\ea59"}.ri-arrow-go-forward-line:before{content:"\ea5a"}.ri-arrow-left-circle-fill:before{content:"\ea5b"}.ri-arrow-left-circle-line:before{content:"\ea5c"}.ri-arrow-left-down-fill:before{content:"\ea5d"}.ri-arrow-left-down-line:before{content:"\ea5e"}.ri-arrow-left-fill:before{content:"\ea5f"}.ri-arrow-left-line:before{content:"\ea60"}.ri-arrow-left-right-fill:before{content:"\ea61"}.ri-arrow-left-right-line:before{content:"\ea62"}.ri-arrow-left-s-fill:before{content:"\ea63"}.ri-arrow-left-s-line:before{content:"\ea64"}.ri-arrow-left-up-fill:before{content:"\ea65"}.ri-arrow-left-up-line:before{content:"\ea66"}.ri-arrow-right-circle-fill:before{content:"\ea67"}.ri-arrow-right-circle-line:before{content:"\ea68"}.ri-arrow-right-down-fill:before{content:"\ea69"}.ri-arrow-right-down-line:before{content:"\ea6a"}.ri-arrow-right-fill:before{content:"\ea6b"}.ri-arrow-right-line:before{content:"\ea6c"}.ri-arrow-right-s-fill:before{content:"\ea6d"}.ri-arrow-right-s-line:before{content:"\ea6e"}.ri-arrow-right-up-fill:before{content:"\ea6f"}.ri-arrow-right-up-line:before{content:"\ea70"}.ri-arrow-up-circle-fill:before{content:"\ea71"}.ri-arrow-up-circle-line:before{content:"\ea72"}.ri-arrow-up-down-fill:before{content:"\ea73"}.ri-arrow-up-down-line:before{content:"\ea74"}.ri-arrow-up-fill:before{content:"\ea75"}.ri-arrow-up-line:before{content:"\ea76"}.ri-arrow-up-s-fill:before{content:"\ea77"}.ri-arrow-up-s-line:before{content:"\ea78"}.ri-artboard-2-fill:before{content:"\ea79"}.ri-artboard-2-line:before{content:"\ea7a"}.ri-artboard-fill:before{content:"\ea7b"}.ri-artboard-line:before{content:"\ea7c"}.ri-article-fill:before{content:"\ea7d"}.ri-article-line:before{content:"\ea7e"}.ri-aspect-ratio-fill:before{content:"\ea7f"}.ri-aspect-ratio-line:before{content:"\ea80"}.ri-asterisk:before{content:"\ea81"}.ri-at-fill:before{content:"\ea82"}.ri-at-line:before{content:"\ea83"}.ri-attachment-2:before{content:"\ea84"}.ri-attachment-fill:before{content:"\ea85"}.ri-attachment-line:before{content:"\ea86"}.ri-auction-fill:before{content:"\ea87"}.ri-auction-line:before{content:"\ea88"}.ri-award-fill:before{content:"\ea89"}.ri-award-line:before{content:"\ea8a"}.ri-baidu-fill:before{content:"\ea8b"}.ri-baidu-line:before{content:"\ea8c"}.ri-ball-pen-fill:before{content:"\ea8d"}.ri-ball-pen-line:before{content:"\ea8e"}.ri-bank-card-2-fill:before{content:"\ea8f"}.ri-bank-card-2-line:before{content:"\ea90"}.ri-bank-card-fill:before{content:"\ea91"}.ri-bank-card-line:before{content:"\ea92"}.ri-bank-fill:before{content:"\ea93"}.ri-bank-line:before{content:"\ea94"}.ri-bar-chart-2-fill:before{content:"\ea95"}.ri-bar-chart-2-line:before{content:"\ea96"}.ri-bar-chart-box-fill:before{content:"\ea97"}.ri-bar-chart-box-line:before{content:"\ea98"}.ri-bar-chart-fill:before{content:"\ea99"}.ri-bar-chart-grouped-fill:before{content:"\ea9a"}.ri-bar-chart-grouped-line:before{content:"\ea9b"}.ri-bar-chart-horizontal-fill:before{content:"\ea9c"}.ri-bar-chart-horizontal-line:before{content:"\ea9d"}.ri-bar-chart-line:before{content:"\ea9e"}.ri-barcode-box-fill:before{content:"\ea9f"}.ri-barcode-box-line:before{content:"\eaa0"}.ri-barcode-fill:before{content:"\eaa1"}.ri-barcode-line:before{content:"\eaa2"}.ri-barricade-fill:before{content:"\eaa3"}.ri-barricade-line:before{content:"\eaa4"}.ri-base-station-fill:before{content:"\eaa5"}.ri-base-station-line:before{content:"\eaa6"}.ri-basketball-fill:before{content:"\eaa7"}.ri-basketball-line:before{content:"\eaa8"}.ri-battery-2-charge-fill:before{content:"\eaa9"}.ri-battery-2-charge-line:before{content:"\eaaa"}.ri-battery-2-fill:before{content:"\eaab"}.ri-battery-2-line:before{content:"\eaac"}.ri-battery-charge-fill:before{content:"\eaad"}.ri-battery-charge-line:before{content:"\eaae"}.ri-battery-fill:before{content:"\eaaf"}.ri-battery-line:before{content:"\eab0"}.ri-battery-low-fill:before{content:"\eab1"}.ri-battery-low-line:before{content:"\eab2"}.ri-battery-saver-fill:before{content:"\eab3"}.ri-battery-saver-line:before{content:"\eab4"}.ri-battery-share-fill:before{content:"\eab5"}.ri-battery-share-line:before{content:"\eab6"}.ri-bear-smile-fill:before{content:"\eab7"}.ri-bear-smile-line:before{content:"\eab8"}.ri-behance-fill:before{content:"\eab9"}.ri-behance-line:before{content:"\eaba"}.ri-bell-fill:before{content:"\eabb"}.ri-bell-line:before{content:"\eabc"}.ri-bike-fill:before{content:"\eabd"}.ri-bike-line:before{content:"\eabe"}.ri-bilibili-fill:before{content:"\eabf"}.ri-bilibili-line:before{content:"\eac0"}.ri-bill-fill:before{content:"\eac1"}.ri-bill-line:before{content:"\eac2"}.ri-billiards-fill:before{content:"\eac3"}.ri-billiards-line:before{content:"\eac4"}.ri-bit-coin-fill:before{content:"\eac5"}.ri-bit-coin-line:before{content:"\eac6"}.ri-blaze-fill:before{content:"\eac7"}.ri-blaze-line:before{content:"\eac8"}.ri-bluetooth-connect-fill:before{content:"\eac9"}.ri-bluetooth-connect-line:before{content:"\eaca"}.ri-bluetooth-fill:before{content:"\eacb"}.ri-bluetooth-line:before{content:"\eacc"}.ri-blur-off-fill:before{content:"\eacd"}.ri-blur-off-line:before{content:"\eace"}.ri-body-scan-fill:before{content:"\eacf"}.ri-body-scan-line:before{content:"\ead0"}.ri-bold:before{content:"\ead1"}.ri-book-2-fill:before{content:"\ead2"}.ri-book-2-line:before{content:"\ead3"}.ri-book-3-fill:before{content:"\ead4"}.ri-book-3-line:before{content:"\ead5"}.ri-book-fill:before{content:"\ead6"}.ri-book-line:before{content:"\ead7"}.ri-book-mark-fill:before{content:"\ead8"}.ri-book-mark-line:before{content:"\ead9"}.ri-book-open-fill:before{content:"\eada"}.ri-book-open-line:before{content:"\eadb"}.ri-book-read-fill:before{content:"\eadc"}.ri-book-read-line:before{content:"\eadd"}.ri-booklet-fill:before{content:"\eade"}.ri-booklet-line:before{content:"\eadf"}.ri-bookmark-2-fill:before{content:"\eae0"}.ri-bookmark-2-line:before{content:"\eae1"}.ri-bookmark-3-fill:before{content:"\eae2"}.ri-bookmark-3-line:before{content:"\eae3"}.ri-bookmark-fill:before{content:"\eae4"}.ri-bookmark-line:before{content:"\eae5"}.ri-boxing-fill:before{content:"\eae6"}.ri-boxing-line:before{content:"\eae7"}.ri-braces-fill:before{content:"\eae8"}.ri-braces-line:before{content:"\eae9"}.ri-brackets-fill:before{content:"\eaea"}.ri-brackets-line:before{content:"\eaeb"}.ri-briefcase-2-fill:before{content:"\eaec"}.ri-briefcase-2-line:before{content:"\eaed"}.ri-briefcase-3-fill:before{content:"\eaee"}.ri-briefcase-3-line:before{content:"\eaef"}.ri-briefcase-4-fill:before{content:"\eaf0"}.ri-briefcase-4-line:before{content:"\eaf1"}.ri-briefcase-5-fill:before{content:"\eaf2"}.ri-briefcase-5-line:before{content:"\eaf3"}.ri-briefcase-fill:before{content:"\eaf4"}.ri-briefcase-line:before{content:"\eaf5"}.ri-bring-forward:before{content:"\eaf6"}.ri-bring-to-front:before{content:"\eaf7"}.ri-broadcast-fill:before{content:"\eaf8"}.ri-broadcast-line:before{content:"\eaf9"}.ri-brush-2-fill:before{content:"\eafa"}.ri-brush-2-line:before{content:"\eafb"}.ri-brush-3-fill:before{content:"\eafc"}.ri-brush-3-line:before{content:"\eafd"}.ri-brush-4-fill:before{content:"\eafe"}.ri-brush-4-line:before{content:"\eaff"}.ri-brush-fill:before{content:"\eb00"}.ri-brush-line:before{content:"\eb01"}.ri-bubble-chart-fill:before{content:"\eb02"}.ri-bubble-chart-line:before{content:"\eb03"}.ri-bug-2-fill:before{content:"\eb04"}.ri-bug-2-line:before{content:"\eb05"}.ri-bug-fill:before{content:"\eb06"}.ri-bug-line:before{content:"\eb07"}.ri-building-2-fill:before{content:"\eb08"}.ri-building-2-line:before{content:"\eb09"}.ri-building-3-fill:before{content:"\eb0a"}.ri-building-3-line:before{content:"\eb0b"}.ri-building-4-fill:before{content:"\eb0c"}.ri-building-4-line:before{content:"\eb0d"}.ri-building-fill:before{content:"\eb0e"}.ri-building-line:before{content:"\eb0f"}.ri-bus-2-fill:before{content:"\eb10"}.ri-bus-2-line:before{content:"\eb11"}.ri-bus-fill:before{content:"\eb12"}.ri-bus-line:before{content:"\eb13"}.ri-bus-wifi-fill:before{content:"\eb14"}.ri-bus-wifi-line:before{content:"\eb15"}.ri-cactus-fill:before{content:"\eb16"}.ri-cactus-line:before{content:"\eb17"}.ri-cake-2-fill:before{content:"\eb18"}.ri-cake-2-line:before{content:"\eb19"}.ri-cake-3-fill:before{content:"\eb1a"}.ri-cake-3-line:before{content:"\eb1b"}.ri-cake-fill:before{content:"\eb1c"}.ri-cake-line:before{content:"\eb1d"}.ri-calculator-fill:before{content:"\eb1e"}.ri-calculator-line:before{content:"\eb1f"}.ri-calendar-2-fill:before{content:"\eb20"}.ri-calendar-2-line:before{content:"\eb21"}.ri-calendar-check-fill:before{content:"\eb22"}.ri-calendar-check-line:before{content:"\eb23"}.ri-calendar-event-fill:before{content:"\eb24"}.ri-calendar-event-line:before{content:"\eb25"}.ri-calendar-fill:before{content:"\eb26"}.ri-calendar-line:before{content:"\eb27"}.ri-calendar-todo-fill:before{content:"\eb28"}.ri-calendar-todo-line:before{content:"\eb29"}.ri-camera-2-fill:before{content:"\eb2a"}.ri-camera-2-line:before{content:"\eb2b"}.ri-camera-3-fill:before{content:"\eb2c"}.ri-camera-3-line:before{content:"\eb2d"}.ri-camera-fill:before{content:"\eb2e"}.ri-camera-lens-fill:before{content:"\eb2f"}.ri-camera-lens-line:before{content:"\eb30"}.ri-camera-line:before{content:"\eb31"}.ri-camera-off-fill:before{content:"\eb32"}.ri-camera-off-line:before{content:"\eb33"}.ri-camera-switch-fill:before{content:"\eb34"}.ri-camera-switch-line:before{content:"\eb35"}.ri-capsule-fill:before{content:"\eb36"}.ri-capsule-line:before{content:"\eb37"}.ri-car-fill:before{content:"\eb38"}.ri-car-line:before{content:"\eb39"}.ri-car-washing-fill:before{content:"\eb3a"}.ri-car-washing-line:before{content:"\eb3b"}.ri-caravan-fill:before{content:"\eb3c"}.ri-caravan-line:before{content:"\eb3d"}.ri-cast-fill:before{content:"\eb3e"}.ri-cast-line:before{content:"\eb3f"}.ri-cellphone-fill:before{content:"\eb40"}.ri-cellphone-line:before{content:"\eb41"}.ri-celsius-fill:before{content:"\eb42"}.ri-celsius-line:before{content:"\eb43"}.ri-centos-fill:before{content:"\eb44"}.ri-centos-line:before{content:"\eb45"}.ri-character-recognition-fill:before{content:"\eb46"}.ri-character-recognition-line:before{content:"\eb47"}.ri-charging-pile-2-fill:before{content:"\eb48"}.ri-charging-pile-2-line:before{content:"\eb49"}.ri-charging-pile-fill:before{content:"\eb4a"}.ri-charging-pile-line:before{content:"\eb4b"}.ri-chat-1-fill:before{content:"\eb4c"}.ri-chat-1-line:before{content:"\eb4d"}.ri-chat-2-fill:before{content:"\eb4e"}.ri-chat-2-line:before{content:"\eb4f"}.ri-chat-3-fill:before{content:"\eb50"}.ri-chat-3-line:before{content:"\eb51"}.ri-chat-4-fill:before{content:"\eb52"}.ri-chat-4-line:before{content:"\eb53"}.ri-chat-check-fill:before{content:"\eb54"}.ri-chat-check-line:before{content:"\eb55"}.ri-chat-delete-fill:before{content:"\eb56"}.ri-chat-delete-line:before{content:"\eb57"}.ri-chat-download-fill:before{content:"\eb58"}.ri-chat-download-line:before{content:"\eb59"}.ri-chat-follow-up-fill:before{content:"\eb5a"}.ri-chat-follow-up-line:before{content:"\eb5b"}.ri-chat-forward-fill:before{content:"\eb5c"}.ri-chat-forward-line:before{content:"\eb5d"}.ri-chat-heart-fill:before{content:"\eb5e"}.ri-chat-heart-line:before{content:"\eb5f"}.ri-chat-history-fill:before{content:"\eb60"}.ri-chat-history-line:before{content:"\eb61"}.ri-chat-new-fill:before{content:"\eb62"}.ri-chat-new-line:before{content:"\eb63"}.ri-chat-off-fill:before{content:"\eb64"}.ri-chat-off-line:before{content:"\eb65"}.ri-chat-poll-fill:before{content:"\eb66"}.ri-chat-poll-line:before{content:"\eb67"}.ri-chat-private-fill:before{content:"\eb68"}.ri-chat-private-line:before{content:"\eb69"}.ri-chat-quote-fill:before{content:"\eb6a"}.ri-chat-quote-line:before{content:"\eb6b"}.ri-chat-settings-fill:before{content:"\eb6c"}.ri-chat-settings-line:before{content:"\eb6d"}.ri-chat-smile-2-fill:before{content:"\eb6e"}.ri-chat-smile-2-line:before{content:"\eb6f"}.ri-chat-smile-3-fill:before{content:"\eb70"}.ri-chat-smile-3-line:before{content:"\eb71"}.ri-chat-smile-fill:before{content:"\eb72"}.ri-chat-smile-line:before{content:"\eb73"}.ri-chat-upload-fill:before{content:"\eb74"}.ri-chat-upload-line:before{content:"\eb75"}.ri-chat-voice-fill:before{content:"\eb76"}.ri-chat-voice-line:before{content:"\eb77"}.ri-check-double-fill:before{content:"\eb78"}.ri-check-double-line:before{content:"\eb79"}.ri-check-fill:before{content:"\eb7a"}.ri-check-line:before{content:"\eb7b"}.ri-checkbox-blank-circle-fill:before{content:"\eb7c"}.ri-checkbox-blank-circle-line:before{content:"\eb7d"}.ri-checkbox-blank-fill:before{content:"\eb7e"}.ri-checkbox-blank-line:before{content:"\eb7f"}.ri-checkbox-circle-fill:before{content:"\eb80"}.ri-checkbox-circle-line:before{content:"\eb81"}.ri-checkbox-fill:before{content:"\eb82"}.ri-checkbox-indeterminate-fill:before{content:"\eb83"}.ri-checkbox-indeterminate-line:before{content:"\eb84"}.ri-checkbox-line:before{content:"\eb85"}.ri-checkbox-multiple-blank-fill:before{content:"\eb86"}.ri-checkbox-multiple-blank-line:before{content:"\eb87"}.ri-checkbox-multiple-fill:before{content:"\eb88"}.ri-checkbox-multiple-line:before{content:"\eb89"}.ri-china-railway-fill:before{content:"\eb8a"}.ri-china-railway-line:before{content:"\eb8b"}.ri-chrome-fill:before{content:"\eb8c"}.ri-chrome-line:before{content:"\eb8d"}.ri-clapperboard-fill:before{content:"\eb8e"}.ri-clapperboard-line:before{content:"\eb8f"}.ri-clipboard-fill:before{content:"\eb90"}.ri-clipboard-line:before{content:"\eb91"}.ri-clockwise-2-fill:before{content:"\eb92"}.ri-clockwise-2-line:before{content:"\eb93"}.ri-clockwise-fill:before{content:"\eb94"}.ri-clockwise-line:before{content:"\eb95"}.ri-close-circle-fill:before{content:"\eb96"}.ri-close-circle-line:before{content:"\eb97"}.ri-close-fill:before{content:"\eb98"}.ri-close-line:before{content:"\eb99"}.ri-closed-captioning-fill:before{content:"\eb9a"}.ri-closed-captioning-line:before{content:"\eb9b"}.ri-cloud-fill:before{content:"\eb9c"}.ri-cloud-line:before{content:"\eb9d"}.ri-cloud-off-fill:before{content:"\eb9e"}.ri-cloud-off-line:before{content:"\eb9f"}.ri-cloud-windy-fill:before{content:"\eba0"}.ri-cloud-windy-line:before{content:"\eba1"}.ri-cloudy-2-fill:before{content:"\eba2"}.ri-cloudy-2-line:before{content:"\eba3"}.ri-cloudy-fill:before{content:"\eba4"}.ri-cloudy-line:before{content:"\eba5"}.ri-code-box-fill:before{content:"\eba6"}.ri-code-box-line:before{content:"\eba7"}.ri-code-fill:before{content:"\eba8"}.ri-code-line:before{content:"\eba9"}.ri-code-s-fill:before{content:"\ebaa"}.ri-code-s-line:before{content:"\ebab"}.ri-code-s-slash-fill:before{content:"\ebac"}.ri-code-s-slash-line:before{content:"\ebad"}.ri-code-view:before{content:"\ebae"}.ri-codepen-fill:before{content:"\ebaf"}.ri-codepen-line:before{content:"\ebb0"}.ri-coin-fill:before{content:"\ebb1"}.ri-coin-line:before{content:"\ebb2"}.ri-coins-fill:before{content:"\ebb3"}.ri-coins-line:before{content:"\ebb4"}.ri-collage-fill:before{content:"\ebb5"}.ri-collage-line:before{content:"\ebb6"}.ri-command-fill:before{content:"\ebb7"}.ri-command-line:before{content:"\ebb8"}.ri-community-fill:before{content:"\ebb9"}.ri-community-line:before{content:"\ebba"}.ri-compass-2-fill:before{content:"\ebbb"}.ri-compass-2-line:before{content:"\ebbc"}.ri-compass-3-fill:before{content:"\ebbd"}.ri-compass-3-line:before{content:"\ebbe"}.ri-compass-4-fill:before{content:"\ebbf"}.ri-compass-4-line:before{content:"\ebc0"}.ri-compass-discover-fill:before{content:"\ebc1"}.ri-compass-discover-line:before{content:"\ebc2"}.ri-compass-fill:before{content:"\ebc3"}.ri-compass-line:before{content:"\ebc4"}.ri-compasses-2-fill:before{content:"\ebc5"}.ri-compasses-2-line:before{content:"\ebc6"}.ri-compasses-fill:before{content:"\ebc7"}.ri-compasses-line:before{content:"\ebc8"}.ri-computer-fill:before{content:"\ebc9"}.ri-computer-line:before{content:"\ebca"}.ri-contacts-book-2-fill:before{content:"\ebcb"}.ri-contacts-book-2-line:before{content:"\ebcc"}.ri-contacts-book-fill:before{content:"\ebcd"}.ri-contacts-book-line:before{content:"\ebce"}.ri-contacts-book-upload-fill:before{content:"\ebcf"}.ri-contacts-book-upload-line:before{content:"\ebd0"}.ri-contacts-fill:before{content:"\ebd1"}.ri-contacts-line:before{content:"\ebd2"}.ri-contrast-2-fill:before{content:"\ebd3"}.ri-contrast-2-line:before{content:"\ebd4"}.ri-contrast-drop-2-fill:before{content:"\ebd5"}.ri-contrast-drop-2-line:before{content:"\ebd6"}.ri-contrast-drop-fill:before{content:"\ebd7"}.ri-contrast-drop-line:before{content:"\ebd8"}.ri-contrast-fill:before{content:"\ebd9"}.ri-contrast-line:before{content:"\ebda"}.ri-copper-coin-fill:before{content:"\ebdb"}.ri-copper-coin-line:before{content:"\ebdc"}.ri-copper-diamond-fill:before{content:"\ebdd"}.ri-copper-diamond-line:before{content:"\ebde"}.ri-copyleft-fill:before{content:"\ebdf"}.ri-copyleft-line:before{content:"\ebe0"}.ri-copyright-fill:before{content:"\ebe1"}.ri-copyright-line:before{content:"\ebe2"}.ri-coreos-fill:before{content:"\ebe3"}.ri-coreos-line:before{content:"\ebe4"}.ri-coupon-2-fill:before{content:"\ebe5"}.ri-coupon-2-line:before{content:"\ebe6"}.ri-coupon-3-fill:before{content:"\ebe7"}.ri-coupon-3-line:before{content:"\ebe8"}.ri-coupon-4-fill:before{content:"\ebe9"}.ri-coupon-4-line:before{content:"\ebea"}.ri-coupon-5-fill:before{content:"\ebeb"}.ri-coupon-5-line:before{content:"\ebec"}.ri-coupon-fill:before{content:"\ebed"}.ri-coupon-line:before{content:"\ebee"}.ri-cpu-fill:before{content:"\ebef"}.ri-cpu-line:before{content:"\ebf0"}.ri-creative-commons-by-fill:before{content:"\ebf1"}.ri-creative-commons-by-line:before{content:"\ebf2"}.ri-creative-commons-fill:before{content:"\ebf3"}.ri-creative-commons-line:before{content:"\ebf4"}.ri-creative-commons-nc-fill:before{content:"\ebf5"}.ri-creative-commons-nc-line:before{content:"\ebf6"}.ri-creative-commons-nd-fill:before{content:"\ebf7"}.ri-creative-commons-nd-line:before{content:"\ebf8"}.ri-creative-commons-sa-fill:before{content:"\ebf9"}.ri-creative-commons-sa-line:before{content:"\ebfa"}.ri-creative-commons-zero-fill:before{content:"\ebfb"}.ri-creative-commons-zero-line:before{content:"\ebfc"}.ri-criminal-fill:before{content:"\ebfd"}.ri-criminal-line:before{content:"\ebfe"}.ri-crop-2-fill:before{content:"\ebff"}.ri-crop-2-line:before{content:"\ec00"}.ri-crop-fill:before{content:"\ec01"}.ri-crop-line:before{content:"\ec02"}.ri-css3-fill:before{content:"\ec03"}.ri-css3-line:before{content:"\ec04"}.ri-cup-fill:before{content:"\ec05"}.ri-cup-line:before{content:"\ec06"}.ri-currency-fill:before{content:"\ec07"}.ri-currency-line:before{content:"\ec08"}.ri-cursor-fill:before{content:"\ec09"}.ri-cursor-line:before{content:"\ec0a"}.ri-customer-service-2-fill:before{content:"\ec0b"}.ri-customer-service-2-line:before{content:"\ec0c"}.ri-customer-service-fill:before{content:"\ec0d"}.ri-customer-service-line:before{content:"\ec0e"}.ri-dashboard-2-fill:before{content:"\ec0f"}.ri-dashboard-2-line:before{content:"\ec10"}.ri-dashboard-3-fill:before{content:"\ec11"}.ri-dashboard-3-line:before{content:"\ec12"}.ri-dashboard-fill:before{content:"\ec13"}.ri-dashboard-line:before{content:"\ec14"}.ri-database-2-fill:before{content:"\ec15"}.ri-database-2-line:before{content:"\ec16"}.ri-database-fill:before{content:"\ec17"}.ri-database-line:before{content:"\ec18"}.ri-delete-back-2-fill:before{content:"\ec19"}.ri-delete-back-2-line:before{content:"\ec1a"}.ri-delete-back-fill:before{content:"\ec1b"}.ri-delete-back-line:before{content:"\ec1c"}.ri-delete-bin-2-fill:before{content:"\ec1d"}.ri-delete-bin-2-line:before{content:"\ec1e"}.ri-delete-bin-3-fill:before{content:"\ec1f"}.ri-delete-bin-3-line:before{content:"\ec20"}.ri-delete-bin-4-fill:before{content:"\ec21"}.ri-delete-bin-4-line:before{content:"\ec22"}.ri-delete-bin-5-fill:before{content:"\ec23"}.ri-delete-bin-5-line:before{content:"\ec24"}.ri-delete-bin-6-fill:before{content:"\ec25"}.ri-delete-bin-6-line:before{content:"\ec26"}.ri-delete-bin-7-fill:before{content:"\ec27"}.ri-delete-bin-7-line:before{content:"\ec28"}.ri-delete-bin-fill:before{content:"\ec29"}.ri-delete-bin-line:before{content:"\ec2a"}.ri-delete-column:before{content:"\ec2b"}.ri-delete-row:before{content:"\ec2c"}.ri-device-fill:before{content:"\ec2d"}.ri-device-line:before{content:"\ec2e"}.ri-device-recover-fill:before{content:"\ec2f"}.ri-device-recover-line:before{content:"\ec30"}.ri-dingding-fill:before{content:"\ec31"}.ri-dingding-line:before{content:"\ec32"}.ri-direction-fill:before{content:"\ec33"}.ri-direction-line:before{content:"\ec34"}.ri-disc-fill:before{content:"\ec35"}.ri-disc-line:before{content:"\ec36"}.ri-discord-fill:before{content:"\ec37"}.ri-discord-line:before{content:"\ec38"}.ri-discuss-fill:before{content:"\ec39"}.ri-discuss-line:before{content:"\ec3a"}.ri-dislike-fill:before{content:"\ec3b"}.ri-dislike-line:before{content:"\ec3c"}.ri-disqus-fill:before{content:"\ec3d"}.ri-disqus-line:before{content:"\ec3e"}.ri-divide-fill:before{content:"\ec3f"}.ri-divide-line:before{content:"\ec40"}.ri-donut-chart-fill:before{content:"\ec41"}.ri-donut-chart-line:before{content:"\ec42"}.ri-door-closed-fill:before{content:"\ec43"}.ri-door-closed-line:before{content:"\ec44"}.ri-door-fill:before{content:"\ec45"}.ri-door-line:before{content:"\ec46"}.ri-door-lock-box-fill:before{content:"\ec47"}.ri-door-lock-box-line:before{content:"\ec48"}.ri-door-lock-fill:before{content:"\ec49"}.ri-door-lock-line:before{content:"\ec4a"}.ri-door-open-fill:before{content:"\ec4b"}.ri-door-open-line:before{content:"\ec4c"}.ri-dossier-fill:before{content:"\ec4d"}.ri-dossier-line:before{content:"\ec4e"}.ri-douban-fill:before{content:"\ec4f"}.ri-douban-line:before{content:"\ec50"}.ri-double-quotes-l:before{content:"\ec51"}.ri-double-quotes-r:before{content:"\ec52"}.ri-download-2-fill:before{content:"\ec53"}.ri-download-2-line:before{content:"\ec54"}.ri-download-cloud-2-fill:before{content:"\ec55"}.ri-download-cloud-2-line:before{content:"\ec56"}.ri-download-cloud-fill:before{content:"\ec57"}.ri-download-cloud-line:before{content:"\ec58"}.ri-download-fill:before{content:"\ec59"}.ri-download-line:before{content:"\ec5a"}.ri-draft-fill:before{content:"\ec5b"}.ri-draft-line:before{content:"\ec5c"}.ri-drag-drop-fill:before{content:"\ec5d"}.ri-drag-drop-line:before{content:"\ec5e"}.ri-drag-move-2-fill:before{content:"\ec5f"}.ri-drag-move-2-line:before{content:"\ec60"}.ri-drag-move-fill:before{content:"\ec61"}.ri-drag-move-line:before{content:"\ec62"}.ri-dribbble-fill:before{content:"\ec63"}.ri-dribbble-line:before{content:"\ec64"}.ri-drive-fill:before{content:"\ec65"}.ri-drive-line:before{content:"\ec66"}.ri-drizzle-fill:before{content:"\ec67"}.ri-drizzle-line:before{content:"\ec68"}.ri-drop-fill:before{content:"\ec69"}.ri-drop-line:before{content:"\ec6a"}.ri-dropbox-fill:before{content:"\ec6b"}.ri-dropbox-line:before{content:"\ec6c"}.ri-dual-sim-1-fill:before{content:"\ec6d"}.ri-dual-sim-1-line:before{content:"\ec6e"}.ri-dual-sim-2-fill:before{content:"\ec6f"}.ri-dual-sim-2-line:before{content:"\ec70"}.ri-dv-fill:before{content:"\ec71"}.ri-dv-line:before{content:"\ec72"}.ri-dvd-fill:before{content:"\ec73"}.ri-dvd-line:before{content:"\ec74"}.ri-e-bike-2-fill:before{content:"\ec75"}.ri-e-bike-2-line:before{content:"\ec76"}.ri-e-bike-fill:before{content:"\ec77"}.ri-e-bike-line:before{content:"\ec78"}.ri-earth-fill:before{content:"\ec79"}.ri-earth-line:before{content:"\ec7a"}.ri-earthquake-fill:before{content:"\ec7b"}.ri-earthquake-line:before{content:"\ec7c"}.ri-edge-fill:before{content:"\ec7d"}.ri-edge-line:before{content:"\ec7e"}.ri-edit-2-fill:before{content:"\ec7f"}.ri-edit-2-line:before{content:"\ec80"}.ri-edit-box-fill:before{content:"\ec81"}.ri-edit-box-line:before{content:"\ec82"}.ri-edit-circle-fill:before{content:"\ec83"}.ri-edit-circle-line:before{content:"\ec84"}.ri-edit-fill:before{content:"\ec85"}.ri-edit-line:before{content:"\ec86"}.ri-eject-fill:before{content:"\ec87"}.ri-eject-line:before{content:"\ec88"}.ri-emotion-2-fill:before{content:"\ec89"}.ri-emotion-2-line:before{content:"\ec8a"}.ri-emotion-fill:before{content:"\ec8b"}.ri-emotion-happy-fill:before{content:"\ec8c"}.ri-emotion-happy-line:before{content:"\ec8d"}.ri-emotion-laugh-fill:before{content:"\ec8e"}.ri-emotion-laugh-line:before{content:"\ec8f"}.ri-emotion-line:before{content:"\ec90"}.ri-emotion-normal-fill:before{content:"\ec91"}.ri-emotion-normal-line:before{content:"\ec92"}.ri-emotion-sad-fill:before{content:"\ec93"}.ri-emotion-sad-line:before{content:"\ec94"}.ri-emotion-unhappy-fill:before{content:"\ec95"}.ri-emotion-unhappy-line:before{content:"\ec96"}.ri-empathize-fill:before{content:"\ec97"}.ri-empathize-line:before{content:"\ec98"}.ri-emphasis-cn:before{content:"\ec99"}.ri-emphasis:before{content:"\ec9a"}.ri-english-input:before{content:"\ec9b"}.ri-equalizer-fill:before{content:"\ec9c"}.ri-equalizer-line:before{content:"\ec9d"}.ri-eraser-fill:before{content:"\ec9e"}.ri-eraser-line:before{content:"\ec9f"}.ri-error-warning-fill:before{content:"\eca0"}.ri-error-warning-line:before{content:"\eca1"}.ri-evernote-fill:before{content:"\eca2"}.ri-evernote-line:before{content:"\eca3"}.ri-exchange-box-fill:before{content:"\eca4"}.ri-exchange-box-line:before{content:"\eca5"}.ri-exchange-cny-fill:before{content:"\eca6"}.ri-exchange-cny-line:before{content:"\eca7"}.ri-exchange-dollar-fill:before{content:"\eca8"}.ri-exchange-dollar-line:before{content:"\eca9"}.ri-exchange-fill:before{content:"\ecaa"}.ri-exchange-funds-fill:before{content:"\ecab"}.ri-exchange-funds-line:before{content:"\ecac"}.ri-exchange-line:before{content:"\ecad"}.ri-external-link-fill:before{content:"\ecae"}.ri-external-link-line:before{content:"\ecaf"}.ri-eye-2-fill:before{content:"\ecb0"}.ri-eye-2-line:before{content:"\ecb1"}.ri-eye-close-fill:before{content:"\ecb2"}.ri-eye-close-line:before{content:"\ecb3"}.ri-eye-fill:before{content:"\ecb4"}.ri-eye-line:before{content:"\ecb5"}.ri-eye-off-fill:before{content:"\ecb6"}.ri-eye-off-line:before{content:"\ecb7"}.ri-facebook-box-fill:before{content:"\ecb8"}.ri-facebook-box-line:before{content:"\ecb9"}.ri-facebook-circle-fill:before{content:"\ecba"}.ri-facebook-circle-line:before{content:"\ecbb"}.ri-facebook-fill:before{content:"\ecbc"}.ri-facebook-line:before{content:"\ecbd"}.ri-fahrenheit-fill:before{content:"\ecbe"}.ri-fahrenheit-line:before{content:"\ecbf"}.ri-feedback-fill:before{content:"\ecc0"}.ri-feedback-line:before{content:"\ecc1"}.ri-file-2-fill:before{content:"\ecc2"}.ri-file-2-line:before{content:"\ecc3"}.ri-file-3-fill:before{content:"\ecc4"}.ri-file-3-line:before{content:"\ecc5"}.ri-file-4-fill:before{content:"\ecc6"}.ri-file-4-line:before{content:"\ecc7"}.ri-file-add-fill:before{content:"\ecc8"}.ri-file-add-line:before{content:"\ecc9"}.ri-file-chart-2-fill:before{content:"\ecca"}.ri-file-chart-2-line:before{content:"\eccb"}.ri-file-chart-fill:before{content:"\eccc"}.ri-file-chart-line:before{content:"\eccd"}.ri-file-cloud-fill:before{content:"\ecce"}.ri-file-cloud-line:before{content:"\eccf"}.ri-file-code-fill:before{content:"\ecd0"}.ri-file-code-line:before{content:"\ecd1"}.ri-file-copy-2-fill:before{content:"\ecd2"}.ri-file-copy-2-line:before{content:"\ecd3"}.ri-file-copy-fill:before{content:"\ecd4"}.ri-file-copy-line:before{content:"\ecd5"}.ri-file-damage-fill:before{content:"\ecd6"}.ri-file-damage-line:before{content:"\ecd7"}.ri-file-download-fill:before{content:"\ecd8"}.ri-file-download-line:before{content:"\ecd9"}.ri-file-edit-fill:before{content:"\ecda"}.ri-file-edit-line:before{content:"\ecdb"}.ri-file-excel-2-fill:before{content:"\ecdc"}.ri-file-excel-2-line:before{content:"\ecdd"}.ri-file-excel-fill:before{content:"\ecde"}.ri-file-excel-line:before{content:"\ecdf"}.ri-file-fill:before{content:"\ece0"}.ri-file-forbid-fill:before{content:"\ece1"}.ri-file-forbid-line:before{content:"\ece2"}.ri-file-gif-fill:before{content:"\ece3"}.ri-file-gif-line:before{content:"\ece4"}.ri-file-history-fill:before{content:"\ece5"}.ri-file-history-line:before{content:"\ece6"}.ri-file-hwp-fill:before{content:"\ece7"}.ri-file-hwp-line:before{content:"\ece8"}.ri-file-info-fill:before{content:"\ece9"}.ri-file-info-line:before{content:"\ecea"}.ri-file-line:before{content:"\eceb"}.ri-file-list-2-fill:before{content:"\ecec"}.ri-file-list-2-line:before{content:"\eced"}.ri-file-list-3-fill:before{content:"\ecee"}.ri-file-list-3-line:before{content:"\ecef"}.ri-file-list-fill:before{content:"\ecf0"}.ri-file-list-line:before{content:"\ecf1"}.ri-file-lock-fill:before{content:"\ecf2"}.ri-file-lock-line:before{content:"\ecf3"}.ri-file-mark-fill:before{content:"\ecf4"}.ri-file-mark-line:before{content:"\ecf5"}.ri-file-music-fill:before{content:"\ecf6"}.ri-file-music-line:before{content:"\ecf7"}.ri-file-paper-2-fill:before{content:"\ecf8"}.ri-file-paper-2-line:before{content:"\ecf9"}.ri-file-paper-fill:before{content:"\ecfa"}.ri-file-paper-line:before{content:"\ecfb"}.ri-file-pdf-fill:before{content:"\ecfc"}.ri-file-pdf-line:before{content:"\ecfd"}.ri-file-ppt-2-fill:before{content:"\ecfe"}.ri-file-ppt-2-line:before{content:"\ecff"}.ri-file-ppt-fill:before{content:"\ed00"}.ri-file-ppt-line:before{content:"\ed01"}.ri-file-reduce-fill:before{content:"\ed02"}.ri-file-reduce-line:before{content:"\ed03"}.ri-file-search-fill:before{content:"\ed04"}.ri-file-search-line:before{content:"\ed05"}.ri-file-settings-fill:before{content:"\ed06"}.ri-file-settings-line:before{content:"\ed07"}.ri-file-shield-2-fill:before{content:"\ed08"}.ri-file-shield-2-line:before{content:"\ed09"}.ri-file-shield-fill:before{content:"\ed0a"}.ri-file-shield-line:before{content:"\ed0b"}.ri-file-shred-fill:before{content:"\ed0c"}.ri-file-shred-line:before{content:"\ed0d"}.ri-file-text-fill:before{content:"\ed0e"}.ri-file-text-line:before{content:"\ed0f"}.ri-file-transfer-fill:before{content:"\ed10"}.ri-file-transfer-line:before{content:"\ed11"}.ri-file-unknow-fill:before{content:"\ed12"}.ri-file-unknow-line:before{content:"\ed13"}.ri-file-upload-fill:before{content:"\ed14"}.ri-file-upload-line:before{content:"\ed15"}.ri-file-user-fill:before{content:"\ed16"}.ri-file-user-line:before{content:"\ed17"}.ri-file-warning-fill:before{content:"\ed18"}.ri-file-warning-line:before{content:"\ed19"}.ri-file-word-2-fill:before{content:"\ed1a"}.ri-file-word-2-line:before{content:"\ed1b"}.ri-file-word-fill:before{content:"\ed1c"}.ri-file-word-line:before{content:"\ed1d"}.ri-file-zip-fill:before{content:"\ed1e"}.ri-file-zip-line:before{content:"\ed1f"}.ri-film-fill:before{content:"\ed20"}.ri-film-line:before{content:"\ed21"}.ri-filter-2-fill:before{content:"\ed22"}.ri-filter-2-line:before{content:"\ed23"}.ri-filter-3-fill:before{content:"\ed24"}.ri-filter-3-line:before{content:"\ed25"}.ri-filter-fill:before{content:"\ed26"}.ri-filter-line:before{content:"\ed27"}.ri-filter-off-fill:before{content:"\ed28"}.ri-filter-off-line:before{content:"\ed29"}.ri-find-replace-fill:before{content:"\ed2a"}.ri-find-replace-line:before{content:"\ed2b"}.ri-finder-fill:before{content:"\ed2c"}.ri-finder-line:before{content:"\ed2d"}.ri-fingerprint-2-fill:before{content:"\ed2e"}.ri-fingerprint-2-line:before{content:"\ed2f"}.ri-fingerprint-fill:before{content:"\ed30"}.ri-fingerprint-line:before{content:"\ed31"}.ri-fire-fill:before{content:"\ed32"}.ri-fire-line:before{content:"\ed33"}.ri-firefox-fill:before{content:"\ed34"}.ri-firefox-line:before{content:"\ed35"}.ri-first-aid-kit-fill:before{content:"\ed36"}.ri-first-aid-kit-line:before{content:"\ed37"}.ri-flag-2-fill:before{content:"\ed38"}.ri-flag-2-line:before{content:"\ed39"}.ri-flag-fill:before{content:"\ed3a"}.ri-flag-line:before{content:"\ed3b"}.ri-flashlight-fill:before{content:"\ed3c"}.ri-flashlight-line:before{content:"\ed3d"}.ri-flask-fill:before{content:"\ed3e"}.ri-flask-line:before{content:"\ed3f"}.ri-flight-land-fill:before{content:"\ed40"}.ri-flight-land-line:before{content:"\ed41"}.ri-flight-takeoff-fill:before{content:"\ed42"}.ri-flight-takeoff-line:before{content:"\ed43"}.ri-flood-fill:before{content:"\ed44"}.ri-flood-line:before{content:"\ed45"}.ri-flow-chart:before{content:"\ed46"}.ri-flutter-fill:before{content:"\ed47"}.ri-flutter-line:before{content:"\ed48"}.ri-focus-2-fill:before{content:"\ed49"}.ri-focus-2-line:before{content:"\ed4a"}.ri-focus-3-fill:before{content:"\ed4b"}.ri-focus-3-line:before{content:"\ed4c"}.ri-focus-fill:before{content:"\ed4d"}.ri-focus-line:before{content:"\ed4e"}.ri-foggy-fill:before{content:"\ed4f"}.ri-foggy-line:before{content:"\ed50"}.ri-folder-2-fill:before{content:"\ed51"}.ri-folder-2-line:before{content:"\ed52"}.ri-folder-3-fill:before{content:"\ed53"}.ri-folder-3-line:before{content:"\ed54"}.ri-folder-4-fill:before{content:"\ed55"}.ri-folder-4-line:before{content:"\ed56"}.ri-folder-5-fill:before{content:"\ed57"}.ri-folder-5-line:before{content:"\ed58"}.ri-folder-add-fill:before{content:"\ed59"}.ri-folder-add-line:before{content:"\ed5a"}.ri-folder-chart-2-fill:before{content:"\ed5b"}.ri-folder-chart-2-line:before{content:"\ed5c"}.ri-folder-chart-fill:before{content:"\ed5d"}.ri-folder-chart-line:before{content:"\ed5e"}.ri-folder-download-fill:before{content:"\ed5f"}.ri-folder-download-line:before{content:"\ed60"}.ri-folder-fill:before{content:"\ed61"}.ri-folder-forbid-fill:before{content:"\ed62"}.ri-folder-forbid-line:before{content:"\ed63"}.ri-folder-history-fill:before{content:"\ed64"}.ri-folder-history-line:before{content:"\ed65"}.ri-folder-info-fill:before{content:"\ed66"}.ri-folder-info-line:before{content:"\ed67"}.ri-folder-keyhole-fill:before{content:"\ed68"}.ri-folder-keyhole-line:before{content:"\ed69"}.ri-folder-line:before{content:"\ed6a"}.ri-folder-lock-fill:before{content:"\ed6b"}.ri-folder-lock-line:before{content:"\ed6c"}.ri-folder-music-fill:before{content:"\ed6d"}.ri-folder-music-line:before{content:"\ed6e"}.ri-folder-open-fill:before{content:"\ed6f"}.ri-folder-open-line:before{content:"\ed70"}.ri-folder-received-fill:before{content:"\ed71"}.ri-folder-received-line:before{content:"\ed72"}.ri-folder-reduce-fill:before{content:"\ed73"}.ri-folder-reduce-line:before{content:"\ed74"}.ri-folder-settings-fill:before{content:"\ed75"}.ri-folder-settings-line:before{content:"\ed76"}.ri-folder-shared-fill:before{content:"\ed77"}.ri-folder-shared-line:before{content:"\ed78"}.ri-folder-shield-2-fill:before{content:"\ed79"}.ri-folder-shield-2-line:before{content:"\ed7a"}.ri-folder-shield-fill:before{content:"\ed7b"}.ri-folder-shield-line:before{content:"\ed7c"}.ri-folder-transfer-fill:before{content:"\ed7d"}.ri-folder-transfer-line:before{content:"\ed7e"}.ri-folder-unknow-fill:before{content:"\ed7f"}.ri-folder-unknow-line:before{content:"\ed80"}.ri-folder-upload-fill:before{content:"\ed81"}.ri-folder-upload-line:before{content:"\ed82"}.ri-folder-user-fill:before{content:"\ed83"}.ri-folder-user-line:before{content:"\ed84"}.ri-folder-warning-fill:before{content:"\ed85"}.ri-folder-warning-line:before{content:"\ed86"}.ri-folder-zip-fill:before{content:"\ed87"}.ri-folder-zip-line:before{content:"\ed88"}.ri-folders-fill:before{content:"\ed89"}.ri-folders-line:before{content:"\ed8a"}.ri-font-color:before{content:"\ed8b"}.ri-font-size-2:before{content:"\ed8c"}.ri-font-size:before{content:"\ed8d"}.ri-football-fill:before{content:"\ed8e"}.ri-football-line:before{content:"\ed8f"}.ri-footprint-fill:before{content:"\ed90"}.ri-footprint-line:before{content:"\ed91"}.ri-forbid-2-fill:before{content:"\ed92"}.ri-forbid-2-line:before{content:"\ed93"}.ri-forbid-fill:before{content:"\ed94"}.ri-forbid-line:before{content:"\ed95"}.ri-format-clear:before{content:"\ed96"}.ri-fridge-fill:before{content:"\ed97"}.ri-fridge-line:before{content:"\ed98"}.ri-fullscreen-exit-fill:before{content:"\ed99"}.ri-fullscreen-exit-line:before{content:"\ed9a"}.ri-fullscreen-fill:before{content:"\ed9b"}.ri-fullscreen-line:before{content:"\ed9c"}.ri-function-fill:before{content:"\ed9d"}.ri-function-line:before{content:"\ed9e"}.ri-functions:before{content:"\ed9f"}.ri-funds-box-fill:before{content:"\eda0"}.ri-funds-box-line:before{content:"\eda1"}.ri-funds-fill:before{content:"\eda2"}.ri-funds-line:before{content:"\eda3"}.ri-gallery-fill:before{content:"\eda4"}.ri-gallery-line:before{content:"\eda5"}.ri-gallery-upload-fill:before{content:"\eda6"}.ri-gallery-upload-line:before{content:"\eda7"}.ri-game-fill:before{content:"\eda8"}.ri-game-line:before{content:"\eda9"}.ri-gamepad-fill:before{content:"\edaa"}.ri-gamepad-line:before{content:"\edab"}.ri-gas-station-fill:before{content:"\edac"}.ri-gas-station-line:before{content:"\edad"}.ri-gatsby-fill:before{content:"\edae"}.ri-gatsby-line:before{content:"\edaf"}.ri-genderless-fill:before{content:"\edb0"}.ri-genderless-line:before{content:"\edb1"}.ri-ghost-2-fill:before{content:"\edb2"}.ri-ghost-2-line:before{content:"\edb3"}.ri-ghost-fill:before{content:"\edb4"}.ri-ghost-line:before{content:"\edb5"}.ri-ghost-smile-fill:before{content:"\edb6"}.ri-ghost-smile-line:before{content:"\edb7"}.ri-gift-2-fill:before{content:"\edb8"}.ri-gift-2-line:before{content:"\edb9"}.ri-gift-fill:before{content:"\edba"}.ri-gift-line:before{content:"\edbb"}.ri-git-branch-fill:before{content:"\edbc"}.ri-git-branch-line:before{content:"\edbd"}.ri-git-commit-fill:before{content:"\edbe"}.ri-git-commit-line:before{content:"\edbf"}.ri-git-merge-fill:before{content:"\edc0"}.ri-git-merge-line:before{content:"\edc1"}.ri-git-pull-request-fill:before{content:"\edc2"}.ri-git-pull-request-line:before{content:"\edc3"}.ri-git-repository-commits-fill:before{content:"\edc4"}.ri-git-repository-commits-line:before{content:"\edc5"}.ri-git-repository-fill:before{content:"\edc6"}.ri-git-repository-line:before{content:"\edc7"}.ri-git-repository-private-fill:before{content:"\edc8"}.ri-git-repository-private-line:before{content:"\edc9"}.ri-github-fill:before{content:"\edca"}.ri-github-line:before{content:"\edcb"}.ri-gitlab-fill:before{content:"\edcc"}.ri-gitlab-line:before{content:"\edcd"}.ri-global-fill:before{content:"\edce"}.ri-global-line:before{content:"\edcf"}.ri-globe-fill:before{content:"\edd0"}.ri-globe-line:before{content:"\edd1"}.ri-goblet-fill:before{content:"\edd2"}.ri-goblet-line:before{content:"\edd3"}.ri-google-fill:before{content:"\edd4"}.ri-google-line:before{content:"\edd5"}.ri-google-play-fill:before{content:"\edd6"}.ri-google-play-line:before{content:"\edd7"}.ri-government-fill:before{content:"\edd8"}.ri-government-line:before{content:"\edd9"}.ri-gps-fill:before{content:"\edda"}.ri-gps-line:before{content:"\eddb"}.ri-gradienter-fill:before{content:"\eddc"}.ri-gradienter-line:before{content:"\eddd"}.ri-grid-fill:before{content:"\edde"}.ri-grid-line:before{content:"\eddf"}.ri-group-2-fill:before{content:"\ede0"}.ri-group-2-line:before{content:"\ede1"}.ri-group-fill:before{content:"\ede2"}.ri-group-line:before{content:"\ede3"}.ri-guide-fill:before{content:"\ede4"}.ri-guide-line:before{content:"\ede5"}.ri-h-1:before{content:"\ede6"}.ri-h-2:before{content:"\ede7"}.ri-h-3:before{content:"\ede8"}.ri-h-4:before{content:"\ede9"}.ri-h-5:before{content:"\edea"}.ri-h-6:before{content:"\edeb"}.ri-hail-fill:before{content:"\edec"}.ri-hail-line:before{content:"\eded"}.ri-hammer-fill:before{content:"\edee"}.ri-hammer-line:before{content:"\edef"}.ri-hand-coin-fill:before{content:"\edf0"}.ri-hand-coin-line:before{content:"\edf1"}.ri-hand-heart-fill:before{content:"\edf2"}.ri-hand-heart-line:before{content:"\edf3"}.ri-hand-sanitizer-fill:before{content:"\edf4"}.ri-hand-sanitizer-line:before{content:"\edf5"}.ri-handbag-fill:before{content:"\edf6"}.ri-handbag-line:before{content:"\edf7"}.ri-hard-drive-2-fill:before{content:"\edf8"}.ri-hard-drive-2-line:before{content:"\edf9"}.ri-hard-drive-fill:before{content:"\edfa"}.ri-hard-drive-line:before{content:"\edfb"}.ri-hashtag:before{content:"\edfc"}.ri-haze-2-fill:before{content:"\edfd"}.ri-haze-2-line:before{content:"\edfe"}.ri-haze-fill:before{content:"\edff"}.ri-haze-line:before{content:"\ee00"}.ri-hd-fill:before{content:"\ee01"}.ri-hd-line:before{content:"\ee02"}.ri-heading:before{content:"\ee03"}.ri-headphone-fill:before{content:"\ee04"}.ri-headphone-line:before{content:"\ee05"}.ri-health-book-fill:before{content:"\ee06"}.ri-health-book-line:before{content:"\ee07"}.ri-heart-2-fill:before{content:"\ee08"}.ri-heart-2-line:before{content:"\ee09"}.ri-heart-3-fill:before{content:"\ee0a"}.ri-heart-3-line:before{content:"\ee0b"}.ri-heart-add-fill:before{content:"\ee0c"}.ri-heart-add-line:before{content:"\ee0d"}.ri-heart-fill:before{content:"\ee0e"}.ri-heart-line:before{content:"\ee0f"}.ri-heart-pulse-fill:before{content:"\ee10"}.ri-heart-pulse-line:before{content:"\ee11"}.ri-hearts-fill:before{content:"\ee12"}.ri-hearts-line:before{content:"\ee13"}.ri-heavy-showers-fill:before{content:"\ee14"}.ri-heavy-showers-line:before{content:"\ee15"}.ri-history-fill:before{content:"\ee16"}.ri-history-line:before{content:"\ee17"}.ri-home-2-fill:before{content:"\ee18"}.ri-home-2-line:before{content:"\ee19"}.ri-home-3-fill:before{content:"\ee1a"}.ri-home-3-line:before{content:"\ee1b"}.ri-home-4-fill:before{content:"\ee1c"}.ri-home-4-line:before{content:"\ee1d"}.ri-home-5-fill:before{content:"\ee1e"}.ri-home-5-line:before{content:"\ee1f"}.ri-home-6-fill:before{content:"\ee20"}.ri-home-6-line:before{content:"\ee21"}.ri-home-7-fill:before{content:"\ee22"}.ri-home-7-line:before{content:"\ee23"}.ri-home-8-fill:before{content:"\ee24"}.ri-home-8-line:before{content:"\ee25"}.ri-home-fill:before{content:"\ee26"}.ri-home-gear-fill:before{content:"\ee27"}.ri-home-gear-line:before{content:"\ee28"}.ri-home-heart-fill:before{content:"\ee29"}.ri-home-heart-line:before{content:"\ee2a"}.ri-home-line:before{content:"\ee2b"}.ri-home-smile-2-fill:before{content:"\ee2c"}.ri-home-smile-2-line:before{content:"\ee2d"}.ri-home-smile-fill:before{content:"\ee2e"}.ri-home-smile-line:before{content:"\ee2f"}.ri-home-wifi-fill:before{content:"\ee30"}.ri-home-wifi-line:before{content:"\ee31"}.ri-honor-of-kings-fill:before{content:"\ee32"}.ri-honor-of-kings-line:before{content:"\ee33"}.ri-honour-fill:before{content:"\ee34"}.ri-honour-line:before{content:"\ee35"}.ri-hospital-fill:before{content:"\ee36"}.ri-hospital-line:before{content:"\ee37"}.ri-hotel-bed-fill:before{content:"\ee38"}.ri-hotel-bed-line:before{content:"\ee39"}.ri-hotel-fill:before{content:"\ee3a"}.ri-hotel-line:before{content:"\ee3b"}.ri-hotspot-fill:before{content:"\ee3c"}.ri-hotspot-line:before{content:"\ee3d"}.ri-hq-fill:before{content:"\ee3e"}.ri-hq-line:before{content:"\ee3f"}.ri-html5-fill:before{content:"\ee40"}.ri-html5-line:before{content:"\ee41"}.ri-ie-fill:before{content:"\ee42"}.ri-ie-line:before{content:"\ee43"}.ri-image-2-fill:before{content:"\ee44"}.ri-image-2-line:before{content:"\ee45"}.ri-image-add-fill:before{content:"\ee46"}.ri-image-add-line:before{content:"\ee47"}.ri-image-edit-fill:before{content:"\ee48"}.ri-image-edit-line:before{content:"\ee49"}.ri-image-fill:before{content:"\ee4a"}.ri-image-line:before{content:"\ee4b"}.ri-inbox-archive-fill:before{content:"\ee4c"}.ri-inbox-archive-line:before{content:"\ee4d"}.ri-inbox-fill:before{content:"\ee4e"}.ri-inbox-line:before{content:"\ee4f"}.ri-inbox-unarchive-fill:before{content:"\ee50"}.ri-inbox-unarchive-line:before{content:"\ee51"}.ri-increase-decrease-fill:before{content:"\ee52"}.ri-increase-decrease-line:before{content:"\ee53"}.ri-indent-decrease:before{content:"\ee54"}.ri-indent-increase:before{content:"\ee55"}.ri-indeterminate-circle-fill:before{content:"\ee56"}.ri-indeterminate-circle-line:before{content:"\ee57"}.ri-information-fill:before{content:"\ee58"}.ri-information-line:before{content:"\ee59"}.ri-infrared-thermometer-fill:before{content:"\ee5a"}.ri-infrared-thermometer-line:before{content:"\ee5b"}.ri-ink-bottle-fill:before{content:"\ee5c"}.ri-ink-bottle-line:before{content:"\ee5d"}.ri-input-cursor-move:before{content:"\ee5e"}.ri-input-method-fill:before{content:"\ee5f"}.ri-input-method-line:before{content:"\ee60"}.ri-insert-column-left:before{content:"\ee61"}.ri-insert-column-right:before{content:"\ee62"}.ri-insert-row-bottom:before{content:"\ee63"}.ri-insert-row-top:before{content:"\ee64"}.ri-instagram-fill:before{content:"\ee65"}.ri-instagram-line:before{content:"\ee66"}.ri-install-fill:before{content:"\ee67"}.ri-install-line:before{content:"\ee68"}.ri-invision-fill:before{content:"\ee69"}.ri-invision-line:before{content:"\ee6a"}.ri-italic:before{content:"\ee6b"}.ri-kakao-talk-fill:before{content:"\ee6c"}.ri-kakao-talk-line:before{content:"\ee6d"}.ri-key-2-fill:before{content:"\ee6e"}.ri-key-2-line:before{content:"\ee6f"}.ri-key-fill:before{content:"\ee70"}.ri-key-line:before{content:"\ee71"}.ri-keyboard-box-fill:before{content:"\ee72"}.ri-keyboard-box-line:before{content:"\ee73"}.ri-keyboard-fill:before{content:"\ee74"}.ri-keyboard-line:before{content:"\ee75"}.ri-keynote-fill:before{content:"\ee76"}.ri-keynote-line:before{content:"\ee77"}.ri-knife-blood-fill:before{content:"\ee78"}.ri-knife-blood-line:before{content:"\ee79"}.ri-knife-fill:before{content:"\ee7a"}.ri-knife-line:before{content:"\ee7b"}.ri-landscape-fill:before{content:"\ee7c"}.ri-landscape-line:before{content:"\ee7d"}.ri-layout-2-fill:before{content:"\ee7e"}.ri-layout-2-line:before{content:"\ee7f"}.ri-layout-3-fill:before{content:"\ee80"}.ri-layout-3-line:before{content:"\ee81"}.ri-layout-4-fill:before{content:"\ee82"}.ri-layout-4-line:before{content:"\ee83"}.ri-layout-5-fill:before{content:"\ee84"}.ri-layout-5-line:before{content:"\ee85"}.ri-layout-6-fill:before{content:"\ee86"}.ri-layout-6-line:before{content:"\ee87"}.ri-layout-bottom-2-fill:before{content:"\ee88"}.ri-layout-bottom-2-line:before{content:"\ee89"}.ri-layout-bottom-fill:before{content:"\ee8a"}.ri-layout-bottom-line:before{content:"\ee8b"}.ri-layout-column-fill:before{content:"\ee8c"}.ri-layout-column-line:before{content:"\ee8d"}.ri-layout-fill:before{content:"\ee8e"}.ri-layout-grid-fill:before{content:"\ee8f"}.ri-layout-grid-line:before{content:"\ee90"}.ri-layout-left-2-fill:before{content:"\ee91"}.ri-layout-left-2-line:before{content:"\ee92"}.ri-layout-left-fill:before{content:"\ee93"}.ri-layout-left-line:before{content:"\ee94"}.ri-layout-line:before{content:"\ee95"}.ri-layout-masonry-fill:before{content:"\ee96"}.ri-layout-masonry-line:before{content:"\ee97"}.ri-layout-right-2-fill:before{content:"\ee98"}.ri-layout-right-2-line:before{content:"\ee99"}.ri-layout-right-fill:before{content:"\ee9a"}.ri-layout-right-line:before{content:"\ee9b"}.ri-layout-row-fill:before{content:"\ee9c"}.ri-layout-row-line:before{content:"\ee9d"}.ri-layout-top-2-fill:before{content:"\ee9e"}.ri-layout-top-2-line:before{content:"\ee9f"}.ri-layout-top-fill:before{content:"\eea0"}.ri-layout-top-line:before{content:"\eea1"}.ri-leaf-fill:before{content:"\eea2"}.ri-leaf-line:before{content:"\eea3"}.ri-lifebuoy-fill:before{content:"\eea4"}.ri-lifebuoy-line:before{content:"\eea5"}.ri-lightbulb-fill:before{content:"\eea6"}.ri-lightbulb-flash-fill:before{content:"\eea7"}.ri-lightbulb-flash-line:before{content:"\eea8"}.ri-lightbulb-line:before{content:"\eea9"}.ri-line-chart-fill:before{content:"\eeaa"}.ri-line-chart-line:before{content:"\eeab"}.ri-line-fill:before{content:"\eeac"}.ri-line-height:before{content:"\eead"}.ri-line-line:before{content:"\eeae"}.ri-link-m:before{content:"\eeaf"}.ri-link-unlink-m:before{content:"\eeb0"}.ri-link-unlink:before{content:"\eeb1"}.ri-link:before{content:"\eeb2"}.ri-linkedin-box-fill:before{content:"\eeb3"}.ri-linkedin-box-line:before{content:"\eeb4"}.ri-linkedin-fill:before{content:"\eeb5"}.ri-linkedin-line:before{content:"\eeb6"}.ri-links-fill:before{content:"\eeb7"}.ri-links-line:before{content:"\eeb8"}.ri-list-check-2:before{content:"\eeb9"}.ri-list-check:before{content:"\eeba"}.ri-list-ordered:before{content:"\eebb"}.ri-list-settings-fill:before{content:"\eebc"}.ri-list-settings-line:before{content:"\eebd"}.ri-list-unordered:before{content:"\eebe"}.ri-live-fill:before{content:"\eebf"}.ri-live-line:before{content:"\eec0"}.ri-loader-2-fill:before{content:"\eec1"}.ri-loader-2-line:before{content:"\eec2"}.ri-loader-3-fill:before{content:"\eec3"}.ri-loader-3-line:before{content:"\eec4"}.ri-loader-4-fill:before{content:"\eec5"}.ri-loader-4-line:before{content:"\eec6"}.ri-loader-5-fill:before{content:"\eec7"}.ri-loader-5-line:before{content:"\eec8"}.ri-loader-fill:before{content:"\eec9"}.ri-loader-line:before{content:"\eeca"}.ri-lock-2-fill:before{content:"\eecb"}.ri-lock-2-line:before{content:"\eecc"}.ri-lock-fill:before{content:"\eecd"}.ri-lock-line:before{content:"\eece"}.ri-lock-password-fill:before{content:"\eecf"}.ri-lock-password-line:before{content:"\eed0"}.ri-lock-unlock-fill:before{content:"\eed1"}.ri-lock-unlock-line:before{content:"\eed2"}.ri-login-box-fill:before{content:"\eed3"}.ri-login-box-line:before{content:"\eed4"}.ri-login-circle-fill:before{content:"\eed5"}.ri-login-circle-line:before{content:"\eed6"}.ri-logout-box-fill:before{content:"\eed7"}.ri-logout-box-line:before{content:"\eed8"}.ri-logout-box-r-fill:before{content:"\eed9"}.ri-logout-box-r-line:before{content:"\eeda"}.ri-logout-circle-fill:before{content:"\eedb"}.ri-logout-circle-line:before{content:"\eedc"}.ri-logout-circle-r-fill:before{content:"\eedd"}.ri-logout-circle-r-line:before{content:"\eede"}.ri-luggage-cart-fill:before{content:"\eedf"}.ri-luggage-cart-line:before{content:"\eee0"}.ri-luggage-deposit-fill:before{content:"\eee1"}.ri-luggage-deposit-line:before{content:"\eee2"}.ri-lungs-fill:before{content:"\eee3"}.ri-lungs-line:before{content:"\eee4"}.ri-mac-fill:before{content:"\eee5"}.ri-mac-line:before{content:"\eee6"}.ri-macbook-fill:before{content:"\eee7"}.ri-macbook-line:before{content:"\eee8"}.ri-magic-fill:before{content:"\eee9"}.ri-magic-line:before{content:"\eeea"}.ri-mail-add-fill:before{content:"\eeeb"}.ri-mail-add-line:before{content:"\eeec"}.ri-mail-check-fill:before{content:"\eeed"}.ri-mail-check-line:before{content:"\eeee"}.ri-mail-close-fill:before{content:"\eeef"}.ri-mail-close-line:before{content:"\eef0"}.ri-mail-download-fill:before{content:"\eef1"}.ri-mail-download-line:before{content:"\eef2"}.ri-mail-fill:before{content:"\eef3"}.ri-mail-forbid-fill:before{content:"\eef4"}.ri-mail-forbid-line:before{content:"\eef5"}.ri-mail-line:before{content:"\eef6"}.ri-mail-lock-fill:before{content:"\eef7"}.ri-mail-lock-line:before{content:"\eef8"}.ri-mail-open-fill:before{content:"\eef9"}.ri-mail-open-line:before{content:"\eefa"}.ri-mail-send-fill:before{content:"\eefb"}.ri-mail-send-line:before{content:"\eefc"}.ri-mail-settings-fill:before{content:"\eefd"}.ri-mail-settings-line:before{content:"\eefe"}.ri-mail-star-fill:before{content:"\eeff"}.ri-mail-star-line:before{content:"\ef00"}.ri-mail-unread-fill:before{content:"\ef01"}.ri-mail-unread-line:before{content:"\ef02"}.ri-mail-volume-fill:before{content:"\ef03"}.ri-mail-volume-line:before{content:"\ef04"}.ri-map-2-fill:before{content:"\ef05"}.ri-map-2-line:before{content:"\ef06"}.ri-map-fill:before{content:"\ef07"}.ri-map-line:before{content:"\ef08"}.ri-map-pin-2-fill:before{content:"\ef09"}.ri-map-pin-2-line:before{content:"\ef0a"}.ri-map-pin-3-fill:before{content:"\ef0b"}.ri-map-pin-3-line:before{content:"\ef0c"}.ri-map-pin-4-fill:before{content:"\ef0d"}.ri-map-pin-4-line:before{content:"\ef0e"}.ri-map-pin-5-fill:before{content:"\ef0f"}.ri-map-pin-5-line:before{content:"\ef10"}.ri-map-pin-add-fill:before{content:"\ef11"}.ri-map-pin-add-line:before{content:"\ef12"}.ri-map-pin-fill:before{content:"\ef13"}.ri-map-pin-line:before{content:"\ef14"}.ri-map-pin-range-fill:before{content:"\ef15"}.ri-map-pin-range-line:before{content:"\ef16"}.ri-map-pin-time-fill:before{content:"\ef17"}.ri-map-pin-time-line:before{content:"\ef18"}.ri-map-pin-user-fill:before{content:"\ef19"}.ri-map-pin-user-line:before{content:"\ef1a"}.ri-mark-pen-fill:before{content:"\ef1b"}.ri-mark-pen-line:before{content:"\ef1c"}.ri-markdown-fill:before{content:"\ef1d"}.ri-markdown-line:before{content:"\ef1e"}.ri-markup-fill:before{content:"\ef1f"}.ri-markup-line:before{content:"\ef20"}.ri-mastercard-fill:before{content:"\ef21"}.ri-mastercard-line:before{content:"\ef22"}.ri-mastodon-fill:before{content:"\ef23"}.ri-mastodon-line:before{content:"\ef24"}.ri-medal-2-fill:before{content:"\ef25"}.ri-medal-2-line:before{content:"\ef26"}.ri-medal-fill:before{content:"\ef27"}.ri-medal-line:before{content:"\ef28"}.ri-medicine-bottle-fill:before{content:"\ef29"}.ri-medicine-bottle-line:before{content:"\ef2a"}.ri-medium-fill:before{content:"\ef2b"}.ri-medium-line:before{content:"\ef2c"}.ri-men-fill:before{content:"\ef2d"}.ri-men-line:before{content:"\ef2e"}.ri-mental-health-fill:before{content:"\ef2f"}.ri-mental-health-line:before{content:"\ef30"}.ri-menu-2-fill:before{content:"\ef31"}.ri-menu-2-line:before{content:"\ef32"}.ri-menu-3-fill:before{content:"\ef33"}.ri-menu-3-line:before{content:"\ef34"}.ri-menu-4-fill:before{content:"\ef35"}.ri-menu-4-line:before{content:"\ef36"}.ri-menu-5-fill:before{content:"\ef37"}.ri-menu-5-line:before{content:"\ef38"}.ri-menu-add-fill:before{content:"\ef39"}.ri-menu-add-line:before{content:"\ef3a"}.ri-menu-fill:before{content:"\ef3b"}.ri-menu-fold-fill:before{content:"\ef3c"}.ri-menu-fold-line:before{content:"\ef3d"}.ri-menu-line:before{content:"\ef3e"}.ri-menu-unfold-fill:before{content:"\ef3f"}.ri-menu-unfold-line:before{content:"\ef40"}.ri-merge-cells-horizontal:before{content:"\ef41"}.ri-merge-cells-vertical:before{content:"\ef42"}.ri-message-2-fill:before{content:"\ef43"}.ri-message-2-line:before{content:"\ef44"}.ri-message-3-fill:before{content:"\ef45"}.ri-message-3-line:before{content:"\ef46"}.ri-message-fill:before{content:"\ef47"}.ri-message-line:before{content:"\ef48"}.ri-messenger-fill:before{content:"\ef49"}.ri-messenger-line:before{content:"\ef4a"}.ri-meteor-fill:before{content:"\ef4b"}.ri-meteor-line:before{content:"\ef4c"}.ri-mic-2-fill:before{content:"\ef4d"}.ri-mic-2-line:before{content:"\ef4e"}.ri-mic-fill:before{content:"\ef4f"}.ri-mic-line:before{content:"\ef50"}.ri-mic-off-fill:before{content:"\ef51"}.ri-mic-off-line:before{content:"\ef52"}.ri-mickey-fill:before{content:"\ef53"}.ri-mickey-line:before{content:"\ef54"}.ri-microscope-fill:before{content:"\ef55"}.ri-microscope-line:before{content:"\ef56"}.ri-microsoft-fill:before{content:"\ef57"}.ri-microsoft-line:before{content:"\ef58"}.ri-mind-map:before{content:"\ef59"}.ri-mini-program-fill:before{content:"\ef5a"}.ri-mini-program-line:before{content:"\ef5b"}.ri-mist-fill:before{content:"\ef5c"}.ri-mist-line:before{content:"\ef5d"}.ri-money-cny-box-fill:before{content:"\ef5e"}.ri-money-cny-box-line:before{content:"\ef5f"}.ri-money-cny-circle-fill:before{content:"\ef60"}.ri-money-cny-circle-line:before{content:"\ef61"}.ri-money-dollar-box-fill:before{content:"\ef62"}.ri-money-dollar-box-line:before{content:"\ef63"}.ri-money-dollar-circle-fill:before{content:"\ef64"}.ri-money-dollar-circle-line:before{content:"\ef65"}.ri-money-euro-box-fill:before{content:"\ef66"}.ri-money-euro-box-line:before{content:"\ef67"}.ri-money-euro-circle-fill:before{content:"\ef68"}.ri-money-euro-circle-line:before{content:"\ef69"}.ri-money-pound-box-fill:before{content:"\ef6a"}.ri-money-pound-box-line:before{content:"\ef6b"}.ri-money-pound-circle-fill:before{content:"\ef6c"}.ri-money-pound-circle-line:before{content:"\ef6d"}.ri-moon-clear-fill:before{content:"\ef6e"}.ri-moon-clear-line:before{content:"\ef6f"}.ri-moon-cloudy-fill:before{content:"\ef70"}.ri-moon-cloudy-line:before{content:"\ef71"}.ri-moon-fill:before{content:"\ef72"}.ri-moon-foggy-fill:before{content:"\ef73"}.ri-moon-foggy-line:before{content:"\ef74"}.ri-moon-line:before{content:"\ef75"}.ri-more-2-fill:before{content:"\ef76"}.ri-more-2-line:before{content:"\ef77"}.ri-more-fill:before{content:"\ef78"}.ri-more-line:before{content:"\ef79"}.ri-motorbike-fill:before{content:"\ef7a"}.ri-motorbike-line:before{content:"\ef7b"}.ri-mouse-fill:before{content:"\ef7c"}.ri-mouse-line:before{content:"\ef7d"}.ri-movie-2-fill:before{content:"\ef7e"}.ri-movie-2-line:before{content:"\ef7f"}.ri-movie-fill:before{content:"\ef80"}.ri-movie-line:before{content:"\ef81"}.ri-music-2-fill:before{content:"\ef82"}.ri-music-2-line:before{content:"\ef83"}.ri-music-fill:before{content:"\ef84"}.ri-music-line:before{content:"\ef85"}.ri-mv-fill:before{content:"\ef86"}.ri-mv-line:before{content:"\ef87"}.ri-navigation-fill:before{content:"\ef88"}.ri-navigation-line:before{content:"\ef89"}.ri-netease-cloud-music-fill:before{content:"\ef8a"}.ri-netease-cloud-music-line:before{content:"\ef8b"}.ri-netflix-fill:before{content:"\ef8c"}.ri-netflix-line:before{content:"\ef8d"}.ri-newspaper-fill:before{content:"\ef8e"}.ri-newspaper-line:before{content:"\ef8f"}.ri-node-tree:before{content:"\ef90"}.ri-notification-2-fill:before{content:"\ef91"}.ri-notification-2-line:before{content:"\ef92"}.ri-notification-3-fill:before{content:"\ef93"}.ri-notification-3-line:before{content:"\ef94"}.ri-notification-4-fill:before{content:"\ef95"}.ri-notification-4-line:before{content:"\ef96"}.ri-notification-badge-fill:before{content:"\ef97"}.ri-notification-badge-line:before{content:"\ef98"}.ri-notification-fill:before{content:"\ef99"}.ri-notification-line:before{content:"\ef9a"}.ri-notification-off-fill:before{content:"\ef9b"}.ri-notification-off-line:before{content:"\ef9c"}.ri-npmjs-fill:before{content:"\ef9d"}.ri-npmjs-line:before{content:"\ef9e"}.ri-number-0:before{content:"\ef9f"}.ri-number-1:before{content:"\efa0"}.ri-number-2:before{content:"\efa1"}.ri-number-3:before{content:"\efa2"}.ri-number-4:before{content:"\efa3"}.ri-number-5:before{content:"\efa4"}.ri-number-6:before{content:"\efa5"}.ri-number-7:before{content:"\efa6"}.ri-number-8:before{content:"\efa7"}.ri-number-9:before{content:"\efa8"}.ri-numbers-fill:before{content:"\efa9"}.ri-numbers-line:before{content:"\efaa"}.ri-nurse-fill:before{content:"\efab"}.ri-nurse-line:before{content:"\efac"}.ri-oil-fill:before{content:"\efad"}.ri-oil-line:before{content:"\efae"}.ri-omega:before{content:"\efaf"}.ri-open-arm-fill:before{content:"\efb0"}.ri-open-arm-line:before{content:"\efb1"}.ri-open-source-fill:before{content:"\efb2"}.ri-open-source-line:before{content:"\efb3"}.ri-opera-fill:before{content:"\efb4"}.ri-opera-line:before{content:"\efb5"}.ri-order-play-fill:before{content:"\efb6"}.ri-order-play-line:before{content:"\efb7"}.ri-organization-chart:before{content:"\efb8"}.ri-outlet-2-fill:before{content:"\efb9"}.ri-outlet-2-line:before{content:"\efba"}.ri-outlet-fill:before{content:"\efbb"}.ri-outlet-line:before{content:"\efbc"}.ri-page-separator:before{content:"\efbd"}.ri-pages-fill:before{content:"\efbe"}.ri-pages-line:before{content:"\efbf"}.ri-paint-brush-fill:before{content:"\efc0"}.ri-paint-brush-line:before{content:"\efc1"}.ri-paint-fill:before{content:"\efc2"}.ri-paint-line:before{content:"\efc3"}.ri-palette-fill:before{content:"\efc4"}.ri-palette-line:before{content:"\efc5"}.ri-pantone-fill:before{content:"\efc6"}.ri-pantone-line:before{content:"\efc7"}.ri-paragraph:before{content:"\efc8"}.ri-parent-fill:before{content:"\efc9"}.ri-parent-line:before{content:"\efca"}.ri-parentheses-fill:before{content:"\efcb"}.ri-parentheses-line:before{content:"\efcc"}.ri-parking-box-fill:before{content:"\efcd"}.ri-parking-box-line:before{content:"\efce"}.ri-parking-fill:before{content:"\efcf"}.ri-parking-line:before{content:"\efd0"}.ri-passport-fill:before{content:"\efd1"}.ri-passport-line:before{content:"\efd2"}.ri-patreon-fill:before{content:"\efd3"}.ri-patreon-line:before{content:"\efd4"}.ri-pause-circle-fill:before{content:"\efd5"}.ri-pause-circle-line:before{content:"\efd6"}.ri-pause-fill:before{content:"\efd7"}.ri-pause-line:before{content:"\efd8"}.ri-pause-mini-fill:before{content:"\efd9"}.ri-pause-mini-line:before{content:"\efda"}.ri-paypal-fill:before{content:"\efdb"}.ri-paypal-line:before{content:"\efdc"}.ri-pen-nib-fill:before{content:"\efdd"}.ri-pen-nib-line:before{content:"\efde"}.ri-pencil-fill:before{content:"\efdf"}.ri-pencil-line:before{content:"\efe0"}.ri-pencil-ruler-2-fill:before{content:"\efe1"}.ri-pencil-ruler-2-line:before{content:"\efe2"}.ri-pencil-ruler-fill:before{content:"\efe3"}.ri-pencil-ruler-line:before{content:"\efe4"}.ri-percent-fill:before{content:"\efe5"}.ri-percent-line:before{content:"\efe6"}.ri-phone-camera-fill:before{content:"\efe7"}.ri-phone-camera-line:before{content:"\efe8"}.ri-phone-fill:before{content:"\efe9"}.ri-phone-find-fill:before{content:"\efea"}.ri-phone-find-line:before{content:"\efeb"}.ri-phone-line:before{content:"\efec"}.ri-phone-lock-fill:before{content:"\efed"}.ri-phone-lock-line:before{content:"\efee"}.ri-picture-in-picture-2-fill:before{content:"\efef"}.ri-picture-in-picture-2-line:before{content:"\eff0"}.ri-picture-in-picture-exit-fill:before{content:"\eff1"}.ri-picture-in-picture-exit-line:before{content:"\eff2"}.ri-picture-in-picture-fill:before{content:"\eff3"}.ri-picture-in-picture-line:before{content:"\eff4"}.ri-pie-chart-2-fill:before{content:"\eff5"}.ri-pie-chart-2-line:before{content:"\eff6"}.ri-pie-chart-box-fill:before{content:"\eff7"}.ri-pie-chart-box-line:before{content:"\eff8"}.ri-pie-chart-fill:before{content:"\eff9"}.ri-pie-chart-line:before{content:"\effa"}.ri-pin-distance-fill:before{content:"\effb"}.ri-pin-distance-line:before{content:"\effc"}.ri-ping-pong-fill:before{content:"\effd"}.ri-ping-pong-line:before{content:"\effe"}.ri-pinterest-fill:before{content:"\efff"}.ri-pinterest-line:before{content:"\f000"}.ri-pinyin-input:before{content:"\f001"}.ri-pixelfed-fill:before{content:"\f002"}.ri-pixelfed-line:before{content:"\f003"}.ri-plane-fill:before{content:"\f004"}.ri-plane-line:before{content:"\f005"}.ri-plant-fill:before{content:"\f006"}.ri-plant-line:before{content:"\f007"}.ri-play-circle-fill:before{content:"\f008"}.ri-play-circle-line:before{content:"\f009"}.ri-play-fill:before{content:"\f00a"}.ri-play-line:before{content:"\f00b"}.ri-play-list-2-fill:before{content:"\f00c"}.ri-play-list-2-line:before{content:"\f00d"}.ri-play-list-add-fill:before{content:"\f00e"}.ri-play-list-add-line:before{content:"\f00f"}.ri-play-list-fill:before{content:"\f010"}.ri-play-list-line:before{content:"\f011"}.ri-play-mini-fill:before{content:"\f012"}.ri-play-mini-line:before{content:"\f013"}.ri-playstation-fill:before{content:"\f014"}.ri-playstation-line:before{content:"\f015"}.ri-plug-2-fill:before{content:"\f016"}.ri-plug-2-line:before{content:"\f017"}.ri-plug-fill:before{content:"\f018"}.ri-plug-line:before{content:"\f019"}.ri-polaroid-2-fill:before{content:"\f01a"}.ri-polaroid-2-line:before{content:"\f01b"}.ri-polaroid-fill:before{content:"\f01c"}.ri-polaroid-line:before{content:"\f01d"}.ri-police-car-fill:before{content:"\f01e"}.ri-police-car-line:before{content:"\f01f"}.ri-price-tag-2-fill:before{content:"\f020"}.ri-price-tag-2-line:before{content:"\f021"}.ri-price-tag-3-fill:before{content:"\f022"}.ri-price-tag-3-line:before{content:"\f023"}.ri-price-tag-fill:before{content:"\f024"}.ri-price-tag-line:before{content:"\f025"}.ri-printer-cloud-fill:before{content:"\f026"}.ri-printer-cloud-line:before{content:"\f027"}.ri-printer-fill:before{content:"\f028"}.ri-printer-line:before{content:"\f029"}.ri-product-hunt-fill:before{content:"\f02a"}.ri-product-hunt-line:before{content:"\f02b"}.ri-profile-fill:before{content:"\f02c"}.ri-profile-line:before{content:"\f02d"}.ri-projector-2-fill:before{content:"\f02e"}.ri-projector-2-line:before{content:"\f02f"}.ri-projector-fill:before{content:"\f030"}.ri-projector-line:before{content:"\f031"}.ri-psychotherapy-fill:before{content:"\f032"}.ri-psychotherapy-line:before{content:"\f033"}.ri-pulse-fill:before{content:"\f034"}.ri-pulse-line:before{content:"\f035"}.ri-pushpin-2-fill:before{content:"\f036"}.ri-pushpin-2-line:before{content:"\f037"}.ri-pushpin-fill:before{content:"\f038"}.ri-pushpin-line:before{content:"\f039"}.ri-qq-fill:before{content:"\f03a"}.ri-qq-line:before{content:"\f03b"}.ri-qr-code-fill:before{content:"\f03c"}.ri-qr-code-line:before{content:"\f03d"}.ri-qr-scan-2-fill:before{content:"\f03e"}.ri-qr-scan-2-line:before{content:"\f03f"}.ri-qr-scan-fill:before{content:"\f040"}.ri-qr-scan-line:before{content:"\f041"}.ri-question-answer-fill:before{content:"\f042"}.ri-question-answer-line:before{content:"\f043"}.ri-question-fill:before{content:"\f044"}.ri-question-line:before{content:"\f045"}.ri-question-mark:before{content:"\f046"}.ri-questionnaire-fill:before{content:"\f047"}.ri-questionnaire-line:before{content:"\f048"}.ri-quill-pen-fill:before{content:"\f049"}.ri-quill-pen-line:before{content:"\f04a"}.ri-radar-fill:before{content:"\f04b"}.ri-radar-line:before{content:"\f04c"}.ri-radio-2-fill:before{content:"\f04d"}.ri-radio-2-line:before{content:"\f04e"}.ri-radio-button-fill:before{content:"\f04f"}.ri-radio-button-line:before{content:"\f050"}.ri-radio-fill:before{content:"\f051"}.ri-radio-line:before{content:"\f052"}.ri-rainbow-fill:before{content:"\f053"}.ri-rainbow-line:before{content:"\f054"}.ri-rainy-fill:before{content:"\f055"}.ri-rainy-line:before{content:"\f056"}.ri-reactjs-fill:before{content:"\f057"}.ri-reactjs-line:before{content:"\f058"}.ri-record-circle-fill:before{content:"\f059"}.ri-record-circle-line:before{content:"\f05a"}.ri-record-mail-fill:before{content:"\f05b"}.ri-record-mail-line:before{content:"\f05c"}.ri-recycle-fill:before{content:"\f05d"}.ri-recycle-line:before{content:"\f05e"}.ri-red-packet-fill:before{content:"\f05f"}.ri-red-packet-line:before{content:"\f060"}.ri-reddit-fill:before{content:"\f061"}.ri-reddit-line:before{content:"\f062"}.ri-refresh-fill:before{content:"\f063"}.ri-refresh-line:before{content:"\f064"}.ri-refund-2-fill:before{content:"\f065"}.ri-refund-2-line:before{content:"\f066"}.ri-refund-fill:before{content:"\f067"}.ri-refund-line:before{content:"\f068"}.ri-registered-fill:before{content:"\f069"}.ri-registered-line:before{content:"\f06a"}.ri-remixicon-fill:before{content:"\f06b"}.ri-remixicon-line:before{content:"\f06c"}.ri-remote-control-2-fill:before{content:"\f06d"}.ri-remote-control-2-line:before{content:"\f06e"}.ri-remote-control-fill:before{content:"\f06f"}.ri-remote-control-line:before{content:"\f070"}.ri-repeat-2-fill:before{content:"\f071"}.ri-repeat-2-line:before{content:"\f072"}.ri-repeat-fill:before{content:"\f073"}.ri-repeat-line:before{content:"\f074"}.ri-repeat-one-fill:before{content:"\f075"}.ri-repeat-one-line:before{content:"\f076"}.ri-reply-all-fill:before{content:"\f077"}.ri-reply-all-line:before{content:"\f078"}.ri-reply-fill:before{content:"\f079"}.ri-reply-line:before{content:"\f07a"}.ri-reserved-fill:before{content:"\f07b"}.ri-reserved-line:before{content:"\f07c"}.ri-rest-time-fill:before{content:"\f07d"}.ri-rest-time-line:before{content:"\f07e"}.ri-restart-fill:before{content:"\f07f"}.ri-restart-line:before{content:"\f080"}.ri-restaurant-2-fill:before{content:"\f081"}.ri-restaurant-2-line:before{content:"\f082"}.ri-restaurant-fill:before{content:"\f083"}.ri-restaurant-line:before{content:"\f084"}.ri-rewind-fill:before{content:"\f085"}.ri-rewind-line:before{content:"\f086"}.ri-rewind-mini-fill:before{content:"\f087"}.ri-rewind-mini-line:before{content:"\f088"}.ri-rhythm-fill:before{content:"\f089"}.ri-rhythm-line:before{content:"\f08a"}.ri-riding-fill:before{content:"\f08b"}.ri-riding-line:before{content:"\f08c"}.ri-road-map-fill:before{content:"\f08d"}.ri-road-map-line:before{content:"\f08e"}.ri-roadster-fill:before{content:"\f08f"}.ri-roadster-line:before{content:"\f090"}.ri-robot-fill:before{content:"\f091"}.ri-robot-line:before{content:"\f092"}.ri-rocket-2-fill:before{content:"\f093"}.ri-rocket-2-line:before{content:"\f094"}.ri-rocket-fill:before{content:"\f095"}.ri-rocket-line:before{content:"\f096"}.ri-rotate-lock-fill:before{content:"\f097"}.ri-rotate-lock-line:before{content:"\f098"}.ri-rounded-corner:before{content:"\f099"}.ri-route-fill:before{content:"\f09a"}.ri-route-line:before{content:"\f09b"}.ri-router-fill:before{content:"\f09c"}.ri-router-line:before{content:"\f09d"}.ri-rss-fill:before{content:"\f09e"}.ri-rss-line:before{content:"\f09f"}.ri-ruler-2-fill:before{content:"\f0a0"}.ri-ruler-2-line:before{content:"\f0a1"}.ri-ruler-fill:before{content:"\f0a2"}.ri-ruler-line:before{content:"\f0a3"}.ri-run-fill:before{content:"\f0a4"}.ri-run-line:before{content:"\f0a5"}.ri-safari-fill:before{content:"\f0a6"}.ri-safari-line:before{content:"\f0a7"}.ri-safe-2-fill:before{content:"\f0a8"}.ri-safe-2-line:before{content:"\f0a9"}.ri-safe-fill:before{content:"\f0aa"}.ri-safe-line:before{content:"\f0ab"}.ri-sailboat-fill:before{content:"\f0ac"}.ri-sailboat-line:before{content:"\f0ad"}.ri-save-2-fill:before{content:"\f0ae"}.ri-save-2-line:before{content:"\f0af"}.ri-save-3-fill:before{content:"\f0b0"}.ri-save-3-line:before{content:"\f0b1"}.ri-save-fill:before{content:"\f0b2"}.ri-save-line:before{content:"\f0b3"}.ri-scales-2-fill:before{content:"\f0b4"}.ri-scales-2-line:before{content:"\f0b5"}.ri-scales-3-fill:before{content:"\f0b6"}.ri-scales-3-line:before{content:"\f0b7"}.ri-scales-fill:before{content:"\f0b8"}.ri-scales-line:before{content:"\f0b9"}.ri-scan-2-fill:before{content:"\f0ba"}.ri-scan-2-line:before{content:"\f0bb"}.ri-scan-fill:before{content:"\f0bc"}.ri-scan-line:before{content:"\f0bd"}.ri-scissors-2-fill:before{content:"\f0be"}.ri-scissors-2-line:before{content:"\f0bf"}.ri-scissors-cut-fill:before{content:"\f0c0"}.ri-scissors-cut-line:before{content:"\f0c1"}.ri-scissors-fill:before{content:"\f0c2"}.ri-scissors-line:before{content:"\f0c3"}.ri-screenshot-2-fill:before{content:"\f0c4"}.ri-screenshot-2-line:before{content:"\f0c5"}.ri-screenshot-fill:before{content:"\f0c6"}.ri-screenshot-line:before{content:"\f0c7"}.ri-sd-card-fill:before{content:"\f0c8"}.ri-sd-card-line:before{content:"\f0c9"}.ri-sd-card-mini-fill:before{content:"\f0ca"}.ri-sd-card-mini-line:before{content:"\f0cb"}.ri-search-2-fill:before{content:"\f0cc"}.ri-search-2-line:before{content:"\f0cd"}.ri-search-eye-fill:before{content:"\f0ce"}.ri-search-eye-line:before{content:"\f0cf"}.ri-search-fill:before{content:"\f0d0"}.ri-search-line:before{content:"\f0d1"}.ri-secure-payment-fill:before{content:"\f0d2"}.ri-secure-payment-line:before{content:"\f0d3"}.ri-seedling-fill:before{content:"\f0d4"}.ri-seedling-line:before{content:"\f0d5"}.ri-send-backward:before{content:"\f0d6"}.ri-send-plane-2-fill:before{content:"\f0d7"}.ri-send-plane-2-line:before{content:"\f0d8"}.ri-send-plane-fill:before{content:"\f0d9"}.ri-send-plane-line:before{content:"\f0da"}.ri-send-to-back:before{content:"\f0db"}.ri-sensor-fill:before{content:"\f0dc"}.ri-sensor-line:before{content:"\f0dd"}.ri-separator:before{content:"\f0de"}.ri-server-fill:before{content:"\f0df"}.ri-server-line:before{content:"\f0e0"}.ri-service-fill:before{content:"\f0e1"}.ri-service-line:before{content:"\f0e2"}.ri-settings-2-fill:before{content:"\f0e3"}.ri-settings-2-line:before{content:"\f0e4"}.ri-settings-3-fill:before{content:"\f0e5"}.ri-settings-3-line:before{content:"\f0e6"}.ri-settings-4-fill:before{content:"\f0e7"}.ri-settings-4-line:before{content:"\f0e8"}.ri-settings-5-fill:before{content:"\f0e9"}.ri-settings-5-line:before{content:"\f0ea"}.ri-settings-6-fill:before{content:"\f0eb"}.ri-settings-6-line:before{content:"\f0ec"}.ri-settings-fill:before{content:"\f0ed"}.ri-settings-line:before{content:"\f0ee"}.ri-shape-2-fill:before{content:"\f0ef"}.ri-shape-2-line:before{content:"\f0f0"}.ri-shape-fill:before{content:"\f0f1"}.ri-shape-line:before{content:"\f0f2"}.ri-share-box-fill:before{content:"\f0f3"}.ri-share-box-line:before{content:"\f0f4"}.ri-share-circle-fill:before{content:"\f0f5"}.ri-share-circle-line:before{content:"\f0f6"}.ri-share-fill:before{content:"\f0f7"}.ri-share-forward-2-fill:before{content:"\f0f8"}.ri-share-forward-2-line:before{content:"\f0f9"}.ri-share-forward-box-fill:before{content:"\f0fa"}.ri-share-forward-box-line:before{content:"\f0fb"}.ri-share-forward-fill:before{content:"\f0fc"}.ri-share-forward-line:before{content:"\f0fd"}.ri-share-line:before{content:"\f0fe"}.ri-shield-check-fill:before{content:"\f0ff"}.ri-shield-check-line:before{content:"\f100"}.ri-shield-cross-fill:before{content:"\f101"}.ri-shield-cross-line:before{content:"\f102"}.ri-shield-fill:before{content:"\f103"}.ri-shield-flash-fill:before{content:"\f104"}.ri-shield-flash-line:before{content:"\f105"}.ri-shield-keyhole-fill:before{content:"\f106"}.ri-shield-keyhole-line:before{content:"\f107"}.ri-shield-line:before{content:"\f108"}.ri-shield-star-fill:before{content:"\f109"}.ri-shield-star-line:before{content:"\f10a"}.ri-shield-user-fill:before{content:"\f10b"}.ri-shield-user-line:before{content:"\f10c"}.ri-ship-2-fill:before{content:"\f10d"}.ri-ship-2-line:before{content:"\f10e"}.ri-ship-fill:before{content:"\f10f"}.ri-ship-line:before{content:"\f110"}.ri-shirt-fill:before{content:"\f111"}.ri-shirt-line:before{content:"\f112"}.ri-shopping-bag-2-fill:before{content:"\f113"}.ri-shopping-bag-2-line:before{content:"\f114"}.ri-shopping-bag-3-fill:before{content:"\f115"}.ri-shopping-bag-3-line:before{content:"\f116"}.ri-shopping-bag-fill:before{content:"\f117"}.ri-shopping-bag-line:before{content:"\f118"}.ri-shopping-basket-2-fill:before{content:"\f119"}.ri-shopping-basket-2-line:before{content:"\f11a"}.ri-shopping-basket-fill:before{content:"\f11b"}.ri-shopping-basket-line:before{content:"\f11c"}.ri-shopping-cart-2-fill:before{content:"\f11d"}.ri-shopping-cart-2-line:before{content:"\f11e"}.ri-shopping-cart-fill:before{content:"\f11f"}.ri-shopping-cart-line:before{content:"\f120"}.ri-showers-fill:before{content:"\f121"}.ri-showers-line:before{content:"\f122"}.ri-shuffle-fill:before{content:"\f123"}.ri-shuffle-line:before{content:"\f124"}.ri-shut-down-fill:before{content:"\f125"}.ri-shut-down-line:before{content:"\f126"}.ri-side-bar-fill:before{content:"\f127"}.ri-side-bar-line:before{content:"\f128"}.ri-signal-tower-fill:before{content:"\f129"}.ri-signal-tower-line:before{content:"\f12a"}.ri-signal-wifi-1-fill:before{content:"\f12b"}.ri-signal-wifi-1-line:before{content:"\f12c"}.ri-signal-wifi-2-fill:before{content:"\f12d"}.ri-signal-wifi-2-line:before{content:"\f12e"}.ri-signal-wifi-3-fill:before{content:"\f12f"}.ri-signal-wifi-3-line:before{content:"\f130"}.ri-signal-wifi-error-fill:before{content:"\f131"}.ri-signal-wifi-error-line:before{content:"\f132"}.ri-signal-wifi-fill:before{content:"\f133"}.ri-signal-wifi-line:before{content:"\f134"}.ri-signal-wifi-off-fill:before{content:"\f135"}.ri-signal-wifi-off-line:before{content:"\f136"}.ri-sim-card-2-fill:before{content:"\f137"}.ri-sim-card-2-line:before{content:"\f138"}.ri-sim-card-fill:before{content:"\f139"}.ri-sim-card-line:before{content:"\f13a"}.ri-single-quotes-l:before{content:"\f13b"}.ri-single-quotes-r:before{content:"\f13c"}.ri-sip-fill:before{content:"\f13d"}.ri-sip-line:before{content:"\f13e"}.ri-skip-back-fill:before{content:"\f13f"}.ri-skip-back-line:before{content:"\f140"}.ri-skip-back-mini-fill:before{content:"\f141"}.ri-skip-back-mini-line:before{content:"\f142"}.ri-skip-forward-fill:before{content:"\f143"}.ri-skip-forward-line:before{content:"\f144"}.ri-skip-forward-mini-fill:before{content:"\f145"}.ri-skip-forward-mini-line:before{content:"\f146"}.ri-skull-2-fill:before{content:"\f147"}.ri-skull-2-line:before{content:"\f148"}.ri-skull-fill:before{content:"\f149"}.ri-skull-line:before{content:"\f14a"}.ri-skype-fill:before{content:"\f14b"}.ri-skype-line:before{content:"\f14c"}.ri-slack-fill:before{content:"\f14d"}.ri-slack-line:before{content:"\f14e"}.ri-slice-fill:before{content:"\f14f"}.ri-slice-line:before{content:"\f150"}.ri-slideshow-2-fill:before{content:"\f151"}.ri-slideshow-2-line:before{content:"\f152"}.ri-slideshow-3-fill:before{content:"\f153"}.ri-slideshow-3-line:before{content:"\f154"}.ri-slideshow-4-fill:before{content:"\f155"}.ri-slideshow-4-line:before{content:"\f156"}.ri-slideshow-fill:before{content:"\f157"}.ri-slideshow-line:before{content:"\f158"}.ri-smartphone-fill:before{content:"\f159"}.ri-smartphone-line:before{content:"\f15a"}.ri-snapchat-fill:before{content:"\f15b"}.ri-snapchat-line:before{content:"\f15c"}.ri-snowy-fill:before{content:"\f15d"}.ri-snowy-line:before{content:"\f15e"}.ri-sort-asc:before{content:"\f15f"}.ri-sort-desc:before{content:"\f160"}.ri-sound-module-fill:before{content:"\f161"}.ri-sound-module-line:before{content:"\f162"}.ri-soundcloud-fill:before{content:"\f163"}.ri-soundcloud-line:before{content:"\f164"}.ri-space-ship-fill:before{content:"\f165"}.ri-space-ship-line:before{content:"\f166"}.ri-space:before{content:"\f167"}.ri-spam-2-fill:before{content:"\f168"}.ri-spam-2-line:before{content:"\f169"}.ri-spam-3-fill:before{content:"\f16a"}.ri-spam-3-line:before{content:"\f16b"}.ri-spam-fill:before{content:"\f16c"}.ri-spam-line:before{content:"\f16d"}.ri-speaker-2-fill:before{content:"\f16e"}.ri-speaker-2-line:before{content:"\f16f"}.ri-speaker-3-fill:before{content:"\f170"}.ri-speaker-3-line:before{content:"\f171"}.ri-speaker-fill:before{content:"\f172"}.ri-speaker-line:before{content:"\f173"}.ri-spectrum-fill:before{content:"\f174"}.ri-spectrum-line:before{content:"\f175"}.ri-speed-fill:before{content:"\f176"}.ri-speed-line:before{content:"\f177"}.ri-speed-mini-fill:before{content:"\f178"}.ri-speed-mini-line:before{content:"\f179"}.ri-split-cells-horizontal:before{content:"\f17a"}.ri-split-cells-vertical:before{content:"\f17b"}.ri-spotify-fill:before{content:"\f17c"}.ri-spotify-line:before{content:"\f17d"}.ri-spy-fill:before{content:"\f17e"}.ri-spy-line:before{content:"\f17f"}.ri-stack-fill:before{content:"\f180"}.ri-stack-line:before{content:"\f181"}.ri-stack-overflow-fill:before{content:"\f182"}.ri-stack-overflow-line:before{content:"\f183"}.ri-stackshare-fill:before{content:"\f184"}.ri-stackshare-line:before{content:"\f185"}.ri-star-fill:before{content:"\f186"}.ri-star-half-fill:before{content:"\f187"}.ri-star-half-line:before{content:"\f188"}.ri-star-half-s-fill:before{content:"\f189"}.ri-star-half-s-line:before{content:"\f18a"}.ri-star-line:before{content:"\f18b"}.ri-star-s-fill:before{content:"\f18c"}.ri-star-s-line:before{content:"\f18d"}.ri-star-smile-fill:before{content:"\f18e"}.ri-star-smile-line:before{content:"\f18f"}.ri-steam-fill:before{content:"\f190"}.ri-steam-line:before{content:"\f191"}.ri-steering-2-fill:before{content:"\f192"}.ri-steering-2-line:before{content:"\f193"}.ri-steering-fill:before{content:"\f194"}.ri-steering-line:before{content:"\f195"}.ri-stethoscope-fill:before{content:"\f196"}.ri-stethoscope-line:before{content:"\f197"}.ri-sticky-note-2-fill:before{content:"\f198"}.ri-sticky-note-2-line:before{content:"\f199"}.ri-sticky-note-fill:before{content:"\f19a"}.ri-sticky-note-line:before{content:"\f19b"}.ri-stock-fill:before{content:"\f19c"}.ri-stock-line:before{content:"\f19d"}.ri-stop-circle-fill:before{content:"\f19e"}.ri-stop-circle-line:before{content:"\f19f"}.ri-stop-fill:before{content:"\f1a0"}.ri-stop-line:before{content:"\f1a1"}.ri-stop-mini-fill:before{content:"\f1a2"}.ri-stop-mini-line:before{content:"\f1a3"}.ri-store-2-fill:before{content:"\f1a4"}.ri-store-2-line:before{content:"\f1a5"}.ri-store-3-fill:before{content:"\f1a6"}.ri-store-3-line:before{content:"\f1a7"}.ri-store-fill:before{content:"\f1a8"}.ri-store-line:before{content:"\f1a9"}.ri-strikethrough-2:before{content:"\f1aa"}.ri-strikethrough:before{content:"\f1ab"}.ri-subscript-2:before{content:"\f1ac"}.ri-subscript:before{content:"\f1ad"}.ri-subtract-fill:before{content:"\f1ae"}.ri-subtract-line:before{content:"\f1af"}.ri-subway-fill:before{content:"\f1b0"}.ri-subway-line:before{content:"\f1b1"}.ri-subway-wifi-fill:before{content:"\f1b2"}.ri-subway-wifi-line:before{content:"\f1b3"}.ri-suitcase-2-fill:before{content:"\f1b4"}.ri-suitcase-2-line:before{content:"\f1b5"}.ri-suitcase-3-fill:before{content:"\f1b6"}.ri-suitcase-3-line:before{content:"\f1b7"}.ri-suitcase-fill:before{content:"\f1b8"}.ri-suitcase-line:before{content:"\f1b9"}.ri-sun-cloudy-fill:before{content:"\f1ba"}.ri-sun-cloudy-line:before{content:"\f1bb"}.ri-sun-fill:before{content:"\f1bc"}.ri-sun-foggy-fill:before{content:"\f1bd"}.ri-sun-foggy-line:before{content:"\f1be"}.ri-sun-line:before{content:"\f1bf"}.ri-superscript-2:before{content:"\f1c0"}.ri-superscript:before{content:"\f1c1"}.ri-surgical-mask-fill:before{content:"\f1c2"}.ri-surgical-mask-line:before{content:"\f1c3"}.ri-surround-sound-fill:before{content:"\f1c4"}.ri-surround-sound-line:before{content:"\f1c5"}.ri-survey-fill:before{content:"\f1c6"}.ri-survey-line:before{content:"\f1c7"}.ri-swap-box-fill:before{content:"\f1c8"}.ri-swap-box-line:before{content:"\f1c9"}.ri-swap-fill:before{content:"\f1ca"}.ri-swap-line:before{content:"\f1cb"}.ri-switch-fill:before{content:"\f1cc"}.ri-switch-line:before{content:"\f1cd"}.ri-sword-fill:before{content:"\f1ce"}.ri-sword-line:before{content:"\f1cf"}.ri-syringe-fill:before{content:"\f1d0"}.ri-syringe-line:before{content:"\f1d1"}.ri-t-box-fill:before{content:"\f1d2"}.ri-t-box-line:before{content:"\f1d3"}.ri-t-shirt-2-fill:before{content:"\f1d4"}.ri-t-shirt-2-line:before{content:"\f1d5"}.ri-t-shirt-air-fill:before{content:"\f1d6"}.ri-t-shirt-air-line:before{content:"\f1d7"}.ri-t-shirt-fill:before{content:"\f1d8"}.ri-t-shirt-line:before{content:"\f1d9"}.ri-table-2:before{content:"\f1da"}.ri-table-alt-fill:before{content:"\f1db"}.ri-table-alt-line:before{content:"\f1dc"}.ri-table-fill:before{content:"\f1dd"}.ri-table-line:before{content:"\f1de"}.ri-tablet-fill:before{content:"\f1df"}.ri-tablet-line:before{content:"\f1e0"}.ri-takeaway-fill:before{content:"\f1e1"}.ri-takeaway-line:before{content:"\f1e2"}.ri-taobao-fill:before{content:"\f1e3"}.ri-taobao-line:before{content:"\f1e4"}.ri-tape-fill:before{content:"\f1e5"}.ri-tape-line:before{content:"\f1e6"}.ri-task-fill:before{content:"\f1e7"}.ri-task-line:before{content:"\f1e8"}.ri-taxi-fill:before{content:"\f1e9"}.ri-taxi-line:before{content:"\f1ea"}.ri-taxi-wifi-fill:before{content:"\f1eb"}.ri-taxi-wifi-line:before{content:"\f1ec"}.ri-team-fill:before{content:"\f1ed"}.ri-team-line:before{content:"\f1ee"}.ri-telegram-fill:before{content:"\f1ef"}.ri-telegram-line:before{content:"\f1f0"}.ri-temp-cold-fill:before{content:"\f1f1"}.ri-temp-cold-line:before{content:"\f1f2"}.ri-temp-hot-fill:before{content:"\f1f3"}.ri-temp-hot-line:before{content:"\f1f4"}.ri-terminal-box-fill:before{content:"\f1f5"}.ri-terminal-box-line:before{content:"\f1f6"}.ri-terminal-fill:before{content:"\f1f7"}.ri-terminal-line:before{content:"\f1f8"}.ri-terminal-window-fill:before{content:"\f1f9"}.ri-terminal-window-line:before{content:"\f1fa"}.ri-test-tube-fill:before{content:"\f1fb"}.ri-test-tube-line:before{content:"\f1fc"}.ri-text-direction-l:before{content:"\f1fd"}.ri-text-direction-r:before{content:"\f1fe"}.ri-text-spacing:before{content:"\f1ff"}.ri-text-wrap:before{content:"\f200"}.ri-text:before{content:"\f201"}.ri-thermometer-fill:before{content:"\f202"}.ri-thermometer-line:before{content:"\f203"}.ri-thumb-down-fill:before{content:"\f204"}.ri-thumb-down-line:before{content:"\f205"}.ri-thumb-up-fill:before{content:"\f206"}.ri-thumb-up-line:before{content:"\f207"}.ri-thunderstorms-fill:before{content:"\f208"}.ri-thunderstorms-line:before{content:"\f209"}.ri-ticket-2-fill:before{content:"\f20a"}.ri-ticket-2-line:before{content:"\f20b"}.ri-ticket-fill:before{content:"\f20c"}.ri-ticket-line:before{content:"\f20d"}.ri-time-fill:before{content:"\f20e"}.ri-time-line:before{content:"\f20f"}.ri-timer-2-fill:before{content:"\f210"}.ri-timer-2-line:before{content:"\f211"}.ri-timer-fill:before{content:"\f212"}.ri-timer-flash-fill:before{content:"\f213"}.ri-timer-flash-line:before{content:"\f214"}.ri-timer-line:before{content:"\f215"}.ri-todo-fill:before{content:"\f216"}.ri-todo-line:before{content:"\f217"}.ri-toggle-fill:before{content:"\f218"}.ri-toggle-line:before{content:"\f219"}.ri-tools-fill:before{content:"\f21a"}.ri-tools-line:before{content:"\f21b"}.ri-tornado-fill:before{content:"\f21c"}.ri-tornado-line:before{content:"\f21d"}.ri-trademark-fill:before{content:"\f21e"}.ri-trademark-line:before{content:"\f21f"}.ri-traffic-light-fill:before{content:"\f220"}.ri-traffic-light-line:before{content:"\f221"}.ri-train-fill:before{content:"\f222"}.ri-train-line:before{content:"\f223"}.ri-train-wifi-fill:before{content:"\f224"}.ri-train-wifi-line:before{content:"\f225"}.ri-translate-2:before{content:"\f226"}.ri-translate:before{content:"\f227"}.ri-travesti-fill:before{content:"\f228"}.ri-travesti-line:before{content:"\f229"}.ri-treasure-map-fill:before{content:"\f22a"}.ri-treasure-map-line:before{content:"\f22b"}.ri-trello-fill:before{content:"\f22c"}.ri-trello-line:before{content:"\f22d"}.ri-trophy-fill:before{content:"\f22e"}.ri-trophy-line:before{content:"\f22f"}.ri-truck-fill:before{content:"\f230"}.ri-truck-line:before{content:"\f231"}.ri-tumblr-fill:before{content:"\f232"}.ri-tumblr-line:before{content:"\f233"}.ri-tv-2-fill:before{content:"\f234"}.ri-tv-2-line:before{content:"\f235"}.ri-tv-fill:before{content:"\f236"}.ri-tv-line:before{content:"\f237"}.ri-twitch-fill:before{content:"\f238"}.ri-twitch-line:before{content:"\f239"}.ri-twitter-fill:before{content:"\f23a"}.ri-twitter-line:before{content:"\f23b"}.ri-typhoon-fill:before{content:"\f23c"}.ri-typhoon-line:before{content:"\f23d"}.ri-u-disk-fill:before{content:"\f23e"}.ri-u-disk-line:before{content:"\f23f"}.ri-ubuntu-fill:before{content:"\f240"}.ri-ubuntu-line:before{content:"\f241"}.ri-umbrella-fill:before{content:"\f242"}.ri-umbrella-line:before{content:"\f243"}.ri-underline:before{content:"\f244"}.ri-uninstall-fill:before{content:"\f245"}.ri-uninstall-line:before{content:"\f246"}.ri-unsplash-fill:before{content:"\f247"}.ri-unsplash-line:before{content:"\f248"}.ri-upload-2-fill:before{content:"\f249"}.ri-upload-2-line:before{content:"\f24a"}.ri-upload-cloud-2-fill:before{content:"\f24b"}.ri-upload-cloud-2-line:before{content:"\f24c"}.ri-upload-cloud-fill:before{content:"\f24d"}.ri-upload-cloud-line:before{content:"\f24e"}.ri-upload-fill:before{content:"\f24f"}.ri-upload-line:before{content:"\f250"}.ri-usb-fill:before{content:"\f251"}.ri-usb-line:before{content:"\f252"}.ri-user-2-fill:before{content:"\f253"}.ri-user-2-line:before{content:"\f254"}.ri-user-3-fill:before{content:"\f255"}.ri-user-3-line:before{content:"\f256"}.ri-user-4-fill:before{content:"\f257"}.ri-user-4-line:before{content:"\f258"}.ri-user-5-fill:before{content:"\f259"}.ri-user-5-line:before{content:"\f25a"}.ri-user-6-fill:before{content:"\f25b"}.ri-user-6-line:before{content:"\f25c"}.ri-user-add-fill:before{content:"\f25d"}.ri-user-add-line:before{content:"\f25e"}.ri-user-fill:before{content:"\f25f"}.ri-user-follow-fill:before{content:"\f260"}.ri-user-follow-line:before{content:"\f261"}.ri-user-heart-fill:before{content:"\f262"}.ri-user-heart-line:before{content:"\f263"}.ri-user-line:before{content:"\f264"}.ri-user-location-fill:before{content:"\f265"}.ri-user-location-line:before{content:"\f266"}.ri-user-received-2-fill:before{content:"\f267"}.ri-user-received-2-line:before{content:"\f268"}.ri-user-received-fill:before{content:"\f269"}.ri-user-received-line:before{content:"\f26a"}.ri-user-search-fill:before{content:"\f26b"}.ri-user-search-line:before{content:"\f26c"}.ri-user-settings-fill:before{content:"\f26d"}.ri-user-settings-line:before{content:"\f26e"}.ri-user-shared-2-fill:before{content:"\f26f"}.ri-user-shared-2-line:before{content:"\f270"}.ri-user-shared-fill:before{content:"\f271"}.ri-user-shared-line:before{content:"\f272"}.ri-user-smile-fill:before{content:"\f273"}.ri-user-smile-line:before{content:"\f274"}.ri-user-star-fill:before{content:"\f275"}.ri-user-star-line:before{content:"\f276"}.ri-user-unfollow-fill:before{content:"\f277"}.ri-user-unfollow-line:before{content:"\f278"}.ri-user-voice-fill:before{content:"\f279"}.ri-user-voice-line:before{content:"\f27a"}.ri-video-add-fill:before{content:"\f27b"}.ri-video-add-line:before{content:"\f27c"}.ri-video-chat-fill:before{content:"\f27d"}.ri-video-chat-line:before{content:"\f27e"}.ri-video-download-fill:before{content:"\f27f"}.ri-video-download-line:before{content:"\f280"}.ri-video-fill:before{content:"\f281"}.ri-video-line:before{content:"\f282"}.ri-video-upload-fill:before{content:"\f283"}.ri-video-upload-line:before{content:"\f284"}.ri-vidicon-2-fill:before{content:"\f285"}.ri-vidicon-2-line:before{content:"\f286"}.ri-vidicon-fill:before{content:"\f287"}.ri-vidicon-line:before{content:"\f288"}.ri-vimeo-fill:before{content:"\f289"}.ri-vimeo-line:before{content:"\f28a"}.ri-vip-crown-2-fill:before{content:"\f28b"}.ri-vip-crown-2-line:before{content:"\f28c"}.ri-vip-crown-fill:before{content:"\f28d"}.ri-vip-crown-line:before{content:"\f28e"}.ri-vip-diamond-fill:before{content:"\f28f"}.ri-vip-diamond-line:before{content:"\f290"}.ri-vip-fill:before{content:"\f291"}.ri-vip-line:before{content:"\f292"}.ri-virus-fill:before{content:"\f293"}.ri-virus-line:before{content:"\f294"}.ri-visa-fill:before{content:"\f295"}.ri-visa-line:before{content:"\f296"}.ri-voice-recognition-fill:before{content:"\f297"}.ri-voice-recognition-line:before{content:"\f298"}.ri-voiceprint-fill:before{content:"\f299"}.ri-voiceprint-line:before{content:"\f29a"}.ri-volume-down-fill:before{content:"\f29b"}.ri-volume-down-line:before{content:"\f29c"}.ri-volume-mute-fill:before{content:"\f29d"}.ri-volume-mute-line:before{content:"\f29e"}.ri-volume-off-vibrate-fill:before{content:"\f29f"}.ri-volume-off-vibrate-line:before{content:"\f2a0"}.ri-volume-up-fill:before{content:"\f2a1"}.ri-volume-up-line:before{content:"\f2a2"}.ri-volume-vibrate-fill:before{content:"\f2a3"}.ri-volume-vibrate-line:before{content:"\f2a4"}.ri-vuejs-fill:before{content:"\f2a5"}.ri-vuejs-line:before{content:"\f2a6"}.ri-walk-fill:before{content:"\f2a7"}.ri-walk-line:before{content:"\f2a8"}.ri-wallet-2-fill:before{content:"\f2a9"}.ri-wallet-2-line:before{content:"\f2aa"}.ri-wallet-3-fill:before{content:"\f2ab"}.ri-wallet-3-line:before{content:"\f2ac"}.ri-wallet-fill:before{content:"\f2ad"}.ri-wallet-line:before{content:"\f2ae"}.ri-water-flash-fill:before{content:"\f2af"}.ri-water-flash-line:before{content:"\f2b0"}.ri-webcam-fill:before{content:"\f2b1"}.ri-webcam-line:before{content:"\f2b2"}.ri-wechat-2-fill:before{content:"\f2b3"}.ri-wechat-2-line:before{content:"\f2b4"}.ri-wechat-fill:before{content:"\f2b5"}.ri-wechat-line:before{content:"\f2b6"}.ri-wechat-pay-fill:before{content:"\f2b7"}.ri-wechat-pay-line:before{content:"\f2b8"}.ri-weibo-fill:before{content:"\f2b9"}.ri-weibo-line:before{content:"\f2ba"}.ri-whatsapp-fill:before{content:"\f2bb"}.ri-whatsapp-line:before{content:"\f2bc"}.ri-wheelchair-fill:before{content:"\f2bd"}.ri-wheelchair-line:before{content:"\f2be"}.ri-wifi-fill:before{content:"\f2bf"}.ri-wifi-line:before{content:"\f2c0"}.ri-wifi-off-fill:before{content:"\f2c1"}.ri-wifi-off-line:before{content:"\f2c2"}.ri-window-2-fill:before{content:"\f2c3"}.ri-window-2-line:before{content:"\f2c4"}.ri-window-fill:before{content:"\f2c5"}.ri-window-line:before{content:"\f2c6"}.ri-windows-fill:before{content:"\f2c7"}.ri-windows-line:before{content:"\f2c8"}.ri-windy-fill:before{content:"\f2c9"}.ri-windy-line:before{content:"\f2ca"}.ri-wireless-charging-fill:before{content:"\f2cb"}.ri-wireless-charging-line:before{content:"\f2cc"}.ri-women-fill:before{content:"\f2cd"}.ri-women-line:before{content:"\f2ce"}.ri-wubi-input:before{content:"\f2cf"}.ri-xbox-fill:before{content:"\f2d0"}.ri-xbox-line:before{content:"\f2d1"}.ri-xing-fill:before{content:"\f2d2"}.ri-xing-line:before{content:"\f2d3"}.ri-youtube-fill:before{content:"\f2d4"}.ri-youtube-line:before{content:"\f2d5"}.ri-zcool-fill:before{content:"\f2d6"}.ri-zcool-line:before{content:"\f2d7"}.ri-zhihu-fill:before{content:"\f2d8"}.ri-zhihu-line:before{content:"\f2d9"}.ri-zoom-in-fill:before{content:"\f2da"}.ri-zoom-in-line:before{content:"\f2db"}.ri-zoom-out-fill:before{content:"\f2dc"}.ri-zoom-out-line:before{content:"\f2dd"}.ri-zzz-fill:before{content:"\f2de"}.ri-zzz-line:before{content:"\f2df"}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes expand{0%{transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shine{to{background-position-x:-200%}}@keyframes loaderShow{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes entranceLeft{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:translate(0)}}@keyframes entranceRight{0%{opacity:0;transform:translate(5px)}to{opacity:1;transform:translate(0)}}@keyframes entranceTop{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes entranceBottom{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media screen and (min-width: 550px){::-webkit-scrollbar{width:8px;height:8px;border-radius:var(--baseRadius)}::-webkit-scrollbar-track{background:transparent;border-radius:var(--baseRadius)}::-webkit-scrollbar-thumb{background-color:var(--baseAlt2Color);border-radius:15px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover,::-webkit-scrollbar-thumb:active{background-color:var(--baseAlt3Color)}html{scrollbar-color:var(--baseAlt2Color) transparent;scrollbar-width:thin;scroll-behavior:smooth}html *{scrollbar-width:inherit}}:focus-visible{outline-color:var(--primaryColor);outline-style:solid}html,body{line-height:var(--baseLineHeight);font-family:var(--baseFontFamily);font-size:var(--baseFontSize);color:var(--txtPrimaryColor);background:var(--bodyColor)}#app{overflow:auto;display:block;width:100%;height:100vh}.flatpickr-inline-container,.accordion .accordion-content,.accordion,.tabs,.tabs-content,.form-field-file .files-list,.select .txt-missing,.form-field .form-field-block,.list,.skeleton-loader,.clearfix,.content,.form-field .help-block,.overlay-panel .panel-content,.sub-panel,.panel,.block,.code-block,blockquote,p{display:block;width:100%}h1,h2,.breadcrumbs .breadcrumb-item,h3,h4,h5,h6{margin:0;font-weight:400}h1{font-size:22px;line-height:28px}h2,.breadcrumbs .breadcrumb-item{font-size:20px;line-height:26px}h3{font-size:19px;line-height:24px}h4{font-size:18px;line-height:24px}h5{font-size:17px;line-height:24px}h6{font-size:16px;line-height:22px}em{font-style:italic}ins{color:var(--txtPrimaryColor);background:var(--successAltColor);text-decoration:none}del{color:var(--txtPrimaryColor);background:var(--dangerAltColor);text-decoration:none}strong{font-weight:600}small{font-size:var(--smFontSize);line-height:var(--smLineHeight)}sub,sup{position:relative;font-size:.75em;line-height:1}sup{vertical-align:top}sub{vertical-align:bottom}p{margin:5px 0}blockquote{position:relative;padding-left:var(--smSpacing);font-style:italic;color:var(--txtHintColor)}blockquote:before{content:"";position:absolute;top:0;left:0;width:2px;height:100%;background:var(--baseColor)}code{display:inline-block;font-family:var(--monospaceFontFamily);font-style:normal;font-size:var(--lgFontSize);line-height:1.379rem;padding:0 4px;white-space:nowrap;color:var(--txtPrimaryColor);background:var(--baseAlt2Color);border-radius:var(--baseRadius)}.code-block{overflow:auto;padding:var(--xsSpacing);white-space:pre-wrap;background:var(--baseAlt1Color)}ol,ul{margin:10px 0;list-style:decimal;padding-left:var(--baseSpacing)}ol li,ul li{margin-top:5px;margin-bottom:5px}ul{list-style:disc}img{max-width:100%;vertical-align:top}hr{display:block;border:0;height:1px;width:100%;background:var(--baseAlt1Color);margin:var(--baseSpacing) 0}hr.dark{background:var(--baseAlt2Color)}a{color:inherit}a:hover{text-decoration:none}a i,a .txt{display:inline-block;vertical-align:top}.txt-mono{font-family:var(--monospaceFontFamily)}.txt-nowrap{white-space:nowrap}.txt-ellipsis{display:inline-block;vertical-align:top;flex-shrink:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.txt-base{font-size:var(--baseFontSize)!important}.txt-xs{font-size:var(--xsFontSize)!important;line-height:var(--smLineHeight)}.txt-sm{font-size:var(--smFontSize)!important;line-height:var(--smLineHeight)}.txt-lg{font-size:var(--lgFontSize)!important}.txt-xl{font-size:var(--xlFontSize)!important}.txt-bold{font-weight:600!important}.txt-strikethrough{text-decoration:line-through!important}.txt-break{white-space:pre-wrap!important}.txt-center{text-align:center!important}.txt-justify{text-align:justify!important}.txt-left{text-align:left!important}.txt-right{text-align:right!important}.txt-main{color:var(--txtPrimaryColor)!important}.txt-hint{color:var(--txtHintColor)!important}.txt-disabled{color:var(--txtDisabledColor)!important}.link-hint{user-select:none;cursor:pointer;color:var(--txtHintColor)!important;text-decoration:none;transition:color var(--baseAnimationSpeed)}.link-hint:hover,.link-hint:focus-visible,.link-hint:active{color:var(--txtPrimaryColor)!important}.link-fade{opacity:1;user-select:none;cursor:pointer;text-decoration:none;color:var(--txtPrimaryColor);transition:opacity var(--baseAnimationSpeed)}.link-fade:focus-visible,.link-fade:hover,.link-fade:active{opacity:.8}.txt-primary{color:var(--primaryColor)!important}.bg-primary{background:var(--primaryColor)!important}.link-primary{cursor:pointer;color:var(--primaryColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-primary:focus-visible,.link-primary:hover,.link-primary:active{opacity:.8}.txt-info{color:var(--infoColor)!important}.bg-info{background:var(--infoColor)!important}.link-info{cursor:pointer;color:var(--infoColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-info:focus-visible,.link-info:hover,.link-info:active{opacity:.8}.txt-info-alt{color:var(--infoAltColor)!important}.bg-info-alt{background:var(--infoAltColor)!important}.link-info-alt{cursor:pointer;color:var(--infoAltColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-info-alt:focus-visible,.link-info-alt:hover,.link-info-alt:active{opacity:.8}.txt-success{color:var(--successColor)!important}.bg-success{background:var(--successColor)!important}.link-success{cursor:pointer;color:var(--successColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-success:focus-visible,.link-success:hover,.link-success:active{opacity:.8}.txt-success-alt{color:var(--successAltColor)!important}.bg-success-alt{background:var(--successAltColor)!important}.link-success-alt{cursor:pointer;color:var(--successAltColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-success-alt:focus-visible,.link-success-alt:hover,.link-success-alt:active{opacity:.8}.txt-danger{color:var(--dangerColor)!important}.bg-danger{background:var(--dangerColor)!important}.link-danger{cursor:pointer;color:var(--dangerColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-danger:focus-visible,.link-danger:hover,.link-danger:active{opacity:.8}.txt-danger-alt{color:var(--dangerAltColor)!important}.bg-danger-alt{background:var(--dangerAltColor)!important}.link-danger-alt{cursor:pointer;color:var(--dangerAltColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-danger-alt:focus-visible,.link-danger-alt:hover,.link-danger-alt:active{opacity:.8}.txt-warning{color:var(--warningColor)!important}.bg-warning{background:var(--warningColor)!important}.link-warning{cursor:pointer;color:var(--warningColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-warning:focus-visible,.link-warning:hover,.link-warning:active{opacity:.8}.txt-warning-alt{color:var(--warningAltColor)!important}.bg-warning-alt{background:var(--warningAltColor)!important}.link-warning-alt{cursor:pointer;color:var(--warningAltColor)!important;text-decoration:none;user-select:none;transition:opacity var(--baseAnimationSpeed)}.link-warning-alt:focus-visible,.link-warning-alt:hover,.link-warning-alt:active{opacity:.8}.fade{opacity:.6}a.fade,.btn.fade,[tabindex].fade,[class*=link-].fade,.handle.fade{transition:all var(--baseAnimationSpeed)}a.fade:hover,.btn.fade:hover,[tabindex].fade:hover,[class*=link-].fade:hover,.handle.fade:hover{opacity:1}.noborder{border:0px!important}.hidden{display:none!important}.hidden-empty:empty{display:none!important}.content>:first-child,.form-field .help-block>:first-child,.overlay-panel .panel-content>:first-child,.sub-panel>:first-child,.panel>:first-child{margin-top:0}.content>:last-child,.form-field .help-block>:last-child,.overlay-panel .panel-content>:last-child,.sub-panel>:last-child,.panel>:last-child{margin-bottom:0}.panel{background:var(--baseColor);border-radius:var(--lgRadius);padding:calc(var(--baseSpacing) - 5px) var(--baseSpacing);box-shadow:0 2px 5px 0 var(--shadowColor)}.sub-panel{background:var(--baseColor);border-radius:var(--baseRadius);padding:calc(var(--smSpacing) - 5px) var(--smSpacing);border:1px solid var(--baseAlt1Color)}.clearfix{clear:both}.clearfix:after{content:"";display:table;clear:both}.flex{position:relative;display:flex;align-items:center;width:100%;gap:var(--smSpacing)}.flex-fill{flex:1 1 auto!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.inline-flex{position:relative;display:inline-flex;align-items:center;flex-wrap:wrap;min-width:0;gap:10px}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-gap-base{gap:var(--baseSpacing)!important}.flex-gap-xs{gap:var(--xsSpacing)!important}.flex-gap-sm{gap:var(--smSpacing)!important}.flex-gap-lg{gap:var(--lgSpacing)!important}.flex-gap-xl{gap:var(--xlSpacing)!important}.flex-gap-0{gap:0px!important}.flex-gap-5{gap:5px!important}.flex-gap-10{gap:10px!important}.flex-gap-15{gap:15px!important}.flex-gap-20{gap:20px!important}.flex-gap-25{gap:25px!important}.flex-gap-30{gap:30px!important}.flex-gap-35{gap:35px!important}.flex-gap-40{gap:40px!important}.flex-gap-45{gap:45px!important}.flex-gap-50{gap:50px!important}.flex-gap-55{gap:55px!important}.flex-gap-60{gap:60px!important}.m-base{margin:var(--baseSpacing)!important}.p-base{padding:var(--baseSpacing)!important}.m-xs{margin:var(--xsSpacing)!important}.p-xs{padding:var(--xsSpacing)!important}.m-sm{margin:var(--smSpacing)!important}.p-sm{padding:var(--smSpacing)!important}.m-lg{margin:var(--lgSpacing)!important}.p-lg{padding:var(--lgSpacing)!important}.m-xl{margin:var(--xlSpacing)!important}.p-xl{padding:var(--xlSpacing)!important}.m-t-auto{margin-top:auto!important}.p-t-auto{padding-top:auto!important}.m-t-base{margin-top:var(--baseSpacing)!important}.p-t-base{padding-top:var(--baseSpacing)!important}.m-t-xs{margin-top:var(--xsSpacing)!important}.p-t-xs{padding-top:var(--xsSpacing)!important}.m-t-sm{margin-top:var(--smSpacing)!important}.p-t-sm{padding-top:var(--smSpacing)!important}.m-t-lg{margin-top:var(--lgSpacing)!important}.p-t-lg{padding-top:var(--lgSpacing)!important}.m-t-xl{margin-top:var(--xlSpacing)!important}.p-t-xl{padding-top:var(--xlSpacing)!important}.m-r-auto{margin-right:auto!important}.p-r-auto{padding-right:auto!important}.m-r-base{margin-right:var(--baseSpacing)!important}.p-r-base{padding-right:var(--baseSpacing)!important}.m-r-xs{margin-right:var(--xsSpacing)!important}.p-r-xs{padding-right:var(--xsSpacing)!important}.m-r-sm{margin-right:var(--smSpacing)!important}.p-r-sm{padding-right:var(--smSpacing)!important}.m-r-lg{margin-right:var(--lgSpacing)!important}.p-r-lg{padding-right:var(--lgSpacing)!important}.m-r-xl{margin-right:var(--xlSpacing)!important}.p-r-xl{padding-right:var(--xlSpacing)!important}.m-b-auto{margin-bottom:auto!important}.p-b-auto{padding-bottom:auto!important}.m-b-base{margin-bottom:var(--baseSpacing)!important}.p-b-base{padding-bottom:var(--baseSpacing)!important}.m-b-xs{margin-bottom:var(--xsSpacing)!important}.p-b-xs{padding-bottom:var(--xsSpacing)!important}.m-b-sm{margin-bottom:var(--smSpacing)!important}.p-b-sm{padding-bottom:var(--smSpacing)!important}.m-b-lg{margin-bottom:var(--lgSpacing)!important}.p-b-lg{padding-bottom:var(--lgSpacing)!important}.m-b-xl{margin-bottom:var(--xlSpacing)!important}.p-b-xl{padding-bottom:var(--xlSpacing)!important}.m-l-auto{margin-left:auto!important}.p-l-auto{padding-left:auto!important}.m-l-base{margin-left:var(--baseSpacing)!important}.p-l-base{padding-left:var(--baseSpacing)!important}.m-l-xs{margin-left:var(--xsSpacing)!important}.p-l-xs{padding-left:var(--xsSpacing)!important}.m-l-sm{margin-left:var(--smSpacing)!important}.p-l-sm{padding-left:var(--smSpacing)!important}.m-l-lg{margin-left:var(--lgSpacing)!important}.p-l-lg{padding-left:var(--lgSpacing)!important}.m-l-xl{margin-left:var(--xlSpacing)!important}.p-l-xl{padding-left:var(--xlSpacing)!important}.m-0{margin:0!important}.p-0{padding:0!important}.m-t-0{margin-top:0!important}.p-t-0{padding-top:0!important}.m-r-0{margin-right:0!important}.p-r-0{padding-right:0!important}.m-b-0{margin-bottom:0!important}.p-b-0{padding-bottom:0!important}.m-l-0{margin-left:0!important}.p-l-0{padding-left:0!important}.m-5{margin:5px!important}.p-5{padding:5px!important}.m-t-5{margin-top:5px!important}.p-t-5{padding-top:5px!important}.m-r-5{margin-right:5px!important}.p-r-5{padding-right:5px!important}.m-b-5{margin-bottom:5px!important}.p-b-5{padding-bottom:5px!important}.m-l-5{margin-left:5px!important}.p-l-5{padding-left:5px!important}.m-10{margin:10px!important}.p-10{padding:10px!important}.m-t-10{margin-top:10px!important}.p-t-10{padding-top:10px!important}.m-r-10{margin-right:10px!important}.p-r-10{padding-right:10px!important}.m-b-10{margin-bottom:10px!important}.p-b-10{padding-bottom:10px!important}.m-l-10{margin-left:10px!important}.p-l-10{padding-left:10px!important}.m-15{margin:15px!important}.p-15{padding:15px!important}.m-t-15{margin-top:15px!important}.p-t-15{padding-top:15px!important}.m-r-15{margin-right:15px!important}.p-r-15{padding-right:15px!important}.m-b-15{margin-bottom:15px!important}.p-b-15{padding-bottom:15px!important}.m-l-15{margin-left:15px!important}.p-l-15{padding-left:15px!important}.m-20{margin:20px!important}.p-20{padding:20px!important}.m-t-20{margin-top:20px!important}.p-t-20{padding-top:20px!important}.m-r-20{margin-right:20px!important}.p-r-20{padding-right:20px!important}.m-b-20{margin-bottom:20px!important}.p-b-20{padding-bottom:20px!important}.m-l-20{margin-left:20px!important}.p-l-20{padding-left:20px!important}.m-25{margin:25px!important}.p-25{padding:25px!important}.m-t-25{margin-top:25px!important}.p-t-25{padding-top:25px!important}.m-r-25{margin-right:25px!important}.p-r-25{padding-right:25px!important}.m-b-25{margin-bottom:25px!important}.p-b-25{padding-bottom:25px!important}.m-l-25{margin-left:25px!important}.p-l-25{padding-left:25px!important}.m-30{margin:30px!important}.p-30{padding:30px!important}.m-t-30{margin-top:30px!important}.p-t-30{padding-top:30px!important}.m-r-30{margin-right:30px!important}.p-r-30{padding-right:30px!important}.m-b-30{margin-bottom:30px!important}.p-b-30{padding-bottom:30px!important}.m-l-30{margin-left:30px!important}.p-l-30{padding-left:30px!important}.m-35{margin:35px!important}.p-35{padding:35px!important}.m-t-35{margin-top:35px!important}.p-t-35{padding-top:35px!important}.m-r-35{margin-right:35px!important}.p-r-35{padding-right:35px!important}.m-b-35{margin-bottom:35px!important}.p-b-35{padding-bottom:35px!important}.m-l-35{margin-left:35px!important}.p-l-35{padding-left:35px!important}.m-40{margin:40px!important}.p-40{padding:40px!important}.m-t-40{margin-top:40px!important}.p-t-40{padding-top:40px!important}.m-r-40{margin-right:40px!important}.p-r-40{padding-right:40px!important}.m-b-40{margin-bottom:40px!important}.p-b-40{padding-bottom:40px!important}.m-l-40{margin-left:40px!important}.p-l-40{padding-left:40px!important}.m-45{margin:45px!important}.p-45{padding:45px!important}.m-t-45{margin-top:45px!important}.p-t-45{padding-top:45px!important}.m-r-45{margin-right:45px!important}.p-r-45{padding-right:45px!important}.m-b-45{margin-bottom:45px!important}.p-b-45{padding-bottom:45px!important}.m-l-45{margin-left:45px!important}.p-l-45{padding-left:45px!important}.m-50{margin:50px!important}.p-50{padding:50px!important}.m-t-50{margin-top:50px!important}.p-t-50{padding-top:50px!important}.m-r-50{margin-right:50px!important}.p-r-50{padding-right:50px!important}.m-b-50{margin-bottom:50px!important}.p-b-50{padding-bottom:50px!important}.m-l-50{margin-left:50px!important}.p-l-50{padding-left:50px!important}.m-55{margin:55px!important}.p-55{padding:55px!important}.m-t-55{margin-top:55px!important}.p-t-55{padding-top:55px!important}.m-r-55{margin-right:55px!important}.p-r-55{padding-right:55px!important}.m-b-55{margin-bottom:55px!important}.p-b-55{padding-bottom:55px!important}.m-l-55{margin-left:55px!important}.p-l-55{padding-left:55px!important}.m-60{margin:60px!important}.p-60{padding:60px!important}.m-t-60{margin-top:60px!important}.p-t-60{padding-top:60px!important}.m-r-60{margin-right:60px!important}.p-r-60{padding-right:60px!important}.m-b-60{margin-bottom:60px!important}.p-b-60{padding-bottom:60px!important}.m-l-60{margin-left:60px!important}.p-l-60{padding-left:60px!important}.no-min-width{min-width:0!important}.wrapper{position:relative;width:var(--wrapperWidth);margin:0 auto;max-width:100%}.wrapper.wrapper-sm{width:var(--smWrapperWidth)}.wrapper.wrapper-lg{width:var(--lgWrapperWidth)}.label{display:inline-flex;align-items:center;justify-content:center;gap:5px;line-height:1;padding:3px 8px;min-height:23px;text-align:center;font-size:var(--smFontSize);border-radius:30px;background:var(--baseAlt2Color);color:var(--txtPrimaryColor);white-space:nowrap}.label.label-sm{font-size:var(--xsFontSize);padding:3px 5px;min-height:18px;line-height:1}.label.label-primary{color:var(--baseColor);background:var(--primaryColor)}.label.label-info{background:var(--infoAltColor)}.label.label-success{background:var(--successAltColor)}.label.label-danger{background:var(--dangerAltColor)}.label.label-warning{background:var(--warningAltColor)}.thumb{--thumbSize: 44px;flex-shrink:0;position:relative;display:inline-flex;align-items:center;justify-content:center;line-height:1;width:var(--thumbSize);height:var(--thumbSize);background:var(--baseAlt2Color);border-radius:var(--baseRadius);color:var(--txtPrimaryColor);font-size:1.2rem;box-shadow:0 2px 5px 0 var(--shadowColor)}.thumb i{font-size:inherit}.thumb img{width:100%;height:100%;border-radius:inherit;overflow:hidden}.thumb.thumb-sm{--thumbSize: 32px;font-size:.85rem}.thumb.thumb-lg{--thumbSize: 60px;font-size:1.3rem}.thumb.thumb-xl{--thumbSize: 80px;font-size:1.5rem}.thumb.thumb-circle{border-radius:50%}.thumb.thumb-active{box-shadow:0 0 0 2px var(--primaryColor)}.section-title{display:flex;align-items:center;width:100%;column-gap:10px;row-gap:5px;margin:0 0 var(--xsSpacing);font-weight:600;font-size:var(--smFontSize);line-height:var(--smLineHeight);color:var(--txtHintColor);text-transform:uppercase}.drag-handle{outline:0;cursor:pointer;display:inline-flex;align-items:left;color:var(--txtDisabledColor);transition:color var(--baseAnimationSpeed)}.drag-handle:before,.drag-handle:after{content:"\ef77";font-family:var(--iconFontFamily);font-size:18px;line-height:1;width:7px;text-align:center}.drag-handle:focus-visible,.drag-handle:hover,.drag-handle:active{color:var(--txtPrimaryColor)}.logo{position:relative;vertical-align:top;display:inline-flex;align-items:center;gap:10px;font-size:23px;text-decoration:none;color:inherit;user-select:none}.logo strong{font-weight:700}.logo .version{position:absolute;right:0;top:-5px;line-height:1;font-size:10px;font-weight:400;padding:2px 4px;border-radius:var(--baseRadius);background:var(--dangerAltColor);color:var(--txtPrimaryColor)}.logo.logo-sm{font-size:20px}.loader{--loaderSize: 32px;position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;row-gap:10px;margin:0;color:var(--txtDisabledColor);text-align:center;font-weight:400}.loader:before{content:"\eec4";display:inline-block;vertical-align:top;clear:both;width:var(--loaderSize);height:var(--loaderSize);line-height:var(--loaderSize);font-size:var(--loaderSize);font-weight:400;font-family:var(--iconFontFamily);color:inherit;text-align:center;animation:loaderShow var(--baseAnimationSpeed),rotate .9s var(--baseAnimationSpeed) infinite linear}.loader.loader-primary{color:var(--primaryColor)}.loader.loader-info{color:var(--infoColor)}.loader.loader-info-alt{color:var(--infoAltColor)}.loader.loader-success{color:var(--successColor)}.loader.loader-success-alt{color:var(--successAltColor)}.loader.loader-danger{color:var(--dangerColor)}.loader.loader-danger-alt{color:var(--dangerAltColor)}.loader.loader-warning{color:var(--warningColor)}.loader.loader-warning-alt{color:var(--warningAltColor)}.loader.loader-sm{--loaderSize: 24px}.loader.loader-lg{--loaderSize: 42px}.skeleton-loader{position:relative;height:12px;margin:5px 0;border-radius:var(--baseRadius);background:var(--baseAlt1Color);animation:fadeIn .4s}.skeleton-loader:before{content:"";width:100%;height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--baseAlt1Color) 8%,var(--bodyColor) 18%,var(--baseAlt1Color) 33%);background-size:200% 100%;animation:shine 1s linear infinite}.placeholder-section{display:flex;width:100%;align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:var(--smSpacing);color:var(--txtHintColor)}.placeholder-section .icon{font-size:50px;height:50px;line-height:1;opacity:.3}.placeholder-section .icon i{font-size:inherit;vertical-align:top}.list{position:relative;border:1px solid var(--baseAlt2Color);border-radius:var(--baseRadius)}.list .list-item{word-break:break-word;position:relative;display:flex;align-items:center;width:100%;gap:10px;padding:10px;border-bottom:1px solid var(--baseAlt2Color)}.list .list-item:last-child{border-bottom:0}.entrance-top{animation:entranceTop var(--entranceAnimationSpeed)}.entrance-bottom{animation:entranceBottom var(--entranceAnimationSpeed)}.entrance-left{animation:entranceLeft var(--entranceAnimationSpeed)}.entrance-right{animation:entranceRight var(--entranceAnimationSpeed)}.grid{--gridGap: var(--baseSpacing);position:relative;display:flex;flex-grow:1;flex-wrap:wrap;row-gap:var(--gridGap);margin:0 calc(-.5 * var(--gridGap))}.grid.grid-center{align-items:center}.grid.grid-sm{--gridGap: var(--smSpacing)}.grid .form-field{margin-bottom:0}.grid>*{margin:0 calc(.5 * var(--gridGap))}.col-xxl-1,.col-xxl-2,.col-xxl-3,.col-xxl-4,.col-xxl-5,.col-xxl-6,.col-xxl-7,.col-xxl-8,.col-xxl-9,.col-xxl-10,.col-xxl-11,.col-xxl-12,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{position:relative;width:100%;min-height:1px}.col-auto{flex:0 0 auto;width:auto}.col-12{width:calc(100% - var(--gridGap))}.col-11{width:calc(91.6666666667% - var(--gridGap))}.col-10{width:calc(83.3333333333% - var(--gridGap))}.col-9{width:calc(75% - var(--gridGap))}.col-8{width:calc(66.6666666667% - var(--gridGap))}.col-7{width:calc(58.3333333333% - var(--gridGap))}.col-6{width:calc(50% - var(--gridGap))}.col-5{width:calc(41.6666666667% - var(--gridGap))}.col-4{width:calc(33.3333333333% - var(--gridGap))}.col-3{width:calc(25% - var(--gridGap))}.col-2{width:calc(16.6666666667% - var(--gridGap))}.col-1{width:calc(8.3333333333% - var(--gridGap))}@media (min-width: 576px){.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-12{width:calc(100% - var(--gridGap))}.col-sm-11{width:calc(91.6666666667% - var(--gridGap))}.col-sm-10{width:calc(83.3333333333% - var(--gridGap))}.col-sm-9{width:calc(75% - var(--gridGap))}.col-sm-8{width:calc(66.6666666667% - var(--gridGap))}.col-sm-7{width:calc(58.3333333333% - var(--gridGap))}.col-sm-6{width:calc(50% - var(--gridGap))}.col-sm-5{width:calc(41.6666666667% - var(--gridGap))}.col-sm-4{width:calc(33.3333333333% - var(--gridGap))}.col-sm-3{width:calc(25% - var(--gridGap))}.col-sm-2{width:calc(16.6666666667% - var(--gridGap))}.col-sm-1{width:calc(8.3333333333% - var(--gridGap))}}@media (min-width: 768px){.col-md-auto{flex:0 0 auto;width:auto}.col-md-12{width:calc(100% - var(--gridGap))}.col-md-11{width:calc(91.6666666667% - var(--gridGap))}.col-md-10{width:calc(83.3333333333% - var(--gridGap))}.col-md-9{width:calc(75% - var(--gridGap))}.col-md-8{width:calc(66.6666666667% - var(--gridGap))}.col-md-7{width:calc(58.3333333333% - var(--gridGap))}.col-md-6{width:calc(50% - var(--gridGap))}.col-md-5{width:calc(41.6666666667% - var(--gridGap))}.col-md-4{width:calc(33.3333333333% - var(--gridGap))}.col-md-3{width:calc(25% - var(--gridGap))}.col-md-2{width:calc(16.6666666667% - var(--gridGap))}.col-md-1{width:calc(8.3333333333% - var(--gridGap))}}@media (min-width: 992px){.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-12{width:calc(100% - var(--gridGap))}.col-lg-11{width:calc(91.6666666667% - var(--gridGap))}.col-lg-10{width:calc(83.3333333333% - var(--gridGap))}.col-lg-9{width:calc(75% - var(--gridGap))}.col-lg-8{width:calc(66.6666666667% - var(--gridGap))}.col-lg-7{width:calc(58.3333333333% - var(--gridGap))}.col-lg-6{width:calc(50% - var(--gridGap))}.col-lg-5{width:calc(41.6666666667% - var(--gridGap))}.col-lg-4{width:calc(33.3333333333% - var(--gridGap))}.col-lg-3{width:calc(25% - var(--gridGap))}.col-lg-2{width:calc(16.6666666667% - var(--gridGap))}.col-lg-1{width:calc(8.3333333333% - var(--gridGap))}}@media (min-width: 1200px){.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-12{width:calc(100% - var(--gridGap))}.col-xl-11{width:calc(91.6666666667% - var(--gridGap))}.col-xl-10{width:calc(83.3333333333% - var(--gridGap))}.col-xl-9{width:calc(75% - var(--gridGap))}.col-xl-8{width:calc(66.6666666667% - var(--gridGap))}.col-xl-7{width:calc(58.3333333333% - var(--gridGap))}.col-xl-6{width:calc(50% - var(--gridGap))}.col-xl-5{width:calc(41.6666666667% - var(--gridGap))}.col-xl-4{width:calc(33.3333333333% - var(--gridGap))}.col-xl-3{width:calc(25% - var(--gridGap))}.col-xl-2{width:calc(16.6666666667% - var(--gridGap))}.col-xl-1{width:calc(8.3333333333% - var(--gridGap))}}@media (min-width: 1400px){.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-12{width:calc(100% - var(--gridGap))}.col-xxl-11{width:calc(91.6666666667% - var(--gridGap))}.col-xxl-10{width:calc(83.3333333333% - var(--gridGap))}.col-xxl-9{width:calc(75% - var(--gridGap))}.col-xxl-8{width:calc(66.6666666667% - var(--gridGap))}.col-xxl-7{width:calc(58.3333333333% - var(--gridGap))}.col-xxl-6{width:calc(50% - var(--gridGap))}.col-xxl-5{width:calc(41.6666666667% - var(--gridGap))}.col-xxl-4{width:calc(33.3333333333% - var(--gridGap))}.col-xxl-3{width:calc(25% - var(--gridGap))}.col-xxl-2{width:calc(16.6666666667% - var(--gridGap))}.col-xxl-1{width:calc(8.3333333333% - var(--gridGap))}}.app-tooltip{position:fixed;z-index:999999;top:0;left:0;display:inline-block;vertical-align:top;max-width:275px;padding:3px 5px;color:#fff;text-align:center;font-family:var(--baseFontFamily);font-size:var(--smFontSize);line-height:var(--smLineHeight);border-radius:var(--baseRadius);background:var(--tooltipColor);pointer-events:none;user-select:none;transition:opacity var(--baseAnimationSpeed),visibility var(--baseAnimationSpeed),transform var(--baseAnimationSpeed);transform:scale(.98);white-space:pre-line;opacity:0;visibility:hidden}.app-tooltip.code{font-family:monospace;white-space:pre-wrap;text-align:left;min-width:150px;max-width:340px}.app-tooltip.active{transform:scale(1);opacity:1;visibility:visible}.dropdown{position:absolute;z-index:99;right:0;left:auto;top:100%;cursor:default;display:inline-block;vertical-align:top;padding:5px;margin:5px 0 0;width:auto;min-width:140px;max-width:450px;max-height:330px;overflow-x:hidden;overflow-y:auto;background:var(--baseColor);border-radius:var(--baseRadius);border:1px solid var(--baseAlt2Color);box-shadow:0 2px 5px 0 var(--shadowColor)}.dropdown hr{margin:5px 0}.dropdown .dropdown-item{border:0;background:none;position:relative;outline:0;display:flex;align-items:center;column-gap:8px;width:100%;height:auto;min-height:0;text-align:left;padding:8px 10px;margin:0 0 5px;cursor:pointer;color:var(--txtPrimaryColor);font-weight:400;font-size:var(--baseFontSize);font-family:var(--baseFontFamily);line-height:var(--baseLineHeight);border-radius:var(--baseRadius);text-decoration:none;word-break:break-word;user-select:none;transition:background var(--baseAnimationSpeed),color var(--baseAnimationSpeed)}.dropdown .dropdown-item:last-child{margin-bottom:0}.dropdown .dropdown-item:focus,.dropdown .dropdown-item:hover{background:var(--baseAlt1Color)}.dropdown .dropdown-item.selected{background:var(--baseAlt2Color)}.dropdown .dropdown-item:active{transition-duration:var(--activeAnimationSpeed);background:var(--baseAlt2Color)}.dropdown .dropdown-item.disabled{color:var(--txtDisabledColor);background:none;pointer-events:none}.dropdown .dropdown-item.separator{cursor:default;background:none;text-transform:uppercase;padding-top:0;padding-bottom:0;margin-top:15px;color:var(--txtDisabledColor);font-weight:600;font-size:var(--smFontSize)}.dropdown.dropdown-upside{top:auto;bottom:100%;margin:0 0 5px}.dropdown.dropdown-left{right:auto;left:0}.dropdown.dropdown-center{right:auto;left:50%;transform:translate(-50%)}.dropdown.dropdown-sm{margin-top:5px;min-width:100px}.dropdown.dropdown-sm .dropdown-item{column-gap:7px;font-size:var(--smFontSize);margin:0 0 2px;padding:5px 7px}.dropdown.dropdown-sm .dropdown-item:last-child{margin-bottom:0}.dropdown.dropdown-sm.dropdown-upside{margin-top:0;margin-bottom:5px}.dropdown.dropdown-block{width:100%;min-width:130px;max-width:100%}.dropdown.dropdown-nowrap{white-space:nowrap}.overlay-panel{position:relative;z-index:1;display:flex;flex-direction:column;align-self:flex-end;margin-left:auto;background:var(--baseColor);height:100%;width:580px;max-width:100%;word-wrap:break-word;box-shadow:0 2px 5px 0 var(--shadowColor)}.overlay-panel .overlay-panel-section{position:relative;width:100%;margin:0;padding:var(--baseSpacing);transition:box-shadow var(--baseAnimationSpeed)}.overlay-panel .overlay-panel-section:empty{display:none}.overlay-panel .overlay-panel-section:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.overlay-panel .overlay-panel-section:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.overlay-panel .overlay-panel-section .btn{flex-grow:0}.overlay-panel img{max-width:100%}.overlay-panel .panel-header{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;row-gap:var(--baseSpacing);padding:calc(var(--baseSpacing) - 7px) var(--baseSpacing)}.overlay-panel .panel-header>*{margin-top:0;margin-bottom:0}.overlay-panel .panel-header .btn-back{margin-left:-10px}.overlay-panel .panel-header .overlay-close{z-index:3;outline:0;position:absolute;right:100%;top:20px;margin:0;display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;cursor:pointer;text-align:center;font-size:1.6rem;line-height:1;border-radius:50% 0 0 50%;color:#fff;background:var(--primaryColor);opacity:.5;transition:opacity var(--baseAnimationSpeed);user-select:none}.overlay-panel .panel-header .overlay-close i{font-size:inherit}.overlay-panel .panel-header .overlay-close:hover,.overlay-panel .panel-header .overlay-close:focus-visible,.overlay-panel .panel-header .overlay-close:active{opacity:.7}.overlay-panel .panel-header .overlay-close:active{transition-duration:var(--activeAnimationSpeed);opacity:1}.overlay-panel .panel-header .btn-close{margin-right:-10px}.overlay-panel .panel-header .tabs-header{margin-bottom:-24px}.overlay-panel .panel-content{z-index:auto;flex-grow:1;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;scroll-behavior:smooth}.overlay-panel .panel-header~.panel-content{padding-top:5px}.overlay-panel .panel-footer{z-index:2;column-gap:var(--smSpacing);display:flex;align-items:center;justify-content:flex-end;border-top:1px solid var(--baseAlt2Color);padding:calc(var(--baseSpacing) - 7px) var(--baseSpacing)}.overlay-panel.scrollable .panel-header{box-shadow:0 4px 5px #0000000d}.overlay-panel.scrollable .panel-footer{box-shadow:0 -4px 5px #0000000d}.overlay-panel.scrollable.scroll-top-reached .panel-header,.overlay-panel.scrollable.scroll-bottom-reached .panel-footer{box-shadow:none}.overlay-panel.overlay-panel-xl{width:850px}.overlay-panel.overlay-panel-lg{width:700px}.overlay-panel.overlay-panel-sm{width:460px}.overlay-panel.popup{height:auto;max-height:100%;align-self:center;border-radius:var(--baseRadius);margin:0 auto}.overlay-panel.popup .panel-footer{background:var(--bodyColor)}.overlay-panel.hide-content .panel-content{display:none}.overlay-panel.colored-header .panel-header{background:var(--bodyColor);border-bottom:1px solid var(--baseAlt1Color)}.overlay-panel.colored-header .panel-header .tabs-header{border-bottom:0}.overlay-panel.colored-header .panel-header .tabs-header .tab-item{border:1px solid transparent;border-bottom:0}.overlay-panel.colored-header .panel-header .tabs-header .tab-item:hover,.overlay-panel.colored-header .panel-header .tabs-header .tab-item:focus-visible{background:var(--baseAlt1Color)}.overlay-panel.colored-header .panel-header .tabs-header .tab-item:after{content:none;display:none}.overlay-panel.colored-header .panel-header .tabs-header .tab-item.active{background:var(--baseColor);border-color:var(--baseAlt1Color)}.overlay-panel.colored-header .panel-header~.panel-content{padding-top:calc(var(--baseSpacing) - 5px)}.overlay-panel.compact-header .panel-header{row-gap:var(--smSpacing)}.overlay-panel.full-width-popup{width:100%}.overlay-panel.image-preview{width:auto;min-width:300px;min-height:250px;max-width:70%;max-height:90%}.overlay-panel.image-preview .panel-header{position:absolute;z-index:99;box-shadow:none}.overlay-panel.image-preview .panel-header .overlay-close{left:100%;right:auto;border-radius:0 50% 50% 0}.overlay-panel.image-preview .panel-header .overlay-close i{margin-right:5px}.overlay-panel.image-preview .panel-header,.overlay-panel.image-preview .panel-footer{padding:10px 15px}.overlay-panel.image-preview .panel-content{padding:0;text-align:center;display:flex;align-items:center;justify-content:center}.overlay-panel.image-preview img{max-width:100%;border-top-left-radius:var(--baseRadius);border-top-right-radius:var(--baseRadius)}@media (max-width: 900px){.overlay-panel .overlay-panel-section{padding:var(--smSpacing)}}.overlay-panel-container{display:flex;position:fixed;z-index:1000;flex-direction:row;align-items:center;top:0;left:0;width:100%;height:100%;overflow:hidden;margin:0;padding:0;outline:0}.overlay-panel-container .overlay{position:absolute;z-index:0;left:0;top:0;width:100%;height:100%;user-select:none;background:var(--overlayColor)}.overlay-panel-container.padded{padding:10px}.overlay-panel-wrapper{position:relative;z-index:1000;outline:0}.alert{position:relative;display:flex;column-gap:15px;align-items:center;width:100%;min-height:50px;max-width:100%;word-break:break-word;margin:0 0 var(--baseSpacing);border-radius:var(--baseRadius);padding:12px 15px;background:var(--baseAlt1Color);color:var(--txtAltColor)}.alert .content,.alert .form-field .help-block,.form-field .alert .help-block,.alert .panel,.alert .sub-panel,.alert .overlay-panel .panel-content,.overlay-panel .alert .panel-content{flex-grow:1}.alert .icon,.alert .close{display:inline-flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;text-align:center}.alert .icon{align-self:stretch;font-size:1.2em;padding-right:15px;font-weight:400;border-right:1px solid rgba(0,0,0,.05);color:var(--txtHintColor)}.alert .close{display:inline-flex;margin-right:-5px;width:30px;height:30px;outline:0;cursor:pointer;text-align:center;font-size:var(--smFontSize);line-height:30px;border-radius:30px;text-decoration:none;color:inherit;opacity:.5;transition:opacity var(--baseAnimationSpeed),background var(--baseAnimationSpeed)}.alert .close:hover,.alert .close:focus{opacity:1;background:rgba(255,255,255,.2)}.alert .close:active{opacity:1;background:rgba(255,255,255,.3);transition-duration:var(--activeAnimationSpeed)}.alert code,.alert hr{background:rgba(0,0,0,.1)}.alert.alert-info{background:var(--infoAltColor)}.alert.alert-info .icon{color:var(--infoColor)}.alert.alert-warning{background:var(--warningAltColor)}.alert.alert-warning .icon{color:var(--warningColor)}.alert.alert-success{background:var(--successAltColor)}.alert.alert-success .icon{color:var(--successColor)}.alert.alert-danger{background:var(--dangerAltColor)}.alert.alert-danger .icon{color:var(--dangerColor)}.toasts-wrapper{position:fixed;z-index:999999;bottom:0;left:0;right:0;padding:0 var(--smSpacing);width:auto;display:block;text-align:center;pointer-events:none}.toasts-wrapper .alert{text-align:left;pointer-events:auto;width:var(--smWrapperWidth);margin:var(--baseSpacing) auto;box-shadow:0 2px 5px 0 var(--shadowColor)}.app-sidebar~.app-body .toasts-wrapper{left:var(--appSidebarWidth)}.app-sidebar~.app-body .page-sidebar~.toasts-wrapper{left:calc(var(--appSidebarWidth) + var(--pageSidebarWidth))}button{outline:0;border:0;background:none;padding:0;text-align:left;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}.btn{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;outline:0;border:0;margin:0;flex-shrink:0;cursor:pointer;padding:5px 20px;column-gap:7px;user-select:none;min-width:var(--btnHeight);min-height:var(--btnHeight);text-align:center;text-decoration:none;line-height:1;font-weight:600;color:#fff;font-size:var(--baseFontSize);font-family:var(--baseFontFamily);border-radius:var(--btnRadius);background:none;transition:color var(--baseAnimationSpeed)}.btn i{font-size:1.1428em;vertical-align:middle;display:inline-block}.btn:before{content:"";border-radius:inherit;position:absolute;left:0;top:0;z-index:-1;width:100%;height:100%;pointer-events:none;user-select:none;backface-visibility:hidden;background:var(--primaryColor);transition:filter var(--baseAnimationSpeed),opacity var(--baseAnimationSpeed),transform var(--baseAnimationSpeed),background var(--baseAnimationSpeed)}.btn:hover:before,.btn:focus-visible:before{opacity:.9}.btn.active,.btn:active{z-index:999}.btn.active:before,.btn:active:before{opacity:.8;transition-duration:var(--activeAnimationSpeed)}.btn.btn-info:before{background:var(--infoColor)}.btn.btn-info:hover:before,.btn.btn-info:focus-visible:before{opacity:.8}.btn.btn-info:active:before{opacity:.7}.btn.btn-success:before{background:var(--successColor)}.btn.btn-success:hover:before,.btn.btn-success:focus-visible:before{opacity:.8}.btn.btn-success:active:before{opacity:.7}.btn.btn-danger:before{background:var(--dangerColor)}.btn.btn-danger:hover:before,.btn.btn-danger:focus-visible:before{opacity:.8}.btn.btn-danger:active:before{opacity:.7}.btn.btn-warning:before{background:var(--warningColor)}.btn.btn-warning:hover:before,.btn.btn-warning:focus-visible:before{opacity:.8}.btn.btn-warning:active:before{opacity:.7}.btn.btn-hint:before{background:var(--baseAlt4Color)}.btn.btn-hint:hover:before,.btn.btn-hint:focus-visible:before{opacity:.8}.btn.btn-hint:active:before{opacity:.7}.btn.btn-outline{border:2px solid currentColor;background:#fff}.btn.btn-secondary,.btn.btn-outline{box-shadow:none;color:var(--txtPrimaryColor)}.btn.btn-secondary:before,.btn.btn-outline:before{opacity:0;background:var(--baseAlt4Color)}.btn.btn-secondary:focus-visible:before,.btn.btn-secondary:hover:before,.btn.btn-secondary:active:before,.btn.btn-secondary.active:before,.btn.btn-outline:focus-visible:before,.btn.btn-outline:hover:before,.btn.btn-outline:active:before,.btn.btn-outline.active:before{opacity:.11}.btn.btn-secondary.active:before,.btn.btn-secondary:active:before,.btn.btn-outline.active:before,.btn.btn-outline:active:before{opacity:.22}.btn.btn-secondary.btn-info,.btn.btn-outline.btn-info{color:var(--infoColor)}.btn.btn-secondary.btn-info:before,.btn.btn-outline.btn-info:before{background:var(--infoColor)}.btn.btn-secondary.btn-success,.btn.btn-outline.btn-success{color:var(--successColor)}.btn.btn-secondary.btn-success:before,.btn.btn-outline.btn-success:before{background:var(--successColor)}.btn.btn-secondary.btn-danger,.btn.btn-outline.btn-danger{color:var(--dangerColor)}.btn.btn-secondary.btn-danger:before,.btn.btn-outline.btn-danger:before{background:var(--dangerColor)}.btn.btn-secondary.btn-warning,.btn.btn-outline.btn-warning{color:var(--warningColor)}.btn.btn-secondary.btn-warning:before,.btn.btn-outline.btn-warning:before{background:var(--warningColor)}.btn.btn-secondary.btn-hint,.btn.btn-outline.btn-hint{color:var(--baseAlt4Color)}.btn.btn-secondary.btn-hint:before,.btn.btn-outline.btn-hint:before{background:var(--baseAlt4Color)}.btn.btn-secondary.btn-hint,.btn.btn-outline.btn-hint{color:var(--txtHintColor)}.btn.btn-disabled,.btn[disabled]{box-shadow:none;cursor:default;background:var(--baseAlt2Color);color:var(--txtDisabledColor)!important}.btn.btn-disabled:before,.btn[disabled]:before{display:none}.btn.btn-disabled.btn-secondary,.btn[disabled].btn-secondary{background:none}.btn.btn-disabled.btn-outline,.btn[disabled].btn-outline{border-color:var(--baseAlt2Color)}.btn.btn-expanded{min-width:140px}.btn.btn-expanded-sm{min-width:90px}.btn.btn-expanded-lg{min-width:170px}.btn.btn-lg{column-gap:10px;font-size:var(--lgFontSize);min-height:var(--lgBtnHeight);min-width:var(--lgBtnHeight);padding-left:30px;padding-right:30px}.btn.btn-lg i{font-size:1.2666em}.btn.btn-lg.btn-expanded{min-width:240px}.btn.btn-lg.btn-expanded-sm{min-width:160px}.btn.btn-lg.btn-expanded-lg{min-width:300px}.btn.btn-sm,.btn.btn-xs{column-gap:5px;font-size:var(--smFontSize);min-height:var(--smBtnHeight);min-width:var(--smBtnHeight);padding-left:12px;padding-right:12px}.btn.btn-sm i,.btn.btn-xs i{font-size:1rem}.btn.btn-sm.btn-expanded,.btn.btn-xs.btn-expanded{min-width:100px}.btn.btn-sm.btn-expanded-sm,.btn.btn-xs.btn-expanded-sm{min-width:80px}.btn.btn-sm.btn-expanded-lg,.btn.btn-xs.btn-expanded-lg{min-width:130px}.btn.btn-xs{min-width:var(--xsBtnHeight);min-height:var(--xsBtnHeight)}.btn.btn-block{display:flex;width:100%}.btn.btn-circle{border-radius:50%;padding:0;gap:0}.btn.btn-circle i{font-size:1.2857rem;text-align:center;width:24px;height:24px;line-height:24px}.btn.btn-circle i:before{margin:0;display:block}.btn.btn-circle.btn-sm i,.btn.btn-circle.btn-xs i{font-size:1.1rem}.btn.btn-loading{--loaderSize: 24px;cursor:default;pointer-events:none}.btn.btn-loading:after{content:"\eec4";position:absolute;display:inline-block;vertical-align:top;left:50%;top:50%;width:var(--loaderSize);height:var(--loaderSize);line-height:var(--loaderSize);font-size:var(--loaderSize);color:inherit;text-align:center;font-weight:400;margin-left:calc(var(--loaderSize) * -.5);margin-top:calc(var(--loaderSize) * -.5);font-family:var(--iconFontFamily);animation:loaderShow var(--baseAnimationSpeed),rotate .9s var(--baseAnimationSpeed) infinite linear}.btn.btn-loading>*{opacity:0;transform:scale(.9)}.btn.btn-loading.btn-sm,.btn.btn-loading.btn-xs{--loaderSize: 20px}.btn.btn-loading.btn-lg{--loaderSize: 28px}.btn.btn-prev i,.btn.btn-next i{transition:transform var(--baseAnimationSpeed)}.btn.btn-prev:hover i,.btn.btn-prev:focus-within i,.btn.btn-next:hover i,.btn.btn-next:focus-within i{transform:translate(3px)}.btn.btn-prev:hover i,.btn.btn-prev:focus-within i{transform:translate(-3px)}.btns-group{display:inline-flex;align-items:center;gap:var(--xsSpacing)}.code-editor,.select .selected-container,input,select,textarea{display:block;width:100%;outline:0;border:0;margin:0;background:none;padding:5px 10px;line-height:20px;min-width:0;min-height:var(--inputHeight);background:var(--baseAlt1Color);color:var(--txtPrimaryColor);font-size:var(--baseFontSize);font-family:var(--baseFontFamily);font-weight:400;border-radius:var(--baseRadius);overflow:auto;overflow:overlay}.code-editor::placeholder,.select .selected-container::placeholder,input::placeholder,select::placeholder,textarea::placeholder{color:var(--txtDisabledColor)}@media screen and (min-width: 550px){.code-editor:focus,.select .selected-container:focus,input:focus,select:focus,textarea:focus,.code-editor:focus-within,.select .selected-container:focus-within,input:focus-within,select:focus-within,textarea:focus-within{scrollbar-color:var(--baseAlt3Color) transparent;scrollbar-width:thin;scroll-behavior:smooth}.code-editor:focus::-webkit-scrollbar,.select .selected-container:focus::-webkit-scrollbar,input:focus::-webkit-scrollbar,select:focus::-webkit-scrollbar,textarea:focus::-webkit-scrollbar,.code-editor:focus-within::-webkit-scrollbar,.select .selected-container:focus-within::-webkit-scrollbar,input:focus-within::-webkit-scrollbar,select:focus-within::-webkit-scrollbar,textarea:focus-within::-webkit-scrollbar{width:8px;height:8px;border-radius:var(--baseRadius)}.code-editor:focus::-webkit-scrollbar-track,.select .selected-container:focus::-webkit-scrollbar-track,input:focus::-webkit-scrollbar-track,select:focus::-webkit-scrollbar-track,textarea:focus::-webkit-scrollbar-track,.code-editor:focus-within::-webkit-scrollbar-track,.select .selected-container:focus-within::-webkit-scrollbar-track,input:focus-within::-webkit-scrollbar-track,select:focus-within::-webkit-scrollbar-track,textarea:focus-within::-webkit-scrollbar-track{background:transparent;border-radius:var(--baseRadius)}.code-editor:focus::-webkit-scrollbar-thumb,.select .selected-container:focus::-webkit-scrollbar-thumb,input:focus::-webkit-scrollbar-thumb,select:focus::-webkit-scrollbar-thumb,textarea:focus::-webkit-scrollbar-thumb,.code-editor:focus-within::-webkit-scrollbar-thumb,.select .selected-container:focus-within::-webkit-scrollbar-thumb,input:focus-within::-webkit-scrollbar-thumb,select:focus-within::-webkit-scrollbar-thumb,textarea:focus-within::-webkit-scrollbar-thumb{background-color:var(--baseAlt3Color);border-radius:15px;border:2px solid transparent;background-clip:padding-box}.code-editor:focus::-webkit-scrollbar-thumb:hover,.select .selected-container:focus::-webkit-scrollbar-thumb:hover,input:focus::-webkit-scrollbar-thumb:hover,select:focus::-webkit-scrollbar-thumb:hover,textarea:focus::-webkit-scrollbar-thumb:hover,.code-editor:focus::-webkit-scrollbar-thumb:active,.select .selected-container:focus::-webkit-scrollbar-thumb:active,input:focus::-webkit-scrollbar-thumb:active,select:focus::-webkit-scrollbar-thumb:active,textarea:focus::-webkit-scrollbar-thumb:active,.code-editor:focus-within::-webkit-scrollbar-thumb:hover,.select .selected-container:focus-within::-webkit-scrollbar-thumb:hover,input:focus-within::-webkit-scrollbar-thumb:hover,select:focus-within::-webkit-scrollbar-thumb:hover,textarea:focus-within::-webkit-scrollbar-thumb:hover,.code-editor:focus-within::-webkit-scrollbar-thumb:active,.select .selected-container:focus-within::-webkit-scrollbar-thumb:active,input:focus-within::-webkit-scrollbar-thumb:active,select:focus-within::-webkit-scrollbar-thumb:active,textarea:focus-within::-webkit-scrollbar-thumb:active{background-color:var(--baseAlt4Color)}}.code-editor:focus,.select .selected-container:focus,input:focus,select:focus,textarea:focus,.active.code-editor,.select .active.selected-container,input.active,select.active,textarea.active{border-color:var(--primaryColor)}[readonly].code-editor,.select [readonly].selected-container,input[readonly],select[readonly],textarea[readonly],.readonly.code-editor,.select .readonly.selected-container,input.readonly,select.readonly,textarea.readonly{cursor:default;color:var(--txtHintColor)}[disabled].code-editor,.select [disabled].selected-container,input[disabled],select[disabled],textarea[disabled],.disabled.code-editor,.select .disabled.selected-container,input.disabled,select.disabled,textarea.disabled{cursor:default;color:var(--txtDisabledColor);border-color:var(--baseAlt2Color)}.txt-mono.code-editor,.select .txt-mono.selected-container,input.txt-mono,select.txt-mono,textarea.txt-mono{line-height:var(--smLineHeight)}.code.code-editor,.select .code.selected-container,input.code,select.code,textarea.code{font-size:15px;line-height:1.379rem;font-family:var(--monospaceFontFamily)}input{height:var(--inputHeight)}input:-webkit-autofill{-webkit-text-fill-color:var(--txtPrimaryColor);-webkit-box-shadow:inset 0 0 0 50px var(--baseAlt1Color)}.form-field:focus-within input:-webkit-autofill,input:-webkit-autofill:focus{-webkit-box-shadow:inset 0 0 0 50px var(--baseAlt2Color)}input[type=file]{padding:9px}input[type=checkbox],input[type=radio]{width:auto;height:auto;display:inline}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}textarea{min-height:80px;resize:vertical}select{padding-left:8px}.form-field{--hPadding: 15px;position:relative;display:block;width:100%;margin-bottom:var(--baseSpacing)}.form-field .code-editor,.form-field .select .selected-container,.select .form-field .selected-container,.form-field input,.form-field select,.form-field textarea{z-index:0;padding-left:var(--hPadding);padding-right:var(--hPadding)}.form-field select{padding-left:8px}.form-field label{display:flex;width:100%;column-gap:5px;align-items:center;user-select:none;font-weight:600;color:var(--txtHintColor);font-size:var(--xsFontSize);text-transform:uppercase;line-height:1;padding-top:12px;padding-bottom:2px;padding-left:var(--hPadding);padding-right:var(--hPadding);border:0;border-top-left-radius:var(--baseRadius);border-top-right-radius:var(--baseRadius)}.form-field label~.code-editor,.form-field .select label~.selected-container,.select .form-field label~.selected-container,.form-field label~input,.form-field label~select,.form-field label~textarea{border-top:0;padding-top:2px;padding-bottom:8px;border-top-left-radius:0;border-top-right-radius:0}.form-field label i{font-size:.96rem;line-height:1;margin-top:-2px;margin-bottom:-2px}.form-field .code-editor,.form-field .select .selected-container,.select .form-field .selected-container,.form-field input,.form-field select,.form-field textarea,.form-field label{background:var(--baseAlt1Color);transition:color var(--baseAnimationSpeed),background var(--baseAnimationSpeed),box-shadow var(--baseAnimationSpeed)}.form-field:focus-within .code-editor,.form-field:focus-within .select .selected-container,.select .form-field:focus-within .selected-container,.form-field:focus-within input,.form-field:focus-within select,.form-field:focus-within textarea,.form-field:focus-within label{background:var(--baseAlt2Color)}.form-field:focus-within label{color:var(--txtPrimaryColor)}.form-field .form-field-addon{position:absolute;display:inline-flex;align-items:center;z-index:1;top:0px;right:var(--hPadding);min-height:var(--inputHeight);color:var(--txtHintColor)}.form-field .form-field-addon .btn{margin-right:-5px}.form-field .form-field-addon~.code-editor,.form-field .select .form-field-addon~.selected-container,.select .form-field .form-field-addon~.selected-container,.form-field .form-field-addon~input,.form-field .form-field-addon~select,.form-field .form-field-addon~textarea{padding-right:35px}.form-field label~.form-field-addon{min-height:calc(26px + var(--inputHeight))}.form-field .help-block{margin-top:8px;font-size:var(--smFontSize);line-height:var(--smLineHeight);color:var(--txtHintColor);word-break:break-word}.form-field .help-block pre{white-space:pre-wrap}.form-field .help-block-error{color:var(--dangerColor)}.form-field.error>label,.form-field.invalid>label{color:var(--dangerColor)}.form-field.invalid label,.form-field.invalid .code-editor,.form-field.invalid .select .selected-container,.select .form-field.invalid .selected-container,.form-field.invalid input,.form-field.invalid select,.form-field.invalid textarea{background:var(--dangerAltColor)}.form-field.required:not(.form-field-toggle)>label:after{content:"*";color:var(--dangerColor);margin-top:-2px;margin-left:-2px}.form-field.disabled>label{color:var(--txtDisabledColor)}.form-field.disabled label,.form-field.disabled .code-editor,.form-field.disabled .select .selected-container,.select .form-field.disabled .selected-container,.form-field.disabled input,.form-field.disabled select,.form-field.disabled textarea{border-color:var(--baseAlt2Color)}.form-field.disabled.required>label:after{opacity:.5}.form-field input[type=radio],.form-field input[type=checkbox]{position:absolute;z-index:-1;left:0;width:0;height:0;min-height:0;min-width:0;border:0;background:none;user-select:none;pointer-events:none;box-shadow:none;opacity:0}.form-field input[type=radio]~label,.form-field input[type=checkbox]~label{border:0;margin:0;outline:0;background:none;display:inline-flex;vertical-align:top;align-items:center;width:auto;column-gap:5px;user-select:none;padding:0 0 0 27px;line-height:20px;min-height:20px;font-weight:400;font-size:var(--baseFontSize);text-transform:none;color:var(--txtPrimaryColor)}.form-field input[type=radio]~label:before,.form-field input[type=checkbox]~label:before{content:"";display:inline-block;vertical-align:top;position:absolute;z-index:0;left:0;top:0;width:20px;height:20px;line-height:16px;font-family:var(--iconFontFamily);font-size:1.2rem;text-align:center;color:var(--baseColor);cursor:pointer;background:var(--baseColor);border-radius:var(--baseRadius);border:2px solid var(--baseAlt3Color);transition:transform var(--baseAnimationSpeed),border-color var(--baseAnimationSpeed),color var(--baseAnimationSpeed),background var(--baseAnimationSpeed)}.form-field input[type=radio]~label:active:before,.form-field input[type=checkbox]~label:active:before{transform:scale(.9)}.form-field input[type=radio]:focus~label:before,.form-field input[type=radio]~label:hover:before,.form-field input[type=checkbox]:focus~label:before,.form-field input[type=checkbox]~label:hover:before{border-color:var(--baseAlt4Color)}.form-field input[type=radio]:checked~label:before,.form-field input[type=checkbox]:checked~label:before{content:"\eb7a";box-shadow:none;mix-blend-mode:unset;background:var(--successColor);border-color:var(--successColor)}.form-field input[type=radio]:disabled~label,.form-field input[type=checkbox]:disabled~label{pointer-events:none;cursor:not-allowed;color:var(--txtDisabledColor)}.form-field input[type=radio]:disabled~label:before,.form-field input[type=checkbox]:disabled~label:before{opacity:.5}.form-field input[type=radio]~label:before{border-radius:50%;font-size:1rem}.form-field .form-field-block{position:relative;margin:0 0 var(--xsSpacing)}.form-field .form-field-block:last-child{margin-bottom:0}.form-field.form-field-toggle input[type=radio]~label,.form-field.form-field-toggle input[type=checkbox]~label{position:relative}.form-field.form-field-toggle input[type=radio]~label:before,.form-field.form-field-toggle input[type=checkbox]~label:before{content:"";border:0;box-shadow:none;background:var(--baseAlt3Color);transition:background var(--activeAnimationSpeed)}.form-field.form-field-toggle input[type=radio]~label:after,.form-field.form-field-toggle input[type=checkbox]~label:after{content:"";position:absolute;z-index:1;cursor:pointer;background:var(--baseColor);transition:left var(--activeAnimationSpeed),transform var(--activeAnimationSpeed),background var(--activeAnimationSpeed);box-shadow:0 2px 5px 0 var(--shadowColor)}.form-field.form-field-toggle input[type=radio]~label:active:before,.form-field.form-field-toggle input[type=checkbox]~label:active:before{transform:none}.form-field.form-field-toggle input[type=radio]~label:active:after,.form-field.form-field-toggle input[type=checkbox]~label:active:after{transform:scale(.9)}.form-field.form-field-toggle input[type=radio]:focus-visible~label:before,.form-field.form-field-toggle input[type=checkbox]:focus-visible~label:before{box-shadow:0 0 0 2px var(--baseAlt2Color)}.form-field.form-field-toggle input[type=radio]~label:hover:before,.form-field.form-field-toggle input[type=checkbox]~label:hover:before{background:var(--baseAlt4Color)}.form-field.form-field-toggle input[type=radio]:checked~label:before,.form-field.form-field-toggle input[type=checkbox]:checked~label:before{background:var(--successColor)}.form-field.form-field-toggle input[type=radio]:checked~label:after,.form-field.form-field-toggle input[type=checkbox]:checked~label:after{background:var(--baseColor)}.form-field.form-field-toggle input[type=radio]~label,.form-field.form-field-toggle input[type=checkbox]~label{min-height:24px;padding-left:47px}.form-field.form-field-toggle input[type=radio]~label:empty,.form-field.form-field-toggle input[type=checkbox]~label:empty{padding-left:40px}.form-field.form-field-toggle input[type=radio]~label:before,.form-field.form-field-toggle input[type=checkbox]~label:before{width:40px;height:24px;border-radius:24px}.form-field.form-field-toggle input[type=radio]~label:after,.form-field.form-field-toggle input[type=checkbox]~label:after{top:4px;left:4px;width:16px;height:16px;border-radius:16px}.form-field.form-field-toggle input[type=radio]:checked~label:after,.form-field.form-field-toggle input[type=checkbox]:checked~label:after{left:20px}.form-field.form-field-toggle.form-field-sm input[type=radio]~label,.form-field.form-field-toggle.form-field-sm input[type=checkbox]~label{min-height:20px;padding-left:39px}.form-field.form-field-toggle.form-field-sm input[type=radio]~label:empty,.form-field.form-field-toggle.form-field-sm input[type=checkbox]~label:empty{padding-left:32px}.form-field.form-field-toggle.form-field-sm input[type=radio]~label:before,.form-field.form-field-toggle.form-field-sm input[type=checkbox]~label:before{width:32px;height:20px;border-radius:20px}.form-field.form-field-toggle.form-field-sm input[type=radio]~label:after,.form-field.form-field-toggle.form-field-sm input[type=checkbox]~label:after{top:4px;left:4px;width:12px;height:12px;border-radius:12px}.form-field.form-field-toggle.form-field-sm input[type=radio]:checked~label:after,.form-field.form-field-toggle.form-field-sm input[type=checkbox]:checked~label:after{left:16px}.form-field-group{display:flex;width:100%;align-items:center}.form-field-group>.form-field{flex-grow:1;border-left:1px solid var(--baseAlt2Color)}.form-field-group>.form-field:first-child{border-left:0}.form-field-group>.form-field:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.form-field-group>.form-field:not(:first-child)>label{border-top-left-radius:0}.form-field-group>.form-field:not(:first-child)>.code-editor,.select .form-field-group>.form-field:not(:first-child)>.selected-container,.form-field-group>.form-field:not(:first-child)>input,.form-field-group>.form-field:not(:first-child)>select,.form-field-group>.form-field:not(:first-child)>textarea,.form-field-group>.form-field:not(:first-child)>.select .selected-container{border-bottom-left-radius:0}.form-field-group>.form-field:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.form-field-group>.form-field:not(:last-child)>label{border-top-right-radius:0}.form-field-group>.form-field:not(:last-child)>.code-editor,.select .form-field-group>.form-field:not(:last-child)>.selected-container,.form-field-group>.form-field:not(:last-child)>input,.form-field-group>.form-field:not(:last-child)>select,.form-field-group>.form-field:not(:last-child)>textarea,.form-field-group>.form-field:not(:last-child)>.select .selected-container{border-bottom-right-radius:0}.form-field-group .form-field.col-12{width:100%}.form-field-group .form-field.col-11{width:91.6666666667%}.form-field-group .form-field.col-10{width:83.3333333333%}.form-field-group .form-field.col-9{width:75%}.form-field-group .form-field.col-8{width:66.6666666667%}.form-field-group .form-field.col-7{width:58.3333333333%}.form-field-group .form-field.col-6{width:50%}.form-field-group .form-field.col-5{width:41.6666666667%}.form-field-group .form-field.col-4{width:33.3333333333%}.form-field-group .form-field.col-3{width:25%}.form-field-group .form-field.col-2{width:16.6666666667%}.form-field-group .form-field.col-1{width:8.3333333333%}.select{position:relative;display:block;outline:0}.select .option{user-select:none;column-gap:8px}.select .option .icon{min-width:20px;text-align:center;line-height:inherit}.select .option .icon i{vertical-align:middle;line-height:inherit}.select .txt-placeholder{color:var(--txtHintColor)}label~.select .selected-container{border-top:0}.select .selected-container{position:relative;display:flex;flex-wrap:wrap;width:100%;align-items:center;padding-top:0;padding-bottom:0;padding-right:35px!important;user-select:none}.select .selected-container:after{content:"\ea4d";position:absolute;right:5px;top:50%;width:20px;height:20px;line-height:20px;text-align:center;margin-top:-10px;display:inline-block;vertical-align:top;font-size:1rem;font-family:var(--iconFontFamily);align-self:flex-end;color:var(--txtHintColor);transition:color var(--baseAnimationSpeed),transform var(--baseAnimationSpeed)}.select .selected-container:active,.select .selected-container.active{border-bottom-left-radius:0;border-bottom-right-radius:0}.select .selected-container:active:after,.select .selected-container.active:after{color:var(--txtPrimaryColor);transform:rotate(180deg)}.select .selected-container .option{display:flex;width:100%;align-items:center;max-width:100%;user-select:text}.select .selected-container .clear{margin-left:auto;cursor:pointer;color:var(--txtHintColor);transition:color var(--baseAnimationSpeed)}.select .selected-container .clear i{display:inline-block;vertical-align:middle;line-height:1}.select .selected-container .clear:hover{color:var(--txtPrimaryColor)}.select.multiple .selected-container{display:flex;align-items:center;padding-left:2px;row-gap:3px;column-gap:4px}.select.multiple .selected-container .txt-placeholder{margin-left:5px}.select.multiple .selected-container .option{display:inline-flex;width:auto;padding:3px 5px;line-height:1;border-radius:var(--baseRadius);background:var(--baseColor)}.select:not(.multiple) .selected-container .label{margin-left:-2px}.select:not(.multiple) .selected-container .option .txt{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%;line-height:normal}.select:not(.multiple) .selected-container:hover{cursor:pointer}.select.disabled{color:var(--txtDisabledColor);pointer-events:none}.select.disabled .txt-placeholder,.select.disabled .selected-container{color:inherit}.select.disabled .selected-container .link-hint{pointer-events:auto}.select.disabled .selected-container *:not(.link-hint){color:inherit!important}.select.disabled .selected-container:after,.select.disabled .selected-container .clear{display:none}.select.disabled .selected-container:hover{cursor:inherit}.select .txt-missing{color:var(--txtHintColor);padding:5px 12px;margin:0}.select .options-dropdown{max-height:none;border:0;overflow:auto;border-top-left-radius:0;border-top-right-radius:0;margin-top:-2px;box-shadow:0 2px 5px 0 var(--shadowColor),inset 0 0 0 2px var(--baseAlt2Color)}.select .options-dropdown .input-group:focus-within{box-shadow:none}.select .options-dropdown .form-field.options-search{margin:0 0 5px;padding:0 0 2px;color:var(--txtHintColor);border-bottom:1px solid var(--baseAlt2Color)}.select .options-dropdown .form-field.options-search .input-group{border-radius:0;padding:0 0 0 10px;margin:0;background:none;column-gap:0;border:0}.select .options-dropdown .form-field.options-search input{border:0;padding-left:9px;padding-right:9px;background:none}.select .options-dropdown .options-list{overflow:auto;max-height:270px;width:auto;margin-left:0;margin-right:-5px;padding-right:5px}.select .options-list:not(:empty)~[slot=afterOptions]:not(:empty){margin:5px -5px -5px}.select .options-list:not(:empty)~[slot=afterOptions]:not(:empty) .btn-block{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--baseRadius);border-bottom-right-radius:var(--baseRadius)}label~.select .selected-container{padding-bottom:4px;border-top-left-radius:0;border-top-right-radius:0}label~.select.multiple .selected-container{padding-top:3px;padding-bottom:3px;padding-left:10px}.select.block-options.multiple .selected-container .option{width:100%;box-shadow:0 2px 5px 0 var(--shadowColor)}.field-type-select .options-dropdown{padding:2px}.field-type-select .options-dropdown .form-field.options-search{margin:0}.field-type-select .options-dropdown .options-list{max-height:490px;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;margin:0;padding:0}.field-type-select .options-dropdown .dropdown-item{width:50%;flex-grow:1;margin:0;padding-left:12px;border-radius:0;border-bottom:1px solid var(--baseAlt2Color)}.field-type-select .options-dropdown .dropdown-item:nth-child(2n){border-left:1px solid var(--baseAlt2Color)}.field-type-select .options-dropdown .dropdown-item:nth-last-child(-n+2){border-bottom:0}.field-type-select .options-dropdown .dropdown-item.selected{background:var(--baseAlt1Color)}.form-field-file label{border-bottom:0}.form-field-file .filename{align-items:center;max-width:100%;min-width:0;margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.form-field-file .filename i{text-decoration:none}.form-field-file .files-list{padding-top:5px;background:var(--baseAlt1Color);border:0;border-bottom-left-radius:var(--baseRadius);border-bottom-right-radius:var(--baseRadius);transition:background var(--baseAnimationSpeed)}.form-field-file .files-list .list-item{display:flex;width:100%;align-items:center;row-gap:10px;column-gap:var(--xsSpacing);padding:10px 15px;min-height:44px;border-top:1px solid var(--baseAlt2Color)}.form-field-file .files-list .list-item:last-child{border-radius:inherit;border-bottom:0}.form-field-file .files-list .btn-list-item{padding:5px}.form-field-file:focus-within .files-list,.form-field-file:focus-within label{background:var(--baseAlt1Color)}.form-field label~.code-editor{padding-bottom:6px;padding-top:4px}.code-editor .cm-editor{border:0!important;outline:none!important}.code-editor .cm-editor .cm-line{padding-left:0;padding-right:0}.code-editor .cm-editor .cm-tooltip-autocomplete{box-shadow:0 2px 5px 0 var(--shadowColor);border-radius:var(--baseRadius);background:var(--baseColor);border:0;z-index:9999;padding:0 3px;font-size:.92rem}.code-editor .cm-editor .cm-tooltip-autocomplete ul{margin:0;border-radius:inherit}.code-editor .cm-editor .cm-tooltip-autocomplete ul>:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.code-editor .cm-editor .cm-tooltip-autocomplete ul>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.code-editor .cm-editor .cm-tooltip-autocomplete ul li[aria-selected]{background:var(--infoColor)}.code-editor .cm-editor .cm-scroller{outline:0!important;font-family:var(--monospaceFontFamily);font-size:var(--baseFontSize);line-height:var(--baseLineHeight)}.code-editor .cm-editor .cm-cursorLayer .cm-cursor{margin-left:0!important}.code-editor .cm-editor .cm-placeholder{color:var(--txtDisabledColor);font-family:var(--monospaceFontFamily);font-size:var(--baseFontSize);line-height:var(--baseLineHeight)}.code-editor .cm-editor .cm-selectionMatch{background:var(--infoAltColor)}.code-editor .cm-editor.cm-focused .cm-matchingBracket{background-color:#328c821a}.main-menu{--menuItemSize: 45px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;row-gap:var(--smSpacing);font-size:var(--xlFontSize);color:var(--txtPrimaryColor)}.main-menu i{font-size:24px;line-height:1}.main-menu .menu-item{position:relative;outline:0;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;text-align:center;justify-content:center;user-select:none;color:inherit;min-width:var(--menuItemSize);min-height:var(--menuItemSize);border:2px solid transparent;border-radius:var(--lgRadius);transition:background var(--baseAnimationSpeed),border var(--baseAnimationSpeed)}.main-menu .menu-item:focus-visible,.main-menu .menu-item:hover{background:var(--baseAlt1Color)}.main-menu .menu-item:active{background:var(--baseAlt2Color);transition-duration:var(--activeAnimationSpeed)}.main-menu .menu-item.active,.main-menu .menu-item.current-route{background:var(--baseColor);border-color:var(--primaryColor)}.app-sidebar{position:relative;z-index:1;display:flex;flex-grow:0;flex-shrink:0;flex-direction:column;align-items:center;width:var(--appSidebarWidth);padding:var(--smSpacing) 0px var(--smSpacing);background:var(--baseColor);border-right:1px solid var(--baseAlt2Color)}.app-sidebar .main-menu{flex-grow:1;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;margin-top:34px;margin-bottom:var(--baseSpacing)}.app-layout{display:flex;width:100%;height:100vh}.app-layout .app-body{flex-grow:1;min-width:0;height:100%;display:flex;align-items:stretch}.app-layout .app-sidebar~.app-body{min-width:650px}.page-sidebar{--sidebarListItemMargin: 10px;z-index:0;display:flex;flex-direction:column;width:var(--pageSidebarWidth);flex-shrink:0;flex-grow:0;overflow-x:hidden;overflow-y:auto;background:var(--baseColor);padding:calc(var(--baseSpacing) - 5px) 0 var(--smSpacing);border-right:1px solid var(--baseAlt2Color)}.page-sidebar>*{padding:0 var(--smSpacing)}.page-sidebar .sidebar-content{overflow-x:hidden;overflow-y:auto;overflow-y:overlay}.page-sidebar .sidebar-content>:first-child{margin-top:0}.page-sidebar .sidebar-content>:last-child{margin-bottom:0}.page-sidebar .sidebar-footer{margin-top:var(--smSpacing)}.page-sidebar .search{display:flex;align-items:center;width:auto;column-gap:5px;margin:0 0 var(--xsSpacing);color:var(--txtHintColor);opacity:.7;transition:opacity var(--baseAnimationSpeed),color var(--baseAnimationSpeed)}.page-sidebar .search input{border:0;background:var(--baseColor);transition:box-shadow var(--baseAnimationSpeed),background var(--baseAnimationSpeed)}.page-sidebar .search .btn-clear{margin-right:-8px}.page-sidebar .search:hover,.page-sidebar .search:focus-within,.page-sidebar .search.active{opacity:1;color:var(--txtPrimaryColor)}.page-sidebar .search:hover input,.page-sidebar .search:focus-within input,.page-sidebar .search.active input{background:var(--baseAlt2Color)}.page-sidebar .sidebar-title{display:flex;align-items:center;gap:5px;width:100%;margin:var(--baseSpacing) 0 var(--xsSpacing);font-weight:600;font-size:1rem;line-height:var(--smLineHeight);color:var(--txtHintColor)}.page-sidebar .sidebar-title .label{font-weight:400}.page-sidebar .sidebar-list-item{cursor:pointer;outline:0;text-decoration:none;position:relative;display:flex;width:100%;align-items:center;column-gap:10px;margin:var(--sidebarListItemMargin) 0;padding:3px 10px;font-size:var(--xlFontSize);min-height:var(--btnHeight);min-width:0;color:var(--txtHintColor);border-radius:var(--baseRadius);user-select:none;transition:background var(--baseAnimationSpeed),color var(--baseAnimationSpeed)}.page-sidebar .sidebar-list-item i{font-size:18px}.page-sidebar .sidebar-list-item .txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-sidebar .sidebar-list-item:focus-visible,.page-sidebar .sidebar-list-item:hover,.page-sidebar .sidebar-list-item:active,.page-sidebar .sidebar-list-item.active{color:var(--txtPrimaryColor);background:var(--baseAlt1Color)}.page-sidebar .sidebar-list-item:active{background:var(--baseAlt2Color);transition-duration:var(--activeAnimationSpeed)}.page-sidebar .sidebar-content-compact .sidebar-list-item{--sidebarListItemMargin: 5px}@media screen and (max-height: 600px){.page-sidebar{--sidebarListItemMargin: 5px}}@media screen and (max-width: 1100px){.page-sidebar{--pageSidebarWidth: 190px}.page-sidebar>*{padding-left:10px;padding-right:10px}}.page-header{display:flex;align-items:center;width:100%;min-height:var(--btnHeight);gap:var(--xsSpacing);margin:0 0 var(--baseSpacing)}.page-header .btns-group{margin-left:auto;justify-content:end}@media screen and (max-width: 1050px){.page-header{flex-wrap:wrap}.page-header .btns-group{width:100%}.page-header .btns-group .btn{flex-grow:1;flex-basis:0}}.page-header-wrapper{background:var(--baseColor);width:auto;margin-top:calc(-1 * (var(--baseSpacing) - 5px));margin-left:calc(-1 * var(--baseSpacing));margin-right:calc(-1 * var(--baseSpacing));margin-bottom:var(--baseSpacing);padding:calc(var(--baseSpacing) - 5px) var(--baseSpacing);border-bottom:1px solid var(--baseAlt2Color)}.breadcrumbs{display:flex;align-items:center;gap:30px;color:var(--txtDisabledColor)}.breadcrumbs .breadcrumb-item{position:relative;margin:0;line-height:1;font-weight:400}.breadcrumbs .breadcrumb-item:after{content:"/";position:absolute;right:-20px;top:0;width:10px;text-align:center;pointer-events:none;opacity:.4}.breadcrumbs .breadcrumb-item:last-child{word-break:break-word;color:var(--txtPrimaryColor)}.breadcrumbs .breadcrumb-item:last-child:after{content:none;display:none}.breadcrumbs a{text-decoration:none;color:inherit;transition:color var(--baseAnimationSpeed)}.breadcrumbs a:hover{color:var(--txtPrimaryColor)}.page-content{position:relative;display:block;width:100%;flex-grow:1;padding:calc(var(--baseSpacing) - 5px) var(--baseSpacing)}.page-footer{display:flex;gap:5px;align-items:center;justify-content:right;text-align:right;padding:0px var(--baseSpacing) 15px;color:var(--txtDisabledColor);font-size:var(--xsFontSize);line-height:var(--smLineHeight)}.page-footer i{font-size:1.2em}.page-footer a{color:inherit;text-decoration:none;transition:color var(--baseAnimationSpeed)}.page-footer a:focus-visible,.page-footer a:hover,.page-footer a:active{color:var(--txtPrimaryColor)}.page-wrapper{display:flex;flex-direction:column;flex-grow:1;width:100%;overflow-x:hidden;overflow-y:auto;overflow-y:overlay}.overlay-active .page-wrapper{overflow-y:hidden}.page-wrapper.full-page{background:var(--baseColor)}.page-wrapper.center-content .page-content{display:flex;align-items:center}@keyframes tabChange{0%{opacity:.5}to{opacity:1}}.tabs-header{display:flex;align-items:stretch;justify-content:flex-start;column-gap:10px;width:100%;min-height:50px;user-select:none;margin:0 0 var(--baseSpacing);border-bottom:1px solid var(--baseAlt2Color)}.tabs-header .tab-item{position:relative;outline:0;border:0;background:none;display:inline-flex;align-items:center;justify-content:center;min-width:70px;gap:5px;padding:10px;margin:0;font-size:var(--lgFontSize);line-height:var(--baseLineHeight);font-family:var(--baseFontFamily);color:var(--txtHintColor);text-align:center;text-decoration:none;cursor:pointer;border-top-left-radius:var(--baseRadius);border-top-right-radius:var(--baseRadius);transition:color var(--baseAnimationSpeed),background var(--baseAnimationSpeed)}.tabs-header .tab-item:after{content:"";position:absolute;display:block;left:0;bottom:-1px;width:100%;height:2px;border-top-left-radius:var(--baseRadius);border-top-right-radius:var(--baseRadius);background:var(--primaryColor);transform:rotateY(90deg);transition:transform .2s}.tabs-header .tab-item .txt,.tabs-header .tab-item i{display:inline-block;vertical-align:top}.tabs-header .tab-item:hover,.tabs-header .tab-item:focus-visible,.tabs-header .tab-item:active{color:var(--txtPrimaryColor)}.tabs-header .tab-item:focus-visible,.tabs-header .tab-item:active{transition-duration:var(--activeAnimationSpeed);background:var(--baseAlt2Color)}.tabs-header .tab-item.active{color:var(--txtPrimaryColor)}.tabs-header .tab-item.active:after{transform:rotateY(0)}.tabs-header .tab-item.disabled{pointer-events:none;color:var(--txtDisabledColor)}.tabs-header .tab-item.disabled:after{display:none}.tabs-header.right{justify-content:flex-end}.tabs-header.center{justify-content:center}.tabs-header.stretched .tab-item{flex-grow:1;flex-basis:0}.tabs-header.compact{min-height:30px;margin-bottom:var(--smSpacing)}.tabs-content{position:relative}.tabs-content>.tab-item{width:100%;display:none}.tabs-content>.tab-item.active{display:block;opacity:0;animation:tabChange .2s forwards}.tabs-content>.tab-item>:first-child{margin-top:0}.tabs-content>.tab-item>:last-child{margin-bottom:0}.tabs{position:relative}.accordion{outline:0;position:relative;border-radius:var(--baseRadius);background:var(--baseColor);border:1px solid var(--baseAlt2Color);transition:box-shadow var(--baseAnimationSpeed),margin var(--baseAnimationSpeed)}.accordion .accordion-header{outline:0;position:relative;display:flex;min-height:52px;align-items:center;row-gap:10px;column-gap:var(--smSpacing);padding:12px 20px 10px;width:100%;user-select:none;color:var(--txtPrimaryColor);border-radius:inherit;transition:background var(--baseAnimationSpeed),box-shadow var(--baseAnimationSpeed)}.accordion .accordion-header .icon{width:18px;text-align:center}.accordion .accordion-header .icon i{display:inline-block;vertical-align:top;font-size:1.1rem}.accordion .accordion-header.interactive{padding-right:50px;cursor:pointer}.accordion .accordion-header.interactive:after{content:"\ea4e";position:absolute;right:15px;top:50%;margin-top:-12.5px;width:25px;height:25px;line-height:25px;color:var(--txtHintColor);font-family:var(--iconFontFamily);font-size:1.3em;text-align:center;transition:color var(--baseAnimationSpeed)}.accordion .accordion-header:hover:after,.accordion .accordion-header.focus:after,.accordion .accordion-header:focus-visible:after{color:var(--txtPrimaryColor)}.accordion .accordion-header:active{transition-duration:var(--activeAnimationSpeed)}.accordion .accordion-content{padding:20px}.accordion:hover,.accordion:focus-visible,.accordion.active{z-index:9}.accordion:hover .accordion-header.interactive,.accordion:focus-visible .accordion-header.interactive,.accordion.active .accordion-header.interactive{background:var(--baseAlt1Color)}.accordion.drag-over .accordion-header{background:var(--bodyColor)}.accordion.active{box-shadow:0 2px 5px 0 var(--shadowColor)}.accordion.active .accordion-header{position:relative;top:0;z-index:9;box-shadow:0 0 0 1px var(--baseAlt2Color);border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--bodyColor)}.accordion.active .accordion-header.interactive{background:var(--bodyColor)}.accordion.active .accordion-header.interactive:after{color:inherit;content:"\ea78"}.accordion.disabled{z-index:0;border-color:var(--baseAlt1Color)}.accordion.disabled .accordion-header{color:var(--txtDisabledColor)}.accordions .accordion{border-radius:0;margin:-1px 0 0}.accordions>.accordion.active,.accordions>.accordion-wrapper>.accordion.active{margin:var(--smSpacing) 0;border-radius:var(--baseRadius)}.accordions>.accordion:first-child,.accordions>.accordion-wrapper:first-child>.accordion{margin-top:0;border-top-left-radius:var(--baseRadius);border-top-right-radius:var(--baseRadius)}.accordions>.accordion:last-child,.accordions>.accordion-wrapper:last-child>.accordion{margin-bottom:0;border-bottom-left-radius:var(--baseRadius);border-bottom-right-radius:var(--baseRadius)}table{--entranceAnimationSpeed: .3s;border-collapse:separate;min-width:100%;transition:opacity var(--baseAnimationSpeed)}table .form-field{margin:0;line-height:1;text-align:left}table td,table th{outline:0;vertical-align:middle;position:relative;text-align:left;padding:5px 10px;border-bottom:1px solid var(--baseAlt2Color)}table td:first-child,table th:first-child{padding-left:20px}table td:last-child,table th:last-child{padding-right:20px}table th{color:var(--txtHintColor);font-weight:600;font-size:1rem;user-select:none;height:50px;line-height:var(--smLineHeight)}table th i{font-size:inherit}table td{height:60px;word-break:break-word}table .min-width{width:1%!important;white-space:nowrap}table .nowrap{white-space:nowrap}table .col-sort{cursor:pointer;border-top-left-radius:var(--baseRadius);border-top-right-radius:var(--baseRadius);padding-right:30px;transition:color var(--baseAnimationSpeed),background var(--baseAnimationSpeed)}table .col-sort:after{content:"\ea4c";position:absolute;right:10px;top:50%;margin-top:-12.5px;line-height:25px;height:25px;font-family:var(--iconFontFamily);font-weight:400;color:var(--txtHintColor);opacity:0;transition:color var(--baseAnimationSpeed),opacity var(--baseAnimationSpeed)}table .col-sort.sort-desc:after{content:"\ea4c"}table .col-sort.sort-asc:after{content:"\ea76"}table .col-sort.sort-active:after{opacity:1}table .col-sort:hover,table .col-sort:focus-visible{background:var(--baseAlt1Color)}table .col-sort:hover:after,table .col-sort:focus-visible:after{opacity:1}table .col-sort:active{transition-duration:var(--activeAnimationSpeed);background:var(--baseAlt2Color)}table .col-sort.col-sort-disabled{cursor:default;background:none}table .col-sort.col-sort-disabled:after{display:none}table .col-header-content{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:5px}table .col-header-content .txt{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table .col-field-created,table .col-field-updated,table .col-type-action{width:1%!important;white-space:nowrap}table .col-type-action{white-space:nowrap;text-align:right;color:var(--txtHintColor)}table .col-type-action i{display:inline-block;vertical-align:top;transition:transform var(--baseAnimationSpeed)}table td.col-type-json{font-family:monospace;font-size:var(--smFontSize);line-height:var(--smLineHeight);max-width:300px}table .col-type-text{max-width:300px}table .col-type-select{min-width:150px}table .col-type-email{min-width:120px;white-space:nowrap}table .col-type-file{min-width:100px}table td.col-field-id,table td.col-field-username{width:0;white-space:nowrap}table tr{outline:0;background:var(--bodyColor);transition:background var(--baseAnimationSpeed)}table tr.row-handle{cursor:pointer;user-select:none}table tr.row-handle:focus-visible,table tr.row-handle:hover,table tr.row-handle:active{background:var(--baseAlt1Color)}table tr.row-handle:focus-visible .action-col,table tr.row-handle:hover .action-col,table tr.row-handle:active .action-col{color:var(--txtPrimaryColor)}table tr.row-handle:focus-visible .action-col i,table tr.row-handle:hover .action-col i,table tr.row-handle:active .action-col i{transform:translate(3px)}table tr.row-handle:active{transition-duration:var(--activeAnimationSpeed)}table.table-compact td,table.table-compact th{height:auto}table.table-border{border:1px solid var(--baseAlt2Color)}table.table-border tr{background:var(--baseColor)}table.table-border th{background:var(--baseAlt1Color)}table.table-border>:last-child>:last-child th,table.table-border>:last-child>:last-child td{border-bottom:0}table.table-animate tr{animation:entranceTop var(--entranceAnimationSpeed)}table.table-loading{pointer-events:none;opacity:.7}.table-wrapper{width:auto;padding:0;max-width:calc(100% + 2 * var(--baseSpacing));margin-left:calc(var(--baseSpacing) * -1);margin-right:calc(var(--baseSpacing) * -1)}.table-wrapper .bulk-select-col{min-width:70px}.table-wrapper .bulk-select-col input[type=checkbox]~label{opacity:.7}.table-wrapper .bulk-select-col label:hover,.table-wrapper .bulk-select-col label:focus-within,.table-wrapper .bulk-select-col input[type=checkbox]:checked~label{opacity:1!important}.table-wrapper td,.table-wrapper th{position:relative}.table-wrapper td:first-child,.table-wrapper th:first-child{padding-left:calc(var(--baseSpacing) + 3px)}.table-wrapper td:last-child,.table-wrapper th:last-child{padding-right:calc(var(--baseSpacing) + 3px)}.table-wrapper .bulk-select-col,.table-wrapper .col-type-action{position:sticky;z-index:99;transition:box-shadow var(--baseAnimationSpeed)}.table-wrapper .bulk-select-col{left:0px}.table-wrapper .col-type-action{right:0}.table-wrapper .bulk-select-col,.table-wrapper .col-type-action{background:inherit}.table-wrapper th.bulk-select-col,.table-wrapper th.col-type-action{background:var(--bodyColor)}.table-wrapper.scrollable .bulk-select-col{box-shadow:3px 0 5px 0 var(--shadowColor)}.table-wrapper.scrollable .col-type-action{box-shadow:-3px 0 5px 0 var(--shadowColor)}.table-wrapper.scrollable.scroll-start .bulk-select-col,.table-wrapper.scrollable.scroll-end .col-type-action{box-shadow:none}.searchbar{--searchHeight: 44px;outline:0;display:flex;align-items:center;height:var(--searchHeight);width:100%;flex-grow:1;padding:5px 7px;margin:0 0 var(--smSpacing);white-space:nowrap;color:var(--txtHintColor);background:var(--baseAlt1Color);border-radius:var(--btnHeight);transition:color var(--baseAnimationSpeed),background var(--baseAnimationSpeed),box-shadow var(--baseAnimationSpeed)}.searchbar>:first-child{border-top-left-radius:var(--btnHeight);border-bottom-left-radius:var(--btnHeight)}.searchbar>:last-child{border-top-right-radius:var(--btnHeight);border-bottom-right-radius:var(--btnHeight)}.searchbar .btn{border-radius:var(--btnHeight)}.searchbar .code-editor,.searchbar input,.searchbar input:focus{font-size:var(--baseFontSize);font-family:var(--monospaceFontFamily);border:0;background:none}.searchbar label>i{line-height:inherit}.searchbar .search-options{flex-shrink:0;width:90px}.searchbar .search-options .selected-container{border-radius:inherit;background:none;padding-right:25px!important}.searchbar .search-options:not(:focus-within) .selected-container{color:var(--txtHintColor)}.searchbar:focus-within{color:var(--txtPrimaryColor);background:var(--baseAlt2Color)}.searchbar-wrapper{position:relative;display:flex;align-items:center;width:100%;min-width:var(--btnHeight);min-height:var(--btnHeight)}.searchbar-wrapper .search-toggle{position:absolute;right:0;top:0}.bulkbar{position:sticky;bottom:var(--baseSpacing);z-index:101;gap:10px;display:flex;justify-content:center;align-items:center;width:var(--smWrapperWidth);max-width:100%;margin:var(--smSpacing) auto;padding:10px var(--smSpacing);border-radius:var(--btnHeight);background:var(--baseColor);border:1px solid var(--baseAlt2Color);box-shadow:0 2px 5px 0 var(--shadowColor)}.flatpickr-calendar{opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:1rem;line-height:24px;position:absolute;width:298px;box-sizing:border-box;user-select:none;color:var(--txtPrimaryColor);background:var(--baseColor);border-radius:var(--baseRadius);box-shadow:0 2px 5px 0 var(--shadowColor),0 0 0 1px var(--baseAlt2Color)}.flatpickr-calendar input,.flatpickr-calendar select{box-shadow:none;min-height:0;height:var(--inputHeight);background:none;border-radius:var(--baseRadius);border:1px solid var(--baseAlt1Color)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:0;width:100%}.flatpickr-calendar.static{position:absolute;top:100%;margin-top:2px;margin-bottom:10px;width:100%}.flatpickr-calendar.static .flatpickr-days{width:100%}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 var(--baseAlt2Color),5px 0 0 var(--baseAlt2Color);box-shadow:-2px 0 0 var(--baseAlt2Color),5px 0 0 var(--baseAlt2Color)}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid var(--baseAlt2Color)}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:var(--baseColor)}.flatpickr-calendar.arrowTop:after{border-bottom-color:var(--baseColor)}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:var(--baseColor)}.flatpickr-calendar.arrowBottom:after{border-top-color:var(--baseColor)}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative}.flatpickr-months{display:flex;margin:0 0 4px}.flatpickr-months .flatpickr-month{background:transparent;color:var(--txtPrimaryColor);fill:var(--txtPrimaryColor);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:var(--txtPrimaryColor);fill:var(--txtPrimaryColor)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:var(--txtHintColor)}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:var(--baseAlt2Color)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{line-height:inherit;color:inherit;position:absolute;width:75%;left:12.5%;padding:1px 0;line-height:1;display:flex;align-items:center;justify-content:center;text-align:center}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:var(--baseAlt2Color)}.flatpickr-current-month .numInputWrapper{display:inline-flex;align-items:center;justify-content:center;width:63px;margin:0 5px}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:var(--txtPrimaryColor)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:var(--txtPrimaryColor)}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;margin:0;display:inline-block;font-size:inherit;font-family:inherit;line-height:inherit;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{color:var(--txtDisabledColor);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;line-height:inherit;outline:none;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:var(--baseAlt2Color)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{display:block;flex:1;margin:0;cursor:default;line-height:1;background:transparent;color:var(--txtHintColor);text-align:center;font-weight:bolder;font-size:var(--smFontSize)}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:100%;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 var(--baseAlt2Color);box-shadow:-1px 0 0 var(--baseAlt2Color)}.flatpickr-day{background:none;border:1px solid transparent;border-radius:var(--baseRadius);box-sizing:border-box;color:var(--txtPrimaryColor);cursor:pointer;font-weight:400;width:calc(14.2857143% - 2px);flex-basis:calc(14.2857143% - 2px);height:39px;margin:1px;display:inline-flex;align-items:center;justify-content:center;position:relative;text-align:center;flex-direction:column}.flatpickr-day.weekend,.flatpickr-day:nth-child(7n+6),.flatpickr-day:nth-child(7n+7){color:var(--dangerColor)}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:var(--baseAlt2Color);border-color:var(--baseAlt2Color)}.flatpickr-day.today{border-color:var(--baseColor)}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:var(--primaryColor);background:var(--primaryColor);color:var(--baseColor)}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:var(--primaryColor);-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:var(--primaryColor)}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 var(--primaryColor);box-shadow:-10px 0 0 var(--primaryColor)}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 var(--baseAlt2Color),5px 0 0 var(--baseAlt2Color)}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:var(--txtDisabledColor);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:var(--txtDisabledColor);background:var(--baseAlt2Color)}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 var(--primaryColor),5px 0 0 var(--primaryColor)}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 var(--baseAlt2Color);box-shadow:1px 0 0 var(--baseAlt2Color)}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:var(--txtHintColor);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:flex;box-sizing:border-box;overflow:hidden;padding:5px}.flatpickr-rContainer{display:inline-block;padding:0;width:100%;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:var(--txtPrimaryColor)}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:var(--txtPrimaryColor)}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:var(--txtPrimaryColor);font-size:14px;position:relative;box-sizing:border-box;background:var(--baseColor);-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:var(--txtPrimaryColor);font-weight:700;width:2%;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:var(--baseAlt1Color)}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}.flatpickr-hide-prev-next-month-days .flatpickr-calendar .prevMonthDay{visibility:hidden}.flatpickr-hide-prev-next-month-days .flatpickr-calendar .nextMonthDay,.flatpickr-inline-container .flatpickr-input{display:none}.flatpickr-inline-container .flatpickr-calendar{margin:0;box-shadow:none;border:1px solid var(--baseAlt2Color)}.docs-sidebar{--itemsSpacing: 10px;--itemsHeight: 40px;position:relative;min-width:180px;max-width:300px;height:100%;flex-shrink:0;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;background:var(--bodyColor);padding:var(--smSpacing) var(--xsSpacing);border-right:1px solid var(--baseAlt1Color)}.docs-sidebar .sidebar-content{display:block;width:100%}.docs-sidebar .sidebar-item{position:relative;outline:0;cursor:pointer;text-decoration:none;display:flex;width:100%;gap:10px;align-items:center;text-align:right;justify-content:start;padding:5px 15px;margin:0 0 var(--itemsSpacing) 0;font-size:var(--lgFontSize);min-height:var(--itemsHeight);border-radius:var(--baseRadius);user-select:none;color:var(--txtHintColor);transition:background var(--baseAnimationSpeed),color var(--baseAnimationSpeed)}.docs-sidebar .sidebar-item:last-child{margin-bottom:0}.docs-sidebar .sidebar-item:focus-visible,.docs-sidebar .sidebar-item:hover,.docs-sidebar .sidebar-item:active,.docs-sidebar .sidebar-item.active{color:var(--txtPrimaryColor);background:var(--baseAlt1Color)}.docs-sidebar .sidebar-item:active{background:var(--baseAlt2Color);transition-duration:var(--activeAnimationSpeed)}.docs-sidebar.compact .sidebar-item{--itemsSpacing: 7px}.docs-content{width:100%;display:block;padding:calc(var(--baseSpacing) - 3px) var(--baseSpacing);overflow:auto}.docs-content-wrapper{display:flex;width:100%;height:100%}.docs-panel{width:960px;height:100%}.docs-panel .overlay-panel-section.panel-header{padding:0;border:0;box-shadow:none}.docs-panel .overlay-panel-section.panel-content{padding:0!important}.docs-panel .overlay-panel-section.panel-footer{display:none}@media screen and (max-width: 1000px){.docs-panel .overlay-panel-section.panel-footer{display:flex}}.panel-wrapper.svelte-lxxzfu{animation:slideIn .2s}@keyframes svelte-1bvelc2-refresh{to{transform:rotate(180deg)}}.btn.refreshing.svelte-1bvelc2 i.svelte-1bvelc2{animation:svelte-1bvelc2-refresh .15s ease-out}.datetime.svelte-zdiknu{width:100%;display:block;line-height:var(--smLineHeight)}.time.svelte-zdiknu{font-size:var(--smFontSize);color:var(--txtHintColor)}.horizontal-scroller.svelte-wc2j9h{width:auto;overflow-x:auto}.horizontal-scroller-wrapper.svelte-wc2j9h{position:relative}.horizontal-scroller-wrapper .columns-dropdown{top:40px;z-index:100;max-height:340px}.chart-wrapper.svelte-vh4sl8.svelte-vh4sl8{position:relative;display:block;width:100%}.chart-wrapper.loading.svelte-vh4sl8 .chart-canvas.svelte-vh4sl8{pointer-events:none;opacity:.5}.chart-loader.svelte-vh4sl8.svelte-vh4sl8{position:absolute;z-index:999;top:50%;left:50%;transform:translate(-50%,-50%)}.prism-light code[class*=language-],.prism-light pre[class*=language-]{color:#111b27;background:0 0;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.prism-light code[class*=language-] ::-moz-selection,.prism-light code[class*=language-]::-moz-selection,.prism-light pre[class*=language-] ::-moz-selection,.prism-light pre[class*=language-]::-moz-selection{background:#8da1b9}.prism-light code[class*=language-] ::selection,.prism-light code[class*=language-]::selection,.prism-light pre[class*=language-] ::selection,.prism-light pre[class*=language-]::selection{background:#8da1b9}.prism-light pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}.prism-light :not(pre)>code[class*=language-],.prism-light pre[class*=language-]{background:#e3eaf2}.prism-light :not(pre)>code[class*=language-]{padding:.1em .3em;border-radius:.3em;white-space:normal}.prism-light .token.cdata,.prism-light .token.comment,.prism-light .token.doctype,.prism-light .token.prolog{color:#3c526d}.prism-light .token.punctuation{color:#111b27}.prism-light .token.delimiter.important,.prism-light .token.selector .parent,.prism-light .token.tag,.prism-light .token.tag .token.punctuation{color:#006d6d}.prism-light .token.attr-name,.prism-light .token.boolean,.prism-light .token.boolean.important,.prism-light .token.constant,.prism-light .token.number,.prism-light .token.selector .token.attribute{color:#755f00}.prism-light .token.class-name,.prism-light .token.key,.prism-light .token.parameter,.prism-light .token.property,.prism-light .token.property-access,.prism-light .token.variable{color:#005a8e}.prism-light .token.attr-value,.prism-light .token.color,.prism-light .token.inserted,.prism-light .token.selector .token.value,.prism-light .token.string,.prism-light .token.string .token.url-link{color:#116b00}.prism-light .token.builtin,.prism-light .token.keyword-array,.prism-light .token.package,.prism-light .token.regex{color:#af00af}.prism-light .token.function,.prism-light .token.selector .token.class,.prism-light .token.selector .token.id{color:#7c00aa}.prism-light .token.atrule .token.rule,.prism-light .token.combinator,.prism-light .token.keyword,.prism-light .token.operator,.prism-light .token.pseudo-class,.prism-light .token.pseudo-element,.prism-light .token.selector,.prism-light .token.unit{color:#a04900}.prism-light .token.deleted,.prism-light .token.important{color:#c22f2e}.prism-light .token.keyword-this,.prism-light .token.this{color:#005a8e}.prism-light .token.bold,.prism-light .token.important,.prism-light .token.keyword-this,.prism-light .token.this{font-weight:700}.prism-light .token.delimiter.important{font-weight:inherit}.prism-light .token.italic{font-style:italic}.prism-light .token.entity{cursor:help}.prism-light .language-markdown .token.title,.prism-light .language-markdown .token.title .token.punctuation{color:#005a8e;font-weight:700}.prism-light .language-markdown .token.blockquote.punctuation{color:#af00af}.prism-light .language-markdown .token.code{color:#006d6d}.prism-light .language-markdown .token.hr.punctuation{color:#005a8e}.prism-light .language-markdown .token.url>.token.content{color:#116b00}.prism-light .language-markdown .token.url-link{color:#755f00}.prism-light .language-markdown .token.list.punctuation{color:#af00af}.prism-light .language-markdown .token.table-header,.prism-light .language-json .token.operator{color:#111b27}.prism-light .language-scss .token.variable{color:#006d6d}.prism-light .token.token.cr:before,.prism-light .token.token.lf:before,.prism-light .token.token.space:before,.prism-light .token.token.tab:not(:empty):before{color:#3c526d}.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>a,.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>button{color:#e3eaf2;background:#005a8e}.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:focus,.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:hover,.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:focus,.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:hover{color:#e3eaf2;background:rgba(0,90,142,.8549019608);text-decoration:none}.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>span,.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:focus,.prism-light div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:hover{color:#e3eaf2;background:#3c526d}.prism-light .line-highlight.line-highlight{background:rgba(141,161,185,.1843137255);background:linear-gradient(to right,rgba(141,161,185,.1843137255) 70%,rgba(141,161,185,.1450980392))}.prism-light .line-highlight.line-highlight:before,.prism-light .line-highlight.line-highlight[data-end]:after{background-color:#3c526d;color:#e3eaf2;box-shadow:0 1px #8da1b9}.prism-light pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:#3c526d1f}.prism-light .line-numbers.line-numbers .line-numbers-rows{border-right:1px solid rgba(141,161,185,.4784313725);background:rgba(208,218,231,.4784313725)}.prism-light .line-numbers .line-numbers-rows>span:before{color:#3c526dda}.prism-light .rainbow-braces .token.token.punctuation.brace-level-1,.prism-light .rainbow-braces .token.token.punctuation.brace-level-5,.prism-light .rainbow-braces .token.token.punctuation.brace-level-9{color:#755f00}.prism-light .rainbow-braces .token.token.punctuation.brace-level-10,.prism-light .rainbow-braces .token.token.punctuation.brace-level-2,.prism-light .rainbow-braces .token.token.punctuation.brace-level-6{color:#af00af}.prism-light .rainbow-braces .token.token.punctuation.brace-level-11,.prism-light .rainbow-braces .token.token.punctuation.brace-level-3,.prism-light .rainbow-braces .token.token.punctuation.brace-level-7{color:#005a8e}.prism-light .rainbow-braces .token.token.punctuation.brace-level-12,.prism-light .rainbow-braces .token.token.punctuation.brace-level-4,.prism-light .rainbow-braces .token.token.punctuation.brace-level-8{color:#7c00aa}.prism-light pre.diff-highlight>code .token.token.deleted:not(.prefix),.prism-light pre>code.diff-highlight .token.token.deleted:not(.prefix){background-color:#c22f2e1f}.prism-light pre.diff-highlight>code .token.token.inserted:not(.prefix),.prism-light pre>code.diff-highlight .token.token.inserted:not(.prefix){background-color:#116b001f}.prism-light .command-line .command-line-prompt{border-right:1px solid rgba(141,161,185,.4784313725)}.prism-light .command-line .command-line-prompt>span:before{color:#3c526dda}code.svelte-10s5tkd.svelte-10s5tkd{display:block;width:100%;padding:10px 15px;white-space:pre-wrap;word-break:break-word}.code-wrapper.svelte-10s5tkd.svelte-10s5tkd{display:block;width:100%;max-height:100%;overflow:auto;overflow:overlay}.prism-light.svelte-10s5tkd code.svelte-10s5tkd{color:var(--txtPrimaryColor);background:var(--baseAlt1Color)}.invalid-name-note.svelte-1tpxlm5{position:absolute;right:10px;top:10px;text-transform:none}.title.field-name.svelte-1tpxlm5{max-width:130px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.rule-block.svelte-fjxz7k{display:flex;align-items:flex-start;gap:var(--xsSpacing)}.rule-toggle-btn.svelte-fjxz7k{margin-top:15px}.changes-list.svelte-1ghly2p{word-break:break-all}.tabs-content.svelte-b10vi{z-index:3}.email-visibility-addon.svelte-1751a4d~input.svelte-1751a4d{padding-right:100px}textarea.svelte-1x1pbts{resize:none;padding-top:4px!important;padding-bottom:5px!important;min-height:var(--inputHeight);height:var(--inputHeight)}.content.svelte-1gjwqyd{flex-shrink:1;flex-grow:0;width:auto;min-width:0}.export-preview.svelte-jm5c4z.svelte-jm5c4z{position:relative;height:500px}.export-preview.svelte-jm5c4z .copy-schema.svelte-jm5c4z{position:absolute;right:15px;top:15px}.collections-diff-table.svelte-lmkr38.svelte-lmkr38{color:var(--txtHintColor);border:2px solid var(--primaryColor)}.collections-diff-table.svelte-lmkr38 tr.svelte-lmkr38{background:none}.collections-diff-table.svelte-lmkr38 th.svelte-lmkr38,.collections-diff-table.svelte-lmkr38 td.svelte-lmkr38{height:auto;padding:2px 15px;border-bottom:1px solid rgba(0,0,0,.07)}.collections-diff-table.svelte-lmkr38 th.svelte-lmkr38{height:35px;padding:4px 15px;color:var(--txtPrimaryColor)}.collections-diff-table.svelte-lmkr38 thead tr.svelte-lmkr38{background:var(--primaryColor)}.collections-diff-table.svelte-lmkr38 thead tr th.svelte-lmkr38{color:var(--baseColor);background:none}.collections-diff-table.svelte-lmkr38 .label.svelte-lmkr38{font-weight:400}.collections-diff-table.svelte-lmkr38 .changed-none-col.svelte-lmkr38{color:var(--txtDisabledColor);background:var(--baseAlt1Color)}.collections-diff-table.svelte-lmkr38 .changed-old-col.svelte-lmkr38{color:var(--txtPrimaryColor);background:var(--dangerAltColor)}.collections-diff-table.svelte-lmkr38 .changed-new-col.svelte-lmkr38{color:var(--txtPrimaryColor);background:var(--successAltColor)}.collections-diff-table.svelte-lmkr38 .field-key-col.svelte-lmkr38{padding-left:30px}.list-label.svelte-1jx20fl{min-width:65px} diff --git a/ui/dist/assets/index.662e825a.js b/ui/dist/assets/index.662e825a.js deleted file mode 100644 index 4a3185872aa9816d4f5b74d9127c991b4c6e1b9a..0000000000000000000000000000000000000000 --- a/ui/dist/assets/index.662e825a.js +++ /dev/null @@ -1,174 +0,0 @@ -(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerpolicy&&(l.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?l.credentials="include":s.crossorigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function i(s){if(s.ep)return;s.ep=!0;const l=t(s);fetch(s.href,l)}})();function te(){}const vl=n=>n;function Ke(n,e){for(const t in e)n[t]=e[t];return n}function G_(n){return n&&typeof n=="object"&&typeof n.then=="function"}function dm(n){return n()}function Xa(){return Object.create(null)}function Pe(n){n.forEach(dm)}function Jt(n){return typeof n=="function"}function be(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}let Ll;function Ln(n,e){return Ll||(Ll=document.createElement("a")),Ll.href=e,n===Ll.href}function X_(n){return Object.keys(n).length===0}function pm(n,...e){if(n==null)return te;const t=n.subscribe(...e);return t.unsubscribe?()=>t.unsubscribe():t}function Ze(n,e,t){n.$$.on_destroy.push(pm(e,t))}function Ot(n,e,t,i){if(n){const s=hm(n,e,t,i);return n[0](s)}}function hm(n,e,t,i){return n[1]&&i?Ke(t.ctx.slice(),n[1](i(e))):t.ctx}function Dt(n,e,t,i){if(n[2]&&i){const s=n[2](i(t));if(e.dirty===void 0)return s;if(typeof s=="object"){const l=[],o=Math.max(e.dirty.length,s.length);for(let r=0;r32){const e=[],t=n.ctx.length/32;for(let i=0;iwindow.performance.now():()=>Date.now(),sa=mm?n=>requestAnimationFrame(n):te;const hs=new Set;function gm(n){hs.forEach(e=>{e.c(n)||(hs.delete(e),e.f())}),hs.size!==0&&sa(gm)}function Lo(n){let e;return hs.size===0&&sa(gm),{promise:new Promise(t=>{hs.add(e={c:n,f:t})}),abort(){hs.delete(e)}}}function _(n,e){n.appendChild(e)}function _m(n){if(!n)return document;const e=n.getRootNode?n.getRootNode():n.ownerDocument;return e&&e.host?e:n.ownerDocument}function Q_(n){const e=v("style");return x_(_m(n),e),e.sheet}function x_(n,e){return _(n.head||n,e),e.sheet}function S(n,e,t){n.insertBefore(e,t||null)}function w(n){n.parentNode&&n.parentNode.removeChild(n)}function Mt(n,e){for(let t=0;tn.removeEventListener(e,t,i)}function ut(n){return function(e){return e.preventDefault(),n.call(this,e)}}function Yn(n){return function(e){return e.stopPropagation(),n.call(this,e)}}function p(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function Un(n,e){const t=Object.getOwnPropertyDescriptors(n.__proto__);for(const i in e)e[i]==null?n.removeAttribute(i):i==="style"?n.style.cssText=e[i]:i==="__value"?n.value=n[i]=e[i]:t[i]&&t[i].set?n[i]=e[i]:p(n,i,e[i])}function rt(n){return n===""?null:+n}function e0(n){return Array.from(n.childNodes)}function ae(n,e){e=""+e,n.wholeText!==e&&(n.data=e)}function ce(n,e){n.value=e==null?"":e}function Qa(n,e,t,i){t===null?n.style.removeProperty(e):n.style.setProperty(e,t,i?"important":"")}function ne(n,e,t){n.classList[t?"add":"remove"](e)}function bm(n,e,{bubbles:t=!1,cancelable:i=!1}={}){const s=document.createEvent("CustomEvent");return s.initCustomEvent(n,t,i,e),s}function jt(n,e){return new n(e)}const co=new Map;let po=0;function t0(n){let e=5381,t=n.length;for(;t--;)e=(e<<5)-e^n.charCodeAt(t);return e>>>0}function n0(n,e){const t={stylesheet:Q_(e),rules:{}};return co.set(n,t),t}function ll(n,e,t,i,s,l,o,r=0){const a=16.666/i;let u=`{ -`;for(let g=0;g<=1;g+=a){const y=e+(t-e)*l(g);u+=g*100+`%{${o(y,1-y)}} -`}const f=u+`100% {${o(t,1-t)}} -}`,c=`__svelte_${t0(f)}_${r}`,d=_m(n),{stylesheet:h,rules:m}=co.get(d)||n0(d,n);m[c]||(m[c]=!0,h.insertRule(`@keyframes ${c} ${f}`,h.cssRules.length));const b=n.style.animation||"";return n.style.animation=`${b?`${b}, `:""}${c} ${i}ms linear ${s}ms 1 both`,po+=1,c}function ol(n,e){const t=(n.style.animation||"").split(", "),i=t.filter(e?l=>l.indexOf(e)<0:l=>l.indexOf("__svelte")===-1),s=t.length-i.length;s&&(n.style.animation=i.join(", "),po-=s,po||i0())}function i0(){sa(()=>{po||(co.forEach(n=>{const{ownerNode:e}=n.stylesheet;e&&w(e)}),co.clear())})}function s0(n,e,t,i){if(!e)return te;const s=n.getBoundingClientRect();if(e.left===s.left&&e.right===s.right&&e.top===s.top&&e.bottom===s.bottom)return te;const{delay:l=0,duration:o=300,easing:r=vl,start:a=Po()+l,end:u=a+o,tick:f=te,css:c}=t(n,{from:e,to:s},i);let d=!0,h=!1,m;function b(){c&&(m=ll(n,0,1,o,l,r,c)),l||(h=!0)}function g(){c&&ol(n,m),d=!1}return Lo(y=>{if(!h&&y>=a&&(h=!0),h&&y>=u&&(f(1,0),g()),!d)return!1;if(h){const k=y-a,$=0+1*r(k/o);f($,1-$)}return!0}),b(),f(0,1),g}function l0(n){const e=getComputedStyle(n);if(e.position!=="absolute"&&e.position!=="fixed"){const{width:t,height:i}=e,s=n.getBoundingClientRect();n.style.position="absolute",n.style.width=t,n.style.height=i,vm(n,s)}}function vm(n,e){const t=n.getBoundingClientRect();if(e.left!==t.left||e.top!==t.top){const i=getComputedStyle(n),s=i.transform==="none"?"":i.transform;n.style.transform=`${s} translate(${e.left-t.left}px, ${e.top-t.top}px)`}}let rl;function ni(n){rl=n}function yl(){if(!rl)throw new Error("Function called outside component initialization");return rl}function cn(n){yl().$$.on_mount.push(n)}function o0(n){yl().$$.after_update.push(n)}function r0(n){yl().$$.on_destroy.push(n)}function It(){const n=yl();return(e,t,{cancelable:i=!1}={})=>{const s=n.$$.callbacks[e];if(s){const l=bm(e,t,{cancelable:i});return s.slice().forEach(o=>{o.call(n,l)}),!l.defaultPrevented}return!0}}function Ve(n,e){const t=n.$$.callbacks[e.type];t&&t.slice().forEach(i=>i.call(this,e))}const Ys=[],le=[],so=[],Mr=[],ym=Promise.resolve();let Or=!1;function km(){Or||(Or=!0,ym.then(la))}function Tn(){return km(),ym}function xe(n){so.push(n)}function ke(n){Mr.push(n)}const Go=new Set;let Nl=0;function la(){const n=rl;do{for(;Nl{Ls=null})),Ls}function Vi(n,e,t){n.dispatchEvent(bm(`${e?"intro":"outro"}${t}`))}const lo=new Set;let qn;function pe(){qn={r:0,c:[],p:qn}}function he(){qn.r||Pe(qn.c),qn=qn.p}function A(n,e){n&&n.i&&(lo.delete(n),n.i(e))}function P(n,e,t,i){if(n&&n.o){if(lo.has(n))return;lo.add(n),qn.c.push(()=>{lo.delete(n),i&&(t&&n.d(1),i())}),n.o(e)}else i&&i()}const ra={duration:0};function wm(n,e,t){let i=e(n,t),s=!1,l,o,r=0;function a(){l&&ol(n,l)}function u(){const{delay:c=0,duration:d=300,easing:h=vl,tick:m=te,css:b}=i||ra;b&&(l=ll(n,0,1,d,c,h,b,r++)),m(0,1);const g=Po()+c,y=g+d;o&&o.abort(),s=!0,xe(()=>Vi(n,!0,"start")),o=Lo(k=>{if(s){if(k>=y)return m(1,0),Vi(n,!0,"end"),a(),s=!1;if(k>=g){const $=h((k-g)/d);m($,1-$)}}return s})}let f=!1;return{start(){f||(f=!0,ol(n),Jt(i)?(i=i(),oa().then(u)):u())},invalidate(){f=!1},end(){s&&(a(),s=!1)}}}function Sm(n,e,t){let i=e(n,t),s=!0,l;const o=qn;o.r+=1;function r(){const{delay:a=0,duration:u=300,easing:f=vl,tick:c=te,css:d}=i||ra;d&&(l=ll(n,1,0,u,a,f,d));const h=Po()+a,m=h+u;xe(()=>Vi(n,!1,"start")),Lo(b=>{if(s){if(b>=m)return c(0,1),Vi(n,!1,"end"),--o.r||Pe(o.c),!1;if(b>=h){const g=f((b-h)/u);c(1-g,g)}}return s})}return Jt(i)?oa().then(()=>{i=i(),r()}):r(),{end(a){a&&i.tick&&i.tick(1,0),s&&(l&&ol(n,l),s=!1)}}}function je(n,e,t,i){let s=e(n,t),l=i?0:1,o=null,r=null,a=null;function u(){a&&ol(n,a)}function f(d,h){const m=d.b-l;return h*=Math.abs(m),{a:l,b:d.b,d:m,duration:h,start:d.start,end:d.start+h,group:d.group}}function c(d){const{delay:h=0,duration:m=300,easing:b=vl,tick:g=te,css:y}=s||ra,k={start:Po()+h,b:d};d||(k.group=qn,qn.r+=1),o||r?r=k:(y&&(u(),a=ll(n,l,d,m,h,b,y)),d&&g(0,1),o=f(k,m),xe(()=>Vi(n,d,"start")),Lo($=>{if(r&&$>r.start&&(o=f(r,m),r=null,Vi(n,o.b,"start"),y&&(u(),a=ll(n,l,o.b,o.duration,0,b,s.css))),o){if($>=o.end)g(l=o.b,1-l),Vi(n,o.b,"end"),r||(o.b?u():--o.group.r||Pe(o.group.c)),o=null;else if($>=o.start){const C=$-o.start;l=o.a+o.d*b(C/o.duration),g(l,1-l)}}return!!(o||r)}))}return{run(d){Jt(s)?oa().then(()=>{s=s(),c(d)}):c(d)},end(){u(),o=r=null}}}function xa(n,e){const t=e.token={};function i(s,l,o,r){if(e.token!==t)return;e.resolved=r;let a=e.ctx;o!==void 0&&(a=a.slice(),a[o]=r);const u=s&&(e.current=s)(a);let f=!1;e.block&&(e.blocks?e.blocks.forEach((c,d)=>{d!==l&&c&&(pe(),P(c,1,1,()=>{e.blocks[d]===c&&(e.blocks[d]=null)}),he())}):e.block.d(1),u.c(),A(u,1),u.m(e.mount(),e.anchor),f=!0),e.block=u,e.blocks&&(e.blocks[l]=u),f&&la()}if(G_(n)){const s=yl();if(n.then(l=>{ni(s),i(e.then,1,e.value,l),ni(null)},l=>{if(ni(s),i(e.catch,2,e.error,l),ni(null),!e.hasCatch)throw l}),e.current!==e.pending)return i(e.pending,0),!0}else{if(e.current!==e.then)return i(e.then,1,e.value,n),!0;e.resolved=n}}function u0(n,e,t){const i=e.slice(),{resolved:s}=n;n.current===n.then&&(i[n.value]=s),n.current===n.catch&&(i[n.error]=s),n.block.p(i,t)}function Gi(n,e){n.d(1),e.delete(n.key)}function nn(n,e){P(n,1,1,()=>{e.delete(n.key)})}function f0(n,e){n.f(),nn(n,e)}function bt(n,e,t,i,s,l,o,r,a,u,f,c){let d=n.length,h=l.length,m=d;const b={};for(;m--;)b[n[m].key]=m;const g=[],y=new Map,k=new Map;for(m=h;m--;){const M=c(s,l,m),D=t(M);let E=o.get(D);E?i&&E.p(M,e):(E=u(D,M),E.c()),y.set(D,g[m]=E),D in b&&k.set(D,Math.abs(m-b[D]))}const $=new Set,C=new Set;function T(M){A(M,1),M.m(r,f),o.set(M.key,M),f=M.first,h--}for(;d&&h;){const M=g[h-1],D=n[d-1],E=M.key,I=D.key;M===D?(f=M.first,d--,h--):y.has(I)?!o.has(E)||$.has(E)?T(M):C.has(I)?d--:k.get(E)>k.get(I)?(C.add(E),T(M)):($.add(I),d--):(a(D,o),d--)}for(;d--;){const M=n[d];y.has(M.key)||a(M,o)}for(;h;)T(g[h-1]);return g}function Zt(n,e){const t={},i={},s={$$scope:1};let l=n.length;for(;l--;){const o=n[l],r=e[l];if(r){for(const a in o)a in r||(i[a]=1);for(const a in r)s[a]||(t[a]=r[a],s[a]=1);n[l]=r}else for(const a in o)s[a]=1}for(const o in i)o in t||(t[o]=void 0);return t}function Kn(n){return typeof n=="object"&&n!==null?n:{}}function _e(n,e,t){const i=n.$$.props[e];i!==void 0&&(n.$$.bound[i]=t,t(n.$$.ctx[i]))}function j(n){n&&n.c()}function R(n,e,t,i){const{fragment:s,after_update:l}=n.$$;s&&s.m(e,t),i||xe(()=>{const o=n.$$.on_mount.map(dm).filter(Jt);n.$$.on_destroy?n.$$.on_destroy.push(...o):Pe(o),n.$$.on_mount=[]}),l.forEach(xe)}function H(n,e){const t=n.$$;t.fragment!==null&&(Pe(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function c0(n,e){n.$$.dirty[0]===-1&&(Ys.push(n),km(),n.$$.dirty.fill(0)),n.$$.dirty[e/31|0]|=1<{const m=h.length?h[0]:d;return u.ctx&&s(u.ctx[c],u.ctx[c]=m)&&(!u.skip_bound&&u.bound[c]&&u.bound[c](m),f&&c0(n,c)),d}):[],u.update(),f=!0,Pe(u.before_update),u.fragment=i?i(u.ctx):!1,e.target){if(e.hydrate){const c=e0(e.target);u.fragment&&u.fragment.l(c),c.forEach(w)}else u.fragment&&u.fragment.c();e.intro&&A(n.$$.fragment),R(n,e.target,e.anchor,e.customElement),la()}ni(a)}class ye{$destroy(){H(this,1),this.$destroy=te}$on(e,t){if(!Jt(t))return te;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(t),()=>{const s=i.indexOf(t);s!==-1&&i.splice(s,1)}}$set(e){this.$$set&&!X_(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function vt(n){if(!n)throw Error("Parameter args is required");if(!n.component==!n.asyncComponent)throw Error("One and only one of component and asyncComponent is required");if(n.component&&(n.asyncComponent=()=>Promise.resolve(n.component)),typeof n.asyncComponent!="function")throw Error("Parameter asyncComponent must be a function");if(n.conditions){Array.isArray(n.conditions)||(n.conditions=[n.conditions]);for(let t=0;t{i.delete(u),i.size===0&&(t(),t=null)}}return{set:s,update:l,subscribe:o}}function Cm(n,e,t){const i=!Array.isArray(n),s=i?[n]:n,l=e.length<2;return $m(t,o=>{let r=!1;const a=[];let u=0,f=te;const c=()=>{if(u)return;f();const h=e(i?a[0]:a,o);l?o(h):f=Jt(h)?h:te},d=s.map((h,m)=>pm(h,b=>{a[m]=b,u&=~(1<{u|=1<{H(f,1)}),he()}l?(e=jt(l,o()),e.$on("routeEvent",r[7]),j(e.$$.fragment),A(e.$$.fragment,1),R(e,t.parentNode,t)):e=null}else l&&e.$set(u)},i(r){i||(e&&A(e.$$.fragment,r),i=!0)},o(r){e&&P(e.$$.fragment,r),i=!1},d(r){r&&w(t),e&&H(e,r)}}}function p0(n){let e,t,i;const s=[{params:n[1]},n[2]];var l=n[0];function o(r){let a={};for(let u=0;u{H(f,1)}),he()}l?(e=jt(l,o()),e.$on("routeEvent",r[6]),j(e.$$.fragment),A(e.$$.fragment,1),R(e,t.parentNode,t)):e=null}else l&&e.$set(u)},i(r){i||(e&&A(e.$$.fragment,r),i=!0)},o(r){e&&P(e.$$.fragment,r),i=!1},d(r){r&&w(t),e&&H(e,r)}}}function h0(n){let e,t,i,s;const l=[p0,d0],o=[];function r(a,u){return a[1]?0:1}return e=r(n),t=o[e]=l[e](n),{c(){t.c(),i=Ae()},m(a,u){o[e].m(a,u),S(a,i,u),s=!0},p(a,[u]){let f=e;e=r(a),e===f?o[e].p(a,u):(pe(),P(o[f],1,1,()=>{o[f]=null}),he(),t=o[e],t?t.p(a,u):(t=o[e]=l[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){s||(A(t),s=!0)},o(a){P(t),s=!1},d(a){o[e].d(a),a&&w(i)}}}function eu(){const n=window.location.href.indexOf("#/");let e=n>-1?window.location.href.substr(n+1):"/";const t=e.indexOf("?");let i="";return t>-1&&(i=e.substr(t+1),e=e.substr(0,t)),{location:e,querystring:i}}const No=$m(null,function(e){e(eu());const t=()=>{e(eu())};return window.addEventListener("hashchange",t,!1),function(){window.removeEventListener("hashchange",t,!1)}});Cm(No,n=>n.location);const aa=Cm(No,n=>n.querystring),tu=Mn(void 0);async function ki(n){if(!n||n.length<1||n.charAt(0)!="/"&&n.indexOf("#/")!==0)throw Error("Invalid parameter location");await Tn();const e=(n.charAt(0)=="#"?"":"#")+n;try{const t={...history.state};delete t.__svelte_spa_router_scrollX,delete t.__svelte_spa_router_scrollY,window.history.replaceState(t,void 0,e)}catch{console.warn("Caught exception while replacing the current page. If you're running this in the Svelte REPL, please note that the `replace` method might not work in this environment.")}window.dispatchEvent(new Event("hashchange"))}function Bt(n,e){if(e=iu(e),!n||!n.tagName||n.tagName.toLowerCase()!="a")throw Error('Action "link" can only be used with tags');return nu(n,e),{update(t){t=iu(t),nu(n,t)}}}function m0(n){n?window.scrollTo(n.__svelte_spa_router_scrollX,n.__svelte_spa_router_scrollY):window.scrollTo(0,0)}function nu(n,e){let t=e.href||n.getAttribute("href");if(t&&t.charAt(0)=="/")t="#"+t;else if(!t||t.length<2||t.slice(0,2)!="#/")throw Error('Invalid value for "href" attribute: '+t);n.setAttribute("href",t),n.addEventListener("click",i=>{i.preventDefault(),e.disabled||g0(i.currentTarget.getAttribute("href"))})}function iu(n){return n&&typeof n=="string"?{href:n}:n||{}}function g0(n){history.replaceState({...history.state,__svelte_spa_router_scrollX:window.scrollX,__svelte_spa_router_scrollY:window.scrollY},void 0),window.location.hash=n}function _0(n,e,t){let{routes:i={}}=e,{prefix:s=""}=e,{restoreScrollState:l=!1}=e;class o{constructor(T,M){if(!M||typeof M!="function"&&(typeof M!="object"||M._sveltesparouter!==!0))throw Error("Invalid component object");if(!T||typeof T=="string"&&(T.length<1||T.charAt(0)!="/"&&T.charAt(0)!="*")||typeof T=="object"&&!(T instanceof RegExp))throw Error('Invalid value for "path" argument - strings must start with / or *');const{pattern:D,keys:E}=Tm(T);this.path=T,typeof M=="object"&&M._sveltesparouter===!0?(this.component=M.component,this.conditions=M.conditions||[],this.userData=M.userData,this.props=M.props||{}):(this.component=()=>Promise.resolve(M),this.conditions=[],this.props={}),this._pattern=D,this._keys=E}match(T){if(s){if(typeof s=="string")if(T.startsWith(s))T=T.substr(s.length)||"/";else return null;else if(s instanceof RegExp){const I=T.match(s);if(I&&I[0])T=T.substr(I[0].length)||"/";else return null}}const M=this._pattern.exec(T);if(M===null)return null;if(this._keys===!1)return M;const D={};let E=0;for(;E{r.push(new o(T,C))}):Object.keys(i).forEach(C=>{r.push(new o(C,i[C]))});let a=null,u=null,f={};const c=It();async function d(C,T){await Tn(),c(C,T)}let h=null,m=null;l&&(m=C=>{C.state&&(C.state.__svelte_spa_router_scrollY||C.state.__svelte_spa_router_scrollX)?h=C.state:h=null},window.addEventListener("popstate",m),o0(()=>{m0(h)}));let b=null,g=null;const y=No.subscribe(async C=>{b=C;let T=0;for(;T{tu.set(u)});return}t(0,a=null),g=null,tu.set(void 0)});r0(()=>{y(),m&&window.removeEventListener("popstate",m)});function k(C){Ve.call(this,n,C)}function $(C){Ve.call(this,n,C)}return n.$$set=C=>{"routes"in C&&t(3,i=C.routes),"prefix"in C&&t(4,s=C.prefix),"restoreScrollState"in C&&t(5,l=C.restoreScrollState)},n.$$.update=()=>{n.$$.dirty&32&&(history.scrollRestoration=l?"manual":"auto")},[a,u,f,i,s,l,k,$]}class b0 extends ye{constructor(e){super(),ve(this,e,_0,h0,be,{routes:3,prefix:4,restoreScrollState:5})}}const oo=[];let Mm;function Om(n){const e=n.pattern.test(Mm);su(n,n.className,e),su(n,n.inactiveClassName,!e)}function su(n,e,t){(e||"").split(" ").forEach(i=>{!i||(n.node.classList.remove(i),t&&n.node.classList.add(i))})}No.subscribe(n=>{Mm=n.location+(n.querystring?"?"+n.querystring:""),oo.map(Om)});function An(n,e){if(e&&(typeof e=="string"||typeof e=="object"&&e instanceof RegExp)?e={path:e}:e=e||{},!e.path&&n.hasAttribute("href")&&(e.path=n.getAttribute("href"),e.path&&e.path.length>1&&e.path.charAt(0)=="#"&&(e.path=e.path.substring(1))),e.className||(e.className="active"),!e.path||typeof e.path=="string"&&(e.path.length<1||e.path.charAt(0)!="/"&&e.path.charAt(0)!="*"))throw Error('Invalid value for "path" argument');const{pattern:t}=typeof e.path=="string"?Tm(e.path):{pattern:e.path},i={node:n,className:e.className,inactiveClassName:e.inactiveClassName,pattern:t};return oo.push(i),Om(i),{destroy(){oo.splice(oo.indexOf(i),1)}}}const v0="modulepreload",y0=function(n,e){return new URL(n,e).href},lu={},st=function(e,t,i){if(!t||t.length===0)return e();const s=document.getElementsByTagName("link");return Promise.all(t.map(l=>{if(l=y0(l,i),l in lu)return;lu[l]=!0;const o=l.endsWith(".css"),r=o?'[rel="stylesheet"]':"";if(!!i)for(let f=s.length-1;f>=0;f--){const c=s[f];if(c.href===l&&(!o||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${r}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":v0,o||(u.as="script",u.crossOrigin=""),u.href=l,document.head.appendChild(u),o)return new Promise((f,c)=>{u.addEventListener("load",f),u.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${l}`)))})})).then(()=>e())};var Dr=function(n,e){return Dr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t[s]=i[s])},Dr(n,e)};function Kt(n,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=n}Dr(n,e),n.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var Ar=function(){return Ar=Object.assign||function(n){for(var e,t=1,i=arguments.length;t0&&s[s.length-1])||f[0]!==6&&f[0]!==2)){o=0;continue}if(f[0]===3&&(!s||f[1]>s[0]&&f[1]>(-2*s&6)):0)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i);return o};var kl=function(){function n(e){e===void 0&&(e={}),this.load(e||{})}return n.prototype.load=function(e){for(var t=0,i=Object.entries(e);t0&&(!i.exp||i.exp-t>Date.now()/1e3))}(this.token)},enumerable:!1,configurable:!0}),n.prototype.save=function(e,t){this.baseToken=e||"",this.baseModel=t!==null&&typeof t=="object"?t.collectionId!==void 0?new Wi(t):new Yi(t):null,this.triggerChange()},n.prototype.clear=function(){this.baseToken="",this.baseModel=null,this.triggerChange()},n.prototype.loadFromCookie=function(e,t){t===void 0&&(t="pb_auth");var i=function(l,o){var r={};if(typeof l!="string")return r;for(var a=Object.assign({},o||{}).decode||k0,u=0;u4096&&(a.model={id:(s=a==null?void 0:a.model)===null||s===void 0?void 0:s.id,email:(l=a==null?void 0:a.model)===null||l===void 0?void 0:l.email},this.model instanceof Wi&&(a.model.username=this.model.username,a.model.verified=this.model.verified,a.model.collectionId=this.model.collectionId),u=ou(t,JSON.stringify(a),e)),u},n.prototype.onChange=function(e,t){var i=this;return t===void 0&&(t=!1),this._onChangeCallbacks.push(e),t&&e(this.token,this.model),function(){for(var s=i._onChangeCallbacks.length-1;s>=0;s--)if(i._onChangeCallbacks[s]==e)return delete i._onChangeCallbacks[s],void i._onChangeCallbacks.splice(s,1)}},n.prototype.triggerChange=function(){for(var e=0,t=this._onChangeCallbacks;e0?n:1,this.perPage=e>=0?e:0,this.totalItems=t>=0?t:0,this.totalPages=i>=0?i:0,this.items=s||[]},ua=function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return Kt(e,n),e.prototype.getFullList=function(t,i){return t===void 0&&(t=200),i===void 0&&(i={}),this._getFullList(this.baseCrudPath,t,i)},e.prototype.getList=function(t,i,s){return t===void 0&&(t=1),i===void 0&&(i=30),s===void 0&&(s={}),this._getList(this.baseCrudPath,t,i,s)},e.prototype.getFirstListItem=function(t,i){return i===void 0&&(i={}),this._getFirstListItem(this.baseCrudPath,t,i)},e.prototype.getOne=function(t,i){return i===void 0&&(i={}),this._getOne(this.baseCrudPath,t,i)},e.prototype.create=function(t,i){return t===void 0&&(t={}),i===void 0&&(i={}),this._create(this.baseCrudPath,t,i)},e.prototype.update=function(t,i,s){return i===void 0&&(i={}),s===void 0&&(s={}),this._update(this.baseCrudPath,t,i,s)},e.prototype.delete=function(t,i){return i===void 0&&(i={}),this._delete(this.baseCrudPath,t,i)},e}(function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return Kt(e,n),e.prototype._getFullList=function(t,i,s){var l=this;i===void 0&&(i=100),s===void 0&&(s={});var o=[],r=function(a){return Ut(l,void 0,void 0,function(){return Wt(this,function(u){return[2,this._getList(t,a,i,s).then(function(f){var c=f,d=c.items,h=c.totalItems;return o=o.concat(d),d.length&&h>o.length?r(a+1):o})]})})};return r(1)},e.prototype._getList=function(t,i,s,l){var o=this;return i===void 0&&(i=1),s===void 0&&(s=30),l===void 0&&(l={}),l=Object.assign({page:i,perPage:s},l),this.client.send(t,{method:"GET",params:l}).then(function(r){var a=[];if(r!=null&&r.items){r.items=r.items||[];for(var u=0,f=r.items;u=0;o--)this.subscriptions[t][o]===i&&(l=!0,delete this.subscriptions[t][o],this.subscriptions[t].splice(o,1),(s=this.eventSource)===null||s===void 0||s.removeEventListener(t,i));return l?(this.subscriptions[t].length||delete this.subscriptions[t],this.hasSubscriptionListeners()?[3,1]:(this.disconnect(),[3,3])):[2];case 1:return this.hasSubscriptionListeners(t)?[3,3]:[4,this.submitSubscriptions()];case 2:r.sent(),r.label=3;case 3:return[2]}})})},e.prototype.hasSubscriptionListeners=function(t){var i,s;if(this.subscriptions=this.subscriptions||{},t)return!!(!((i=this.subscriptions[t])===null||i===void 0)&&i.length);for(var l in this.subscriptions)if(!((s=this.subscriptions[l])===null||s===void 0)&&s.length)return!0;return!1},e.prototype.submitSubscriptions=function(){return Ut(this,void 0,void 0,function(){return Wt(this,function(t){return this.clientId?(this.addAllSubscriptionListeners(),this.lastSentTopics=this.getNonEmptySubscriptionTopics(),[2,this.client.send("/api/realtime",{method:"POST",body:{clientId:this.clientId,subscriptions:this.lastSentTopics},params:{$cancelKey:"realtime_"+this.clientId}}).catch(function(i){if(!(i!=null&&i.isAbort))throw i})]):[2]})})},e.prototype.getNonEmptySubscriptionTopics=function(){var t=[];for(var i in this.subscriptions)this.subscriptions[i].length&&t.push(i);return t},e.prototype.addAllSubscriptionListeners=function(){if(this.eventSource)for(var t in this.removeAllSubscriptionListeners(),this.subscriptions)for(var i=0,s=this.subscriptions[t];i0?[2]:[2,new Promise(function(s,l){t.pendingConnects.push({resolve:s,reject:l}),t.pendingConnects.length>1||t.initConnect()})]})})},e.prototype.initConnect=function(){var t=this;this.disconnect(!0),clearTimeout(this.connectTimeoutId),this.connectTimeoutId=setTimeout(function(){t.connectErrorHandler(new Error("EventSource connect took too long."))},this.maxConnectTimeout),this.eventSource=new EventSource(this.client.buildUrl("/api/realtime")),this.eventSource.onerror=function(i){t.connectErrorHandler(new Error("Failed to establish realtime connection."))},this.eventSource.addEventListener("PB_CONNECT",function(i){var s=i;t.clientId=s==null?void 0:s.lastEventId,t.submitSubscriptions().then(function(){return Ut(t,void 0,void 0,function(){var l;return Wt(this,function(o){switch(o.label){case 0:l=3,o.label=1;case 1:return this.hasUnsentSubscriptions()&&l>0?(l--,[4,this.submitSubscriptions()]):[3,3];case 2:return o.sent(),[3,1];case 3:return[2]}})})}).then(function(){for(var l=0,o=t.pendingConnects;lthis.maxReconnectAttempts){for(var s=0,l=this.pendingConnects;s=400)throw new al({url:k.url,status:k.status,data:$});return[2,$]}})})}).catch(function(k){throw new al(k)})]})})},n.prototype.getFileUrl=function(e,t,i){i===void 0&&(i={});var s=[];s.push("api"),s.push("files"),s.push(encodeURIComponent(e.collectionId||e.collectionName)),s.push(encodeURIComponent(e.id)),s.push(encodeURIComponent(t));var l=this.buildUrl(s.join("/"));if(Object.keys(i).length){var o=new URLSearchParams(i);l+=(l.includes("?")?"&":"?")+o}return l},n.prototype.buildUrl=function(e){var t=this.baseUrl+(this.baseUrl.endsWith("/")?"":"/");return e&&(t+=e.startsWith("/")?e.substring(1):e),t},n.prototype.serializeQueryParams=function(e){var t=[];for(var i in e)if(e[i]!==null){var s=e[i],l=encodeURIComponent(i);if(Array.isArray(s))for(var o=0,r=s;o"u"}function zi(n){return typeof n=="number"}function Ro(n){return typeof n=="number"&&n%1===0}function F0(n){return typeof n=="string"}function R0(n){return Object.prototype.toString.call(n)==="[object Date]"}function Qm(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function H0(n){return Array.isArray(n)?n:[n]}function au(n,e,t){if(n.length!==0)return n.reduce((i,s)=>{const l=[e(s),s];return i&&t(i[0],l[0])===i[0]?i:l},null)[1]}function j0(n,e){return e.reduce((t,i)=>(t[i]=n[i],t),{})}function ys(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function ii(n,e,t){return Ro(n)&&n>=e&&n<=t}function q0(n,e){return n-e*Math.floor(n/e)}function yt(n,e=2){const t=n<0;let i;return t?i="-"+(""+-n).padStart(e,"0"):i=(""+n).padStart(e,"0"),i}function di(n){if(!(Ge(n)||n===null||n===""))return parseInt(n,10)}function Ai(n){if(!(Ge(n)||n===null||n===""))return parseFloat(n)}function ca(n){if(!(Ge(n)||n===null||n==="")){const e=parseFloat("0."+n)*1e3;return Math.floor(e)}}function da(n,e,t=!1){const i=10**e;return(t?Math.trunc:Math.round)(n*i)/i}function wl(n){return n%4===0&&(n%100!==0||n%400===0)}function Xs(n){return wl(n)?366:365}function ho(n,e){const t=q0(e-1,12)+1,i=n+(e-t)/12;return t===2?wl(i)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function pa(n){let e=Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second,n.millisecond);return n.year<100&&n.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function mo(n){const e=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7,t=n-1,i=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return e===4||i===3?53:52}function Pr(n){return n>99?n:n>60?1900+n:2e3+n}function xm(n,e,t,i=null){const s=new Date(n),l={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(l.timeZone=i);const o={timeZoneName:e,...l},r=new Intl.DateTimeFormat(t,o).formatToParts(s).find(a=>a.type.toLowerCase()==="timezonename");return r?r.value:null}function Ho(n,e){let t=parseInt(n,10);Number.isNaN(t)&&(t=0);const i=parseInt(e,10)||0,s=t<0||Object.is(t,-0)?-i:i;return t*60+s}function eg(n){const e=Number(n);if(typeof n=="boolean"||n===""||Number.isNaN(e))throw new vn(`Invalid unit value ${n}`);return e}function go(n,e){const t={};for(const i in n)if(ys(n,i)){const s=n[i];if(s==null)continue;t[e(i)]=eg(s)}return t}function Qs(n,e){const t=Math.trunc(Math.abs(n/60)),i=Math.trunc(Math.abs(n%60)),s=n>=0?"+":"-";switch(e){case"short":return`${s}${yt(t,2)}:${yt(i,2)}`;case"narrow":return`${s}${t}${i>0?`:${i}`:""}`;case"techie":return`${s}${yt(t,2)}${yt(i,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function jo(n){return j0(n,["hour","minute","second","millisecond"])}const tg=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/,V0=["January","February","March","April","May","June","July","August","September","October","November","December"],ng=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],z0=["J","F","M","A","M","J","J","A","S","O","N","D"];function ig(n){switch(n){case"narrow":return[...z0];case"short":return[...ng];case"long":return[...V0];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const sg=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],lg=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],B0=["M","T","W","T","F","S","S"];function og(n){switch(n){case"narrow":return[...B0];case"short":return[...lg];case"long":return[...sg];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const rg=["AM","PM"],U0=["Before Christ","Anno Domini"],W0=["BC","AD"],Y0=["B","A"];function ag(n){switch(n){case"narrow":return[...Y0];case"short":return[...W0];case"long":return[...U0];default:return null}}function K0(n){return rg[n.hour<12?0:1]}function J0(n,e){return og(e)[n.weekday-1]}function Z0(n,e){return ig(e)[n.month-1]}function G0(n,e){return ag(e)[n.year<0?0:1]}function X0(n,e,t="always",i=!1){const s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},l=["hours","minutes","seconds"].indexOf(n)===-1;if(t==="auto"&&l){const c=n==="days";switch(e){case 1:return c?"tomorrow":`next ${s[n][0]}`;case-1:return c?"yesterday":`last ${s[n][0]}`;case 0:return c?"today":`this ${s[n][0]}`}}const o=Object.is(e,-0)||e<0,r=Math.abs(e),a=r===1,u=s[n],f=i?a?u[1]:u[2]||u[1]:a?s[n][0]:n;return o?`${r} ${f} ago`:`in ${r} ${f}`}function uu(n,e){let t="";for(const i of n)i.literal?t+=i.val:t+=e(i.val);return t}const Q0={D:Ir,DD:Pm,DDD:Lm,DDDD:Nm,t:Fm,tt:Rm,ttt:Hm,tttt:jm,T:qm,TT:Vm,TTT:zm,TTTT:Bm,f:Um,ff:Ym,fff:Jm,ffff:Gm,F:Wm,FF:Km,FFF:Zm,FFFF:Xm};class tn{static create(e,t={}){return new tn(e,t)}static parseFormat(e){let t=null,i="",s=!1;const l=[];for(let o=0;o0&&l.push({literal:s,val:i}),t=null,i="",s=!s):s||r===t?i+=r:(i.length>0&&l.push({literal:!1,val:i}),i=r,t=r)}return i.length>0&&l.push({literal:s,val:i}),l}static macroTokenToFormatOpts(e){return Q0[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}formatDateTime(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t}).format()}formatDateTimeParts(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t}).formatToParts()}resolvedOptions(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t}).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return yt(e,t);const i={...this.opts};return t>0&&(i.padTo=t),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){const i=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",l=(h,m)=>this.loc.extract(e,h,m),o=h=>e.isOffsetFixed&&e.offset===0&&h.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,h.format):"",r=()=>i?K0(e):l({hour:"numeric",hourCycle:"h12"},"dayperiod"),a=(h,m)=>i?Z0(e,h):l(m?{month:h}:{month:h,day:"numeric"},"month"),u=(h,m)=>i?J0(e,h):l(m?{weekday:h}:{weekday:h,month:"long",day:"numeric"},"weekday"),f=h=>{const m=tn.macroTokenToFormatOpts(h);return m?this.formatWithSystemDefault(e,m):h},c=h=>i?G0(e,h):l({era:h},"era"),d=h=>{switch(h){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return r();case"d":return s?l({day:"numeric"},"day"):this.num(e.day);case"dd":return s?l({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return s?l({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?l({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return a("short",!0);case"LLLL":return a("long",!0);case"LLLLL":return a("narrow",!0);case"M":return s?l({month:"numeric"},"month"):this.num(e.month);case"MM":return s?l({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return a("short",!1);case"MMMM":return a("long",!1);case"MMMMM":return a("narrow",!1);case"y":return s?l({year:"numeric"},"year"):this.num(e.year);case"yy":return s?l({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?l({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?l({year:"numeric"},"year"):this.num(e.year,6);case"G":return c("short");case"GG":return c("long");case"GGGGG":return c("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return f(h)}};return uu(tn.parseFormat(t),d)}formatDurationFromString(e,t){const i=a=>{switch(a[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=a=>u=>{const f=i(u);return f?this.num(a.get(f),u.length):u},l=tn.parseFormat(t),o=l.reduce((a,{literal:u,val:f})=>u?a:a.concat(f),[]),r=e.shiftTo(...o.map(i).filter(a=>a));return uu(l,s(r))}}class En{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}class Sl{get type(){throw new fi}get name(){throw new fi}get ianaName(){return this.name}get isUniversal(){throw new fi}offsetName(e,t){throw new fi}formatOffset(e,t){throw new fi}offset(e){throw new fi}equals(e){throw new fi}get isValid(){throw new fi}}let Xo=null;class ha extends Sl{static get instance(){return Xo===null&&(Xo=new ha),Xo}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return xm(e,t,i)}formatOffset(e,t){return Qs(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}let ro={};function x0(n){return ro[n]||(ro[n]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:n,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),ro[n]}const eb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function tb(n,e){const t=n.format(e).replace(/\u200E/g,""),i=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(t),[,s,l,o,r,a,u,f]=i;return[o,s,l,r,a,u,f]}function nb(n,e){const t=n.formatToParts(e),i=[];for(let s=0;s=0?m:1e3+m,(d-h)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let Qo=null;class Yt extends Sl{static get utcInstance(){return Qo===null&&(Qo=new Yt(0)),Qo}static instance(e){return e===0?Yt.utcInstance:new Yt(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new Yt(Ho(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Qs(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Qs(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return Qs(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class ib extends Sl{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function pi(n,e){if(Ge(n)||n===null)return e;if(n instanceof Sl)return n;if(F0(n)){const t=n.toLowerCase();return t==="local"||t==="system"?e:t==="utc"||t==="gmt"?Yt.utcInstance:Yt.parseSpecifier(t)||si.create(n)}else return zi(n)?Yt.instance(n):typeof n=="object"&&n.offset&&typeof n.offset=="number"?n:new ib(n)}let fu=()=>Date.now(),cu="system",du=null,pu=null,hu=null,mu;class Tt{static get now(){return fu}static set now(e){fu=e}static set defaultZone(e){cu=e}static get defaultZone(){return pi(cu,ha.instance)}static get defaultLocale(){return du}static set defaultLocale(e){du=e}static get defaultNumberingSystem(){return pu}static set defaultNumberingSystem(e){pu=e}static get defaultOutputCalendar(){return hu}static set defaultOutputCalendar(e){hu=e}static get throwOnInvalid(){return mu}static set throwOnInvalid(e){mu=e}static resetCaches(){ct.resetCache(),si.resetCache()}}let gu={};function sb(n,e={}){const t=JSON.stringify([n,e]);let i=gu[t];return i||(i=new Intl.ListFormat(n,e),gu[t]=i),i}let Lr={};function Nr(n,e={}){const t=JSON.stringify([n,e]);let i=Lr[t];return i||(i=new Intl.DateTimeFormat(n,e),Lr[t]=i),i}let Fr={};function lb(n,e={}){const t=JSON.stringify([n,e]);let i=Fr[t];return i||(i=new Intl.NumberFormat(n,e),Fr[t]=i),i}let Rr={};function ob(n,e={}){const{base:t,...i}=e,s=JSON.stringify([n,i]);let l=Rr[s];return l||(l=new Intl.RelativeTimeFormat(n,e),Rr[s]=l),l}let Js=null;function rb(){return Js||(Js=new Intl.DateTimeFormat().resolvedOptions().locale,Js)}function ab(n){const e=n.indexOf("-u-");if(e===-1)return[n];{let t;const i=n.substring(0,e);try{t=Nr(n).resolvedOptions()}catch{t=Nr(i).resolvedOptions()}const{numberingSystem:s,calendar:l}=t;return[i,s,l]}}function ub(n,e,t){return(t||e)&&(n+="-u",t&&(n+=`-ca-${t}`),e&&(n+=`-nu-${e}`)),n}function fb(n){const e=[];for(let t=1;t<=12;t++){const i=He.utc(2016,t,1);e.push(n(i))}return e}function cb(n){const e=[];for(let t=1;t<=7;t++){const i=He.utc(2016,11,13+t);e.push(n(i))}return e}function Hl(n,e,t,i,s){const l=n.listingMode(t);return l==="error"?null:l==="en"?i(e):s(e)}function db(n){return n.numberingSystem&&n.numberingSystem!=="latn"?!1:n.numberingSystem==="latn"||!n.locale||n.locale.startsWith("en")||new Intl.DateTimeFormat(n.intl).resolvedOptions().numberingSystem==="latn"}class pb{constructor(e,t,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;const{padTo:s,floor:l,...o}=i;if(!t||Object.keys(o).length>0){const r={useGrouping:!1,...i};i.padTo>0&&(r.minimumIntegerDigits=i.padTo),this.inf=lb(e,r)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{const t=this.floor?Math.floor(e):da(e,3);return yt(t,this.padTo)}}}class hb{constructor(e,t,i){this.opts=i;let s;if(e.zone.isUniversal){const o=-1*(e.offset/60),r=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&si.create(r).valid?(s=r,this.dt=e):(s="UTC",i.timeZoneName?this.dt=e:this.dt=e.offset===0?e:He.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,s=e.zone.name);const l={...this.opts};s&&(l.timeZone=s),this.dtf=Nr(t,l)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}}class mb{constructor(e,t,i){this.opts={style:"long",...i},!t&&Qm()&&(this.rtf=ob(e,i))}format(e,t){return this.rtf?this.rtf.format(e,t):X0(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}class ct{static fromOpts(e){return ct.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,t,i,s=!1){const l=e||Tt.defaultLocale,o=l||(s?"en-US":rb()),r=t||Tt.defaultNumberingSystem,a=i||Tt.defaultOutputCalendar;return new ct(o,r,a,l)}static resetCache(){Js=null,Lr={},Fr={},Rr={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:i}={}){return ct.create(e,t,i)}constructor(e,t,i,s){const[l,o,r]=ab(e);this.locale=l,this.numberingSystem=t||o||null,this.outputCalendar=i||r||null,this.intl=ub(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=db(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:ct.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1,i=!0){return Hl(this,e,i,ig,()=>{const s=t?{month:e,day:"numeric"}:{month:e},l=t?"format":"standalone";return this.monthsCache[l][e]||(this.monthsCache[l][e]=fb(o=>this.extract(o,s,"month"))),this.monthsCache[l][e]})}weekdays(e,t=!1,i=!0){return Hl(this,e,i,og,()=>{const s=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},l=t?"format":"standalone";return this.weekdaysCache[l][e]||(this.weekdaysCache[l][e]=cb(o=>this.extract(o,s,"weekday"))),this.weekdaysCache[l][e]})}meridiems(e=!0){return Hl(this,void 0,e,()=>rg,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[He.utc(2016,11,13,9),He.utc(2016,11,13,19)].map(i=>this.extract(i,t,"dayperiod"))}return this.meridiemCache})}eras(e,t=!0){return Hl(this,e,t,ag,()=>{const i={era:e};return this.eraCache[e]||(this.eraCache[e]=[He.utc(-40,1,1),He.utc(2017,1,1)].map(s=>this.extract(s,i,"era"))),this.eraCache[e]})}extract(e,t,i){const s=this.dtFormatter(e,t),l=s.formatToParts(),o=l.find(r=>r.type.toLowerCase()===i);return o?o.value:null}numberFormatter(e={}){return new pb(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new hb(e,this.intl,t)}relFormatter(e={}){return new mb(this.intl,this.isEnglish(),e)}listFormatter(e={}){return sb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}}function Ms(...n){const e=n.reduce((t,i)=>t+i.source,"");return RegExp(`^${e}$`)}function Os(...n){return e=>n.reduce(([t,i,s],l)=>{const[o,r,a]=l(e,s);return[{...t,...o},r||i,a]},[{},null,1]).slice(0,2)}function Ds(n,...e){if(n==null)return[null,null];for(const[t,i]of e){const s=t.exec(n);if(s)return i(s)}return[null,null]}function ug(...n){return(e,t)=>{const i={};let s;for(s=0;sh!==void 0&&(m||h&&f)?-h:h;return[{years:d(Ai(t)),months:d(Ai(i)),weeks:d(Ai(s)),days:d(Ai(l)),hours:d(Ai(o)),minutes:d(Ai(r)),seconds:d(Ai(a),a==="-0"),milliseconds:d(ca(u),c)}]}const Ob={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function _a(n,e,t,i,s,l,o){const r={year:e.length===2?Pr(di(e)):di(e),month:ng.indexOf(t)+1,day:di(i),hour:di(s),minute:di(l)};return o&&(r.second=di(o)),n&&(r.weekday=n.length>3?sg.indexOf(n)+1:lg.indexOf(n)+1),r}const Db=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Ab(n){const[,e,t,i,s,l,o,r,a,u,f,c]=n,d=_a(e,s,i,t,l,o,r);let h;return a?h=Ob[a]:u?h=0:h=Ho(f,c),[d,new Yt(h)]}function Eb(n){return n.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const Ib=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Pb=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Lb=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function _u(n){const[,e,t,i,s,l,o,r]=n;return[_a(e,s,i,t,l,o,r),Yt.utcInstance]}function Nb(n){const[,e,t,i,s,l,o,r]=n;return[_a(e,r,t,i,s,l,o),Yt.utcInstance]}const Fb=Ms(_b,ga),Rb=Ms(bb,ga),Hb=Ms(vb,ga),jb=Ms(cg),pg=Os($b,As,$l,Cl),qb=Os(yb,As,$l,Cl),Vb=Os(kb,As,$l,Cl),zb=Os(As,$l,Cl);function Bb(n){return Ds(n,[Fb,pg],[Rb,qb],[Hb,Vb],[jb,zb])}function Ub(n){return Ds(Eb(n),[Db,Ab])}function Wb(n){return Ds(n,[Ib,_u],[Pb,_u],[Lb,Nb])}function Yb(n){return Ds(n,[Tb,Mb])}const Kb=Os(As);function Jb(n){return Ds(n,[Cb,Kb])}const Zb=Ms(wb,Sb),Gb=Ms(dg),Xb=Os(As,$l,Cl);function Qb(n){return Ds(n,[Zb,pg],[Gb,Xb])}const xb="Invalid Duration",hg={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},e1={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...hg},hn=146097/400,as=146097/4800,t1={years:{quarters:4,months:12,weeks:hn/7,days:hn,hours:hn*24,minutes:hn*24*60,seconds:hn*24*60*60,milliseconds:hn*24*60*60*1e3},quarters:{months:3,weeks:hn/28,days:hn/4,hours:hn*24/4,minutes:hn*24*60/4,seconds:hn*24*60*60/4,milliseconds:hn*24*60*60*1e3/4},months:{weeks:as/7,days:as,hours:as*24,minutes:as*24*60,seconds:as*24*60*60,milliseconds:as*24*60*60*1e3},...hg},Fi=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],n1=Fi.slice(0).reverse();function Ei(n,e,t=!1){const i={values:t?e.values:{...n.values,...e.values||{}},loc:n.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||n.conversionAccuracy};return new et(i)}function i1(n){return n<0?Math.floor(n):Math.ceil(n)}function mg(n,e,t,i,s){const l=n[s][t],o=e[t]/l,r=Math.sign(o)===Math.sign(i[s]),a=!r&&i[s]!==0&&Math.abs(o)<=1?i1(o):Math.trunc(o);i[s]+=a,e[t]-=a*l}function s1(n,e){n1.reduce((t,i)=>Ge(e[i])?t:(t&&mg(n,e,t,e,i),i),null)}class et{constructor(e){const t=e.conversionAccuracy==="longterm"||!1;this.values=e.values,this.loc=e.loc||ct.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?t1:e1,this.isLuxonDuration=!0}static fromMillis(e,t){return et.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new vn(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new et({values:go(e,et.normalizeUnit),loc:ct.fromObject(t),conversionAccuracy:t.conversionAccuracy})}static fromDurationLike(e){if(zi(e))return et.fromMillis(e);if(et.isDuration(e))return e;if(typeof e=="object")return et.fromObject(e);throw new vn(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){const[i]=Yb(e);return i?et.fromObject(i,t):et.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){const[i]=Jb(e);return i?et.fromObject(i,t):et.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new vn("need to specify a reason the Duration is invalid");const i=e instanceof En?e:new En(e,t);if(Tt.throwOnInvalid)throw new P0(i);return new et({invalid:i})}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new Im(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){const i={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?tn.create(this.loc,i).formatDurationFromString(this,e):xb}toHuman(e={}){const t=Fi.map(i=>{const s=this.values[i];return Ge(s)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(s)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=da(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();if(t<0||t>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};const i=this.shiftTo("hours","minutes","seconds","milliseconds");let s=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||i.seconds!==0||i.milliseconds!==0)&&(s+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||i.milliseconds!==0)&&(s+=".SSS"));let l=i.toFormat(s);return e.includePrefix&&(l="T"+l),l}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=et.fromDurationLike(e),i={};for(const s of Fi)(ys(t.values,s)||ys(this.values,s))&&(i[s]=t.get(s)+this.get(s));return Ei(this,{values:i},!0)}minus(e){if(!this.isValid)return this;const t=et.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const i of Object.keys(this.values))t[i]=eg(e(this.values[i],i));return Ei(this,{values:t},!0)}get(e){return this[et.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const t={...this.values,...go(e,et.normalizeUnit)};return Ei(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:i}={}){const s=this.loc.clone({locale:e,numberingSystem:t}),l={loc:s};return i&&(l.conversionAccuracy=i),Ei(this,l)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return s1(this.matrix,e),Ei(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>et.normalizeUnit(o));const t={},i={},s=this.toObject();let l;for(const o of Fi)if(e.indexOf(o)>=0){l=o;let r=0;for(const u in i)r+=this.matrix[u][o]*i[u],i[u]=0;zi(s[o])&&(r+=s[o]);const a=Math.trunc(r);t[o]=a,i[o]=(r*1e3-a*1e3)/1e3;for(const u in s)Fi.indexOf(u)>Fi.indexOf(o)&&mg(this.matrix,s,u,t,o)}else zi(s[o])&&(i[o]=s[o]);for(const o in i)i[o]!==0&&(t[l]+=o===l?i[o]:i[o]/this.matrix[l][o]);return Ei(this,{values:t},!0).normalize()}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return Ei(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(i,s){return i===void 0||i===0?s===void 0||s===0:i===s}for(const i of Fi)if(!t(this.values[i],e.values[i]))return!1;return!0}}const Ns="Invalid Interval";function l1(n,e){return!n||!n.isValid?dt.invalid("missing or invalid start"):!e||!e.isValid?dt.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?dt.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];const t=e.map(Hs).filter(o=>this.contains(o)).sort(),i=[];let{s}=this,l=0;for(;s+this.e?this.e:o;i.push(dt.fromDateTimes(s,r)),s=r,l+=1}return i}splitBy(e){const t=et.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:i}=this,s=1,l;const o=[];for(;ia*s));l=+r>+this.e?this.e:r,o.push(dt.fromDateTimes(i,l)),i=l,s+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,i=this.e=i?null:dt.fromDateTimes(t,i)}union(e){if(!this.isValid)return this;const t=this.se.e?this.e:e.e;return dt.fromDateTimes(t,i)}static merge(e){const[t,i]=e.sort((s,l)=>s.s-l.s).reduce(([s,l],o)=>l?l.overlaps(o)||l.abutsStart(o)?[s,l.union(o)]:[s.concat([l]),o]:[s,o],[[],null]);return i&&t.push(i),t}static xor(e){let t=null,i=0;const s=[],l=e.map(a=>[{time:a.s,type:"s"},{time:a.e,type:"e"}]),o=Array.prototype.concat(...l),r=o.sort((a,u)=>a.time-u.time);for(const a of r)i+=a.type==="s"?1:-1,i===1?t=a.time:(t&&+t!=+a.time&&s.push(dt.fromDateTimes(t,a.time)),t=null);return dt.merge(s)}difference(...e){return dt.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Ns}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Ns}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ns}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Ns}toFormat(e,{separator:t=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Ns}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):et.invalid(this.invalidReason)}mapEndpoints(e){return dt.fromDateTimes(e(this.s),e(this.e))}}class jl{static hasDST(e=Tt.defaultZone){const t=He.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return si.isValidZone(e)}static normalizeZone(e){return pi(e,Tt.defaultZone)}static months(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:l="gregory"}={}){return(s||ct.create(t,i,l)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:l="gregory"}={}){return(s||ct.create(t,i,l)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ct.create(t,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ct.create(t,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ct.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return ct.create(t,null,"gregory").eras(e)}static features(){return{relative:Qm()}}}function bu(n,e){const t=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),i=t(e)-t(n);return Math.floor(et.fromMillis(i).as("days"))}function o1(n,e,t){const i=[["years",(r,a)=>a.year-r.year],["quarters",(r,a)=>a.quarter-r.quarter],["months",(r,a)=>a.month-r.month+(a.year-r.year)*12],["weeks",(r,a)=>{const u=bu(r,a);return(u-u%7)/7}],["days",bu]],s={};let l,o;for(const[r,a]of i)if(t.indexOf(r)>=0){l=r;let u=a(n,e);o=n.plus({[r]:u}),o>e?(n=n.plus({[r]:u-1}),u-=1):n=o,s[r]=u}return[n,s,o,l]}function r1(n,e,t,i){let[s,l,o,r]=o1(n,e,t);const a=e-s,u=t.filter(c=>["hours","minutes","seconds","milliseconds"].indexOf(c)>=0);u.length===0&&(o0?et.fromMillis(a,i).shiftTo(...u).plus(f):f}const ba={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},vu={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},a1=ba.hanidec.replace(/[\[|\]]/g,"").split("");function u1(n){let e=parseInt(n,10);if(isNaN(e)){e="";for(let t=0;t=l&&i<=o&&(e+=i-l)}}return parseInt(e,10)}else return e}function On({numberingSystem:n},e=""){return new RegExp(`${ba[n||"latn"]}${e}`)}const f1="missing Intl.DateTimeFormat.formatToParts support";function tt(n,e=t=>t){return{regex:n,deser:([t])=>e(u1(t))}}const c1=String.fromCharCode(160),gg=`[ ${c1}]`,_g=new RegExp(gg,"g");function d1(n){return n.replace(/\./g,"\\.?").replace(_g,gg)}function yu(n){return n.replace(/\./g,"").replace(_g," ").toLowerCase()}function Dn(n,e){return n===null?null:{regex:RegExp(n.map(d1).join("|")),deser:([t])=>n.findIndex(i=>yu(t)===yu(i))+e}}function ku(n,e){return{regex:n,deser:([,t,i])=>Ho(t,i),groups:e}}function xo(n){return{regex:n,deser:([e])=>e}}function p1(n){return n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function h1(n,e){const t=On(e),i=On(e,"{2}"),s=On(e,"{3}"),l=On(e,"{4}"),o=On(e,"{6}"),r=On(e,"{1,2}"),a=On(e,"{1,3}"),u=On(e,"{1,6}"),f=On(e,"{1,9}"),c=On(e,"{2,4}"),d=On(e,"{4,6}"),h=g=>({regex:RegExp(p1(g.val)),deser:([y])=>y,literal:!0}),b=(g=>{if(n.literal)return h(g);switch(g.val){case"G":return Dn(e.eras("short",!1),0);case"GG":return Dn(e.eras("long",!1),0);case"y":return tt(u);case"yy":return tt(c,Pr);case"yyyy":return tt(l);case"yyyyy":return tt(d);case"yyyyyy":return tt(o);case"M":return tt(r);case"MM":return tt(i);case"MMM":return Dn(e.months("short",!0,!1),1);case"MMMM":return Dn(e.months("long",!0,!1),1);case"L":return tt(r);case"LL":return tt(i);case"LLL":return Dn(e.months("short",!1,!1),1);case"LLLL":return Dn(e.months("long",!1,!1),1);case"d":return tt(r);case"dd":return tt(i);case"o":return tt(a);case"ooo":return tt(s);case"HH":return tt(i);case"H":return tt(r);case"hh":return tt(i);case"h":return tt(r);case"mm":return tt(i);case"m":return tt(r);case"q":return tt(r);case"qq":return tt(i);case"s":return tt(r);case"ss":return tt(i);case"S":return tt(a);case"SSS":return tt(s);case"u":return xo(f);case"uu":return xo(r);case"uuu":return tt(t);case"a":return Dn(e.meridiems(),0);case"kkkk":return tt(l);case"kk":return tt(c,Pr);case"W":return tt(r);case"WW":return tt(i);case"E":case"c":return tt(t);case"EEE":return Dn(e.weekdays("short",!1,!1),1);case"EEEE":return Dn(e.weekdays("long",!1,!1),1);case"ccc":return Dn(e.weekdays("short",!0,!1),1);case"cccc":return Dn(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return ku(new RegExp(`([+-]${r.source})(?::(${i.source}))?`),2);case"ZZZ":return ku(new RegExp(`([+-]${r.source})(${i.source})?`),2);case"z":return xo(/[a-z_+-/]{1,256}?/i);default:return h(g)}})(n)||{invalidReason:f1};return b.token=n,b}const m1={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};function g1(n,e,t){const{type:i,value:s}=n;if(i==="literal")return{literal:!0,val:s};const l=t[i];let o=m1[i];if(typeof o=="object"&&(o=o[l]),o)return{literal:!1,val:o}}function _1(n){return[`^${n.map(t=>t.regex).reduce((t,i)=>`${t}(${i.source})`,"")}$`,n]}function b1(n,e,t){const i=n.match(e);if(i){const s={};let l=1;for(const o in t)if(ys(t,o)){const r=t[o],a=r.groups?r.groups+1:1;!r.literal&&r.token&&(s[r.token.val[0]]=r.deser(i.slice(l,l+a))),l+=a}return[i,s]}else return[i,{}]}function v1(n){const e=l=>{switch(l){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let t=null,i;return Ge(n.z)||(t=si.create(n.z)),Ge(n.Z)||(t||(t=new Yt(n.Z)),i=n.Z),Ge(n.q)||(n.M=(n.q-1)*3+1),Ge(n.h)||(n.h<12&&n.a===1?n.h+=12:n.h===12&&n.a===0&&(n.h=0)),n.G===0&&n.y&&(n.y=-n.y),Ge(n.u)||(n.S=ca(n.u)),[Object.keys(n).reduce((l,o)=>{const r=e(o);return r&&(l[r]=n[o]),l},{}),t,i]}let er=null;function y1(){return er||(er=He.fromMillis(1555555555555)),er}function k1(n,e){if(n.literal)return n;const t=tn.macroTokenToFormatOpts(n.val);if(!t)return n;const l=tn.create(e,t).formatDateTimeParts(y1()).map(o=>g1(o,e,t));return l.includes(void 0)?n:l}function w1(n,e){return Array.prototype.concat(...n.map(t=>k1(t,e)))}function bg(n,e,t){const i=w1(tn.parseFormat(t),n),s=i.map(o=>h1(o,n)),l=s.find(o=>o.invalidReason);if(l)return{input:e,tokens:i,invalidReason:l.invalidReason};{const[o,r]=_1(s),a=RegExp(o,"i"),[u,f]=b1(e,a,r),[c,d,h]=f?v1(f):[null,null,void 0];if(ys(f,"a")&&ys(f,"H"))throw new Ks("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:i,regex:a,rawMatches:u,matches:f,result:c,zone:d,specificOffset:h}}}function S1(n,e,t){const{result:i,zone:s,specificOffset:l,invalidReason:o}=bg(n,e,t);return[i,s,l,o]}const vg=[0,31,59,90,120,151,181,212,243,273,304,334],yg=[0,31,60,91,121,152,182,213,244,274,305,335];function kn(n,e){return new En("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${n}, which is invalid`)}function kg(n,e,t){const i=new Date(Date.UTC(n,e-1,t));n<100&&n>=0&&i.setUTCFullYear(i.getUTCFullYear()-1900);const s=i.getUTCDay();return s===0?7:s}function wg(n,e,t){return t+(wl(n)?yg:vg)[e-1]}function Sg(n,e){const t=wl(n)?yg:vg,i=t.findIndex(l=>lmo(e)?(r=e+1,o=1):r=e,{weekYear:r,weekNumber:o,weekday:l,...jo(n)}}function wu(n){const{weekYear:e,weekNumber:t,weekday:i}=n,s=kg(e,1,4),l=Xs(e);let o=t*7+i-s-3,r;o<1?(r=e-1,o+=Xs(r)):o>l?(r=e+1,o-=Xs(e)):r=e;const{month:a,day:u}=Sg(r,o);return{year:r,month:a,day:u,...jo(n)}}function tr(n){const{year:e,month:t,day:i}=n,s=wg(e,t,i);return{year:e,ordinal:s,...jo(n)}}function Su(n){const{year:e,ordinal:t}=n,{month:i,day:s}=Sg(e,t);return{year:e,month:i,day:s,...jo(n)}}function $1(n){const e=Ro(n.weekYear),t=ii(n.weekNumber,1,mo(n.weekYear)),i=ii(n.weekday,1,7);return e?t?i?!1:kn("weekday",n.weekday):kn("week",n.week):kn("weekYear",n.weekYear)}function C1(n){const e=Ro(n.year),t=ii(n.ordinal,1,Xs(n.year));return e?t?!1:kn("ordinal",n.ordinal):kn("year",n.year)}function $g(n){const e=Ro(n.year),t=ii(n.month,1,12),i=ii(n.day,1,ho(n.year,n.month));return e?t?i?!1:kn("day",n.day):kn("month",n.month):kn("year",n.year)}function Cg(n){const{hour:e,minute:t,second:i,millisecond:s}=n,l=ii(e,0,23)||e===24&&t===0&&i===0&&s===0,o=ii(t,0,59),r=ii(i,0,59),a=ii(s,0,999);return l?o?r?a?!1:kn("millisecond",s):kn("second",i):kn("minute",t):kn("hour",e)}const nr="Invalid DateTime",$u=864e13;function ql(n){return new En("unsupported zone",`the zone "${n.name}" is not supported`)}function ir(n){return n.weekData===null&&(n.weekData=Hr(n.c)),n.weekData}function Fs(n,e){const t={ts:n.ts,zone:n.zone,c:n.c,o:n.o,loc:n.loc,invalid:n.invalid};return new He({...t,...e,old:t})}function Tg(n,e,t){let i=n-e*60*1e3;const s=t.offset(i);if(e===s)return[i,e];i-=(s-e)*60*1e3;const l=t.offset(i);return s===l?[i,s]:[n-Math.min(s,l)*60*1e3,Math.max(s,l)]}function Cu(n,e){n+=e*60*1e3;const t=new Date(n);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function ao(n,e,t){return Tg(pa(n),e,t)}function Tu(n,e){const t=n.o,i=n.c.year+Math.trunc(e.years),s=n.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,l={...n.c,year:i,month:s,day:Math.min(n.c.day,ho(i,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=et.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),r=pa(l);let[a,u]=Tg(r,t,n.zone);return o!==0&&(a+=o,u=n.zone.offset(a)),{ts:a,o:u}}function Rs(n,e,t,i,s,l){const{setZone:o,zone:r}=t;if(n&&Object.keys(n).length!==0){const a=e||r,u=He.fromObject(n,{...t,zone:a,specificOffset:l});return o?u:u.setZone(r)}else return He.invalid(new En("unparsable",`the input "${s}" can't be parsed as ${i}`))}function Vl(n,e,t=!0){return n.isValid?tn.create(ct.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(n,e):null}function sr(n,e){const t=n.c.year>9999||n.c.year<0;let i="";return t&&n.c.year>=0&&(i+="+"),i+=yt(n.c.year,t?6:4),e?(i+="-",i+=yt(n.c.month),i+="-",i+=yt(n.c.day)):(i+=yt(n.c.month),i+=yt(n.c.day)),i}function Mu(n,e,t,i,s,l){let o=yt(n.c.hour);return e?(o+=":",o+=yt(n.c.minute),(n.c.second!==0||!t)&&(o+=":")):o+=yt(n.c.minute),(n.c.second!==0||!t)&&(o+=yt(n.c.second),(n.c.millisecond!==0||!i)&&(o+=".",o+=yt(n.c.millisecond,3))),s&&(n.isOffsetFixed&&n.offset===0&&!l?o+="Z":n.o<0?(o+="-",o+=yt(Math.trunc(-n.o/60)),o+=":",o+=yt(Math.trunc(-n.o%60))):(o+="+",o+=yt(Math.trunc(n.o/60)),o+=":",o+=yt(Math.trunc(n.o%60)))),l&&(o+="["+n.zone.ianaName+"]"),o}const Mg={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},T1={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},M1={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Og=["year","month","day","hour","minute","second","millisecond"],O1=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],D1=["year","ordinal","hour","minute","second","millisecond"];function Ou(n){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[n.toLowerCase()];if(!e)throw new Im(n);return e}function Du(n,e){const t=pi(e.zone,Tt.defaultZone),i=ct.fromObject(e),s=Tt.now();let l,o;if(Ge(n.year))l=s;else{for(const u of Og)Ge(n[u])&&(n[u]=Mg[u]);const r=$g(n)||Cg(n);if(r)return He.invalid(r);const a=t.offset(s);[l,o]=ao(n,a,t)}return new He({ts:l,zone:t,loc:i,o})}function Au(n,e,t){const i=Ge(t.round)?!0:t.round,s=(o,r)=>(o=da(o,i||t.calendary?0:2,!0),e.loc.clone(t).relFormatter(t).format(o,r)),l=o=>t.calendary?e.hasSame(n,o)?0:e.startOf(o).diff(n.startOf(o),o).get(o):e.diff(n,o).get(o);if(t.unit)return s(l(t.unit),t.unit);for(const o of t.units){const r=l(o);if(Math.abs(r)>=1)return s(r,o)}return s(n>e?-0:0,t.units[t.units.length-1])}function Eu(n){let e={},t;return n.length>0&&typeof n[n.length-1]=="object"?(e=n[n.length-1],t=Array.from(n).slice(0,n.length-1)):t=Array.from(n),[e,t]}class He{constructor(e){const t=e.zone||Tt.defaultZone;let i=e.invalid||(Number.isNaN(e.ts)?new En("invalid input"):null)||(t.isValid?null:ql(t));this.ts=Ge(e.ts)?Tt.now():e.ts;let s=null,l=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,l]=[e.old.c,e.old.o];else{const r=t.offset(this.ts);s=Cu(this.ts,r),i=Number.isNaN(s.year)?new En("invalid input"):null,s=i?null:s,l=i?null:r}this._zone=t,this.loc=e.loc||ct.create(),this.invalid=i,this.weekData=null,this.c=s,this.o=l,this.isLuxonDateTime=!0}static now(){return new He({})}static local(){const[e,t]=Eu(arguments),[i,s,l,o,r,a,u]=t;return Du({year:i,month:s,day:l,hour:o,minute:r,second:a,millisecond:u},e)}static utc(){const[e,t]=Eu(arguments),[i,s,l,o,r,a,u]=t;return e.zone=Yt.utcInstance,Du({year:i,month:s,day:l,hour:o,minute:r,second:a,millisecond:u},e)}static fromJSDate(e,t={}){const i=R0(e)?e.valueOf():NaN;if(Number.isNaN(i))return He.invalid("invalid input");const s=pi(t.zone,Tt.defaultZone);return s.isValid?new He({ts:i,zone:s,loc:ct.fromObject(t)}):He.invalid(ql(s))}static fromMillis(e,t={}){if(zi(e))return e<-$u||e>$u?He.invalid("Timestamp out of range"):new He({ts:e,zone:pi(t.zone,Tt.defaultZone),loc:ct.fromObject(t)});throw new vn(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(zi(e))return new He({ts:e*1e3,zone:pi(t.zone,Tt.defaultZone),loc:ct.fromObject(t)});throw new vn("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};const i=pi(t.zone,Tt.defaultZone);if(!i.isValid)return He.invalid(ql(i));const s=Tt.now(),l=Ge(t.specificOffset)?i.offset(s):t.specificOffset,o=go(e,Ou),r=!Ge(o.ordinal),a=!Ge(o.year),u=!Ge(o.month)||!Ge(o.day),f=a||u,c=o.weekYear||o.weekNumber,d=ct.fromObject(t);if((f||r)&&c)throw new Ks("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&r)throw new Ks("Can't mix ordinal dates with month/day");const h=c||o.weekday&&!f;let m,b,g=Cu(s,l);h?(m=O1,b=T1,g=Hr(g)):r?(m=D1,b=M1,g=tr(g)):(m=Og,b=Mg);let y=!1;for(const E of m){const I=o[E];Ge(I)?y?o[E]=b[E]:o[E]=g[E]:y=!0}const k=h?$1(o):r?C1(o):$g(o),$=k||Cg(o);if($)return He.invalid($);const C=h?wu(o):r?Su(o):o,[T,M]=ao(C,l,i),D=new He({ts:T,zone:i,o:M,loc:d});return o.weekday&&f&&e.weekday!==D.weekday?He.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${D.toISO()}`):D}static fromISO(e,t={}){const[i,s]=Bb(e);return Rs(i,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[i,s]=Ub(e);return Rs(i,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[i,s]=Wb(e);return Rs(i,s,t,"HTTP",t)}static fromFormat(e,t,i={}){if(Ge(e)||Ge(t))throw new vn("fromFormat requires an input string and a format");const{locale:s=null,numberingSystem:l=null}=i,o=ct.fromOpts({locale:s,numberingSystem:l,defaultToEN:!0}),[r,a,u,f]=S1(o,e,t);return f?He.invalid(f):Rs(r,a,i,`format ${t}`,e,u)}static fromString(e,t,i={}){return He.fromFormat(e,t,i)}static fromSQL(e,t={}){const[i,s]=Qb(e);return Rs(i,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new vn("need to specify a reason the DateTime is invalid");const i=e instanceof En?e:new En(e,t);if(Tt.throwOnInvalid)throw new E0(i);return new He({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?ir(this).weekYear:NaN}get weekNumber(){return this.isValid?ir(this).weekNumber:NaN}get weekday(){return this.isValid?ir(this).weekday:NaN}get ordinal(){return this.isValid?tr(this.c).ordinal:NaN}get monthShort(){return this.isValid?jl.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?jl.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?jl.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?jl.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return wl(this.year)}get daysInMonth(){return ho(this.year,this.month)}get daysInYear(){return this.isValid?Xs(this.year):NaN}get weeksInWeekYear(){return this.isValid?mo(this.weekYear):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:i,calendar:s}=tn.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:i,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(Yt.instance(e),t)}toLocal(){return this.setZone(Tt.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:i=!1}={}){if(e=pi(e,Tt.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||i){const l=e.offset(this.ts),o=this.toObject();[s]=ao(o,l,e)}return Fs(this,{ts:s,zone:e})}else return He.invalid(ql(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:i}={}){const s=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:i});return Fs(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=go(e,Ou),i=!Ge(t.weekYear)||!Ge(t.weekNumber)||!Ge(t.weekday),s=!Ge(t.ordinal),l=!Ge(t.year),o=!Ge(t.month)||!Ge(t.day),r=l||o,a=t.weekYear||t.weekNumber;if((r||s)&&a)throw new Ks("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&s)throw new Ks("Can't mix ordinal dates with month/day");let u;i?u=wu({...Hr(this.c),...t}):Ge(t.ordinal)?(u={...this.toObject(),...t},Ge(t.day)&&(u.day=Math.min(ho(u.year,u.month),u.day))):u=Su({...tr(this.c),...t});const[f,c]=ao(u,this.o,this.zone);return Fs(this,{ts:f,o:c})}plus(e){if(!this.isValid)return this;const t=et.fromDurationLike(e);return Fs(this,Tu(this,t))}minus(e){if(!this.isValid)return this;const t=et.fromDurationLike(e).negate();return Fs(this,Tu(this,t))}startOf(e){if(!this.isValid)return this;const t={},i=et.normalizeUnit(e);switch(i){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0;break}if(i==="weeks"&&(t.weekday=1),i==="quarters"){const s=Math.ceil(this.month/3);t.month=(s-1)*3+1}return this.set(t)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,t={}){return this.isValid?tn.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):nr}toLocaleString(e=Ir,t={}){return this.isValid?tn.create(this.loc.clone(t),e).formatDateTime(this):nr}toLocaleParts(e={}){return this.isValid?tn.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:i=!1,includeOffset:s=!0,extendedZone:l=!1}={}){if(!this.isValid)return null;const o=e==="extended";let r=sr(this,o);return r+="T",r+=Mu(this,o,t,i,s,l),r}toISODate({format:e="extended"}={}){return this.isValid?sr(this,e==="extended"):null}toISOWeekDate(){return Vl(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:i=!0,includePrefix:s=!1,extendedZone:l=!1,format:o="extended"}={}){return this.isValid?(s?"T":"")+Mu(this,o==="extended",t,e,i,l):null}toRFC2822(){return Vl(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Vl(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?sr(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:i=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(i&&(s+=" "),t?s+="z":e&&(s+="ZZ")),Vl(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():nr}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",i={}){if(!this.isValid||!e.isValid)return et.invalid("created by diffing an invalid DateTime");const s={locale:this.locale,numberingSystem:this.numberingSystem,...i},l=H0(t).map(et.normalizeUnit),o=e.valueOf()>this.valueOf(),r=o?this:e,a=o?e:this,u=r1(r,a,l,s);return o?u.negate():u}diffNow(e="milliseconds",t={}){return this.diff(He.now(),e,t)}until(e){return this.isValid?dt.fromDateTimes(this,e):this}hasSame(e,t){if(!this.isValid)return!1;const i=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t)<=i&&i<=s.endOf(t)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const t=e.base||He.fromObject({},{zone:this.zone}),i=e.padding?thist.valueOf(),Math.min)}static max(...e){if(!e.every(He.isDateTime))throw new vn("max requires all arguments be DateTimes");return au(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,i={}){const{locale:s=null,numberingSystem:l=null}=i,o=ct.fromOpts({locale:s,numberingSystem:l,defaultToEN:!0});return bg(o,e,t)}static fromStringExplain(e,t,i={}){return He.fromFormatExplain(e,t,i)}static get DATE_SHORT(){return Ir}static get DATE_MED(){return Pm}static get DATE_MED_WITH_WEEKDAY(){return L0}static get DATE_FULL(){return Lm}static get DATE_HUGE(){return Nm}static get TIME_SIMPLE(){return Fm}static get TIME_WITH_SECONDS(){return Rm}static get TIME_WITH_SHORT_OFFSET(){return Hm}static get TIME_WITH_LONG_OFFSET(){return jm}static get TIME_24_SIMPLE(){return qm}static get TIME_24_WITH_SECONDS(){return Vm}static get TIME_24_WITH_SHORT_OFFSET(){return zm}static get TIME_24_WITH_LONG_OFFSET(){return Bm}static get DATETIME_SHORT(){return Um}static get DATETIME_SHORT_WITH_SECONDS(){return Wm}static get DATETIME_MED(){return Ym}static get DATETIME_MED_WITH_SECONDS(){return Km}static get DATETIME_MED_WITH_WEEKDAY(){return N0}static get DATETIME_FULL(){return Jm}static get DATETIME_FULL_WITH_SECONDS(){return Zm}static get DATETIME_HUGE(){return Gm}static get DATETIME_HUGE_WITH_SECONDS(){return Xm}}function Hs(n){if(He.isDateTime(n))return n;if(n&&n.valueOf&&zi(n.valueOf()))return He.fromJSDate(n);if(n&&typeof n=="object")return He.fromObject(n);throw new vn(`Unknown datetime argument: ${n}, of type ${typeof n}`)}class W{static isObject(e){return e!==null&&typeof e=="object"&&e.constructor===Object}static isEmpty(e){return e===""||e===null||e==="00000000-0000-0000-0000-000000000000"||e==="0001-01-01 00:00:00.000Z"||e==="0001-01-01"||typeof e>"u"||Array.isArray(e)&&e.length===0||W.isObject(e)&&Object.keys(e).length===0}static isInput(e){let t=e&&e.tagName?e.tagName.toLowerCase():"";return t==="input"||t==="select"||t==="textarea"||e.isContentEditable}static isFocusable(e){let t=e&&e.tagName?e.tagName.toLowerCase():"";return W.isInput(e)||t==="button"||t==="a"||t==="details"||e.tabIndex>=0}static hasNonEmptyProps(e){for(let t in e)if(!W.isEmpty(e[t]))return!0;return!1}static toArray(e,t=!1){return Array.isArray(e)?e:(t||!W.isEmpty(e))&&typeof e<"u"?[e]:[]}static inArray(e,t){e=Array.isArray(e)?e:[];for(let i=e.length-1;i>=0;i--)if(e[i]==t)return!0;return!1}static removeByValue(e,t){e=Array.isArray(e)?e:[];for(let i=e.length-1;i>=0;i--)if(e[i]==t){e.splice(i,1);break}}static pushUnique(e,t){W.inArray(e,t)||e.push(t)}static findByKey(e,t,i){e=Array.isArray(e)?e:[];for(let s in e)if(e[s][t]==i)return e[s];return null}static groupByKey(e,t){e=Array.isArray(e)?e:[];const i={};for(let s in e)i[e[s][t]]=i[e[s][t]]||[],i[e[s][t]].push(e[s]);return i}static removeByKey(e,t,i){for(let s in e)if(e[s][t]==i){e.splice(s,1);break}}static pushOrReplaceByKey(e,t,i="id"){for(let s=e.length-1;s>=0;s--)if(e[s][i]==t[i]){e[s]=t;return}e.push(t)}static filterDuplicatesByKey(e,t="id"){e=Array.isArray(e)?e:[];const i={};for(const s of e)i[s[t]]=s;return Object.values(i)}static filterRedactedProps(e,t="******"){const i=JSON.parse(JSON.stringify(e||{}));for(let s in i)typeof i[s]=="object"&&i[s]!==null?i[s]=W.filterRedactedProps(i[s],t):i[s]===t&&delete i[s];return i}static getNestedVal(e,t,i=null,s="."){let l=e||{},o=(t||"").split(s);for(const r of o){if(!W.isObject(l)&&!Array.isArray(l)||typeof l[r]>"u")return i;l=l[r]}return l}static setByPath(e,t,i,s="."){if(e===null||typeof e!="object"){console.warn("setByPath: data not an object or array.");return}let l=e,o=t.split(s),r=o.pop();for(const a of o)(!W.isObject(l)&&!Array.isArray(l)||!W.isObject(l[a])&&!Array.isArray(l[a]))&&(l[a]={}),l=l[a];l[r]=i}static deleteByPath(e,t,i="."){let s=e||{},l=(t||"").split(i),o=l.pop();for(const r of l)(!W.isObject(s)&&!Array.isArray(s)||!W.isObject(s[r])&&!Array.isArray(s[r]))&&(s[r]={}),s=s[r];Array.isArray(s)?s.splice(o,1):W.isObject(s)&&delete s[o],l.length>0&&(Array.isArray(s)&&!s.length||W.isObject(s)&&!Object.keys(s).length)&&(Array.isArray(e)&&e.length>0||W.isObject(e)&&Object.keys(e).length>0)&&W.deleteByPath(e,l.join(i),i)}static randomString(e){e=e||10;let t="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let s=0;s{console.warn("Failed to copy.",i)})}static downloadJson(e,t){const i="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(e,null,2)),s=document.createElement("a");s.setAttribute("href",i),s.setAttribute("download",t+".json"),s.click(),s.remove()}static getJWTPayload(e){const t=(e||"").split(".")[1]||"";if(t==="")return{};try{const i=decodeURIComponent(atob(t));return JSON.parse(i)||{}}catch(i){console.warn("Failed to parse JWT payload data.",i)}return{}}static hasImageExtension(e){return/\.jpg|\.jpeg|\.png|\.svg|\.gif|\.jfif|\.webp|\.avif$/.test(e)}static generateThumb(e,t=100,i=100){return new Promise(s=>{let l=new FileReader;l.onload=function(o){let r=new Image;r.onload=function(){let a=document.createElement("canvas"),u=a.getContext("2d"),f=r.width,c=r.height;return a.width=t,a.height=i,u.drawImage(r,f>c?(f-c)/2:0,0,f>c?c:f,f>c?c:f,0,0,t,i),s(a.toDataURL(e.type))},r.src=o.target.result},l.readAsDataURL(e)})}static addValueToFormData(e,t,i){if(!(typeof i>"u"))if(W.isEmpty(i))e.append(t,"");else if(Array.isArray(i))for(const s of i)W.addValueToFormData(e,t,s);else i instanceof File?e.append(t,i):i instanceof Date?e.append(t,i.toISOString()):W.isObject(i)?e.append(t,JSON.stringify(i)):e.append(t,""+i)}static defaultFlatpickrOptions(){return{dateFormat:"Y-m-d H:i:S",disableMobile:!0,allowInput:!0,enableTime:!0,time_24hr:!0,locale:{firstDayOfWeek:1}}}static dummyCollectionRecord(e){var s,l,o,r,a;const t=(e==null?void 0:e.schema)||[],i={id:"RECORD_ID",collectionId:e==null?void 0:e.id,collectionName:e==null?void 0:e.name,created:"2022-01-01 01:00:00.123Z",updated:"2022-01-01 23:59:59.456Z"};e!=null&&e.isAuth&&(i.username="username123",i.verified=!1,i.emailVisibility=!0,i.email="test@example.com");for(const u of t){let f=null;u.type==="number"?f=123:u.type==="date"?f="2022-01-01 10:00:00.123Z":u.type==="bool"?f=!0:u.type==="email"?f="test@example.com":u.type==="url"?f="https://example.com":u.type==="json"?f="JSON":u.type==="file"?(f="filename.jpg",((s=u.options)==null?void 0:s.maxSelect)!==1&&(f=[f])):u.type==="select"?(f=(o=(l=u.options)==null?void 0:l.values)==null?void 0:o[0],((r=u.options)==null?void 0:r.maxSelect)!==1&&(f=[f])):u.type==="relation"?(f="RELATION_RECORD_ID",((a=u.options)==null?void 0:a.maxSelect)!==1&&(f=[f])):f="test",i[u.name]=f}return i}static dummyCollectionSchemaData(e){var s,l,o,r;const t=(e==null?void 0:e.schema)||[],i={};for(const a of t){let u=null;if(a.type==="number")u=123;else if(a.type==="date")u="2022-01-01 10:00:00.123Z";else if(a.type==="bool")u=!0;else if(a.type==="email")u="test@example.com";else if(a.type==="url")u="https://example.com";else if(a.type==="json")u="JSON";else{if(a.type==="file")continue;a.type==="select"?(u=(l=(s=a.options)==null?void 0:s.values)==null?void 0:l[0],((o=a.options)==null?void 0:o.maxSelect)!==1&&(u=[u])):a.type==="relation"?(u="RELATION_RECORD_ID",((r=a.options)==null?void 0:r.maxSelect)!==1&&(u=[u])):u="test"}i[a.name]=u}return i}static getCollectionTypeIcon(e){switch(e==null?void 0:e.toLowerCase()){case"auth":return"ri-group-line";case"single":return"ri-file-list-2-line";default:return"ri-folder-2-line"}}static getFieldTypeIcon(e){switch(e==null?void 0:e.toLowerCase()){case"primary":return"ri-key-line";case"text":return"ri-text";case"number":return"ri-hashtag";case"date":return"ri-calendar-line";case"bool":return"ri-toggle-line";case"email":return"ri-mail-line";case"url":return"ri-link";case"select":return"ri-list-check";case"json":return"ri-braces-line";case"file":return"ri-image-line";case"relation":return"ri-mind-map";case"user":return"ri-user-line";default:return"ri-star-s-line"}}static getFieldValueType(e){var t;switch(e==null?void 0:e.type){case"bool":return"Boolean";case"number":return"Number";case"file":return"File";case"select":case"relation":return((t=e==null?void 0:e.options)==null?void 0:t.maxSelect)===1?"String":"Array";default:return"String"}}static zeroDefaultStr(e){var t;return(e==null?void 0:e.type)==="number"?"0":(e==null?void 0:e.type)==="bool"?"false":["select","relation","file"].includes(e==null?void 0:e.type)&&((t=e==null?void 0:e.options)==null?void 0:t.maxSelect)!=1?"[]":'""'}static getApiExampleUrl(e){return(window.location.href.substring(0,window.location.href.indexOf("/_"))||e||"/").replace("//localhost","//127.0.0.1")}static hasCollectionChanges(e,t,i=!1){if(e=e||{},t=t||{},e.id!=t.id)return!0;for(let u in e)if(u!=="schema"&&JSON.stringify(e[u])!==JSON.stringify(t[u]))return!0;const s=Array.isArray(e.schema)?e.schema:[],l=Array.isArray(t.schema)?t.schema:[],o=s.filter(u=>(u==null?void 0:u.id)&&!W.findByKey(l,"id",u.id)),r=l.filter(u=>(u==null?void 0:u.id)&&!W.findByKey(s,"id",u.id)),a=l.filter(u=>{const f=W.isObject(u)&&W.findByKey(s,"id",u.id);if(!f)return!1;for(let c in f)if(JSON.stringify(u[c])!=JSON.stringify(f[c]))return!0;return!1});return!!(r.length||a.length||i&&o.length)}static sortCollections(e=[]){const t=[],i=[],s=[];for(const l of e)l.type=="auth"?t.push(l):l.type=="single"?i.push(l):s.push(l);return[].concat(t,i,s)}static yieldToMain(){return new Promise(e=>{setTimeout(e,0)})}}const qo=Mn([]);function Dg(n,e=4e3){return Vo(n,"info",e)}function Lt(n,e=3e3){return Vo(n,"success",e)}function ul(n,e=4500){return Vo(n,"error",e)}function A1(n,e=4500){return Vo(n,"warning",e)}function Vo(n,e,t){t=t||4e3;const i={message:n,type:e,duration:t,timeout:setTimeout(()=>{Ag(i)},t)};qo.update(s=>(va(s,i.message),W.pushOrReplaceByKey(s,i,"message"),s))}function Ag(n){qo.update(e=>(va(e,n),e))}function Eg(){qo.update(n=>{for(let e of n)va(n,e);return[]})}function va(n,e){let t;typeof e=="string"?t=W.findByKey(n,"message",e):t=e,t&&(clearTimeout(t.timeout),W.removeByKey(n,"message",t.message))}const wi=Mn({});function Fn(n){wi.set(n||{})}function ks(n){wi.update(e=>(W.deleteByPath(e,n),e))}const ya=Mn({});function jr(n){ya.set(n||{})}fa.prototype.logout=function(n=!0){this.authStore.clear(),n&&ki("/login")};fa.prototype.errorResponseHandler=function(n,e=!0,t=""){if(!n||!(n instanceof Error)||n.isAbort)return;const i=(n==null?void 0:n.status)<<0||400,s=(n==null?void 0:n.data)||{};if(e&&i!==404){let l=s.message||n.message||t;l&&ul(l)}if(W.isEmpty(s.data)||Fn(s.data),i===401)return this.cancelAllRequests(),this.logout();if(i===403)return this.cancelAllRequests(),ki("/")};class E1 extends Am{save(e,t){super.save(e,t),t instanceof Yi&&jr(t)}clear(){super.clear(),jr(null)}}const de=new fa("../",new E1("pb_admin_auth"));de.authStore.model instanceof Yi&&jr(de.authStore.model);function I1(n){let e,t,i,s,l,o,r,a;const u=n[3].default,f=Ot(u,n,n[2],null);return{c(){e=v("div"),t=v("main"),f&&f.c(),i=O(),s=v("footer"),l=v("a"),o=v("span"),o.textContent="PocketBase v0.9.0",p(t,"class","page-content"),p(o,"class","txt"),p(l,"href","https://github.com/pocketbase/pocketbase/releases"),p(l,"class","inline-flex flex-gap-5"),p(l,"target","_blank"),p(l,"rel","noopener noreferrer"),p(l,"title","Releases"),p(s,"class","page-footer"),p(e,"class",r="page-wrapper "+n[1]),ne(e,"center-content",n[0])},m(c,d){S(c,e,d),_(e,t),f&&f.m(t,null),_(e,i),_(e,s),_(s,l),_(l,o),a=!0},p(c,[d]){f&&f.p&&(!a||d&4)&&At(f,u,c,c[2],a?Dt(u,c[2],d,null):Et(c[2]),null),(!a||d&2&&r!==(r="page-wrapper "+c[1]))&&p(e,"class",r),(!a||d&3)&&ne(e,"center-content",c[0])},i(c){a||(A(f,c),a=!0)},o(c){P(f,c),a=!1},d(c){c&&w(e),f&&f.d(c)}}}function P1(n,e,t){let{$$slots:i={},$$scope:s}=e,{center:l=!1}=e,{class:o=""}=e;return n.$$set=r=>{"center"in r&&t(0,l=r.center),"class"in r&&t(1,o=r.class),"$$scope"in r&&t(2,s=r.$$scope)},[l,o,s,i]}class pn extends ye{constructor(e){super(),ve(this,e,P1,I1,be,{center:0,class:1})}}function Iu(n){let e,t,i;return{c(){e=v("div"),e.innerHTML=``,t=O(),i=v("div"),p(e,"class","block txt-center m-b-lg"),p(i,"class","clearfix")},m(s,l){S(s,e,l),S(s,t,l),S(s,i,l)},d(s){s&&w(e),s&&w(t),s&&w(i)}}}function L1(n){let e,t,i,s=!n[0]&&Iu();const l=n[1].default,o=Ot(l,n,n[2],null);return{c(){e=v("div"),s&&s.c(),t=O(),o&&o.c(),p(e,"class","wrapper wrapper-sm m-b-xl panel-wrapper svelte-lxxzfu")},m(r,a){S(r,e,a),s&&s.m(e,null),_(e,t),o&&o.m(e,null),i=!0},p(r,a){r[0]?s&&(s.d(1),s=null):s||(s=Iu(),s.c(),s.m(e,t)),o&&o.p&&(!i||a&4)&&At(o,l,r,r[2],i?Dt(l,r[2],a,null):Et(r[2]),null)},i(r){i||(A(o,r),i=!0)},o(r){P(o,r),i=!1},d(r){r&&w(e),s&&s.d(),o&&o.d(r)}}}function N1(n){let e,t;return e=new pn({props:{class:"full-page",center:!0,$$slots:{default:[L1]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&5&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function F1(n,e,t){let{$$slots:i={},$$scope:s}=e,{nobranding:l=!1}=e;return n.$$set=o=>{"nobranding"in o&&t(0,l=o.nobranding),"$$scope"in o&&t(2,s=o.$$scope)},[l,i,s]}class Ig extends ye{constructor(e){super(),ve(this,e,F1,N1,be,{nobranding:0})}}function Pu(n,e,t){const i=n.slice();return i[11]=e[t],i}const R1=n=>({}),Lu=n=>({uniqueId:n[3]});function H1(n){let e=(n[11]||_o)+"",t;return{c(){t=B(e)},m(i,s){S(i,t,s)},p(i,s){s&4&&e!==(e=(i[11]||_o)+"")&&ae(t,e)},d(i){i&&w(t)}}}function j1(n){var s,l;let e,t=(((s=n[11])==null?void 0:s.message)||((l=n[11])==null?void 0:l.code)||_o)+"",i;return{c(){e=v("pre"),i=B(t)},m(o,r){S(o,e,r),_(e,i)},p(o,r){var a,u;r&4&&t!==(t=(((a=o[11])==null?void 0:a.message)||((u=o[11])==null?void 0:u.code)||_o)+"")&&ae(i,t)},d(o){o&&w(e)}}}function Nu(n){let e,t;function i(o,r){return typeof o[11]=="object"?j1:H1}let s=i(n),l=s(n);return{c(){e=v("div"),l.c(),t=O(),p(e,"class","help-block help-block-error")},m(o,r){S(o,e,r),l.m(e,null),_(e,t)},p(o,r){s===(s=i(o))&&l?l.p(o,r):(l.d(1),l=s(o),l&&(l.c(),l.m(e,t)))},d(o){o&&w(e),l.d()}}}function q1(n){let e,t,i,s,l;const o=n[7].default,r=Ot(o,n,n[6],Lu);let a=n[2],u=[];for(let f=0;ft(5,i=m));let{$$slots:s={},$$scope:l}=e;const o="field_"+W.randomString(7);let{name:r=""}=e,{class:a=void 0}=e,u,f=[];function c(){ks(r)}cn(()=>(u.addEventListener("input",c),u.addEventListener("change",c),()=>{u.removeEventListener("input",c),u.removeEventListener("change",c)}));function d(m){Ve.call(this,n,m)}function h(m){le[m?"unshift":"push"](()=>{u=m,t(1,u)})}return n.$$set=m=>{"name"in m&&t(4,r=m.name),"class"in m&&t(0,a=m.class),"$$scope"in m&&t(6,l=m.$$scope)},n.$$.update=()=>{n.$$.dirty&48&&t(2,f=W.toArray(W.getNestedVal(i,r)))},[a,u,f,o,r,i,l,s,d,h]}class ge extends ye{constructor(e){super(),ve(this,e,V1,q1,be,{name:4,class:0})}}function z1(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Email"),s=O(),l=v("input"),p(e,"for",i=n[9]),p(l,"type","email"),p(l,"autocomplete","off"),p(l,"id",o=n[9]),l.required=!0,l.autofocus=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0]),l.focus(),r||(a=K(l,"input",n[5]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(l,"id",o),f&1&&l.value!==u[0]&&ce(l,u[0])},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function B1(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=B("Password"),s=O(),l=v("input"),r=O(),a=v("div"),a.textContent="Minimum 10 characters.",p(e,"for",i=n[9]),p(l,"type","password"),p(l,"autocomplete","new-password"),p(l,"minlength","10"),p(l,"id",o=n[9]),l.required=!0,p(a,"class","help-block")},m(c,d){S(c,e,d),_(e,t),S(c,s,d),S(c,l,d),ce(l,n[1]),S(c,r,d),S(c,a,d),u||(f=K(l,"input",n[6]),u=!0)},p(c,d){d&512&&i!==(i=c[9])&&p(e,"for",i),d&512&&o!==(o=c[9])&&p(l,"id",o),d&2&&l.value!==c[1]&&ce(l,c[1])},d(c){c&&w(e),c&&w(s),c&&w(l),c&&w(r),c&&w(a),u=!1,f()}}}function U1(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Password confirm"),s=O(),l=v("input"),p(e,"for",i=n[9]),p(l,"type","password"),p(l,"minlength","10"),p(l,"id",o=n[9]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[2]),r||(a=K(l,"input",n[7]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&o!==(o=u[9])&&p(l,"id",o),f&4&&l.value!==u[2]&&ce(l,u[2])},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function W1(n){let e,t,i,s,l,o,r,a,u,f,c,d,h;return s=new ge({props:{class:"form-field required",name:"email",$$slots:{default:[z1,({uniqueId:m})=>({9:m}),({uniqueId:m})=>m?512:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"password",$$slots:{default:[B1,({uniqueId:m})=>({9:m}),({uniqueId:m})=>m?512:0]},$$scope:{ctx:n}}}),a=new ge({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[U1,({uniqueId:m})=>({9:m}),({uniqueId:m})=>m?512:0]},$$scope:{ctx:n}}}),{c(){e=v("form"),t=v("div"),t.innerHTML="

    Create your first admin account in order to continue

    ",i=O(),j(s.$$.fragment),l=O(),j(o.$$.fragment),r=O(),j(a.$$.fragment),u=O(),f=v("button"),f.innerHTML=`Create and login - `,p(t,"class","content txt-center m-b-base"),p(f,"type","submit"),p(f,"class","btn btn-lg btn-block btn-next"),ne(f,"btn-disabled",n[3]),ne(f,"btn-loading",n[3]),p(e,"class","block"),p(e,"autocomplete","off")},m(m,b){S(m,e,b),_(e,t),_(e,i),R(s,e,null),_(e,l),R(o,e,null),_(e,r),R(a,e,null),_(e,u),_(e,f),c=!0,d||(h=K(e,"submit",ut(n[4])),d=!0)},p(m,[b]){const g={};b&1537&&(g.$$scope={dirty:b,ctx:m}),s.$set(g);const y={};b&1538&&(y.$$scope={dirty:b,ctx:m}),o.$set(y);const k={};b&1540&&(k.$$scope={dirty:b,ctx:m}),a.$set(k),(!c||b&8)&&ne(f,"btn-disabled",m[3]),(!c||b&8)&&ne(f,"btn-loading",m[3])},i(m){c||(A(s.$$.fragment,m),A(o.$$.fragment,m),A(a.$$.fragment,m),c=!0)},o(m){P(s.$$.fragment,m),P(o.$$.fragment,m),P(a.$$.fragment,m),c=!1},d(m){m&&w(e),H(s),H(o),H(a),d=!1,h()}}}function Y1(n,e,t){const i=It();let s="",l="",o="",r=!1;async function a(){if(!r){t(3,r=!0);try{await de.admins.create({email:s,password:l,passwordConfirm:o}),await de.admins.authWithPassword(s,l),i("submit")}catch(d){de.errorResponseHandler(d)}t(3,r=!1)}}function u(){s=this.value,t(0,s)}function f(){l=this.value,t(1,l)}function c(){o=this.value,t(2,o)}return[s,l,o,r,a,u,f,c]}class K1 extends ye{constructor(e){super(),ve(this,e,Y1,W1,be,{})}}function Fu(n){let e,t;return e=new Ig({props:{$$slots:{default:[J1]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s&9&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function J1(n){let e,t;return e=new K1({}),e.$on("submit",n[1]),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p:te,i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function Z1(n){let e,t,i=n[0]&&Fu(n);return{c(){i&&i.c(),e=Ae()},m(s,l){i&&i.m(s,l),S(s,e,l),t=!0},p(s,[l]){s[0]?i?(i.p(s,l),l&1&&A(i,1)):(i=Fu(s),i.c(),A(i,1),i.m(e.parentNode,e)):i&&(pe(),P(i,1,1,()=>{i=null}),he())},i(s){t||(A(i),t=!0)},o(s){P(i),t=!1},d(s){i&&i.d(s),s&&w(e)}}}function G1(n,e,t){let i=!1;s();function s(){if(t(0,i=!1),new URLSearchParams(window.location.search).has("installer")){de.logout(!1),t(0,i=!0);return}de.authStore.isValid?ki("/collections"):de.logout()}return[i,async()=>{t(0,i=!1),await Tn(),window.location.search=""}]}class X1 extends ye{constructor(e){super(),ve(this,e,G1,Z1,be,{})}}const mt=Mn(""),bo=Mn(""),ws=Mn(!1);function zo(n){const e=n-1;return e*e*e+1}function vo(n,{delay:e=0,duration:t=400,easing:i=vl}={}){const s=+getComputedStyle(n).opacity;return{delay:e,duration:t,easing:i,css:l=>`opacity: ${l*s}`}}function Sn(n,{delay:e=0,duration:t=400,easing:i=zo,x:s=0,y:l=0,opacity:o=0}={}){const r=getComputedStyle(n),a=+r.opacity,u=r.transform==="none"?"":r.transform,f=a*(1-o);return{delay:e,duration:t,easing:i,css:(c,d)=>` - transform: ${u} translate(${(1-c)*s}px, ${(1-c)*l}px); - opacity: ${a-f*d}`}}function St(n,{delay:e=0,duration:t=400,easing:i=zo}={}){const s=getComputedStyle(n),l=+s.opacity,o=parseFloat(s.height),r=parseFloat(s.paddingTop),a=parseFloat(s.paddingBottom),u=parseFloat(s.marginTop),f=parseFloat(s.marginBottom),c=parseFloat(s.borderTopWidth),d=parseFloat(s.borderBottomWidth);return{delay:e,duration:t,easing:i,css:h=>`overflow: hidden;opacity: ${Math.min(h*20,1)*l};height: ${h*o}px;padding-top: ${h*r}px;padding-bottom: ${h*a}px;margin-top: ${h*u}px;margin-bottom: ${h*f}px;border-top-width: ${h*c}px;border-bottom-width: ${h*d}px;`}}function $t(n,{delay:e=0,duration:t=400,easing:i=zo,start:s=0,opacity:l=0}={}){const o=getComputedStyle(n),r=+o.opacity,a=o.transform==="none"?"":o.transform,u=1-s,f=r*(1-l);return{delay:e,duration:t,easing:i,css:(c,d)=>` - transform: ${a} scale(${1-u*d}); - opacity: ${r-f*d} - `}}function Q1(n){let e,t,i,s;return{c(){e=v("input"),p(e,"type","text"),p(e,"id",n[8]),p(e,"placeholder",t=n[0]||n[1])},m(l,o){S(l,e,o),n[13](e),ce(e,n[7]),i||(s=K(e,"input",n[14]),i=!0)},p(l,o){o&3&&t!==(t=l[0]||l[1])&&p(e,"placeholder",t),o&128&&e.value!==l[7]&&ce(e,l[7])},i:te,o:te,d(l){l&&w(e),n[13](null),i=!1,s()}}}function x1(n){let e,t,i,s;function l(a){n[12](a)}var o=n[4];function r(a){let u={id:a[8],singleLine:!0,disableRequestKeys:!0,disableIndirectCollectionsKeys:!0,extraAutocompleteKeys:a[3],baseCollection:a[2],placeholder:a[0]||a[1]};return a[7]!==void 0&&(u.value=a[7]),{props:u}}return o&&(e=jt(o,r(n)),le.push(()=>_e(e,"value",l)),e.$on("submit",n[10])),{c(){e&&j(e.$$.fragment),i=Ae()},m(a,u){e&&R(e,a,u),S(a,i,u),s=!0},p(a,u){const f={};if(u&8&&(f.extraAutocompleteKeys=a[3]),u&4&&(f.baseCollection=a[2]),u&3&&(f.placeholder=a[0]||a[1]),!t&&u&128&&(t=!0,f.value=a[7],ke(()=>t=!1)),o!==(o=a[4])){if(e){pe();const c=e;P(c.$$.fragment,1,0,()=>{H(c,1)}),he()}o?(e=jt(o,r(a)),le.push(()=>_e(e,"value",l)),e.$on("submit",a[10]),j(e.$$.fragment),A(e.$$.fragment,1),R(e,i.parentNode,i)):e=null}else o&&e.$set(f)},i(a){s||(e&&A(e.$$.fragment,a),s=!0)},o(a){e&&P(e.$$.fragment,a),s=!1},d(a){a&&w(i),e&&H(e,a)}}}function Ru(n){let e,t,i,s,l,o,r=n[7]!==n[0]&&Hu();return{c(){r&&r.c(),e=O(),t=v("button"),t.innerHTML='Clear',p(t,"type","button"),p(t,"class","btn btn-secondary btn-sm btn-hint p-l-xs p-r-xs m-l-10")},m(a,u){r&&r.m(a,u),S(a,e,u),S(a,t,u),s=!0,l||(o=K(t,"click",n[15]),l=!0)},p(a,u){a[7]!==a[0]?r?u&129&&A(r,1):(r=Hu(),r.c(),A(r,1),r.m(e.parentNode,e)):r&&(pe(),P(r,1,1,()=>{r=null}),he())},i(a){s||(A(r),a&&xe(()=>{i||(i=je(t,Sn,{duration:150,x:5},!0)),i.run(1)}),s=!0)},o(a){P(r),a&&(i||(i=je(t,Sn,{duration:150,x:5},!1)),i.run(0)),s=!1},d(a){r&&r.d(a),a&&w(e),a&&w(t),a&&i&&i.end(),l=!1,o()}}}function Hu(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Search',p(e,"type","submit"),p(e,"class","btn btn-expanded btn-sm btn-warning")},m(s,l){S(s,e,l),i=!0},i(s){i||(s&&xe(()=>{t||(t=je(e,Sn,{duration:150,x:5},!0)),t.run(1)}),i=!0)},o(s){s&&(t||(t=je(e,Sn,{duration:150,x:5},!1)),t.run(0)),i=!1},d(s){s&&w(e),s&&t&&t.end()}}}function ev(n){let e,t,i,s,l,o,r,a,u,f,c;const d=[x1,Q1],h=[];function m(g,y){return g[4]&&!g[5]?0:1}o=m(n),r=h[o]=d[o](n);let b=(n[0].length||n[7].length)&&Ru(n);return{c(){e=v("div"),t=v("form"),i=v("label"),s=v("i"),l=O(),r.c(),a=O(),b&&b.c(),p(s,"class","ri-search-line"),p(i,"for",n[8]),p(i,"class","m-l-10 txt-xl"),p(t,"class","searchbar"),p(e,"class","searchbar-wrapper")},m(g,y){S(g,e,y),_(e,t),_(t,i),_(i,s),_(t,l),h[o].m(t,null),_(t,a),b&&b.m(t,null),u=!0,f||(c=[K(t,"click",Yn(n[11])),K(t,"submit",ut(n[10]))],f=!0)},p(g,[y]){let k=o;o=m(g),o===k?h[o].p(g,y):(pe(),P(h[k],1,1,()=>{h[k]=null}),he(),r=h[o],r?r.p(g,y):(r=h[o]=d[o](g),r.c()),A(r,1),r.m(t,a)),g[0].length||g[7].length?b?(b.p(g,y),y&129&&A(b,1)):(b=Ru(g),b.c(),A(b,1),b.m(t,null)):b&&(pe(),P(b,1,1,()=>{b=null}),he())},i(g){u||(A(r),A(b),u=!0)},o(g){P(r),P(b),u=!1},d(g){g&&w(e),h[o].d(),b&&b.d(),f=!1,Pe(c)}}}function tv(n,e,t){const i=It(),s="search_"+W.randomString(7);let{value:l=""}=e,{placeholder:o='Search filter, ex. created > "2022-01-01"...'}=e,{autocompleteCollection:r=new Pn}=e,{extraAutocompleteKeys:a=[]}=e,u,f=!1,c,d="";function h(T=!0){t(7,d=""),T&&(c==null||c.focus()),i("clear")}function m(){t(0,l=d),i("submit",l)}async function b(){u||f||(t(5,f=!0),t(4,u=(await st(()=>import("./FilterAutocompleteInput.b06e61da.js"),["./FilterAutocompleteInput.b06e61da.js","./index.e8a8986f.js"],import.meta.url)).default),t(5,f=!1))}cn(()=>{b()});function g(T){Ve.call(this,n,T)}function y(T){d=T,t(7,d),t(0,l)}function k(T){le[T?"unshift":"push"](()=>{c=T,t(6,c)})}function $(){d=this.value,t(7,d),t(0,l)}const C=()=>{h(!1),m()};return n.$$set=T=>{"value"in T&&t(0,l=T.value),"placeholder"in T&&t(1,o=T.placeholder),"autocompleteCollection"in T&&t(2,r=T.autocompleteCollection),"extraAutocompleteKeys"in T&&t(3,a=T.extraAutocompleteKeys)},n.$$.update=()=>{n.$$.dirty&1&&typeof l=="string"&&t(7,d=l)},[l,o,r,a,u,f,c,d,s,h,m,g,y,k,$,C]}class ka extends ye{constructor(e){super(),ve(this,e,tv,ev,be,{value:0,placeholder:1,autocompleteCollection:2,extraAutocompleteKeys:3})}}let qr,Ii;const Vr="app-tooltip";function ju(n){return typeof n=="string"?{text:n,position:"bottom",hideOnClick:null}:n||{}}function _i(){return Ii=Ii||document.querySelector("."+Vr),Ii||(Ii=document.createElement("div"),Ii.classList.add(Vr),document.body.appendChild(Ii)),Ii}function Pg(n,e){let t=_i();if(!t.classList.contains("active")||!(e!=null&&e.text)){zr();return}t.textContent=e.text,t.className=Vr+" active",e.class&&t.classList.add(e.class),e.position&&t.classList.add(e.position),t.style.top="0px",t.style.left="0px";let i=t.offsetHeight,s=t.offsetWidth,l=n.getBoundingClientRect(),o=0,r=0,a=5;e.position=="left"?(o=l.top+l.height/2-i/2,r=l.left-s-a):e.position=="right"?(o=l.top+l.height/2-i/2,r=l.right+a):e.position=="top"?(o=l.top-i-a,r=l.left+l.width/2-s/2):e.position=="top-left"?(o=l.top-i-a,r=l.left):e.position=="top-right"?(o=l.top-i-a,r=l.right-s):e.position=="bottom-left"?(o=l.top+l.height+a,r=l.left):e.position=="bottom-right"?(o=l.top+l.height+a,r=l.right-s):(o=l.top+l.height+a,r=l.left+l.width/2-s/2),r+s>document.documentElement.clientWidth&&(r=document.documentElement.clientWidth-s),r=r>=0?r:0,o+i>document.documentElement.clientHeight&&(o=document.documentElement.clientHeight-i),o=o>=0?o:0,t.style.top=o+"px",t.style.left=r+"px"}function zr(){clearTimeout(qr),_i().classList.remove("active"),_i().activeNode=void 0}function nv(n,e){_i().activeNode=n,clearTimeout(qr),qr=setTimeout(()=>{_i().classList.add("active"),Pg(n,e)},isNaN(e.delay)?0:e.delay)}function Be(n,e){let t=ju(e);function i(){nv(n,t)}function s(){zr()}return n.addEventListener("mouseenter",i),n.addEventListener("mouseleave",s),n.addEventListener("blur",s),(t.hideOnClick===!0||t.hideOnClick===null&&W.isFocusable(n))&&n.addEventListener("click",s),_i(),{update(l){var o,r;t=ju(l),(r=(o=_i())==null?void 0:o.activeNode)!=null&&r.contains(n)&&Pg(n,t)},destroy(){var l,o;(o=(l=_i())==null?void 0:l.activeNode)!=null&&o.contains(n)&&zr(),n.removeEventListener("mouseenter",i),n.removeEventListener("mouseleave",s),n.removeEventListener("blur",s),n.removeEventListener("click",s)}}}function iv(n){let e,t,i,s;return{c(){e=v("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-secondary btn-circle svelte-1bvelc2"),ne(e,"refreshing",n[1])},m(l,o){S(l,e,o),i||(s=[Ee(t=Be.call(null,e,n[0])),K(e,"click",n[2])],i=!0)},p(l,[o]){t&&Jt(t.update)&&o&1&&t.update.call(null,l[0]),o&2&&ne(e,"refreshing",l[1])},i:te,o:te,d(l){l&&w(e),i=!1,Pe(s)}}}function sv(n,e,t){const i=It();let{tooltip:s={text:"Refresh",position:"right"}}=e,l=null;function o(){i("refresh");const r=s;t(0,s=null),clearTimeout(l),t(1,l=setTimeout(()=>{t(1,l=null),t(0,s=r)},150))}return cn(()=>()=>clearTimeout(l)),n.$$set=r=>{"tooltip"in r&&t(0,s=r.tooltip)},[s,l,o]}class wa extends ye{constructor(e){super(),ve(this,e,sv,iv,be,{tooltip:0})}}function lv(n){let e,t,i,s,l;const o=n[6].default,r=Ot(o,n,n[5],null);return{c(){e=v("th"),r&&r.c(),p(e,"tabindex","0"),p(e,"class",t="col-sort "+n[1]),ne(e,"col-sort-disabled",n[3]),ne(e,"sort-active",n[0]==="-"+n[2]||n[0]==="+"+n[2]),ne(e,"sort-desc",n[0]==="-"+n[2]),ne(e,"sort-asc",n[0]==="+"+n[2])},m(a,u){S(a,e,u),r&&r.m(e,null),i=!0,s||(l=[K(e,"click",n[7]),K(e,"keydown",n[8])],s=!0)},p(a,[u]){r&&r.p&&(!i||u&32)&&At(r,o,a,a[5],i?Dt(o,a[5],u,null):Et(a[5]),null),(!i||u&2&&t!==(t="col-sort "+a[1]))&&p(e,"class",t),(!i||u&10)&&ne(e,"col-sort-disabled",a[3]),(!i||u&7)&&ne(e,"sort-active",a[0]==="-"+a[2]||a[0]==="+"+a[2]),(!i||u&7)&&ne(e,"sort-desc",a[0]==="-"+a[2]),(!i||u&7)&&ne(e,"sort-asc",a[0]==="+"+a[2])},i(a){i||(A(r,a),i=!0)},o(a){P(r,a),i=!1},d(a){a&&w(e),r&&r.d(a),s=!1,Pe(l)}}}function ov(n,e,t){let{$$slots:i={},$$scope:s}=e,{class:l=""}=e,{name:o}=e,{sort:r=""}=e,{disable:a=!1}=e;function u(){a||("-"+o===r?t(0,r="+"+o):t(0,r="-"+o))}const f=()=>u(),c=d=>{(d.code==="Enter"||d.code==="Space")&&(d.preventDefault(),u())};return n.$$set=d=>{"class"in d&&t(1,l=d.class),"name"in d&&t(2,o=d.name),"sort"in d&&t(0,r=d.sort),"disable"in d&&t(3,a=d.disable),"$$scope"in d&&t(5,s=d.$$scope)},[r,l,o,a,u,s,i,f,c]}class Ft extends ye{constructor(e){super(),ve(this,e,ov,lv,be,{class:1,name:2,sort:0,disable:3})}}function rv(n){let e;return{c(){e=v("span"),e.textContent="N/A",p(e,"class","txt txt-hint")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function av(n){let e,t,i,s,l,o,r;return{c(){e=v("div"),t=v("div"),i=B(n[2]),s=O(),l=v("div"),o=B(n[1]),r=B(" UTC"),p(t,"class","date"),p(l,"class","time svelte-zdiknu"),p(e,"class","datetime svelte-zdiknu")},m(a,u){S(a,e,u),_(e,t),_(t,i),_(e,s),_(e,l),_(l,o),_(l,r)},p(a,u){u&4&&ae(i,a[2]),u&2&&ae(o,a[1])},d(a){a&&w(e)}}}function uv(n){let e;function t(l,o){return l[0]?av:rv}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,[o]){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},i:te,o:te,d(l){s.d(l),l&&w(e)}}}function fv(n,e,t){let i,s,{date:l=""}=e;return n.$$set=o=>{"date"in o&&t(0,l=o.date)},n.$$.update=()=>{n.$$.dirty&1&&t(2,i=l?l.substring(0,10):null),n.$$.dirty&1&&t(1,s=l?l.substring(10,19):null)},[l,s,i]}class Ki extends ye{constructor(e){super(),ve(this,e,fv,uv,be,{date:0})}}const cv=n=>({}),qu=n=>({}),dv=n=>({}),Vu=n=>({});function pv(n){let e,t,i,s,l,o,r,a;const u=n[5].before,f=Ot(u,n,n[4],Vu),c=n[5].default,d=Ot(c,n,n[4],null),h=n[5].after,m=Ot(h,n,n[4],qu);return{c(){e=v("div"),f&&f.c(),t=O(),i=v("div"),d&&d.c(),l=O(),m&&m.c(),p(i,"class",s="horizontal-scroller "+n[0]+" "+n[3]+" svelte-wc2j9h"),p(e,"class","horizontal-scroller-wrapper svelte-wc2j9h")},m(b,g){S(b,e,g),f&&f.m(e,null),_(e,t),_(e,i),d&&d.m(i,null),n[6](i),_(e,l),m&&m.m(e,null),o=!0,r||(a=[K(window,"resize",n[1]),K(i,"scroll",n[1])],r=!0)},p(b,[g]){f&&f.p&&(!o||g&16)&&At(f,u,b,b[4],o?Dt(u,b[4],g,dv):Et(b[4]),Vu),d&&d.p&&(!o||g&16)&&At(d,c,b,b[4],o?Dt(c,b[4],g,null):Et(b[4]),null),(!o||g&9&&s!==(s="horizontal-scroller "+b[0]+" "+b[3]+" svelte-wc2j9h"))&&p(i,"class",s),m&&m.p&&(!o||g&16)&&At(m,h,b,b[4],o?Dt(h,b[4],g,cv):Et(b[4]),qu)},i(b){o||(A(f,b),A(d,b),A(m,b),o=!0)},o(b){P(f,b),P(d,b),P(m,b),o=!1},d(b){b&&w(e),f&&f.d(b),d&&d.d(b),n[6](null),m&&m.d(b),r=!1,Pe(a)}}}function hv(n,e,t){let{$$slots:i={},$$scope:s}=e,{class:l=""}=e,o=null,r="",a=null,u;function f(){!o||(clearTimeout(a),a=setTimeout(()=>{const d=o.offsetWidth,h=o.scrollWidth;h-d?(t(3,r="scrollable"),o.scrollLeft===0?t(3,r+=" scroll-start"):o.scrollLeft+d==h&&t(3,r+=" scroll-end")):t(3,r="")},100))}cn(()=>(f(),u=new MutationObserver(()=>{f()}),u.observe(o,{attributeFilter:["width"],childList:!0,subtree:!0}),()=>{u==null||u.disconnect(),clearTimeout(a)}));function c(d){le[d?"unshift":"push"](()=>{o=d,t(2,o)})}return n.$$set=d=>{"class"in d&&t(0,l=d.class),"$$scope"in d&&t(4,s=d.$$scope)},[l,f,o,r,s,i,c]}class Sa extends ye{constructor(e){super(),ve(this,e,hv,pv,be,{class:0,refresh:1})}get refresh(){return this.$$.ctx[1]}}function zu(n,e,t){const i=n.slice();return i[23]=e[t],i}function mv(n){let e;return{c(){e=v("div"),e.innerHTML=` - method`,p(e,"class","col-header-content")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function gv(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="url",p(t,"class",W.getFieldTypeIcon("url")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function _v(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="referer",p(t,"class",W.getFieldTypeIcon("url")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function bv(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="User IP",p(t,"class",W.getFieldTypeIcon("number")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function vv(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="status",p(t,"class",W.getFieldTypeIcon("number")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function yv(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="created",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function Bu(n){let e;function t(l,o){return l[6]?wv:kv}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&w(e)}}}function kv(n){var r;let e,t,i,s,l,o=((r=n[0])==null?void 0:r.length)&&Uu(n);return{c(){e=v("tr"),t=v("td"),i=v("h6"),i.textContent="No logs found.",s=O(),o&&o.c(),l=O(),p(t,"colspan","99"),p(t,"class","txt-center txt-hint p-xs")},m(a,u){S(a,e,u),_(e,t),_(t,i),_(t,s),o&&o.m(t,null),_(e,l)},p(a,u){var f;(f=a[0])!=null&&f.length?o?o.p(a,u):(o=Uu(a),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(a){a&&w(e),o&&o.d()}}}function wv(n){let e;return{c(){e=v("tr"),e.innerHTML=` - `},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function Uu(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Clear filters',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[19]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function Wu(n){let e;return{c(){e=v("i"),p(e,"class","ri-error-warning-line txt-danger m-l-5 m-r-5"),p(e,"title","Error")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Yu(n,e){var Se,we,We;let t,i,s,l=((Se=e[23].method)==null?void 0:Se.toUpperCase())+"",o,r,a,u,f,c=e[23].url+"",d,h,m,b,g,y,k=(e[23].referer||"N/A")+"",$,C,T,M,D,E=(e[23].userIp||"N/A")+"",I,L,F,q,z,J=e[23].status+"",G,X,Q,ie,Y,x,U,re,Re,Ne,Le=(((we=e[23].meta)==null?void 0:we.errorMessage)||((We=e[23].meta)==null?void 0:We.errorData))&&Wu();ie=new Ki({props:{date:e[23].created}});function Fe(){return e[17](e[23])}function me(...ue){return e[18](e[23],...ue)}return{key:n,first:null,c(){t=v("tr"),i=v("td"),s=v("span"),o=B(l),a=O(),u=v("td"),f=v("span"),d=B(c),m=O(),Le&&Le.c(),b=O(),g=v("td"),y=v("span"),$=B(k),T=O(),M=v("td"),D=v("span"),I=B(E),F=O(),q=v("td"),z=v("span"),G=B(J),X=O(),Q=v("td"),j(ie.$$.fragment),Y=O(),x=v("td"),x.innerHTML='',U=O(),p(s,"class",r="label txt-uppercase "+e[9][e[23].method.toLowerCase()]),p(i,"class","col-type-text col-field-method min-width"),p(f,"class","txt txt-ellipsis"),p(f,"title",h=e[23].url),p(u,"class","col-type-text col-field-url"),p(y,"class","txt txt-ellipsis"),p(y,"title",C=e[23].referer),ne(y,"txt-hint",!e[23].referer),p(g,"class","col-type-text col-field-referer"),p(D,"class","txt txt-ellipsis"),p(D,"title",L=e[23].userIp),ne(D,"txt-hint",!e[23].userIp),p(M,"class","col-type-number col-field-userIp"),p(z,"class","label"),ne(z,"label-danger",e[23].status>=400),p(q,"class","col-type-number col-field-status"),p(Q,"class","col-type-date col-field-created"),p(x,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(ue,se){S(ue,t,se),_(t,i),_(i,s),_(s,o),_(t,a),_(t,u),_(u,f),_(f,d),_(u,m),Le&&Le.m(u,null),_(t,b),_(t,g),_(g,y),_(y,$),_(t,T),_(t,M),_(M,D),_(D,I),_(t,F),_(t,q),_(q,z),_(z,G),_(t,X),_(t,Q),R(ie,Q,null),_(t,Y),_(t,x),_(t,U),re=!0,Re||(Ne=[K(t,"click",Fe),K(t,"keydown",me)],Re=!0)},p(ue,se){var Z,Ce,Ue;e=ue,(!re||se&8)&&l!==(l=((Z=e[23].method)==null?void 0:Z.toUpperCase())+"")&&ae(o,l),(!re||se&8&&r!==(r="label txt-uppercase "+e[9][e[23].method.toLowerCase()]))&&p(s,"class",r),(!re||se&8)&&c!==(c=e[23].url+"")&&ae(d,c),(!re||se&8&&h!==(h=e[23].url))&&p(f,"title",h),((Ce=e[23].meta)==null?void 0:Ce.errorMessage)||((Ue=e[23].meta)==null?void 0:Ue.errorData)?Le||(Le=Wu(),Le.c(),Le.m(u,null)):Le&&(Le.d(1),Le=null),(!re||se&8)&&k!==(k=(e[23].referer||"N/A")+"")&&ae($,k),(!re||se&8&&C!==(C=e[23].referer))&&p(y,"title",C),(!re||se&8)&&ne(y,"txt-hint",!e[23].referer),(!re||se&8)&&E!==(E=(e[23].userIp||"N/A")+"")&&ae(I,E),(!re||se&8&&L!==(L=e[23].userIp))&&p(D,"title",L),(!re||se&8)&&ne(D,"txt-hint",!e[23].userIp),(!re||se&8)&&J!==(J=e[23].status+"")&&ae(G,J),(!re||se&8)&&ne(z,"label-danger",e[23].status>=400);const fe={};se&8&&(fe.date=e[23].created),ie.$set(fe)},i(ue){re||(A(ie.$$.fragment,ue),re=!0)},o(ue){P(ie.$$.fragment,ue),re=!1},d(ue){ue&&w(t),Le&&Le.d(),H(ie),Re=!1,Pe(Ne)}}}function Sv(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M,D,E,I=[],L=new Map,F;function q(me){n[11](me)}let z={disable:!0,class:"col-field-method",name:"method",$$slots:{default:[mv]},$$scope:{ctx:n}};n[1]!==void 0&&(z.sort=n[1]),s=new Ft({props:z}),le.push(()=>_e(s,"sort",q));function J(me){n[12](me)}let G={disable:!0,class:"col-type-text col-field-url",name:"url",$$slots:{default:[gv]},$$scope:{ctx:n}};n[1]!==void 0&&(G.sort=n[1]),r=new Ft({props:G}),le.push(()=>_e(r,"sort",J));function X(me){n[13](me)}let Q={disable:!0,class:"col-type-text col-field-referer",name:"referer",$$slots:{default:[_v]},$$scope:{ctx:n}};n[1]!==void 0&&(Q.sort=n[1]),f=new Ft({props:Q}),le.push(()=>_e(f,"sort",X));function ie(me){n[14](me)}let Y={disable:!0,class:"col-type-number col-field-userIp",name:"userIp",$$slots:{default:[bv]},$$scope:{ctx:n}};n[1]!==void 0&&(Y.sort=n[1]),h=new Ft({props:Y}),le.push(()=>_e(h,"sort",ie));function x(me){n[15](me)}let U={disable:!0,class:"col-type-number col-field-status",name:"status",$$slots:{default:[vv]},$$scope:{ctx:n}};n[1]!==void 0&&(U.sort=n[1]),g=new Ft({props:U}),le.push(()=>_e(g,"sort",x));function re(me){n[16](me)}let Re={disable:!0,class:"col-type-date col-field-created",name:"created",$$slots:{default:[yv]},$$scope:{ctx:n}};n[1]!==void 0&&(Re.sort=n[1]),$=new Ft({props:Re}),le.push(()=>_e($,"sort",re));let Ne=n[3];const Le=me=>me[23].id;for(let me=0;mel=!1)),s.$set(we);const We={};Se&67108864&&(We.$$scope={dirty:Se,ctx:me}),!a&&Se&2&&(a=!0,We.sort=me[1],ke(()=>a=!1)),r.$set(We);const ue={};Se&67108864&&(ue.$$scope={dirty:Se,ctx:me}),!c&&Se&2&&(c=!0,ue.sort=me[1],ke(()=>c=!1)),f.$set(ue);const se={};Se&67108864&&(se.$$scope={dirty:Se,ctx:me}),!m&&Se&2&&(m=!0,se.sort=me[1],ke(()=>m=!1)),h.$set(se);const fe={};Se&67108864&&(fe.$$scope={dirty:Se,ctx:me}),!y&&Se&2&&(y=!0,fe.sort=me[1],ke(()=>y=!1)),g.$set(fe);const Z={};Se&67108864&&(Z.$$scope={dirty:Se,ctx:me}),!C&&Se&2&&(C=!0,Z.sort=me[1],ke(()=>C=!1)),$.$set(Z),Se&841&&(Ne=me[3],pe(),I=bt(I,Se,Le,1,me,Ne,L,E,nn,Yu,null,zu),he(),!Ne.length&&Fe?Fe.p(me,Se):Ne.length?Fe&&(Fe.d(1),Fe=null):(Fe=Bu(me),Fe.c(),Fe.m(E,null))),(!F||Se&64)&&ne(e,"table-loading",me[6])},i(me){if(!F){A(s.$$.fragment,me),A(r.$$.fragment,me),A(f.$$.fragment,me),A(h.$$.fragment,me),A(g.$$.fragment,me),A($.$$.fragment,me);for(let Se=0;Se{if(L<=1&&b(),t(6,d=!1),t(5,f=q.page),t(4,c=q.totalItems),s("load",u.concat(q.items)),F){const z=++h;for(;q.items.length&&h==z;)t(3,u=u.concat(q.items.splice(0,10))),await W.yieldToMain()}else t(3,u=u.concat(q.items))}).catch(q=>{q!=null&&q.isAbort||(t(6,d=!1),console.warn(q),b(),de.errorResponseHandler(q,!1))})}function b(){t(3,u=[]),t(5,f=1),t(4,c=0)}function g(L){a=L,t(1,a)}function y(L){a=L,t(1,a)}function k(L){a=L,t(1,a)}function $(L){a=L,t(1,a)}function C(L){a=L,t(1,a)}function T(L){a=L,t(1,a)}const M=L=>s("select",L),D=(L,F)=>{F.code==="Enter"&&(F.preventDefault(),s("select",L))},E=()=>t(0,o=""),I=()=>m(f+1);return n.$$set=L=>{"filter"in L&&t(0,o=L.filter),"presets"in L&&t(10,r=L.presets),"sort"in L&&t(1,a=L.sort)},n.$$.update=()=>{n.$$.dirty&1027&&(typeof a<"u"||typeof o<"u"||typeof r<"u")&&(b(),m(1)),n.$$.dirty&24&&t(7,i=c>u.length)},[o,a,m,u,c,f,d,i,s,l,r,g,y,k,$,C,T,M,D,E,I]}class Tv extends ye{constructor(e){super(),ve(this,e,Cv,$v,be,{filter:0,presets:10,sort:1,load:2})}get load(){return this.$$.ctx[2]}}/*! - * Chart.js v3.9.1 - * https://www.chartjs.org - * (c) 2022 Chart.js Contributors - * Released under the MIT License - */function Qn(){}const Mv=function(){let n=0;return function(){return n++}}();function it(n){return n===null||typeof n>"u"}function ft(n){if(Array.isArray&&Array.isArray(n))return!0;const e=Object.prototype.toString.call(n);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Ye(n){return n!==null&&Object.prototype.toString.call(n)==="[object Object]"}const _t=n=>(typeof n=="number"||n instanceof Number)&&isFinite(+n);function gn(n,e){return _t(n)?n:e}function Xe(n,e){return typeof n>"u"?e:n}const Ov=(n,e)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100:n/e,Lg=(n,e)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100*e:+n;function pt(n,e,t){if(n&&typeof n.call=="function")return n.apply(t,e)}function lt(n,e,t,i){let s,l,o;if(ft(n))if(l=n.length,i)for(s=l-1;s>=0;s--)e.call(t,n[s],s);else for(s=0;sn,x:n=>n.x,y:n=>n.y};function vi(n,e){return(Zu[e]||(Zu[e]=Ev(e)))(n)}function Ev(n){const e=Iv(n);return t=>{for(const i of e){if(i==="")break;t=t&&t[i]}return t}}function Iv(n){const e=n.split("."),t=[];let i="";for(const s of e)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(t.push(i),i="");return t}function $a(n){return n.charAt(0).toUpperCase()+n.slice(1)}const $n=n=>typeof n<"u",yi=n=>typeof n=="function",Gu=(n,e)=>{if(n.size!==e.size)return!1;for(const t of n)if(!e.has(t))return!1;return!0};function Pv(n){return n.type==="mouseup"||n.type==="click"||n.type==="contextmenu"}const gt=Math.PI,ot=2*gt,Lv=ot+gt,wo=Number.POSITIVE_INFINITY,Nv=gt/180,ht=gt/2,js=gt/4,Xu=gt*2/3,yn=Math.log10,zn=Math.sign;function Qu(n){const e=Math.round(n);n=el(n,e,n/1e3)?e:n;const t=Math.pow(10,Math.floor(yn(n))),i=n/t;return(i<=1?1:i<=2?2:i<=5?5:10)*t}function Fv(n){const e=[],t=Math.sqrt(n);let i;for(i=1;is-l).pop(),e}function Ss(n){return!isNaN(parseFloat(n))&&isFinite(n)}function el(n,e,t){return Math.abs(n-e)=n}function Fg(n,e,t){let i,s,l;for(i=0,s=n.length;ia&&u=Math.min(e,t)-i&&n<=Math.max(e,t)+i}function Ta(n,e,t){t=t||(o=>n[o]1;)l=s+i>>1,t(l)?s=l:i=l;return{lo:s,hi:i}}const qi=(n,e,t,i)=>Ta(n,t,i?s=>n[s][e]<=t:s=>n[s][e]Ta(n,t,i=>n[i][e]>=t);function Vv(n,e,t){let i=0,s=n.length;for(;ii&&n[s-1]>t;)s--;return i>0||s{const i="_onData"+$a(t),s=n[t];Object.defineProperty(n,t,{configurable:!0,enumerable:!1,value(...l){const o=s.apply(this,l);return n._chartjs.listeners.forEach(r=>{typeof r[i]=="function"&&r[i](...l)}),o}})})}function ef(n,e){const t=n._chartjs;if(!t)return;const i=t.listeners,s=i.indexOf(e);s!==-1&&i.splice(s,1),!(i.length>0)&&(Hg.forEach(l=>{delete n[l]}),delete n._chartjs)}function jg(n){const e=new Set;let t,i;for(t=0,i=n.length;t"u"?function(n){return n()}:window.requestAnimationFrame}();function Vg(n,e,t){const i=t||(o=>Array.prototype.slice.call(o));let s=!1,l=[];return function(...o){l=i(o),s||(s=!0,qg.call(window,()=>{s=!1,n.apply(e,l)}))}}function Bv(n,e){let t;return function(...i){return e?(clearTimeout(t),t=setTimeout(n,e,i)):n.apply(this,i),e}}const Uv=n=>n==="start"?"left":n==="end"?"right":"center",tf=(n,e,t)=>n==="start"?e:n==="end"?t:(e+t)/2;function zg(n,e,t){const i=e.length;let s=0,l=i;if(n._sorted){const{iScale:o,_parsed:r}=n,a=o.axis,{min:u,max:f,minDefined:c,maxDefined:d}=o.getUserBounds();c&&(s=Rt(Math.min(qi(r,o.axis,u).lo,t?i:qi(e,a,o.getPixelForValue(u)).lo),0,i-1)),d?l=Rt(Math.max(qi(r,o.axis,f,!0).hi+1,t?0:qi(e,a,o.getPixelForValue(f),!0).hi+1),s,i)-s:l=i-s}return{start:s,count:l}}function Bg(n){const{xScale:e,yScale:t,_scaleRanges:i}=n,s={xmin:e.min,xmax:e.max,ymin:t.min,ymax:t.max};if(!i)return n._scaleRanges=s,!0;const l=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==t.min||i.ymax!==t.max;return Object.assign(i,s),l}const zl=n=>n===0||n===1,nf=(n,e,t)=>-(Math.pow(2,10*(n-=1))*Math.sin((n-e)*ot/t)),sf=(n,e,t)=>Math.pow(2,-10*n)*Math.sin((n-e)*ot/t)+1,tl={linear:n=>n,easeInQuad:n=>n*n,easeOutQuad:n=>-n*(n-2),easeInOutQuad:n=>(n/=.5)<1?.5*n*n:-.5*(--n*(n-2)-1),easeInCubic:n=>n*n*n,easeOutCubic:n=>(n-=1)*n*n+1,easeInOutCubic:n=>(n/=.5)<1?.5*n*n*n:.5*((n-=2)*n*n+2),easeInQuart:n=>n*n*n*n,easeOutQuart:n=>-((n-=1)*n*n*n-1),easeInOutQuart:n=>(n/=.5)<1?.5*n*n*n*n:-.5*((n-=2)*n*n*n-2),easeInQuint:n=>n*n*n*n*n,easeOutQuint:n=>(n-=1)*n*n*n*n+1,easeInOutQuint:n=>(n/=.5)<1?.5*n*n*n*n*n:.5*((n-=2)*n*n*n*n+2),easeInSine:n=>-Math.cos(n*ht)+1,easeOutSine:n=>Math.sin(n*ht),easeInOutSine:n=>-.5*(Math.cos(gt*n)-1),easeInExpo:n=>n===0?0:Math.pow(2,10*(n-1)),easeOutExpo:n=>n===1?1:-Math.pow(2,-10*n)+1,easeInOutExpo:n=>zl(n)?n:n<.5?.5*Math.pow(2,10*(n*2-1)):.5*(-Math.pow(2,-10*(n*2-1))+2),easeInCirc:n=>n>=1?n:-(Math.sqrt(1-n*n)-1),easeOutCirc:n=>Math.sqrt(1-(n-=1)*n),easeInOutCirc:n=>(n/=.5)<1?-.5*(Math.sqrt(1-n*n)-1):.5*(Math.sqrt(1-(n-=2)*n)+1),easeInElastic:n=>zl(n)?n:nf(n,.075,.3),easeOutElastic:n=>zl(n)?n:sf(n,.075,.3),easeInOutElastic(n){return zl(n)?n:n<.5?.5*nf(n*2,.1125,.45):.5+.5*sf(n*2-1,.1125,.45)},easeInBack(n){return n*n*((1.70158+1)*n-1.70158)},easeOutBack(n){return(n-=1)*n*((1.70158+1)*n+1.70158)+1},easeInOutBack(n){let e=1.70158;return(n/=.5)<1?.5*(n*n*(((e*=1.525)+1)*n-e)):.5*((n-=2)*n*(((e*=1.525)+1)*n+e)+2)},easeInBounce:n=>1-tl.easeOutBounce(1-n),easeOutBounce(n){return n<1/2.75?7.5625*n*n:n<2/2.75?7.5625*(n-=1.5/2.75)*n+.75:n<2.5/2.75?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375},easeInOutBounce:n=>n<.5?tl.easeInBounce(n*2)*.5:tl.easeOutBounce(n*2-1)*.5+.5};/*! - * @kurkle/color v0.2.1 - * https://github.com/kurkle/color#readme - * (c) 2022 Jukka Kurkela - * Released under the MIT License - */function Tl(n){return n+.5|0}const hi=(n,e,t)=>Math.max(Math.min(n,t),e);function Zs(n){return hi(Tl(n*2.55),0,255)}function bi(n){return hi(Tl(n*255),0,255)}function ti(n){return hi(Tl(n/2.55)/100,0,1)}function lf(n){return hi(Tl(n*100),0,100)}const mn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Ur=[..."0123456789ABCDEF"],Wv=n=>Ur[n&15],Yv=n=>Ur[(n&240)>>4]+Ur[n&15],Bl=n=>(n&240)>>4===(n&15),Kv=n=>Bl(n.r)&&Bl(n.g)&&Bl(n.b)&&Bl(n.a);function Jv(n){var e=n.length,t;return n[0]==="#"&&(e===4||e===5?t={r:255&mn[n[1]]*17,g:255&mn[n[2]]*17,b:255&mn[n[3]]*17,a:e===5?mn[n[4]]*17:255}:(e===7||e===9)&&(t={r:mn[n[1]]<<4|mn[n[2]],g:mn[n[3]]<<4|mn[n[4]],b:mn[n[5]]<<4|mn[n[6]],a:e===9?mn[n[7]]<<4|mn[n[8]]:255})),t}const Zv=(n,e)=>n<255?e(n):"";function Gv(n){var e=Kv(n)?Wv:Yv;return n?"#"+e(n.r)+e(n.g)+e(n.b)+Zv(n.a,e):void 0}const Xv=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Ug(n,e,t){const i=e*Math.min(t,1-t),s=(l,o=(l+n/30)%12)=>t-i*Math.max(Math.min(o-3,9-o,1),-1);return[s(0),s(8),s(4)]}function Qv(n,e,t){const i=(s,l=(s+n/60)%6)=>t-t*e*Math.max(Math.min(l,4-l,1),0);return[i(5),i(3),i(1)]}function xv(n,e,t){const i=Ug(n,1,.5);let s;for(e+t>1&&(s=1/(e+t),e*=s,t*=s),s=0;s<3;s++)i[s]*=1-e-t,i[s]+=e;return i}function ey(n,e,t,i,s){return n===s?(e-t)/i+(e.5?f/(2-l-o):f/(l+o),a=ey(t,i,s,f,l),a=a*60+.5),[a|0,u||0,r]}function Oa(n,e,t,i){return(Array.isArray(e)?n(e[0],e[1],e[2]):n(e,t,i)).map(bi)}function Da(n,e,t){return Oa(Ug,n,e,t)}function ty(n,e,t){return Oa(xv,n,e,t)}function ny(n,e,t){return Oa(Qv,n,e,t)}function Wg(n){return(n%360+360)%360}function iy(n){const e=Xv.exec(n);let t=255,i;if(!e)return;e[5]!==i&&(t=e[6]?Zs(+e[5]):bi(+e[5]));const s=Wg(+e[2]),l=+e[3]/100,o=+e[4]/100;return e[1]==="hwb"?i=ty(s,l,o):e[1]==="hsv"?i=ny(s,l,o):i=Da(s,l,o),{r:i[0],g:i[1],b:i[2],a:t}}function sy(n,e){var t=Ma(n);t[0]=Wg(t[0]+e),t=Da(t),n.r=t[0],n.g=t[1],n.b=t[2]}function ly(n){if(!n)return;const e=Ma(n),t=e[0],i=lf(e[1]),s=lf(e[2]);return n.a<255?`hsla(${t}, ${i}%, ${s}%, ${ti(n.a)})`:`hsl(${t}, ${i}%, ${s}%)`}const of={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},rf={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function oy(){const n={},e=Object.keys(rf),t=Object.keys(of);let i,s,l,o,r;for(i=0;i>16&255,l>>8&255,l&255]}return n}let Ul;function ry(n){Ul||(Ul=oy(),Ul.transparent=[0,0,0,0]);const e=Ul[n.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const ay=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function uy(n){const e=ay.exec(n);let t=255,i,s,l;if(!!e){if(e[7]!==i){const o=+e[7];t=e[8]?Zs(o):hi(o*255,0,255)}return i=+e[1],s=+e[3],l=+e[5],i=255&(e[2]?Zs(i):hi(i,0,255)),s=255&(e[4]?Zs(s):hi(s,0,255)),l=255&(e[6]?Zs(l):hi(l,0,255)),{r:i,g:s,b:l,a:t}}}function fy(n){return n&&(n.a<255?`rgba(${n.r}, ${n.g}, ${n.b}, ${ti(n.a)})`:`rgb(${n.r}, ${n.g}, ${n.b})`)}const lr=n=>n<=.0031308?n*12.92:Math.pow(n,1/2.4)*1.055-.055,us=n=>n<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4);function cy(n,e,t){const i=us(ti(n.r)),s=us(ti(n.g)),l=us(ti(n.b));return{r:bi(lr(i+t*(us(ti(e.r))-i))),g:bi(lr(s+t*(us(ti(e.g))-s))),b:bi(lr(l+t*(us(ti(e.b))-l))),a:n.a+t*(e.a-n.a)}}function Wl(n,e,t){if(n){let i=Ma(n);i[e]=Math.max(0,Math.min(i[e]+i[e]*t,e===0?360:1)),i=Da(i),n.r=i[0],n.g=i[1],n.b=i[2]}}function Yg(n,e){return n&&Object.assign(e||{},n)}function af(n){var e={r:0,g:0,b:0,a:255};return Array.isArray(n)?n.length>=3&&(e={r:n[0],g:n[1],b:n[2],a:255},n.length>3&&(e.a=bi(n[3]))):(e=Yg(n,{r:0,g:0,b:0,a:1}),e.a=bi(e.a)),e}function dy(n){return n.charAt(0)==="r"?uy(n):iy(n)}class So{constructor(e){if(e instanceof So)return e;const t=typeof e;let i;t==="object"?i=af(e):t==="string"&&(i=Jv(e)||ry(e)||dy(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Yg(this._rgb);return e&&(e.a=ti(e.a)),e}set rgb(e){this._rgb=af(e)}rgbString(){return this._valid?fy(this._rgb):void 0}hexString(){return this._valid?Gv(this._rgb):void 0}hslString(){return this._valid?ly(this._rgb):void 0}mix(e,t){if(e){const i=this.rgb,s=e.rgb;let l;const o=t===l?.5:t,r=2*o-1,a=i.a-s.a,u=((r*a===-1?r:(r+a)/(1+r*a))+1)/2;l=1-u,i.r=255&u*i.r+l*s.r+.5,i.g=255&u*i.g+l*s.g+.5,i.b=255&u*i.b+l*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(e,t){return e&&(this._rgb=cy(this._rgb,e._rgb,t)),this}clone(){return new So(this.rgb)}alpha(e){return this._rgb.a=bi(e),this}clearer(e){const t=this._rgb;return t.a*=1-e,this}greyscale(){const e=this._rgb,t=Tl(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=t,this}opaquer(e){const t=this._rgb;return t.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Wl(this._rgb,2,e),this}darken(e){return Wl(this._rgb,2,-e),this}saturate(e){return Wl(this._rgb,1,e),this}desaturate(e){return Wl(this._rgb,1,-e),this}rotate(e){return sy(this._rgb,e),this}}function Kg(n){return new So(n)}function Jg(n){if(n&&typeof n=="object"){const e=n.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function uf(n){return Jg(n)?n:Kg(n)}function or(n){return Jg(n)?n:Kg(n).saturate(.5).darken(.1).hexString()}const Ji=Object.create(null),Wr=Object.create(null);function nl(n,e){if(!e)return n;const t=e.split(".");for(let i=0,s=t.length;it.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,i)=>or(i.backgroundColor),this.hoverBorderColor=(t,i)=>or(i.borderColor),this.hoverColor=(t,i)=>or(i.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e)}set(e,t){return rr(this,e,t)}get(e){return nl(this,e)}describe(e,t){return rr(Wr,e,t)}override(e,t){return rr(Ji,e,t)}route(e,t,i,s){const l=nl(this,e),o=nl(this,i),r="_"+t;Object.defineProperties(l,{[r]:{value:l[t],writable:!0},[t]:{enumerable:!0,get(){const a=this[r],u=o[s];return Ye(a)?Object.assign({},u,a):Xe(a,u)},set(a){this[r]=a}}})}}var Qe=new py({_scriptable:n=>!n.startsWith("on"),_indexable:n=>n!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function hy(n){return!n||it(n.size)||it(n.family)?null:(n.style?n.style+" ":"")+(n.weight?n.weight+" ":"")+n.size+"px "+n.family}function $o(n,e,t,i,s){let l=e[s];return l||(l=e[s]=n.measureText(s).width,t.push(s)),l>i&&(i=l),i}function my(n,e,t,i){i=i||{};let s=i.data=i.data||{},l=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(s=i.data={},l=i.garbageCollect=[],i.font=e),n.save(),n.font=e;let o=0;const r=t.length;let a,u,f,c,d;for(a=0;at.length){for(a=0;a0&&n.stroke()}}function pl(n,e,t){return t=t||.5,!e||n&&n.x>e.left-t&&n.xe.top-t&&n.y0&&l.strokeColor!=="";let a,u;for(n.save(),n.font=s.string,vy(n,l),a=0;a+n||0;function Ia(n,e){const t={},i=Ye(e),s=i?Object.keys(e):e,l=Ye(n)?i?o=>Xe(n[o],n[e[o]]):o=>n[o]:()=>n;for(const o of s)t[o]=$y(l(o));return t}function Zg(n){return Ia(n,{top:"y",right:"x",bottom:"y",left:"x"})}function gs(n){return Ia(n,["topLeft","topRight","bottomLeft","bottomRight"])}function Cn(n){const e=Zg(n);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function un(n,e){n=n||{},e=e||Qe.font;let t=Xe(n.size,e.size);typeof t=="string"&&(t=parseInt(t,10));let i=Xe(n.style,e.style);i&&!(""+i).match(wy)&&(console.warn('Invalid font style specified: "'+i+'"'),i="");const s={family:Xe(n.family,e.family),lineHeight:Sy(Xe(n.lineHeight,e.lineHeight),t),size:t,style:i,weight:Xe(n.weight,e.weight),string:""};return s.string=hy(s),s}function Yl(n,e,t,i){let s=!0,l,o,r;for(l=0,o=n.length;lt&&r===0?0:r+a;return{min:o(i,-Math.abs(l)),max:o(s,l)}}function Si(n,e){return Object.assign(Object.create(n),e)}function Pa(n,e=[""],t=n,i,s=()=>n[0]){$n(i)||(i=xg("_fallback",n));const l={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:n,_rootScopes:t,_fallback:i,_getTarget:s,override:o=>Pa([o,...n],e,t,i)};return new Proxy(l,{deleteProperty(o,r){return delete o[r],delete o._keys,delete n[0][r],!0},get(o,r){return Xg(o,r,()=>Py(r,e,n,o))},getOwnPropertyDescriptor(o,r){return Reflect.getOwnPropertyDescriptor(o._scopes[0],r)},getPrototypeOf(){return Reflect.getPrototypeOf(n[0])},has(o,r){return df(o).includes(r)},ownKeys(o){return df(o)},set(o,r,a){const u=o._storage||(o._storage=s());return o[r]=u[r]=a,delete o._keys,!0}})}function $s(n,e,t,i){const s={_cacheable:!1,_proxy:n,_context:e,_subProxy:t,_stack:new Set,_descriptors:Gg(n,i),setContext:l=>$s(n,l,t,i),override:l=>$s(n.override(l),e,t,i)};return new Proxy(s,{deleteProperty(l,o){return delete l[o],delete n[o],!0},get(l,o,r){return Xg(l,o,()=>My(l,o,r))},getOwnPropertyDescriptor(l,o){return l._descriptors.allKeys?Reflect.has(n,o)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(n,o)},getPrototypeOf(){return Reflect.getPrototypeOf(n)},has(l,o){return Reflect.has(n,o)},ownKeys(){return Reflect.ownKeys(n)},set(l,o,r){return n[o]=r,delete l[o],!0}})}function Gg(n,e={scriptable:!0,indexable:!0}){const{_scriptable:t=e.scriptable,_indexable:i=e.indexable,_allKeys:s=e.allKeys}=n;return{allKeys:s,scriptable:t,indexable:i,isScriptable:yi(t)?t:()=>t,isIndexable:yi(i)?i:()=>i}}const Ty=(n,e)=>n?n+$a(e):e,La=(n,e)=>Ye(e)&&n!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function Xg(n,e,t){if(Object.prototype.hasOwnProperty.call(n,e))return n[e];const i=t();return n[e]=i,i}function My(n,e,t){const{_proxy:i,_context:s,_subProxy:l,_descriptors:o}=n;let r=i[e];return yi(r)&&o.isScriptable(e)&&(r=Oy(e,r,n,t)),ft(r)&&r.length&&(r=Dy(e,r,n,o.isIndexable)),La(e,r)&&(r=$s(r,s,l&&l[e],o)),r}function Oy(n,e,t,i){const{_proxy:s,_context:l,_subProxy:o,_stack:r}=t;if(r.has(n))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+n);return r.add(n),e=e(l,o||i),r.delete(n),La(n,e)&&(e=Na(s._scopes,s,n,e)),e}function Dy(n,e,t,i){const{_proxy:s,_context:l,_subProxy:o,_descriptors:r}=t;if($n(l.index)&&i(n))e=e[l.index%e.length];else if(Ye(e[0])){const a=e,u=s._scopes.filter(f=>f!==a);e=[];for(const f of a){const c=Na(u,s,n,f);e.push($s(c,l,o&&o[n],r))}}return e}function Qg(n,e,t){return yi(n)?n(e,t):n}const Ay=(n,e)=>n===!0?e:typeof n=="string"?vi(e,n):void 0;function Ey(n,e,t,i,s){for(const l of e){const o=Ay(t,l);if(o){n.add(o);const r=Qg(o._fallback,t,s);if($n(r)&&r!==t&&r!==i)return r}else if(o===!1&&$n(i)&&t!==i)return null}return!1}function Na(n,e,t,i){const s=e._rootScopes,l=Qg(e._fallback,t,i),o=[...n,...s],r=new Set;r.add(i);let a=cf(r,o,t,l||t,i);return a===null||$n(l)&&l!==t&&(a=cf(r,o,l,a,i),a===null)?!1:Pa(Array.from(r),[""],s,l,()=>Iy(e,t,i))}function cf(n,e,t,i,s){for(;t;)t=Ey(n,e,t,i,s);return t}function Iy(n,e,t){const i=n._getTarget();e in i||(i[e]={});const s=i[e];return ft(s)&&Ye(t)?t:s}function Py(n,e,t,i){let s;for(const l of e)if(s=xg(Ty(l,n),t),$n(s))return La(n,s)?Na(t,i,n,s):s}function xg(n,e){for(const t of e){if(!t)continue;const i=t[n];if($n(i))return i}}function df(n){let e=n._keys;return e||(e=n._keys=Ly(n._scopes)),e}function Ly(n){const e=new Set;for(const t of n)for(const i of Object.keys(t).filter(s=>!s.startsWith("_")))e.add(i);return Array.from(e)}function e_(n,e,t,i){const{iScale:s}=n,{key:l="r"}=this._parsing,o=new Array(i);let r,a,u,f;for(r=0,a=i;ren==="x"?"y":"x";function Fy(n,e,t,i){const s=n.skip?e:n,l=e,o=t.skip?e:t,r=Br(l,s),a=Br(o,l);let u=r/(r+a),f=a/(r+a);u=isNaN(u)?0:u,f=isNaN(f)?0:f;const c=i*u,d=i*f;return{previous:{x:l.x-c*(o.x-s.x),y:l.y-c*(o.y-s.y)},next:{x:l.x+d*(o.x-s.x),y:l.y+d*(o.y-s.y)}}}function Ry(n,e,t){const i=n.length;let s,l,o,r,a,u=Cs(n,0);for(let f=0;f!u.skip)),e.cubicInterpolationMode==="monotone")jy(n,s);else{let u=i?n[n.length-1]:n[0];for(l=0,o=n.length;lwindow.getComputedStyle(n,null);function zy(n,e){return Bo(n).getPropertyValue(e)}const By=["top","right","bottom","left"];function Bi(n,e,t){const i={};t=t?"-"+t:"";for(let s=0;s<4;s++){const l=By[s];i[l]=parseFloat(n[e+"-"+l+t])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const Uy=(n,e,t)=>(n>0||e>0)&&(!t||!t.shadowRoot);function Wy(n,e){const t=n.touches,i=t&&t.length?t[0]:n,{offsetX:s,offsetY:l}=i;let o=!1,r,a;if(Uy(s,l,n.target))r=s,a=l;else{const u=e.getBoundingClientRect();r=i.clientX-u.left,a=i.clientY-u.top,o=!0}return{x:r,y:a,box:o}}function Ri(n,e){if("native"in n)return n;const{canvas:t,currentDevicePixelRatio:i}=e,s=Bo(t),l=s.boxSizing==="border-box",o=Bi(s,"padding"),r=Bi(s,"border","width"),{x:a,y:u,box:f}=Wy(n,t),c=o.left+(f&&r.left),d=o.top+(f&&r.top);let{width:h,height:m}=e;return l&&(h-=o.width+r.width,m-=o.height+r.height),{x:Math.round((a-c)/h*t.width/i),y:Math.round((u-d)/m*t.height/i)}}function Yy(n,e,t){let i,s;if(e===void 0||t===void 0){const l=Fa(n);if(!l)e=n.clientWidth,t=n.clientHeight;else{const o=l.getBoundingClientRect(),r=Bo(l),a=Bi(r,"border","width"),u=Bi(r,"padding");e=o.width-u.width-a.width,t=o.height-u.height-a.height,i=Mo(r.maxWidth,l,"clientWidth"),s=Mo(r.maxHeight,l,"clientHeight")}}return{width:e,height:t,maxWidth:i||wo,maxHeight:s||wo}}const ar=n=>Math.round(n*10)/10;function Ky(n,e,t,i){const s=Bo(n),l=Bi(s,"margin"),o=Mo(s.maxWidth,n,"clientWidth")||wo,r=Mo(s.maxHeight,n,"clientHeight")||wo,a=Yy(n,e,t);let{width:u,height:f}=a;if(s.boxSizing==="content-box"){const c=Bi(s,"border","width"),d=Bi(s,"padding");u-=d.width+c.width,f-=d.height+c.height}return u=Math.max(0,u-l.width),f=Math.max(0,i?Math.floor(u/i):f-l.height),u=ar(Math.min(u,o,a.maxWidth)),f=ar(Math.min(f,r,a.maxHeight)),u&&!f&&(f=ar(u/2)),{width:u,height:f}}function pf(n,e,t){const i=e||1,s=Math.floor(n.height*i),l=Math.floor(n.width*i);n.height=s/i,n.width=l/i;const o=n.canvas;return o.style&&(t||!o.style.height&&!o.style.width)&&(o.style.height=`${n.height}px`,o.style.width=`${n.width}px`),n.currentDevicePixelRatio!==i||o.height!==s||o.width!==l?(n.currentDevicePixelRatio=i,o.height=s,o.width=l,n.ctx.setTransform(i,0,0,i,0,0),!0):!1}const Jy=function(){let n=!1;try{const e={get passive(){return n=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch{}return n}();function hf(n,e){const t=zy(n,e),i=t&&t.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Hi(n,e,t,i){return{x:n.x+t*(e.x-n.x),y:n.y+t*(e.y-n.y)}}function Zy(n,e,t,i){return{x:n.x+t*(e.x-n.x),y:i==="middle"?t<.5?n.y:e.y:i==="after"?t<1?n.y:e.y:t>0?e.y:n.y}}function Gy(n,e,t,i){const s={x:n.cp2x,y:n.cp2y},l={x:e.cp1x,y:e.cp1y},o=Hi(n,s,t),r=Hi(s,l,t),a=Hi(l,e,t),u=Hi(o,r,t),f=Hi(r,a,t);return Hi(u,f,t)}const mf=new Map;function Xy(n,e){e=e||{};const t=n+JSON.stringify(e);let i=mf.get(t);return i||(i=new Intl.NumberFormat(n,e),mf.set(t,i)),i}function Ml(n,e,t){return Xy(e,t).format(n)}const Qy=function(n,e){return{x(t){return n+n+e-t},setWidth(t){e=t},textAlign(t){return t==="center"?t:t==="right"?"left":"right"},xPlus(t,i){return t-i},leftForLtr(t,i){return t-i}}},xy=function(){return{x(n){return n},setWidth(n){},textAlign(n){return n},xPlus(n,e){return n+e},leftForLtr(n,e){return n}}};function ur(n,e,t){return n?Qy(e,t):xy()}function e2(n,e){let t,i;(e==="ltr"||e==="rtl")&&(t=n.canvas.style,i=[t.getPropertyValue("direction"),t.getPropertyPriority("direction")],t.setProperty("direction",e,"important"),n.prevTextDirection=i)}function t2(n,e){e!==void 0&&(delete n.prevTextDirection,n.canvas.style.setProperty("direction",e[0],e[1]))}function i_(n){return n==="angle"?{between:cl,compare:Hv,normalize:an}:{between:dl,compare:(e,t)=>e-t,normalize:e=>e}}function gf({start:n,end:e,count:t,loop:i,style:s}){return{start:n%t,end:e%t,loop:i&&(e-n+1)%t===0,style:s}}function n2(n,e,t){const{property:i,start:s,end:l}=t,{between:o,normalize:r}=i_(i),a=e.length;let{start:u,end:f,loop:c}=n,d,h;if(c){for(u+=a,f+=a,d=0,h=a;da(s,$,y)&&r(s,$)!==0,T=()=>r(l,y)===0||a(l,$,y),M=()=>b||C(),D=()=>!b||T();for(let E=f,I=f;E<=c;++E)k=e[E%o],!k.skip&&(y=u(k[i]),y!==$&&(b=a(y,s,l),g===null&&M()&&(g=r(y,s)===0?E:I),g!==null&&D()&&(m.push(gf({start:g,end:E,loop:d,count:o,style:h})),g=null),I=E,$=y));return g!==null&&m.push(gf({start:g,end:c,loop:d,count:o,style:h})),m}function l_(n,e){const t=[],i=n.segments;for(let s=0;ss&&n[l%e].skip;)l--;return l%=e,{start:s,end:l}}function s2(n,e,t,i){const s=n.length,l=[];let o=e,r=n[e],a;for(a=e+1;a<=t;++a){const u=n[a%s];u.skip||u.stop?r.skip||(i=!1,l.push({start:e%s,end:(a-1)%s,loop:i}),e=o=u.stop?a:null):(o=a,r.skip&&(e=a)),r=u}return o!==null&&l.push({start:e%s,end:o%s,loop:i}),l}function l2(n,e){const t=n.points,i=n.options.spanGaps,s=t.length;if(!s)return[];const l=!!n._loop,{start:o,end:r}=i2(t,s,l,i);if(i===!0)return _f(n,[{start:o,end:r,loop:l}],t,e);const a=rr({chart:e,initial:t.initial,numSteps:o,currentStep:Math.min(i-t.start,o)}))}_refresh(){this._request||(this._running=!0,this._request=qg.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const l=i.items;let o=l.length-1,r=!1,a;for(;o>=0;--o)a=l[o],a._active?(a._total>i.duration&&(i.duration=a._total),a.tick(e),r=!0):(l[o]=l[l.length-1],l.pop());r&&(s.draw(),this._notify(s,i,e,"progress")),l.length||(i.running=!1,this._notify(s,i,e,"complete"),i.initial=!1),t+=l.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){const t=this._charts;let i=t.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,i)),i}listen(e,t,i){this._getAnims(e).listeners[t].push(i)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){const t=this._charts.get(e);!t||(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(e){if(!this._running)return!1;const t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){const t=this._charts.get(e);if(!t||!t.items.length)return;const i=t.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();t.items=[],this._notify(e,t,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var xn=new a2;const vf="transparent",u2={boolean(n,e,t){return t>.5?e:n},color(n,e,t){const i=uf(n||vf),s=i.valid&&uf(e||vf);return s&&s.valid?s.mix(i,t).hexString():e},number(n,e,t){return n+(e-n)*t}};class f2{constructor(e,t,i,s){const l=t[i];s=Yl([e.to,s,l,e.from]);const o=Yl([e.from,l,s]);this._active=!0,this._fn=e.fn||u2[e.type||typeof o],this._easing=tl[e.easing]||tl.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(e,t,i){if(this._active){this._notify(!1);const s=this._target[this._prop],l=i-this._start,o=this._duration-l;this._start=i,this._duration=Math.floor(Math.max(o,e.duration)),this._total+=l,this._loop=!!e.loop,this._to=Yl([e.to,t,s,e.from]),this._from=Yl([e.from,s,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const t=e-this._start,i=this._duration,s=this._prop,l=this._from,o=this._loop,r=this._to;let a;if(this._active=l!==r&&(o||t1?2-a:a,a=this._easing(Math.min(1,Math.max(0,a))),this._target[s]=this._fn(l,r,a)}wait(){const e=this._promises||(this._promises=[]);return new Promise((t,i)=>{e.push({res:t,rej:i})})}_notify(e){const t=e?"res":"rej",i=this._promises||[];for(let s=0;sn!=="onProgress"&&n!=="onComplete"&&n!=="fn"});Qe.set("animations",{colors:{type:"color",properties:d2},numbers:{type:"number",properties:c2}});Qe.describe("animations",{_fallback:"animation"});Qe.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>n|0}}}});class o_{constructor(e,t){this._chart=e,this._properties=new Map,this.configure(t)}configure(e){if(!Ye(e))return;const t=this._properties;Object.getOwnPropertyNames(e).forEach(i=>{const s=e[i];if(!Ye(s))return;const l={};for(const o of p2)l[o]=s[o];(ft(s.properties)&&s.properties||[i]).forEach(o=>{(o===i||!t.has(o))&&t.set(o,l)})})}_animateOptions(e,t){const i=t.options,s=m2(e,i);if(!s)return[];const l=this._createAnimations(s,i);return i.$shared&&h2(e.options.$animations,i).then(()=>{e.options=i},()=>{}),l}_createAnimations(e,t){const i=this._properties,s=[],l=e.$animations||(e.$animations={}),o=Object.keys(t),r=Date.now();let a;for(a=o.length-1;a>=0;--a){const u=o[a];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(e,t));continue}const f=t[u];let c=l[u];const d=i.get(u);if(c)if(d&&c.active()){c.update(d,f,r);continue}else c.cancel();if(!d||!d.duration){e[u]=f;continue}l[u]=c=new f2(d,e,u,f),s.push(c)}return s}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}const i=this._createAnimations(e,t);if(i.length)return xn.add(this._chart,i),!0}}function h2(n,e){const t=[],i=Object.keys(e);for(let s=0;s0||!t&&l<0)return s.index}return null}function $f(n,e){const{chart:t,_cachedMeta:i}=n,s=t._stacks||(t._stacks={}),{iScale:l,vScale:o,index:r}=i,a=l.axis,u=o.axis,f=v2(l,o,i),c=e.length;let d;for(let h=0;ht[i].axis===e).shift()}function w2(n,e){return Si(n,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function S2(n,e,t){return Si(n,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:t,index:e,mode:"default",type:"data"})}function qs(n,e){const t=n.controller.index,i=n.vScale&&n.vScale.axis;if(!!i){e=e||n._parsed;for(const s of e){const l=s._stacks;if(!l||l[i]===void 0||l[i][t]===void 0)return;delete l[i][t]}}}const cr=n=>n==="reset"||n==="none",Cf=(n,e)=>e?n:Object.assign({},n),$2=(n,e,t)=>n&&!e.hidden&&e._stacked&&{keys:r_(t,!0),values:null};class Rn{constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=wf(e.vScale,e),this.addElements()}updateIndex(e){this.index!==e&&qs(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,t=this._cachedMeta,i=this.getDataset(),s=(c,d,h,m)=>c==="x"?d:c==="r"?m:h,l=t.xAxisID=Xe(i.xAxisID,fr(e,"x")),o=t.yAxisID=Xe(i.yAxisID,fr(e,"y")),r=t.rAxisID=Xe(i.rAxisID,fr(e,"r")),a=t.indexAxis,u=t.iAxisID=s(a,l,o,r),f=t.vAxisID=s(a,o,l,r);t.xScale=this.getScaleForId(l),t.yScale=this.getScaleForId(o),t.rScale=this.getScaleForId(r),t.iScale=this.getScaleForId(u),t.vScale=this.getScaleForId(f)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&ef(this._data,this),e._stacked&&qs(e)}_dataCheck(){const e=this.getDataset(),t=e.data||(e.data=[]),i=this._data;if(Ye(t))this._data=b2(t);else if(i!==t){if(i){ef(i,this);const s=this._cachedMeta;qs(s),s._parsed=[]}t&&Object.isExtensible(t)&&zv(t,this),this._syncList=[],this._data=t}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const t=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const l=t._stacked;t._stacked=wf(t.vScale,t),t.stack!==i.stack&&(s=!0,qs(t),t.stack=i.stack),this._resyncElements(e),(s||l!==t._stacked)&&$f(this,t._parsed)}configure(){const e=this.chart.config,t=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){const{_cachedMeta:i,_data:s}=this,{iScale:l,_stacked:o}=i,r=l.axis;let a=e===0&&t===s.length?!0:i._sorted,u=e>0&&i._parsed[e-1],f,c,d;if(this._parsing===!1)i._parsed=s,i._sorted=!0,d=s;else{ft(s[e])?d=this.parseArrayData(i,s,e,t):Ye(s[e])?d=this.parseObjectData(i,s,e,t):d=this.parsePrimitiveData(i,s,e,t);const h=()=>c[r]===null||u&&c[r]b||c=0;--d)if(!m()){this.updateRangeFromParsed(u,e,h,a);break}}return u}getAllParsedValues(e){const t=this._cachedMeta._parsed,i=[];let s,l,o;for(s=0,l=t.length;s=0&&ethis.getContext(i,s),b=u.resolveNamedOptions(d,h,m,c);return b.$shared&&(b.$shared=a,l[o]=Object.freeze(Cf(b,a))),b}_resolveAnimations(e,t,i){const s=this.chart,l=this._cachedDataOpts,o=`animation-${t}`,r=l[o];if(r)return r;let a;if(s.options.animation!==!1){const f=this.chart.config,c=f.datasetAnimationScopeKeys(this._type,t),d=f.getOptionScopes(this.getDataset(),c);a=f.createResolver(d,this.getContext(e,i,t))}const u=new o_(s,a&&a.animations);return a&&a._cacheable&&(l[o]=Object.freeze(u)),u}getSharedOptions(e){if(!!e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,t){return!t||cr(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){const i=this.resolveDataElementOptions(e,t),s=this._sharedOptions,l=this.getSharedOptions(i),o=this.includeOptions(t,l)||l!==s;return this.updateSharedOptions(l,t,i),{sharedOptions:l,includeOptions:o}}updateElement(e,t,i,s){cr(s)?Object.assign(e,i):this._resolveAnimations(t,s).update(e,i)}updateSharedOptions(e,t,i){e&&!cr(t)&&this._resolveAnimations(void 0,t).update(e,i)}_setStyle(e,t,i,s){e.active=s;const l=this.getStyle(t,s);this._resolveAnimations(t,i,s).update(e,{options:!s&&this.getSharedOptions(l)||l})}removeHoverStyle(e,t,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,t,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const t=this._data,i=this._cachedMeta.data;for(const[r,a,u]of this._syncList)this[r](a,u);this._syncList=[];const s=i.length,l=t.length,o=Math.min(l,s);o&&this.parse(0,o),l>s?this._insertElements(s,l-s,e):l{for(u.length+=t,r=u.length-1;r>=o;r--)u[r]=u[r-t]};for(a(l),r=e;rs-l))}return n._cache.$bar}function T2(n){const e=n.iScale,t=C2(e,n.type);let i=e._length,s,l,o,r;const a=()=>{o===32767||o===-32768||($n(r)&&(i=Math.min(i,Math.abs(o-r)||i)),r=o)};for(s=0,l=t.length;s0?s[n-1]:null,r=nMath.abs(r)&&(a=r,u=o),e[t.axis]=u,e._custom={barStart:a,barEnd:u,start:s,end:l,min:o,max:r}}function a_(n,e,t,i){return ft(n)?D2(n,e,t,i):e[t.axis]=t.parse(n,i),e}function Tf(n,e,t,i){const s=n.iScale,l=n.vScale,o=s.getLabels(),r=s===l,a=[];let u,f,c,d;for(u=t,f=t+i;u=t?1:-1)}function E2(n){let e,t,i,s,l;return n.horizontal?(e=n.base>n.x,t="left",i="right"):(e=n.basea.controller.options.grouped),l=i.options.stacked,o=[],r=a=>{const u=a.controller.getParsed(t),f=u&&u[a.vScale.axis];if(it(f)||isNaN(f))return!0};for(const a of s)if(!(t!==void 0&&r(a))&&((l===!1||o.indexOf(a.stack)===-1||l===void 0&&a.stack===void 0)&&o.push(a.stack),a.index===e))break;return o.length||o.push(void 0),o}_getStackCount(e){return this._getStacks(void 0,e).length}_getStackIndex(e,t,i){const s=this._getStacks(e,i),l=t!==void 0?s.indexOf(t):-1;return l===-1?s.length-1:l}_getRuler(){const e=this.options,t=this._cachedMeta,i=t.iScale,s=[];let l,o;for(l=0,o=t.data.length;l=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}getLabelAndValue(e){const t=this._cachedMeta,{xScale:i,yScale:s}=t,l=this.getParsed(e),o=i.getLabelForValue(l.x),r=s.getLabelForValue(l.y),a=l._custom;return{label:t.label,value:"("+o+", "+r+(a?", "+a:"")+")"}}update(e){const t=this._cachedMeta.data;this.updateElements(t,0,t.length,e)}updateElements(e,t,i,s){const l=s==="reset",{iScale:o,vScale:r}=this._cachedMeta,{sharedOptions:a,includeOptions:u}=this._getSharedOptions(t,s),f=o.axis,c=r.axis;for(let d=t;dcl($,r,a,!0)?1:Math.max(C,C*t,T,T*t),m=($,C,T)=>cl($,r,a,!0)?-1:Math.min(C,C*t,T,T*t),b=h(0,u,c),g=h(ht,f,d),y=m(gt,u,c),k=m(gt+ht,f,d);i=(b-y)/2,s=(g-k)/2,l=-(b+y)/2,o=-(g+k)/2}return{ratioX:i,ratioY:s,offsetX:l,offsetY:o}}class Ol extends Rn{constructor(e,t){super(e,t),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,t){const i=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=i;else{let l=a=>+i[a];if(Ye(i[e])){const{key:a="value"}=this._parsing;l=u=>+vi(i[u],a)}let o,r;for(o=e,r=e+t;o0&&!isNaN(e)?ot*(Math.abs(e)/t):0}getLabelAndValue(e){const t=this._cachedMeta,i=this.chart,s=i.data.labels||[],l=Ml(t._parsed[e],i.options.locale);return{label:s[e]||"",value:l}}getMaxBorderWidth(e){let t=0;const i=this.chart;let s,l,o,r,a;if(!e){for(s=0,l=i.data.datasets.length;sn!=="spacing",_indexable:n=>n!=="spacing"};Ol.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(n){const e=n.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:t}}=n.legend.options;return e.labels.map((i,s)=>{const o=n.getDatasetMeta(0).controller.getStyle(s);return{text:i,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,pointStyle:t,hidden:!n.getDataVisibility(s),index:s}})}return[]}},onClick(n,e,t){t.chart.toggleDataVisibility(e.index),t.chart.update()}},tooltip:{callbacks:{title(){return""},label(n){let e=n.label;const t=": "+n.formattedValue;return ft(e)?(e=e.slice(),e[0]+=t):e+=t,e}}}}};class Uo extends Rn{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const t=this._cachedMeta,{dataset:i,data:s=[],_dataset:l}=t,o=this.chart._animationsDisabled;let{start:r,count:a}=zg(t,s,o);this._drawStart=r,this._drawCount=a,Bg(t)&&(r=0,a=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!l._decimated,i.points=s;const u=this.resolveDatasetElementOptions(e);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:u},e),this.updateElements(s,r,a,e)}updateElements(e,t,i,s){const l=s==="reset",{iScale:o,vScale:r,_stacked:a,_dataset:u}=this._cachedMeta,{sharedOptions:f,includeOptions:c}=this._getSharedOptions(t,s),d=o.axis,h=r.axis,{spanGaps:m,segment:b}=this.options,g=Ss(m)?m:Number.POSITIVE_INFINITY,y=this.chart._animationsDisabled||l||s==="none";let k=t>0&&this.getParsed(t-1);for(let $=t;$0&&Math.abs(T[d]-k[d])>g,b&&(M.parsed=T,M.raw=u.data[$]),c&&(M.options=f||this.resolveDataElementOptions($,C.active?"active":s)),y||this.updateElement(C,$,M,s),k=T}}getMaxOverflow(){const e=this._cachedMeta,t=e.dataset,i=t.options&&t.options.borderWidth||0,s=e.data||[];if(!s.length)return i;const l=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,l,o)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}Uo.id="line";Uo.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};Uo.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};class ja extends Rn{constructor(e,t){super(e,t),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){const t=this._cachedMeta,i=this.chart,s=i.data.labels||[],l=Ml(t._parsed[e].r,i.options.locale);return{label:s[e]||"",value:l}}parseObjectData(e,t,i,s){return e_.bind(this)(e,t,i,s)}update(e){const t=this._cachedMeta.data;this._updateRadius(),this.updateElements(t,0,t.length,e)}getMinMax(){const e=this._cachedMeta,t={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return e.data.forEach((i,s)=>{const l=this.getParsed(s).r;!isNaN(l)&&this.chart.getDataVisibility(s)&&(lt.max&&(t.max=l))}),t}_updateRadius(){const e=this.chart,t=e.chartArea,i=e.options,s=Math.min(t.right-t.left,t.bottom-t.top),l=Math.max(s/2,0),o=Math.max(i.cutoutPercentage?l/100*i.cutoutPercentage:1,0),r=(l-o)/e.getVisibleDatasetCount();this.outerRadius=l-r*this.index,this.innerRadius=this.outerRadius-r}updateElements(e,t,i,s){const l=s==="reset",o=this.chart,a=o.options.animation,u=this._cachedMeta.rScale,f=u.xCenter,c=u.yCenter,d=u.getIndexAngle(0)-.5*gt;let h=d,m;const b=360/this.countVisibleElements();for(m=0;m{!isNaN(this.getParsed(s).r)&&this.chart.getDataVisibility(s)&&t++}),t}_computeAngle(e,t,i){return this.chart.getDataVisibility(e)?In(this.resolveDataElementOptions(e,t).angle||i):0}}ja.id="polarArea";ja.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};ja.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(n){const e=n.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:t}}=n.legend.options;return e.labels.map((i,s)=>{const o=n.getDatasetMeta(0).controller.getStyle(s);return{text:i,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,pointStyle:t,hidden:!n.getDataVisibility(s),index:s}})}return[]}},onClick(n,e,t){t.chart.toggleDataVisibility(e.index),t.chart.update()}},tooltip:{callbacks:{title(){return""},label(n){return n.chart.data.labels[n.dataIndex]+": "+n.formattedValue}}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};class u_ extends Ol{}u_.id="pie";u_.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};class qa extends Rn{getLabelAndValue(e){const t=this._cachedMeta.vScale,i=this.getParsed(e);return{label:t.getLabels()[e],value:""+t.getLabelForValue(i[t.axis])}}parseObjectData(e,t,i,s){return e_.bind(this)(e,t,i,s)}update(e){const t=this._cachedMeta,i=t.dataset,s=t.data||[],l=t.iScale.getLabels();if(i.points=s,e!=="resize"){const o=this.resolveDatasetElementOptions(e);this.options.showLine||(o.borderWidth=0);const r={_loop:!0,_fullLoop:l.length===s.length,options:o};this.updateElement(i,void 0,r,e)}this.updateElements(s,0,s.length,e)}updateElements(e,t,i,s){const l=this._cachedMeta.rScale,o=s==="reset";for(let r=t;r{s[l]=i[l]&&i[l].active()?i[l]._to:this[l]}),s}}li.defaults={};li.defaultRoutes=void 0;const f_={values(n){return ft(n)?n:""+n},numeric(n,e,t){if(n===0)return"0";const i=this.chart.options.locale;let s,l=n;if(t.length>1){const u=Math.max(Math.abs(t[0].value),Math.abs(t[t.length-1].value));(u<1e-4||u>1e15)&&(s="scientific"),l=F2(n,t)}const o=yn(Math.abs(l)),r=Math.max(Math.min(-1*Math.floor(o),20),0),a={notation:s,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(a,this.options.ticks.format),Ml(n,i,a)},logarithmic(n,e,t){if(n===0)return"0";const i=n/Math.pow(10,Math.floor(yn(n)));return i===1||i===2||i===5?f_.numeric.call(this,n,e,t):""}};function F2(n,e){let t=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(t)>=1&&n!==Math.floor(n)&&(t=n-Math.floor(n)),t}var Wo={formatters:f_};Qe.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,e)=>e.lineWidth,tickColor:(n,e)=>e.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Wo.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}});Qe.route("scale.ticks","color","","color");Qe.route("scale.grid","color","","borderColor");Qe.route("scale.grid","borderColor","","borderColor");Qe.route("scale.title","color","","color");Qe.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&n!=="callback"&&n!=="parser",_indexable:n=>n!=="borderDash"&&n!=="tickBorderDash"});Qe.describe("scales",{_fallback:"scale"});Qe.describe("scale.ticks",{_scriptable:n=>n!=="backdropPadding"&&n!=="callback",_indexable:n=>n!=="backdropPadding"});function R2(n,e){const t=n.options.ticks,i=t.maxTicksLimit||H2(n),s=t.major.enabled?q2(e):[],l=s.length,o=s[0],r=s[l-1],a=[];if(l>i)return V2(e,a,s,l/i),a;const u=j2(s,e,i);if(l>0){let f,c;const d=l>1?Math.round((r-o)/(l-1)):null;for(Jl(e,a,u,it(d)?0:o-d,o),f=0,c=l-1;fs)return a}return Math.max(s,1)}function q2(n){const e=[];let t,i;for(t=0,i=n.length;tn==="left"?"right":n==="right"?"left":n,Df=(n,e,t)=>e==="top"||e==="left"?n[e]+t:n[e]-t;function Af(n,e){const t=[],i=n.length/e,s=n.length;let l=0;for(;lo+r)))return a}function W2(n,e){lt(n,t=>{const i=t.gc,s=i.length/2;let l;if(s>e){for(l=0;li?i:t,i=s&&t>i?t:i,{min:gn(t,gn(i,t)),max:gn(i,gn(t,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){pt(this.options.beforeUpdate,[this])}update(e,t,i){const{beginAtZero:s,grace:l,ticks:o}=this.options,r=o.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Cy(this,l,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const a=r=l||i<=1||!this.isHorizontal()){this.labelRotation=s;return}const f=this._getLabelSizes(),c=f.widest.width,d=f.highest.height,h=Rt(this.chart.width-c,0,this.maxWidth);r=e.offset?this.maxWidth/i:h/(i-1),c+6>r&&(r=h/(i-(e.offset?.5:1)),a=this.maxHeight-Vs(e.grid)-t.padding-Ef(e.title,this.chart.options.font),u=Math.sqrt(c*c+d*d),o=Ca(Math.min(Math.asin(Rt((f.highest.height+6)/r,-1,1)),Math.asin(Rt(a/u,-1,1))-Math.asin(Rt(d/u,-1,1)))),o=Math.max(s,Math.min(l,o))),this.labelRotation=o}afterCalculateLabelRotation(){pt(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){pt(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:t,options:{ticks:i,title:s,grid:l}}=this,o=this._isVisible(),r=this.isHorizontal();if(o){const a=Ef(s,t.options.font);if(r?(e.width=this.maxWidth,e.height=Vs(l)+a):(e.height=this.maxHeight,e.width=Vs(l)+a),i.display&&this.ticks.length){const{first:u,last:f,widest:c,highest:d}=this._getLabelSizes(),h=i.padding*2,m=In(this.labelRotation),b=Math.cos(m),g=Math.sin(m);if(r){const y=i.mirror?0:g*c.width+b*d.height;e.height=Math.min(this.maxHeight,e.height+y+h)}else{const y=i.mirror?0:b*c.width+g*d.height;e.width=Math.min(this.maxWidth,e.width+y+h)}this._calculatePadding(u,f,g,b)}}this._handleMargins(),r?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,i,s){const{ticks:{align:l,padding:o},position:r}=this.options,a=this.labelRotation!==0,u=r!=="top"&&this.axis==="x";if(this.isHorizontal()){const f=this.getPixelForTick(0)-this.left,c=this.right-this.getPixelForTick(this.ticks.length-1);let d=0,h=0;a?u?(d=s*e.width,h=i*t.height):(d=i*e.height,h=s*t.width):l==="start"?h=t.width:l==="end"?d=e.width:l!=="inner"&&(d=e.width/2,h=t.width/2),this.paddingLeft=Math.max((d-f+o)*this.width/(this.width-f),0),this.paddingRight=Math.max((h-c+o)*this.width/(this.width-c),0)}else{let f=t.height/2,c=e.height/2;l==="start"?(f=0,c=e.height):l==="end"&&(f=t.height,c=0),this.paddingTop=f+o,this.paddingBottom=c+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){pt(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:t}=this.options;return t==="top"||t==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let t,i;for(t=0,i=e.length;t({width:l[D]||0,height:o[D]||0});return{first:M(0),last:M(t-1),widest:M(C),highest:M(T),widths:l,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){const t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const t=this._startPixel+e*this._length;return jv(this._alignToPixels?Pi(this.chart,t,0):t)}getDecimalForPixel(e){const t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){const t=this.ticks||[];if(e>=0&&er*s?r/i:a/s:a*s0}_computeGridLineItems(e){const t=this.axis,i=this.chart,s=this.options,{grid:l,position:o}=s,r=l.offset,a=this.isHorizontal(),f=this.ticks.length+(r?1:0),c=Vs(l),d=[],h=l.setContext(this.getContext()),m=h.drawBorder?h.borderWidth:0,b=m/2,g=function(G){return Pi(i,G,m)};let y,k,$,C,T,M,D,E,I,L,F,q;if(o==="top")y=g(this.bottom),M=this.bottom-c,E=y-b,L=g(e.top)+b,q=e.bottom;else if(o==="bottom")y=g(this.top),L=e.top,q=g(e.bottom)-b,M=y+b,E=this.top+c;else if(o==="left")y=g(this.right),T=this.right-c,D=y-b,I=g(e.left)+b,F=e.right;else if(o==="right")y=g(this.left),I=e.left,F=g(e.right)-b,T=y+b,D=this.left+c;else if(t==="x"){if(o==="center")y=g((e.top+e.bottom)/2+.5);else if(Ye(o)){const G=Object.keys(o)[0],X=o[G];y=g(this.chart.scales[G].getPixelForValue(X))}L=e.top,q=e.bottom,M=y+b,E=M+c}else if(t==="y"){if(o==="center")y=g((e.left+e.right)/2);else if(Ye(o)){const G=Object.keys(o)[0],X=o[G];y=g(this.chart.scales[G].getPixelForValue(X))}T=y-b,D=T-c,I=e.left,F=e.right}const z=Xe(s.ticks.maxTicksLimit,f),J=Math.max(1,Math.ceil(f/z));for(k=0;kl.value===e);return s>=0?t.setContext(this.getContext(s)).lineWidth:0}drawGrid(e){const t=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let l,o;const r=(a,u,f)=>{!f.width||!f.color||(i.save(),i.lineWidth=f.width,i.strokeStyle=f.color,i.setLineDash(f.borderDash||[]),i.lineDashOffset=f.borderDashOffset,i.beginPath(),i.moveTo(a.x,a.y),i.lineTo(u.x,u.y),i.stroke(),i.restore())};if(t.display)for(l=0,o=s.length;l{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:t,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const t=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let l,o;for(l=0,o=t.length;l{const i=t.split("."),s=i.pop(),l=[n].concat(i).join("."),o=e[t].split("."),r=o.pop(),a=o.join(".");Qe.route(l,s,a,r)})}function Q2(n){return"id"in n&&"defaults"in n}class x2{constructor(){this.controllers=new Zl(Rn,"datasets",!0),this.elements=new Zl(li,"elements"),this.plugins=new Zl(Object,"plugins"),this.scales=new Zl(Qi,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,t,i){[...t].forEach(s=>{const l=i||this._getRegistryForType(s);i||l.isForType(s)||l===this.plugins&&s.id?this._exec(e,l,s):lt(s,o=>{const r=i||this._getRegistryForType(o);this._exec(e,r,o)})})}_exec(e,t,i){const s=$a(e);pt(i["before"+s],[],i),t[e](i),pt(i["after"+s],[],i)}_getRegistryForType(e){for(let t=0;t0&&this.getParsed(t-1);for(let C=t;C0&&Math.abs(M[h]-$[h])>y,g&&(D.parsed=M,D.raw=u.data[C]),d&&(D.options=c||this.resolveDataElementOptions(C,T.active?"active":s)),k||this.updateElement(T,C,D,s),$=M}this.updateSharedOptions(c,s,f)}getMaxOverflow(){const e=this._cachedMeta,t=e.data||[];if(!this.options.showLine){let r=0;for(let a=t.length-1;a>=0;--a)r=Math.max(r,t[a].size(this.resolveDataElementOptions(a))/2);return r>0&&r}const i=e.dataset,s=i.options&&i.options.borderWidth||0;if(!t.length)return s;const l=t[0].size(this.resolveDataElementOptions(0)),o=t[t.length-1].size(this.resolveDataElementOptions(t.length-1));return Math.max(s,l,o)/2}}Va.id="scatter";Va.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};Va.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title(){return""},label(n){return"("+n.label+", "+n.formattedValue+")"}}}},scales:{x:{type:"linear"},y:{type:"linear"}}};function Li(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Kr{constructor(e){this.options=e||{}}init(e){}formats(){return Li()}parse(e,t){return Li()}format(e,t){return Li()}add(e,t,i){return Li()}diff(e,t,i){return Li()}startOf(e,t,i){return Li()}endOf(e,t){return Li()}}Kr.override=function(n){Object.assign(Kr.prototype,n)};var c_={_date:Kr};function ek(n,e,t,i){const{controller:s,data:l,_sorted:o}=n,r=s._cachedMeta.iScale;if(r&&e===r.axis&&e!=="r"&&o&&l.length){const a=r._reversePixels?qv:qi;if(i){if(s._sharedOptions){const u=l[0],f=typeof u.getRange=="function"&&u.getRange(e);if(f){const c=a(l,e,t-f),d=a(l,e,t+f);return{lo:c.lo,hi:d.hi}}}}else return a(l,e,t)}return{lo:0,hi:l.length-1}}function Dl(n,e,t,i,s){const l=n.getSortedVisibleDatasetMetas(),o=t[e];for(let r=0,a=l.length;r{a[o](e[t],s)&&(l.push({element:a,datasetIndex:u,index:f}),r=r||a.inRange(e.x,e.y,s))}),i&&!r?[]:l}var sk={evaluateInteractionItems:Dl,modes:{index(n,e,t,i){const s=Ri(e,n),l=t.axis||"x",o=t.includeInvisible||!1,r=t.intersect?pr(n,s,l,i,o):hr(n,s,l,!1,i,o),a=[];return r.length?(n.getSortedVisibleDatasetMetas().forEach(u=>{const f=r[0].index,c=u.data[f];c&&!c.skip&&a.push({element:c,datasetIndex:u.index,index:f})}),a):[]},dataset(n,e,t,i){const s=Ri(e,n),l=t.axis||"xy",o=t.includeInvisible||!1;let r=t.intersect?pr(n,s,l,i,o):hr(n,s,l,!1,i,o);if(r.length>0){const a=r[0].datasetIndex,u=n.getDatasetMeta(a).data;r=[];for(let f=0;ft.pos===e)}function Pf(n,e){return n.filter(t=>d_.indexOf(t.pos)===-1&&t.box.axis===e)}function Bs(n,e){return n.sort((t,i)=>{const s=e?i:t,l=e?t:i;return s.weight===l.weight?s.index-l.index:s.weight-l.weight})}function lk(n){const e=[];let t,i,s,l,o,r;for(t=0,i=(n||[]).length;tu.box.fullSize),!0),i=Bs(zs(e,"left"),!0),s=Bs(zs(e,"right")),l=Bs(zs(e,"top"),!0),o=Bs(zs(e,"bottom")),r=Pf(e,"x"),a=Pf(e,"y");return{fullSize:t,leftAndTop:i.concat(l),rightAndBottom:s.concat(a).concat(o).concat(r),chartArea:zs(e,"chartArea"),vertical:i.concat(s).concat(a),horizontal:l.concat(o).concat(r)}}function Lf(n,e,t,i){return Math.max(n[t],e[t])+Math.max(n[i],e[i])}function p_(n,e){n.top=Math.max(n.top,e.top),n.left=Math.max(n.left,e.left),n.bottom=Math.max(n.bottom,e.bottom),n.right=Math.max(n.right,e.right)}function uk(n,e,t,i){const{pos:s,box:l}=t,o=n.maxPadding;if(!Ye(s)){t.size&&(n[s]-=t.size);const c=i[t.stack]||{size:0,count:1};c.size=Math.max(c.size,t.horizontal?l.height:l.width),t.size=c.size/c.count,n[s]+=t.size}l.getPadding&&p_(o,l.getPadding());const r=Math.max(0,e.outerWidth-Lf(o,n,"left","right")),a=Math.max(0,e.outerHeight-Lf(o,n,"top","bottom")),u=r!==n.w,f=a!==n.h;return n.w=r,n.h=a,t.horizontal?{same:u,other:f}:{same:f,other:u}}function fk(n){const e=n.maxPadding;function t(i){const s=Math.max(e[i]-n[i],0);return n[i]+=s,s}n.y+=t("top"),n.x+=t("left"),t("right"),t("bottom")}function ck(n,e){const t=e.maxPadding;function i(s){const l={left:0,top:0,right:0,bottom:0};return s.forEach(o=>{l[o]=Math.max(e[o],t[o])}),l}return i(n?["left","right"]:["top","bottom"])}function Gs(n,e,t,i){const s=[];let l,o,r,a,u,f;for(l=0,o=n.length,u=0;l{typeof b.beforeLayout=="function"&&b.beforeLayout()});const f=a.reduce((b,g)=>g.box.options&&g.box.options.display===!1?b:b+1,0)||1,c=Object.freeze({outerWidth:e,outerHeight:t,padding:s,availableWidth:l,availableHeight:o,vBoxMaxWidth:l/2/f,hBoxMaxHeight:o/2}),d=Object.assign({},s);p_(d,Cn(i));const h=Object.assign({maxPadding:d,w:l,h:o,x:s.left,y:s.top},s),m=rk(a.concat(u),c);Gs(r.fullSize,h,c,m),Gs(a,h,c,m),Gs(u,h,c,m)&&Gs(a,h,c,m),fk(h),Nf(r.leftAndTop,h,c,m),h.x+=h.w,h.y+=h.h,Nf(r.rightAndBottom,h,c,m),n.chartArea={left:h.left,top:h.top,right:h.left+h.w,bottom:h.top+h.h,height:h.h,width:h.w},lt(r.chartArea,b=>{const g=b.box;Object.assign(g,n.chartArea),g.update(h.w,h.h,{left:0,top:0,right:0,bottom:0})})}};class h_{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,i){}removeEventListener(e,t,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,i,s){return t=Math.max(0,t||e.width),i=i||e.height,{width:t,height:Math.max(0,s?Math.floor(t/s):i)}}isAttached(e){return!0}updateConfig(e){}}class dk extends h_{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const uo="$chartjs",pk={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Ff=n=>n===null||n==="";function hk(n,e){const t=n.style,i=n.getAttribute("height"),s=n.getAttribute("width");if(n[uo]={initial:{height:i,width:s,style:{display:t.display,height:t.height,width:t.width}}},t.display=t.display||"block",t.boxSizing=t.boxSizing||"border-box",Ff(s)){const l=hf(n,"width");l!==void 0&&(n.width=l)}if(Ff(i))if(n.style.height==="")n.height=n.width/(e||2);else{const l=hf(n,"height");l!==void 0&&(n.height=l)}return n}const m_=Jy?{passive:!0}:!1;function mk(n,e,t){n.addEventListener(e,t,m_)}function gk(n,e,t){n.canvas.removeEventListener(e,t,m_)}function _k(n,e){const t=pk[n.type]||n.type,{x:i,y:s}=Ri(n,e);return{type:t,chart:e,native:n,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Oo(n,e){for(const t of n)if(t===e||t.contains(e))return!0}function bk(n,e,t){const i=n.canvas,s=new MutationObserver(l=>{let o=!1;for(const r of l)o=o||Oo(r.addedNodes,i),o=o&&!Oo(r.removedNodes,i);o&&t()});return s.observe(document,{childList:!0,subtree:!0}),s}function vk(n,e,t){const i=n.canvas,s=new MutationObserver(l=>{let o=!1;for(const r of l)o=o||Oo(r.removedNodes,i),o=o&&!Oo(r.addedNodes,i);o&&t()});return s.observe(document,{childList:!0,subtree:!0}),s}const hl=new Map;let Rf=0;function g_(){const n=window.devicePixelRatio;n!==Rf&&(Rf=n,hl.forEach((e,t)=>{t.currentDevicePixelRatio!==n&&e()}))}function yk(n,e){hl.size||window.addEventListener("resize",g_),hl.set(n,e)}function kk(n){hl.delete(n),hl.size||window.removeEventListener("resize",g_)}function wk(n,e,t){const i=n.canvas,s=i&&Fa(i);if(!s)return;const l=Vg((r,a)=>{const u=s.clientWidth;t(r,a),u{const a=r[0],u=a.contentRect.width,f=a.contentRect.height;u===0&&f===0||l(u,f)});return o.observe(s),yk(n,l),o}function mr(n,e,t){t&&t.disconnect(),e==="resize"&&kk(n)}function Sk(n,e,t){const i=n.canvas,s=Vg(l=>{n.ctx!==null&&t(_k(l,n))},n,l=>{const o=l[0];return[o,o.offsetX,o.offsetY]});return mk(i,e,s),s}class $k extends h_{acquireContext(e,t){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(hk(e,t),i):null}releaseContext(e){const t=e.canvas;if(!t[uo])return!1;const i=t[uo].initial;["height","width"].forEach(l=>{const o=i[l];it(o)?t.removeAttribute(l):t.setAttribute(l,o)});const s=i.style||{};return Object.keys(s).forEach(l=>{t.style[l]=s[l]}),t.width=t.width,delete t[uo],!0}addEventListener(e,t,i){this.removeEventListener(e,t);const s=e.$proxies||(e.$proxies={}),o={attach:bk,detach:vk,resize:wk}[t]||Sk;s[t]=o(e,t,i)}removeEventListener(e,t){const i=e.$proxies||(e.$proxies={}),s=i[t];if(!s)return;({attach:mr,detach:mr,resize:mr}[t]||gk)(e,t,s),i[t]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,i,s){return Ky(e,t,i,s)}isAttached(e){const t=Fa(e);return!!(t&&t.isConnected)}}function Ck(n){return!n_()||typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas?dk:$k}class Tk{constructor(){this._init=[]}notify(e,t,i,s){t==="beforeInit"&&(this._init=this._createDescriptors(e,!0),this._notify(this._init,e,"install"));const l=s?this._descriptors(e).filter(s):this._descriptors(e),o=this._notify(l,e,t,i);return t==="afterDestroy"&&(this._notify(l,e,"stop"),this._notify(this._init,e,"uninstall")),o}_notify(e,t,i,s){s=s||{};for(const l of e){const o=l.plugin,r=o[i],a=[t,s,l.options];if(pt(r,a,o)===!1&&s.cancelable)return!1}return!0}invalidate(){it(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(e){if(this._cache)return this._cache;const t=this._cache=this._createDescriptors(e);return this._notifyStateChanges(e),t}_createDescriptors(e,t){const i=e&&e.config,s=Xe(i.options&&i.options.plugins,{}),l=Mk(i);return s===!1&&!t?[]:Dk(e,l,s,t)}_notifyStateChanges(e){const t=this._oldCache||[],i=this._cache,s=(l,o)=>l.filter(r=>!o.some(a=>r.plugin.id===a.plugin.id));this._notify(s(t,i),e,"stop"),this._notify(s(i,t),e,"start")}}function Mk(n){const e={},t=[],i=Object.keys(Vn.plugins.items);for(let l=0;l{const a=i[r];if(!Ye(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const u=Zr(r,a),f=Ik(u,s),c=t.scales||{};l[u]=l[u]||r,o[r]=xs(Object.create(null),[{axis:u},a,c[u],c[f]])}),n.data.datasets.forEach(r=>{const a=r.type||n.type,u=r.indexAxis||Jr(a,e),c=(Ji[a]||{}).scales||{};Object.keys(c).forEach(d=>{const h=Ek(d,u),m=r[h+"AxisID"]||l[h]||h;o[m]=o[m]||Object.create(null),xs(o[m],[{axis:h},i[m],c[d]])})}),Object.keys(o).forEach(r=>{const a=o[r];xs(a,[Qe.scales[a.type],Qe.scale])}),o}function __(n){const e=n.options||(n.options={});e.plugins=Xe(e.plugins,{}),e.scales=Lk(n,e)}function b_(n){return n=n||{},n.datasets=n.datasets||[],n.labels=n.labels||[],n}function Nk(n){return n=n||{},n.data=b_(n.data),__(n),n}const Hf=new Map,v_=new Set;function Ql(n,e){let t=Hf.get(n);return t||(t=e(),Hf.set(n,t),v_.add(t)),t}const Us=(n,e,t)=>{const i=vi(e,t);i!==void 0&&n.add(i)};class Fk{constructor(e){this._config=Nk(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=b_(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),__(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Ql(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,t){return Ql(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,t){return Ql(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,""]])}pluginScopeKeys(e){const t=e.id,i=this.type;return Ql(`${i}-plugin-${t}`,()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,t){const i=this._scopeCache;let s=i.get(e);return(!s||t)&&(s=new Map,i.set(e,s)),s}getOptionScopes(e,t,i){const{options:s,type:l}=this,o=this._cachedScopes(e,i),r=o.get(t);if(r)return r;const a=new Set;t.forEach(f=>{e&&(a.add(e),f.forEach(c=>Us(a,e,c))),f.forEach(c=>Us(a,s,c)),f.forEach(c=>Us(a,Ji[l]||{},c)),f.forEach(c=>Us(a,Qe,c)),f.forEach(c=>Us(a,Wr,c))});const u=Array.from(a);return u.length===0&&u.push(Object.create(null)),v_.has(t)&&o.set(t,u),u}chartOptionScopes(){const{options:e,type:t}=this;return[e,Ji[t]||{},Qe.datasets[t]||{},{type:t},Qe,Wr]}resolveNamedOptions(e,t,i,s=[""]){const l={$shared:!0},{resolver:o,subPrefixes:r}=jf(this._resolverCache,e,s);let a=o;if(Hk(o,t)){l.$shared=!1,i=yi(i)?i():i;const u=this.createResolver(e,i,r);a=$s(o,i,u)}for(const u of t)l[u]=a[u];return l}createResolver(e,t,i=[""],s){const{resolver:l}=jf(this._resolverCache,e,i);return Ye(t)?$s(l,t,void 0,s):l}}function jf(n,e,t){let i=n.get(e);i||(i=new Map,n.set(e,i));const s=t.join();let l=i.get(s);return l||(l={resolver:Pa(e,t),subPrefixes:t.filter(r=>!r.toLowerCase().includes("hover"))},i.set(s,l)),l}const Rk=n=>Ye(n)&&Object.getOwnPropertyNames(n).reduce((e,t)=>e||yi(n[t]),!1);function Hk(n,e){const{isScriptable:t,isIndexable:i}=Gg(n);for(const s of e){const l=t(s),o=i(s),r=(o||l)&&n[s];if(l&&(yi(r)||Rk(r))||o&&ft(r))return!0}return!1}var jk="3.9.1";const qk=["top","bottom","left","right","chartArea"];function qf(n,e){return n==="top"||n==="bottom"||qk.indexOf(n)===-1&&e==="x"}function Vf(n,e){return function(t,i){return t[n]===i[n]?t[e]-i[e]:t[n]-i[n]}}function zf(n){const e=n.chart,t=e.options.animation;e.notifyPlugins("afterRender"),pt(t&&t.onComplete,[n],e)}function Vk(n){const e=n.chart,t=e.options.animation;pt(t&&t.onProgress,[n],e)}function y_(n){return n_()&&typeof n=="string"?n=document.getElementById(n):n&&n.length&&(n=n[0]),n&&n.canvas&&(n=n.canvas),n}const Do={},k_=n=>{const e=y_(n);return Object.values(Do).filter(t=>t.canvas===e).pop()};function zk(n,e,t){const i=Object.keys(n);for(const s of i){const l=+s;if(l>=e){const o=n[s];delete n[s],(t>0||l>e)&&(n[l+t]=o)}}}function Bk(n,e,t,i){return!t||n.type==="mouseout"?null:i?e:n}class Ao{constructor(e,t){const i=this.config=new Fk(t),s=y_(e),l=k_(s);if(l)throw new Error("Canvas is already in use. Chart with ID '"+l.id+"' must be destroyed before the canvas with ID '"+l.canvas.id+"' can be reused.");const o=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||Ck(s)),this.platform.updateConfig(i);const r=this.platform.acquireContext(s,o.aspectRatio),a=r&&r.canvas,u=a&&a.height,f=a&&a.width;if(this.id=Mv(),this.ctx=r,this.canvas=a,this.width=f,this.height=u,this._options=o,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Tk,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Bv(c=>this.update(c),o.resizeDelay||0),this._dataChanges=[],Do[this.id]=this,!r||!a){console.error("Failed to create chart: can't acquire context from the given item");return}xn.listen(this,"complete",zf),xn.listen(this,"progress",Vk),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:t},width:i,height:s,_aspectRatio:l}=this;return it(e)?t&&l?l:s?i/s:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():pf(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return ff(this.canvas,this.ctx),this}stop(){return xn.stop(this),this}resize(e,t){xn.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){const i=this.options,s=this.canvas,l=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,e,t,l),r=i.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,pf(this,r,!0)&&(this.notifyPlugins("resize",{size:o}),pt(i.onResize,[this,o],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};lt(t,(i,s)=>{i.id=s})}buildOrUpdateScales(){const e=this.options,t=e.scales,i=this.scales,s=Object.keys(i).reduce((o,r)=>(o[r]=!1,o),{});let l=[];t&&(l=l.concat(Object.keys(t).map(o=>{const r=t[o],a=Zr(o,r),u=a==="r",f=a==="x";return{options:r,dposition:u?"chartArea":f?"bottom":"left",dtype:u?"radialLinear":f?"category":"linear"}}))),lt(l,o=>{const r=o.options,a=r.id,u=Zr(a,r),f=Xe(r.type,o.dtype);(r.position===void 0||qf(r.position,u)!==qf(o.dposition))&&(r.position=o.dposition),s[a]=!0;let c=null;if(a in i&&i[a].type===f)c=i[a];else{const d=Vn.getScale(f);c=new d({id:a,type:f,ctx:this.ctx,chart:this}),i[c.id]=c}c.init(r,e)}),lt(s,(o,r)=>{o||delete i[r]}),lt(i,o=>{Xl.configure(this,o,o.options),Xl.addBox(this,o)})}_updateMetasets(){const e=this._metasets,t=this.data.datasets.length,i=e.length;if(e.sort((s,l)=>s.index-l.index),i>t){for(let s=t;st.length&&delete this._stacks,e.forEach((i,s)=>{t.filter(l=>l===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const e=[],t=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=t.length;i{this.getDatasetMeta(t).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const t=this.config;t.update();const i=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0})===!1)return;const l=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let u=0,f=this.data.datasets.length;u{u.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(Vf("z","_idx"));const{_active:r,_lastEvent:a}=this;a?this._eventHandler(a,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){lt(this.scales,e=>{Xl.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,t=new Set(Object.keys(this._listeners)),i=new Set(e.events);(!Gu(t,i)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:l}of t){const o=i==="_removeElements"?-l:l;zk(e,s,o)}}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const t=this.data.datasets.length,i=l=>new Set(e.filter(o=>o[0]===l).map((o,r)=>r+","+o.splice(1).join(","))),s=i(0);for(let l=1;ll.split(",")).map(l=>({method:l[1],start:+l[2],count:+l[3]}))}_updateLayout(e){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Xl.update(this,this.width,this.height,e);const t=this.chartArea,i=t.width<=0||t.height<=0;this._layers=[],lt(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,l)=>{s._idx=l}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})!==!1){for(let t=0,i=this.data.datasets.length;t=0;--t)this._drawDataset(e[t]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const t=this.ctx,i=e._clip,s=!i.disabled,l=this.chartArea,o={meta:e,index:e.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",o)!==!1&&(s&&Aa(t,{left:i.left===!1?0:l.left-i.left,right:i.right===!1?this.width:l.right+i.right,top:i.top===!1?0:l.top-i.top,bottom:i.bottom===!1?this.height:l.bottom+i.bottom}),e.controller.draw(),s&&Ea(t),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(e){return pl(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,i,s){const l=sk.modes[t];return typeof l=="function"?l(this,e,i,s):[]}getDatasetMeta(e){const t=this.data.datasets[e],i=this._metasets;let s=i.filter(l=>l&&l._dataset===t).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Si(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const t=this.data.datasets[e];if(!t)return!1;const i=this.getDatasetMeta(e);return typeof i.hidden=="boolean"?!i.hidden:!t.hidden}setDatasetVisibility(e,t){const i=this.getDatasetMeta(e);i.hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,i){const s=i?"show":"hide",l=this.getDatasetMeta(e),o=l.controller._resolveAnimations(void 0,s);$n(t)?(l.data[t].hidden=!i,this.update()):(this.setDatasetVisibility(e,i),o.update(l,{visible:i}),this.update(r=>r.datasetIndex===e?s:void 0))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){const t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),xn.remove(this),e=0,t=this.data.datasets.length;e{t.addEventListener(this,l,o),e[l]=o},s=(l,o,r)=>{l.offsetX=o,l.offsetY=r,this._eventHandler(l)};lt(this.options.events,l=>i(l,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,t=this.platform,i=(a,u)=>{t.addEventListener(this,a,u),e[a]=u},s=(a,u)=>{e[a]&&(t.removeEventListener(this,a,u),delete e[a])},l=(a,u)=>{this.canvas&&this.resize(a,u)};let o;const r=()=>{s("attach",r),this.attached=!0,this.resize(),i("resize",l),i("detach",o)};o=()=>{this.attached=!1,s("resize",l),this._stop(),this._resize(0,0),i("attach",r)},t.isAttached(this.canvas)?r():o()}unbindEvents(){lt(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},lt(this._responsiveListeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,t,i){const s=i?"set":"remove";let l,o,r,a;for(t==="dataset"&&(l=this.getDatasetMeta(e[0].datasetIndex),l.controller["_"+s+"DatasetHoverStyle"]()),r=0,a=e.length;r{const r=this.getDatasetMeta(l);if(!r)throw new Error("No dataset found at index "+l);return{datasetIndex:l,element:r.data[o],index:o}});!yo(i,t)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,t))}notifyPlugins(e,t,i){return this._plugins.notify(this,e,t,i)}_updateHoverStyles(e,t,i){const s=this.options.hover,l=(a,u)=>a.filter(f=>!u.some(c=>f.datasetIndex===c.datasetIndex&&f.index===c.index)),o=l(t,e),r=i?e:l(e,t);o.length&&this.updateHoverStyle(o,s.mode,!1),r.length&&s.mode&&this.updateHoverStyle(r,s.mode,!0)}_eventHandler(e,t){const i={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},s=o=>(o.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;const l=this._handleEvent(e,t,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(l||i.changed)&&this.render(),this}_handleEvent(e,t,i){const{_active:s=[],options:l}=this,o=t,r=this._getActiveElements(e,s,i,o),a=Pv(e),u=Bk(e,this._lastEvent,i,a);i&&(this._lastEvent=null,pt(l.onHover,[e,r,this],this),a&&pt(l.onClick,[e,r,this],this));const f=!yo(r,s);return(f||t)&&(this._active=r,this._updateHoverStyles(r,s,t)),this._lastEvent=u,f}_getActiveElements(e,t,i,s){if(e.type==="mouseout")return[];if(!i)return t;const l=this.options.hover;return this.getElementsAtEventForMode(e,l.mode,l,s)}}const Bf=()=>lt(Ao.instances,n=>n._plugins.invalidate()),ci=!0;Object.defineProperties(Ao,{defaults:{enumerable:ci,value:Qe},instances:{enumerable:ci,value:Do},overrides:{enumerable:ci,value:Ji},registry:{enumerable:ci,value:Vn},version:{enumerable:ci,value:jk},getChart:{enumerable:ci,value:k_},register:{enumerable:ci,value:(...n)=>{Vn.add(...n),Bf()}},unregister:{enumerable:ci,value:(...n)=>{Vn.remove(...n),Bf()}}});function w_(n,e,t){const{startAngle:i,pixelMargin:s,x:l,y:o,outerRadius:r,innerRadius:a}=e;let u=s/r;n.beginPath(),n.arc(l,o,r,i-u,t+u),a>s?(u=s/a,n.arc(l,o,a,t+u,i-u,!0)):n.arc(l,o,s,t+ht,i-ht),n.closePath(),n.clip()}function Uk(n){return Ia(n,["outerStart","outerEnd","innerStart","innerEnd"])}function Wk(n,e,t,i){const s=Uk(n.options.borderRadius),l=(t-e)/2,o=Math.min(l,i*e/2),r=a=>{const u=(t-Math.min(l,a))*i/2;return Rt(a,0,Math.min(l,u))};return{outerStart:r(s.outerStart),outerEnd:r(s.outerEnd),innerStart:Rt(s.innerStart,0,o),innerEnd:Rt(s.innerEnd,0,o)}}function fs(n,e,t,i){return{x:t+n*Math.cos(e),y:i+n*Math.sin(e)}}function Gr(n,e,t,i,s,l){const{x:o,y:r,startAngle:a,pixelMargin:u,innerRadius:f}=e,c=Math.max(e.outerRadius+i+t-u,0),d=f>0?f+i+t+u:0;let h=0;const m=s-a;if(i){const G=f>0?f-i:0,X=c>0?c-i:0,Q=(G+X)/2,ie=Q!==0?m*Q/(Q+i):m;h=(m-ie)/2}const b=Math.max(.001,m*c-t/gt)/c,g=(m-b)/2,y=a+g+h,k=s-g-h,{outerStart:$,outerEnd:C,innerStart:T,innerEnd:M}=Wk(e,d,c,k-y),D=c-$,E=c-C,I=y+$/D,L=k-C/E,F=d+T,q=d+M,z=y+T/F,J=k-M/q;if(n.beginPath(),l){if(n.arc(o,r,c,I,L),C>0){const Q=fs(E,L,o,r);n.arc(Q.x,Q.y,C,L,k+ht)}const G=fs(q,k,o,r);if(n.lineTo(G.x,G.y),M>0){const Q=fs(q,J,o,r);n.arc(Q.x,Q.y,M,k+ht,J+Math.PI)}if(n.arc(o,r,d,k-M/d,y+T/d,!0),T>0){const Q=fs(F,z,o,r);n.arc(Q.x,Q.y,T,z+Math.PI,y-ht)}const X=fs(D,y,o,r);if(n.lineTo(X.x,X.y),$>0){const Q=fs(D,I,o,r);n.arc(Q.x,Q.y,$,y-ht,I)}}else{n.moveTo(o,r);const G=Math.cos(I)*c+o,X=Math.sin(I)*c+r;n.lineTo(G,X);const Q=Math.cos(L)*c+o,ie=Math.sin(L)*c+r;n.lineTo(Q,ie)}n.closePath()}function Yk(n,e,t,i,s){const{fullCircles:l,startAngle:o,circumference:r}=e;let a=e.endAngle;if(l){Gr(n,e,t,i,o+ot,s);for(let u=0;u=ot||cl(l,r,a),b=dl(o,u+d,f+d);return m&&b}getCenterPoint(e){const{x:t,y:i,startAngle:s,endAngle:l,innerRadius:o,outerRadius:r}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],e),{offset:a,spacing:u}=this.options,f=(s+l)/2,c=(o+r+u+a)/2;return{x:t+Math.cos(f)*c,y:i+Math.sin(f)*c}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:t,circumference:i}=this,s=(t.offset||0)/2,l=(t.spacing||0)/2,o=t.circular;if(this.pixelMargin=t.borderAlign==="inner"?.33:0,this.fullCircles=i>ot?Math.floor(i/ot):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();let r=0;if(s){r=s/2;const u=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(u)*r,Math.sin(u)*r),this.circumference>=gt&&(r=s)}e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor;const a=Yk(e,this,r,l,o);Jk(e,this,r,l,a,o),e.restore()}}za.id="arc";za.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0};za.defaultRoutes={backgroundColor:"backgroundColor"};function S_(n,e,t=e){n.lineCap=Xe(t.borderCapStyle,e.borderCapStyle),n.setLineDash(Xe(t.borderDash,e.borderDash)),n.lineDashOffset=Xe(t.borderDashOffset,e.borderDashOffset),n.lineJoin=Xe(t.borderJoinStyle,e.borderJoinStyle),n.lineWidth=Xe(t.borderWidth,e.borderWidth),n.strokeStyle=Xe(t.borderColor,e.borderColor)}function Zk(n,e,t){n.lineTo(t.x,t.y)}function Gk(n){return n.stepped?_y:n.tension||n.cubicInterpolationMode==="monotone"?by:Zk}function $_(n,e,t={}){const i=n.length,{start:s=0,end:l=i-1}=t,{start:o,end:r}=e,a=Math.max(s,o),u=Math.min(l,r),f=sr&&l>r;return{count:i,start:a,loop:e.loop,ilen:u(o+(u?r-C:C))%l,$=()=>{b!==g&&(n.lineTo(f,g),n.lineTo(f,b),n.lineTo(f,y))};for(a&&(h=s[k(0)],n.moveTo(h.x,h.y)),d=0;d<=r;++d){if(h=s[k(d)],h.skip)continue;const C=h.x,T=h.y,M=C|0;M===m?(Tg&&(g=T),f=(c*f+C)/++c):($(),n.lineTo(C,T),m=M,c=0,b=g=T),y=T}$()}function Xr(n){const e=n.options,t=e.borderDash&&e.borderDash.length;return!n._decimated&&!n._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!t?Qk:Xk}function xk(n){return n.stepped?Zy:n.tension||n.cubicInterpolationMode==="monotone"?Gy:Hi}function ew(n,e,t,i){let s=e._path;s||(s=e._path=new Path2D,e.path(s,t,i)&&s.closePath()),S_(n,e.options),n.stroke(s)}function tw(n,e,t,i){const{segments:s,options:l}=e,o=Xr(e);for(const r of s)S_(n,l,r.style),n.beginPath(),o(n,e,r,{start:t,end:t+i-1})&&n.closePath(),n.stroke()}const nw=typeof Path2D=="function";function iw(n,e,t,i){nw&&!e.options.segment?ew(n,e,t,i):tw(n,e,t,i)}class $i extends li{constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;Vy(this._points,i,e,s,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=l2(this,this.options.segment))}first(){const e=this.segments,t=this.points;return e.length&&t[e[0].start]}last(){const e=this.segments,t=this.points,i=e.length;return i&&t[e[i-1].end]}interpolate(e,t){const i=this.options,s=e[t],l=this.points,o=l_(this,{property:t,start:s,end:s});if(!o.length)return;const r=[],a=xk(i);let u,f;for(u=0,f=o.length;un!=="borderDash"&&n!=="fill"};function Uf(n,e,t,i){const s=n.options,{[t]:l}=n.getProps([t],i);return Math.abs(e-l){r=Ua(o,r,s);const a=s[o],u=s[r];i!==null?(l.push({x:a.x,y:i}),l.push({x:u.x,y:i})):t!==null&&(l.push({x:t,y:a.y}),l.push({x:t,y:u.y}))}),l}function Ua(n,e,t){for(;e>n;e--){const i=t[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function Wf(n,e,t,i){return n&&e?i(n[t],e[t]):n?n[t]:e?e[t]:0}function T_(n,e){let t=[],i=!1;return ft(n)?(i=!0,t=n):t=fw(n,e),t.length?new $i({points:t,options:{tension:0},_loop:i,_fullLoop:i}):null}function Yf(n){return n&&n.fill!==!1}function cw(n,e,t){let s=n[e].fill;const l=[e];let o;if(!t)return s;for(;s!==!1&&l.indexOf(s)===-1;){if(!_t(s))return s;if(o=n[s],!o)return!1;if(o.visible)return s;l.push(s),s=o.fill}return!1}function dw(n,e,t){const i=gw(n);if(Ye(i))return isNaN(i.value)?!1:i;let s=parseFloat(i);return _t(s)&&Math.floor(s)===s?pw(i[0],e,s,t):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function pw(n,e,t,i){return(n==="-"||n==="+")&&(t=e+t),t===e||t<0||t>=i?!1:t}function hw(n,e){let t=null;return n==="start"?t=e.bottom:n==="end"?t=e.top:Ye(n)?t=e.getPixelForValue(n.value):e.getBasePixel&&(t=e.getBasePixel()),t}function mw(n,e,t){let i;return n==="start"?i=t:n==="end"?i=e.options.reverse?e.min:e.max:Ye(n)?i=n.value:i=e.getBaseValue(),i}function gw(n){const e=n.options,t=e.fill;let i=Xe(t&&t.target,t);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function _w(n){const{scale:e,index:t,line:i}=n,s=[],l=i.segments,o=i.points,r=bw(e,t);r.push(T_({x:null,y:e.bottom},i));for(let a=0;a=0;--o){const r=s[o].$filler;!r||(r.line.updateControlPoints(l,r.axis),i&&r.fill&&br(n.ctx,r,l))}},beforeDatasetsDraw(n,e,t){if(t.drawTime!=="beforeDatasetsDraw")return;const i=n.getSortedVisibleDatasetMetas();for(let s=i.length-1;s>=0;--s){const l=i[s].$filler;Yf(l)&&br(n.ctx,l,n.chartArea)}},beforeDatasetDraw(n,e,t){const i=e.meta.$filler;!Yf(i)||t.drawTime!=="beforeDatasetDraw"||br(n.ctx,i,n.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const il={average(n){if(!n.length)return!1;let e,t,i=0,s=0,l=0;for(e=0,t=n.length;e-1?n.split(` -`):n}function Dw(n,e){const{element:t,datasetIndex:i,index:s}=e,l=n.getDatasetMeta(i).controller,{label:o,value:r}=l.getLabelAndValue(s);return{chart:n,label:o,parsed:l.getParsed(s),raw:n.data.datasets[i].data[s],formattedValue:r,dataset:l.getDataset(),dataIndex:s,datasetIndex:i,element:t}}function Gf(n,e){const t=n.chart.ctx,{body:i,footer:s,title:l}=n,{boxWidth:o,boxHeight:r}=e,a=un(e.bodyFont),u=un(e.titleFont),f=un(e.footerFont),c=l.length,d=s.length,h=i.length,m=Cn(e.padding);let b=m.height,g=0,y=i.reduce((C,T)=>C+T.before.length+T.lines.length+T.after.length,0);if(y+=n.beforeBody.length+n.afterBody.length,c&&(b+=c*u.lineHeight+(c-1)*e.titleSpacing+e.titleMarginBottom),y){const C=e.displayColors?Math.max(r,a.lineHeight):a.lineHeight;b+=h*C+(y-h)*a.lineHeight+(y-1)*e.bodySpacing}d&&(b+=e.footerMarginTop+d*f.lineHeight+(d-1)*e.footerSpacing);let k=0;const $=function(C){g=Math.max(g,t.measureText(C).width+k)};return t.save(),t.font=u.string,lt(n.title,$),t.font=a.string,lt(n.beforeBody.concat(n.afterBody),$),k=e.displayColors?o+2+e.boxPadding:0,lt(i,C=>{lt(C.before,$),lt(C.lines,$),lt(C.after,$)}),k=0,t.font=f.string,lt(n.footer,$),t.restore(),g+=m.width,{width:g,height:b}}function Aw(n,e){const{y:t,height:i}=e;return tn.height-i/2?"bottom":"center"}function Ew(n,e,t,i){const{x:s,width:l}=i,o=t.caretSize+t.caretPadding;if(n==="left"&&s+l+o>e.width||n==="right"&&s-l-o<0)return!0}function Iw(n,e,t,i){const{x:s,width:l}=t,{width:o,chartArea:{left:r,right:a}}=n;let u="center";return i==="center"?u=s<=(r+a)/2?"left":"right":s<=l/2?u="left":s>=o-l/2&&(u="right"),Ew(u,n,e,t)&&(u="center"),u}function Xf(n,e,t){const i=t.yAlign||e.yAlign||Aw(n,t);return{xAlign:t.xAlign||e.xAlign||Iw(n,e,t,i),yAlign:i}}function Pw(n,e){let{x:t,width:i}=n;return e==="right"?t-=i:e==="center"&&(t-=i/2),t}function Lw(n,e,t){let{y:i,height:s}=n;return e==="top"?i+=t:e==="bottom"?i-=s+t:i-=s/2,i}function Qf(n,e,t,i){const{caretSize:s,caretPadding:l,cornerRadius:o}=n,{xAlign:r,yAlign:a}=t,u=s+l,{topLeft:f,topRight:c,bottomLeft:d,bottomRight:h}=gs(o);let m=Pw(e,r);const b=Lw(e,a,u);return a==="center"?r==="left"?m+=u:r==="right"&&(m-=u):r==="left"?m-=Math.max(f,d)+s:r==="right"&&(m+=Math.max(c,h)+s),{x:Rt(m,0,i.width-e.width),y:Rt(b,0,i.height-e.height)}}function xl(n,e,t){const i=Cn(t.padding);return e==="center"?n.x+n.width/2:e==="right"?n.x+n.width-i.right:n.x+i.left}function xf(n){return jn([],ei(n))}function Nw(n,e,t){return Si(n,{tooltip:e,tooltipItems:t,type:"tooltip"})}function ec(n,e){const t=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return t?n.override(t):n}class xr extends li{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart||e._chart,this._chart=this.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const t=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&t.options.animation&&i.animations,l=new o_(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(l)),l}getContext(){return this.$context||(this.$context=Nw(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,t){const{callbacks:i}=t,s=i.beforeTitle.apply(this,[e]),l=i.title.apply(this,[e]),o=i.afterTitle.apply(this,[e]);let r=[];return r=jn(r,ei(s)),r=jn(r,ei(l)),r=jn(r,ei(o)),r}getBeforeBody(e,t){return xf(t.callbacks.beforeBody.apply(this,[e]))}getBody(e,t){const{callbacks:i}=t,s=[];return lt(e,l=>{const o={before:[],lines:[],after:[]},r=ec(i,l);jn(o.before,ei(r.beforeLabel.call(this,l))),jn(o.lines,r.label.call(this,l)),jn(o.after,ei(r.afterLabel.call(this,l))),s.push(o)}),s}getAfterBody(e,t){return xf(t.callbacks.afterBody.apply(this,[e]))}getFooter(e,t){const{callbacks:i}=t,s=i.beforeFooter.apply(this,[e]),l=i.footer.apply(this,[e]),o=i.afterFooter.apply(this,[e]);let r=[];return r=jn(r,ei(s)),r=jn(r,ei(l)),r=jn(r,ei(o)),r}_createItems(e){const t=this._active,i=this.chart.data,s=[],l=[],o=[];let r=[],a,u;for(a=0,u=t.length;ae.filter(f,c,d,i))),e.itemSort&&(r=r.sort((f,c)=>e.itemSort(f,c,i))),lt(r,f=>{const c=ec(e.callbacks,f);s.push(c.labelColor.call(this,f)),l.push(c.labelPointStyle.call(this,f)),o.push(c.labelTextColor.call(this,f))}),this.labelColors=s,this.labelPointStyles=l,this.labelTextColors=o,this.dataPoints=r,r}update(e,t){const i=this.options.setContext(this.getContext()),s=this._active;let l,o=[];if(!s.length)this.opacity!==0&&(l={opacity:0});else{const r=il[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const a=this._size=Gf(this,i),u=Object.assign({},r,a),f=Xf(this.chart,i,u),c=Qf(i,u,f,this.chart);this.xAlign=f.xAlign,this.yAlign=f.yAlign,l={opacity:1,x:c.x,y:c.y,width:a.width,height:a.height,caretX:r.x,caretY:r.y}}this._tooltipItems=o,this.$context=void 0,l&&this._resolveAnimations().update(this,l),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,i,s){const l=this.getCaretPosition(e,i,s);t.lineTo(l.x1,l.y1),t.lineTo(l.x2,l.y2),t.lineTo(l.x3,l.y3)}getCaretPosition(e,t,i){const{xAlign:s,yAlign:l}=this,{caretSize:o,cornerRadius:r}=i,{topLeft:a,topRight:u,bottomLeft:f,bottomRight:c}=gs(r),{x:d,y:h}=e,{width:m,height:b}=t;let g,y,k,$,C,T;return l==="center"?(C=h+b/2,s==="left"?(g=d,y=g-o,$=C+o,T=C-o):(g=d+m,y=g+o,$=C-o,T=C+o),k=g):(s==="left"?y=d+Math.max(a,f)+o:s==="right"?y=d+m-Math.max(u,c)-o:y=this.caretX,l==="top"?($=h,C=$-o,g=y-o,k=y+o):($=h+b,C=$+o,g=y+o,k=y-o),T=$),{x1:g,x2:y,x3:k,y1:$,y2:C,y3:T}}drawTitle(e,t,i){const s=this.title,l=s.length;let o,r,a;if(l){const u=ur(i.rtl,this.x,this.width);for(e.x=xl(this,i.titleAlign,i),t.textAlign=u.textAlign(i.titleAlign),t.textBaseline="middle",o=un(i.titleFont),r=i.titleSpacing,t.fillStyle=i.titleColor,t.font=o.string,a=0;a$!==0)?(e.beginPath(),e.fillStyle=l.multiKeyBackground,To(e,{x:g,y:b,w:u,h:a,radius:k}),e.fill(),e.stroke(),e.fillStyle=o.backgroundColor,e.beginPath(),To(e,{x:y,y:b+1,w:u-2,h:a-2,radius:k}),e.fill()):(e.fillStyle=l.multiKeyBackground,e.fillRect(g,b,u,a),e.strokeRect(g,b,u,a),e.fillStyle=o.backgroundColor,e.fillRect(y,b+1,u-2,a-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,t,i){const{body:s}=this,{bodySpacing:l,bodyAlign:o,displayColors:r,boxHeight:a,boxWidth:u,boxPadding:f}=i,c=un(i.bodyFont);let d=c.lineHeight,h=0;const m=ur(i.rtl,this.x,this.width),b=function(E){t.fillText(E,m.x(e.x+h),e.y+d/2),e.y+=d+l},g=m.textAlign(o);let y,k,$,C,T,M,D;for(t.textAlign=o,t.textBaseline="middle",t.font=c.string,e.x=xl(this,g,i),t.fillStyle=i.bodyColor,lt(this.beforeBody,b),h=r&&g!=="right"?o==="center"?u/2+f:u+2+f:0,C=0,M=s.length;C0&&t.stroke()}_updateAnimationTarget(e){const t=this.chart,i=this.$animations,s=i&&i.x,l=i&&i.y;if(s||l){const o=il[e.position].call(this,this._active,this._eventPosition);if(!o)return;const r=this._size=Gf(this,e),a=Object.assign({},o,this._size),u=Xf(t,e,a),f=Qf(e,a,u,t);(s._to!==f.x||l._to!==f.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=r.width,this.height=r.height,this.caretX=o.x,this.caretY=o.y,this._resolveAnimations().update(this,f))}}_willRender(){return!!this.opacity}draw(e){const t=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(t);const s={width:this.width,height:this.height},l={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=Cn(t.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&r&&(e.save(),e.globalAlpha=i,this.drawBackground(l,e,s,t),e2(e,t.textDirection),l.y+=o.top,this.drawTitle(l,e,t),this.drawBody(l,e,t),this.drawFooter(l,e,t),t2(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){const i=this._active,s=e.map(({datasetIndex:r,index:a})=>{const u=this.chart.getDatasetMeta(r);if(!u)throw new Error("Cannot find a dataset at index "+r);return{datasetIndex:r,element:u.data[a],index:a}}),l=!yo(i,s),o=this._positionChanged(s,t);(l||o)&&(this._active=s,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,i=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,l=this._active||[],o=this._getActiveElements(e,l,t,i),r=this._positionChanged(o,e),a=t||!yo(o,l)||r;return a&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),a}_getActiveElements(e,t,i,s){const l=this.options;if(e.type==="mouseout")return[];if(!s)return t;const o=this.chart.getElementsAtEventForMode(e,l.mode,l,i);return l.reverse&&o.reverse(),o}_positionChanged(e,t){const{caretX:i,caretY:s,options:l}=this,o=il[l.position].call(this,e,t);return o!==!1&&(i!==o.x||s!==o.y)}}xr.positioners=il;var Fw={id:"tooltip",_element:xr,positioners:il,afterInit(n,e,t){t&&(n.tooltip=new xr({chart:n,options:t}))},beforeUpdate(n,e,t){n.tooltip&&n.tooltip.initialize(t)},reset(n,e,t){n.tooltip&&n.tooltip.initialize(t)},afterDraw(n){const e=n.tooltip;if(e&&e._willRender()){const t={tooltip:e};if(n.notifyPlugins("beforeTooltipDraw",t)===!1)return;e.draw(n.ctx),n.notifyPlugins("afterTooltipDraw",t)}},afterEvent(n,e){if(n.tooltip){const t=e.replay;n.tooltip.handleEvent(e.event,t,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(n,e)=>e.bodyFont.size,boxWidth:(n,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:Qn,title(n){if(n.length>0){const e=n[0],t=e.chart.data.labels,i=t?t.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndexn!=="filter"&&n!=="itemSort"&&n!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const Rw=(n,e,t,i)=>(typeof e=="string"?(t=n.push(e)-1,i.unshift({index:t,label:e})):isNaN(e)&&(t=null),t);function Hw(n,e,t,i){const s=n.indexOf(e);if(s===-1)return Rw(n,e,t,i);const l=n.lastIndexOf(e);return s!==l?t:s}const jw=(n,e)=>n===null?null:Rt(Math.round(n),0,e);class ea extends Qi{constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const t=this._addedLabels;if(t.length){const i=this.getLabels();for(const{index:s,label:l}of t)i[s]===l&&i.splice(s,1);this._addedLabels=[]}super.init(e)}parse(e,t){if(it(e))return null;const i=this.getLabels();return t=isFinite(t)&&i[t]===e?t:Hw(i,e,Xe(t,e),this._addedLabels),jw(t,i.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:t}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(e||(i=0),t||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const e=this.min,t=this.max,i=this.options.offset,s=[];let l=this.getLabels();l=e===0&&t===l.length-1?l:l.slice(e,t+1),this._valueRange=Math.max(l.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let o=e;o<=t;o++)s.push({value:o});return s}getLabelForValue(e){const t=this.getLabels();return e>=0&&et.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}ea.id="category";ea.defaults={ticks:{callback:ea.prototype.getLabelForValue}};function qw(n,e){const t=[],{bounds:s,step:l,min:o,max:r,precision:a,count:u,maxTicks:f,maxDigits:c,includeBounds:d}=n,h=l||1,m=f-1,{min:b,max:g}=e,y=!it(o),k=!it(r),$=!it(u),C=(g-b)/(c+1);let T=Qu((g-b)/m/h)*h,M,D,E,I;if(T<1e-14&&!y&&!k)return[{value:b},{value:g}];I=Math.ceil(g/T)-Math.floor(b/T),I>m&&(T=Qu(I*T/m/h)*h),it(a)||(M=Math.pow(10,a),T=Math.ceil(T*M)/M),s==="ticks"?(D=Math.floor(b/T)*T,E=Math.ceil(g/T)*T):(D=b,E=g),y&&k&&l&&Rv((r-o)/l,T/1e3)?(I=Math.round(Math.min((r-o)/T,f)),T=(r-o)/I,D=o,E=r):$?(D=y?o:D,E=k?r:E,I=u-1,T=(E-D)/I):(I=(E-D)/T,el(I,Math.round(I),T/1e3)?I=Math.round(I):I=Math.ceil(I));const L=Math.max(xu(T),xu(D));M=Math.pow(10,it(a)?L:a),D=Math.round(D*M)/M,E=Math.round(E*M)/M;let F=0;for(y&&(d&&D!==o?(t.push({value:o}),Ds=t?s:a,r=a=>l=i?l:a;if(e){const a=zn(s),u=zn(l);a<0&&u<0?r(0):a>0&&u>0&&o(0)}if(s===l){let a=1;(l>=Number.MAX_SAFE_INTEGER||s<=Number.MIN_SAFE_INTEGER)&&(a=Math.abs(l*.05)),r(l+a),e||o(s-a)}this.min=s,this.max=l}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:t,stepSize:i}=e,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),t=t||11),t&&(s=Math.min(t,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,t=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:t.includeBounds!==!1},l=this._range||this,o=qw(s,l);return e.bounds==="ticks"&&Fg(o,this,"value"),e.reverse?(o.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),o}configure(){const e=this.ticks;let t=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const s=(i-t)/Math.max(e.length-1,1)/2;t-=s,i+=s}this._startValue=t,this._endValue=i,this._valueRange=i-t}getLabelForValue(e){return Ml(e,this.chart.options.locale,this.options.ticks.format)}}class Wa extends Eo{determineDataLimits(){const{min:e,max:t}=this.getMinMax(!0);this.min=_t(e)?e:0,this.max=_t(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),t=e?this.width:this.height,i=In(this.options.ticks.minRotation),s=(e?Math.sin(i):Math.cos(i))||.001,l=this._resolveTickFontOptions(0);return Math.ceil(t/Math.min(40,l.lineHeight/s))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}Wa.id="linear";Wa.defaults={ticks:{callback:Wo.formatters.numeric}};function nc(n){return n/Math.pow(10,Math.floor(yn(n)))===1}function Vw(n,e){const t=Math.floor(yn(e.max)),i=Math.ceil(e.max/Math.pow(10,t)),s=[];let l=gn(n.min,Math.pow(10,Math.floor(yn(e.min)))),o=Math.floor(yn(l)),r=Math.floor(l/Math.pow(10,o)),a=o<0?Math.pow(10,Math.abs(o)):1;do s.push({value:l,major:nc(l)}),++r,r===10&&(r=1,++o,a=o>=0?1:a),l=Math.round(r*Math.pow(10,o)*a)/a;while(o0?i:null}determineDataLimits(){const{min:e,max:t}=this.getMinMax(!0);this.min=_t(e)?Math.max(0,e):null,this.max=_t(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:e,maxDefined:t}=this.getUserBounds();let i=this.min,s=this.max;const l=a=>i=e?i:a,o=a=>s=t?s:a,r=(a,u)=>Math.pow(10,Math.floor(yn(a))+u);i===s&&(i<=0?(l(1),o(10)):(l(r(i,-1)),o(r(s,1)))),i<=0&&l(r(s,-1)),s<=0&&o(r(i,1)),this._zero&&this.min!==this._suggestedMin&&i===r(this.min,0)&&l(r(i,-1)),this.min=i,this.max=s}buildTicks(){const e=this.options,t={min:this._userMin,max:this._userMax},i=Vw(t,this);return e.bounds==="ticks"&&Fg(i,this,"value"),e.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}getLabelForValue(e){return e===void 0?"0":Ml(e,this.chart.options.locale,this.options.ticks.format)}configure(){const e=this.min;super.configure(),this._startValue=yn(e),this._valueRange=yn(this.max)-yn(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(yn(e)-this._startValue)/this._valueRange)}getValueForPixel(e){const t=this.getDecimalForPixel(e);return Math.pow(10,this._startValue+t*this._valueRange)}}O_.id="logarithmic";O_.defaults={ticks:{callback:Wo.formatters.logarithmic,major:{enabled:!0}}};function ta(n){const e=n.ticks;if(e.display&&n.display){const t=Cn(e.backdropPadding);return Xe(e.font&&e.font.size,Qe.font.size)+t.height}return 0}function zw(n,e,t){return t=ft(t)?t:[t],{w:my(n,e.string,t),h:t.length*e.lineHeight}}function ic(n,e,t,i,s){return n===i||n===s?{start:e-t/2,end:e+t/2}:ns?{start:e-t,end:e}:{start:e,end:e+t}}function Bw(n){const e={l:n.left+n._padding.left,r:n.right-n._padding.right,t:n.top+n._padding.top,b:n.bottom-n._padding.bottom},t=Object.assign({},e),i=[],s=[],l=n._pointLabels.length,o=n.options.pointLabels,r=o.centerPointLabels?gt/l:0;for(let a=0;ae.r&&(r=(i.end-e.r)/l,n.r=Math.max(n.r,e.r+r)),s.starte.b&&(a=(s.end-e.b)/o,n.b=Math.max(n.b,e.b+a))}function Ww(n,e,t){const i=[],s=n._pointLabels.length,l=n.options,o=ta(l)/2,r=n.drawingArea,a=l.pointLabels.centerPointLabels?gt/s:0;for(let u=0;u270||t<90)&&(n-=e),n}function Zw(n,e){const{ctx:t,options:{pointLabels:i}}=n;for(let s=e-1;s>=0;s--){const l=i.setContext(n.getPointLabelContext(s)),o=un(l.font),{x:r,y:a,textAlign:u,left:f,top:c,right:d,bottom:h}=n._pointLabelItems[s],{backdropColor:m}=l;if(!it(m)){const b=gs(l.borderRadius),g=Cn(l.backdropPadding);t.fillStyle=m;const y=f-g.left,k=c-g.top,$=d-f+g.width,C=h-c+g.height;Object.values(b).some(T=>T!==0)?(t.beginPath(),To(t,{x:y,y:k,w:$,h:C,radius:b}),t.fill()):t.fillRect(y,k,$,C)}Co(t,n._pointLabels[s],r,a+o.lineHeight/2,o,{color:l.color,textAlign:u,textBaseline:"middle"})}}function D_(n,e,t,i){const{ctx:s}=n;if(t)s.arc(n.xCenter,n.yCenter,e,0,ot);else{let l=n.getPointPosition(0,e);s.moveTo(l.x,l.y);for(let o=1;o{const s=pt(this.options.pointLabels.callback,[t,i],this);return s||s===0?s:""}).filter((t,i)=>this.chart.getDataVisibility(i))}fit(){const e=this.options;e.display&&e.pointLabels.display?Bw(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,t,i,s){this.xCenter+=Math.floor((e-t)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,t,i,s))}getIndexAngle(e){const t=ot/(this._pointLabels.length||1),i=this.options.startAngle||0;return an(e*t+In(i))}getDistanceFromCenterForValue(e){if(it(e))return NaN;const t=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*t:(e-this.min)*t}getValueForDistanceFromCenter(e){if(it(e))return NaN;const t=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-t:this.min+t}getPointLabelContext(e){const t=this._pointLabels||[];if(e>=0&&e{if(f!==0){r=this.getDistanceFromCenterForValue(u.value);const c=s.setContext(this.getContext(f-1));Gw(this,c,r,l)}}),i.display){for(e.save(),o=l-1;o>=0;o--){const u=i.setContext(this.getPointLabelContext(o)),{color:f,lineWidth:c}=u;!c||!f||(e.lineWidth=c,e.strokeStyle=f,e.setLineDash(u.borderDash),e.lineDashOffset=u.borderDashOffset,r=this.getDistanceFromCenterForValue(t.ticks.reverse?this.min:this.max),a=this.getPointPosition(o,r),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(a.x,a.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){const e=this.ctx,t=this.options,i=t.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let l,o;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(s),e.textAlign="center",e.textBaseline="middle",this.ticks.forEach((r,a)=>{if(a===0&&!t.reverse)return;const u=i.setContext(this.getContext(a)),f=un(u.font);if(l=this.getDistanceFromCenterForValue(this.ticks[a].value),u.showLabelBackdrop){e.font=f.string,o=e.measureText(r.label).width,e.fillStyle=u.backdropColor;const c=Cn(u.backdropPadding);e.fillRect(-o/2-c.left,-l-f.size/2-c.top,o+c.width,f.size+c.height)}Co(e,r.label,0,-l,f,{color:u.color})}),e.restore()}drawTitle(){}}Ko.id="radialLinear";Ko.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Wo.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(n){return n},padding:5,centerPointLabels:!1}};Ko.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};Ko.descriptors={angleLines:{_fallback:"grid"}};const Jo={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},en=Object.keys(Jo);function Qw(n,e){return n-e}function sc(n,e){if(it(e))return null;const t=n._adapter,{parser:i,round:s,isoWeekday:l}=n._parseOpts;let o=e;return typeof i=="function"&&(o=i(o)),_t(o)||(o=typeof i=="string"?t.parse(o,i):t.parse(o)),o===null?null:(s&&(o=s==="week"&&(Ss(l)||l===!0)?t.startOf(o,"isoWeek",l):t.startOf(o,s)),+o)}function lc(n,e,t,i){const s=en.length;for(let l=en.indexOf(n);l=en.indexOf(t);l--){const o=en[l];if(Jo[o].common&&n._adapter.diff(s,i,o)>=e-1)return o}return en[t?en.indexOf(t):0]}function eS(n){for(let e=en.indexOf(n)+1,t=en.length;e=e?t[i]:t[s];n[l]=!0}}function tS(n,e,t,i){const s=n._adapter,l=+s.startOf(e[0].value,i),o=e[e.length-1].value;let r,a;for(r=l;r<=o;r=+s.add(r,1,i))a=t[r],a>=0&&(e[a].major=!0);return e}function rc(n,e,t){const i=[],s={},l=e.length;let o,r;for(o=0;o+e.value))}initOffsets(e){let t=0,i=0,s,l;this.options.offset&&e.length&&(s=this.getDecimalForValue(e[0]),e.length===1?t=1-s:t=(this.getDecimalForValue(e[1])-s)/2,l=this.getDecimalForValue(e[e.length-1]),e.length===1?i=l:i=(l-this.getDecimalForValue(e[e.length-2]))/2);const o=e.length<3?.5:.25;t=Rt(t,0,o),i=Rt(i,0,o),this._offsets={start:t,end:i,factor:1/(t+1+i)}}_generate(){const e=this._adapter,t=this.min,i=this.max,s=this.options,l=s.time,o=l.unit||lc(l.minUnit,t,i,this._getLabelCapacity(t)),r=Xe(l.stepSize,1),a=o==="week"?l.isoWeekday:!1,u=Ss(a)||a===!0,f={};let c=t,d,h;if(u&&(c=+e.startOf(c,"isoWeek",a)),c=+e.startOf(c,u?"day":o),e.diff(i,t,o)>1e5*r)throw new Error(t+" and "+i+" are too far apart with stepSize of "+r+" "+o);const m=s.ticks.source==="data"&&this.getDataTimestamps();for(d=c,h=0;db-g).map(b=>+b)}getLabelForValue(e){const t=this._adapter,i=this.options.time;return i.tooltipFormat?t.format(e,i.tooltipFormat):t.format(e,i.displayFormats.datetime)}_tickFormatFunction(e,t,i,s){const l=this.options,o=l.time.displayFormats,r=this._unit,a=this._majorUnit,u=r&&o[r],f=a&&o[a],c=i[t],d=a&&f&&c&&c.major,h=this._adapter.format(e,s||(d?f:u)),m=l.ticks.callback;return m?pt(m,[h,t,i],this):h}generateTickLabels(e){let t,i,s;for(t=0,i=e.length;t0?r:1}getDataTimestamps(){let e=this._cache.data||[],t,i;if(e.length)return e;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,i=s.length;t=n[i].pos&&e<=n[s].pos&&({lo:i,hi:s}=qi(n,"pos",e)),{pos:l,time:r}=n[i],{pos:o,time:a}=n[s]):(e>=n[i].time&&e<=n[s].time&&({lo:i,hi:s}=qi(n,"time",e)),{time:l,pos:r}=n[i],{time:o,pos:a}=n[s]);const u=o-l;return u?r+(a-r)*(e-l)/u:r}class A_ extends Al{constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=eo(t,this.min),this._tableRange=eo(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:t,max:i}=this,s=[],l=[];let o,r,a,u,f;for(o=0,r=e.length;o=t&&u<=i&&s.push(u);if(s.length<2)return[{time:t,pos:0},{time:i,pos:1}];for(o=0,r=s.length;o{t||(t=je(e,$t,{duration:150},!0)),t.run(1)}),i=!0)},o(s){s&&(t||(t=je(e,$t,{duration:150},!1)),t.run(0)),i=!1},d(s){s&&w(e),s&&t&&t.end()}}}function iS(n){let e,t,i=n[1]===1?"log":"logs",s;return{c(){e=B(n[1]),t=O(),s=B(i)},m(l,o){S(l,e,o),S(l,t,o),S(l,s,o)},p(l,o){o&2&&ae(e,l[1]),o&2&&i!==(i=l[1]===1?"log":"logs")&&ae(s,i)},d(l){l&&w(e),l&&w(t),l&&w(s)}}}function sS(n){let e;return{c(){e=B("Loading...")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function lS(n){let e,t,i,s,l,o=n[2]&&ac();function r(f,c){return f[2]?sS:iS}let a=r(n),u=a(n);return{c(){e=v("div"),o&&o.c(),t=O(),i=v("canvas"),s=O(),l=v("div"),u.c(),p(i,"class","chart-canvas svelte-vh4sl8"),Qa(i,"height","250px"),Qa(i,"width","100%"),p(e,"class","chart-wrapper svelte-vh4sl8"),ne(e,"loading",n[2]),p(l,"class","txt-hint m-t-xs txt-right")},m(f,c){S(f,e,c),o&&o.m(e,null),_(e,t),_(e,i),n[8](i),S(f,s,c),S(f,l,c),u.m(l,null)},p(f,[c]){f[2]?o?c&4&&A(o,1):(o=ac(),o.c(),A(o,1),o.m(e,t)):o&&(pe(),P(o,1,1,()=>{o=null}),he()),c&4&&ne(e,"loading",f[2]),a===(a=r(f))&&u?u.p(f,c):(u.d(1),u=a(f),u&&(u.c(),u.m(l,null)))},i(f){A(o)},o(f){P(o)},d(f){f&&w(e),o&&o.d(),n[8](null),f&&w(s),f&&w(l),u.d()}}}function oS(n,e,t){let{filter:i=""}=e,{presets:s=""}=e,l,o,r=[],a=0,u=!1;async function f(){return t(2,u=!0),de.logs.getRequestsStats({filter:[s,i].filter(Boolean).join("&&")}).then(h=>{c();for(let m of h)r.push({x:new Date(m.date),y:m.total}),t(1,a+=m.total);r.push({x:new Date,y:void 0})}).catch(h=>{h!=null&&h.isAbort||(c(),console.warn(h),de.errorResponseHandler(h,!1))}).finally(()=>{t(2,u=!1)})}function c(){t(1,a=0),t(7,r=[])}cn(()=>(Ao.register($i,Yo,Uo,Wa,Al,Ow,Fw),t(6,o=new Ao(l,{type:"line",data:{datasets:[{label:"Total requests",data:r,borderColor:"#ef4565",pointBackgroundColor:"#ef4565",backgroundColor:"rgb(239,69,101,0.05)",borderWidth:2,pointRadius:1,pointBorderWidth:0,fill:!0}]},options:{animation:!1,interaction:{intersect:!1,mode:"index"},scales:{y:{beginAtZero:!0,grid:{color:"#edf0f3",borderColor:"#dee3e8"},ticks:{precision:0,maxTicksLimit:6,autoSkip:!0,color:"#666f75"}},x:{type:"time",time:{unit:"hour",tooltipFormat:"DD h a"},grid:{borderColor:"#dee3e8",color:h=>h.tick.major?"#edf0f3":""},ticks:{maxTicksLimit:15,autoSkip:!0,maxRotation:0,major:{enabled:!0},color:h=>h.tick.major?"#16161a":"#666f75"}}},plugins:{legend:{display:!1}}}})),()=>o==null?void 0:o.destroy()));function d(h){le[h?"unshift":"push"](()=>{l=h,t(0,l)})}return n.$$set=h=>{"filter"in h&&t(3,i=h.filter),"presets"in h&&t(4,s=h.presets)},n.$$.update=()=>{n.$$.dirty&24&&(typeof i<"u"||typeof s<"u")&&f(),n.$$.dirty&192&&typeof r<"u"&&o&&(t(6,o.data.datasets[0].data=r,o),o.update())},[l,a,u,i,s,f,o,r,d]}class rS extends ye{constructor(e){super(),ve(this,e,oS,lS,be,{filter:3,presets:4,load:5})}get load(){return this.$$.ctx[5]}}var uc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},E_={exports:{}};(function(n){var e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** - * Prism: Lightweight, robust, elegant syntax highlighting - * - * @license MIT - * @author Lea Verou - * @namespace - * @public - */var t=function(i){var s=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,l=0,o={},r={manual:i.Prism&&i.Prism.manual,disableWorkerMessageHandler:i.Prism&&i.Prism.disableWorkerMessageHandler,util:{encode:function k($){return $ instanceof a?new a($.type,k($.content),$.alias):Array.isArray($)?$.map(k):$.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(T){var k=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(T.stack)||[])[1];if(k){var $=document.getElementsByTagName("script");for(var C in $)if($[C].src==k)return $[C]}return null}},isActive:function(k,$,C){for(var T="no-"+$;k;){var M=k.classList;if(M.contains($))return!0;if(M.contains(T))return!1;k=k.parentElement}return!!C}},languages:{plain:o,plaintext:o,text:o,txt:o,extend:function(k,$){var C=r.util.clone(r.languages[k]);for(var T in $)C[T]=$[T];return C},insertBefore:function(k,$,C,T){T=T||r.languages;var M=T[k],D={};for(var E in M)if(M.hasOwnProperty(E)){if(E==$)for(var I in C)C.hasOwnProperty(I)&&(D[I]=C[I]);C.hasOwnProperty(E)||(D[E]=M[E])}var L=T[k];return T[k]=D,r.languages.DFS(r.languages,function(F,q){q===L&&F!=k&&(this[F]=D)}),D},DFS:function k($,C,T,M){M=M||{};var D=r.util.objId;for(var E in $)if($.hasOwnProperty(E)){C.call($,E,$[E],T||E);var I=$[E],L=r.util.type(I);L==="Object"&&!M[D(I)]?(M[D(I)]=!0,k(I,C,null,M)):L==="Array"&&!M[D(I)]&&(M[D(I)]=!0,k(I,C,E,M))}}},plugins:{},highlightAll:function(k,$){r.highlightAllUnder(document,k,$)},highlightAllUnder:function(k,$,C){var T={callback:C,container:k,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",T),T.elements=Array.prototype.slice.apply(T.container.querySelectorAll(T.selector)),r.hooks.run("before-all-elements-highlight",T);for(var M=0,D;D=T.elements[M++];)r.highlightElement(D,$===!0,T.callback)},highlightElement:function(k,$,C){var T=r.util.getLanguage(k),M=r.languages[T];r.util.setLanguage(k,T);var D=k.parentElement;D&&D.nodeName.toLowerCase()==="pre"&&r.util.setLanguage(D,T);var E=k.textContent,I={element:k,language:T,grammar:M,code:E};function L(q){I.highlightedCode=q,r.hooks.run("before-insert",I),I.element.innerHTML=I.highlightedCode,r.hooks.run("after-highlight",I),r.hooks.run("complete",I),C&&C.call(I.element)}if(r.hooks.run("before-sanity-check",I),D=I.element.parentElement,D&&D.nodeName.toLowerCase()==="pre"&&!D.hasAttribute("tabindex")&&D.setAttribute("tabindex","0"),!I.code){r.hooks.run("complete",I),C&&C.call(I.element);return}if(r.hooks.run("before-highlight",I),!I.grammar){L(r.util.encode(I.code));return}if($&&i.Worker){var F=new Worker(r.filename);F.onmessage=function(q){L(q.data)},F.postMessage(JSON.stringify({language:I.language,code:I.code,immediateClose:!0}))}else L(r.highlight(I.code,I.grammar,I.language))},highlight:function(k,$,C){var T={code:k,grammar:$,language:C};if(r.hooks.run("before-tokenize",T),!T.grammar)throw new Error('The language "'+T.language+'" has no grammar.');return T.tokens=r.tokenize(T.code,T.grammar),r.hooks.run("after-tokenize",T),a.stringify(r.util.encode(T.tokens),T.language)},tokenize:function(k,$){var C=$.rest;if(C){for(var T in C)$[T]=C[T];delete $.rest}var M=new c;return d(M,M.head,k),f(k,M,$,M.head,0),m(M)},hooks:{all:{},add:function(k,$){var C=r.hooks.all;C[k]=C[k]||[],C[k].push($)},run:function(k,$){var C=r.hooks.all[k];if(!(!C||!C.length))for(var T=0,M;M=C[T++];)M($)}},Token:a};i.Prism=r;function a(k,$,C,T){this.type=k,this.content=$,this.alias=C,this.length=(T||"").length|0}a.stringify=function k($,C){if(typeof $=="string")return $;if(Array.isArray($)){var T="";return $.forEach(function(L){T+=k(L,C)}),T}var M={type:$.type,content:k($.content,C),tag:"span",classes:["token",$.type],attributes:{},language:C},D=$.alias;D&&(Array.isArray(D)?Array.prototype.push.apply(M.classes,D):M.classes.push(D)),r.hooks.run("wrap",M);var E="";for(var I in M.attributes)E+=" "+I+'="'+(M.attributes[I]||"").replace(/"/g,""")+'"';return"<"+M.tag+' class="'+M.classes.join(" ")+'"'+E+">"+M.content+""};function u(k,$,C,T){k.lastIndex=$;var M=k.exec(C);if(M&&T&&M[1]){var D=M[1].length;M.index+=D,M[0]=M[0].slice(D)}return M}function f(k,$,C,T,M,D){for(var E in C)if(!(!C.hasOwnProperty(E)||!C[E])){var I=C[E];I=Array.isArray(I)?I:[I];for(var L=0;L=D.reach);Y+=ie.value.length,ie=ie.next){var x=ie.value;if($.length>k.length)return;if(!(x instanceof a)){var U=1,re;if(J){if(re=u(Q,Y,k,z),!re||re.index>=k.length)break;var Fe=re.index,Re=re.index+re[0].length,Ne=Y;for(Ne+=ie.value.length;Fe>=Ne;)ie=ie.next,Ne+=ie.value.length;if(Ne-=ie.value.length,Y=Ne,ie.value instanceof a)continue;for(var Le=ie;Le!==$.tail&&(NeD.reach&&(D.reach=We);var ue=ie.prev;Se&&(ue=d($,ue,Se),Y+=Se.length),h($,ue,U);var se=new a(E,q?r.tokenize(me,q):me,G,me);if(ie=d($,ue,se),we&&d($,ie,we),U>1){var fe={cause:E+","+L,reach:We};f(k,$,C,ie.prev,Y,fe),D&&fe.reach>D.reach&&(D.reach=fe.reach)}}}}}}function c(){var k={value:null,prev:null,next:null},$={value:null,prev:k,next:null};k.next=$,this.head=k,this.tail=$,this.length=0}function d(k,$,C){var T=$.next,M={value:C,prev:$,next:T};return $.next=M,T.prev=M,k.length++,M}function h(k,$,C){for(var T=$.next,M=0;M/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.languages.markup.doctype.inside["internal-subset"].inside=t.languages.markup,t.hooks.add("wrap",function(i){i.type==="entity"&&(i.attributes.title=i.content.replace(/&/,"&"))}),Object.defineProperty(t.languages.markup.tag,"addInlined",{value:function(s,l){var o={};o["language-"+l]={pattern:/(^$)/i,lookbehind:!0,inside:t.languages[l]},o.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:o}};r["language-"+l]={pattern:/[\s\S]+/,inside:t.languages[l]};var a={};a[s]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return s}),"i"),lookbehind:!0,greedy:!0,inside:r},t.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(t.languages.markup.tag,"addAttribute",{value:function(i,s){t.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+i+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[s,"language-"+s],inside:t.languages[s]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup,t.languages.xml=t.languages.extend("markup",{}),t.languages.ssml=t.languages.xml,t.languages.atom=t.languages.xml,t.languages.rss=t.languages.xml,function(i){var s=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;i.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+s.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+s.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+s.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+s.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:s,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},i.languages.css.atrule.inside.rest=i.languages.css;var l=i.languages.markup;l&&(l.tag.addInlined("style","css"),l.tag.addAttribute("style","css"))}(t),t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},t.languages.javascript=t.languages.extend("clike",{"class-name":[t.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),t.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,t.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:t.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:t.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:t.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:t.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),t.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:t.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),t.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),t.languages.markup&&(t.languages.markup.tag.addInlined("script","javascript"),t.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),t.languages.js=t.languages.javascript,function(){if(typeof t>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var i="Loading\u2026",s=function(b,g){return"\u2716 Error "+b+" while fetching file: "+g},l="\u2716 Error: File does not exist or is empty",o={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},r="data-src-status",a="loading",u="loaded",f="failed",c="pre[data-src]:not(["+r+'="'+u+'"]):not(['+r+'="'+a+'"])';function d(b,g,y){var k=new XMLHttpRequest;k.open("GET",b,!0),k.onreadystatechange=function(){k.readyState==4&&(k.status<400&&k.responseText?g(k.responseText):k.status>=400?y(s(k.status,k.statusText)):y(l))},k.send(null)}function h(b){var g=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(b||"");if(g){var y=Number(g[1]),k=g[2],$=g[3];return k?$?[y,Number($)]:[y,void 0]:[y,y]}}t.hooks.add("before-highlightall",function(b){b.selector+=", "+c}),t.hooks.add("before-sanity-check",function(b){var g=b.element;if(g.matches(c)){b.code="",g.setAttribute(r,a);var y=g.appendChild(document.createElement("CODE"));y.textContent=i;var k=g.getAttribute("data-src"),$=b.language;if($==="none"){var C=(/\.(\w+)$/.exec(k)||[,"none"])[1];$=o[C]||C}t.util.setLanguage(y,$),t.util.setLanguage(g,$);var T=t.plugins.autoloader;T&&T.loadLanguages($),d(k,function(M){g.setAttribute(r,u);var D=h(g.getAttribute("data-range"));if(D){var E=M.split(/\r\n?|\n/g),I=D[0],L=D[1]==null?E.length:D[1];I<0&&(I+=E.length),I=Math.max(0,Math.min(I-1,E.length)),L<0&&(L+=E.length),L=Math.max(0,Math.min(L,E.length)),M=E.slice(I,L).join(` -`),g.hasAttribute("data-start")||g.setAttribute("data-start",String(I+1))}y.textContent=M,t.highlightElement(y)},function(M){g.setAttribute(r,f),y.textContent=M})}}),t.plugins.fileHighlight={highlight:function(g){for(var y=(g||document).querySelectorAll(c),k=0,$;$=y[k++];)t.highlightElement($)}};var m=!1;t.fileHighlight=function(){m||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),m=!0),t.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(E_);const Ws=E_.exports;var aS={exports:{}};(function(n){(function(){if(typeof Prism>"u")return;var e=Object.assign||function(o,r){for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);return o};function t(o){this.defaults=e({},o)}function i(o){return o.replace(/-(\w)/g,function(r,a){return a.toUpperCase()})}function s(o){for(var r=0,a=0;ar&&(f[d]=` -`+f[d],c=h)}a[u]=f.join("")}return a.join(` -`)}},n.exports&&(n.exports=t),Prism.plugins.NormalizeWhitespace=new t({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(o){var r=Prism.plugins.NormalizeWhitespace;if(!(o.settings&&o.settings["whitespace-normalization"]===!1)&&!!Prism.util.isActive(o.element,"whitespace-normalization",!0)){if((!o.element||!o.element.parentNode)&&o.code){o.code=r.normalize(o.code,o.settings);return}var a=o.element.parentNode;if(!(!o.code||!a||a.nodeName.toLowerCase()!=="pre")){o.settings==null&&(o.settings={});for(var u in l)if(Object.hasOwnProperty.call(l,u)){var f=l[u];if(a.hasAttribute("data-"+u))try{var c=JSON.parse(a.getAttribute("data-"+u)||"true");typeof c===f&&(o.settings[u]=c)}catch{}}for(var d=a.childNodes,h="",m="",b=!1,g=0;g>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),n.languages.insertBefore("dart","string",{"string-literal":{pattern:/r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,lookbehind:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.dart}}},string:/[\s\S]+/}},string:void 0}),n.languages.insertBefore("dart","class-name",{metadata:{pattern:/@\w+/,alias:"function"}}),n.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":i,keyword:e,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})})(Prism);function uS(n){let e,t,i;return{c(){e=v("div"),t=v("code"),p(t,"class","svelte-10s5tkd"),p(e,"class",i="code-wrapper prism-light "+n[0]+" svelte-10s5tkd")},m(s,l){S(s,e,l),_(e,t),t.innerHTML=n[1]},p(s,[l]){l&2&&(t.innerHTML=s[1]),l&1&&i!==(i="code-wrapper prism-light "+s[0]+" svelte-10s5tkd")&&p(e,"class",i)},i:te,o:te,d(s){s&&w(e)}}}function fS(n,e,t){let{class:i=""}=e,{content:s=""}=e,{language:l="javascript"}=e,o="";function r(a){return a=typeof a=="string"?a:"",a=Ws.plugins.NormalizeWhitespace.normalize(a,{"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Ws.highlight(a,Ws.languages[l]||Ws.languages.javascript,l)}return n.$$set=a=>{"class"in a&&t(0,i=a.class),"content"in a&&t(2,s=a.content),"language"in a&&t(3,l=a.language)},n.$$.update=()=>{n.$$.dirty&4&&typeof Ws<"u"&&s&&t(1,o=r(s))},[i,o,s,l]}class I_ extends ye{constructor(e){super(),ve(this,e,fS,uS,be,{class:0,content:2,language:3})}}const cS=n=>({}),fc=n=>({}),dS=n=>({}),cc=n=>({});function dc(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$=n[4]&&!n[2]&&pc(n);const C=n[18].header,T=Ot(C,n,n[17],cc);let M=n[4]&&n[2]&&hc(n);const D=n[18].default,E=Ot(D,n,n[17],null),I=n[18].footer,L=Ot(I,n,n[17],fc);return{c(){e=v("div"),t=v("div"),s=O(),l=v("div"),o=v("div"),$&&$.c(),r=O(),T&&T.c(),a=O(),M&&M.c(),u=O(),f=v("div"),E&&E.c(),c=O(),d=v("div"),L&&L.c(),p(t,"class","overlay"),p(o,"class","overlay-panel-section panel-header"),p(f,"class","overlay-panel-section panel-content"),p(d,"class","overlay-panel-section panel-footer"),p(l,"class",h="overlay-panel "+n[1]+" "+n[8]),ne(l,"popup",n[2]),p(e,"class","overlay-panel-container"),ne(e,"padded",n[2]),ne(e,"active",n[0])},m(F,q){S(F,e,q),_(e,t),_(e,s),_(e,l),_(l,o),$&&$.m(o,null),_(o,r),T&&T.m(o,null),_(o,a),M&&M.m(o,null),_(l,u),_(l,f),E&&E.m(f,null),n[20](f),_(l,c),_(l,d),L&&L.m(d,null),g=!0,y||(k=[K(t,"click",ut(n[19])),K(f,"scroll",n[21])],y=!0)},p(F,q){n=F,n[4]&&!n[2]?$?$.p(n,q):($=pc(n),$.c(),$.m(o,r)):$&&($.d(1),$=null),T&&T.p&&(!g||q&131072)&&At(T,C,n,n[17],g?Dt(C,n[17],q,dS):Et(n[17]),cc),n[4]&&n[2]?M?M.p(n,q):(M=hc(n),M.c(),M.m(o,null)):M&&(M.d(1),M=null),E&&E.p&&(!g||q&131072)&&At(E,D,n,n[17],g?Dt(D,n[17],q,null):Et(n[17]),null),L&&L.p&&(!g||q&131072)&&At(L,I,n,n[17],g?Dt(I,n[17],q,cS):Et(n[17]),fc),(!g||q&258&&h!==(h="overlay-panel "+n[1]+" "+n[8]))&&p(l,"class",h),(!g||q&262)&&ne(l,"popup",n[2]),(!g||q&4)&&ne(e,"padded",n[2]),(!g||q&1)&&ne(e,"active",n[0])},i(F){g||(xe(()=>{i||(i=je(t,vo,{duration:cs,opacity:0},!0)),i.run(1)}),A(T,F),A(E,F),A(L,F),xe(()=>{b&&b.end(1),m=wm(l,Sn,n[2]?{duration:cs,y:-10}:{duration:cs,x:50}),m.start()}),g=!0)},o(F){i||(i=je(t,vo,{duration:cs,opacity:0},!1)),i.run(0),P(T,F),P(E,F),P(L,F),m&&m.invalidate(),b=Sm(l,Sn,n[2]?{duration:cs,y:10}:{duration:cs,x:50}),g=!1},d(F){F&&w(e),F&&i&&i.end(),$&&$.d(),T&&T.d(F),M&&M.d(),E&&E.d(F),n[20](null),L&&L.d(F),F&&b&&b.end(),y=!1,Pe(k)}}}function pc(n){let e,t,i;return{c(){e=v("div"),e.innerHTML='',p(e,"class","overlay-close")},m(s,l){S(s,e,l),t||(i=K(e,"click",ut(n[5])),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function hc(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-secondary btn-close m-l-auto")},m(s,l){S(s,e,l),t||(i=K(e,"click",ut(n[5])),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function pS(n){let e,t,i,s,l=n[0]&&dc(n);return{c(){e=v("div"),l&&l.c(),p(e,"class","overlay-panel-wrapper")},m(o,r){S(o,e,r),l&&l.m(e,null),n[22](e),t=!0,i||(s=[K(window,"resize",n[10]),K(window,"keydown",n[9])],i=!0)},p(o,[r]){o[0]?l?(l.p(o,r),r&1&&A(l,1)):(l=dc(o),l.c(),A(l,1),l.m(e,null)):l&&(pe(),P(l,1,1,()=>{l=null}),he())},i(o){t||(A(l),t=!0)},o(o){P(l),t=!1},d(o){o&&w(e),l&&l.d(),n[22](null),i=!1,Pe(s)}}}let Ni;function P_(){return Ni=Ni||document.querySelector(".overlays"),Ni||(Ni=document.createElement("div"),Ni.classList.add("overlays"),document.body.appendChild(Ni)),Ni}let cs=150;function mc(){return 1e3+P_().querySelectorAll(".overlay-panel-container.active").length}function hS(n,e,t){let{$$slots:i={},$$scope:s}=e,{class:l=""}=e,{active:o=!1}=e,{popup:r=!1}=e,{overlayClose:a=!0}=e,{btnClose:u=!0}=e,{escClose:f=!0}=e,{beforeOpen:c=void 0}=e,{beforeHide:d=void 0}=e;const h=It();let m,b,g,y,k="";function $(){typeof c=="function"&&c()===!1||t(0,o=!0)}function C(){typeof d=="function"&&d()===!1||t(0,o=!1)}function T(){return o}async function M(G){G?(g=document.activeElement,m==null||m.focus(),h("show"),document.body.classList.add("overlay-active")):(clearTimeout(y),g==null||g.focus(),h("hide"),document.body.classList.remove("overlay-active")),await Tn(),D()}function D(){!m||(o?t(6,m.style.zIndex=mc(),m):t(6,m.style="",m))}function E(G){o&&f&&G.code=="Escape"&&!W.isInput(G.target)&&m&&m.style.zIndex==mc()&&(G.preventDefault(),C())}function I(G){o&&L(b)}function L(G,X){X&&t(8,k=""),G&&(y||(y=setTimeout(()=>{if(clearTimeout(y),y=null,!G)return;if(G.scrollHeight-G.offsetHeight>0)t(8,k="scrollable");else{t(8,k="");return}G.scrollTop==0?t(8,k+=" scroll-top-reached"):G.scrollTop+G.offsetHeight==G.scrollHeight&&t(8,k+=" scroll-bottom-reached")},100)))}cn(()=>(P_().appendChild(m),()=>{var G;clearTimeout(y),(G=m==null?void 0:m.classList)==null||G.add("hidden"),setTimeout(()=>{m==null||m.remove()},0)}));const F=()=>a?C():!0;function q(G){le[G?"unshift":"push"](()=>{b=G,t(7,b)})}const z=G=>L(G.target);function J(G){le[G?"unshift":"push"](()=>{m=G,t(6,m)})}return n.$$set=G=>{"class"in G&&t(1,l=G.class),"active"in G&&t(0,o=G.active),"popup"in G&&t(2,r=G.popup),"overlayClose"in G&&t(3,a=G.overlayClose),"btnClose"in G&&t(4,u=G.btnClose),"escClose"in G&&t(12,f=G.escClose),"beforeOpen"in G&&t(13,c=G.beforeOpen),"beforeHide"in G&&t(14,d=G.beforeHide),"$$scope"in G&&t(17,s=G.$$scope)},n.$$.update=()=>{n.$$.dirty&1&&M(o),n.$$.dirty&128&&L(b,!0),n.$$.dirty&64&&m&&D()},[o,l,r,a,u,C,m,b,k,E,I,L,f,c,d,$,T,s,i,F,q,z,J]}class Jn extends ye{constructor(e){super(),ve(this,e,hS,pS,be,{class:1,active:0,popup:2,overlayClose:3,btnClose:4,escClose:12,beforeOpen:13,beforeHide:14,show:15,hide:5,isActive:16})}get show(){return this.$$.ctx[15]}get hide(){return this.$$.ctx[5]}get isActive(){return this.$$.ctx[16]}}function mS(n){let e;return{c(){e=v("span"),e.textContent="N/A",p(e,"class","txt-hint")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function gS(n){let e,t=n[2].referer+"",i,s;return{c(){e=v("a"),i=B(t),p(e,"href",s=n[2].referer),p(e,"target","_blank"),p(e,"rel","noopener noreferrer")},m(l,o){S(l,e,o),_(e,i)},p(l,o){o&4&&t!==(t=l[2].referer+"")&&ae(i,t),o&4&&s!==(s=l[2].referer)&&p(e,"href",s)},d(l){l&&w(e)}}}function _S(n){let e;return{c(){e=v("span"),e.textContent="N/A",p(e,"class","txt-hint")},m(t,i){S(t,e,i)},p:te,i:te,o:te,d(t){t&&w(e)}}}function bS(n){let e,t;return e=new I_({props:{content:JSON.stringify(n[2].meta,null,2)}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s&4&&(l.content=JSON.stringify(i[2].meta,null,2)),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function vS(n){var Oe;let e,t,i,s,l,o,r=n[2].id+"",a,u,f,c,d,h,m,b=n[2].status+"",g,y,k,$,C,T,M=((Oe=n[2].method)==null?void 0:Oe.toUpperCase())+"",D,E,I,L,F,q,z=n[2].auth+"",J,G,X,Q,ie,Y,x=n[2].url+"",U,re,Re,Ne,Le,Fe,me,Se,we,We,ue,se=n[2].remoteIp+"",fe,Z,Ce,Ue,qt,Gt,sn=n[2].userIp+"",Gn,Ti,oi,ri,Is,ai,es=n[2].userAgent+"",ts,El,ui,ns,Il,Mi,is,Xt,Je,ss,Xn,ls,Oi,Di,Pt,Vt;function Pl(De,Te){return De[2].referer?gS:mS}let N=Pl(n),V=N(n);const ee=[bS,_S],oe=[];function $e(De,Te){return Te&4&&(is=null),is==null&&(is=!W.isEmpty(De[2].meta)),is?0:1}return Xt=$e(n,-1),Je=oe[Xt]=ee[Xt](n),Pt=new Ki({props:{date:n[2].created}}),{c(){e=v("table"),t=v("tbody"),i=v("tr"),s=v("td"),s.textContent="ID",l=O(),o=v("td"),a=B(r),u=O(),f=v("tr"),c=v("td"),c.textContent="Status",d=O(),h=v("td"),m=v("span"),g=B(b),y=O(),k=v("tr"),$=v("td"),$.textContent="Method",C=O(),T=v("td"),D=B(M),E=O(),I=v("tr"),L=v("td"),L.textContent="Auth",F=O(),q=v("td"),J=B(z),G=O(),X=v("tr"),Q=v("td"),Q.textContent="URL",ie=O(),Y=v("td"),U=B(x),re=O(),Re=v("tr"),Ne=v("td"),Ne.textContent="Referer",Le=O(),Fe=v("td"),V.c(),me=O(),Se=v("tr"),we=v("td"),we.textContent="Remote IP",We=O(),ue=v("td"),fe=B(se),Z=O(),Ce=v("tr"),Ue=v("td"),Ue.textContent="User IP",qt=O(),Gt=v("td"),Gn=B(sn),Ti=O(),oi=v("tr"),ri=v("td"),ri.textContent="UserAgent",Is=O(),ai=v("td"),ts=B(es),El=O(),ui=v("tr"),ns=v("td"),ns.textContent="Meta",Il=O(),Mi=v("td"),Je.c(),ss=O(),Xn=v("tr"),ls=v("td"),ls.textContent="Created",Oi=O(),Di=v("td"),j(Pt.$$.fragment),p(s,"class","min-width txt-hint txt-bold"),p(c,"class","min-width txt-hint txt-bold"),p(m,"class","label"),ne(m,"label-danger",n[2].status>=400),p($,"class","min-width txt-hint txt-bold"),p(L,"class","min-width txt-hint txt-bold"),p(Q,"class","min-width txt-hint txt-bold"),p(Ne,"class","min-width txt-hint txt-bold"),p(we,"class","min-width txt-hint txt-bold"),p(Ue,"class","min-width txt-hint txt-bold"),p(ri,"class","min-width txt-hint txt-bold"),p(ns,"class","min-width txt-hint txt-bold"),p(ls,"class","min-width txt-hint txt-bold"),p(e,"class","table-compact table-border")},m(De,Te){S(De,e,Te),_(e,t),_(t,i),_(i,s),_(i,l),_(i,o),_(o,a),_(t,u),_(t,f),_(f,c),_(f,d),_(f,h),_(h,m),_(m,g),_(t,y),_(t,k),_(k,$),_(k,C),_(k,T),_(T,D),_(t,E),_(t,I),_(I,L),_(I,F),_(I,q),_(q,J),_(t,G),_(t,X),_(X,Q),_(X,ie),_(X,Y),_(Y,U),_(t,re),_(t,Re),_(Re,Ne),_(Re,Le),_(Re,Fe),V.m(Fe,null),_(t,me),_(t,Se),_(Se,we),_(Se,We),_(Se,ue),_(ue,fe),_(t,Z),_(t,Ce),_(Ce,Ue),_(Ce,qt),_(Ce,Gt),_(Gt,Gn),_(t,Ti),_(t,oi),_(oi,ri),_(oi,Is),_(oi,ai),_(ai,ts),_(t,El),_(t,ui),_(ui,ns),_(ui,Il),_(ui,Mi),oe[Xt].m(Mi,null),_(t,ss),_(t,Xn),_(Xn,ls),_(Xn,Oi),_(Xn,Di),R(Pt,Di,null),Vt=!0},p(De,Te){var qe;(!Vt||Te&4)&&r!==(r=De[2].id+"")&&ae(a,r),(!Vt||Te&4)&&b!==(b=De[2].status+"")&&ae(g,b),(!Vt||Te&4)&&ne(m,"label-danger",De[2].status>=400),(!Vt||Te&4)&&M!==(M=((qe=De[2].method)==null?void 0:qe.toUpperCase())+"")&&ae(D,M),(!Vt||Te&4)&&z!==(z=De[2].auth+"")&&ae(J,z),(!Vt||Te&4)&&x!==(x=De[2].url+"")&&ae(U,x),N===(N=Pl(De))&&V?V.p(De,Te):(V.d(1),V=N(De),V&&(V.c(),V.m(Fe,null))),(!Vt||Te&4)&&se!==(se=De[2].remoteIp+"")&&ae(fe,se),(!Vt||Te&4)&&sn!==(sn=De[2].userIp+"")&&ae(Gn,sn),(!Vt||Te&4)&&es!==(es=De[2].userAgent+"")&&ae(ts,es);let ze=Xt;Xt=$e(De,Te),Xt===ze?oe[Xt].p(De,Te):(pe(),P(oe[ze],1,1,()=>{oe[ze]=null}),he(),Je=oe[Xt],Je?Je.p(De,Te):(Je=oe[Xt]=ee[Xt](De),Je.c()),A(Je,1),Je.m(Mi,null));const Ie={};Te&4&&(Ie.date=De[2].created),Pt.$set(Ie)},i(De){Vt||(A(Je),A(Pt.$$.fragment,De),Vt=!0)},o(De){P(Je),P(Pt.$$.fragment,De),Vt=!1},d(De){De&&w(e),V.d(),oe[Xt].d(),H(Pt)}}}function yS(n){let e;return{c(){e=v("h4"),e.textContent="Request log"},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function kS(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Close',p(e,"type","button"),p(e,"class","btn btn-secondary")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[4]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function wS(n){let e,t,i={class:"overlay-panel-lg log-panel",$$slots:{footer:[kS],header:[yS],default:[vS]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[5](e),e.$on("hide",n[6]),e.$on("show",n[7]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,[l]){const o={};l&260&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[5](null),H(e,s)}}}function SS(n,e,t){let i,s=new Er;function l(c){return t(2,s=c),i==null?void 0:i.show()}function o(){return i==null?void 0:i.hide()}const r=()=>o();function a(c){le[c?"unshift":"push"](()=>{i=c,t(1,i)})}function u(c){Ve.call(this,n,c)}function f(c){Ve.call(this,n,c)}return[o,i,s,l,r,a,u,f]}class $S extends ye{constructor(e){super(),ve(this,e,SS,wS,be,{show:3,hide:0})}get show(){return this.$$.ctx[3]}get hide(){return this.$$.ctx[0]}}function CS(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Include requests by admins"),p(e,"type","checkbox"),p(e,"id",t=n[14]),p(s,"for",o=n[14])},m(u,f){S(u,e,f),e.checked=n[0],S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[8]),r=!0)},p(u,f){f&16384&&t!==(t=u[14])&&p(e,"id",t),f&1&&(e.checked=u[0]),f&16384&&o!==(o=u[14])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function gc(n){let e,t,i;function s(o){n[10](o)}let l={presets:n[4]};return n[2]!==void 0&&(l.filter=n[2]),e=new rS({props:l}),le.push(()=>_e(e,"filter",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r&16&&(a.presets=o[4]),!t&&r&4&&(t=!0,a.filter=o[2],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function _c(n){let e,t,i;function s(o){n[11](o)}let l={presets:n[4]};return n[2]!==void 0&&(l.filter=n[2]),e=new Tv({props:l}),le.push(()=>_e(e,"filter",s)),e.$on("select",n[12]),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r&16&&(a.presets=o[4]),!t&&r&4&&(t=!0,a.filter=o[2],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function TS(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k=n[3],$,C=n[3],T,M;r=new wa({}),r.$on("refresh",n[7]),d=new ge({props:{class:"form-field form-field-toggle m-0",$$slots:{default:[CS,({uniqueId:I})=>({14:I}),({uniqueId:I})=>I?16384:0]},$$scope:{ctx:n}}}),m=new ka({props:{value:n[2],placeholder:"Search logs, ex. status > 200",extraAutocompleteKeys:["method","url","remoteIp","userIp","referer","status","auth","userAgent"]}}),m.$on("submit",n[9]);let D=gc(n),E=_c(n);return{c(){e=v("div"),t=v("header"),i=v("nav"),s=v("div"),l=B(n[5]),o=O(),j(r.$$.fragment),a=O(),u=v("div"),f=O(),c=v("div"),j(d.$$.fragment),h=O(),j(m.$$.fragment),b=O(),g=v("div"),y=O(),D.c(),$=O(),E.c(),T=Ae(),p(s,"class","breadcrumb-item"),p(i,"class","breadcrumbs"),p(u,"class","flex-fill"),p(c,"class","inline-flex"),p(t,"class","page-header"),p(g,"class","clearfix m-b-xs"),p(e,"class","page-header-wrapper m-b-0")},m(I,L){S(I,e,L),_(e,t),_(t,i),_(i,s),_(s,l),_(t,o),R(r,t,null),_(t,a),_(t,u),_(t,f),_(t,c),R(d,c,null),_(e,h),R(m,e,null),_(e,b),_(e,g),_(e,y),D.m(e,null),S(I,$,L),E.m(I,L),S(I,T,L),M=!0},p(I,L){(!M||L&32)&&ae(l,I[5]);const F={};L&49153&&(F.$$scope={dirty:L,ctx:I}),d.$set(F);const q={};L&4&&(q.value=I[2]),m.$set(q),L&8&&be(k,k=I[3])?(pe(),P(D,1,1,te),he(),D=gc(I),D.c(),A(D,1),D.m(e,null)):D.p(I,L),L&8&&be(C,C=I[3])?(pe(),P(E,1,1,te),he(),E=_c(I),E.c(),A(E,1),E.m(T.parentNode,T)):E.p(I,L)},i(I){M||(A(r.$$.fragment,I),A(d.$$.fragment,I),A(m.$$.fragment,I),A(D),A(E),M=!0)},o(I){P(r.$$.fragment,I),P(d.$$.fragment,I),P(m.$$.fragment,I),P(D),P(E),M=!1},d(I){I&&w(e),H(r),H(d),H(m),D.d(I),I&&w($),I&&w(T),E.d(I)}}}function MS(n){let e,t,i,s;e=new pn({props:{$$slots:{default:[TS]},$$scope:{ctx:n}}});let l={};return i=new $S({props:l}),n[13](i),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(o,r){R(e,o,r),S(o,t,r),R(i,o,r),s=!0},p(o,[r]){const a={};r&32831&&(a.$$scope={dirty:r,ctx:o}),e.$set(a);const u={};i.$set(u)},i(o){s||(A(e.$$.fragment,o),A(i.$$.fragment,o),s=!0)},o(o){P(e.$$.fragment,o),P(i.$$.fragment,o),s=!1},d(o){H(e,o),o&&w(t),n[13](null),H(i,o)}}}const bc="includeAdminLogs";function OS(n,e,t){var y;let i,s;Ze(n,mt,k=>t(5,s=k)),Ht(mt,s="Request logs",s);let l,o="",r=((y=window.localStorage)==null?void 0:y.getItem(bc))<<0,a=1;function u(){t(3,a++,a)}const f=()=>u();function c(){r=this.checked,t(0,r)}const d=k=>t(2,o=k.detail);function h(k){o=k,t(2,o)}function m(k){o=k,t(2,o)}const b=k=>l==null?void 0:l.show(k==null?void 0:k.detail);function g(k){le[k?"unshift":"push"](()=>{l=k,t(1,l)})}return n.$$.update=()=>{n.$$.dirty&1&&t(4,i=r?"":'auth!="admin"'),n.$$.dirty&1&&typeof r<"u"&&window.localStorage&&window.localStorage.setItem(bc,r<<0)},[r,l,o,a,i,s,u,f,c,d,h,m,b,g]}class DS extends ye{constructor(e){super(),ve(this,e,OS,MS,be,{})}}const Zi=Mn([]),Bn=Mn({}),na=Mn(!1);function AS(n){Zi.update(e=>{const t=W.findByKey(e,"id",n);return t?Bn.set(t):e.length&&Bn.set(e[0]),e})}function ES(n){Bn.update(e=>W.isEmpty(e==null?void 0:e.id)||e.id===n.id?n:e),Zi.update(e=>(W.pushOrReplaceByKey(e,n,"id"),W.sortCollections(e)))}function IS(n){Zi.update(e=>(W.removeByKey(e,"id",n.id),Bn.update(t=>t.id===n.id?e[0]:t),e))}async function PS(n=null){return na.set(!0),Bn.set({}),Zi.set([]),de.collections.getFullList(200,{sort:"+created"}).then(e=>{Zi.set(W.sortCollections(e));const t=n&&W.findByKey(e,"id",n);t?Bn.set(t):e.length&&Bn.set(e[0])}).catch(e=>{de.errorResponseHandler(e)}).finally(()=>{na.set(!1)})}const Ya=Mn({});function wn(n,e,t){Ya.set({text:n,yesCallback:e,noCallback:t})}function L_(){Ya.set({})}function vc(n){let e,t,i,s;const l=n[14].default,o=Ot(l,n,n[13],null);return{c(){e=v("div"),o&&o.c(),p(e,"class",n[1]),ne(e,"active",n[0])},m(r,a){S(r,e,a),o&&o.m(e,null),s=!0},p(r,a){o&&o.p&&(!s||a&8192)&&At(o,l,r,r[13],s?Dt(l,r[13],a,null):Et(r[13]),null),(!s||a&2)&&p(e,"class",r[1]),(!s||a&3)&&ne(e,"active",r[0])},i(r){s||(A(o,r),r&&xe(()=>{i&&i.end(1),t=wm(e,Sn,{duration:150,y:-5}),t.start()}),s=!0)},o(r){P(o,r),t&&t.invalidate(),r&&(i=Sm(e,Sn,{duration:150,y:2})),s=!1},d(r){r&&w(e),o&&o.d(r),r&&i&&i.end()}}}function LS(n){let e,t,i,s,l=n[0]&&vc(n);return{c(){e=v("div"),l&&l.c(),p(e,"class","toggler-container")},m(o,r){S(o,e,r),l&&l.m(e,null),n[15](e),t=!0,i||(s=[K(window,"click",n[3]),K(window,"keydown",n[4]),K(window,"focusin",n[5])],i=!0)},p(o,[r]){o[0]?l?(l.p(o,r),r&1&&A(l,1)):(l=vc(o),l.c(),A(l,1),l.m(e,null)):l&&(pe(),P(l,1,1,()=>{l=null}),he())},i(o){t||(A(l),t=!0)},o(o){P(l),t=!1},d(o){o&&w(e),l&&l.d(),n[15](null),i=!1,Pe(s)}}}function NS(n,e,t){let{$$slots:i={},$$scope:s}=e,{trigger:l=void 0}=e,{active:o=!1}=e,{escClose:r=!0}=e,{closableClass:a="closable"}=e,{class:u=""}=e,f,c;const d=It();function h(){t(0,o=!1)}function m(){t(0,o=!0)}function b(){o?h():m()}function g(I){return!f||I.classList.contains(a)||(c==null?void 0:c.contains(I))&&!f.contains(I)||f.contains(I)&&I.closest&&I.closest("."+a)}function y(I){(!o||g(I.target))&&(I.preventDefault(),I.stopPropagation(),b())}function k(I){(I.code==="Enter"||I.code==="Space")&&(!o||g(I.target))&&(I.preventDefault(),I.stopPropagation(),b())}function $(I){o&&!(f!=null&&f.contains(I.target))&&!(c!=null&&c.contains(I.target))&&h()}function C(I){o&&r&&I.code==="Escape"&&(I.preventDefault(),h())}function T(I){return $(I)}function M(I){D(),t(12,c=I||(f==null?void 0:f.parentNode)),c&&(f==null||f.addEventListener("click",y),c.addEventListener("click",y),c.addEventListener("keydown",k))}function D(){!c||(f==null||f.removeEventListener("click",y),c.removeEventListener("click",y),c.removeEventListener("keydown",k))}cn(()=>(M(),()=>D()));function E(I){le[I?"unshift":"push"](()=>{f=I,t(2,f)})}return n.$$set=I=>{"trigger"in I&&t(6,l=I.trigger),"active"in I&&t(0,o=I.active),"escClose"in I&&t(7,r=I.escClose),"closableClass"in I&&t(8,a=I.closableClass),"class"in I&&t(1,u=I.class),"$$scope"in I&&t(13,s=I.$$scope)},n.$$.update=()=>{var I,L;n.$$.dirty&68&&f&&M(l),n.$$.dirty&4097&&(o?((I=c==null?void 0:c.classList)==null||I.add("active"),d("show")):((L=c==null?void 0:c.classList)==null||L.remove("active"),d("hide")))},[o,u,f,$,C,T,l,r,a,h,m,b,c,s,i,E]}class Zn extends ye{constructor(e){super(),ve(this,e,NS,LS,be,{trigger:6,active:0,escClose:7,closableClass:8,class:1,hide:9,show:10,toggle:11})}get hide(){return this.$$.ctx[9]}get show(){return this.$$.ctx[10]}get toggle(){return this.$$.ctx[11]}}const FS=n=>({active:n&1}),yc=n=>({active:n[0]});function kc(n){let e,t,i;const s=n[14].default,l=Ot(s,n,n[13],null);return{c(){e=v("div"),l&&l.c(),p(e,"class","accordion-content")},m(o,r){S(o,e,r),l&&l.m(e,null),i=!0},p(o,r){l&&l.p&&(!i||r&8192)&&At(l,s,o,o[13],i?Dt(s,o[13],r,null):Et(o[13]),null)},i(o){i||(A(l,o),o&&xe(()=>{t||(t=je(e,St,{duration:150},!0)),t.run(1)}),i=!0)},o(o){P(l,o),o&&(t||(t=je(e,St,{duration:150},!1)),t.run(0)),i=!1},d(o){o&&w(e),l&&l.d(o),o&&t&&t.end()}}}function RS(n){let e,t,i,s,l,o,r;const a=n[14].header,u=Ot(a,n,n[13],yc);let f=n[0]&&kc(n);return{c(){e=v("div"),t=v("button"),u&&u.c(),i=O(),f&&f.c(),p(t,"type","button"),p(t,"class","accordion-header"),p(t,"draggable",n[2]),ne(t,"interactive",n[3]),p(e,"class",s="accordion "+(n[7]?"drag-over":"")+" "+n[1]),ne(e,"active",n[0])},m(c,d){S(c,e,d),_(e,t),u&&u.m(t,null),_(e,i),f&&f.m(e,null),n[21](e),l=!0,o||(r=[K(t,"click",ut(n[16])),K(t,"drop",ut(n[17])),K(t,"dragstart",n[18]),K(t,"dragenter",n[19]),K(t,"dragleave",n[20]),K(t,"dragover",ut(n[15]))],o=!0)},p(c,[d]){u&&u.p&&(!l||d&8193)&&At(u,a,c,c[13],l?Dt(a,c[13],d,FS):Et(c[13]),yc),(!l||d&4)&&p(t,"draggable",c[2]),(!l||d&8)&&ne(t,"interactive",c[3]),c[0]?f?(f.p(c,d),d&1&&A(f,1)):(f=kc(c),f.c(),A(f,1),f.m(e,null)):f&&(pe(),P(f,1,1,()=>{f=null}),he()),(!l||d&130&&s!==(s="accordion "+(c[7]?"drag-over":"")+" "+c[1]))&&p(e,"class",s),(!l||d&131)&&ne(e,"active",c[0])},i(c){l||(A(u,c),A(f),l=!0)},o(c){P(u,c),P(f),l=!1},d(c){c&&w(e),u&&u.d(c),f&&f.d(),n[21](null),o=!1,Pe(r)}}}function HS(n,e,t){let{$$slots:i={},$$scope:s}=e;const l=It();let o,r,{class:a=""}=e,{draggable:u=!1}=e,{active:f=!1}=e,{interactive:c=!0}=e,{single:d=!1}=e,h=!1;function m(){y(),t(0,f=!0),l("expand")}function b(){t(0,f=!1),clearTimeout(r),l("collapse")}function g(){l("toggle"),f?b():m()}function y(){if(d&&o.closest(".accordions")){const I=o.closest(".accordions").querySelectorAll(".accordion.active .accordion-header.interactive");for(const L of I)L.click()}}cn(()=>()=>clearTimeout(r));function k(I){Ve.call(this,n,I)}const $=()=>c&&g(),C=I=>{u&&(t(7,h=!1),y(),l("drop",I))},T=I=>u&&l("dragstart",I),M=I=>{u&&(t(7,h=!0),l("dragenter",I))},D=I=>{u&&(t(7,h=!1),l("dragleave",I))};function E(I){le[I?"unshift":"push"](()=>{o=I,t(6,o)})}return n.$$set=I=>{"class"in I&&t(1,a=I.class),"draggable"in I&&t(2,u=I.draggable),"active"in I&&t(0,f=I.active),"interactive"in I&&t(3,c=I.interactive),"single"in I&&t(9,d=I.single),"$$scope"in I&&t(13,s=I.$$scope)},n.$$.update=()=>{n.$$.dirty&4161&&f&&(clearTimeout(r),t(12,r=setTimeout(()=>{o!=null&&o.scrollIntoViewIfNeeded?o==null||o.scrollIntoViewIfNeeded():o!=null&&o.scrollIntoView&&(o==null||o.scrollIntoView({behavior:"smooth",block:"nearest"}))},200)))},[f,a,u,c,g,y,o,h,l,d,m,b,r,s,i,k,$,C,T,M,D,E]}class _s extends ye{constructor(e){super(),ve(this,e,HS,RS,be,{class:1,draggable:2,active:0,interactive:3,single:9,expand:10,collapse:11,toggle:4,collapseSiblings:5})}get expand(){return this.$$.ctx[10]}get collapse(){return this.$$.ctx[11]}get toggle(){return this.$$.ctx[4]}get collapseSiblings(){return this.$$.ctx[5]}}const jS=n=>({}),wc=n=>({});function Sc(n,e,t){const i=n.slice();return i[45]=e[t],i}const qS=n=>({}),$c=n=>({});function Cc(n,e,t){const i=n.slice();return i[45]=e[t],i}function Tc(n){let e,t,i;return{c(){e=v("div"),t=B(n[2]),i=O(),p(e,"class","block txt-placeholder"),ne(e,"link-hint",!n[5])},m(s,l){S(s,e,l),_(e,t),_(e,i)},p(s,l){l[0]&4&&ae(t,s[2]),l[0]&32&&ne(e,"link-hint",!s[5])},d(s){s&&w(e)}}}function VS(n){let e,t=n[45]+"",i;return{c(){e=v("span"),i=B(t),p(e,"class","txt")},m(s,l){S(s,e,l),_(e,i)},p(s,l){l[0]&1&&t!==(t=s[45]+"")&&ae(i,t)},i:te,o:te,d(s){s&&w(e)}}}function zS(n){let e,t,i;const s=[{item:n[45]},n[8]];var l=n[7];function o(r){let a={};for(let u=0;u{H(f,1)}),he()}l?(e=jt(l,o()),j(e.$$.fragment),A(e.$$.fragment,1),R(e,t.parentNode,t)):e=null}else l&&e.$set(u)},i(r){i||(e&&A(e.$$.fragment,r),i=!0)},o(r){e&&P(e.$$.fragment,r),i=!1},d(r){r&&w(t),e&&H(e,r)}}}function Mc(n){let e,t,i;function s(){return n[33](n[45])}return{c(){e=v("span"),e.innerHTML='',p(e,"class","clear")},m(l,o){S(l,e,o),t||(i=[Ee(Be.call(null,e,"Clear")),K(e,"click",Yn(ut(s)))],t=!0)},p(l,o){n=l},d(l){l&&w(e),t=!1,Pe(i)}}}function Oc(n){let e,t,i,s,l,o;const r=[zS,VS],a=[];function u(c,d){return c[7]?0:1}t=u(n),i=a[t]=r[t](n);let f=(n[4]||n[6])&&Mc(n);return{c(){e=v("div"),i.c(),s=O(),f&&f.c(),l=O(),p(e,"class","option")},m(c,d){S(c,e,d),a[t].m(e,null),_(e,s),f&&f.m(e,null),_(e,l),o=!0},p(c,d){let h=t;t=u(c),t===h?a[t].p(c,d):(pe(),P(a[h],1,1,()=>{a[h]=null}),he(),i=a[t],i?i.p(c,d):(i=a[t]=r[t](c),i.c()),A(i,1),i.m(e,s)),c[4]||c[6]?f?f.p(c,d):(f=Mc(c),f.c(),f.m(e,l)):f&&(f.d(1),f=null)},i(c){o||(A(i),o=!0)},o(c){P(i),o=!1},d(c){c&&w(e),a[t].d(),f&&f.d()}}}function Dc(n){let e,t,i={class:"dropdown dropdown-block options-dropdown dropdown-left",trigger:n[17],$$slots:{default:[WS]},$$scope:{ctx:n}};return e=new Zn({props:i}),n[38](e),e.$on("show",n[23]),e.$on("hide",n[39]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,l){const o={};l[0]&131072&&(o.trigger=s[17]),l[0]&806410|l[1]&1024&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[38](null),H(e,s)}}}function Ac(n){let e,t,i,s,l,o,r,a,u=n[14].length&&Ec(n);return{c(){e=v("div"),t=v("label"),i=v("div"),i.innerHTML='',s=O(),l=v("input"),o=O(),u&&u.c(),p(i,"class","addon p-r-0"),l.autofocus=!0,p(l,"type","text"),p(l,"placeholder",n[3]),p(t,"class","input-group"),p(e,"class","form-field form-field-sm options-search")},m(f,c){S(f,e,c),_(e,t),_(t,i),_(t,s),_(t,l),ce(l,n[14]),_(t,o),u&&u.m(t,null),l.focus(),r||(a=K(l,"input",n[35]),r=!0)},p(f,c){c[0]&8&&p(l,"placeholder",f[3]),c[0]&16384&&l.value!==f[14]&&ce(l,f[14]),f[14].length?u?u.p(f,c):(u=Ec(f),u.c(),u.m(t,null)):u&&(u.d(1),u=null)},d(f){f&&w(e),u&&u.d(),r=!1,a()}}}function Ec(n){let e,t,i,s;return{c(){e=v("div"),t=v("button"),t.innerHTML='',p(t,"type","button"),p(t,"class","btn btn-sm btn-circle btn-secondary clear"),p(e,"class","addon suffix p-r-5")},m(l,o){S(l,e,o),_(e,t),i||(s=K(t,"click",Yn(ut(n[20]))),i=!0)},p:te,d(l){l&&w(e),i=!1,s()}}}function Ic(n){let e,t=n[1]&&Pc(n);return{c(){t&&t.c(),e=Ae()},m(i,s){t&&t.m(i,s),S(i,e,s)},p(i,s){i[1]?t?t.p(i,s):(t=Pc(i),t.c(),t.m(e.parentNode,e)):t&&(t.d(1),t=null)},d(i){t&&t.d(i),i&&w(e)}}}function Pc(n){let e,t;return{c(){e=v("div"),t=B(n[1]),p(e,"class","txt-missing")},m(i,s){S(i,e,s),_(e,t)},p(i,s){s[0]&2&&ae(t,i[1])},d(i){i&&w(e)}}}function BS(n){let e=n[45]+"",t;return{c(){t=B(e)},m(i,s){S(i,t,s)},p(i,s){s[0]&524288&&e!==(e=i[45]+"")&&ae(t,e)},i:te,o:te,d(i){i&&w(t)}}}function US(n){let e,t,i;const s=[{item:n[45]},n[10]];var l=n[9];function o(r){let a={};for(let u=0;u{H(f,1)}),he()}l?(e=jt(l,o()),j(e.$$.fragment),A(e.$$.fragment,1),R(e,t.parentNode,t)):e=null}else l&&e.$set(u)},i(r){i||(e&&A(e.$$.fragment,r),i=!0)},o(r){e&&P(e.$$.fragment,r),i=!1},d(r){r&&w(t),e&&H(e,r)}}}function Lc(n){let e,t,i,s,l,o,r;const a=[US,BS],u=[];function f(h,m){return h[9]?0:1}t=f(n),i=u[t]=a[t](n);function c(...h){return n[36](n[45],...h)}function d(...h){return n[37](n[45],...h)}return{c(){e=v("div"),i.c(),s=O(),p(e,"tabindex","0"),p(e,"class","dropdown-item option closable"),ne(e,"selected",n[18](n[45]))},m(h,m){S(h,e,m),u[t].m(e,null),_(e,s),l=!0,o||(r=[K(e,"click",c),K(e,"keydown",d)],o=!0)},p(h,m){n=h;let b=t;t=f(n),t===b?u[t].p(n,m):(pe(),P(u[b],1,1,()=>{u[b]=null}),he(),i=u[t],i?i.p(n,m):(i=u[t]=a[t](n),i.c()),A(i,1),i.m(e,s)),(!l||m[0]&786432)&&ne(e,"selected",n[18](n[45]))},i(h){l||(A(i),l=!0)},o(h){P(i),l=!1},d(h){h&&w(e),u[t].d(),o=!1,Pe(r)}}}function WS(n){let e,t,i,s,l,o=n[11]&&Ac(n);const r=n[32].beforeOptions,a=Ot(r,n,n[41],$c);let u=n[19],f=[];for(let b=0;bP(f[b],1,1,()=>{f[b]=null});let d=null;u.length||(d=Ic(n));const h=n[32].afterOptions,m=Ot(h,n,n[41],wc);return{c(){o&&o.c(),e=O(),a&&a.c(),t=O(),i=v("div");for(let b=0;bP(a[d],1,1,()=>{a[d]=null});let f=null;r.length||(f=Tc(n));let c=!n[5]&&Dc(n);return{c(){e=v("div"),t=v("div");for(let d=0;d{c=null}),he()):c?(c.p(d,h),h[0]&32&&A(c,1)):(c=Dc(d),c.c(),A(c,1),c.m(e,null)),(!o||h[0]&4096&&l!==(l="select "+d[12]))&&p(e,"class",l),(!o||h[0]&4112)&&ne(e,"multiple",d[4]),(!o||h[0]&4128)&&ne(e,"disabled",d[5])},i(d){if(!o){for(let h=0;hZ(Ce,fe))||[]}function x(se,fe){se.preventDefault(),b&&d?z(fe):q(fe)}function U(se,fe){(se.code==="Enter"||se.code==="Space")&&x(se,fe)}function re(){ie(),setTimeout(()=>{const se=I==null?void 0:I.querySelector(".dropdown-item.option.selected");se&&(se.focus(),se.scrollIntoView({block:"nearest"}))},0)}function Re(se){se.stopPropagation(),!h&&(D==null||D.toggle())}cn(()=>{const se=document.querySelectorAll(`label[for="${r}"]`);for(const fe of se)fe.addEventListener("click",Re);return()=>{for(const fe of se)fe.removeEventListener("click",Re)}});const Ne=se=>F(se);function Le(se){le[se?"unshift":"push"](()=>{L=se,t(17,L)})}function Fe(){E=this.value,t(14,E)}const me=(se,fe)=>x(fe,se),Se=(se,fe)=>U(fe,se);function we(se){le[se?"unshift":"push"](()=>{D=se,t(15,D)})}function We(se){Ve.call(this,n,se)}function ue(se){le[se?"unshift":"push"](()=>{I=se,t(16,I)})}return n.$$set=se=>{"id"in se&&t(24,r=se.id),"noOptionsText"in se&&t(1,a=se.noOptionsText),"selectPlaceholder"in se&&t(2,u=se.selectPlaceholder),"searchPlaceholder"in se&&t(3,f=se.searchPlaceholder),"items"in se&&t(25,c=se.items),"multiple"in se&&t(4,d=se.multiple),"disabled"in se&&t(5,h=se.disabled),"selected"in se&&t(0,m=se.selected),"toggle"in se&&t(6,b=se.toggle),"labelComponent"in se&&t(7,g=se.labelComponent),"labelComponentProps"in se&&t(8,y=se.labelComponentProps),"optionComponent"in se&&t(9,k=se.optionComponent),"optionComponentProps"in se&&t(10,$=se.optionComponentProps),"searchable"in se&&t(11,C=se.searchable),"searchFunc"in se&&t(26,T=se.searchFunc),"class"in se&&t(12,M=se.class),"$$scope"in se&&t(41,o=se.$$scope)},n.$$.update=()=>{n.$$.dirty[0]&33554432&&c&&(Q(),ie()),n.$$.dirty[0]&33570816&&t(19,i=Y(c,E)),n.$$.dirty[0]&1&&t(18,s=function(se){const fe=W.toArray(m);return W.inArray(fe,se)})},[m,a,u,f,d,h,b,g,y,k,$,C,M,F,E,D,I,L,s,i,ie,x,U,re,r,c,T,q,z,J,G,X,l,Ne,Le,Fe,me,Se,we,We,ue,o]}class N_ extends ye{constructor(e){super(),ve(this,e,JS,YS,be,{id:24,noOptionsText:1,selectPlaceholder:2,searchPlaceholder:3,items:25,multiple:4,disabled:5,selected:0,toggle:6,labelComponent:7,labelComponentProps:8,optionComponent:9,optionComponentProps:10,searchable:11,searchFunc:26,class:12,deselectItem:13,selectItem:27,toggleItem:28,reset:29,showDropdown:30,hideDropdown:31},null,[-1,-1])}get deselectItem(){return this.$$.ctx[13]}get selectItem(){return this.$$.ctx[27]}get toggleItem(){return this.$$.ctx[28]}get reset(){return this.$$.ctx[29]}get showDropdown(){return this.$$.ctx[30]}get hideDropdown(){return this.$$.ctx[31]}}function Nc(n){let e,t;return{c(){e=v("i"),p(e,"class",t="icon "+n[0].icon)},m(i,s){S(i,e,s)},p(i,s){s&1&&t!==(t="icon "+i[0].icon)&&p(e,"class",t)},d(i){i&&w(e)}}}function ZS(n){let e,t,i=(n[0].label||n[0].name||n[0].title||n[0].id||n[0].value)+"",s,l=n[0].icon&&Nc(n);return{c(){l&&l.c(),e=O(),t=v("span"),s=B(i),p(t,"class","txt")},m(o,r){l&&l.m(o,r),S(o,e,r),S(o,t,r),_(t,s)},p(o,[r]){o[0].icon?l?l.p(o,r):(l=Nc(o),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null),r&1&&i!==(i=(o[0].label||o[0].name||o[0].title||o[0].id||o[0].value)+"")&&ae(s,i)},i:te,o:te,d(o){l&&l.d(o),o&&w(e),o&&w(t)}}}function GS(n,e,t){let{item:i={}}=e;return n.$$set=s=>{"item"in s&&t(0,i=s.item)},[i]}class Fc extends ye{constructor(e){super(),ve(this,e,GS,ZS,be,{item:0})}}const XS=n=>({}),Rc=n=>({});function QS(n){let e;const t=n[8].afterOptions,i=Ot(t,n,n[12],Rc);return{c(){i&&i.c()},m(s,l){i&&i.m(s,l),e=!0},p(s,l){i&&i.p&&(!e||l&4096)&&At(i,t,s,s[12],e?Dt(t,s[12],l,XS):Et(s[12]),Rc)},i(s){e||(A(i,s),e=!0)},o(s){P(i,s),e=!1},d(s){i&&i.d(s)}}}function xS(n){let e,t,i;const s=[{items:n[1]},{multiple:n[2]},{labelComponent:n[3]},{optionComponent:n[4]},n[5]];function l(r){n[9](r)}let o={$$slots:{afterOptions:[QS]},$$scope:{ctx:n}};for(let r=0;r_e(e,"selected",l)),e.$on("show",n[10]),e.$on("hide",n[11]),{c(){j(e.$$.fragment)},m(r,a){R(e,r,a),i=!0},p(r,[a]){const u=a&62?Zt(s,[a&2&&{items:r[1]},a&4&&{multiple:r[2]},a&8&&{labelComponent:r[3]},a&16&&{optionComponent:r[4]},a&32&&Kn(r[5])]):{};a&4096&&(u.$$scope={dirty:a,ctx:r}),!t&&a&1&&(t=!0,u.selected=r[0],ke(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){P(e.$$.fragment,r),i=!1},d(r){H(e,r)}}}function e$(n,e,t){const i=["items","multiple","selected","labelComponent","optionComponent","selectionKey","keyOfSelected"];let s=wt(e,i),{$$slots:l={},$$scope:o}=e,{items:r=[]}=e,{multiple:a=!1}=e,{selected:u=a?[]:void 0}=e,{labelComponent:f=Fc}=e,{optionComponent:c=Fc}=e,{selectionKey:d="value"}=e,{keyOfSelected:h=a?[]:void 0}=e;function m($){$=W.toArray($,!0);let C=[];for(let T of $){const M=W.findByKey(r,d,T);M&&C.push(M)}$.length&&!C.length||t(0,u=a?C:C[0])}async function b($){let C=W.toArray($,!0).map(T=>T[d]);!r.length||t(6,h=a?C:C[0])}function g($){u=$,t(0,u)}function y($){Ve.call(this,n,$)}function k($){Ve.call(this,n,$)}return n.$$set=$=>{e=Ke(Ke({},e),Wn($)),t(5,s=wt(e,i)),"items"in $&&t(1,r=$.items),"multiple"in $&&t(2,a=$.multiple),"selected"in $&&t(0,u=$.selected),"labelComponent"in $&&t(3,f=$.labelComponent),"optionComponent"in $&&t(4,c=$.optionComponent),"selectionKey"in $&&t(7,d=$.selectionKey),"keyOfSelected"in $&&t(6,h=$.keyOfSelected),"$$scope"in $&&t(12,o=$.$$scope)},n.$$.update=()=>{n.$$.dirty&66&&r&&m(h),n.$$.dirty&1&&b(u)},[u,r,a,f,c,s,h,d,l,g,y,k,o]}class Es extends ye{constructor(e){super(),ve(this,e,e$,xS,be,{items:1,multiple:2,selected:0,labelComponent:3,optionComponent:4,selectionKey:7,keyOfSelected:6})}}function t$(n){let e,t,i;const s=[{class:"field-type-select "+n[1]},{items:n[2]},n[3]];function l(r){n[4](r)}let o={};for(let r=0;r_e(e,"keyOfSelected",l)),{c(){j(e.$$.fragment)},m(r,a){R(e,r,a),i=!0},p(r,[a]){const u=a&14?Zt(s,[a&2&&{class:"field-type-select "+r[1]},a&4&&{items:r[2]},a&8&&Kn(r[3])]):{};!t&&a&1&&(t=!0,u.keyOfSelected=r[0],ke(()=>t=!1)),e.$set(u)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){P(e.$$.fragment,r),i=!1},d(r){H(e,r)}}}function n$(n,e,t){const i=["value","class"];let s=wt(e,i),{value:l="text"}=e,{class:o=""}=e;const r=[{label:"Text",value:"text",icon:W.getFieldTypeIcon("text")},{label:"Number",value:"number",icon:W.getFieldTypeIcon("number")},{label:"Bool",value:"bool",icon:W.getFieldTypeIcon("bool")},{label:"Email",value:"email",icon:W.getFieldTypeIcon("email")},{label:"Url",value:"url",icon:W.getFieldTypeIcon("url")},{label:"DateTime",value:"date",icon:W.getFieldTypeIcon("date")},{label:"Select",value:"select",icon:W.getFieldTypeIcon("select")},{label:"JSON",value:"json",icon:W.getFieldTypeIcon("json")},{label:"File",value:"file",icon:W.getFieldTypeIcon("file")},{label:"Relation",value:"relation",icon:W.getFieldTypeIcon("relation")}];function a(u){l=u,t(0,l)}return n.$$set=u=>{e=Ke(Ke({},e),Wn(u)),t(3,s=wt(e,i)),"value"in u&&t(0,l=u.value),"class"in u&&t(1,o=u.class)},[l,o,r,s,a]}class i$ extends ye{constructor(e){super(),ve(this,e,n$,t$,be,{value:0,class:1})}}function s$(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Min length"),s=O(),l=v("input"),p(e,"for",i=n[5]),p(l,"type","number"),p(l,"id",o=n[5]),p(l,"step","1"),p(l,"min","0")},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].min),r||(a=K(l,"input",n[2]),r=!0)},p(u,f){f&32&&i!==(i=u[5])&&p(e,"for",i),f&32&&o!==(o=u[5])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].min&&ce(l,u[0].min)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function l$(n){let e,t,i,s,l,o,r,a,u;return{c(){e=v("label"),t=B("Max length"),s=O(),l=v("input"),p(e,"for",i=n[5]),p(l,"type","number"),p(l,"id",o=n[5]),p(l,"step","1"),p(l,"min",r=n[0].min||0)},m(f,c){S(f,e,c),_(e,t),S(f,s,c),S(f,l,c),ce(l,n[0].max),a||(u=K(l,"input",n[3]),a=!0)},p(f,c){c&32&&i!==(i=f[5])&&p(e,"for",i),c&32&&o!==(o=f[5])&&p(l,"id",o),c&1&&r!==(r=f[0].min||0)&&p(l,"min",r),c&1&&rt(l.value)!==f[0].max&&ce(l,f[0].max)},d(f){f&&w(e),f&&w(s),f&&w(l),a=!1,u()}}}function o$(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=B("Regex pattern"),s=O(),l=v("input"),r=O(),a=v("div"),a.innerHTML="Valid Go regular expression, eg. ^\\w+$.",p(e,"for",i=n[5]),p(l,"type","text"),p(l,"id",o=n[5]),p(a,"class","help-block")},m(c,d){S(c,e,d),_(e,t),S(c,s,d),S(c,l,d),ce(l,n[0].pattern),S(c,r,d),S(c,a,d),u||(f=K(l,"input",n[4]),u=!0)},p(c,d){d&32&&i!==(i=c[5])&&p(e,"for",i),d&32&&o!==(o=c[5])&&p(l,"id",o),d&1&&l.value!==c[0].pattern&&ce(l,c[0].pattern)},d(c){c&&w(e),c&&w(s),c&&w(l),c&&w(r),c&&w(a),u=!1,f()}}}function r$(n){let e,t,i,s,l,o,r,a,u,f;return i=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.min",$$slots:{default:[s$,({uniqueId:c})=>({5:c}),({uniqueId:c})=>c?32:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.max",$$slots:{default:[l$,({uniqueId:c})=>({5:c}),({uniqueId:c})=>c?32:0]},$$scope:{ctx:n}}}),u=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.pattern",$$slots:{default:[o$,({uniqueId:c})=>({5:c}),({uniqueId:c})=>c?32:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),a=v("div"),j(u.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(a,"class","col-sm-12"),p(e,"class","grid")},m(c,d){S(c,e,d),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),_(e,r),_(e,a),R(u,a,null),f=!0},p(c,[d]){const h={};d&2&&(h.name="schema."+c[1]+".options.min"),d&97&&(h.$$scope={dirty:d,ctx:c}),i.$set(h);const m={};d&2&&(m.name="schema."+c[1]+".options.max"),d&97&&(m.$$scope={dirty:d,ctx:c}),o.$set(m);const b={};d&2&&(b.name="schema."+c[1]+".options.pattern"),d&97&&(b.$$scope={dirty:d,ctx:c}),u.$set(b)},i(c){f||(A(i.$$.fragment,c),A(o.$$.fragment,c),A(u.$$.fragment,c),f=!0)},o(c){P(i.$$.fragment,c),P(o.$$.fragment,c),P(u.$$.fragment,c),f=!1},d(c){c&&w(e),H(i),H(o),H(u)}}}function a$(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(){s.min=rt(this.value),t(0,s)}function o(){s.max=rt(this.value),t(0,s)}function r(){s.pattern=this.value,t(0,s)}return n.$$set=a=>{"key"in a&&t(1,i=a.key),"options"in a&&t(0,s=a.options)},[s,i,l,o,r]}class u$ extends ye{constructor(e){super(),ve(this,e,a$,r$,be,{key:1,options:0})}}function f$(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Min"),s=O(),l=v("input"),p(e,"for",i=n[4]),p(l,"type","number"),p(l,"id",o=n[4])},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].min),r||(a=K(l,"input",n[2]),r=!0)},p(u,f){f&16&&i!==(i=u[4])&&p(e,"for",i),f&16&&o!==(o=u[4])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].min&&ce(l,u[0].min)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function c$(n){let e,t,i,s,l,o,r,a,u;return{c(){e=v("label"),t=B("Max"),s=O(),l=v("input"),p(e,"for",i=n[4]),p(l,"type","number"),p(l,"id",o=n[4]),p(l,"min",r=n[0].min)},m(f,c){S(f,e,c),_(e,t),S(f,s,c),S(f,l,c),ce(l,n[0].max),a||(u=K(l,"input",n[3]),a=!0)},p(f,c){c&16&&i!==(i=f[4])&&p(e,"for",i),c&16&&o!==(o=f[4])&&p(l,"id",o),c&1&&r!==(r=f[0].min)&&p(l,"min",r),c&1&&rt(l.value)!==f[0].max&&ce(l,f[0].max)},d(f){f&&w(e),f&&w(s),f&&w(l),a=!1,u()}}}function d$(n){let e,t,i,s,l,o,r;return i=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.min",$$slots:{default:[f$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.max",$$slots:{default:[c$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(e,"class","grid")},m(a,u){S(a,e,u),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),r=!0},p(a,[u]){const f={};u&2&&(f.name="schema."+a[1]+".options.min"),u&49&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.max"),u&49&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){P(i.$$.fragment,a),P(o.$$.fragment,a),r=!1},d(a){a&&w(e),H(i),H(o)}}}function p$(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(){s.min=rt(this.value),t(0,s)}function o(){s.max=rt(this.value),t(0,s)}return n.$$set=r=>{"key"in r&&t(1,i=r.key),"options"in r&&t(0,s=r.options)},[s,i,l,o]}class h$ extends ye{constructor(e){super(),ve(this,e,p$,d$,be,{key:1,options:0})}}function m$(n,e,t){let{key:i=""}=e,{options:s={}}=e;return n.$$set=l=>{"key"in l&&t(0,i=l.key),"options"in l&&t(1,s=l.options)},[i,s]}class g$ extends ye{constructor(e){super(),ve(this,e,m$,null,be,{key:0,options:1})}}function _$(n){let e,t,i,s,l=[{type:t=n[3].type||"text"},{value:n[2]},n[3]],o={};for(let r=0;r{t(0,o=W.splitNonEmpty(u.target.value,r))};return n.$$set=u=>{e=Ke(Ke({},e),Wn(u)),t(3,l=wt(e,s)),"value"in u&&t(0,o=u.value),"separator"in u&&t(1,r=u.separator)},n.$$.update=()=>{n.$$.dirty&1&&t(2,i=(o||[]).join(", "))},[o,r,i,l,a]}class xi extends ye{constructor(e){super(),ve(this,e,b$,_$,be,{value:0,separator:1})}}function v$(n){let e,t,i,s,l,o,r,a,u,f,c,d,h;function m(g){n[2](g)}let b={id:n[4],disabled:!W.isEmpty(n[0].onlyDomains)};return n[0].exceptDomains!==void 0&&(b.value=n[0].exceptDomains),r=new xi({props:b}),le.push(()=>_e(r,"value",m)),{c(){e=v("label"),t=v("span"),t.textContent="Except domains",i=O(),s=v("i"),o=O(),j(r.$$.fragment),u=O(),f=v("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[4]),p(f,"class","help-block")},m(g,y){S(g,e,y),_(e,t),_(e,i),_(e,s),S(g,o,y),R(r,g,y),S(g,u,y),S(g,f,y),c=!0,d||(h=Ee(Be.call(null,s,{text:`List of domains that are NOT allowed. - This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(g,y){(!c||y&16&&l!==(l=g[4]))&&p(e,"for",l);const k={};y&16&&(k.id=g[4]),y&1&&(k.disabled=!W.isEmpty(g[0].onlyDomains)),!a&&y&1&&(a=!0,k.value=g[0].exceptDomains,ke(()=>a=!1)),r.$set(k)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){P(r.$$.fragment,g),c=!1},d(g){g&&w(e),g&&w(o),H(r,g),g&&w(u),g&&w(f),d=!1,h()}}}function y$(n){let e,t,i,s,l,o,r,a,u,f,c,d,h;function m(g){n[3](g)}let b={id:n[4]+".options.onlyDomains",disabled:!W.isEmpty(n[0].exceptDomains)};return n[0].onlyDomains!==void 0&&(b.value=n[0].onlyDomains),r=new xi({props:b}),le.push(()=>_e(r,"value",m)),{c(){e=v("label"),t=v("span"),t.textContent="Only domains",i=O(),s=v("i"),o=O(),j(r.$$.fragment),u=O(),f=v("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[4]+".options.onlyDomains"),p(f,"class","help-block")},m(g,y){S(g,e,y),_(e,t),_(e,i),_(e,s),S(g,o,y),R(r,g,y),S(g,u,y),S(g,f,y),c=!0,d||(h=Ee(Be.call(null,s,{text:`List of domains that are ONLY allowed. - This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(g,y){(!c||y&16&&l!==(l=g[4]+".options.onlyDomains"))&&p(e,"for",l);const k={};y&16&&(k.id=g[4]+".options.onlyDomains"),y&1&&(k.disabled=!W.isEmpty(g[0].exceptDomains)),!a&&y&1&&(a=!0,k.value=g[0].onlyDomains,ke(()=>a=!1)),r.$set(k)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){P(r.$$.fragment,g),c=!1},d(g){g&&w(e),g&&w(o),H(r,g),g&&w(u),g&&w(f),d=!1,h()}}}function k$(n){let e,t,i,s,l,o,r;return i=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.exceptDomains",$$slots:{default:[v$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.onlyDomains",$$slots:{default:[y$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(e,"class","grid")},m(a,u){S(a,e,u),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),r=!0},p(a,[u]){const f={};u&2&&(f.name="schema."+a[1]+".options.exceptDomains"),u&49&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.onlyDomains"),u&49&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){P(i.$$.fragment,a),P(o.$$.fragment,a),r=!1},d(a){a&&w(e),H(i),H(o)}}}function w$(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(r){n.$$.not_equal(s.exceptDomains,r)&&(s.exceptDomains=r,t(0,s))}function o(r){n.$$.not_equal(s.onlyDomains,r)&&(s.onlyDomains=r,t(0,s))}return n.$$set=r=>{"key"in r&&t(1,i=r.key),"options"in r&&t(0,s=r.options)},[s,i,l,o]}class F_ extends ye{constructor(e){super(),ve(this,e,w$,k$,be,{key:1,options:0})}}function S$(n){let e,t,i,s;function l(a){n[2](a)}function o(a){n[3](a)}let r={};return n[0]!==void 0&&(r.key=n[0]),n[1]!==void 0&&(r.options=n[1]),e=new F_({props:r}),le.push(()=>_e(e,"key",l)),le.push(()=>_e(e,"options",o)),{c(){j(e.$$.fragment)},m(a,u){R(e,a,u),s=!0},p(a,[u]){const f={};!t&&u&1&&(t=!0,f.key=a[0],ke(()=>t=!1)),!i&&u&2&&(i=!0,f.options=a[1],ke(()=>i=!1)),e.$set(f)},i(a){s||(A(e.$$.fragment,a),s=!0)},o(a){P(e.$$.fragment,a),s=!1},d(a){H(e,a)}}}function $$(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(r){i=r,t(0,i)}function o(r){s=r,t(1,s)}return n.$$set=r=>{"key"in r&&t(0,i=r.key),"options"in r&&t(1,s=r.options)},[i,s,l,o]}class C$ extends ye{constructor(e){super(),ve(this,e,$$,S$,be,{key:0,options:1})}}var vr=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],bs={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(n){return typeof console<"u"&&console.warn(n)},getWeek:function(n){var e=new Date(n.getTime());e.setHours(0,0,0,0),e.setDate(e.getDate()+3-(e.getDay()+6)%7);var t=new Date(e.getFullYear(),0,4);return 1+Math.round(((e.getTime()-t.getTime())/864e5-3+(t.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},ml={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(n){var e=n%100;if(e>3&&e<21)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},Qt=function(n,e){return e===void 0&&(e=2),("000"+n).slice(e*-1)},_n=function(n){return n===!0?1:0};function Hc(n,e){var t;return function(){var i=this,s=arguments;clearTimeout(t),t=setTimeout(function(){return n.apply(i,s)},e)}}var yr=function(n){return n instanceof Array?n:[n]};function zt(n,e,t){if(t===!0)return n.classList.add(e);n.classList.remove(e)}function nt(n,e,t){var i=window.document.createElement(n);return e=e||"",t=t||"",i.className=e,t!==void 0&&(i.textContent=t),i}function to(n){for(;n.firstChild;)n.removeChild(n.firstChild)}function R_(n,e){if(e(n))return n;if(n.parentNode)return R_(n.parentNode,e)}function no(n,e){var t=nt("div","numInputWrapper"),i=nt("input","numInput "+n),s=nt("span","arrowUp"),l=nt("span","arrowDown");if(navigator.userAgent.indexOf("MSIE 9.0")===-1?i.type="number":(i.type="text",i.pattern="\\d*"),e!==void 0)for(var o in e)i.setAttribute(o,e[o]);return t.appendChild(i),t.appendChild(s),t.appendChild(l),t}function on(n){try{if(typeof n.composedPath=="function"){var e=n.composedPath();return e[0]}return n.target}catch{return n.target}}var kr=function(){},Io=function(n,e,t){return t.months[e?"shorthand":"longhand"][n]},T$={D:kr,F:function(n,e,t){n.setMonth(t.months.longhand.indexOf(e))},G:function(n,e){n.setHours((n.getHours()>=12?12:0)+parseFloat(e))},H:function(n,e){n.setHours(parseFloat(e))},J:function(n,e){n.setDate(parseFloat(e))},K:function(n,e,t){n.setHours(n.getHours()%12+12*_n(new RegExp(t.amPM[1],"i").test(e)))},M:function(n,e,t){n.setMonth(t.months.shorthand.indexOf(e))},S:function(n,e){n.setSeconds(parseFloat(e))},U:function(n,e){return new Date(parseFloat(e)*1e3)},W:function(n,e,t){var i=parseInt(e),s=new Date(n.getFullYear(),0,2+(i-1)*7,0,0,0,0);return s.setDate(s.getDate()-s.getDay()+t.firstDayOfWeek),s},Y:function(n,e){n.setFullYear(parseFloat(e))},Z:function(n,e){return new Date(e)},d:function(n,e){n.setDate(parseFloat(e))},h:function(n,e){n.setHours((n.getHours()>=12?12:0)+parseFloat(e))},i:function(n,e){n.setMinutes(parseFloat(e))},j:function(n,e){n.setDate(parseFloat(e))},l:kr,m:function(n,e){n.setMonth(parseFloat(e)-1)},n:function(n,e){n.setMonth(parseFloat(e)-1)},s:function(n,e){n.setSeconds(parseFloat(e))},u:function(n,e){return new Date(parseFloat(e))},w:kr,y:function(n,e){n.setFullYear(2e3+parseFloat(e))}},ji={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},sl={Z:function(n){return n.toISOString()},D:function(n,e,t){return e.weekdays.shorthand[sl.w(n,e,t)]},F:function(n,e,t){return Io(sl.n(n,e,t)-1,!1,e)},G:function(n,e,t){return Qt(sl.h(n,e,t))},H:function(n){return Qt(n.getHours())},J:function(n,e){return e.ordinal!==void 0?n.getDate()+e.ordinal(n.getDate()):n.getDate()},K:function(n,e){return e.amPM[_n(n.getHours()>11)]},M:function(n,e){return Io(n.getMonth(),!0,e)},S:function(n){return Qt(n.getSeconds())},U:function(n){return n.getTime()/1e3},W:function(n,e,t){return t.getWeek(n)},Y:function(n){return Qt(n.getFullYear(),4)},d:function(n){return Qt(n.getDate())},h:function(n){return n.getHours()%12?n.getHours()%12:12},i:function(n){return Qt(n.getMinutes())},j:function(n){return n.getDate()},l:function(n,e){return e.weekdays.longhand[n.getDay()]},m:function(n){return Qt(n.getMonth()+1)},n:function(n){return n.getMonth()+1},s:function(n){return n.getSeconds()},u:function(n){return n.getTime()},w:function(n){return n.getDay()},y:function(n){return String(n.getFullYear()).substring(2)}},H_=function(n){var e=n.config,t=e===void 0?bs:e,i=n.l10n,s=i===void 0?ml:i,l=n.isMobile,o=l===void 0?!1:l;return function(r,a,u){var f=u||s;return t.formatDate!==void 0&&!o?t.formatDate(r,a,f):a.split("").map(function(c,d,h){return sl[c]&&h[d-1]!=="\\"?sl[c](r,f,t):c!=="\\"?c:""}).join("")}},ia=function(n){var e=n.config,t=e===void 0?bs:e,i=n.l10n,s=i===void 0?ml:i;return function(l,o,r,a){if(!(l!==0&&!l)){var u=a||s,f,c=l;if(l instanceof Date)f=new Date(l.getTime());else if(typeof l!="string"&&l.toFixed!==void 0)f=new Date(l);else if(typeof l=="string"){var d=o||(t||bs).dateFormat,h=String(l).trim();if(h==="today")f=new Date,r=!0;else if(t&&t.parseDate)f=t.parseDate(l,d);else if(/Z$/.test(h)||/GMT$/.test(h))f=new Date(l);else{for(var m=void 0,b=[],g=0,y=0,k="";gMath.min(e,t)&&n=0?new Date:new Date(t.config.minDate.getTime()),ee=Sr(t.config);V.setHours(ee.hours,ee.minutes,ee.seconds,V.getMilliseconds()),t.selectedDates=[V],t.latestSelectedDateObj=V}N!==void 0&&N.type!=="blur"&&Pl(N);var oe=t._input.value;c(),Pt(),t._input.value!==oe&&t._debouncedChange()}function u(N,V){return N%12+12*_n(V===t.l10n.amPM[1])}function f(N){switch(N%24){case 0:case 12:return 12;default:return N%12}}function c(){if(!(t.hourElement===void 0||t.minuteElement===void 0)){var N=(parseInt(t.hourElement.value.slice(-2),10)||0)%24,V=(parseInt(t.minuteElement.value,10)||0)%60,ee=t.secondElement!==void 0?(parseInt(t.secondElement.value,10)||0)%60:0;t.amPM!==void 0&&(N=u(N,t.amPM.textContent));var oe=t.config.minTime!==void 0||t.config.minDate&&t.minDateHasTime&&t.latestSelectedDateObj&&rn(t.latestSelectedDateObj,t.config.minDate,!0)===0,$e=t.config.maxTime!==void 0||t.config.maxDate&&t.maxDateHasTime&&t.latestSelectedDateObj&&rn(t.latestSelectedDateObj,t.config.maxDate,!0)===0;if(t.config.maxTime!==void 0&&t.config.minTime!==void 0&&t.config.minTime>t.config.maxTime){var Oe=wr(t.config.minTime.getHours(),t.config.minTime.getMinutes(),t.config.minTime.getSeconds()),De=wr(t.config.maxTime.getHours(),t.config.maxTime.getMinutes(),t.config.maxTime.getSeconds()),Te=wr(N,V,ee);if(Te>De&&Te=12)]),t.secondElement!==void 0&&(t.secondElement.value=Qt(ee)))}function m(N){var V=on(N),ee=parseInt(V.value)+(N.delta||0);(ee/1e3>1||N.key==="Enter"&&!/[^\d]/.test(ee.toString()))&&me(ee)}function b(N,V,ee,oe){if(V instanceof Array)return V.forEach(function($e){return b(N,$e,ee,oe)});if(N instanceof Array)return N.forEach(function($e){return b($e,V,ee,oe)});N.addEventListener(V,ee,oe),t._handlers.push({remove:function(){return N.removeEventListener(V,ee,oe)}})}function g(){Je("onChange")}function y(){if(t.config.wrap&&["open","close","toggle","clear"].forEach(function(ee){Array.prototype.forEach.call(t.element.querySelectorAll("[data-"+ee+"]"),function(oe){return b(oe,"click",t[ee])})}),t.isMobile){is();return}var N=Hc(fe,50);if(t._debouncedChange=Hc(g,A$),t.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&b(t.daysContainer,"mouseover",function(ee){t.config.mode==="range"&&se(on(ee))}),b(t._input,"keydown",ue),t.calendarContainer!==void 0&&b(t.calendarContainer,"keydown",ue),!t.config.inline&&!t.config.static&&b(window,"resize",N),window.ontouchstart!==void 0?b(window.document,"touchstart",Fe):b(window.document,"mousedown",Fe),b(window.document,"focus",Fe,{capture:!0}),t.config.clickOpens===!0&&(b(t._input,"focus",t.open),b(t._input,"click",t.open)),t.daysContainer!==void 0&&(b(t.monthNav,"click",Vt),b(t.monthNav,["keyup","increment"],m),b(t.daysContainer,"click",Is)),t.timeContainer!==void 0&&t.minuteElement!==void 0&&t.hourElement!==void 0){var V=function(ee){return on(ee).select()};b(t.timeContainer,["increment"],a),b(t.timeContainer,"blur",a,{capture:!0}),b(t.timeContainer,"click",$),b([t.hourElement,t.minuteElement],["focus","click"],V),t.secondElement!==void 0&&b(t.secondElement,"focus",function(){return t.secondElement&&t.secondElement.select()}),t.amPM!==void 0&&b(t.amPM,"click",function(ee){a(ee)})}t.config.allowInput&&b(t._input,"blur",We)}function k(N,V){var ee=N!==void 0?t.parseDate(N):t.latestSelectedDateObj||(t.config.minDate&&t.config.minDate>t.now?t.config.minDate:t.config.maxDate&&t.config.maxDate1),t.calendarContainer.appendChild(N);var $e=t.config.appendTo!==void 0&&t.config.appendTo.nodeType!==void 0;if((t.config.inline||t.config.static)&&(t.calendarContainer.classList.add(t.config.inline?"inline":"static"),t.config.inline&&(!$e&&t.element.parentNode?t.element.parentNode.insertBefore(t.calendarContainer,t._input.nextSibling):t.config.appendTo!==void 0&&t.config.appendTo.appendChild(t.calendarContainer)),t.config.static)){var Oe=nt("div","flatpickr-wrapper");t.element.parentNode&&t.element.parentNode.insertBefore(Oe,t.element),Oe.appendChild(t.element),t.altInput&&Oe.appendChild(t.altInput),Oe.appendChild(t.calendarContainer)}!t.config.static&&!t.config.inline&&(t.config.appendTo!==void 0?t.config.appendTo:window.document.body).appendChild(t.calendarContainer)}function M(N,V,ee,oe){var $e=Se(V,!0),Oe=nt("span",N,V.getDate().toString());return Oe.dateObj=V,Oe.$i=oe,Oe.setAttribute("aria-label",t.formatDate(V,t.config.ariaDateFormat)),N.indexOf("hidden")===-1&&rn(V,t.now)===0&&(t.todayDateElem=Oe,Oe.classList.add("today"),Oe.setAttribute("aria-current","date")),$e?(Oe.tabIndex=-1,Xn(V)&&(Oe.classList.add("selected"),t.selectedDateElem=Oe,t.config.mode==="range"&&(zt(Oe,"startRange",t.selectedDates[0]&&rn(V,t.selectedDates[0],!0)===0),zt(Oe,"endRange",t.selectedDates[1]&&rn(V,t.selectedDates[1],!0)===0),N==="nextMonthDay"&&Oe.classList.add("inRange")))):Oe.classList.add("flatpickr-disabled"),t.config.mode==="range"&&ls(V)&&!Xn(V)&&Oe.classList.add("inRange"),t.weekNumbers&&t.config.showMonths===1&&N!=="prevMonthDay"&&oe%7===6&&t.weekNumbers.insertAdjacentHTML("beforeend",""+t.config.getWeek(V)+""),Je("onDayCreate",Oe),Oe}function D(N){N.focus(),t.config.mode==="range"&&se(N)}function E(N){for(var V=N>0?0:t.config.showMonths-1,ee=N>0?t.config.showMonths:-1,oe=V;oe!=ee;oe+=N)for(var $e=t.daysContainer.children[oe],Oe=N>0?0:$e.children.length-1,De=N>0?$e.children.length:-1,Te=Oe;Te!=De;Te+=N){var ze=$e.children[Te];if(ze.className.indexOf("hidden")===-1&&Se(ze.dateObj))return ze}}function I(N,V){for(var ee=N.className.indexOf("Month")===-1?N.dateObj.getMonth():t.currentMonth,oe=V>0?t.config.showMonths:-1,$e=V>0?1:-1,Oe=ee-t.currentMonth;Oe!=oe;Oe+=$e)for(var De=t.daysContainer.children[Oe],Te=ee-t.currentMonth===Oe?N.$i+V:V<0?De.children.length-1:0,ze=De.children.length,Ie=Te;Ie>=0&&Ie0?ze:-1);Ie+=$e){var qe=De.children[Ie];if(qe.className.indexOf("hidden")===-1&&Se(qe.dateObj)&&Math.abs(N.$i-Ie)>=Math.abs(V))return D(qe)}t.changeMonth($e),L(E($e),0)}function L(N,V){var ee=l(),oe=we(ee||document.body),$e=N!==void 0?N:oe?ee:t.selectedDateElem!==void 0&&we(t.selectedDateElem)?t.selectedDateElem:t.todayDateElem!==void 0&&we(t.todayDateElem)?t.todayDateElem:E(V>0?1:-1);$e===void 0?t._input.focus():oe?I($e,V):D($e)}function F(N,V){for(var ee=(new Date(N,V,1).getDay()-t.l10n.firstDayOfWeek+7)%7,oe=t.utils.getDaysInMonth((V-1+12)%12,N),$e=t.utils.getDaysInMonth(V,N),Oe=window.document.createDocumentFragment(),De=t.config.showMonths>1,Te=De?"prevMonthDay hidden":"prevMonthDay",ze=De?"nextMonthDay hidden":"nextMonthDay",Ie=oe+1-ee,qe=0;Ie<=oe;Ie++,qe++)Oe.appendChild(M("flatpickr-day "+Te,new Date(N,V-1,Ie),Ie,qe));for(Ie=1;Ie<=$e;Ie++,qe++)Oe.appendChild(M("flatpickr-day",new Date(N,V,Ie),Ie,qe));for(var at=$e+1;at<=42-ee&&(t.config.showMonths===1||qe%7!==0);at++,qe++)Oe.appendChild(M("flatpickr-day "+ze,new Date(N,V+1,at%$e),at,qe));var Hn=nt("div","dayContainer");return Hn.appendChild(Oe),Hn}function q(){if(t.daysContainer!==void 0){to(t.daysContainer),t.weekNumbers&&to(t.weekNumbers);for(var N=document.createDocumentFragment(),V=0;V1||t.config.monthSelectorType!=="dropdown")){var N=function(oe){return t.config.minDate!==void 0&&t.currentYear===t.config.minDate.getFullYear()&&oet.config.maxDate.getMonth())};t.monthsDropdownContainer.tabIndex=-1,t.monthsDropdownContainer.innerHTML="";for(var V=0;V<12;V++)if(!!N(V)){var ee=nt("option","flatpickr-monthDropdown-month");ee.value=new Date(t.currentYear,V).getMonth().toString(),ee.textContent=Io(V,t.config.shorthandCurrentMonth,t.l10n),ee.tabIndex=-1,t.currentMonth===V&&(ee.selected=!0),t.monthsDropdownContainer.appendChild(ee)}}}function J(){var N=nt("div","flatpickr-month"),V=window.document.createDocumentFragment(),ee;t.config.showMonths>1||t.config.monthSelectorType==="static"?ee=nt("span","cur-month"):(t.monthsDropdownContainer=nt("select","flatpickr-monthDropdown-months"),t.monthsDropdownContainer.setAttribute("aria-label",t.l10n.monthAriaLabel),b(t.monthsDropdownContainer,"change",function(De){var Te=on(De),ze=parseInt(Te.value,10);t.changeMonth(ze-t.currentMonth),Je("onMonthChange")}),z(),ee=t.monthsDropdownContainer);var oe=no("cur-year",{tabindex:"-1"}),$e=oe.getElementsByTagName("input")[0];$e.setAttribute("aria-label",t.l10n.yearAriaLabel),t.config.minDate&&$e.setAttribute("min",t.config.minDate.getFullYear().toString()),t.config.maxDate&&($e.setAttribute("max",t.config.maxDate.getFullYear().toString()),$e.disabled=!!t.config.minDate&&t.config.minDate.getFullYear()===t.config.maxDate.getFullYear());var Oe=nt("div","flatpickr-current-month");return Oe.appendChild(ee),Oe.appendChild(oe),V.appendChild(Oe),N.appendChild(V),{container:N,yearElement:$e,monthElement:ee}}function G(){to(t.monthNav),t.monthNav.appendChild(t.prevMonthNav),t.config.showMonths&&(t.yearElements=[],t.monthElements=[]);for(var N=t.config.showMonths;N--;){var V=J();t.yearElements.push(V.yearElement),t.monthElements.push(V.monthElement),t.monthNav.appendChild(V.container)}t.monthNav.appendChild(t.nextMonthNav)}function X(){return t.monthNav=nt("div","flatpickr-months"),t.yearElements=[],t.monthElements=[],t.prevMonthNav=nt("span","flatpickr-prev-month"),t.prevMonthNav.innerHTML=t.config.prevArrow,t.nextMonthNav=nt("span","flatpickr-next-month"),t.nextMonthNav.innerHTML=t.config.nextArrow,G(),Object.defineProperty(t,"_hidePrevMonthArrow",{get:function(){return t.__hidePrevMonthArrow},set:function(N){t.__hidePrevMonthArrow!==N&&(zt(t.prevMonthNav,"flatpickr-disabled",N),t.__hidePrevMonthArrow=N)}}),Object.defineProperty(t,"_hideNextMonthArrow",{get:function(){return t.__hideNextMonthArrow},set:function(N){t.__hideNextMonthArrow!==N&&(zt(t.nextMonthNav,"flatpickr-disabled",N),t.__hideNextMonthArrow=N)}}),t.currentYearElement=t.yearElements[0],Oi(),t.monthNav}function Q(){t.calendarContainer.classList.add("hasTime"),t.config.noCalendar&&t.calendarContainer.classList.add("noCalendar");var N=Sr(t.config);t.timeContainer=nt("div","flatpickr-time"),t.timeContainer.tabIndex=-1;var V=nt("span","flatpickr-time-separator",":"),ee=no("flatpickr-hour",{"aria-label":t.l10n.hourAriaLabel});t.hourElement=ee.getElementsByTagName("input")[0];var oe=no("flatpickr-minute",{"aria-label":t.l10n.minuteAriaLabel});if(t.minuteElement=oe.getElementsByTagName("input")[0],t.hourElement.tabIndex=t.minuteElement.tabIndex=-1,t.hourElement.value=Qt(t.latestSelectedDateObj?t.latestSelectedDateObj.getHours():t.config.time_24hr?N.hours:f(N.hours)),t.minuteElement.value=Qt(t.latestSelectedDateObj?t.latestSelectedDateObj.getMinutes():N.minutes),t.hourElement.setAttribute("step",t.config.hourIncrement.toString()),t.minuteElement.setAttribute("step",t.config.minuteIncrement.toString()),t.hourElement.setAttribute("min",t.config.time_24hr?"0":"1"),t.hourElement.setAttribute("max",t.config.time_24hr?"23":"12"),t.hourElement.setAttribute("maxlength","2"),t.minuteElement.setAttribute("min","0"),t.minuteElement.setAttribute("max","59"),t.minuteElement.setAttribute("maxlength","2"),t.timeContainer.appendChild(ee),t.timeContainer.appendChild(V),t.timeContainer.appendChild(oe),t.config.time_24hr&&t.timeContainer.classList.add("time24hr"),t.config.enableSeconds){t.timeContainer.classList.add("hasSeconds");var $e=no("flatpickr-second");t.secondElement=$e.getElementsByTagName("input")[0],t.secondElement.value=Qt(t.latestSelectedDateObj?t.latestSelectedDateObj.getSeconds():N.seconds),t.secondElement.setAttribute("step",t.minuteElement.getAttribute("step")),t.secondElement.setAttribute("min","0"),t.secondElement.setAttribute("max","59"),t.secondElement.setAttribute("maxlength","2"),t.timeContainer.appendChild(nt("span","flatpickr-time-separator",":")),t.timeContainer.appendChild($e)}return t.config.time_24hr||(t.amPM=nt("span","flatpickr-am-pm",t.l10n.amPM[_n((t.latestSelectedDateObj?t.hourElement.value:t.config.defaultHour)>11)]),t.amPM.title=t.l10n.toggleTitle,t.amPM.tabIndex=-1,t.timeContainer.appendChild(t.amPM)),t.timeContainer}function ie(){t.weekdayContainer?to(t.weekdayContainer):t.weekdayContainer=nt("div","flatpickr-weekdays");for(var N=t.config.showMonths;N--;){var V=nt("div","flatpickr-weekdaycontainer");t.weekdayContainer.appendChild(V)}return Y(),t.weekdayContainer}function Y(){if(!!t.weekdayContainer){var N=t.l10n.firstDayOfWeek,V=jc(t.l10n.weekdays.shorthand);N>0&&N - `+V.join("")+` - - `}}function x(){t.calendarContainer.classList.add("hasWeeks");var N=nt("div","flatpickr-weekwrapper");N.appendChild(nt("span","flatpickr-weekday",t.l10n.weekAbbreviation));var V=nt("div","flatpickr-weeks");return N.appendChild(V),{weekWrapper:N,weekNumbers:V}}function U(N,V){V===void 0&&(V=!0);var ee=V?N:N-t.currentMonth;ee<0&&t._hidePrevMonthArrow===!0||ee>0&&t._hideNextMonthArrow===!0||(t.currentMonth+=ee,(t.currentMonth<0||t.currentMonth>11)&&(t.currentYear+=t.currentMonth>11?1:-1,t.currentMonth=(t.currentMonth+12)%12,Je("onYearChange"),z()),q(),Je("onMonthChange"),Oi())}function re(N,V){if(N===void 0&&(N=!0),V===void 0&&(V=!0),t.input.value="",t.altInput!==void 0&&(t.altInput.value=""),t.mobileInput!==void 0&&(t.mobileInput.value=""),t.selectedDates=[],t.latestSelectedDateObj=void 0,V===!0&&(t.currentYear=t._initialDate.getFullYear(),t.currentMonth=t._initialDate.getMonth()),t.config.enableTime===!0){var ee=Sr(t.config),oe=ee.hours,$e=ee.minutes,Oe=ee.seconds;h(oe,$e,Oe)}t.redraw(),N&&Je("onChange")}function Re(){t.isOpen=!1,t.isMobile||(t.calendarContainer!==void 0&&t.calendarContainer.classList.remove("open"),t._input!==void 0&&t._input.classList.remove("active")),Je("onClose")}function Ne(){t.config!==void 0&&Je("onDestroy");for(var N=t._handlers.length;N--;)t._handlers[N].remove();if(t._handlers=[],t.mobileInput)t.mobileInput.parentNode&&t.mobileInput.parentNode.removeChild(t.mobileInput),t.mobileInput=void 0;else if(t.calendarContainer&&t.calendarContainer.parentNode)if(t.config.static&&t.calendarContainer.parentNode){var V=t.calendarContainer.parentNode;if(V.lastChild&&V.removeChild(V.lastChild),V.parentNode){for(;V.firstChild;)V.parentNode.insertBefore(V.firstChild,V);V.parentNode.removeChild(V)}}else t.calendarContainer.parentNode.removeChild(t.calendarContainer);t.altInput&&(t.input.type="text",t.altInput.parentNode&&t.altInput.parentNode.removeChild(t.altInput),delete t.altInput),t.input&&(t.input.type=t.input._type,t.input.classList.remove("flatpickr-input"),t.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(ee){try{delete t[ee]}catch{}})}function Le(N){return t.calendarContainer.contains(N)}function Fe(N){if(t.isOpen&&!t.config.inline){var V=on(N),ee=Le(V),oe=V===t.input||V===t.altInput||t.element.contains(V)||N.path&&N.path.indexOf&&(~N.path.indexOf(t.input)||~N.path.indexOf(t.altInput)),$e=!oe&&!ee&&!Le(N.relatedTarget),Oe=!t.config.ignoredFocusElements.some(function(De){return De.contains(V)});$e&&Oe&&(t.config.allowInput&&t.setDate(t._input.value,!1,t.config.altInput?t.config.altFormat:t.config.dateFormat),t.timeContainer!==void 0&&t.minuteElement!==void 0&&t.hourElement!==void 0&&t.input.value!==""&&t.input.value!==void 0&&a(),t.close(),t.config&&t.config.mode==="range"&&t.selectedDates.length===1&&t.clear(!1))}}function me(N){if(!(!N||t.config.minDate&&Nt.config.maxDate.getFullYear())){var V=N,ee=t.currentYear!==V;t.currentYear=V||t.currentYear,t.config.maxDate&&t.currentYear===t.config.maxDate.getFullYear()?t.currentMonth=Math.min(t.config.maxDate.getMonth(),t.currentMonth):t.config.minDate&&t.currentYear===t.config.minDate.getFullYear()&&(t.currentMonth=Math.max(t.config.minDate.getMonth(),t.currentMonth)),ee&&(t.redraw(),Je("onYearChange"),z())}}function Se(N,V){var ee;V===void 0&&(V=!0);var oe=t.parseDate(N,void 0,V);if(t.config.minDate&&oe&&rn(oe,t.config.minDate,V!==void 0?V:!t.minDateHasTime)<0||t.config.maxDate&&oe&&rn(oe,t.config.maxDate,V!==void 0?V:!t.maxDateHasTime)>0)return!1;if(!t.config.enable&&t.config.disable.length===0)return!0;if(oe===void 0)return!1;for(var $e=!!t.config.enable,Oe=(ee=t.config.enable)!==null&&ee!==void 0?ee:t.config.disable,De=0,Te=void 0;De=Te.from.getTime()&&oe.getTime()<=Te.to.getTime())return $e}return!$e}function we(N){return t.daysContainer!==void 0?N.className.indexOf("hidden")===-1&&N.className.indexOf("flatpickr-disabled")===-1&&t.daysContainer.contains(N):!1}function We(N){var V=N.target===t._input,ee=t._input.value.trimEnd()!==Di();V&&ee&&!(N.relatedTarget&&Le(N.relatedTarget))&&t.setDate(t._input.value,!0,N.target===t.altInput?t.config.altFormat:t.config.dateFormat)}function ue(N){var V=on(N),ee=t.config.wrap?n.contains(V):V===t._input,oe=t.config.allowInput,$e=t.isOpen&&(!oe||!ee),Oe=t.config.inline&&ee&&!oe;if(N.keyCode===13&&ee){if(oe)return t.setDate(t._input.value,!0,V===t.altInput?t.config.altFormat:t.config.dateFormat),t.close(),V.blur();t.open()}else if(Le(V)||$e||Oe){var De=!!t.timeContainer&&t.timeContainer.contains(V);switch(N.keyCode){case 13:De?(N.preventDefault(),a(),ri()):Is(N);break;case 27:N.preventDefault(),ri();break;case 8:case 46:ee&&!t.config.allowInput&&(N.preventDefault(),t.clear());break;case 37:case 39:if(!De&&!ee){N.preventDefault();var Te=l();if(t.daysContainer!==void 0&&(oe===!1||Te&&we(Te))){var ze=N.keyCode===39?1:-1;N.ctrlKey?(N.stopPropagation(),U(ze),L(E(1),0)):L(void 0,ze)}}else t.hourElement&&t.hourElement.focus();break;case 38:case 40:N.preventDefault();var Ie=N.keyCode===40?1:-1;t.daysContainer&&V.$i!==void 0||V===t.input||V===t.altInput?N.ctrlKey?(N.stopPropagation(),me(t.currentYear-Ie),L(E(1),0)):De||L(void 0,Ie*7):V===t.currentYearElement?me(t.currentYear-Ie):t.config.enableTime&&(!De&&t.hourElement&&t.hourElement.focus(),a(N),t._debouncedChange());break;case 9:if(De){var qe=[t.hourElement,t.minuteElement,t.secondElement,t.amPM].concat(t.pluginElements).filter(function(ln){return ln}),at=qe.indexOf(V);if(at!==-1){var Hn=qe[at+(N.shiftKey?-1:1)];N.preventDefault(),(Hn||t._input).focus()}}else!t.config.noCalendar&&t.daysContainer&&t.daysContainer.contains(V)&&N.shiftKey&&(N.preventDefault(),t._input.focus());break}}if(t.amPM!==void 0&&V===t.amPM)switch(N.key){case t.l10n.amPM[0].charAt(0):case t.l10n.amPM[0].charAt(0).toLowerCase():t.amPM.textContent=t.l10n.amPM[0],c(),Pt();break;case t.l10n.amPM[1].charAt(0):case t.l10n.amPM[1].charAt(0).toLowerCase():t.amPM.textContent=t.l10n.amPM[1],c(),Pt();break}(ee||Le(V))&&Je("onKeyDown",N)}function se(N,V){if(V===void 0&&(V="flatpickr-day"),!(t.selectedDates.length!==1||N&&(!N.classList.contains(V)||N.classList.contains("flatpickr-disabled")))){for(var ee=N?N.dateObj.getTime():t.days.firstElementChild.dateObj.getTime(),oe=t.parseDate(t.selectedDates[0],void 0,!0).getTime(),$e=Math.min(ee,t.selectedDates[0].getTime()),Oe=Math.max(ee,t.selectedDates[0].getTime()),De=!1,Te=0,ze=0,Ie=$e;Ie$e&&IeTe)?Te=Ie:Ie>oe&&(!ze||Ie ."+V));qe.forEach(function(at){var Hn=at.dateObj,ln=Hn.getTime(),Ps=Te>0&&ln0&&ln>ze;if(Ps){at.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(os){at.classList.remove(os)});return}else if(De&&!Ps)return;["startRange","inRange","endRange","notAllowed"].forEach(function(os){at.classList.remove(os)}),N!==void 0&&(N.classList.add(ee<=t.selectedDates[0].getTime()?"startRange":"endRange"),oeee&&ln===oe&&at.classList.add("endRange"),ln>=Te&&(ze===0||ln<=ze)&&M$(ln,oe,ee)&&at.classList.add("inRange"))})}}function fe(){t.isOpen&&!t.config.static&&!t.config.inline&&sn()}function Z(N,V){if(V===void 0&&(V=t._positionElement),t.isMobile===!0){if(N){N.preventDefault();var ee=on(N);ee&&ee.blur()}t.mobileInput!==void 0&&(t.mobileInput.focus(),t.mobileInput.click()),Je("onOpen");return}else if(t._input.disabled||t.config.inline)return;var oe=t.isOpen;t.isOpen=!0,oe||(t.calendarContainer.classList.add("open"),t._input.classList.add("active"),Je("onOpen"),sn(V)),t.config.enableTime===!0&&t.config.noCalendar===!0&&t.config.allowInput===!1&&(N===void 0||!t.timeContainer.contains(N.relatedTarget))&&setTimeout(function(){return t.hourElement.select()},50)}function Ce(N){return function(V){var ee=t.config["_"+N+"Date"]=t.parseDate(V,t.config.dateFormat),oe=t.config["_"+(N==="min"?"max":"min")+"Date"];ee!==void 0&&(t[N==="min"?"minDateHasTime":"maxDateHasTime"]=ee.getHours()>0||ee.getMinutes()>0||ee.getSeconds()>0),t.selectedDates&&(t.selectedDates=t.selectedDates.filter(function($e){return Se($e)}),!t.selectedDates.length&&N==="min"&&d(ee),Pt()),t.daysContainer&&(oi(),ee!==void 0?t.currentYearElement[N]=ee.getFullYear().toString():t.currentYearElement.removeAttribute(N),t.currentYearElement.disabled=!!oe&&ee!==void 0&&oe.getFullYear()===ee.getFullYear())}}function Ue(){var N=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],V=Nt(Nt({},JSON.parse(JSON.stringify(n.dataset||{}))),e),ee={};t.config.parseDate=V.parseDate,t.config.formatDate=V.formatDate,Object.defineProperty(t.config,"enable",{get:function(){return t.config._enable},set:function(qe){t.config._enable=ui(qe)}}),Object.defineProperty(t.config,"disable",{get:function(){return t.config._disable},set:function(qe){t.config._disable=ui(qe)}});var oe=V.mode==="time";if(!V.dateFormat&&(V.enableTime||oe)){var $e=kt.defaultConfig.dateFormat||bs.dateFormat;ee.dateFormat=V.noCalendar||oe?"H:i"+(V.enableSeconds?":S":""):$e+" H:i"+(V.enableSeconds?":S":"")}if(V.altInput&&(V.enableTime||oe)&&!V.altFormat){var Oe=kt.defaultConfig.altFormat||bs.altFormat;ee.altFormat=V.noCalendar||oe?"h:i"+(V.enableSeconds?":S K":" K"):Oe+(" h:i"+(V.enableSeconds?":S":"")+" K")}Object.defineProperty(t.config,"minDate",{get:function(){return t.config._minDate},set:Ce("min")}),Object.defineProperty(t.config,"maxDate",{get:function(){return t.config._maxDate},set:Ce("max")});var De=function(qe){return function(at){t.config[qe==="min"?"_minTime":"_maxTime"]=t.parseDate(at,"H:i:S")}};Object.defineProperty(t.config,"minTime",{get:function(){return t.config._minTime},set:De("min")}),Object.defineProperty(t.config,"maxTime",{get:function(){return t.config._maxTime},set:De("max")}),V.mode==="time"&&(t.config.noCalendar=!0,t.config.enableTime=!0),Object.assign(t.config,ee,V);for(var Te=0;Te-1?t.config[Ie]=yr(ze[Ie]).map(o).concat(t.config[Ie]):typeof V[Ie]>"u"&&(t.config[Ie]=ze[Ie])}V.altInputClass||(t.config.altInputClass=qt().className+" "+t.config.altInputClass),Je("onParseConfig")}function qt(){return t.config.wrap?n.querySelector("[data-input]"):n}function Gt(){typeof t.config.locale!="object"&&typeof kt.l10ns[t.config.locale]>"u"&&t.config.errorHandler(new Error("flatpickr: invalid locale "+t.config.locale)),t.l10n=Nt(Nt({},kt.l10ns.default),typeof t.config.locale=="object"?t.config.locale:t.config.locale!=="default"?kt.l10ns[t.config.locale]:void 0),ji.D="("+t.l10n.weekdays.shorthand.join("|")+")",ji.l="("+t.l10n.weekdays.longhand.join("|")+")",ji.M="("+t.l10n.months.shorthand.join("|")+")",ji.F="("+t.l10n.months.longhand.join("|")+")",ji.K="("+t.l10n.amPM[0]+"|"+t.l10n.amPM[1]+"|"+t.l10n.amPM[0].toLowerCase()+"|"+t.l10n.amPM[1].toLowerCase()+")";var N=Nt(Nt({},e),JSON.parse(JSON.stringify(n.dataset||{})));N.time_24hr===void 0&&kt.defaultConfig.time_24hr===void 0&&(t.config.time_24hr=t.l10n.time_24hr),t.formatDate=H_(t),t.parseDate=ia({config:t.config,l10n:t.l10n})}function sn(N){if(typeof t.config.position=="function")return void t.config.position(t,N);if(t.calendarContainer!==void 0){Je("onPreCalendarPosition");var V=N||t._positionElement,ee=Array.prototype.reduce.call(t.calendarContainer.children,function(J_,Z_){return J_+Z_.offsetHeight},0),oe=t.calendarContainer.offsetWidth,$e=t.config.position.split(" "),Oe=$e[0],De=$e.length>1?$e[1]:null,Te=V.getBoundingClientRect(),ze=window.innerHeight-Te.bottom,Ie=Oe==="above"||Oe!=="below"&&zeee,qe=window.pageYOffset+Te.top+(Ie?-ee-2:V.offsetHeight+2);if(zt(t.calendarContainer,"arrowTop",!Ie),zt(t.calendarContainer,"arrowBottom",Ie),!t.config.inline){var at=window.pageXOffset+Te.left,Hn=!1,ln=!1;De==="center"?(at-=(oe-Te.width)/2,Hn=!0):De==="right"&&(at-=oe-Te.width,ln=!0),zt(t.calendarContainer,"arrowLeft",!Hn&&!ln),zt(t.calendarContainer,"arrowCenter",Hn),zt(t.calendarContainer,"arrowRight",ln);var Ps=window.document.body.offsetWidth-(window.pageXOffset+Te.right),os=at+oe>window.document.body.offsetWidth,V_=Ps+oe>window.document.body.offsetWidth;if(zt(t.calendarContainer,"rightMost",os),!t.config.static)if(t.calendarContainer.style.top=qe+"px",!os)t.calendarContainer.style.left=at+"px",t.calendarContainer.style.right="auto";else if(!V_)t.calendarContainer.style.left="auto",t.calendarContainer.style.right=Ps+"px";else{var Zo=Gn();if(Zo===void 0)return;var z_=window.document.body.offsetWidth,B_=Math.max(0,z_/2-oe/2),U_=".flatpickr-calendar.centerMost:before",W_=".flatpickr-calendar.centerMost:after",Y_=Zo.cssRules.length,K_="{left:"+Te.left+"px;right:auto;}";zt(t.calendarContainer,"rightMost",!1),zt(t.calendarContainer,"centerMost",!0),Zo.insertRule(U_+","+W_+K_,Y_),t.calendarContainer.style.left=B_+"px",t.calendarContainer.style.right="auto"}}}}function Gn(){for(var N=null,V=0;Vt.currentMonth+t.config.showMonths-1)&&t.config.mode!=="range";if(t.selectedDateElem=oe,t.config.mode==="single")t.selectedDates=[$e];else if(t.config.mode==="multiple"){var De=Xn($e);De?t.selectedDates.splice(parseInt(De),1):t.selectedDates.push($e)}else t.config.mode==="range"&&(t.selectedDates.length===2&&t.clear(!1,!1),t.latestSelectedDateObj=$e,t.selectedDates.push($e),rn($e,t.selectedDates[0],!0)!==0&&t.selectedDates.sort(function(qe,at){return qe.getTime()-at.getTime()}));if(c(),Oe){var Te=t.currentYear!==$e.getFullYear();t.currentYear=$e.getFullYear(),t.currentMonth=$e.getMonth(),Te&&(Je("onYearChange"),z()),Je("onMonthChange")}if(Oi(),q(),Pt(),!Oe&&t.config.mode!=="range"&&t.config.showMonths===1?D(oe):t.selectedDateElem!==void 0&&t.hourElement===void 0&&t.selectedDateElem&&t.selectedDateElem.focus(),t.hourElement!==void 0&&t.hourElement!==void 0&&t.hourElement.focus(),t.config.closeOnSelect){var ze=t.config.mode==="single"&&!t.config.enableTime,Ie=t.config.mode==="range"&&t.selectedDates.length===2&&!t.config.enableTime;(ze||Ie)&&ri()}g()}}var ai={locale:[Gt,Y],showMonths:[G,r,ie],minDate:[k],maxDate:[k],positionElement:[Mi],clickOpens:[function(){t.config.clickOpens===!0?(b(t._input,"focus",t.open),b(t._input,"click",t.open)):(t._input.removeEventListener("focus",t.open),t._input.removeEventListener("click",t.open))}]};function es(N,V){if(N!==null&&typeof N=="object"){Object.assign(t.config,N);for(var ee in N)ai[ee]!==void 0&&ai[ee].forEach(function(oe){return oe()})}else t.config[N]=V,ai[N]!==void 0?ai[N].forEach(function(oe){return oe()}):vr.indexOf(N)>-1&&(t.config[N]=yr(V));t.redraw(),Pt(!0)}function ts(N,V){var ee=[];if(N instanceof Array)ee=N.map(function(oe){return t.parseDate(oe,V)});else if(N instanceof Date||typeof N=="number")ee=[t.parseDate(N,V)];else if(typeof N=="string")switch(t.config.mode){case"single":case"time":ee=[t.parseDate(N,V)];break;case"multiple":ee=N.split(t.config.conjunction).map(function(oe){return t.parseDate(oe,V)});break;case"range":ee=N.split(t.l10n.rangeSeparator).map(function(oe){return t.parseDate(oe,V)});break}else t.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(N)));t.selectedDates=t.config.allowInvalidPreload?ee:ee.filter(function(oe){return oe instanceof Date&&Se(oe,!1)}),t.config.mode==="range"&&t.selectedDates.sort(function(oe,$e){return oe.getTime()-$e.getTime()})}function El(N,V,ee){if(V===void 0&&(V=!1),ee===void 0&&(ee=t.config.dateFormat),N!==0&&!N||N instanceof Array&&N.length===0)return t.clear(V);ts(N,ee),t.latestSelectedDateObj=t.selectedDates[t.selectedDates.length-1],t.redraw(),k(void 0,V),d(),t.selectedDates.length===0&&t.clear(!1),Pt(V),V&&Je("onChange")}function ui(N){return N.slice().map(function(V){return typeof V=="string"||typeof V=="number"||V instanceof Date?t.parseDate(V,void 0,!0):V&&typeof V=="object"&&V.from&&V.to?{from:t.parseDate(V.from,void 0),to:t.parseDate(V.to,void 0)}:V}).filter(function(V){return V})}function ns(){t.selectedDates=[],t.now=t.parseDate(t.config.now)||new Date;var N=t.config.defaultDate||((t.input.nodeName==="INPUT"||t.input.nodeName==="TEXTAREA")&&t.input.placeholder&&t.input.value===t.input.placeholder?null:t.input.value);N&&ts(N,t.config.dateFormat),t._initialDate=t.selectedDates.length>0?t.selectedDates[0]:t.config.minDate&&t.config.minDate.getTime()>t.now.getTime()?t.config.minDate:t.config.maxDate&&t.config.maxDate.getTime()0&&(t.latestSelectedDateObj=t.selectedDates[0]),t.config.minTime!==void 0&&(t.config.minTime=t.parseDate(t.config.minTime,"H:i")),t.config.maxTime!==void 0&&(t.config.maxTime=t.parseDate(t.config.maxTime,"H:i")),t.minDateHasTime=!!t.config.minDate&&(t.config.minDate.getHours()>0||t.config.minDate.getMinutes()>0||t.config.minDate.getSeconds()>0),t.maxDateHasTime=!!t.config.maxDate&&(t.config.maxDate.getHours()>0||t.config.maxDate.getMinutes()>0||t.config.maxDate.getSeconds()>0)}function Il(){if(t.input=qt(),!t.input){t.config.errorHandler(new Error("Invalid input element specified"));return}t.input._type=t.input.type,t.input.type="text",t.input.classList.add("flatpickr-input"),t._input=t.input,t.config.altInput&&(t.altInput=nt(t.input.nodeName,t.config.altInputClass),t._input=t.altInput,t.altInput.placeholder=t.input.placeholder,t.altInput.disabled=t.input.disabled,t.altInput.required=t.input.required,t.altInput.tabIndex=t.input.tabIndex,t.altInput.type="text",t.input.setAttribute("type","hidden"),!t.config.static&&t.input.parentNode&&t.input.parentNode.insertBefore(t.altInput,t.input.nextSibling)),t.config.allowInput||t._input.setAttribute("readonly","readonly"),Mi()}function Mi(){t._positionElement=t.config.positionElement||t._input}function is(){var N=t.config.enableTime?t.config.noCalendar?"time":"datetime-local":"date";t.mobileInput=nt("input",t.input.className+" flatpickr-mobile"),t.mobileInput.tabIndex=1,t.mobileInput.type=N,t.mobileInput.disabled=t.input.disabled,t.mobileInput.required=t.input.required,t.mobileInput.placeholder=t.input.placeholder,t.mobileFormatStr=N==="datetime-local"?"Y-m-d\\TH:i:S":N==="date"?"Y-m-d":"H:i:S",t.selectedDates.length>0&&(t.mobileInput.defaultValue=t.mobileInput.value=t.formatDate(t.selectedDates[0],t.mobileFormatStr)),t.config.minDate&&(t.mobileInput.min=t.formatDate(t.config.minDate,"Y-m-d")),t.config.maxDate&&(t.mobileInput.max=t.formatDate(t.config.maxDate,"Y-m-d")),t.input.getAttribute("step")&&(t.mobileInput.step=String(t.input.getAttribute("step"))),t.input.type="hidden",t.altInput!==void 0&&(t.altInput.type="hidden");try{t.input.parentNode&&t.input.parentNode.insertBefore(t.mobileInput,t.input.nextSibling)}catch{}b(t.mobileInput,"change",function(V){t.setDate(on(V).value,!1,t.mobileFormatStr),Je("onChange"),Je("onClose")})}function Xt(N){if(t.isOpen===!0)return t.close();t.open(N)}function Je(N,V){if(t.config!==void 0){var ee=t.config[N];if(ee!==void 0&&ee.length>0)for(var oe=0;ee[oe]&&oe=0&&rn(N,t.selectedDates[1])<=0}function Oi(){t.config.noCalendar||t.isMobile||!t.monthNav||(t.yearElements.forEach(function(N,V){var ee=new Date(t.currentYear,t.currentMonth,1);ee.setMonth(t.currentMonth+V),t.config.showMonths>1||t.config.monthSelectorType==="static"?t.monthElements[V].textContent=Io(ee.getMonth(),t.config.shorthandCurrentMonth,t.l10n)+" ":t.monthsDropdownContainer.value=ee.getMonth().toString(),N.value=ee.getFullYear().toString()}),t._hidePrevMonthArrow=t.config.minDate!==void 0&&(t.currentYear===t.config.minDate.getFullYear()?t.currentMonth<=t.config.minDate.getMonth():t.currentYeart.config.maxDate.getMonth():t.currentYear>t.config.maxDate.getFullYear()))}function Di(N){var V=N||(t.config.altInput?t.config.altFormat:t.config.dateFormat);return t.selectedDates.map(function(ee){return t.formatDate(ee,V)}).filter(function(ee,oe,$e){return t.config.mode!=="range"||t.config.enableTime||$e.indexOf(ee)===oe}).join(t.config.mode!=="range"?t.config.conjunction:t.l10n.rangeSeparator)}function Pt(N){N===void 0&&(N=!0),t.mobileInput!==void 0&&t.mobileFormatStr&&(t.mobileInput.value=t.latestSelectedDateObj!==void 0?t.formatDate(t.latestSelectedDateObj,t.mobileFormatStr):""),t.input.value=Di(t.config.dateFormat),t.altInput!==void 0&&(t.altInput.value=Di(t.config.altFormat)),N!==!1&&Je("onValueUpdate")}function Vt(N){var V=on(N),ee=t.prevMonthNav.contains(V),oe=t.nextMonthNav.contains(V);ee||oe?U(ee?-1:1):t.yearElements.indexOf(V)>=0?V.select():V.classList.contains("arrowUp")?t.changeYear(t.currentYear+1):V.classList.contains("arrowDown")&&t.changeYear(t.currentYear-1)}function Pl(N){N.preventDefault();var V=N.type==="keydown",ee=on(N),oe=ee;t.amPM!==void 0&&ee===t.amPM&&(t.amPM.textContent=t.l10n.amPM[_n(t.amPM.textContent===t.l10n.amPM[0])]);var $e=parseFloat(oe.getAttribute("min")),Oe=parseFloat(oe.getAttribute("max")),De=parseFloat(oe.getAttribute("step")),Te=parseInt(oe.value,10),ze=N.delta||(V?N.which===38?1:-1:0),Ie=Te+De*ze;if(typeof oe.value<"u"&&oe.value.length===2){var qe=oe===t.hourElement,at=oe===t.minuteElement;Ie<$e?(Ie=Oe+Ie+_n(!qe)+(_n(qe)&&_n(!t.amPM)),at&&C(void 0,-1,t.hourElement)):Ie>Oe&&(Ie=oe===t.hourElement?Ie-Oe-_n(!t.amPM):$e,at&&C(void 0,1,t.hourElement)),t.amPM&&qe&&(De===1?Ie+Te===23:Math.abs(Ie-Te)>De)&&(t.amPM.textContent=t.l10n.amPM[_n(t.amPM.textContent===t.l10n.amPM[0])]),oe.value=Qt(Ie)}}return s(),t}function vs(n,e){for(var t=Array.prototype.slice.call(n).filter(function(o){return o instanceof HTMLElement}),i=[],s=0;s{const C=f||m,T=y(d);return T.onReady.push(()=>{t(8,h=!0)}),t(3,b=kt(C,Object.assign(T,f?{wrap:!0}:{}))),()=>{b.destroy()}});const g=It();function y(C={}){C=Object.assign({},C);for(const T of r){const M=(D,E,I)=>{g(L$(T),[D,E,I])};T in C?(Array.isArray(C[T])||(C[T]=[C[T]]),C[T].push(M)):C[T]=[M]}return C.onChange&&!C.onChange.includes(k)&&C.onChange.push(k),C}function k(C,T,M){var E,I;const D=(I=(E=M==null?void 0:M.config)==null?void 0:E.mode)!=null?I:"single";t(2,a=D==="single"?C[0]:C),t(4,u=T)}function $(C){le[C?"unshift":"push"](()=>{m=C,t(0,m)})}return n.$$set=C=>{e=Ke(Ke({},e),Wn(C)),t(1,s=wt(e,i)),"value"in C&&t(2,a=C.value),"formattedValue"in C&&t(4,u=C.formattedValue),"element"in C&&t(5,f=C.element),"dateFormat"in C&&t(6,c=C.dateFormat),"options"in C&&t(7,d=C.options),"input"in C&&t(0,m=C.input),"flatpickr"in C&&t(3,b=C.flatpickr),"$$scope"in C&&t(9,o=C.$$scope)},n.$$.update=()=>{if(n.$$.dirty&332&&b&&h&&b.setDate(a,!1,c),n.$$.dirty&392&&b&&h)for(const[C,T]of Object.entries(y(d)))b.set(C,T)},[m,s,a,b,u,f,c,d,h,o,l,$]}class Ka extends ye{constructor(e){super(),ve(this,e,N$,P$,be,{value:2,formattedValue:4,element:5,dateFormat:6,options:7,input:0,flatpickr:3})}}function F$(n){let e,t,i,s,l,o,r;function a(f){n[2](f)}let u={id:n[4],options:W.defaultFlatpickrOptions(),value:n[0].min};return n[0].min!==void 0&&(u.formattedValue=n[0].min),l=new Ka({props:u}),le.push(()=>_e(l,"formattedValue",a)),{c(){e=v("label"),t=B("Min date (UTC)"),s=O(),j(l.$$.fragment),p(e,"for",i=n[4])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&16&&i!==(i=f[4]))&&p(e,"for",i);const d={};c&16&&(d.id=f[4]),c&1&&(d.value=f[0].min),!o&&c&1&&(o=!0,d.formattedValue=f[0].min,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function R$(n){let e,t,i,s,l,o,r;function a(f){n[3](f)}let u={id:n[4],options:W.defaultFlatpickrOptions(),value:n[0].max};return n[0].max!==void 0&&(u.formattedValue=n[0].max),l=new Ka({props:u}),le.push(()=>_e(l,"formattedValue",a)),{c(){e=v("label"),t=B("Max date (UTC)"),s=O(),j(l.$$.fragment),p(e,"for",i=n[4])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&16&&i!==(i=f[4]))&&p(e,"for",i);const d={};c&16&&(d.id=f[4]),c&1&&(d.value=f[0].max),!o&&c&1&&(o=!0,d.formattedValue=f[0].max,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function H$(n){let e,t,i,s,l,o,r;return i=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.min",$$slots:{default:[F$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.max",$$slots:{default:[R$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(e,"class","grid")},m(a,u){S(a,e,u),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),r=!0},p(a,[u]){const f={};u&2&&(f.name="schema."+a[1]+".options.min"),u&49&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.max"),u&49&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){P(i.$$.fragment,a),P(o.$$.fragment,a),r=!1},d(a){a&&w(e),H(i),H(o)}}}function j$(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(r){n.$$.not_equal(s.min,r)&&(s.min=r,t(0,s))}function o(r){n.$$.not_equal(s.max,r)&&(s.max=r,t(0,s))}return n.$$set=r=>{"key"in r&&t(1,i=r.key),"options"in r&&t(0,s=r.options)},[s,i,l,o]}class q$ extends ye{constructor(e){super(),ve(this,e,j$,H$,be,{key:1,options:0})}}function V$(n){let e,t,i,s,l,o,r,a,u;function f(d){n[2](d)}let c={id:n[4],placeholder:"eg. optionA, optionB",required:!0};return n[0].values!==void 0&&(c.value=n[0].values),l=new xi({props:c}),le.push(()=>_e(l,"value",f)),{c(){e=v("label"),t=B("Choices"),s=O(),j(l.$$.fragment),r=O(),a=v("div"),a.textContent="Use comma as separator.",p(e,"for",i=n[4]),p(a,"class","help-block")},m(d,h){S(d,e,h),_(e,t),S(d,s,h),R(l,d,h),S(d,r,h),S(d,a,h),u=!0},p(d,h){(!u||h&16&&i!==(i=d[4]))&&p(e,"for",i);const m={};h&16&&(m.id=d[4]),!o&&h&1&&(o=!0,m.value=d[0].values,ke(()=>o=!1)),l.$set(m)},i(d){u||(A(l.$$.fragment,d),u=!0)},o(d){P(l.$$.fragment,d),u=!1},d(d){d&&w(e),d&&w(s),H(l,d),d&&w(r),d&&w(a)}}}function z$(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Max select"),s=O(),l=v("input"),p(e,"for",i=n[4]),p(l,"type","number"),p(l,"id",o=n[4]),p(l,"step","1"),p(l,"min","1"),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].maxSelect),r||(a=K(l,"input",n[3]),r=!0)},p(u,f){f&16&&i!==(i=u[4])&&p(e,"for",i),f&16&&o!==(o=u[4])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].maxSelect&&ce(l,u[0].maxSelect)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function B$(n){let e,t,i,s,l,o,r;return i=new ge({props:{class:"form-field required",name:"schema."+n[1]+".options.values",$$slots:{default:[V$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSelect",$$slots:{default:[z$,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),p(t,"class","col-sm-9"),p(l,"class","col-sm-3"),p(e,"class","grid")},m(a,u){S(a,e,u),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),r=!0},p(a,[u]){const f={};u&2&&(f.name="schema."+a[1]+".options.values"),u&49&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.maxSelect"),u&49&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){P(i.$$.fragment,a),P(o.$$.fragment,a),r=!1},d(a){a&&w(e),H(i),H(o)}}}function U$(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(r){n.$$.not_equal(s.values,r)&&(s.values=r,t(0,s))}function o(){s.maxSelect=rt(this.value),t(0,s)}return n.$$set=r=>{"key"in r&&t(1,i=r.key),"options"in r&&t(0,s=r.options)},n.$$.update=()=>{n.$$.dirty&1&&W.isEmpty(s)&&t(0,s={maxSelect:1,values:[]})},[s,i,l,o]}class W$ extends ye{constructor(e){super(),ve(this,e,U$,B$,be,{key:1,options:0})}}function Y$(n,e,t){return["",{}]}class K$ extends ye{constructor(e){super(),ve(this,e,Y$,null,be,{key:0,options:1})}get key(){return this.$$.ctx[0]}get options(){return this.$$.ctx[1]}}function J$(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Max file size (bytes)"),s=O(),l=v("input"),p(e,"for",i=n[10]),p(l,"type","number"),p(l,"id",o=n[10]),p(l,"step","1"),p(l,"min","0")},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].maxSize),r||(a=K(l,"input",n[2]),r=!0)},p(u,f){f&1024&&i!==(i=u[10])&&p(e,"for",i),f&1024&&o!==(o=u[10])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].maxSize&&ce(l,u[0].maxSize)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function Z$(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Max files"),s=O(),l=v("input"),p(e,"for",i=n[10]),p(l,"type","number"),p(l,"id",o=n[10]),p(l,"step","1"),p(l,"min",""),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].maxSelect),r||(a=K(l,"input",n[3]),r=!0)},p(u,f){f&1024&&i!==(i=u[10])&&p(e,"for",i),f&1024&&o!==(o=u[10])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].maxSelect&&ce(l,u[0].maxSelect)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function G$(n){let e,t,i,s,l,o,r,a,u;return{c(){e=v("div"),e.innerHTML='Documents (pdf, doc/docx, xls/xlsx)',t=O(),i=v("div"),i.innerHTML='Images (jpg, png, svg, gif)',s=O(),l=v("div"),l.innerHTML='Videos (mp4, avi, mov, 3gp)',o=O(),r=v("div"),r.innerHTML='Archives (zip, 7zip, rar)',p(e,"tabindex","0"),p(e,"class","dropdown-item closable"),p(i,"tabindex","0"),p(i,"class","dropdown-item closable"),p(l,"tabindex","0"),p(l,"class","dropdown-item closable"),p(r,"tabindex","0"),p(r,"class","dropdown-item closable")},m(f,c){S(f,e,c),S(f,t,c),S(f,i,c),S(f,s,c),S(f,l,c),S(f,o,c),S(f,r,c),a||(u=[K(e,"click",n[5]),K(i,"click",n[6]),K(l,"click",n[7]),K(r,"click",n[8])],a=!0)},p:te,d(f){f&&w(e),f&&w(t),f&&w(i),f&&w(s),f&&w(l),f&&w(o),f&&w(r),a=!1,Pe(u)}}}function X$(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T;function M(E){n[4](E)}let D={id:n[10],placeholder:"eg. image/png, application/pdf..."};return n[0].mimeTypes!==void 0&&(D.value=n[0].mimeTypes),r=new xi({props:D}),le.push(()=>_e(r,"value",M)),k=new Zn({props:{class:"dropdown dropdown-sm dropdown-nowrap",$$slots:{default:[G$]},$$scope:{ctx:n}}}),{c(){e=v("label"),t=v("span"),t.textContent="Mime types",i=O(),s=v("i"),o=O(),j(r.$$.fragment),u=O(),f=v("div"),c=v("span"),c.textContent="Use comma as separator.",d=O(),h=v("button"),m=v("span"),m.textContent="Choose presets",b=O(),g=v("i"),y=O(),j(k.$$.fragment),p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[10]),p(c,"class","txt"),p(m,"class","txt link-primary"),p(g,"class","ri-arrow-drop-down-fill"),p(h,"type","button"),p(h,"class","inline-flex flex-gap-0"),p(f,"class","help-block")},m(E,I){S(E,e,I),_(e,t),_(e,i),_(e,s),S(E,o,I),R(r,E,I),S(E,u,I),S(E,f,I),_(f,c),_(f,d),_(f,h),_(h,m),_(h,b),_(h,g),_(h,y),R(k,h,null),$=!0,C||(T=Ee(Be.call(null,s,{text:`Allow files ONLY with the listed mime types. - Leave empty for no restriction.`,position:"top"})),C=!0)},p(E,I){(!$||I&1024&&l!==(l=E[10]))&&p(e,"for",l);const L={};I&1024&&(L.id=E[10]),!a&&I&1&&(a=!0,L.value=E[0].mimeTypes,ke(()=>a=!1)),r.$set(L);const F={};I&2049&&(F.$$scope={dirty:I,ctx:E}),k.$set(F)},i(E){$||(A(r.$$.fragment,E),A(k.$$.fragment,E),$=!0)},o(E){P(r.$$.fragment,E),P(k.$$.fragment,E),$=!1},d(E){E&&w(e),E&&w(o),H(r,E),E&&w(u),E&&w(f),H(k),C=!1,T()}}}function Q$(n){let e;return{c(){e=v("ul"),e.innerHTML=`
  • WxH - (eg. 100x50) - crop to WxH viewbox (from center)
  • -
  • WxHt - (eg. 100x50t) - crop to WxH viewbox (from top)
  • -
  • WxHb - (eg. 100x50b) - crop to WxH viewbox (from bottom)
  • -
  • WxHf - (eg. 100x50f) - fit inside a WxH viewbox (without cropping)
  • -
  • 0xH - (eg. 0x50) - resize to H height preserving the aspect ratio
  • -
  • Wx0 - (eg. 100x0) - resize to W width preserving the aspect ratio
  • `,p(e,"class","m-0")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function x$(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T;function M(E){n[9](E)}let D={id:n[10],placeholder:"eg. 50x50, 480x720"};return n[0].thumbs!==void 0&&(D.value=n[0].thumbs),r=new xi({props:D}),le.push(()=>_e(r,"value",M)),k=new Zn({props:{class:"dropdown dropdown-sm dropdown-center dropdown-nowrap p-r-10",$$slots:{default:[Q$]},$$scope:{ctx:n}}}),{c(){e=v("label"),t=v("span"),t.textContent="Thumb sizes",i=O(),s=v("i"),o=O(),j(r.$$.fragment),u=O(),f=v("div"),c=v("span"),c.textContent="Use comma as separator.",d=O(),h=v("button"),m=v("span"),m.textContent="Supported formats",b=O(),g=v("i"),y=O(),j(k.$$.fragment),p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[10]),p(c,"class","txt"),p(m,"class","txt link-primary"),p(g,"class","ri-arrow-drop-down-fill"),p(h,"type","button"),p(h,"class","inline-flex flex-gap-0"),p(f,"class","help-block")},m(E,I){S(E,e,I),_(e,t),_(e,i),_(e,s),S(E,o,I),R(r,E,I),S(E,u,I),S(E,f,I),_(f,c),_(f,d),_(f,h),_(h,m),_(h,b),_(h,g),_(h,y),R(k,h,null),$=!0,C||(T=Ee(Be.call(null,s,{text:"List of additional thumb sizes for image files, along with the default thumb size of 100x100. The thumbs are generated lazily on first access.",position:"top"})),C=!0)},p(E,I){(!$||I&1024&&l!==(l=E[10]))&&p(e,"for",l);const L={};I&1024&&(L.id=E[10]),!a&&I&1&&(a=!0,L.value=E[0].thumbs,ke(()=>a=!1)),r.$set(L);const F={};I&2048&&(F.$$scope={dirty:I,ctx:E}),k.$set(F)},i(E){$||(A(r.$$.fragment,E),A(k.$$.fragment,E),$=!0)},o(E){P(r.$$.fragment,E),P(k.$$.fragment,E),$=!1},d(E){E&&w(e),E&&w(o),H(r,E),E&&w(u),E&&w(f),H(k),C=!1,T()}}}function eC(n){let e,t,i,s,l,o,r,a,u,f,c,d,h;return i=new ge({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSize",$$slots:{default:[J$,({uniqueId:m})=>({10:m}),({uniqueId:m})=>m?1024:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSelect",$$slots:{default:[Z$,({uniqueId:m})=>({10:m}),({uniqueId:m})=>m?1024:0]},$$scope:{ctx:n}}}),u=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.mimeTypes",$$slots:{default:[X$,({uniqueId:m})=>({10:m}),({uniqueId:m})=>m?1024:0]},$$scope:{ctx:n}}}),d=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.thumbs",$$slots:{default:[x$,({uniqueId:m})=>({10:m}),({uniqueId:m})=>m?1024:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),a=v("div"),j(u.$$.fragment),f=O(),c=v("div"),j(d.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(a,"class","col-sm-12"),p(c,"class","col-sm-12"),p(e,"class","grid")},m(m,b){S(m,e,b),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),_(e,r),_(e,a),R(u,a,null),_(e,f),_(e,c),R(d,c,null),h=!0},p(m,[b]){const g={};b&2&&(g.name="schema."+m[1]+".options.maxSize"),b&3073&&(g.$$scope={dirty:b,ctx:m}),i.$set(g);const y={};b&2&&(y.name="schema."+m[1]+".options.maxSelect"),b&3073&&(y.$$scope={dirty:b,ctx:m}),o.$set(y);const k={};b&2&&(k.name="schema."+m[1]+".options.mimeTypes"),b&3073&&(k.$$scope={dirty:b,ctx:m}),u.$set(k);const $={};b&2&&($.name="schema."+m[1]+".options.thumbs"),b&3073&&($.$$scope={dirty:b,ctx:m}),d.$set($)},i(m){h||(A(i.$$.fragment,m),A(o.$$.fragment,m),A(u.$$.fragment,m),A(d.$$.fragment,m),h=!0)},o(m){P(i.$$.fragment,m),P(o.$$.fragment,m),P(u.$$.fragment,m),P(d.$$.fragment,m),h=!1},d(m){m&&w(e),H(i),H(o),H(u),H(d)}}}function tC(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(){s.maxSize=rt(this.value),t(0,s)}function o(){s.maxSelect=rt(this.value),t(0,s)}function r(h){n.$$.not_equal(s.mimeTypes,h)&&(s.mimeTypes=h,t(0,s))}const a=()=>{t(0,s.mimeTypes=["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],s)},u=()=>{t(0,s.mimeTypes=["image/jpg","image/jpeg","image/png","image/svg+xml","image/gif"],s)},f=()=>{t(0,s.mimeTypes=["video/mp4","video/x-ms-wmv","video/quicktime","video/3gpp"],s)},c=()=>{t(0,s.mimeTypes=["application/zip","application/x-7z-compressed","application/x-rar-compressed"],s)};function d(h){n.$$.not_equal(s.thumbs,h)&&(s.thumbs=h,t(0,s))}return n.$$set=h=>{"key"in h&&t(1,i=h.key),"options"in h&&t(0,s=h.options)},n.$$.update=()=>{n.$$.dirty&1&&W.isEmpty(s)&&t(0,s={maxSelect:1,maxSize:5242880,thumbs:[],mimeTypes:[]})},[s,i,l,o,r,a,u,f,c,d]}class nC extends ye{constructor(e){super(),ve(this,e,tC,eC,be,{key:1,options:0})}}function iC(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='New collection',p(e,"type","button"),p(e,"class","btn btn-warning btn-block btn-sm m-t-5")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[7]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function sC(n){let e,t,i,s,l,o,r;function a(f){n[8](f)}let u={searchable:n[3].length>5,selectPlaceholder:n[2]?"Loading...":"Select collection",noOptionsText:"No collections found",selectionKey:"id",items:n[3],$$slots:{afterOptions:[iC]},$$scope:{ctx:n}};return n[0].collectionId!==void 0&&(u.keyOfSelected=n[0].collectionId),l=new Es({props:u}),le.push(()=>_e(l,"keyOfSelected",a)),{c(){e=v("label"),t=B("Collection"),s=O(),j(l.$$.fragment),p(e,"for",i=n[13])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&8192&&i!==(i=f[13]))&&p(e,"for",i);const d={};c&8&&(d.searchable=f[3].length>5),c&4&&(d.selectPlaceholder=f[2]?"Loading...":"Select collection"),c&8&&(d.items=f[3]),c&16400&&(d.$$scope={dirty:c,ctx:f}),!o&&c&1&&(o=!0,d.keyOfSelected=f[0].collectionId,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function lC(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=v("span"),t.textContent="Max select",i=O(),s=v("i"),o=O(),r=v("input"),p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[13]),p(r,"type","number"),p(r,"id",a=n[13]),p(r,"step","1"),p(r,"min","1")},m(c,d){S(c,e,d),_(e,t),_(e,i),_(e,s),S(c,o,d),S(c,r,d),ce(r,n[0].maxSelect),u||(f=[Ee(Be.call(null,s,{text:"Leave empty for no limit.",position:"top"})),K(r,"input",n[9])],u=!0)},p(c,d){d&8192&&l!==(l=c[13])&&p(e,"for",l),d&8192&&a!==(a=c[13])&&p(r,"id",a),d&1&&rt(r.value)!==c[0].maxSelect&&ce(r,c[0].maxSelect)},d(c){c&&w(e),c&&w(o),c&&w(r),u=!1,Pe(f)}}}function oC(n){let e,t,i,s,l,o,r;function a(f){n[10](f)}let u={id:n[13],items:n[5]};return n[0].cascadeDelete!==void 0&&(u.keyOfSelected=n[0].cascadeDelete),l=new Es({props:u}),le.push(()=>_e(l,"keyOfSelected",a)),{c(){e=v("label"),t=B("Delete record on relation delete"),s=O(),j(l.$$.fragment),p(e,"for",i=n[13])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&8192&&i!==(i=f[13]))&&p(e,"for",i);const d={};c&8192&&(d.id=f[13]),!o&&c&1&&(o=!0,d.keyOfSelected=f[0].cascadeDelete,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function rC(n){let e,t,i,s,l,o,r,a,u,f,c,d;i=new ge({props:{class:"form-field required",name:"schema."+n[1]+".options.collectionId",$$slots:{default:[sC,({uniqueId:m})=>({13:m}),({uniqueId:m})=>m?8192:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.maxSelect",$$slots:{default:[lC,({uniqueId:m})=>({13:m}),({uniqueId:m})=>m?8192:0]},$$scope:{ctx:n}}}),u=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.cascadeDelete",$$slots:{default:[oC,({uniqueId:m})=>({13:m}),({uniqueId:m})=>m?8192:0]},$$scope:{ctx:n}}});let h={};return c=new Ja({props:h}),n[11](c),c.$on("save",n[12]),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),a=v("div"),j(u.$$.fragment),f=O(),j(c.$$.fragment),p(t,"class","col-sm-9"),p(l,"class","col-sm-3"),p(a,"class","col-sm-12"),p(e,"class","grid")},m(m,b){S(m,e,b),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),_(e,r),_(e,a),R(u,a,null),S(m,f,b),R(c,m,b),d=!0},p(m,[b]){const g={};b&2&&(g.name="schema."+m[1]+".options.collectionId"),b&24605&&(g.$$scope={dirty:b,ctx:m}),i.$set(g);const y={};b&2&&(y.name="schema."+m[1]+".options.maxSelect"),b&24577&&(y.$$scope={dirty:b,ctx:m}),o.$set(y);const k={};b&2&&(k.name="schema."+m[1]+".options.cascadeDelete"),b&24577&&(k.$$scope={dirty:b,ctx:m}),u.$set(k);const $={};c.$set($)},i(m){d||(A(i.$$.fragment,m),A(o.$$.fragment,m),A(u.$$.fragment,m),A(c.$$.fragment,m),d=!0)},o(m){P(i.$$.fragment,m),P(o.$$.fragment,m),P(u.$$.fragment,m),P(c.$$.fragment,m),d=!1},d(m){m&&w(e),H(i),H(o),H(u),m&&w(f),n[11](null),H(c,m)}}}function aC(n,e,t){let{key:i=""}=e,{options:s={}}=e;const l=[{label:"False",value:!1},{label:"True",value:!0}];let o=!1,r=[],a=null;u();async function u(){t(2,o=!0);try{const g=await de.collections.getFullList(200,{sort:"created"});t(3,r=W.sortCollections(g))}catch(g){de.errorResponseHandler(g)}t(2,o=!1)}const f=()=>a==null?void 0:a.show();function c(g){n.$$.not_equal(s.collectionId,g)&&(s.collectionId=g,t(0,s))}function d(){s.maxSelect=rt(this.value),t(0,s)}function h(g){n.$$.not_equal(s.cascadeDelete,g)&&(s.cascadeDelete=g,t(0,s))}function m(g){le[g?"unshift":"push"](()=>{a=g,t(4,a)})}const b=g=>{var y,k;(k=(y=g==null?void 0:g.detail)==null?void 0:y.collection)!=null&&k.id&&t(0,s.collectionId=g.detail.collection.id,s),u()};return n.$$set=g=>{"key"in g&&t(1,i=g.key),"options"in g&&t(0,s=g.options)},n.$$.update=()=>{n.$$.dirty&1&&W.isEmpty(s)&&t(0,s={maxSelect:1,collectionId:null,cascadeDelete:!1})},[s,i,o,r,a,l,u,f,c,d,h,m,b]}class uC extends ye{constructor(e){super(),ve(this,e,aC,rC,be,{key:1,options:0})}}function fC(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Max select"),s=O(),l=v("input"),p(e,"for",i=n[5]),p(l,"type","number"),p(l,"id",o=n[5]),p(l,"step","1"),p(l,"min","1"),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].maxSelect),r||(a=K(l,"input",n[3]),r=!0)},p(u,f){f&32&&i!==(i=u[5])&&p(e,"for",i),f&32&&o!==(o=u[5])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].maxSelect&&ce(l,u[0].maxSelect)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function cC(n){let e,t,i,s,l,o,r;function a(f){n[4](f)}let u={id:n[5],items:n[2]};return n[0].cascadeDelete!==void 0&&(u.keyOfSelected=n[0].cascadeDelete),l=new Es({props:u}),le.push(()=>_e(l,"keyOfSelected",a)),{c(){e=v("label"),t=B("Delete record on user delete"),s=O(),j(l.$$.fragment),p(e,"for",i=n[5])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&32&&i!==(i=f[5]))&&p(e,"for",i);const d={};c&32&&(d.id=f[5]),!o&&c&1&&(o=!0,d.keyOfSelected=f[0].cascadeDelete,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function dC(n){let e,t,i,s,l,o,r;return i=new ge({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSelect",$$slots:{default:[fC,({uniqueId:a})=>({5:a}),({uniqueId:a})=>a?32:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field",name:"schema."+n[1]+".options.cascadeDelete",$$slots:{default:[cC,({uniqueId:a})=>({5:a}),({uniqueId:a})=>a?32:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(e,"class","grid")},m(a,u){S(a,e,u),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),r=!0},p(a,[u]){const f={};u&2&&(f.name="schema."+a[1]+".options.maxSelect"),u&97&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.cascadeDelete"),u&97&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){P(i.$$.fragment,a),P(o.$$.fragment,a),r=!1},d(a){a&&w(e),H(i),H(o)}}}function pC(n,e,t){const i=[{label:"False",value:!1},{label:"True",value:!0}];let{key:s=""}=e,{options:l={}}=e;function o(){l.maxSelect=rt(this.value),t(0,l)}function r(a){n.$$.not_equal(l.cascadeDelete,a)&&(l.cascadeDelete=a,t(0,l))}return n.$$set=a=>{"key"in a&&t(1,s=a.key),"options"in a&&t(0,l=a.options)},n.$$.update=()=>{n.$$.dirty&1&&W.isEmpty(l)&&t(0,l={maxSelect:1,cascadeDelete:!1})},[l,s,i,o,r]}class hC extends ye{constructor(e){super(),ve(this,e,pC,dC,be,{key:1,options:0})}}function mC(n){let e,t,i,s,l,o,r;function a(f){n[17](f)}let u={id:n[43],disabled:n[0].id};return n[0].type!==void 0&&(u.value=n[0].type),l=new i$({props:u}),le.push(()=>_e(l,"value",a)),{c(){e=v("label"),t=B("Type"),s=O(),j(l.$$.fragment),p(e,"for",i=n[43])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c[1]&4096&&i!==(i=f[43]))&&p(e,"for",i);const d={};c[1]&4096&&(d.id=f[43]),c[0]&1&&(d.disabled=f[0].id),!o&&c[0]&1&&(o=!0,d.value=f[0].type,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function qc(n){let e,t,i;return{c(){e=v("span"),e.textContent="Duplicated or invalid name",p(e,"class","txt invalid-name-note svelte-1tpxlm5")},m(s,l){S(s,e,l),i=!0},i(s){i||(xe(()=>{t||(t=je(e,Sn,{duration:150,x:5},!0)),t.run(1)}),i=!0)},o(s){t||(t=je(e,Sn,{duration:150,x:5},!1)),t.run(0),i=!1},d(s){s&&w(e),s&&t&&t.end()}}}function gC(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m=!n[5]&&qc();return{c(){e=v("label"),t=v("span"),t.textContent="Name",i=O(),m&&m.c(),l=O(),o=v("input"),p(t,"class","txt"),p(e,"for",s=n[43]),p(o,"type","text"),p(o,"id",r=n[43]),o.required=!0,o.disabled=a=n[0].id&&n[0].system,p(o,"spellcheck","false"),o.autofocus=u=!n[0].id,o.value=f=n[0].name},m(b,g){S(b,e,g),_(e,t),_(e,i),m&&m.m(e,null),S(b,l,g),S(b,o,g),c=!0,n[0].id||o.focus(),d||(h=K(o,"input",n[18]),d=!0)},p(b,g){b[5]?m&&(pe(),P(m,1,1,()=>{m=null}),he()):m?g[0]&32&&A(m,1):(m=qc(),m.c(),A(m,1),m.m(e,null)),(!c||g[1]&4096&&s!==(s=b[43]))&&p(e,"for",s),(!c||g[1]&4096&&r!==(r=b[43]))&&p(o,"id",r),(!c||g[0]&1&&a!==(a=b[0].id&&b[0].system))&&(o.disabled=a),(!c||g[0]&1&&u!==(u=!b[0].id))&&(o.autofocus=u),(!c||g[0]&1&&f!==(f=b[0].name)&&o.value!==f)&&(o.value=f)},i(b){c||(A(m),c=!0)},o(b){P(m),c=!1},d(b){b&&w(e),m&&m.d(),b&&w(l),b&&w(o),d=!1,h()}}}function _C(n){let e,t,i;function s(o){n[29](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new hC({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function bC(n){let e,t,i;function s(o){n[28](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new uC({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function vC(n){let e,t,i;function s(o){n[27](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new nC({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function yC(n){let e,t,i;function s(o){n[26](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new K$({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function kC(n){let e,t,i;function s(o){n[25](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new W$({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function wC(n){let e,t,i;function s(o){n[24](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new q$({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function SC(n){let e,t,i;function s(o){n[23](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new C$({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function $C(n){let e,t,i;function s(o){n[22](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new F_({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function CC(n){let e,t,i;function s(o){n[21](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new g$({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function TC(n){let e,t,i;function s(o){n[20](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new h$({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function MC(n){let e,t,i;function s(o){n[19](o)}let l={key:n[1]};return n[0].options!==void 0&&(l.options=n[0].options),e=new u$({props:l}),le.push(()=>_e(e,"options",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[0]&2&&(a.key=o[1]),!t&&r[0]&1&&(t=!0,a.options=o[0].options,ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function OC(n){let e,t,i,s,l,o,r,a,u,f,c;return{c(){e=v("input"),i=O(),s=v("label"),l=v("span"),l.textContent="Nonempty",o=O(),r=v("i"),p(e,"type","checkbox"),p(e,"id",t=n[43]),p(l,"class","txt"),p(r,"class","ri-information-line link-hint"),p(s,"for",u=n[43])},m(d,h){S(d,e,h),e.checked=n[0].required,S(d,i,h),S(d,s,h),_(s,l),_(s,o),_(s,r),f||(c=[K(e,"change",n[30]),Ee(a=Be.call(null,r,{text:`Requires the field value to be nonempty -(aka. not ${W.zeroDefaultStr(n[0])}).`,position:"right"}))],f=!0)},p(d,h){h[1]&4096&&t!==(t=d[43])&&p(e,"id",t),h[0]&1&&(e.checked=d[0].required),a&&Jt(a.update)&&h[0]&1&&a.update.call(null,{text:`Requires the field value to be nonempty -(aka. not ${W.zeroDefaultStr(d[0])}).`,position:"right"}),h[1]&4096&&u!==(u=d[43])&&p(s,"for",u)},d(d){d&&w(e),d&&w(i),d&&w(s),f=!1,Pe(c)}}}function Vc(n){let e,t;return e=new ge({props:{class:"form-field form-field-toggle m-0",name:"unique",$$slots:{default:[DC,({uniqueId:i})=>({43:i}),({uniqueId:i})=>[0,i?4096:0]]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s[0]&1|s[1]&12288&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function DC(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Unique"),p(e,"type","checkbox"),p(e,"id",t=n[43]),p(s,"for",o=n[43])},m(u,f){S(u,e,f),e.checked=n[0].unique,S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[31]),r=!0)},p(u,f){f[1]&4096&&t!==(t=u[43])&&p(e,"id",t),f[0]&1&&(e.checked=u[0].unique),f[1]&4096&&o!==(o=u[43])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function zc(n){let e,t,i,s,l,o,r,a,u,f;a=new Zn({props:{class:"dropdown dropdown-sm dropdown-upside dropdown-right dropdown-nowrap no-min-width",$$slots:{default:[AC]},$$scope:{ctx:n}}});let c=n[8]&&Bc(n);return{c(){e=v("div"),t=v("div"),i=O(),s=v("div"),l=v("button"),o=v("i"),r=O(),j(a.$$.fragment),u=O(),c&&c.c(),p(t,"class","flex-fill"),p(o,"class","ri-more-line"),p(l,"type","button"),p(l,"class","btn btn-circle btn-sm btn-secondary"),p(s,"class","inline-flex flex-gap-sm flex-nowrap"),p(e,"class","col-sm-4 txt-right")},m(d,h){S(d,e,h),_(e,t),_(e,i),_(e,s),_(s,l),_(l,o),_(l,r),R(a,l,null),_(s,u),c&&c.m(s,null),f=!0},p(d,h){const m={};h[1]&8192&&(m.$$scope={dirty:h,ctx:d}),a.$set(m),d[8]?c?c.p(d,h):(c=Bc(d),c.c(),c.m(s,null)):c&&(c.d(1),c=null)},i(d){f||(A(a.$$.fragment,d),f=!0)},o(d){P(a.$$.fragment,d),f=!1},d(d){d&&w(e),H(a),c&&c.d()}}}function AC(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Remove',p(e,"type","button"),p(e,"class","dropdown-item txt-right")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[9]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function Bc(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Done',p(e,"type","button"),p(e,"class","btn btn-sm btn-outline btn-expanded-sm")},m(s,l){S(s,e,l),t||(i=K(e,"click",Yn(n[3])),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function EC(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M;s=new ge({props:{class:"form-field required "+(n[0].id?"disabled":""),name:"schema."+n[1]+".type",$$slots:{default:[mC,({uniqueId:q})=>({43:q}),({uniqueId:q})=>[0,q?4096:0]]},$$scope:{ctx:n}}}),r=new ge({props:{class:` - form-field - required - `+(n[5]?"":"invalid")+` - `+(n[0].id&&n[0].system?"disabled":"")+` - `,name:"schema."+n[1]+".name",$$slots:{default:[gC,({uniqueId:q})=>({43:q}),({uniqueId:q})=>[0,q?4096:0]]},$$scope:{ctx:n}}});const D=[MC,TC,CC,$C,SC,wC,kC,yC,vC,bC,_C],E=[];function I(q,z){return q[0].type==="text"?0:q[0].type==="number"?1:q[0].type==="bool"?2:q[0].type==="email"?3:q[0].type==="url"?4:q[0].type==="date"?5:q[0].type==="select"?6:q[0].type==="json"?7:q[0].type==="file"?8:q[0].type==="relation"?9:q[0].type==="user"?10:-1}~(f=I(n))&&(c=E[f]=D[f](n)),m=new ge({props:{class:"form-field form-field-toggle m-0",name:"requried",$$slots:{default:[OC,({uniqueId:q})=>({43:q}),({uniqueId:q})=>[0,q?4096:0]]},$$scope:{ctx:n}}});let L=n[0].type!=="file"&&Vc(n),F=!n[0].toDelete&&zc(n);return{c(){e=v("form"),t=v("div"),i=v("div"),j(s.$$.fragment),l=O(),o=v("div"),j(r.$$.fragment),a=O(),u=v("div"),c&&c.c(),d=O(),h=v("div"),j(m.$$.fragment),b=O(),g=v("div"),L&&L.c(),y=O(),F&&F.c(),k=O(),$=v("input"),p(i,"class","col-sm-6"),p(o,"class","col-sm-6"),p(u,"class","col-sm-12 hidden-empty"),p(h,"class","col-sm-4 flex"),p(g,"class","col-sm-4 flex"),p(t,"class","grid"),p($,"type","submit"),p($,"class","hidden"),p($,"tabindex","-1"),p(e,"class","field-form")},m(q,z){S(q,e,z),_(e,t),_(t,i),R(s,i,null),_(t,l),_(t,o),R(r,o,null),_(t,a),_(t,u),~f&&E[f].m(u,null),_(t,d),_(t,h),R(m,h,null),_(t,b),_(t,g),L&&L.m(g,null),_(t,y),F&&F.m(t,null),_(e,k),_(e,$),C=!0,T||(M=[K(e,"dragstart",LC),K(e,"submit",ut(n[32]))],T=!0)},p(q,z){const J={};z[0]&1&&(J.class="form-field required "+(q[0].id?"disabled":"")),z[0]&2&&(J.name="schema."+q[1]+".type"),z[0]&1|z[1]&12288&&(J.$$scope={dirty:z,ctx:q}),s.$set(J);const G={};z[0]&33&&(G.class=` - form-field - required - `+(q[5]?"":"invalid")+` - `+(q[0].id&&q[0].system?"disabled":"")+` - `),z[0]&2&&(G.name="schema."+q[1]+".name"),z[0]&33|z[1]&12288&&(G.$$scope={dirty:z,ctx:q}),r.$set(G);let X=f;f=I(q),f===X?~f&&E[f].p(q,z):(c&&(pe(),P(E[X],1,1,()=>{E[X]=null}),he()),~f?(c=E[f],c?c.p(q,z):(c=E[f]=D[f](q),c.c()),A(c,1),c.m(u,null)):c=null);const Q={};z[0]&1|z[1]&12288&&(Q.$$scope={dirty:z,ctx:q}),m.$set(Q),q[0].type!=="file"?L?(L.p(q,z),z[0]&1&&A(L,1)):(L=Vc(q),L.c(),A(L,1),L.m(g,null)):L&&(pe(),P(L,1,1,()=>{L=null}),he()),q[0].toDelete?F&&(pe(),P(F,1,1,()=>{F=null}),he()):F?(F.p(q,z),z[0]&1&&A(F,1)):(F=zc(q),F.c(),A(F,1),F.m(t,null))},i(q){C||(A(s.$$.fragment,q),A(r.$$.fragment,q),A(c),A(m.$$.fragment,q),A(L),A(F),C=!0)},o(q){P(s.$$.fragment,q),P(r.$$.fragment,q),P(c),P(m.$$.fragment,q),P(L),P(F),C=!1},d(q){q&&w(e),H(s),H(r),~f&&E[f].d(),H(m),L&&L.d(),F&&F.d(),T=!1,Pe(M)}}}function Uc(n){let e,t,i,s,l=n[0].system&&Wc(),o=!n[0].id&&Yc(n),r=n[0].required&&Kc(),a=n[0].unique&&Jc();return{c(){e=v("div"),l&&l.c(),t=O(),o&&o.c(),i=O(),r&&r.c(),s=O(),a&&a.c(),p(e,"class","inline-flex")},m(u,f){S(u,e,f),l&&l.m(e,null),_(e,t),o&&o.m(e,null),_(e,i),r&&r.m(e,null),_(e,s),a&&a.m(e,null)},p(u,f){u[0].system?l||(l=Wc(),l.c(),l.m(e,t)):l&&(l.d(1),l=null),u[0].id?o&&(o.d(1),o=null):o?o.p(u,f):(o=Yc(u),o.c(),o.m(e,i)),u[0].required?r||(r=Kc(),r.c(),r.m(e,s)):r&&(r.d(1),r=null),u[0].unique?a||(a=Jc(),a.c(),a.m(e,null)):a&&(a.d(1),a=null)},d(u){u&&w(e),l&&l.d(),o&&o.d(),r&&r.d(),a&&a.d()}}}function Wc(n){let e;return{c(){e=v("span"),e.textContent="System",p(e,"class","label label-danger")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Yc(n){let e;return{c(){e=v("span"),e.textContent="New",p(e,"class","label"),ne(e,"label-warning",n[8]&&!n[0].toDelete)},m(t,i){S(t,e,i)},p(t,i){i[0]&257&&ne(e,"label-warning",t[8]&&!t[0].toDelete)},d(t){t&&w(e)}}}function Kc(n){let e;return{c(){e=v("span"),e.textContent="Nonempty",p(e,"class","label label-success")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Jc(n){let e;return{c(){e=v("span"),e.textContent="Unique",p(e,"class","label label-success")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Zc(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function Gc(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Restore',p(e,"type","button"),p(e,"class","btn btn-sm btn-danger btn-secondary")},m(s,l){S(s,e,l),t||(i=K(e,"click",Yn(n[16])),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function IC(n){let e,t,i,s,l,o,r=(n[0].name||"-")+"",a,u,f,c,d,h,m,b,g,y=!n[0].toDelete&&Uc(n),k=n[7]&&!n[0].system&&Zc(),$=n[0].toDelete&&Gc(n);return{c(){e=v("div"),t=v("span"),i=v("i"),l=O(),o=v("strong"),a=B(r),f=O(),y&&y.c(),c=O(),d=v("div"),h=O(),k&&k.c(),m=O(),$&&$.c(),b=Ae(),p(i,"class",s=fo(W.getFieldTypeIcon(n[0].type))+" svelte-1tpxlm5"),p(t,"class","icon field-type"),p(o,"class","title field-name svelte-1tpxlm5"),p(o,"title",u=n[0].name),ne(o,"txt-strikethrough",n[0].toDelete),p(e,"class","inline-flex"),p(d,"class","flex-fill")},m(C,T){S(C,e,T),_(e,t),_(t,i),_(e,l),_(e,o),_(o,a),S(C,f,T),y&&y.m(C,T),S(C,c,T),S(C,d,T),S(C,h,T),k&&k.m(C,T),S(C,m,T),$&&$.m(C,T),S(C,b,T),g=!0},p(C,T){(!g||T[0]&1&&s!==(s=fo(W.getFieldTypeIcon(C[0].type))+" svelte-1tpxlm5"))&&p(i,"class",s),(!g||T[0]&1)&&r!==(r=(C[0].name||"-")+"")&&ae(a,r),(!g||T[0]&1&&u!==(u=C[0].name))&&p(o,"title",u),(!g||T[0]&1)&&ne(o,"txt-strikethrough",C[0].toDelete),C[0].toDelete?y&&(y.d(1),y=null):y?y.p(C,T):(y=Uc(C),y.c(),y.m(c.parentNode,c)),C[7]&&!C[0].system?k?T[0]&129&&A(k,1):(k=Zc(),k.c(),A(k,1),k.m(m.parentNode,m)):k&&(pe(),P(k,1,1,()=>{k=null}),he()),C[0].toDelete?$?$.p(C,T):($=Gc(C),$.c(),$.m(b.parentNode,b)):$&&($.d(1),$=null)},i(C){g||(A(k),g=!0)},o(C){P(k),g=!1},d(C){C&&w(e),C&&w(f),y&&y.d(C),C&&w(c),C&&w(d),C&&w(h),k&&k.d(C),C&&w(m),$&&$.d(C),C&&w(b)}}}function PC(n){let e,t;const i=[{draggable:!0},{single:!0},{interactive:n[8]},{class:n[2]||n[0].toDelete||n[0].system?"field-accordion disabled":"field-accordion"},n[11]];let s={$$slots:{header:[IC],default:[EC]},$$scope:{ctx:n}};for(let l=0;l{n.stopPropagation(),n.preventDefault(),n.stopImmediatePropagation()};function NC(n,e,t){let i,s,l,o;const r=["key","field","disabled","excludeNames","expand","collapse"];let a=wt(e,r),u;Ze(n,wi,ue=>t(15,u=ue));const f=It();let{key:c="0"}=e,{field:d=new dn}=e,{disabled:h=!1}=e,{excludeNames:m=[]}=e,b,g=d.type;function y(){b==null||b.expand()}function k(){b==null||b.collapse()}function $(){d.id?t(0,d.toDelete=!0,d):(k(),f("remove"))}function C(ue){if(ue=(""+ue).toLowerCase(),!ue)return!1;for(const se of m)if(se.toLowerCase()===ue)return!1;return!0}function T(ue){return W.slugify(ue)}cn(()=>{d.id||y()});const M=()=>{t(0,d.toDelete=!1,d)};function D(ue){n.$$.not_equal(d.type,ue)&&(d.type=ue,t(0,d),t(14,g),t(4,b))}const E=ue=>{t(0,d.name=T(ue.target.value),d),ue.target.value=d.name};function I(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function L(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function F(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function q(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function z(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function J(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function G(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function X(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function Q(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function ie(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function Y(ue){n.$$.not_equal(d.options,ue)&&(d.options=ue,t(0,d),t(14,g),t(4,b))}function x(){d.required=this.checked,t(0,d),t(14,g),t(4,b)}function U(){d.unique=this.checked,t(0,d),t(14,g),t(4,b)}const re=()=>{i&&k()};function Re(ue){le[ue?"unshift":"push"](()=>{b=ue,t(4,b)})}function Ne(ue){Ve.call(this,n,ue)}function Le(ue){Ve.call(this,n,ue)}function Fe(ue){Ve.call(this,n,ue)}function me(ue){Ve.call(this,n,ue)}function Se(ue){Ve.call(this,n,ue)}function we(ue){Ve.call(this,n,ue)}function We(ue){Ve.call(this,n,ue)}return n.$$set=ue=>{e=Ke(Ke({},e),Wn(ue)),t(11,a=wt(e,r)),"key"in ue&&t(1,c=ue.key),"field"in ue&&t(0,d=ue.field),"disabled"in ue&&t(2,h=ue.disabled),"excludeNames"in ue&&t(12,m=ue.excludeNames)},n.$$.update=()=>{n.$$.dirty[0]&16385&&g!=d.type&&(t(14,g=d.type),t(0,d.options={},d),t(0,d.unique=!1,d)),n.$$.dirty[0]&17&&d.toDelete&&(b&&k(),d.originalName&&d.name!==d.originalName&&t(0,d.name=d.originalName,d)),n.$$.dirty[0]&1&&!d.originalName&&d.name&&t(0,d.originalName=d.name,d),n.$$.dirty[0]&1&&typeof d.toDelete>"u"&&t(0,d.toDelete=!1,d),n.$$.dirty[0]&1&&d.required&&t(0,d.nullable=!1,d),n.$$.dirty[0]&1&&t(6,i=!W.isEmpty(d.name)&&d.type),n.$$.dirty[0]&80&&(i||b&&y()),n.$$.dirty[0]&69&&t(8,s=!h&&!d.system&&!d.toDelete&&i),n.$$.dirty[0]&1&&t(5,l=C(d.name)),n.$$.dirty[0]&32802&&t(7,o=!l||!W.isEmpty(W.getNestedVal(u,`schema.${c}`)))},[d,c,h,k,b,l,i,o,s,$,T,a,m,y,g,u,M,D,E,I,L,F,q,z,J,G,X,Q,ie,Y,x,U,re,Re,Ne,Le,Fe,me,Se,we,We]}class FC extends ye{constructor(e){super(),ve(this,e,NC,PC,be,{key:1,field:0,disabled:2,excludeNames:12,expand:13,collapse:3},null,[-1,-1])}get expand(){return this.$$.ctx[13]}get collapse(){return this.$$.ctx[3]}}function Xc(n,e,t){const i=n.slice();return i[13]=e[t],i[14]=e,i[15]=t,i}function Qc(n){let e,t,i,s,l,o,r,a;return{c(){e=B(`, - `),t=v("code"),t.textContent="username",i=B(` , - `),s=v("code"),s.textContent="email",l=B(` , - `),o=v("code"),o.textContent="emailVisibility",r=B(` , - `),a=v("code"),a.textContent="verified",p(t,"class","txt-sm"),p(s,"class","txt-sm"),p(o,"class","txt-sm"),p(a,"class","txt-sm")},m(u,f){S(u,e,f),S(u,t,f),S(u,i,f),S(u,s,f),S(u,l,f),S(u,o,f),S(u,r,f),S(u,a,f)},d(u){u&&w(e),u&&w(t),u&&w(i),u&&w(s),u&&w(l),u&&w(o),u&&w(r),u&&w(a)}}}function xc(n,e){let t,i,s,l;function o(c){e[6](c,e[13],e[14],e[15])}function r(){return e[7](e[15])}function a(...c){return e[8](e[15],...c)}function u(...c){return e[9](e[15],...c)}let f={key:e[15],excludeNames:e[1].concat(e[4](e[13]))};return e[13]!==void 0&&(f.field=e[13]),i=new FC({props:f}),le.push(()=>_e(i,"field",o)),i.$on("remove",r),i.$on("dragstart",a),i.$on("drop",u),{key:n,first:null,c(){t=Ae(),j(i.$$.fragment),this.first=t},m(c,d){S(c,t,d),R(i,c,d),l=!0},p(c,d){e=c;const h={};d&1&&(h.key=e[15]),d&3&&(h.excludeNames=e[1].concat(e[4](e[13]))),!s&&d&1&&(s=!0,h.field=e[13],ke(()=>s=!1)),i.$set(h)},i(c){l||(A(i.$$.fragment,c),l=!0)},o(c){P(i.$$.fragment,c),l=!1},d(c){c&&w(t),H(i,c)}}}function RC(n){let e,t,i,s,l,o,r,a,u,f,c,d,h=[],m=new Map,b,g,y,k,$,C,T,M,D,E,I,L=n[0].isAuth&&Qc(),F=n[0].schema;const q=z=>z[13];for(let z=0;zy.name===g)}function f(g){let y=[];if(g.toDelete)return y;for(let k of i.schema)k===g||k.toDelete||y.push(k.name);return y}function c(g,y){if(!g)return;g.dataTransfer.dropEffect="move";const k=parseInt(g.dataTransfer.getData("text/plain")),$=i.schema;ko(g),m=(g,y)=>HC(y==null?void 0:y.detail,g),b=(g,y)=>c(y==null?void 0:y.detail,g);return n.$$set=g=>{"collection"in g&&t(0,i=g.collection)},n.$$.update=()=>{n.$$.dirty&1&&typeof(i==null?void 0:i.schema)>"u"&&(t(0,i=i||{}),t(0,i.schema=[],i)),n.$$.dirty&1&&(i.isAuth?t(1,l=s.concat(["username","email","emailVisibility","verified","tokenKey","passwordHash","lastResetSentAt","lastVerificationSentAt","password","passwordConfirm","oldPassword"])):t(1,l=s.slice(0)))},[i,l,o,r,f,c,d,h,m,b]}class qC extends ye{constructor(e){super(),ve(this,e,jC,RC,be,{collection:0})}}const VC=n=>({isAdminOnly:n&512}),ed=n=>({isAdminOnly:n[9]});function zC(n){let e,t,i,s;function l(a,u){return a[9]?WC:UC}let o=l(n),r=o(n);return i=new ge({props:{class:"form-field rule-field m-0 "+(n[4]?"requied":"")+" "+(n[9]?"disabled":""),name:n[3],$$slots:{default:[ZC,({uniqueId:a})=>({17:a}),({uniqueId:a})=>a?131072:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),r.c(),t=O(),j(i.$$.fragment),p(e,"class","rule-block svelte-fjxz7k")},m(a,u){S(a,e,u),r.m(e,null),_(e,t),R(i,e,null),s=!0},p(a,u){o===(o=l(a))&&r?r.p(a,u):(r.d(1),r=o(a),r&&(r.c(),r.m(e,t)));const f={};u&528&&(f.class="form-field rule-field m-0 "+(a[4]?"requied":"")+" "+(a[9]?"disabled":"")),u&8&&(f.name=a[3]),u&164519&&(f.$$scope={dirty:u,ctx:a}),i.$set(f)},i(a){s||(A(i.$$.fragment,a),s=!0)},o(a){P(i.$$.fragment,a),s=!1},d(a){a&&w(e),r.d(),H(i)}}}function BC(n){let e;return{c(){e=v("div"),e.innerHTML='',p(e,"class","txt-center")},m(t,i){S(t,e,i)},p:te,i:te,o:te,d(t){t&&w(e)}}}function UC(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","rule-toggle-btn btn btn-circle btn-outline svelte-fjxz7k")},m(s,l){S(s,e,l),t||(i=[Ee(Be.call(null,e,{text:"Lock and set to Admins only",position:"left"})),K(e,"click",n[12])],t=!0)},p:te,d(s){s&&w(e),t=!1,Pe(i)}}}function WC(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","rule-toggle-btn btn btn-circle btn-outline btn-success svelte-fjxz7k")},m(s,l){S(s,e,l),t||(i=[Ee(Be.call(null,e,{text:"Unlock and set custom rule",position:"left"})),K(e,"click",n[11])],t=!0)},p:te,d(s){s&&w(e),t=!1,Pe(i)}}}function YC(n){let e;return{c(){e=B("Leave empty to grant everyone access")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function KC(n){let e;return{c(){e=B("Only admins will be able to perform this action (unlock to change)")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function JC(n){let e;function t(l,o){return l[9]?KC:YC}let i=t(n),s=i(n);return{c(){e=v("p"),s.c()},m(l,o){S(l,e,o),s.m(e,null)},p(l,o){i!==(i=t(l))&&(s.d(1),s=i(l),s&&(s.c(),s.m(e,null)))},d(l){l&&w(e),s.d()}}}function ZC(n){let e,t,i,s=n[9]?"Admins only":"Custom rule",l,o,r,a,u,f,c,d;function h($){n[14]($)}var m=n[7];function b($){let C={id:$[17],baseCollection:$[1],disabled:$[9]};return $[0]!==void 0&&(C.value=$[0]),{props:C}}m&&(a=jt(m,b(n)),n[13](a),le.push(()=>_e(a,"value",h)));const g=n[10].default,y=Ot(g,n,n[15],ed),k=y||JC(n);return{c(){e=v("label"),t=B(n[2]),i=B(" - "),l=B(s),r=O(),a&&j(a.$$.fragment),f=O(),c=v("div"),k&&k.c(),p(e,"for",o=n[17]),p(c,"class","help-block")},m($,C){S($,e,C),_(e,t),_(e,i),_(e,l),S($,r,C),a&&R(a,$,C),S($,f,C),S($,c,C),k&&k.m(c,null),d=!0},p($,C){(!d||C&4)&&ae(t,$[2]),(!d||C&512)&&s!==(s=$[9]?"Admins only":"Custom rule")&&ae(l,s),(!d||C&131072&&o!==(o=$[17]))&&p(e,"for",o);const T={};if(C&131072&&(T.id=$[17]),C&2&&(T.baseCollection=$[1]),C&512&&(T.disabled=$[9]),!u&&C&1&&(u=!0,T.value=$[0],ke(()=>u=!1)),m!==(m=$[7])){if(a){pe();const M=a;P(M.$$.fragment,1,0,()=>{H(M,1)}),he()}m?(a=jt(m,b($)),$[13](a),le.push(()=>_e(a,"value",h)),j(a.$$.fragment),A(a.$$.fragment,1),R(a,f.parentNode,f)):a=null}else m&&a.$set(T);y?y.p&&(!d||C&33280)&&At(y,g,$,$[15],d?Dt(g,$[15],C,VC):Et($[15]),ed):k&&k.p&&(!d||C&512)&&k.p($,d?C:-1)},i($){d||(a&&A(a.$$.fragment,$),A(k,$),d=!0)},o($){a&&P(a.$$.fragment,$),P(k,$),d=!1},d($){$&&w(e),$&&w(r),n[13](null),a&&H(a,$),$&&w(f),$&&w(c),k&&k.d($)}}}function GC(n){let e,t,i,s;const l=[BC,zC],o=[];function r(a,u){return a[8]?0:1}return e=r(n),t=o[e]=l[e](n),{c(){t.c(),i=Ae()},m(a,u){o[e].m(a,u),S(a,i,u),s=!0},p(a,[u]){let f=e;e=r(a),e===f?o[e].p(a,u):(pe(),P(o[f],1,1,()=>{o[f]=null}),he(),t=o[e],t?t.p(a,u):(t=o[e]=l[e](a),t.c()),A(t,1),t.m(i.parentNode,i))},i(a){s||(A(t),s=!0)},o(a){P(t),s=!1},d(a){o[e].d(a),a&&w(i)}}}let td;function XC(n,e,t){let i,{$$slots:s={},$$scope:l}=e,{collection:o=null}=e,{rule:r=null}=e,{label:a="Rule"}=e,{formKey:u="rule"}=e,{required:f=!1}=e,c=null,d=null,h=td,m=!1;async function b(){h||m||(t(8,m=!0),t(7,h=(await st(()=>import("./FilterAutocompleteInput.b06e61da.js"),["./FilterAutocompleteInput.b06e61da.js","./index.e8a8986f.js"],import.meta.url)).default),td=h,t(8,m=!1))}b();const g=async()=>{t(0,r=d||""),await Tn(),c==null||c.focus()},y=()=>{t(6,d=r),t(0,r=null)};function k(C){le[C?"unshift":"push"](()=>{c=C,t(5,c)})}function $(C){r=C,t(0,r)}return n.$$set=C=>{"collection"in C&&t(1,o=C.collection),"rule"in C&&t(0,r=C.rule),"label"in C&&t(2,a=C.label),"formKey"in C&&t(3,u=C.formKey),"required"in C&&t(4,f=C.required),"$$scope"in C&&t(15,l=C.$$scope)},n.$$.update=()=>{n.$$.dirty&1&&t(9,i=r===null)},[r,o,a,u,f,c,d,h,m,i,s,g,y,k,$,l]}class ds extends ye{constructor(e){super(),ve(this,e,XC,GC,be,{collection:1,rule:0,label:2,formKey:3,required:4})}}function nd(n,e,t){const i=n.slice();return i[9]=e[t],i}function id(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M,D,E,I,L,F,q,z,J,G=n[0].schema,X=[];for(let Q=0;Q@request filter:",y=O(),k=v("div"),k.innerHTML=`@request.method - @request.query.* - @request.data.* - @request.auth.*`,$=O(),C=v("hr"),T=O(),M=v("p"),M.innerHTML="You could also add constraints and query other collections using the @collection filter:",D=O(),E=v("div"),E.innerHTML="@collection.ANY_COLLECTION_NAME.*",I=O(),L=v("hr"),F=O(),q=v("p"),q.innerHTML=`Example rule: -
    - @request.auth.id != "" && created > "2022-01-01 00:00:00"`,p(s,"class","m-b-0"),p(o,"class","inline-flex flex-gap-5"),p(m,"class","m-t-10 m-b-5"),p(g,"class","m-b-0"),p(k,"class","inline-flex flex-gap-5"),p(C,"class","m-t-10 m-b-5"),p(M,"class","m-b-0"),p(E,"class","inline-flex flex-gap-5"),p(L,"class","m-t-10 m-b-5"),p(i,"class","content"),p(t,"class","alert alert-warning m-0")},m(Q,ie){S(Q,e,ie),_(e,t),_(t,i),_(i,s),_(i,l),_(i,o),_(o,r),_(o,a),_(o,u),_(o,f),_(o,c),_(o,d);for(let Y=0;Y{z||(z=je(e,St,{duration:150},!0)),z.run(1)}),J=!0)},o(Q){Q&&(z||(z=je(e,St,{duration:150},!1)),z.run(0)),J=!1},d(Q){Q&&w(e),Mt(X,Q),Q&&z&&z.end()}}}function QC(n){let e,t=n[9].name+"",i;return{c(){e=v("code"),i=B(t)},m(s,l){S(s,e,l),_(e,i)},p(s,l){l&1&&t!==(t=s[9].name+"")&&ae(i,t)},d(s){s&&w(e)}}}function xC(n){let e,t=n[9].name+"",i,s;return{c(){e=v("code"),i=B(t),s=B(".*")},m(l,o){S(l,e,o),_(e,i),_(e,s)},p(l,o){o&1&&t!==(t=l[9].name+"")&&ae(i,t)},d(l){l&&w(e)}}}function sd(n){let e;function t(l,o){return l[9].type==="relation"||l[9].type==="user"?xC:QC}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&w(e)}}}function ld(n){let e,t,i,s,l;function o(a){n[8](a)}let r={label:"Manage action",formKey:"options.manageRule",collection:n[0],$$slots:{default:[e3]},$$scope:{ctx:n}};return n[0].options.manageRule!==void 0&&(r.rule=n[0].options.manageRule),i=new ds({props:r}),le.push(()=>_e(i,"rule",o)),{c(){e=v("hr"),t=O(),j(i.$$.fragment),p(e,"class","m-t-sm m-b-sm")},m(a,u){S(a,e,u),S(a,t,u),R(i,a,u),l=!0},p(a,u){const f={};u&1&&(f.collection=a[0]),u&4096&&(f.$$scope={dirty:u,ctx:a}),!s&&u&1&&(s=!0,f.rule=a[0].options.manageRule,ke(()=>s=!1)),i.$set(f)},i(a){l||(A(i.$$.fragment,a),l=!0)},o(a){P(i.$$.fragment,a),l=!1},d(a){a&&w(e),a&&w(t),H(i,a)}}}function e3(n){let e,t,i;return{c(){e=v("p"),e.textContent=`This API rule gives admin-like permissions to allow fully managing the auth record(s), eg. - changing the password without requiring to enter the old one, directly updating the verified - state or email, etc.`,t=O(),i=v("p"),i.innerHTML="This rule is executed in addition to the create and update API rules."},m(s,l){S(s,e,l),S(s,t,l),S(s,i,l)},p:te,d(s){s&&w(e),s&&w(t),s&&w(i)}}}function t3(n){var fe;let e,t,i,s,l,o=n[1]?"Hide available fields":"Show available fields",r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M,D,E,I,L,F,q,z,J,G,X,Q,ie,Y,x,U=n[1]&&id(n);function re(Z){n[3](Z)}let Re={label:"List/Search action",formKey:"listRule",collection:n[0]};n[0].listRule!==void 0&&(Re.rule=n[0].listRule),f=new ds({props:Re}),le.push(()=>_e(f,"rule",re));function Ne(Z){n[4](Z)}let Le={label:"View action",formKey:"viewRule",collection:n[0]};n[0].viewRule!==void 0&&(Le.rule=n[0].viewRule),b=new ds({props:Le}),le.push(()=>_e(b,"rule",Ne));function Fe(Z){n[5](Z)}let me={label:"Create action",formKey:"createRule",collection:n[0]};n[0].createRule!==void 0&&(me.rule=n[0].createRule),C=new ds({props:me}),le.push(()=>_e(C,"rule",Fe));function Se(Z){n[6](Z)}let we={label:"Update action",formKey:"updateRule",collection:n[0]};n[0].updateRule!==void 0&&(we.rule=n[0].updateRule),I=new ds({props:we}),le.push(()=>_e(I,"rule",Se));function We(Z){n[7](Z)}let ue={label:"Delete action",formKey:"deleteRule",collection:n[0]};n[0].deleteRule!==void 0&&(ue.rule=n[0].deleteRule),J=new ds({props:ue}),le.push(()=>_e(J,"rule",We));let se=((fe=n[0])==null?void 0:fe.isAuth)&&ld(n);return{c(){e=v("div"),t=v("div"),i=v("p"),i.innerHTML=`All rules follow the -
    PocketBase filter syntax and operators - .`,s=O(),l=v("button"),r=B(o),a=O(),U&&U.c(),u=O(),j(f.$$.fragment),d=O(),h=v("hr"),m=O(),j(b.$$.fragment),y=O(),k=v("hr"),$=O(),j(C.$$.fragment),M=O(),D=v("hr"),E=O(),j(I.$$.fragment),F=O(),q=v("hr"),z=O(),j(J.$$.fragment),X=O(),se&&se.c(),Q=Ae(),p(l,"type","button"),p(l,"class","expand-handle txt-sm txt-bold txt-nowrap link-hint"),p(t,"class","flex txt-sm m-b-5"),p(e,"class","block m-b-base"),p(h,"class","m-t-sm m-b-sm"),p(k,"class","m-t-sm m-b-sm"),p(D,"class","m-t-sm m-b-sm"),p(q,"class","m-t-sm m-b-sm")},m(Z,Ce){S(Z,e,Ce),_(e,t),_(t,i),_(t,s),_(t,l),_(l,r),_(e,a),U&&U.m(e,null),S(Z,u,Ce),R(f,Z,Ce),S(Z,d,Ce),S(Z,h,Ce),S(Z,m,Ce),R(b,Z,Ce),S(Z,y,Ce),S(Z,k,Ce),S(Z,$,Ce),R(C,Z,Ce),S(Z,M,Ce),S(Z,D,Ce),S(Z,E,Ce),R(I,Z,Ce),S(Z,F,Ce),S(Z,q,Ce),S(Z,z,Ce),R(J,Z,Ce),S(Z,X,Ce),se&&se.m(Z,Ce),S(Z,Q,Ce),ie=!0,Y||(x=K(l,"click",n[2]),Y=!0)},p(Z,[Ce]){var Ti;(!ie||Ce&2)&&o!==(o=Z[1]?"Hide available fields":"Show available fields")&&ae(r,o),Z[1]?U?(U.p(Z,Ce),Ce&2&&A(U,1)):(U=id(Z),U.c(),A(U,1),U.m(e,null)):U&&(pe(),P(U,1,1,()=>{U=null}),he());const Ue={};Ce&1&&(Ue.collection=Z[0]),!c&&Ce&1&&(c=!0,Ue.rule=Z[0].listRule,ke(()=>c=!1)),f.$set(Ue);const qt={};Ce&1&&(qt.collection=Z[0]),!g&&Ce&1&&(g=!0,qt.rule=Z[0].viewRule,ke(()=>g=!1)),b.$set(qt);const Gt={};Ce&1&&(Gt.collection=Z[0]),!T&&Ce&1&&(T=!0,Gt.rule=Z[0].createRule,ke(()=>T=!1)),C.$set(Gt);const sn={};Ce&1&&(sn.collection=Z[0]),!L&&Ce&1&&(L=!0,sn.rule=Z[0].updateRule,ke(()=>L=!1)),I.$set(sn);const Gn={};Ce&1&&(Gn.collection=Z[0]),!G&&Ce&1&&(G=!0,Gn.rule=Z[0].deleteRule,ke(()=>G=!1)),J.$set(Gn),(Ti=Z[0])!=null&&Ti.isAuth?se?(se.p(Z,Ce),Ce&1&&A(se,1)):(se=ld(Z),se.c(),A(se,1),se.m(Q.parentNode,Q)):se&&(pe(),P(se,1,1,()=>{se=null}),he())},i(Z){ie||(A(U),A(f.$$.fragment,Z),A(b.$$.fragment,Z),A(C.$$.fragment,Z),A(I.$$.fragment,Z),A(J.$$.fragment,Z),A(se),ie=!0)},o(Z){P(U),P(f.$$.fragment,Z),P(b.$$.fragment,Z),P(C.$$.fragment,Z),P(I.$$.fragment,Z),P(J.$$.fragment,Z),P(se),ie=!1},d(Z){Z&&w(e),U&&U.d(),Z&&w(u),H(f,Z),Z&&w(d),Z&&w(h),Z&&w(m),H(b,Z),Z&&w(y),Z&&w(k),Z&&w($),H(C,Z),Z&&w(M),Z&&w(D),Z&&w(E),H(I,Z),Z&&w(F),Z&&w(q),Z&&w(z),H(J,Z),Z&&w(X),se&&se.d(Z),Z&&w(Q),Y=!1,x()}}}function n3(n,e,t){let{collection:i=new Pn}=e,s=!1;const l=()=>t(1,s=!s);function o(d){n.$$.not_equal(i.listRule,d)&&(i.listRule=d,t(0,i))}function r(d){n.$$.not_equal(i.viewRule,d)&&(i.viewRule=d,t(0,i))}function a(d){n.$$.not_equal(i.createRule,d)&&(i.createRule=d,t(0,i))}function u(d){n.$$.not_equal(i.updateRule,d)&&(i.updateRule=d,t(0,i))}function f(d){n.$$.not_equal(i.deleteRule,d)&&(i.deleteRule=d,t(0,i))}function c(d){n.$$.not_equal(i.options.manageRule,d)&&(i.options.manageRule=d,t(0,i))}return n.$$set=d=>{"collection"in d&&t(0,i=d.collection)},[i,s,l,o,r,a,u,f,c]}class i3 extends ye{constructor(e){super(),ve(this,e,n3,t3,be,{collection:0})}}function s3(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[12]),p(s,"for",o=n[12])},m(u,f){S(u,e,f),e.checked=n[0].options.allowUsernameAuth,S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[5]),r=!0)},p(u,f){f&4096&&t!==(t=u[12])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowUsernameAuth),f&4096&&o!==(o=u[12])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function l3(n){let e,t;return e=new ge({props:{class:"form-field form-field-toggle m-b-0",name:"options.allowUsernameAuth",$$slots:{default:[s3,({uniqueId:i})=>({12:i}),({uniqueId:i})=>i?4096:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s&12289&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function o3(n){let e;return{c(){e=v("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function r3(n){let e;return{c(){e=v("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function od(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function a3(n){let e,t,i,s,l,o,r;function a(d,h){return d[0].options.allowUsernameAuth?r3:o3}let u=a(n),f=u(n),c=n[3]&&od();return{c(){e=v("div"),e.innerHTML=` - Username/Password`,t=O(),i=v("div"),s=O(),f.c(),l=O(),c&&c.c(),o=Ae(),p(e,"class","inline-flex"),p(i,"class","flex-fill")},m(d,h){S(d,e,h),S(d,t,h),S(d,i,h),S(d,s,h),f.m(d,h),S(d,l,h),c&&c.m(d,h),S(d,o,h),r=!0},p(d,h){u!==(u=a(d))&&(f.d(1),f=u(d),f&&(f.c(),f.m(l.parentNode,l))),d[3]?c?h&8&&A(c,1):(c=od(),c.c(),A(c,1),c.m(o.parentNode,o)):c&&(pe(),P(c,1,1,()=>{c=null}),he())},i(d){r||(A(c),r=!0)},o(d){P(c),r=!1},d(d){d&&w(e),d&&w(t),d&&w(i),d&&w(s),f.d(d),d&&w(l),c&&c.d(d),d&&w(o)}}}function u3(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[12]),p(s,"for",o=n[12])},m(u,f){S(u,e,f),e.checked=n[0].options.allowEmailAuth,S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[6]),r=!0)},p(u,f){f&4096&&t!==(t=u[12])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowEmailAuth),f&4096&&o!==(o=u[12])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function rd(n){let e,t,i,s,l,o,r,a;return i=new ge({props:{class:"form-field "+(W.isEmpty(n[0].options.onlyEmailDomains)?"":"disabled"),name:"options.exceptEmailDomains",$$slots:{default:[f3,({uniqueId:u})=>({12:u}),({uniqueId:u})=>u?4096:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field "+(W.isEmpty(n[0].options.exceptEmailDomains)?"":"disabled"),name:"options.onlyEmailDomains",$$slots:{default:[c3,({uniqueId:u})=>({12:u}),({uniqueId:u})=>u?4096:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),p(t,"class","col-lg-6"),p(l,"class","col-lg-6"),p(e,"class","grid grid-sm p-t-sm")},m(u,f){S(u,e,f),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),a=!0},p(u,f){const c={};f&1&&(c.class="form-field "+(W.isEmpty(u[0].options.onlyEmailDomains)?"":"disabled")),f&12289&&(c.$$scope={dirty:f,ctx:u}),i.$set(c);const d={};f&1&&(d.class="form-field "+(W.isEmpty(u[0].options.exceptEmailDomains)?"":"disabled")),f&12289&&(d.$$scope={dirty:f,ctx:u}),o.$set(d)},i(u){a||(A(i.$$.fragment,u),A(o.$$.fragment,u),u&&xe(()=>{r||(r=je(e,St,{duration:150},!0)),r.run(1)}),a=!0)},o(u){P(i.$$.fragment,u),P(o.$$.fragment,u),u&&(r||(r=je(e,St,{duration:150},!1)),r.run(0)),a=!1},d(u){u&&w(e),H(i),H(o),u&&r&&r.end()}}}function f3(n){let e,t,i,s,l,o,r,a,u,f,c,d,h;function m(g){n[7](g)}let b={id:n[12],disabled:!W.isEmpty(n[0].options.onlyEmailDomains)};return n[0].options.exceptEmailDomains!==void 0&&(b.value=n[0].options.exceptEmailDomains),r=new xi({props:b}),le.push(()=>_e(r,"value",m)),{c(){e=v("label"),t=v("span"),t.textContent="Except domains",i=O(),s=v("i"),o=O(),j(r.$$.fragment),u=O(),f=v("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[12]),p(f,"class","help-block")},m(g,y){S(g,e,y),_(e,t),_(e,i),_(e,s),S(g,o,y),R(r,g,y),S(g,u,y),S(g,f,y),c=!0,d||(h=Ee(Be.call(null,s,{text:`Email domains that are NOT allowed to sign up. - This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(g,y){(!c||y&4096&&l!==(l=g[12]))&&p(e,"for",l);const k={};y&4096&&(k.id=g[12]),y&1&&(k.disabled=!W.isEmpty(g[0].options.onlyEmailDomains)),!a&&y&1&&(a=!0,k.value=g[0].options.exceptEmailDomains,ke(()=>a=!1)),r.$set(k)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){P(r.$$.fragment,g),c=!1},d(g){g&&w(e),g&&w(o),H(r,g),g&&w(u),g&&w(f),d=!1,h()}}}function c3(n){let e,t,i,s,l,o,r,a,u,f,c,d,h;function m(g){n[8](g)}let b={id:n[12],disabled:!W.isEmpty(n[0].options.exceptEmailDomains)};return n[0].options.onlyEmailDomains!==void 0&&(b.value=n[0].options.onlyEmailDomains),r=new xi({props:b}),le.push(()=>_e(r,"value",m)),{c(){e=v("label"),t=v("span"),t.textContent="Only domains",i=O(),s=v("i"),o=O(),j(r.$$.fragment),u=O(),f=v("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[12]),p(f,"class","help-block")},m(g,y){S(g,e,y),_(e,t),_(e,i),_(e,s),S(g,o,y),R(r,g,y),S(g,u,y),S(g,f,y),c=!0,d||(h=Ee(Be.call(null,s,{text:`Email domains that are ONLY allowed to sign up. - This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(g,y){(!c||y&4096&&l!==(l=g[12]))&&p(e,"for",l);const k={};y&4096&&(k.id=g[12]),y&1&&(k.disabled=!W.isEmpty(g[0].options.exceptEmailDomains)),!a&&y&1&&(a=!0,k.value=g[0].options.onlyEmailDomains,ke(()=>a=!1)),r.$set(k)},i(g){c||(A(r.$$.fragment,g),c=!0)},o(g){P(r.$$.fragment,g),c=!1},d(g){g&&w(e),g&&w(o),H(r,g),g&&w(u),g&&w(f),d=!1,h()}}}function d3(n){let e,t,i,s;e=new ge({props:{class:"form-field form-field-toggle m-0",name:"options.allowEmailAuth",$$slots:{default:[u3,({uniqueId:o})=>({12:o}),({uniqueId:o})=>o?4096:0]},$$scope:{ctx:n}}});let l=n[0].options.allowEmailAuth&&rd(n);return{c(){j(e.$$.fragment),t=O(),l&&l.c(),i=Ae()},m(o,r){R(e,o,r),S(o,t,r),l&&l.m(o,r),S(o,i,r),s=!0},p(o,r){const a={};r&12289&&(a.$$scope={dirty:r,ctx:o}),e.$set(a),o[0].options.allowEmailAuth?l?(l.p(o,r),r&1&&A(l,1)):(l=rd(o),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(pe(),P(l,1,1,()=>{l=null}),he())},i(o){s||(A(e.$$.fragment,o),A(l),s=!0)},o(o){P(e.$$.fragment,o),P(l),s=!1},d(o){H(e,o),o&&w(t),l&&l.d(o),o&&w(i)}}}function p3(n){let e;return{c(){e=v("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function h3(n){let e;return{c(){e=v("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function ad(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function m3(n){let e,t,i,s,l,o,r;function a(d,h){return d[0].options.allowEmailAuth?h3:p3}let u=a(n),f=u(n),c=n[2]&&ad();return{c(){e=v("div"),e.innerHTML=` - Email/Password`,t=O(),i=v("div"),s=O(),f.c(),l=O(),c&&c.c(),o=Ae(),p(e,"class","inline-flex"),p(i,"class","flex-fill")},m(d,h){S(d,e,h),S(d,t,h),S(d,i,h),S(d,s,h),f.m(d,h),S(d,l,h),c&&c.m(d,h),S(d,o,h),r=!0},p(d,h){u!==(u=a(d))&&(f.d(1),f=u(d),f&&(f.c(),f.m(l.parentNode,l))),d[2]?c?h&4&&A(c,1):(c=ad(),c.c(),A(c,1),c.m(o.parentNode,o)):c&&(pe(),P(c,1,1,()=>{c=null}),he())},i(d){r||(A(c),r=!0)},o(d){P(c),r=!1},d(d){d&&w(e),d&&w(t),d&&w(i),d&&w(s),f.d(d),d&&w(l),c&&c.d(d),d&&w(o)}}}function g3(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[12]),p(s,"for",o=n[12])},m(u,f){S(u,e,f),e.checked=n[0].options.allowOAuth2Auth,S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[9]),r=!0)},p(u,f){f&4096&&t!==(t=u[12])&&p(e,"id",t),f&1&&(e.checked=u[0].options.allowOAuth2Auth),f&4096&&o!==(o=u[12])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function ud(n){let e,t,i;return{c(){e=v("div"),e.innerHTML='
    Manage OAuth2 providers
    ',p(e,"class","block")},m(s,l){S(s,e,l),i=!0},i(s){i||(s&&xe(()=>{t||(t=je(e,St,{duration:150},!0)),t.run(1)}),i=!0)},o(s){s&&(t||(t=je(e,St,{duration:150},!1)),t.run(0)),i=!1},d(s){s&&w(e),s&&t&&t.end()}}}function _3(n){let e,t,i,s;e=new ge({props:{class:"form-field form-field-toggle m-b-0",name:"options.allowOAuth2Auth",$$slots:{default:[g3,({uniqueId:o})=>({12:o}),({uniqueId:o})=>o?4096:0]},$$scope:{ctx:n}}});let l=n[0].options.allowOAuth2Auth&&ud();return{c(){j(e.$$.fragment),t=O(),l&&l.c(),i=Ae()},m(o,r){R(e,o,r),S(o,t,r),l&&l.m(o,r),S(o,i,r),s=!0},p(o,r){const a={};r&12289&&(a.$$scope={dirty:r,ctx:o}),e.$set(a),o[0].options.allowOAuth2Auth?l?r&1&&A(l,1):(l=ud(),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(pe(),P(l,1,1,()=>{l=null}),he())},i(o){s||(A(e.$$.fragment,o),A(l),s=!0)},o(o){P(e.$$.fragment,o),P(l),s=!1},d(o){H(e,o),o&&w(t),l&&l.d(o),o&&w(i)}}}function b3(n){let e;return{c(){e=v("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function v3(n){let e;return{c(){e=v("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function fd(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function y3(n){let e,t,i,s,l,o,r;function a(d,h){return d[0].options.allowOAuth2Auth?v3:b3}let u=a(n),f=u(n),c=n[1]&&fd();return{c(){e=v("div"),e.innerHTML=` - OAuth2`,t=O(),i=v("div"),s=O(),f.c(),l=O(),c&&c.c(),o=Ae(),p(e,"class","inline-flex"),p(i,"class","flex-fill")},m(d,h){S(d,e,h),S(d,t,h),S(d,i,h),S(d,s,h),f.m(d,h),S(d,l,h),c&&c.m(d,h),S(d,o,h),r=!0},p(d,h){u!==(u=a(d))&&(f.d(1),f=u(d),f&&(f.c(),f.m(l.parentNode,l))),d[1]?c?h&2&&A(c,1):(c=fd(),c.c(),A(c,1),c.m(o.parentNode,o)):c&&(pe(),P(c,1,1,()=>{c=null}),he())},i(d){r||(A(c),r=!0)},o(d){P(c),r=!1},d(d){d&&w(e),d&&w(t),d&&w(i),d&&w(s),f.d(d),d&&w(l),c&&c.d(d),d&&w(o)}}}function k3(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Minimum password length"),s=O(),l=v("input"),p(e,"for",i=n[12]),p(l,"type","number"),p(l,"id",o=n[12]),l.required=!0,p(l,"min","6"),p(l,"max","72")},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].options.minPasswordLength),r||(a=K(l,"input",n[10]),r=!0)},p(u,f){f&4096&&i!==(i=u[12])&&p(e,"for",i),f&4096&&o!==(o=u[12])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].options.minPasswordLength&&ce(l,u[0].options.minPasswordLength)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function w3(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("input"),i=O(),s=v("label"),l=v("span"),l.textContent="Always require email",o=O(),r=v("i"),p(e,"type","checkbox"),p(e,"id",t=n[12]),p(l,"class","txt"),p(r,"class","ri-information-line txt-sm link-hint"),p(s,"for",a=n[12])},m(c,d){S(c,e,d),e.checked=n[0].options.requireEmail,S(c,i,d),S(c,s,d),_(s,l),_(s,o),_(s,r),u||(f=[K(e,"change",n[11]),Ee(Be.call(null,r,{text:`The constraint is applied only for new records. -Also note that some OAuth2 providers (like Twitter), don't return an email and the authentication may fail if the email field is required.`,position:"right"}))],u=!0)},p(c,d){d&4096&&t!==(t=c[12])&&p(e,"id",t),d&1&&(e.checked=c[0].options.requireEmail),d&4096&&a!==(a=c[12])&&p(s,"for",a)},d(c){c&&w(e),c&&w(i),c&&w(s),u=!1,Pe(f)}}}function S3(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y;return s=new _s({props:{single:!0,$$slots:{header:[a3],default:[l3]},$$scope:{ctx:n}}}),o=new _s({props:{single:!0,$$slots:{header:[m3],default:[d3]},$$scope:{ctx:n}}}),a=new _s({props:{single:!0,$$slots:{header:[y3],default:[_3]},$$scope:{ctx:n}}}),m=new ge({props:{class:"form-field required",name:"options.minPasswordLength",$$slots:{default:[k3,({uniqueId:k})=>({12:k}),({uniqueId:k})=>k?4096:0]},$$scope:{ctx:n}}}),g=new ge({props:{class:"form-field form-field-toggle m-b-sm",name:"options.requireEmail",$$slots:{default:[w3,({uniqueId:k})=>({12:k}),({uniqueId:k})=>k?4096:0]},$$scope:{ctx:n}}}),{c(){e=v("h4"),e.textContent="Auth methods",t=O(),i=v("div"),j(s.$$.fragment),l=O(),j(o.$$.fragment),r=O(),j(a.$$.fragment),u=O(),f=v("hr"),c=O(),d=v("h4"),d.textContent="General",h=O(),j(m.$$.fragment),b=O(),j(g.$$.fragment),p(e,"class","section-title"),p(i,"class","accordions"),p(d,"class","section-title")},m(k,$){S(k,e,$),S(k,t,$),S(k,i,$),R(s,i,null),_(i,l),R(o,i,null),_(i,r),R(a,i,null),S(k,u,$),S(k,f,$),S(k,c,$),S(k,d,$),S(k,h,$),R(m,k,$),S(k,b,$),R(g,k,$),y=!0},p(k,[$]){const C={};$&8201&&(C.$$scope={dirty:$,ctx:k}),s.$set(C);const T={};$&8197&&(T.$$scope={dirty:$,ctx:k}),o.$set(T);const M={};$&8195&&(M.$$scope={dirty:$,ctx:k}),a.$set(M);const D={};$&12289&&(D.$$scope={dirty:$,ctx:k}),m.$set(D);const E={};$&12289&&(E.$$scope={dirty:$,ctx:k}),g.$set(E)},i(k){y||(A(s.$$.fragment,k),A(o.$$.fragment,k),A(a.$$.fragment,k),A(m.$$.fragment,k),A(g.$$.fragment,k),y=!0)},o(k){P(s.$$.fragment,k),P(o.$$.fragment,k),P(a.$$.fragment,k),P(m.$$.fragment,k),P(g.$$.fragment,k),y=!1},d(k){k&&w(e),k&&w(t),k&&w(i),H(s),H(o),H(a),k&&w(u),k&&w(f),k&&w(c),k&&w(d),k&&w(h),H(m,k),k&&w(b),H(g,k)}}}function $3(n,e,t){let i,s,l,o;Ze(n,wi,b=>t(4,o=b));let{collection:r=new Pn}=e;function a(){r.options.allowUsernameAuth=this.checked,t(0,r)}function u(){r.options.allowEmailAuth=this.checked,t(0,r)}function f(b){n.$$.not_equal(r.options.exceptEmailDomains,b)&&(r.options.exceptEmailDomains=b,t(0,r))}function c(b){n.$$.not_equal(r.options.onlyEmailDomains,b)&&(r.options.onlyEmailDomains=b,t(0,r))}function d(){r.options.allowOAuth2Auth=this.checked,t(0,r)}function h(){r.options.minPasswordLength=rt(this.value),t(0,r)}function m(){r.options.requireEmail=this.checked,t(0,r)}return n.$$set=b=>{"collection"in b&&t(0,r=b.collection)},n.$$.update=()=>{var b,g,y,k;n.$$.dirty&1&&r.isAuth&&W.isEmpty(r.options)&&t(0,r.options={allowEmailAuth:!0,allowUsernameAuth:!0,allowOAuth2Auth:!0,minPasswordLength:8},r),n.$$.dirty&16&&t(2,s=!W.isEmpty((b=o==null?void 0:o.options)==null?void 0:b.allowEmailAuth)||!W.isEmpty((g=o==null?void 0:o.options)==null?void 0:g.onlyEmailDomains)||!W.isEmpty((y=o==null?void 0:o.options)==null?void 0:y.exceptEmailDomains)),n.$$.dirty&16&&t(1,l=!W.isEmpty((k=o==null?void 0:o.options)==null?void 0:k.allowOAuth2Auth))},t(3,i=!1),[r,l,s,i,o,a,u,f,c,d,h,m]}class C3 extends ye{constructor(e){super(),ve(this,e,$3,S3,be,{collection:0})}}function cd(n,e,t){const i=n.slice();return i[14]=e[t],i}function dd(n,e,t){const i=n.slice();return i[14]=e[t],i}function pd(n){let e;return{c(){e=v("p"),e.textContent="All data associated with the removed fields will be permanently deleted!"},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function hd(n){let e,t,i,s,l=n[1].originalName+"",o,r,a,u,f,c=n[1].name+"",d;return{c(){e=v("li"),t=v("div"),i=B(`Renamed collection - `),s=v("strong"),o=B(l),r=O(),a=v("i"),u=O(),f=v("strong"),d=B(c),p(s,"class","txt-strikethrough txt-hint"),p(a,"class","ri-arrow-right-line txt-sm"),p(f,"class","txt"),p(t,"class","inline-flex")},m(h,m){S(h,e,m),_(e,t),_(t,i),_(t,s),_(s,o),_(t,r),_(t,a),_(t,u),_(t,f),_(f,d)},p(h,m){m&2&&l!==(l=h[1].originalName+"")&&ae(o,l),m&2&&c!==(c=h[1].name+"")&&ae(d,c)},d(h){h&&w(e)}}}function md(n){let e,t,i,s,l=n[14].originalName+"",o,r,a,u,f,c=n[14].name+"",d;return{c(){e=v("li"),t=v("div"),i=B(`Renamed field - `),s=v("strong"),o=B(l),r=O(),a=v("i"),u=O(),f=v("strong"),d=B(c),p(s,"class","txt-strikethrough txt-hint"),p(a,"class","ri-arrow-right-line txt-sm"),p(f,"class","txt"),p(t,"class","inline-flex")},m(h,m){S(h,e,m),_(e,t),_(t,i),_(t,s),_(s,o),_(t,r),_(t,a),_(t,u),_(t,f),_(f,d)},p(h,m){m&16&&l!==(l=h[14].originalName+"")&&ae(o,l),m&16&&c!==(c=h[14].name+"")&&ae(d,c)},d(h){h&&w(e)}}}function gd(n){let e,t,i,s=n[14].name+"",l,o;return{c(){e=v("li"),t=B("Removed field "),i=v("span"),l=B(s),o=O(),p(i,"class","txt-bold"),p(e,"class","txt-danger")},m(r,a){S(r,e,a),_(e,t),_(e,i),_(i,l),_(e,o)},p(r,a){a&8&&s!==(s=r[14].name+"")&&ae(l,s)},d(r){r&&w(e)}}}function T3(n){let e,t,i,s,l,o,r,a,u,f,c,d,h=n[3].length&&pd(),m=n[5]&&hd(n),b=n[4],g=[];for(let $=0;$
    ',i=O(),s=v("div"),l=v("p"),l.textContent=`If any of the following changes is part of another collection rule or filter, you'll have to - update it manually!`,o=O(),h&&h.c(),r=O(),a=v("h6"),a.textContent="Changes:",u=O(),f=v("ul"),m&&m.c(),c=O();for(let $=0;$Cancel',t=O(),i=v("button"),i.innerHTML='Confirm',e.autofocus=!0,p(e,"type","button"),p(e,"class","btn btn-secondary"),p(i,"type","button"),p(i,"class","btn btn-expanded")},m(o,r){S(o,e,r),S(o,t,r),S(o,i,r),e.focus(),s||(l=[K(e,"click",n[8]),K(i,"click",n[9])],s=!0)},p:te,d(o){o&&w(e),o&&w(t),o&&w(i),s=!1,Pe(l)}}}function D3(n){let e,t,i={class:"confirm-changes-panel",popup:!0,$$slots:{footer:[O3],header:[M3],default:[T3]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[10](e),e.$on("hide",n[11]),e.$on("show",n[12]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,[l]){const o={};l&524346&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[10](null),H(e,s)}}}function A3(n,e,t){let i,s,l;const o=It();let r,a;async function u(y){t(1,a=y),await Tn(),!i&&!s.length&&!l.length?c():r==null||r.show()}function f(){r==null||r.hide()}function c(){f(),o("confirm")}const d=()=>f(),h=()=>c();function m(y){le[y?"unshift":"push"](()=>{r=y,t(2,r)})}function b(y){Ve.call(this,n,y)}function g(y){Ve.call(this,n,y)}return n.$$.update=()=>{n.$$.dirty&2&&t(5,i=(a==null?void 0:a.originalName)!=(a==null?void 0:a.name)),n.$$.dirty&2&&t(4,s=(a==null?void 0:a.schema.filter(y=>y.id&&!y.toDelete&&y.originalName!=y.name))||[]),n.$$.dirty&2&&t(3,l=(a==null?void 0:a.schema.filter(y=>y.id&&y.toDelete))||[])},[f,a,r,l,s,i,c,u,d,h,m,b,g]}class E3 extends ye{constructor(e){super(),ve(this,e,A3,D3,be,{show:7,hide:0})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}}function _d(n,e,t){const i=n.slice();return i[43]=e[t][0],i[44]=e[t][1],i}function bd(n){let e,t,i,s;function l(r){n[30](r)}let o={};return n[2]!==void 0&&(o.collection=n[2]),t=new i3({props:o}),le.push(()=>_e(t,"collection",l)),{c(){e=v("div"),j(t.$$.fragment),p(e,"class","tab-item active")},m(r,a){S(r,e,a),R(t,e,null),s=!0},p(r,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=r[2],ke(()=>i=!1)),t.$set(u)},i(r){s||(A(t.$$.fragment,r),s=!0)},o(r){P(t.$$.fragment,r),s=!1},d(r){r&&w(e),H(t)}}}function vd(n){let e,t,i,s;function l(r){n[31](r)}let o={};return n[2]!==void 0&&(o.collection=n[2]),t=new C3({props:o}),le.push(()=>_e(t,"collection",l)),{c(){e=v("div"),j(t.$$.fragment),p(e,"class","tab-item"),ne(e,"active",n[3]===Ts)},m(r,a){S(r,e,a),R(t,e,null),s=!0},p(r,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=r[2],ke(()=>i=!1)),t.$set(u),(!s||a[0]&8)&&ne(e,"active",r[3]===Ts)},i(r){s||(A(t.$$.fragment,r),s=!0)},o(r){P(t.$$.fragment,r),s=!1},d(r){r&&w(e),H(t)}}}function I3(n){let e,t,i,s,l,o,r;function a(d){n[29](d)}let u={};n[2]!==void 0&&(u.collection=n[2]),i=new qC({props:u}),le.push(()=>_e(i,"collection",a));let f=n[3]===gl&&bd(n),c=n[2].isAuth&&vd(n);return{c(){e=v("div"),t=v("div"),j(i.$$.fragment),l=O(),f&&f.c(),o=O(),c&&c.c(),p(t,"class","tab-item"),ne(t,"active",n[3]===gi),p(e,"class","tabs-content svelte-b10vi")},m(d,h){S(d,e,h),_(e,t),R(i,t,null),_(e,l),f&&f.m(e,null),_(e,o),c&&c.m(e,null),r=!0},p(d,h){const m={};!s&&h[0]&4&&(s=!0,m.collection=d[2],ke(()=>s=!1)),i.$set(m),(!r||h[0]&8)&&ne(t,"active",d[3]===gi),d[3]===gl?f?(f.p(d,h),h[0]&8&&A(f,1)):(f=bd(d),f.c(),A(f,1),f.m(e,o)):f&&(pe(),P(f,1,1,()=>{f=null}),he()),d[2].isAuth?c?(c.p(d,h),h[0]&4&&A(c,1)):(c=vd(d),c.c(),A(c,1),c.m(e,null)):c&&(pe(),P(c,1,1,()=>{c=null}),he())},i(d){r||(A(i.$$.fragment,d),A(f),A(c),r=!0)},o(d){P(i.$$.fragment,d),P(f),P(c),r=!1},d(d){d&&w(e),H(i),f&&f.d(),c&&c.d()}}}function yd(n){let e,t,i,s,l,o,r;return o=new Zn({props:{class:"dropdown dropdown-right m-t-5",$$slots:{default:[P3]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=O(),i=v("button"),s=v("i"),l=O(),j(o.$$.fragment),p(e,"class","flex-fill"),p(s,"class","ri-more-line"),p(i,"type","button"),p(i,"class","btn btn-sm btn-circle btn-secondary flex-gap-0")},m(a,u){S(a,e,u),S(a,t,u),S(a,i,u),_(i,s),_(i,l),R(o,i,null),r=!0},p(a,u){const f={};u[1]&65536&&(f.$$scope={dirty:u,ctx:a}),o.$set(f)},i(a){r||(A(o.$$.fragment,a),r=!0)},o(a){P(o.$$.fragment,a),r=!1},d(a){a&&w(e),a&&w(t),a&&w(i),H(o)}}}function P3(n){let e,t,i;return{c(){e=v("button"),e.innerHTML=` - Delete`,p(e,"type","button"),p(e,"class","dropdown-item txt-danger closable")},m(s,l){S(s,e,l),t||(i=K(e,"click",Yn(ut(n[22]))),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function kd(n){let e,t,i,s;return i=new Zn({props:{class:"dropdown dropdown-right dropdown-nowrap m-t-5",$$slots:{default:[L3]},$$scope:{ctx:n}}}),{c(){e=v("i"),t=O(),j(i.$$.fragment),p(e,"class","ri-arrow-down-s-fill")},m(l,o){S(l,e,o),S(l,t,o),R(i,l,o),s=!0},p(l,o){const r={};o[0]&68|o[1]&65536&&(r.$$scope={dirty:o,ctx:l}),i.$set(r)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){P(i.$$.fragment,l),s=!1},d(l){l&&w(e),l&&w(t),H(i,l)}}}function wd(n){let e,t,i,s,l,o=n[44]+"",r,a,u,f,c;function d(){return n[24](n[43])}return{c(){e=v("button"),t=v("i"),s=O(),l=v("span"),r=B(o),a=B(" collection"),u=O(),p(t,"class",i=fo(W.getCollectionTypeIcon(n[43]))+" svelte-b10vi"),p(l,"class","txt"),p(e,"type","button"),p(e,"class","dropdown-item closable"),ne(e,"selected",n[43]==n[2].type)},m(h,m){S(h,e,m),_(e,t),_(e,s),_(e,l),_(l,r),_(l,a),_(e,u),f||(c=K(e,"click",d),f=!0)},p(h,m){n=h,m[0]&64&&i!==(i=fo(W.getCollectionTypeIcon(n[43]))+" svelte-b10vi")&&p(t,"class",i),m[0]&64&&o!==(o=n[44]+"")&&ae(r,o),m[0]&68&&ne(e,"selected",n[43]==n[2].type)},d(h){h&&w(e),f=!1,c()}}}function L3(n){let e,t=Object.entries(n[6]),i=[];for(let s=0;s{F=null}),he()),(!E||J[0]&4&&C!==(C="btn btn-sm p-r-10 p-l-10 "+(z[2].isNew?"btn-hint":"btn-secondary")))&&p(d,"class",C),(!E||J[0]&4&&T!==(T=!z[2].isNew))&&(d.disabled=T),z[2].system?q||(q=Sd(),q.c(),q.m(D.parentNode,D)):q&&(q.d(1),q=null)},i(z){E||(A(F),E=!0)},o(z){P(F),E=!1},d(z){z&&w(e),z&&w(s),z&&w(l),z&&w(f),z&&w(c),F&&F.d(),z&&w(M),q&&q.d(z),z&&w(D),I=!1,L()}}}function $d(n){let e,t,i,s,l,o;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(r,a){S(r,e,a),s=!0,l||(o=Ee(t=Be.call(null,e,n[13])),l=!0)},p(r,a){t&&Jt(t.update)&&a[0]&8192&&t.update.call(null,r[13])},i(r){s||(r&&xe(()=>{i||(i=je(e,$t,{duration:150,start:.7},!0)),i.run(1)}),s=!0)},o(r){r&&(i||(i=je(e,$t,{duration:150,start:.7},!1)),i.run(0)),s=!1},d(r){r&&w(e),r&&i&&i.end(),l=!1,o()}}}function Cd(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,"Has errors")),s=!0)},i(o){i||(o&&xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){o&&(t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function Td(n){var a,u,f;let e,t,i,s=!W.isEmpty((a=n[5])==null?void 0:a.options)&&!((f=(u=n[5])==null?void 0:u.options)!=null&&f.manageRule),l,o,r=s&&Md();return{c(){e=v("button"),t=v("span"),t.textContent="Options",i=O(),r&&r.c(),p(t,"class","txt"),p(e,"type","button"),p(e,"class","tab-item"),ne(e,"active",n[3]===Ts)},m(c,d){S(c,e,d),_(e,t),_(e,i),r&&r.m(e,null),l||(o=K(e,"click",n[28]),l=!0)},p(c,d){var h,m,b;d[0]&32&&(s=!W.isEmpty((h=c[5])==null?void 0:h.options)&&!((b=(m=c[5])==null?void 0:m.options)!=null&&b.manageRule)),s?r?d[0]&32&&A(r,1):(r=Md(),r.c(),A(r,1),r.m(e,null)):r&&(pe(),P(r,1,1,()=>{r=null}),he()),d[0]&8&&ne(e,"active",c[3]===Ts)},d(c){c&&w(e),r&&r.d(),l=!1,o()}}}function Md(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,"Has errors")),s=!0)},i(o){i||(o&&xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){o&&(t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function F3(n){var z,J,G,X,Q,ie,Y,x;let e,t=n[2].isNew?"New collection":"Edit collection",i,s,l,o,r,a,u,f,c,d,h,m,b=!W.isEmpty((z=n[5])==null?void 0:z.schema),g,y,k,$,C=!W.isEmpty((J=n[5])==null?void 0:J.listRule)||!W.isEmpty((G=n[5])==null?void 0:G.viewRule)||!W.isEmpty((X=n[5])==null?void 0:X.createRule)||!W.isEmpty((Q=n[5])==null?void 0:Q.updateRule)||!W.isEmpty((ie=n[5])==null?void 0:ie.deleteRule)||!W.isEmpty((x=(Y=n[5])==null?void 0:Y.options)==null?void 0:x.manageRule),T,M,D,E,I=!n[2].isNew&&!n[2].system&&yd(n);r=new ge({props:{class:"form-field collection-field-name required m-b-0 "+(n[12]?"disabled":""),name:"name",$$slots:{default:[N3,({uniqueId:U})=>({42:U}),({uniqueId:U})=>[0,U?2048:0]]},$$scope:{ctx:n}}});let L=b&&$d(n),F=C&&Cd(),q=n[2].isAuth&&Td(n);return{c(){e=v("h4"),i=B(t),s=O(),I&&I.c(),l=O(),o=v("form"),j(r.$$.fragment),a=O(),u=v("input"),f=O(),c=v("div"),d=v("button"),h=v("span"),h.textContent="Fields",m=O(),L&&L.c(),g=O(),y=v("button"),k=v("span"),k.textContent="API Rules",$=O(),F&&F.c(),T=O(),q&&q.c(),p(u,"type","submit"),p(u,"class","hidden"),p(u,"tabindex","-1"),p(o,"class","block"),p(h,"class","txt"),p(d,"type","button"),p(d,"class","tab-item"),ne(d,"active",n[3]===gi),p(k,"class","txt"),p(y,"type","button"),p(y,"class","tab-item"),ne(y,"active",n[3]===gl),p(c,"class","tabs-header stretched")},m(U,re){S(U,e,re),_(e,i),S(U,s,re),I&&I.m(U,re),S(U,l,re),S(U,o,re),R(r,o,null),_(o,a),_(o,u),S(U,f,re),S(U,c,re),_(c,d),_(d,h),_(d,m),L&&L.m(d,null),_(c,g),_(c,y),_(y,k),_(y,$),F&&F.m(y,null),_(c,T),q&&q.m(c,null),M=!0,D||(E=[K(o,"submit",ut(n[25])),K(d,"click",n[26]),K(y,"click",n[27])],D=!0)},p(U,re){var Ne,Le,Fe,me,Se,we,We,ue;(!M||re[0]&4)&&t!==(t=U[2].isNew?"New collection":"Edit collection")&&ae(i,t),!U[2].isNew&&!U[2].system?I?(I.p(U,re),re[0]&4&&A(I,1)):(I=yd(U),I.c(),A(I,1),I.m(l.parentNode,l)):I&&(pe(),P(I,1,1,()=>{I=null}),he());const Re={};re[0]&4096&&(Re.class="form-field collection-field-name required m-b-0 "+(U[12]?"disabled":"")),re[0]&4164|re[1]&67584&&(Re.$$scope={dirty:re,ctx:U}),r.$set(Re),re[0]&32&&(b=!W.isEmpty((Ne=U[5])==null?void 0:Ne.schema)),b?L?(L.p(U,re),re[0]&32&&A(L,1)):(L=$d(U),L.c(),A(L,1),L.m(d,null)):L&&(pe(),P(L,1,1,()=>{L=null}),he()),(!M||re[0]&8)&&ne(d,"active",U[3]===gi),re[0]&32&&(C=!W.isEmpty((Le=U[5])==null?void 0:Le.listRule)||!W.isEmpty((Fe=U[5])==null?void 0:Fe.viewRule)||!W.isEmpty((me=U[5])==null?void 0:me.createRule)||!W.isEmpty((Se=U[5])==null?void 0:Se.updateRule)||!W.isEmpty((we=U[5])==null?void 0:we.deleteRule)||!W.isEmpty((ue=(We=U[5])==null?void 0:We.options)==null?void 0:ue.manageRule)),C?F?re[0]&32&&A(F,1):(F=Cd(),F.c(),A(F,1),F.m(y,null)):F&&(pe(),P(F,1,1,()=>{F=null}),he()),(!M||re[0]&8)&&ne(y,"active",U[3]===gl),U[2].isAuth?q?q.p(U,re):(q=Td(U),q.c(),q.m(c,null)):q&&(q.d(1),q=null)},i(U){M||(A(I),A(r.$$.fragment,U),A(L),A(F),M=!0)},o(U){P(I),P(r.$$.fragment,U),P(L),P(F),M=!1},d(U){U&&w(e),U&&w(s),I&&I.d(U),U&&w(l),U&&w(o),H(r),U&&w(f),U&&w(c),L&&L.d(),F&&F.d(),q&&q.d(),D=!1,Pe(E)}}}function R3(n){let e,t,i,s,l,o=n[2].isNew?"Create":"Save changes",r,a,u,f;return{c(){e=v("button"),t=v("span"),t.textContent="Cancel",i=O(),s=v("button"),l=v("span"),r=B(o),p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary"),e.disabled=n[9],p(l,"class","txt"),p(s,"type","button"),p(s,"class","btn btn-expanded"),s.disabled=a=!n[11]||n[9],ne(s,"btn-loading",n[9])},m(c,d){S(c,e,d),_(e,t),S(c,i,d),S(c,s,d),_(s,l),_(l,r),u||(f=[K(e,"click",n[20]),K(s,"click",n[21])],u=!0)},p(c,d){d[0]&512&&(e.disabled=c[9]),d[0]&4&&o!==(o=c[2].isNew?"Create":"Save changes")&&ae(r,o),d[0]&2560&&a!==(a=!c[11]||c[9])&&(s.disabled=a),d[0]&512&&ne(s,"btn-loading",c[9])},d(c){c&&w(e),c&&w(i),c&&w(s),u=!1,Pe(f)}}}function H3(n){let e,t,i,s,l={class:"overlay-panel-lg colored-header collection-panel",beforeHide:n[32],$$slots:{footer:[R3],header:[F3],default:[I3]},$$scope:{ctx:n}};e=new Jn({props:l}),n[33](e),e.$on("hide",n[34]),e.$on("show",n[35]);let o={};return i=new E3({props:o}),n[36](i),i.$on("confirm",n[37]),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(r,a){R(e,r,a),S(r,t,a),R(i,r,a),s=!0},p(r,a){const u={};a[0]&1040&&(u.beforeHide=r[32]),a[0]&14956|a[1]&65536&&(u.$$scope={dirty:a,ctx:r}),e.$set(u);const f={};i.$set(f)},i(r){s||(A(e.$$.fragment,r),A(i.$$.fragment,r),s=!0)},o(r){P(e.$$.fragment,r),P(i.$$.fragment,r),s=!1},d(r){n[33](null),H(e,r),r&&w(t),n[36](null),H(i,r)}}}const gi="fields",gl="api_rules",Ts="options",j3="base",Od="auth";function $r(n){return JSON.stringify(n)}function q3(n,e,t){let i,s,l,o,r;Ze(n,wi,we=>t(5,r=we));const a={};a[j3]="Base",a[Od]="Auth";const u=It();let f,c,d=null,h=new Pn,m=!1,b=!1,g=gi,y=$r(h);function k(we){t(3,g=we)}function $(we){return T(we),t(10,b=!0),k(gi),f==null?void 0:f.show()}function C(){return f==null?void 0:f.hide()}async function T(we){Fn({}),typeof we<"u"?(d=we,t(2,h=we==null?void 0:we.clone())):(d=null,t(2,h=new Pn)),t(2,h.schema=h.schema||[],h),t(2,h.originalName=h.name||"",h),await Tn(),t(19,y=$r(h))}function M(){if(h.isNew)return D();c==null||c.show(h)}function D(){if(m)return;t(9,m=!0);const we=E();let We;h.isNew?We=de.collections.create(we):We=de.collections.update(h.id,we),We.then(ue=>{t(10,b=!1),C(),Lt(h.isNew?"Successfully created collection.":"Successfully updated collection."),ES(ue),u("save",{isNew:h.isNew,collection:ue})}).catch(ue=>{de.errorResponseHandler(ue)}).finally(()=>{t(9,m=!1)})}function E(){const we=h.export();we.schema=we.schema.slice(0);for(let We=we.schema.length-1;We>=0;We--)we.schema[We].toDelete&&we.schema.splice(We,1);return we}function I(){!(d!=null&&d.id)||wn(`Do you really want to delete collection "${d==null?void 0:d.name}" and all its records?`,()=>de.collections.delete(d==null?void 0:d.id).then(()=>{C(),Lt(`Successfully deleted collection "${d==null?void 0:d.name}".`),u("delete",d),IS(d)}).catch(we=>{de.errorResponseHandler(we)}))}function L(we){t(2,h.type=we,h),ks("schema")}const F=()=>C(),q=()=>M(),z=()=>I(),J=we=>{t(2,h.name=W.slugify(we.target.value),h),we.target.value=h.name},G=we=>L(we),X=()=>{o&&M()},Q=()=>k(gi),ie=()=>k(gl),Y=()=>k(Ts);function x(we){h=we,t(2,h)}function U(we){h=we,t(2,h)}function re(we){h=we,t(2,h)}const Re=()=>l&&b?(wn("You have unsaved changes. Do you really want to close the panel?",()=>{t(10,b=!1),C()}),!1):!0;function Ne(we){le[we?"unshift":"push"](()=>{f=we,t(7,f)})}function Le(we){Ve.call(this,n,we)}function Fe(we){Ve.call(this,n,we)}function me(we){le[we?"unshift":"push"](()=>{c=we,t(8,c)})}const Se=()=>D();return n.$$.update=()=>{n.$$.dirty[0]&32&&t(13,i=typeof W.getNestedVal(r,"schema.message",null)=="string"?W.getNestedVal(r,"schema.message"):"Has errors"),n.$$.dirty[0]&4&&t(12,s=!h.isNew&&h.system),n.$$.dirty[0]&524292&&t(4,l=y!=$r(h)),n.$$.dirty[0]&20&&t(11,o=h.isNew||l),n.$$.dirty[0]&12&&g===Ts&&h.type!==Od&&k(gi)},[k,C,h,g,l,r,a,f,c,m,b,o,s,i,M,D,I,L,$,y,F,q,z,J,G,X,Q,ie,Y,x,U,re,Re,Ne,Le,Fe,me,Se]}class Ja extends ye{constructor(e){super(),ve(this,e,q3,H3,be,{changeTab:0,show:18,hide:1},null,[-1,-1])}get changeTab(){return this.$$.ctx[0]}get show(){return this.$$.ctx[18]}get hide(){return this.$$.ctx[1]}}function Dd(n,e,t){const i=n.slice();return i[14]=e[t],i}function Ad(n){let e,t=n[1].length&&Ed();return{c(){t&&t.c(),e=Ae()},m(i,s){t&&t.m(i,s),S(i,e,s)},p(i,s){i[1].length?t||(t=Ed(),t.c(),t.m(e.parentNode,e)):t&&(t.d(1),t=null)},d(i){t&&t.d(i),i&&w(e)}}}function Ed(n){let e;return{c(){e=v("p"),e.textContent="No collections found.",p(e,"class","txt-hint m-t-10 m-b-10 txt-center")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Id(n,e){let t,i,s,l,o,r=e[14].name+"",a,u,f,c,d;return{key:n,first:null,c(){var h;t=v("a"),i=v("i"),l=O(),o=v("span"),a=B(r),u=O(),p(i,"class",s=W.getCollectionTypeIcon(e[14].type)),p(o,"class","txt"),p(t,"href",f="/collections?collectionId="+e[14].id),p(t,"class","sidebar-list-item"),ne(t,"active",((h=e[5])==null?void 0:h.id)===e[14].id),this.first=t},m(h,m){S(h,t,m),_(t,i),_(t,l),_(t,o),_(o,a),_(t,u),c||(d=Ee(Bt.call(null,t)),c=!0)},p(h,m){var b;e=h,m&8&&s!==(s=W.getCollectionTypeIcon(e[14].type))&&p(i,"class",s),m&8&&r!==(r=e[14].name+"")&&ae(a,r),m&8&&f!==(f="/collections?collectionId="+e[14].id)&&p(t,"href",f),m&40&&ne(t,"active",((b=e[5])==null?void 0:b.id)===e[14].id)},d(h){h&&w(t),c=!1,d()}}}function Pd(n){let e,t,i,s;return{c(){e=v("footer"),t=v("button"),t.innerHTML=` - New collection`,p(t,"type","button"),p(t,"class","btn btn-block btn-outline"),p(e,"class","sidebar-footer")},m(l,o){S(l,e,o),_(e,t),i||(s=K(t,"click",n[11]),i=!0)},p:te,d(l){l&&w(e),i=!1,s()}}}function V3(n){let e,t,i,s,l,o,r,a,u,f,c,d=[],h=new Map,m,b,g,y,k,$,C=n[3];const T=I=>I[14].id;for(let I=0;I',o=O(),r=v("input"),a=O(),u=v("hr"),f=O(),c=v("div");for(let I=0;I20),p(e,"class","page-sidebar collection-sidebar")},m(I,L){S(I,e,L),_(e,t),_(t,i),_(i,s),_(s,l),_(i,o),_(i,r),ce(r,n[0]),_(e,a),_(e,u),_(e,f),_(e,c);for(let F=0;F20),I[6]?D&&(D.d(1),D=null):D?D.p(I,L):(D=Pd(I),D.c(),D.m(e,null));const F={};g.$set(F)},i(I){y||(A(g.$$.fragment,I),y=!0)},o(I){P(g.$$.fragment,I),y=!1},d(I){I&&w(e);for(let L=0;L{const n=document.querySelector(".collection-sidebar .sidebar-list-item.active");n&&(n==null||n.scrollIntoView({block:"nearest"}))},0)}function B3(n,e,t){let i,s,l,o,r,a;Ze(n,Bn,y=>t(5,o=y)),Ze(n,Zi,y=>t(8,r=y)),Ze(n,ws,y=>t(6,a=y));let u,f="";function c(y){Ht(Bn,o=y,o)}const d=()=>t(0,f="");function h(){f=this.value,t(0,f)}const m=()=>u==null?void 0:u.show();function b(y){le[y?"unshift":"push"](()=>{u=y,t(2,u)})}const g=y=>{var k;((k=y.detail)==null?void 0:k.isNew)&&y.detail.collection&&c(y.detail.collection)};return n.$$.update=()=>{n.$$.dirty&1&&t(1,i=f.replace(/\s+/g,"").toLowerCase()),n.$$.dirty&1&&t(4,s=f!==""),n.$$.dirty&259&&t(3,l=r.filter(y=>y.id==f||y.name.replace(/\s+/g,"").toLowerCase().includes(i))),n.$$.dirty&256&&r&&z3()},[f,i,u,l,s,o,a,c,r,d,h,m,b,g]}class U3 extends ye{constructor(e){super(),ve(this,e,B3,V3,be,{})}}function Ld(n,e,t){const i=n.slice();return i[14]=e[t][0],i[15]=e[t][1],i}function Nd(n){n[18]=n[19].default}function Fd(n,e,t){const i=n.slice();return i[14]=e[t][0],i[15]=e[t][1],i[21]=t,i}function Rd(n){let e;return{c(){e=v("hr"),p(e,"class","m-t-sm m-b-sm")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Hd(n,e){let t,i=e[21]===Object.keys(e[6]).length,s,l,o=e[15].label+"",r,a,u,f,c=i&&Rd();function d(){return e[9](e[14])}return{key:n,first:null,c(){t=Ae(),c&&c.c(),s=O(),l=v("button"),r=B(o),a=O(),p(l,"type","button"),p(l,"class","sidebar-item"),ne(l,"active",e[5]===e[14]),this.first=t},m(h,m){S(h,t,m),c&&c.m(h,m),S(h,s,m),S(h,l,m),_(l,r),_(l,a),u||(f=K(l,"click",d),u=!0)},p(h,m){e=h,m&8&&(i=e[21]===Object.keys(e[6]).length),i?c||(c=Rd(),c.c(),c.m(s.parentNode,s)):c&&(c.d(1),c=null),m&8&&o!==(o=e[15].label+"")&&ae(r,o),m&40&&ne(l,"active",e[5]===e[14])},d(h){h&&w(t),c&&c.d(h),h&&w(s),h&&w(l),u=!1,f()}}}function jd(n){let e,t,i,s={ctx:n,current:null,token:null,hasCatch:!1,pending:K3,then:Y3,catch:W3,value:19,blocks:[,,,]};return xa(t=n[15].component,s),{c(){e=Ae(),s.block.c()},m(l,o){S(l,e,o),s.block.m(l,s.anchor=o),s.mount=()=>e.parentNode,s.anchor=e,i=!0},p(l,o){n=l,s.ctx=n,o&8&&t!==(t=n[15].component)&&xa(t,s)||u0(s,n,o)},i(l){i||(A(s.block),i=!0)},o(l){for(let o=0;o<3;o+=1){const r=s.blocks[o];P(r)}i=!1},d(l){l&&w(e),s.block.d(l),s.token=null,s=null}}}function W3(n){return{c:te,m:te,p:te,i:te,o:te,d:te}}function Y3(n){Nd(n);let e,t,i;return e=new n[18]({props:{collection:n[2]}}),{c(){j(e.$$.fragment),t=O()},m(s,l){R(e,s,l),S(s,t,l),i=!0},p(s,l){Nd(s);const o={};l&4&&(o.collection=s[2]),e.$set(o)},i(s){i||(A(e.$$.fragment,s),i=!0)},o(s){P(e.$$.fragment,s),i=!1},d(s){H(e,s),s&&w(t)}}}function K3(n){return{c:te,m:te,p:te,i:te,o:te,d:te}}function qd(n,e){let t,i,s,l=e[5]===e[14]&&jd(e);return{key:n,first:null,c(){t=Ae(),l&&l.c(),i=Ae(),this.first=t},m(o,r){S(o,t,r),l&&l.m(o,r),S(o,i,r),s=!0},p(o,r){e=o,e[5]===e[14]?l?(l.p(e,r),r&40&&A(l,1)):(l=jd(e),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(pe(),P(l,1,1,()=>{l=null}),he())},i(o){s||(A(l),s=!0)},o(o){P(l),s=!1},d(o){o&&w(t),l&&l.d(o),o&&w(i)}}}function J3(n){let e,t,i,s=[],l=new Map,o,r,a=[],u=new Map,f,c=Object.entries(n[3]);const d=b=>b[14];for(let b=0;bb[14];for(let b=0;bClose',p(e,"type","button"),p(e,"class","btn btn-secondary")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[8]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function G3(n){let e,t,i={class:"docs-panel",$$slots:{footer:[Z3],default:[J3]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[10](e),e.$on("hide",n[11]),e.$on("show",n[12]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,[l]){const o={};l&4194348&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[10](null),H(e,s)}}}function X3(n,e,t){const i={list:{label:"List/Search",component:st(()=>import("./ListApiDocs.ce5b163a.js"),["./ListApiDocs.ce5b163a.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css","./ListApiDocs.68f52edd.css"],import.meta.url)},view:{label:"View",component:st(()=>import("./ViewApiDocs.fc364f02.js"),["./ViewApiDocs.fc364f02.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},create:{label:"Create",component:st(()=>import("./CreateApiDocs.3f3559b2.js"),["./CreateApiDocs.3f3559b2.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},update:{label:"Update",component:st(()=>import("./UpdateApiDocs.4f916b3c.js"),["./UpdateApiDocs.4f916b3c.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},delete:{label:"Delete",component:st(()=>import("./DeleteApiDocs.f6458b62.js"),["./DeleteApiDocs.f6458b62.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},realtime:{label:"Realtime",component:st(()=>import("./RealtimeApiDocs.09f1a44d.js"),["./RealtimeApiDocs.09f1a44d.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)}},s={"auth-with-password":{label:"Auth with password",component:st(()=>import("./AuthWithPasswordDocs.e5fec4ed.js"),["./AuthWithPasswordDocs.e5fec4ed.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"auth-with-oauth2":{label:"Auth with OAuth2",component:st(()=>import("./AuthWithOAuth2Docs.9e9d428f.js"),["./AuthWithOAuth2Docs.9e9d428f.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},refresh:{label:"Auth refresh",component:st(()=>import("./AuthRefreshDocs.22f0390a.js"),["./AuthRefreshDocs.22f0390a.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"request-verification":{label:"Request verification",component:st(()=>import("./RequestVerificationDocs.721e1f8a.js"),["./RequestVerificationDocs.721e1f8a.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"confirm-verification":{label:"Confirm verification",component:st(()=>import("./ConfirmVerificationDocs.e3577ba9.js"),["./ConfirmVerificationDocs.e3577ba9.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"request-password-reset":{label:"Request password reset",component:st(()=>import("./RequestPasswordResetDocs.b951fc1c.js"),["./RequestPasswordResetDocs.b951fc1c.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"confirm-password-reset":{label:"Confirm password reset",component:st(()=>import("./ConfirmPasswordResetDocs.4e774978.js"),["./ConfirmPasswordResetDocs.4e774978.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"request-email-change":{label:"Request email change",component:st(()=>import("./RequestEmailChangeDocs.7c5e6cd7.js"),["./RequestEmailChangeDocs.7c5e6cd7.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"confirm-email-change":{label:"Confirm email change",component:st(()=>import("./ConfirmEmailChangeDocs.25e65842.js"),["./ConfirmEmailChangeDocs.25e65842.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"list-auth-methods":{label:"List auth methods",component:st(()=>import("./AuthMethodsDocs.a60349f6.js"),["./AuthMethodsDocs.a60349f6.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"list-linked-accounts":{label:"List OAuth2 accounts",component:st(()=>import("./ListExternalAuthsDocs.084671ec.js"),["./ListExternalAuthsDocs.084671ec.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)},"unlink-account":{label:"Unlink OAuth2 account",component:st(()=>import("./UnlinkExternalAuthDocs.b6769a74.js"),["./UnlinkExternalAuthDocs.b6769a74.js","./SdkTabs.1e98a608.js","./SdkTabs.9b0b7a06.css"],import.meta.url)}};let l,o=new Pn,r,a=[];a.length&&(r=Object.keys(a)[0]);function u(y){return t(2,o=y),c(Object.keys(a)[0]),l==null?void 0:l.show()}function f(){return l==null?void 0:l.hide()}function c(y){t(5,r=y)}const d=()=>f(),h=y=>c(y);function m(y){le[y?"unshift":"push"](()=>{l=y,t(4,l)})}function b(y){Ve.call(this,n,y)}function g(y){Ve.call(this,n,y)}return n.$$.update=()=>{n.$$.dirty&12&&(o.isAuth?(t(3,a=Object.assign({},i,s)),!(o!=null&&o.options.allowUsernameAuth)&&!(o!=null&&o.options.allowEmailAuth)&&delete a["auth-with-password"],o!=null&&o.options.allowOAuth2Auth||delete a["auth-with-oauth2"]):t(3,a=Object.assign({},i)))},[f,c,o,a,l,r,i,u,d,h,m,b,g]}class Q3 extends ye{constructor(e){super(),ve(this,e,X3,G3,be,{show:7,hide:0,changeTab:1})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}get changeTab(){return this.$$.ctx[1]}}function x3(n){let e,t,i,s,l,o,r,a,u,f,c,d;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="Username",o=O(),r=v("input"),p(t,"class",W.getFieldTypeIcon("user")),p(s,"class","txt"),p(e,"for",l=n[12]),p(r,"type","text"),p(r,"requried",a=!n[0].isNew),p(r,"placeholder",u=n[0].isNew?"Leave empty to auto generate...":n[3]),p(r,"id",f=n[12])},m(h,m){S(h,e,m),_(e,t),_(e,i),_(e,s),S(h,o,m),S(h,r,m),ce(r,n[0].username),c||(d=K(r,"input",n[4]),c=!0)},p(h,m){m&4096&&l!==(l=h[12])&&p(e,"for",l),m&1&&a!==(a=!h[0].isNew)&&p(r,"requried",a),m&1&&u!==(u=h[0].isNew?"Leave empty to auto generate...":h[3])&&p(r,"placeholder",u),m&4096&&f!==(f=h[12])&&p(r,"id",f),m&1&&r.value!==h[0].username&&ce(r,h[0].username)},d(h){h&&w(e),h&&w(o),h&&w(r),c=!1,d()}}}function e4(n){let e,t,i,s,l,o,r,a,u,f,c=n[0].emailVisibility?"On":"Off",d,h,m,b,g,y,k,$,C;return{c(){var T;e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="Email",o=O(),r=v("div"),a=v("button"),u=v("span"),f=B("Public: "),d=B(c),m=O(),b=v("input"),p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"for",l=n[12]),p(u,"class","txt"),p(a,"type","button"),p(a,"class",h="btn btn-sm btn-secondary "+(n[0].emailVisibility?"btn-success":"btn-hint")),p(r,"class","form-field-addon email-visibility-addon svelte-1751a4d"),p(b,"type","email"),b.autofocus=g=n[0].isNew,p(b,"autocomplete","off"),p(b,"id",y=n[12]),b.required=k=(T=n[1].options)==null?void 0:T.requireEmail,p(b,"class","svelte-1751a4d")},m(T,M){S(T,e,M),_(e,t),_(e,i),_(e,s),S(T,o,M),S(T,r,M),_(r,a),_(a,u),_(u,f),_(u,d),S(T,m,M),S(T,b,M),ce(b,n[0].email),n[0].isNew&&b.focus(),$||(C=[Ee(Be.call(null,a,{text:"Make email public or private",position:"top-right"})),K(a,"click",n[5]),K(b,"input",n[6])],$=!0)},p(T,M){var D;M&4096&&l!==(l=T[12])&&p(e,"for",l),M&1&&c!==(c=T[0].emailVisibility?"On":"Off")&&ae(d,c),M&1&&h!==(h="btn btn-sm btn-secondary "+(T[0].emailVisibility?"btn-success":"btn-hint"))&&p(a,"class",h),M&1&&g!==(g=T[0].isNew)&&(b.autofocus=g),M&4096&&y!==(y=T[12])&&p(b,"id",y),M&2&&k!==(k=(D=T[1].options)==null?void 0:D.requireEmail)&&(b.required=k),M&1&&b.value!==T[0].email&&ce(b,T[0].email)},d(T){T&&w(e),T&&w(o),T&&w(r),T&&w(m),T&&w(b),$=!1,Pe(C)}}}function Vd(n){let e,t;return e=new ge({props:{class:"form-field form-field-toggle",name:"verified",$$slots:{default:[t4,({uniqueId:i})=>({12:i}),({uniqueId:i})=>i?4096:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s&12292&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function t4(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Change password"),p(e,"type","checkbox"),p(e,"id",t=n[12]),p(s,"for",o=n[12])},m(u,f){S(u,e,f),e.checked=n[2],S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[7]),r=!0)},p(u,f){f&4096&&t!==(t=u[12])&&p(e,"id",t),f&4&&(e.checked=u[2]),f&4096&&o!==(o=u[12])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function zd(n){let e,t,i,s,l,o,r,a,u;return s=new ge({props:{class:"form-field required",name:"password",$$slots:{default:[n4,({uniqueId:f})=>({12:f}),({uniqueId:f})=>f?4096:0]},$$scope:{ctx:n}}}),r=new ge({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[i4,({uniqueId:f})=>({12:f}),({uniqueId:f})=>f?4096:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),i=v("div"),j(s.$$.fragment),l=O(),o=v("div"),j(r.$$.fragment),p(i,"class","col-sm-6"),p(o,"class","col-sm-6"),p(t,"class","grid"),ne(t,"p-t-xs",n[2]),p(e,"class","block")},m(f,c){S(f,e,c),_(e,t),_(t,i),R(s,i,null),_(t,l),_(t,o),R(r,o,null),u=!0},p(f,c){const d={};c&12289&&(d.$$scope={dirty:c,ctx:f}),s.$set(d);const h={};c&12289&&(h.$$scope={dirty:c,ctx:f}),r.$set(h),(!u||c&4)&&ne(t,"p-t-xs",f[2])},i(f){u||(A(s.$$.fragment,f),A(r.$$.fragment,f),f&&xe(()=>{a||(a=je(e,St,{duration:150},!0)),a.run(1)}),u=!0)},o(f){P(s.$$.fragment,f),P(r.$$.fragment,f),f&&(a||(a=je(e,St,{duration:150},!1)),a.run(0)),u=!1},d(f){f&&w(e),H(s),H(r),f&&a&&a.end()}}}function n4(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="Password",o=O(),r=v("input"),p(t,"class","ri-lock-line"),p(s,"class","txt"),p(e,"for",l=n[12]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[12]),r.required=!0},m(c,d){S(c,e,d),_(e,t),_(e,i),_(e,s),S(c,o,d),S(c,r,d),ce(r,n[0].password),u||(f=K(r,"input",n[8]),u=!0)},p(c,d){d&4096&&l!==(l=c[12])&&p(e,"for",l),d&4096&&a!==(a=c[12])&&p(r,"id",a),d&1&&r.value!==c[0].password&&ce(r,c[0].password)},d(c){c&&w(e),c&&w(o),c&&w(r),u=!1,f()}}}function i4(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="Password confirm",o=O(),r=v("input"),p(t,"class","ri-lock-line"),p(s,"class","txt"),p(e,"for",l=n[12]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[12]),r.required=!0},m(c,d){S(c,e,d),_(e,t),_(e,i),_(e,s),S(c,o,d),S(c,r,d),ce(r,n[0].passwordConfirm),u||(f=K(r,"input",n[9]),u=!0)},p(c,d){d&4096&&l!==(l=c[12])&&p(e,"for",l),d&4096&&a!==(a=c[12])&&p(r,"id",a),d&1&&r.value!==c[0].passwordConfirm&&ce(r,c[0].passwordConfirm)},d(c){c&&w(e),c&&w(o),c&&w(r),u=!1,f()}}}function s4(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Verified"),p(e,"type","checkbox"),p(e,"id",t=n[12]),p(s,"for",o=n[12])},m(u,f){S(u,e,f),e.checked=n[0].verified,S(u,i,f),S(u,s,f),_(s,l),r||(a=[K(e,"change",n[10]),K(e,"change",ut(n[11]))],r=!0)},p(u,f){f&4096&&t!==(t=u[12])&&p(e,"id",t),f&1&&(e.checked=u[0].verified),f&4096&&o!==(o=u[12])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,Pe(a)}}}function l4(n){var g;let e,t,i,s,l,o,r,a,u,f,c,d,h;i=new ge({props:{class:"form-field "+(n[0].isNew?"":"required"),name:"username",$$slots:{default:[x3,({uniqueId:y})=>({12:y}),({uniqueId:y})=>y?4096:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field "+((g=n[1].options)!=null&&g.requireEmail?"required":""),name:"email",$$slots:{default:[e4,({uniqueId:y})=>({12:y}),({uniqueId:y})=>y?4096:0]},$$scope:{ctx:n}}});let m=!n[0].isNew&&Vd(n),b=(n[0].isNew||n[2])&&zd(n);return d=new ge({props:{class:"form-field form-field-toggle",name:"verified",$$slots:{default:[s4,({uniqueId:y})=>({12:y}),({uniqueId:y})=>y?4096:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),a=v("div"),m&&m.c(),u=O(),b&&b.c(),f=O(),c=v("div"),j(d.$$.fragment),p(t,"class","col-lg-6"),p(l,"class","col-lg-6"),p(a,"class","col-lg-12"),p(c,"class","col-lg-12"),p(e,"class","grid m-b-base")},m(y,k){S(y,e,k),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),_(e,r),_(e,a),m&&m.m(a,null),_(a,u),b&&b.m(a,null),_(e,f),_(e,c),R(d,c,null),h=!0},p(y,[k]){var M;const $={};k&1&&($.class="form-field "+(y[0].isNew?"":"required")),k&12289&&($.$$scope={dirty:k,ctx:y}),i.$set($);const C={};k&2&&(C.class="form-field "+((M=y[1].options)!=null&&M.requireEmail?"required":"")),k&12291&&(C.$$scope={dirty:k,ctx:y}),o.$set(C),y[0].isNew?m&&(pe(),P(m,1,1,()=>{m=null}),he()):m?(m.p(y,k),k&1&&A(m,1)):(m=Vd(y),m.c(),A(m,1),m.m(a,u)),y[0].isNew||y[2]?b?(b.p(y,k),k&5&&A(b,1)):(b=zd(y),b.c(),A(b,1),b.m(a,null)):b&&(pe(),P(b,1,1,()=>{b=null}),he());const T={};k&12289&&(T.$$scope={dirty:k,ctx:y}),d.$set(T)},i(y){h||(A(i.$$.fragment,y),A(o.$$.fragment,y),A(m),A(b),A(d.$$.fragment,y),h=!0)},o(y){P(i.$$.fragment,y),P(o.$$.fragment,y),P(m),P(b),P(d.$$.fragment,y),h=!1},d(y){y&&w(e),H(i),H(o),m&&m.d(),b&&b.d(),H(d)}}}function o4(n,e,t){let{collection:i=new Pn}=e,{record:s=new Wi}=e,l=s.username||null,o=!1;function r(){s.username=this.value,t(0,s),t(2,o)}const a=()=>t(0,s.emailVisibility=!s.emailVisibility,s);function u(){s.email=this.value,t(0,s),t(2,o)}function f(){o=this.checked,t(2,o)}function c(){s.password=this.value,t(0,s),t(2,o)}function d(){s.passwordConfirm=this.value,t(0,s),t(2,o)}function h(){s.verified=this.checked,t(0,s),t(2,o)}const m=b=>{s.isNew||wn("Do you really want to manually change the verified account state?",()=>{},()=>{t(0,s.verified=!b.target.checked,s)})};return n.$$set=b=>{"collection"in b&&t(1,i=b.collection),"record"in b&&t(0,s=b.record)},n.$$.update=()=>{n.$$.dirty&1&&!s.username&&s.username!==null&&t(0,s.username=null,s),n.$$.dirty&4&&(o||(t(0,s.password=null,s),t(0,s.passwordConfirm=null,s),ks("password"),ks("passwordConfirm")))},[s,i,o,l,r,a,u,f,c,d,h,m]}class r4 extends ye{constructor(e){super(),ve(this,e,o4,l4,be,{collection:1,record:0})}}function a4(n){let e,t,i,s=[n[3]],l={};for(let o=0;o{r&&(t(1,r.style.height="",r),t(1,r.style.height=Math.min(r.scrollHeight+2,o)+"px",r))},0)}function f(h){if((h==null?void 0:h.code)==="Enter"&&!(h!=null&&h.shiftKey)){h.preventDefault();const m=r.closest("form");m!=null&&m.requestSubmit&&m.requestSubmit()}}cn(()=>(u(),()=>clearTimeout(a)));function c(h){le[h?"unshift":"push"](()=>{r=h,t(1,r)})}function d(){l=this.value,t(0,l)}return n.$$set=h=>{e=Ke(Ke({},e),Wn(h)),t(3,s=wt(e,i)),"value"in h&&t(0,l=h.value),"maxHeight"in h&&t(4,o=h.maxHeight)},n.$$.update=()=>{n.$$.dirty&1&&typeof l!==void 0&&u()},[l,r,f,s,o,c,d]}class f4 extends ye{constructor(e){super(),ve(this,e,u4,a4,be,{value:0,maxHeight:4})}}function c4(n){let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d;function h(b){n[2](b)}let m={id:n[3],required:n[1].required};return n[0]!==void 0&&(m.value=n[0]),f=new f4({props:m}),le.push(()=>_e(f,"value",h)),{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),j(f.$$.fragment),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",a=n[3])},m(b,g){S(b,e,g),_(e,t),_(e,s),_(e,l),_(l,r),S(b,u,g),R(f,b,g),d=!0},p(b,g){(!d||g&2&&i!==(i=W.getFieldTypeIcon(b[1].type)))&&p(t,"class",i),(!d||g&2)&&o!==(o=b[1].name+"")&&ae(r,o),(!d||g&8&&a!==(a=b[3]))&&p(e,"for",a);const y={};g&8&&(y.id=b[3]),g&2&&(y.required=b[1].required),!c&&g&1&&(c=!0,y.value=b[0],ke(()=>c=!1)),f.$set(y)},i(b){d||(A(f.$$.fragment,b),d=!0)},o(b){P(f.$$.fragment,b),d=!1},d(b){b&&w(e),b&&w(u),H(f,b)}}}function d4(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[c4,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&27&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function p4(n,e,t){let{field:i=new dn}=e,{value:s=void 0}=e;function l(o){s=o,t(0,s)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,s=o.value)},[s,i,l]}class h4 extends ye{constructor(e){super(),ve(this,e,p4,d4,be,{field:1,value:0})}}function m4(n){let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d,h,m,b,g;return{c(){var y,k;e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),f=v("input"),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",a=n[3]),p(f,"type","number"),p(f,"id",c=n[3]),f.required=d=n[1].required,p(f,"min",h=(y=n[1].options)==null?void 0:y.min),p(f,"max",m=(k=n[1].options)==null?void 0:k.max),p(f,"step","any")},m(y,k){S(y,e,k),_(e,t),_(e,s),_(e,l),_(l,r),S(y,u,k),S(y,f,k),ce(f,n[0]),b||(g=K(f,"input",n[2]),b=!0)},p(y,k){var $,C;k&2&&i!==(i=W.getFieldTypeIcon(y[1].type))&&p(t,"class",i),k&2&&o!==(o=y[1].name+"")&&ae(r,o),k&8&&a!==(a=y[3])&&p(e,"for",a),k&8&&c!==(c=y[3])&&p(f,"id",c),k&2&&d!==(d=y[1].required)&&(f.required=d),k&2&&h!==(h=($=y[1].options)==null?void 0:$.min)&&p(f,"min",h),k&2&&m!==(m=(C=y[1].options)==null?void 0:C.max)&&p(f,"max",m),k&1&&rt(f.value)!==y[0]&&ce(f,y[0])},d(y){y&&w(e),y&&w(u),y&&w(f),b=!1,g()}}}function g4(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[m4,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&27&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function _4(n,e,t){let{field:i=new dn}=e,{value:s=void 0}=e;function l(){s=rt(this.value),t(0,s)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,s=o.value)},[s,i,l]}class b4 extends ye{constructor(e){super(),ve(this,e,_4,g4,be,{field:1,value:0})}}function v4(n){let e,t,i,s,l=n[1].name+"",o,r,a,u;return{c(){e=v("input"),i=O(),s=v("label"),o=B(l),p(e,"type","checkbox"),p(e,"id",t=n[3]),p(s,"for",r=n[3])},m(f,c){S(f,e,c),e.checked=n[0],S(f,i,c),S(f,s,c),_(s,o),a||(u=K(e,"change",n[2]),a=!0)},p(f,c){c&8&&t!==(t=f[3])&&p(e,"id",t),c&1&&(e.checked=f[0]),c&2&&l!==(l=f[1].name+"")&&ae(o,l),c&8&&r!==(r=f[3])&&p(s,"for",r)},d(f){f&&w(e),f&&w(i),f&&w(s),a=!1,u()}}}function y4(n){let e,t;return e=new ge({props:{class:"form-field form-field-toggle "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[v4,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field form-field-toggle "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&27&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function k4(n,e,t){let{field:i=new dn}=e,{value:s=!1}=e;function l(){s=this.checked,t(0,s)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,s=o.value)},[s,i,l]}class w4 extends ye{constructor(e){super(),ve(this,e,k4,y4,be,{field:1,value:0})}}function S4(n){let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d,h,m;return{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),f=v("input"),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",a=n[3]),p(f,"type","email"),p(f,"id",c=n[3]),f.required=d=n[1].required},m(b,g){S(b,e,g),_(e,t),_(e,s),_(e,l),_(l,r),S(b,u,g),S(b,f,g),ce(f,n[0]),h||(m=K(f,"input",n[2]),h=!0)},p(b,g){g&2&&i!==(i=W.getFieldTypeIcon(b[1].type))&&p(t,"class",i),g&2&&o!==(o=b[1].name+"")&&ae(r,o),g&8&&a!==(a=b[3])&&p(e,"for",a),g&8&&c!==(c=b[3])&&p(f,"id",c),g&2&&d!==(d=b[1].required)&&(f.required=d),g&1&&f.value!==b[0]&&ce(f,b[0])},d(b){b&&w(e),b&&w(u),b&&w(f),h=!1,m()}}}function $4(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[S4,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&27&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function C4(n,e,t){let{field:i=new dn}=e,{value:s=void 0}=e;function l(){s=this.value,t(0,s)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,s=o.value)},[s,i,l]}class T4 extends ye{constructor(e){super(),ve(this,e,C4,$4,be,{field:1,value:0})}}function M4(n){let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d,h,m;return{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),f=v("input"),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",a=n[3]),p(f,"type","url"),p(f,"id",c=n[3]),f.required=d=n[1].required},m(b,g){S(b,e,g),_(e,t),_(e,s),_(e,l),_(l,r),S(b,u,g),S(b,f,g),ce(f,n[0]),h||(m=K(f,"input",n[2]),h=!0)},p(b,g){g&2&&i!==(i=W.getFieldTypeIcon(b[1].type))&&p(t,"class",i),g&2&&o!==(o=b[1].name+"")&&ae(r,o),g&8&&a!==(a=b[3])&&p(e,"for",a),g&8&&c!==(c=b[3])&&p(f,"id",c),g&2&&d!==(d=b[1].required)&&(f.required=d),g&1&&ce(f,b[0])},d(b){b&&w(e),b&&w(u),b&&w(f),h=!1,m()}}}function O4(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[M4,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&27&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function D4(n,e,t){let{field:i=new dn}=e,{value:s=void 0}=e;function l(){s=this.value,t(0,s)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,s=o.value)},[s,i,l]}class A4 extends ye{constructor(e){super(),ve(this,e,D4,O4,be,{field:1,value:0})}}function E4(n){let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d,h;function m(g){n[2](g)}let b={id:n[3],options:W.defaultFlatpickrOptions(),value:n[0]};return n[0]!==void 0&&(b.formattedValue=n[0]),c=new Ka({props:b}),le.push(()=>_e(c,"formattedValue",m)),{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),a=B(" (UTC)"),f=O(),j(c.$$.fragment),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",u=n[3])},m(g,y){S(g,e,y),_(e,t),_(e,s),_(e,l),_(l,r),_(l,a),S(g,f,y),R(c,g,y),h=!0},p(g,y){(!h||y&2&&i!==(i=W.getFieldTypeIcon(g[1].type)))&&p(t,"class",i),(!h||y&2)&&o!==(o=g[1].name+"")&&ae(r,o),(!h||y&8&&u!==(u=g[3]))&&p(e,"for",u);const k={};y&8&&(k.id=g[3]),y&1&&(k.value=g[0]),!d&&y&1&&(d=!0,k.formattedValue=g[0],ke(()=>d=!1)),c.$set(k)},i(g){h||(A(c.$$.fragment,g),h=!0)},o(g){P(c.$$.fragment,g),h=!1},d(g){g&&w(e),g&&w(f),H(c,g)}}}function I4(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[E4,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&27&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function P4(n,e,t){let{field:i=new dn}=e,{value:s=void 0}=e;function l(o){s=o,t(0,s)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,s=o.value)},n.$$.update=()=>{n.$$.dirty&1&&s&&s.length>19&&t(0,s=s.substring(0,19))},[s,i,l]}class L4 extends ye{constructor(e){super(),ve(this,e,P4,I4,be,{field:1,value:0})}}function Bd(n){let e,t,i=n[1].options.maxSelect+"",s,l;return{c(){e=v("div"),t=B("Select up to "),s=B(i),l=B(" items."),p(e,"class","help-block")},m(o,r){S(o,e,r),_(e,t),_(e,s),_(e,l)},p(o,r){r&2&&i!==(i=o[1].options.maxSelect+"")&&ae(s,i)},d(o){o&&w(e)}}}function N4(n){var k,$,C;let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d,h,m;function b(T){n[3](T)}let g={id:n[4],toggle:!n[1].required||n[2],multiple:n[2],items:(k=n[1].options)==null?void 0:k.values,searchable:(($=n[1].options)==null?void 0:$.values)>5};n[0]!==void 0&&(g.selected=n[0]),f=new N_({props:g}),le.push(()=>_e(f,"selected",b));let y=((C=n[1].options)==null?void 0:C.maxSelect)>1&&Bd(n);return{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),j(f.$$.fragment),d=O(),y&&y.c(),h=Ae(),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",a=n[4])},m(T,M){S(T,e,M),_(e,t),_(e,s),_(e,l),_(l,r),S(T,u,M),R(f,T,M),S(T,d,M),y&&y.m(T,M),S(T,h,M),m=!0},p(T,M){var E,I,L;(!m||M&2&&i!==(i=W.getFieldTypeIcon(T[1].type)))&&p(t,"class",i),(!m||M&2)&&o!==(o=T[1].name+"")&&ae(r,o),(!m||M&16&&a!==(a=T[4]))&&p(e,"for",a);const D={};M&16&&(D.id=T[4]),M&6&&(D.toggle=!T[1].required||T[2]),M&4&&(D.multiple=T[2]),M&2&&(D.items=(E=T[1].options)==null?void 0:E.values),M&2&&(D.searchable=((I=T[1].options)==null?void 0:I.values)>5),!c&&M&1&&(c=!0,D.selected=T[0],ke(()=>c=!1)),f.$set(D),((L=T[1].options)==null?void 0:L.maxSelect)>1?y?y.p(T,M):(y=Bd(T),y.c(),y.m(h.parentNode,h)):y&&(y.d(1),y=null)},i(T){m||(A(f.$$.fragment,T),m=!0)},o(T){P(f.$$.fragment,T),m=!1},d(T){T&&w(e),T&&w(u),H(f,T),T&&w(d),y&&y.d(T),T&&w(h)}}}function F4(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[N4,({uniqueId:i})=>({4:i}),({uniqueId:i})=>i?16:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&55&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function R4(n,e,t){let i,{field:s=new dn}=e,{value:l=void 0}=e;function o(r){l=r,t(0,l),t(2,i),t(1,s)}return n.$$set=r=>{"field"in r&&t(1,s=r.field),"value"in r&&t(0,l=r.value)},n.$$.update=()=>{var r;n.$$.dirty&2&&t(2,i=((r=s.options)==null?void 0:r.maxSelect)>1),n.$$.dirty&5&&typeof l>"u"&&t(0,l=i?[]:""),n.$$.dirty&7&&i&&Array.isArray(l)&&l.length>s.options.maxSelect&&t(0,l=l.slice(l.length-s.options.maxSelect))},[l,s,i,o]}class H4 extends ye{constructor(e){super(),ve(this,e,R4,F4,be,{field:1,value:0})}}function j4(n){let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d,h,m;return{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),f=v("textarea"),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",a=n[3]),p(f,"id",c=n[3]),f.required=d=n[1].required,p(f,"class","txt-mono")},m(b,g){S(b,e,g),_(e,t),_(e,s),_(e,l),_(l,r),S(b,u,g),S(b,f,g),ce(f,n[0]),h||(m=K(f,"input",n[2]),h=!0)},p(b,g){g&2&&i!==(i=W.getFieldTypeIcon(b[1].type))&&p(t,"class",i),g&2&&o!==(o=b[1].name+"")&&ae(r,o),g&8&&a!==(a=b[3])&&p(e,"for",a),g&8&&c!==(c=b[3])&&p(f,"id",c),g&2&&d!==(d=b[1].required)&&(f.required=d),g&1&&ce(f,b[0])},d(b){b&&w(e),b&&w(u),b&&w(f),h=!1,m()}}}function q4(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[j4,({uniqueId:i})=>({3:i}),({uniqueId:i})=>i?8:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&27&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function V4(n,e,t){let{field:i=new dn}=e,{value:s=void 0}=e;function l(){s=this.value,t(0,s)}return n.$$set=o=>{"field"in o&&t(1,i=o.field),"value"in o&&t(0,s=o.value)},n.$$.update=()=>{n.$$.dirty&1&&typeof s<"u"&&typeof s!="string"&&s!==null&&t(0,s=JSON.stringify(s,null,2))},[s,i,l]}class z4 extends ye{constructor(e){super(),ve(this,e,V4,q4,be,{field:1,value:0})}}function B4(n){let e,t;return{c(){e=v("i"),p(e,"class","ri-file-line"),p(e,"alt",t=n[0].name)},m(i,s){S(i,e,s)},p(i,s){s&1&&t!==(t=i[0].name)&&p(e,"alt",t)},d(i){i&&w(e)}}}function U4(n){let e,t,i;return{c(){e=v("img"),Ln(e.src,t=n[2])||p(e,"src",t),p(e,"width",n[1]),p(e,"height",n[1]),p(e,"alt",i=n[0].name)},m(s,l){S(s,e,l)},p(s,l){l&4&&!Ln(e.src,t=s[2])&&p(e,"src",t),l&2&&p(e,"width",s[1]),l&2&&p(e,"height",s[1]),l&1&&i!==(i=s[0].name)&&p(e,"alt",i)},d(s){s&&w(e)}}}function W4(n){let e;function t(l,o){return l[2]?U4:B4}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,[o]){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},i:te,o:te,d(l){s.d(l),l&&w(e)}}}function Y4(n,e,t){let i,{file:s}=e,{size:l=50}=e;function o(){t(2,i=""),W.hasImageExtension(s==null?void 0:s.name)&&W.generateThumb(s,l,l).then(r=>{t(2,i=r)}).catch(r=>{console.warn("Unable to generate thumb: ",r)})}return n.$$set=r=>{"file"in r&&t(0,s=r.file),"size"in r&&t(1,l=r.size)},n.$$.update=()=>{n.$$.dirty&1&&typeof s<"u"&&o()},t(2,i=""),[s,l,i]}class K4 extends ye{constructor(e){super(),ve(this,e,Y4,W4,be,{file:0,size:1})}}function J4(n){let e,t,i;return{c(){e=v("img"),Ln(e.src,t=n[2])||p(e,"src",t),p(e,"alt",i="Preview "+n[2])},m(s,l){S(s,e,l)},p(s,l){l&4&&!Ln(e.src,t=s[2])&&p(e,"src",t),l&4&&i!==(i="Preview "+s[2])&&p(e,"alt",i)},d(s){s&&w(e)}}}function Z4(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","overlay-close")},m(s,l){S(s,e,l),t||(i=K(e,"click",ut(n[0])),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function G4(n){let e,t=n[2].substring(n[2].lastIndexOf("/")+1)+"",i,s,l,o,r,a,u;return{c(){e=v("a"),i=B(t),s=O(),l=v("div"),o=O(),r=v("button"),r.textContent="Close",p(e,"href",n[2]),p(e,"title","Download"),p(e,"target","_blank"),p(e,"rel","noreferrer noopener"),p(e,"class","link-hint txt-ellipsis"),p(l,"class","flex-fill"),p(r,"type","button"),p(r,"class","btn btn-secondary")},m(f,c){S(f,e,c),_(e,i),S(f,s,c),S(f,l,c),S(f,o,c),S(f,r,c),a||(u=K(r,"click",n[0]),a=!0)},p(f,c){c&4&&t!==(t=f[2].substring(f[2].lastIndexOf("/")+1)+"")&&ae(i,t),c&4&&p(e,"href",f[2])},d(f){f&&w(e),f&&w(s),f&&w(l),f&&w(o),f&&w(r),a=!1,u()}}}function X4(n){let e,t,i={class:"image-preview",btnClose:!1,popup:!0,$$slots:{footer:[G4],header:[Z4],default:[J4]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[4](e),e.$on("show",n[5]),e.$on("hide",n[6]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,[l]){const o={};l&132&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[4](null),H(e,s)}}}function Q4(n,e,t){let i,s="";function l(f){f!==""&&(t(2,s=f),i==null||i.show())}function o(){return i==null?void 0:i.hide()}function r(f){le[f?"unshift":"push"](()=>{i=f,t(1,i)})}function a(f){Ve.call(this,n,f)}function u(f){Ve.call(this,n,f)}return[o,i,s,l,r,a,u]}class x4 extends ye{constructor(e){super(),ve(this,e,Q4,X4,be,{show:3,hide:0})}get show(){return this.$$.ctx[3]}get hide(){return this.$$.ctx[0]}}function eT(n){let e;return{c(){e=v("i"),p(e,"class","ri-file-line")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function tT(n){let e,t,i,s,l;return{c(){e=v("img"),Ln(e.src,t=n[4])||p(e,"src",t),p(e,"alt",n[0]),p(e,"title",i="Preview "+n[0]),ne(e,"link-fade",n[2])},m(o,r){S(o,e,r),s||(l=[K(e,"click",n[7]),K(e,"error",n[5])],s=!0)},p(o,r){r&16&&!Ln(e.src,t=o[4])&&p(e,"src",t),r&1&&p(e,"alt",o[0]),r&1&&i!==(i="Preview "+o[0])&&p(e,"title",i),r&4&&ne(e,"link-fade",o[2])},d(o){o&&w(e),s=!1,Pe(l)}}}function nT(n){let e,t,i;function s(a,u){return a[2]?tT:eT}let l=s(n),o=l(n),r={};return t=new x4({props:r}),n[8](t),{c(){o.c(),e=O(),j(t.$$.fragment)},m(a,u){o.m(a,u),S(a,e,u),R(t,a,u),i=!0},p(a,[u]){l===(l=s(a))&&o?o.p(a,u):(o.d(1),o=l(a),o&&(o.c(),o.m(e.parentNode,e)));const f={};t.$set(f)},i(a){i||(A(t.$$.fragment,a),i=!0)},o(a){P(t.$$.fragment,a),i=!1},d(a){o.d(a),a&&w(e),n[8](null),H(t,a)}}}function iT(n,e,t){let i,{record:s}=e,{filename:l}=e,o,r="",a="";function u(){t(4,r="")}const f=d=>{d.stopPropagation(),o==null||o.show(a)};function c(d){le[d?"unshift":"push"](()=>{o=d,t(3,o)})}return n.$$set=d=>{"record"in d&&t(6,s=d.record),"filename"in d&&t(0,l=d.filename)},n.$$.update=()=>{n.$$.dirty&1&&t(2,i=W.hasImageExtension(l)),n.$$.dirty&69&&i&&t(1,a=de.getFileUrl(s,`${l}`)),n.$$.dirty&2&&t(4,r=a?a+"?thumb=100x100":"")},[l,a,i,o,r,u,s,f,c]}class j_ extends ye{constructor(e){super(),ve(this,e,iT,nT,be,{record:6,filename:0})}}function Ud(n,e,t){const i=n.slice();return i[22]=e[t],i[24]=t,i}function Wd(n,e,t){const i=n.slice();return i[25]=e[t],i[24]=t,i}function sT(n){let e,t,i;function s(){return n[14](n[24])}return{c(){e=v("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-secondary btn-sm btn-circle btn-remove txt-hint")},m(l,o){S(l,e,o),t||(i=[Ee(Be.call(null,e,"Remove file")),K(e,"click",s)],t=!0)},p(l,o){n=l},d(l){l&&w(e),t=!1,Pe(i)}}}function lT(n){let e,t,i;function s(){return n[13](n[24])}return{c(){e=v("button"),e.innerHTML='Restore',p(e,"type","button"),p(e,"class","btn btn-sm btn-danger btn-secondary")},m(l,o){S(l,e,o),t||(i=K(e,"click",s),t=!0)},p(l,o){n=l},d(l){l&&w(e),t=!1,i()}}}function Yd(n,e){let t,i,s,l,o,r=e[25]+"",a,u,f,c,d,h,m;s=new j_({props:{record:e[2],filename:e[25]}});function b(k,$){return $&18&&(c=null),c==null&&(c=!!k[1].includes(k[24])),c?lT:sT}let g=b(e,-1),y=g(e);return{key:n,first:null,c(){t=v("div"),i=v("figure"),j(s.$$.fragment),l=O(),o=v("a"),a=B(r),f=O(),y.c(),p(i,"class","thumb"),ne(i,"fade",e[1].includes(e[24])),p(o,"href",u=de.getFileUrl(e[2],e[25])),p(o,"class","filename link-hint"),p(o,"target","_blank"),p(o,"rel","noopener noreferrer"),ne(o,"txt-strikethrough",e[1].includes(e[24])),p(t,"class","list-item"),this.first=t},m(k,$){S(k,t,$),_(t,i),R(s,i,null),_(t,l),_(t,o),_(o,a),_(t,f),y.m(t,null),d=!0,h||(m=Ee(Be.call(null,o,{position:"right",text:"Download"})),h=!0)},p(k,$){e=k;const C={};$&4&&(C.record=e[2]),$&16&&(C.filename=e[25]),s.$set(C),(!d||$&18)&&ne(i,"fade",e[1].includes(e[24])),(!d||$&16)&&r!==(r=e[25]+"")&&ae(a,r),(!d||$&20&&u!==(u=de.getFileUrl(e[2],e[25])))&&p(o,"href",u),(!d||$&18)&&ne(o,"txt-strikethrough",e[1].includes(e[24])),g===(g=b(e,$))&&y?y.p(e,$):(y.d(1),y=g(e),y&&(y.c(),y.m(t,null)))},i(k){d||(A(s.$$.fragment,k),d=!0)},o(k){P(s.$$.fragment,k),d=!1},d(k){k&&w(t),H(s),y.d(),h=!1,m()}}}function Kd(n){let e,t,i,s,l,o,r,a,u=n[22].name+"",f,c,d,h,m,b,g;i=new K4({props:{file:n[22]}});function y(){return n[15](n[24])}return{c(){e=v("div"),t=v("figure"),j(i.$$.fragment),s=O(),l=v("div"),o=v("small"),o.textContent="New",r=O(),a=v("span"),f=B(u),d=O(),h=v("button"),h.innerHTML='',p(t,"class","thumb"),p(o,"class","label label-success m-r-5"),p(a,"class","txt"),p(l,"class","filename"),p(l,"title",c=n[22].name),p(h,"type","button"),p(h,"class","btn btn-secondary btn-sm btn-circle btn-remove"),p(e,"class","list-item")},m(k,$){S(k,e,$),_(e,t),R(i,t,null),_(e,s),_(e,l),_(l,o),_(l,r),_(l,a),_(a,f),_(e,d),_(e,h),m=!0,b||(g=[Ee(Be.call(null,h,"Remove file")),K(h,"click",y)],b=!0)},p(k,$){n=k;const C={};$&1&&(C.file=n[22]),i.$set(C),(!m||$&1)&&u!==(u=n[22].name+"")&&ae(f,u),(!m||$&1&&c!==(c=n[22].name))&&p(l,"title",c)},i(k){m||(A(i.$$.fragment,k),m=!0)},o(k){P(i.$$.fragment,k),m=!1},d(k){k&&w(e),H(i),b=!1,Pe(g)}}}function Jd(n){let e,t,i,s,l,o;return{c(){e=v("div"),t=v("input"),i=O(),s=v("button"),s.innerHTML=` - Upload new file`,p(t,"type","file"),p(t,"class","hidden"),t.multiple=n[5],p(s,"type","button"),p(s,"class","btn btn-secondary btn-sm btn-block"),p(e,"class","list-item btn-list-item")},m(r,a){S(r,e,a),_(e,t),n[16](t),_(e,i),_(e,s),l||(o=[K(t,"change",n[17]),K(s,"click",n[18])],l=!0)},p(r,a){a&32&&(t.multiple=r[5])},d(r){r&&w(e),n[16](null),l=!1,Pe(o)}}}function oT(n){let e,t,i,s,l,o=n[3].name+"",r,a,u,f,c=[],d=new Map,h,m,b,g=n[4];const y=M=>M[25];for(let M=0;MP($[M],1,1,()=>{$[M]=null});let T=!n[8]&&Jd(n);return{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),f=v("div");for(let M=0;M({21:i}),({uniqueId:i})=>i?2097152:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&8&&(l.class="form-field form-field-file "+(i[3].required?"required":"")),s&8&&(l.name=i[3].name),s&136315391&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function aT(n,e,t){let i,s,l,{record:o}=e,{value:r=""}=e,{uploadedFiles:a=[]}=e,{deletedFileIndexes:u=[]}=e,{field:f=new dn}=e,c,d;function h(E){W.removeByValue(u,E),t(1,u)}function m(E){W.pushUnique(u,E),t(1,u)}function b(E){W.isEmpty(a[E])||a.splice(E,1),t(0,a)}function g(){d==null||d.dispatchEvent(new CustomEvent("change",{detail:{value:r,uploadedFiles:a,deletedFileIndexes:u},bubbles:!0}))}const y=E=>h(E),k=E=>m(E),$=E=>b(E);function C(E){le[E?"unshift":"push"](()=>{c=E,t(6,c)})}const T=()=>{for(let E of c.files)a.push(E);t(0,a),t(6,c.value=null,c)},M=()=>c==null?void 0:c.click();function D(E){le[E?"unshift":"push"](()=>{d=E,t(7,d)})}return n.$$set=E=>{"record"in E&&t(2,o=E.record),"value"in E&&t(12,r=E.value),"uploadedFiles"in E&&t(0,a=E.uploadedFiles),"deletedFileIndexes"in E&&t(1,u=E.deletedFileIndexes),"field"in E&&t(3,f=E.field)},n.$$.update=()=>{var E,I;n.$$.dirty&1&&(Array.isArray(a)||t(0,a=W.toArray(a))),n.$$.dirty&2&&(Array.isArray(u)||t(1,u=W.toArray(u))),n.$$.dirty&8&&t(5,i=((E=f.options)==null?void 0:E.maxSelect)>1),n.$$.dirty&4128&&W.isEmpty(r)&&t(12,r=i?[]:""),n.$$.dirty&4096&&t(4,s=W.toArray(r)),n.$$.dirty&27&&t(8,l=(s.length||a.length)&&((I=f.options)==null?void 0:I.maxSelect)<=s.length+a.length-u.length),n.$$.dirty&3&&(a!==-1||u!==-1)&&g()},[a,u,o,f,s,i,c,d,l,h,m,b,r,y,k,$,C,T,M,D]}class uT extends ye{constructor(e){super(),ve(this,e,aT,rT,be,{record:2,value:12,uploadedFiles:0,deletedFileIndexes:1,field:3})}}function Zd(n){let e,t;return{c(){e=v("small"),t=B(n[1]),p(e,"class","block txt-hint txt-ellipsis")},m(i,s){S(i,e,s),_(e,t)},p(i,s){s&2&&ae(t,i[1])},d(i){i&&w(e)}}}function fT(n){let e,t,i,s,l,o=n[0].id+"",r,a,u,f,c=n[1]!==""&&n[1]!==n[0].id&&Zd(n);return{c(){e=v("i"),i=O(),s=v("div"),l=v("div"),r=B(o),a=O(),c&&c.c(),p(e,"class","ri-information-line link-hint"),p(l,"class","block txt-ellipsis"),p(s,"class","content svelte-1gjwqyd")},m(d,h){S(d,e,h),S(d,i,h),S(d,s,h),_(s,l),_(l,r),_(s,a),c&&c.m(s,null),u||(f=Ee(t=Be.call(null,e,{text:JSON.stringify(n[0],null,2),position:"left",class:"code"})),u=!0)},p(d,[h]){t&&Jt(t.update)&&h&1&&t.update.call(null,{text:JSON.stringify(d[0],null,2),position:"left",class:"code"}),h&1&&o!==(o=d[0].id+"")&&ae(r,o),d[1]!==""&&d[1]!==d[0].id?c?c.p(d,h):(c=Zd(d),c.c(),c.m(s,null)):c&&(c.d(1),c=null)},i:te,o:te,d(d){d&&w(e),d&&w(i),d&&w(s),c&&c.d(),u=!1,f()}}}function cT(n,e,t){let i;const s=["id","created","updated","@collectionId","@collectionName"];let{item:l={}}=e;function o(r){r=r||{};const a=["title","name","email","username","label","key","heading","content","description",...Object.keys(r)];for(const u of a)if(typeof r[u]=="string"&&!W.isEmpty(r[u])&&!s.includes(u))return u+": "+r[u];return""}return n.$$set=r=>{"item"in r&&t(0,l=r.item)},n.$$.update=()=>{n.$$.dirty&1&&t(1,i=o(l))},[l,i]}class dT extends ye{constructor(e){super(),ve(this,e,cT,fT,be,{item:0})}}function Gd(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='New record',p(e,"type","button"),p(e,"class","btn btn-warning btn-block btn-sm m-t-5")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[17]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function Xd(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Load more',p(e,"type","button"),p(e,"class","btn btn-block btn-sm m-t-5"),ne(e,"btn-loading",n[6]),ne(e,"btn-disabled",n[6])},m(s,l){S(s,e,l),t||(i=K(e,"click",Yn(n[18])),t=!0)},p(s,l){l&64&&ne(e,"btn-loading",s[6]),l&64&&ne(e,"btn-disabled",s[6])},d(s){s&&w(e),t=!1,i()}}}function pT(n){let e,t,i=!n[7]&&n[8]&&Gd(n),s=n[10]&&Xd(n);return{c(){i&&i.c(),e=O(),s&&s.c(),t=Ae()},m(l,o){i&&i.m(l,o),S(l,e,o),s&&s.m(l,o),S(l,t,o)},p(l,o){!l[7]&&l[8]?i?i.p(l,o):(i=Gd(l),i.c(),i.m(e.parentNode,e)):i&&(i.d(1),i=null),l[10]?s?s.p(l,o):(s=Xd(l),s.c(),s.m(t.parentNode,t)):s&&(s.d(1),s=null)},d(l){i&&i.d(l),l&&w(e),s&&s.d(l),l&&w(t)}}}function hT(n){let e,t,i,s,l,o;const r=[{selectPlaceholder:n[11]?"Loading...":n[3]},{items:n[5]},{searchable:n[5].length>5},{selectionKey:"id"},{labelComponent:n[4]},{disabled:n[11]},{optionComponent:n[4]},{multiple:n[2]},{class:"records-select block-options"},n[13]];function a(d){n[19](d)}function u(d){n[20](d)}let f={$$slots:{afterOptions:[pT]},$$scope:{ctx:n}};for(let d=0;d_e(e,"keyOfSelected",a)),le.push(()=>_e(e,"selected",u)),e.$on("show",n[21]),e.$on("hide",n[22]);let c={collection:n[8]};return l=new q_({props:c}),n[23](l),l.$on("save",n[24]),{c(){j(e.$$.fragment),s=O(),j(l.$$.fragment)},m(d,h){R(e,d,h),S(d,s,h),R(l,d,h),o=!0},p(d,[h]){const m=h&10300?Zt(r,[h&2056&&{selectPlaceholder:d[11]?"Loading...":d[3]},h&32&&{items:d[5]},h&32&&{searchable:d[5].length>5},r[3],h&16&&{labelComponent:d[4]},h&2048&&{disabled:d[11]},h&16&&{optionComponent:d[4]},h&4&&{multiple:d[2]},r[8],h&8192&&Kn(d[13])]):{};h&536872896&&(m.$$scope={dirty:h,ctx:d}),!t&&h&2&&(t=!0,m.keyOfSelected=d[1],ke(()=>t=!1)),!i&&h&1&&(i=!0,m.selected=d[0],ke(()=>i=!1)),e.$set(m);const b={};h&256&&(b.collection=d[8]),l.$set(b)},i(d){o||(A(e.$$.fragment,d),A(l.$$.fragment,d),o=!0)},o(d){P(e.$$.fragment,d),P(l.$$.fragment,d),o=!1},d(d){H(e,d),d&&w(s),n[23](null),H(l,d)}}}function mT(n,e,t){let i,s;const l=["multiple","selected","keyOfSelected","selectPlaceholder","optionComponent","collectionId"];let o=wt(e,l);const r="select_"+W.randomString(5);let{multiple:a=!1}=e,{selected:u=[]}=e,{keyOfSelected:f=a?[]:void 0}=e,{selectPlaceholder:c="- Select -"}=e,{optionComponent:d=dT}=e,{collectionId:h}=e,m=[],b=1,g=0,y=!1,k=!1,$=!1,C=null,T;async function M(){if(!h){t(8,C=null),t(7,$=!1);return}t(7,$=!0);try{t(8,C=await de.collections.getOne(h,{$cancelKey:"collection_"+r}))}catch(Q){de.errorResponseHandler(Q)}t(7,$=!1)}async function D(){const Q=W.toArray(f);if(!h||!Q.length)return;t(16,k=!0);let ie=[];const Y=Q.slice(),x=[];for(;Y.length>0;){const U=[];for(const re of Y.splice(0,50))U.push(`id="${re}"`);x.push(de.collection(h).getFullList(200,{filter:U.join("||"),$autoCancel:!1}))}try{await Promise.all(x).then(U=>{ie=ie.concat(...U)}),t(0,u=[]);for(const U of Q){const re=W.findByKey(ie,"id",U);re&&u.push(re)}t(5,m=W.filterDuplicatesByKey(u.concat(m)))}catch(U){de.errorResponseHandler(U)}t(16,k=!1)}async function E(Q=!1){if(!!h){t(6,y=!0);try{const ie=Q?1:b+1,Y=await de.collection(h).getList(ie,200,{sort:"-created",$cancelKey:r+"loadList"});Q&&t(5,m=W.toArray(u).slice()),t(5,m=W.filterDuplicatesByKey(m.concat(Y.items,W.toArray(u)))),b=Y.page,t(15,g=Y.totalItems)}catch(ie){de.errorResponseHandler(ie)}t(6,y=!1)}}const I=()=>T==null?void 0:T.show(),L=()=>E();function F(Q){f=Q,t(1,f)}function q(Q){u=Q,t(0,u)}function z(Q){Ve.call(this,n,Q)}function J(Q){Ve.call(this,n,Q)}function G(Q){le[Q?"unshift":"push"](()=>{T=Q,t(9,T)})}const X=Q=>{var ie;(ie=Q==null?void 0:Q.detail)!=null&&ie.id&&t(1,f=W.toArray(f).concat(Q.detail.id)),E(!0)};return n.$$set=Q=>{e=Ke(Ke({},e),Wn(Q)),t(13,o=wt(e,l)),"multiple"in Q&&t(2,a=Q.multiple),"selected"in Q&&t(0,u=Q.selected),"keyOfSelected"in Q&&t(1,f=Q.keyOfSelected),"selectPlaceholder"in Q&&t(3,c=Q.selectPlaceholder),"optionComponent"in Q&&t(4,d=Q.optionComponent),"collectionId"in Q&&t(14,h=Q.collectionId)},n.$$.update=()=>{n.$$.dirty&16384&&h&&(M(),D().then(()=>{E(!0)})),n.$$.dirty&65600&&t(11,i=y||k),n.$$.dirty&32800&&t(10,s=g>m.length)},[u,f,a,c,d,m,y,$,C,T,s,i,E,o,h,g,k,I,L,F,q,z,J,G,X]}class gT extends ye{constructor(e){super(),ve(this,e,mT,hT,be,{multiple:2,selected:0,keyOfSelected:1,selectPlaceholder:3,optionComponent:4,collectionId:14})}}function Qd(n){let e,t,i=n[1].options.maxSelect+"",s,l;return{c(){e=v("div"),t=B("Select up to "),s=B(i),l=B(" items."),p(e,"class","help-block")},m(o,r){S(o,e,r),_(e,t),_(e,s),_(e,l)},p(o,r){r&2&&i!==(i=o[1].options.maxSelect+"")&&ae(s,i)},d(o){o&&w(e)}}}function _T(n){var k,$;let e,t,i,s,l,o=n[1].name+"",r,a,u,f,c,d,h,m;function b(C){n[3](C)}let g={toggle:!0,id:n[4],multiple:n[2],collectionId:(k=n[1].options)==null?void 0:k.collectionId};n[0]!==void 0&&(g.keyOfSelected=n[0]),f=new gT({props:g}),le.push(()=>_e(f,"keyOfSelected",b));let y=(($=n[1].options)==null?void 0:$.maxSelect)>1&&Qd(n);return{c(){e=v("label"),t=v("i"),s=O(),l=v("span"),r=B(o),u=O(),j(f.$$.fragment),d=O(),y&&y.c(),h=Ae(),p(t,"class",i=W.getFieldTypeIcon(n[1].type)),p(l,"class","txt"),p(e,"for",a=n[4])},m(C,T){S(C,e,T),_(e,t),_(e,s),_(e,l),_(l,r),S(C,u,T),R(f,C,T),S(C,d,T),y&&y.m(C,T),S(C,h,T),m=!0},p(C,T){var D,E;(!m||T&2&&i!==(i=W.getFieldTypeIcon(C[1].type)))&&p(t,"class",i),(!m||T&2)&&o!==(o=C[1].name+"")&&ae(r,o),(!m||T&16&&a!==(a=C[4]))&&p(e,"for",a);const M={};T&16&&(M.id=C[4]),T&4&&(M.multiple=C[2]),T&2&&(M.collectionId=(D=C[1].options)==null?void 0:D.collectionId),!c&&T&1&&(c=!0,M.keyOfSelected=C[0],ke(()=>c=!1)),f.$set(M),((E=C[1].options)==null?void 0:E.maxSelect)>1?y?y.p(C,T):(y=Qd(C),y.c(),y.m(h.parentNode,h)):y&&(y.d(1),y=null)},i(C){m||(A(f.$$.fragment,C),m=!0)},o(C){P(f.$$.fragment,C),m=!1},d(C){C&&w(e),C&&w(u),H(f,C),C&&w(d),y&&y.d(C),C&&w(h)}}}function bT(n){let e,t;return e=new ge({props:{class:"form-field "+(n[1].required?"required":""),name:n[1].name,$$slots:{default:[_T,({uniqueId:i})=>({4:i}),({uniqueId:i})=>i?16:0]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&2&&(l.class="form-field "+(i[1].required?"required":"")),s&2&&(l.name=i[1].name),s&55&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function vT(n,e,t){let i,{field:s=new dn}=e,{value:l=void 0}=e;function o(r){l=r,t(0,l),t(2,i),t(1,s)}return n.$$set=r=>{"field"in r&&t(1,s=r.field),"value"in r&&t(0,l=r.value)},n.$$.update=()=>{var r,a;n.$$.dirty&2&&t(2,i=((r=s.options)==null?void 0:r.maxSelect)!=1),n.$$.dirty&7&&i&&Array.isArray(l)&&((a=s.options)==null?void 0:a.maxSelect)&&l.length>s.options.maxSelect&&t(0,l=l.slice(s.options.maxSelect-1))},[l,s,i,o]}class yT extends ye{constructor(e){super(),ve(this,e,vT,bT,be,{field:1,value:0})}}function kT(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Auth URL"),s=O(),l=v("input"),p(e,"for",i=n[5]),p(l,"type","url"),p(l,"id",o=n[5])},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].authUrl),r||(a=K(l,"input",n[2]),r=!0)},p(u,f){f&32&&i!==(i=u[5])&&p(e,"for",i),f&32&&o!==(o=u[5])&&p(l,"id",o),f&1&&ce(l,u[0].authUrl)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function wT(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Token URL"),s=O(),l=v("input"),p(e,"for",i=n[5]),p(l,"type","text"),p(l,"id",o=n[5])},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].tokenUrl),r||(a=K(l,"input",n[3]),r=!0)},p(u,f){f&32&&i!==(i=u[5])&&p(e,"for",i),f&32&&o!==(o=u[5])&&p(l,"id",o),f&1&&l.value!==u[0].tokenUrl&&ce(l,u[0].tokenUrl)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function ST(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("User API URL"),s=O(),l=v("input"),p(e,"for",i=n[5]),p(l,"type","text"),p(l,"id",o=n[5])},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].userApiUrl),r||(a=K(l,"input",n[4]),r=!0)},p(u,f){f&32&&i!==(i=u[5])&&p(e,"for",i),f&32&&o!==(o=u[5])&&p(l,"id",o),f&1&&l.value!==u[0].userApiUrl&&ce(l,u[0].userApiUrl)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function $T(n){let e,t,i,s,l,o,r,a,u,f,c,d;return l=new ge({props:{class:"form-field",name:n[1]+".authUrl",$$slots:{default:[kT,({uniqueId:h})=>({5:h}),({uniqueId:h})=>h?32:0]},$$scope:{ctx:n}}}),a=new ge({props:{class:"form-field",name:n[1]+".tokenUrl",$$slots:{default:[wT,({uniqueId:h})=>({5:h}),({uniqueId:h})=>h?32:0]},$$scope:{ctx:n}}}),c=new ge({props:{class:"form-field",name:n[1]+".userApiUrl",$$slots:{default:[ST,({uniqueId:h})=>({5:h}),({uniqueId:h})=>h?32:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),e.textContent="Selfhosted endpoints (optional)",t=O(),i=v("div"),s=v("div"),j(l.$$.fragment),o=O(),r=v("div"),j(a.$$.fragment),u=O(),f=v("div"),j(c.$$.fragment),p(e,"class","section-title"),p(s,"class","col-lg-4"),p(r,"class","col-lg-4"),p(f,"class","col-lg-4"),p(i,"class","grid")},m(h,m){S(h,e,m),S(h,t,m),S(h,i,m),_(i,s),R(l,s,null),_(i,o),_(i,r),R(a,r,null),_(i,u),_(i,f),R(c,f,null),d=!0},p(h,[m]){const b={};m&2&&(b.name=h[1]+".authUrl"),m&97&&(b.$$scope={dirty:m,ctx:h}),l.$set(b);const g={};m&2&&(g.name=h[1]+".tokenUrl"),m&97&&(g.$$scope={dirty:m,ctx:h}),a.$set(g);const y={};m&2&&(y.name=h[1]+".userApiUrl"),m&97&&(y.$$scope={dirty:m,ctx:h}),c.$set(y)},i(h){d||(A(l.$$.fragment,h),A(a.$$.fragment,h),A(c.$$.fragment,h),d=!0)},o(h){P(l.$$.fragment,h),P(a.$$.fragment,h),P(c.$$.fragment,h),d=!1},d(h){h&&w(e),h&&w(t),h&&w(i),H(l),H(a),H(c)}}}function CT(n,e,t){let{key:i=""}=e,{config:s={}}=e;function l(){s.authUrl=this.value,t(0,s)}function o(){s.tokenUrl=this.value,t(0,s)}function r(){s.userApiUrl=this.value,t(0,s)}return n.$$set=a=>{"key"in a&&t(1,i=a.key),"config"in a&&t(0,s=a.config)},[s,i,l,o,r]}class TT extends ye{constructor(e){super(),ve(this,e,CT,$T,be,{key:1,config:0})}}function MT(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=B("Auth URL"),s=O(),l=v("input"),r=O(),a=v("div"),a.textContent="Eg. https://login.microsoftonline.com/YOUR_DIRECTORY_TENANT_ID/oauth2/v2.0/authorize",p(e,"for",i=n[4]),p(l,"type","url"),p(l,"id",o=n[4]),l.required=!0,p(l,"placeholder","https://login.microsoftonline.com/YOUR_DIRECTORY_TENANT_ID/oauth2/v2.0/authorize"),p(a,"class","help-block")},m(c,d){S(c,e,d),_(e,t),S(c,s,d),S(c,l,d),ce(l,n[0].authUrl),S(c,r,d),S(c,a,d),u||(f=K(l,"input",n[2]),u=!0)},p(c,d){d&16&&i!==(i=c[4])&&p(e,"for",i),d&16&&o!==(o=c[4])&&p(l,"id",o),d&1&&ce(l,c[0].authUrl)},d(c){c&&w(e),c&&w(s),c&&w(l),c&&w(r),c&&w(a),u=!1,f()}}}function OT(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=B("Token URL"),s=O(),l=v("input"),r=O(),a=v("div"),a.textContent="Eg. https://login.microsoftonline.com/YOUR_DIRECTORY_TENANT_ID/oauth2/v2.0/token",p(e,"for",i=n[4]),p(l,"type","text"),p(l,"id",o=n[4]),l.required=!0,p(l,"placeholder","https://login.microsoftonline.com/YOUR_DIRECTORY_TENANT_ID/oauth2/v2.0/token"),p(a,"class","help-block")},m(c,d){S(c,e,d),_(e,t),S(c,s,d),S(c,l,d),ce(l,n[0].tokenUrl),S(c,r,d),S(c,a,d),u||(f=K(l,"input",n[3]),u=!0)},p(c,d){d&16&&i!==(i=c[4])&&p(e,"for",i),d&16&&o!==(o=c[4])&&p(l,"id",o),d&1&&l.value!==c[0].tokenUrl&&ce(l,c[0].tokenUrl)},d(c){c&&w(e),c&&w(s),c&&w(l),c&&w(r),c&&w(a),u=!1,f()}}}function DT(n){let e,t,i,s,l,o,r,a,u;return l=new ge({props:{class:"form-field required",name:n[1]+".authUrl",$$slots:{default:[MT,({uniqueId:f})=>({4:f}),({uniqueId:f})=>f?16:0]},$$scope:{ctx:n}}}),a=new ge({props:{class:"form-field required",name:n[1]+".tokenUrl",$$slots:{default:[OT,({uniqueId:f})=>({4:f}),({uniqueId:f})=>f?16:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),e.textContent="Azure AD endpoints",t=O(),i=v("div"),s=v("div"),j(l.$$.fragment),o=O(),r=v("div"),j(a.$$.fragment),p(e,"class","section-title"),p(s,"class","col-lg-12"),p(r,"class","col-lg-12"),p(i,"class","grid")},m(f,c){S(f,e,c),S(f,t,c),S(f,i,c),_(i,s),R(l,s,null),_(i,o),_(i,r),R(a,r,null),u=!0},p(f,[c]){const d={};c&2&&(d.name=f[1]+".authUrl"),c&49&&(d.$$scope={dirty:c,ctx:f}),l.$set(d);const h={};c&2&&(h.name=f[1]+".tokenUrl"),c&49&&(h.$$scope={dirty:c,ctx:f}),a.$set(h)},i(f){u||(A(l.$$.fragment,f),A(a.$$.fragment,f),u=!0)},o(f){P(l.$$.fragment,f),P(a.$$.fragment,f),u=!1},d(f){f&&w(e),f&&w(t),f&&w(i),H(l),H(a)}}}function AT(n,e,t){let{key:i=""}=e,{config:s={}}=e;function l(){s.authUrl=this.value,t(0,s)}function o(){s.tokenUrl=this.value,t(0,s)}return n.$$set=r=>{"key"in r&&t(1,i=r.key),"config"in r&&t(0,s=r.config)},[s,i,l,o]}class ET extends ye{constructor(e){super(),ve(this,e,AT,DT,be,{key:1,config:0})}}const _l={googleAuth:{title:"Google",icon:"ri-google-fill"},facebookAuth:{title:"Facebook",icon:"ri-facebook-fill"},twitterAuth:{title:"Twitter",icon:"ri-twitter-fill"},githubAuth:{title:"GitHub",icon:"ri-github-fill"},gitlabAuth:{title:"GitLab",icon:"ri-gitlab-fill",optionsComponent:TT},discordAuth:{title:"Discord",icon:"ri-discord-fill"},microsoftAuth:{title:"Microsoft",icon:"ri-microsoft-fill",optionsComponent:ET},spotifyAuth:{title:"Spotify",icon:"ri-spotify-fill"},kakaoAuth:{title:"Kakao",icon:"ri-kakao-talk-fill"},twitchAuth:{title:"Twitch",icon:"ri-twitch-fill"}};function xd(n,e,t){const i=n.slice();return i[9]=e[t],i}function IT(n){let e;return{c(){e=v("p"),e.textContent="No linked OAuth2 providers.",p(e,"class","txt-hint txt-center")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function PT(n){let e,t=n[1],i=[];for(let s=0;s',p(e,"class","block txt-center")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function ep(n){let e,t,i,s,l,o=n[3](n[9].provider)+"",r,a,u,f,c=n[9].providerId+"",d,h,m,b,g,y;function k(){return n[6](n[9])}return{c(){e=v("div"),t=v("i"),s=O(),l=v("span"),r=B(o),a=O(),u=v("div"),f=B("ID: "),d=B(c),h=O(),m=v("button"),m.innerHTML='',b=O(),p(t,"class",i=n[4](n[9].provider)),p(l,"class","txt"),p(u,"class","txt-hint"),p(m,"type","button"),p(m,"class","btn btn-secondary link-hint btn-circle btn-sm m-l-auto"),p(e,"class","list-item")},m($,C){S($,e,C),_(e,t),_(e,s),_(e,l),_(l,r),_(e,a),_(e,u),_(u,f),_(u,d),_(e,h),_(e,m),_(e,b),g||(y=K(m,"click",k),g=!0)},p($,C){n=$,C&2&&i!==(i=n[4](n[9].provider))&&p(t,"class",i),C&2&&o!==(o=n[3](n[9].provider)+"")&&ae(r,o),C&2&&c!==(c=n[9].providerId+"")&&ae(d,c)},d($){$&&w(e),g=!1,y()}}}function NT(n){let e;function t(l,o){var r;return l[2]?LT:((r=l[0])==null?void 0:r.id)&&l[1].length?PT:IT}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,[o]){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},i:te,o:te,d(l){s.d(l),l&&w(e)}}}function FT(n,e,t){const i=It();let{record:s}=e,l=[],o=!1;function r(d){var h;return((h=_l[d+"Auth"])==null?void 0:h.title)||W.sentenize(d,!1)}function a(d){var h;return((h=_l[d+"Auth"])==null?void 0:h.icon)||`ri-${d}-line`}async function u(){if(!(s!=null&&s.id)){t(1,l=[]),t(2,o=!1);return}t(2,o=!0);try{t(1,l=await de.collection(s.collectionId).listExternalAuths(s.id))}catch(d){de.errorResponseHandler(d)}t(2,o=!1)}function f(d){!(s!=null&&s.id)||!d||wn(`Do you really want to unlink the ${r(d)} provider?`,()=>de.collection(s.collectionId).unlinkExternalAuth(s.id,d).then(()=>{Lt(`Successfully unlinked the ${r(d)} provider.`),i("unlink",d),u()}).catch(h=>{de.errorResponseHandler(h)}))}u();const c=d=>f(d.provider);return n.$$set=d=>{"record"in d&&t(0,s=d.record)},[s,l,o,r,a,f,c]}class RT extends ye{constructor(e){super(),ve(this,e,FT,NT,be,{record:0})}}function tp(n,e,t){const i=n.slice();return i[46]=e[t],i[47]=e,i[48]=t,i}function np(n){let e,t;return e=new ge({props:{class:"form-field disabled",name:"id",$$slots:{default:[HT,({uniqueId:i})=>({49:i}),({uniqueId:i})=>[0,i?262144:0]]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s[0]&4|s[1]&786432&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function HT(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="id",l=O(),o=v("span"),a=O(),u=v("div"),f=v("i"),d=O(),h=v("input"),p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(o,"class","flex-fill"),p(e,"for",r=n[49]),p(f,"class","ri-calendar-event-line txt-disabled"),p(u,"class","form-field-addon"),p(h,"type","text"),p(h,"id",m=n[49]),h.value=b=n[2].id,h.readOnly=!0},m(k,$){S(k,e,$),_(e,t),_(e,i),_(e,s),_(e,l),_(e,o),S(k,a,$),S(k,u,$),_(u,f),S(k,d,$),S(k,h,$),g||(y=Ee(c=Be.call(null,f,{text:`Created: ${n[2].created} -Updated: ${n[2].updated}`,position:"left"})),g=!0)},p(k,$){$[1]&262144&&r!==(r=k[49])&&p(e,"for",r),c&&Jt(c.update)&&$[0]&4&&c.update.call(null,{text:`Created: ${k[2].created} -Updated: ${k[2].updated}`,position:"left"}),$[1]&262144&&m!==(m=k[49])&&p(h,"id",m),$[0]&4&&b!==(b=k[2].id)&&h.value!==b&&(h.value=b)},d(k){k&&w(e),k&&w(a),k&&w(u),k&&w(d),k&&w(h),g=!1,y()}}}function ip(n){var u,f;let e,t,i,s,l;function o(c){n[26](c)}let r={collection:n[0]};n[2]!==void 0&&(r.record=n[2]),e=new r4({props:r}),le.push(()=>_e(e,"record",o));let a=((f=(u=n[0])==null?void 0:u.schema)==null?void 0:f.length)&&sp();return{c(){j(e.$$.fragment),i=O(),a&&a.c(),s=Ae()},m(c,d){R(e,c,d),S(c,i,d),a&&a.m(c,d),S(c,s,d),l=!0},p(c,d){var m,b;const h={};d[0]&1&&(h.collection=c[0]),!t&&d[0]&4&&(t=!0,h.record=c[2],ke(()=>t=!1)),e.$set(h),(b=(m=c[0])==null?void 0:m.schema)!=null&&b.length?a||(a=sp(),a.c(),a.m(s.parentNode,s)):a&&(a.d(1),a=null)},i(c){l||(A(e.$$.fragment,c),l=!0)},o(c){P(e.$$.fragment,c),l=!1},d(c){H(e,c),c&&w(i),a&&a.d(c),c&&w(s)}}}function sp(n){let e;return{c(){e=v("hr")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function jT(n){let e,t,i;function s(o){n[38](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new yT({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function qT(n){let e,t,i,s,l;function o(f){n[35](f,n[46])}function r(f){n[36](f,n[46])}function a(f){n[37](f,n[46])}let u={field:n[46],record:n[2]};return n[2][n[46].name]!==void 0&&(u.value=n[2][n[46].name]),n[3][n[46].name]!==void 0&&(u.uploadedFiles=n[3][n[46].name]),n[4][n[46].name]!==void 0&&(u.deletedFileIndexes=n[4][n[46].name]),e=new uT({props:u}),le.push(()=>_e(e,"value",o)),le.push(()=>_e(e,"uploadedFiles",r)),le.push(()=>_e(e,"deletedFileIndexes",a)),{c(){j(e.$$.fragment)},m(f,c){R(e,f,c),l=!0},p(f,c){n=f;const d={};c[0]&1&&(d.field=n[46]),c[0]&4&&(d.record=n[2]),!t&&c[0]&5&&(t=!0,d.value=n[2][n[46].name],ke(()=>t=!1)),!i&&c[0]&9&&(i=!0,d.uploadedFiles=n[3][n[46].name],ke(()=>i=!1)),!s&&c[0]&17&&(s=!0,d.deletedFileIndexes=n[4][n[46].name],ke(()=>s=!1)),e.$set(d)},i(f){l||(A(e.$$.fragment,f),l=!0)},o(f){P(e.$$.fragment,f),l=!1},d(f){H(e,f)}}}function VT(n){let e,t,i;function s(o){n[34](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new z4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function zT(n){let e,t,i;function s(o){n[33](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new H4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function BT(n){let e,t,i;function s(o){n[32](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new L4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function UT(n){let e,t,i;function s(o){n[31](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new A4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function WT(n){let e,t,i;function s(o){n[30](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new T4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function YT(n){let e,t,i;function s(o){n[29](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new w4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function KT(n){let e,t,i;function s(o){n[28](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new b4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function JT(n){let e,t,i;function s(o){n[27](o,n[46])}let l={field:n[46]};return n[2][n[46].name]!==void 0&&(l.value=n[2][n[46].name]),e=new h4({props:l}),le.push(()=>_e(e,"value",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[46]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[46].name],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function lp(n,e){let t,i,s,l,o;const r=[JT,KT,YT,WT,UT,BT,zT,VT,qT,jT],a=[];function u(f,c){return f[46].type==="text"?0:f[46].type==="number"?1:f[46].type==="bool"?2:f[46].type==="email"?3:f[46].type==="url"?4:f[46].type==="date"?5:f[46].type==="select"?6:f[46].type==="json"?7:f[46].type==="file"?8:f[46].type==="relation"?9:-1}return~(i=u(e))&&(s=a[i]=r[i](e)),{key:n,first:null,c(){t=Ae(),s&&s.c(),l=Ae(),this.first=t},m(f,c){S(f,t,c),~i&&a[i].m(f,c),S(f,l,c),o=!0},p(f,c){e=f;let d=i;i=u(e),i===d?~i&&a[i].p(e,c):(s&&(pe(),P(a[d],1,1,()=>{a[d]=null}),he()),~i?(s=a[i],s?s.p(e,c):(s=a[i]=r[i](e),s.c()),A(s,1),s.m(l.parentNode,l)):s=null)},i(f){o||(A(s),o=!0)},o(f){P(s),o=!1},d(f){f&&w(t),~i&&a[i].d(f),f&&w(l)}}}function op(n){let e,t,i;return t=new RT({props:{record:n[2]}}),{c(){e=v("div"),j(t.$$.fragment),p(e,"class","tab-item"),ne(e,"active",n[10]===bl)},m(s,l){S(s,e,l),R(t,e,null),i=!0},p(s,l){const o={};l[0]&4&&(o.record=s[2]),t.$set(o),(!i||l[0]&1024)&&ne(e,"active",s[10]===bl)},i(s){i||(A(t.$$.fragment,s),i=!0)},o(s){P(t.$$.fragment,s),i=!1},d(s){s&&w(e),H(t)}}}function ZT(n){var g,y;let e,t,i,s,l=[],o=new Map,r,a,u,f,c=!n[2].isNew&&np(n),d=((g=n[0])==null?void 0:g.isAuth)&&ip(n),h=((y=n[0])==null?void 0:y.schema)||[];const m=k=>k[46].name;for(let k=0;k{c=null}),he()):c?(c.p(k,$),$[0]&4&&A(c,1)):(c=np(k),c.c(),A(c,1),c.m(t,i)),(C=k[0])!=null&&C.isAuth?d?(d.p(k,$),$[0]&1&&A(d,1)):(d=ip(k),d.c(),A(d,1),d.m(t,s)):d&&(pe(),P(d,1,1,()=>{d=null}),he()),$[0]&29&&(h=((T=k[0])==null?void 0:T.schema)||[],pe(),l=bt(l,$,m,1,k,h,o,t,nn,lp,null,tp),he()),(!a||$[0]&1024)&&ne(t,"active",k[10]===Ui),k[0].isAuth&&!k[2].isNew?b?(b.p(k,$),$[0]&5&&A(b,1)):(b=op(k),b.c(),A(b,1),b.m(e,null)):b&&(pe(),P(b,1,1,()=>{b=null}),he())},i(k){if(!a){A(c),A(d);for(let $=0;$ - Send verification email`,p(e,"type","button"),p(e,"class","dropdown-item closable")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[21]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function up(n){let e,t,i;return{c(){e=v("button"),e.innerHTML=` - Send password reset email`,p(e,"type","button"),p(e,"class","dropdown-item closable")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[22]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function GT(n){let e,t,i,s,l,o=n[0].isAuth&&!n[7].verified&&n[7].email&&ap(n),r=n[0].isAuth&&n[7].email&&up(n);return{c(){o&&o.c(),e=O(),r&&r.c(),t=O(),i=v("button"),i.innerHTML=` - Delete`,p(i,"type","button"),p(i,"class","dropdown-item txt-danger closable")},m(a,u){o&&o.m(a,u),S(a,e,u),r&&r.m(a,u),S(a,t,u),S(a,i,u),s||(l=K(i,"click",Yn(ut(n[23]))),s=!0)},p(a,u){a[0].isAuth&&!a[7].verified&&a[7].email?o?o.p(a,u):(o=ap(a),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null),a[0].isAuth&&a[7].email?r?r.p(a,u):(r=up(a),r.c(),r.m(t.parentNode,t)):r&&(r.d(1),r=null)},d(a){o&&o.d(a),a&&w(e),r&&r.d(a),a&&w(t),a&&w(i),s=!1,l()}}}function fp(n){let e,t,i,s,l,o;return{c(){e=v("div"),t=v("button"),t.textContent="Account",i=O(),s=v("button"),s.textContent="Authorized providers",p(t,"type","button"),p(t,"class","tab-item"),ne(t,"active",n[10]===Ui),p(s,"type","button"),p(s,"class","tab-item"),ne(s,"active",n[10]===bl),p(e,"class","tabs-header stretched")},m(r,a){S(r,e,a),_(e,t),_(e,i),_(e,s),l||(o=[K(t,"click",n[24]),K(s,"click",n[25])],l=!0)},p(r,a){a[0]&1024&&ne(t,"active",r[10]===Ui),a[0]&1024&&ne(s,"active",r[10]===bl)},d(r){r&&w(e),l=!1,Pe(o)}}}function XT(n){var b;let e,t=n[2].isNew?"New":"Edit",i,s,l,o=((b=n[0])==null?void 0:b.name)+"",r,a,u,f,c,d,h=!n[2].isNew&&rp(n),m=n[0].isAuth&&!n[2].isNew&&fp(n);return{c(){e=v("h4"),i=B(t),s=O(),l=v("strong"),r=B(o),a=B(" record"),u=O(),h&&h.c(),f=O(),m&&m.c(),c=Ae()},m(g,y){S(g,e,y),_(e,i),_(e,s),_(e,l),_(l,r),_(e,a),S(g,u,y),h&&h.m(g,y),S(g,f,y),m&&m.m(g,y),S(g,c,y),d=!0},p(g,y){var k;(!d||y[0]&4)&&t!==(t=g[2].isNew?"New":"Edit")&&ae(i,t),(!d||y[0]&1)&&o!==(o=((k=g[0])==null?void 0:k.name)+"")&&ae(r,o),g[2].isNew?h&&(pe(),P(h,1,1,()=>{h=null}),he()):h?(h.p(g,y),y[0]&4&&A(h,1)):(h=rp(g),h.c(),A(h,1),h.m(f.parentNode,f)),g[0].isAuth&&!g[2].isNew?m?m.p(g,y):(m=fp(g),m.c(),m.m(c.parentNode,c)):m&&(m.d(1),m=null)},i(g){d||(A(h),d=!0)},o(g){P(h),d=!1},d(g){g&&w(e),g&&w(u),h&&h.d(g),g&&w(f),m&&m.d(g),g&&w(c)}}}function QT(n){let e,t,i,s,l,o=n[2].isNew?"Create":"Save changes",r,a,u,f;return{c(){e=v("button"),t=v("span"),t.textContent="Cancel",i=O(),s=v("button"),l=v("span"),r=B(o),p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary"),e.disabled=n[8],p(l,"class","txt"),p(s,"type","submit"),p(s,"form",n[12]),p(s,"class","btn btn-expanded"),s.disabled=a=!n[11]||n[8],ne(s,"btn-loading",n[8])},m(c,d){S(c,e,d),_(e,t),S(c,i,d),S(c,s,d),_(s,l),_(l,r),u||(f=K(e,"click",n[20]),u=!0)},p(c,d){d[0]&256&&(e.disabled=c[8]),d[0]&4&&o!==(o=c[2].isNew?"Create":"Save changes")&&ae(r,o),d[0]&2304&&a!==(a=!c[11]||c[8])&&(s.disabled=a),d[0]&256&&ne(s,"btn-loading",c[8])},d(c){c&&w(e),c&&w(i),c&&w(s),u=!1,f()}}}function xT(n){var s;let e,t,i={class:"overlay-panel-lg record-panel "+(((s=n[0])==null?void 0:s.isAuth)&&!n[2].isNew?"colored-header":""),beforeHide:n[39],$$slots:{footer:[QT],header:[XT],default:[ZT]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[40](e),e.$on("hide",n[41]),e.$on("show",n[42]),{c(){j(e.$$.fragment)},m(l,o){R(e,l,o),t=!0},p(l,o){var a;const r={};o[0]&5&&(r.class="overlay-panel-lg record-panel "+(((a=l[0])==null?void 0:a.isAuth)&&!l[2].isNew?"colored-header":"")),o[0]&544&&(r.beforeHide=l[39]),o[0]&3485|o[1]&524288&&(r.$$scope={dirty:o,ctx:l}),e.$set(r)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){P(e.$$.fragment,l),t=!1},d(l){n[40](null),H(e,l)}}}const Ui="form",bl="providers";function cp(n){return JSON.stringify(n)}function eM(n,e,t){let i,s,l;const o=It(),r="record_"+W.randomString(5);let{collection:a}=e,u,f=null,c=new Wi,d=!1,h=!1,m={},b={},g="",y=Ui;function k(fe){return C(fe),t(9,h=!0),t(10,y=Ui),u==null?void 0:u.show()}function $(){return u==null?void 0:u.hide()}async function C(fe){Fn({}),t(7,f=fe||{}),fe!=null&&fe.clone?t(2,c=fe.clone()):t(2,c=new Wi),t(3,m={}),t(4,b={}),await Tn(),t(18,g=cp(c))}function T(){if(d||!l||!(a!=null&&a.id))return;t(8,d=!0);const fe=D();let Z;c.isNew?Z=de.collection(a.id).create(fe):Z=de.collection(a.id).update(c.id,fe),Z.then(Ce=>{Lt(c.isNew?"Successfully created record.":"Successfully updated record."),t(9,h=!1),$(),o("save",Ce)}).catch(Ce=>{de.errorResponseHandler(Ce)}).finally(()=>{t(8,d=!1)})}function M(){!(f!=null&&f.id)||wn("Do you really want to delete the selected record?",()=>de.collection(f.collectionId).delete(f.id).then(()=>{$(),Lt("Successfully deleted record."),o("delete",f)}).catch(fe=>{de.errorResponseHandler(fe)}))}function D(){const fe=(c==null?void 0:c.export())||{},Z=new FormData,Ce={};for(const Ue of(a==null?void 0:a.schema)||[])Ce[Ue.name]=!0;a!=null&&a.isAuth&&(Ce.username=!0,Ce.email=!0,Ce.emailVisibility=!0,Ce.password=!0,Ce.passwordConfirm=!0,Ce.verified=!0);for(const Ue in fe)!Ce[Ue]||(typeof fe[Ue]>"u"&&(fe[Ue]=null),W.addValueToFormData(Z,Ue,fe[Ue]));for(const Ue in m){const qt=W.toArray(m[Ue]);for(const Gt of qt)Z.append(Ue,Gt)}for(const Ue in b){const qt=W.toArray(b[Ue]);for(const Gt of qt)Z.append(Ue+"."+Gt,"")}return Z}function E(){!(a!=null&&a.id)||!(f!=null&&f.email)||wn(`Do you really want to sent verification email to ${f.email}?`,()=>de.collection(a.id).requestVerification(f.email).then(()=>{Lt(`Successfully sent verification email to ${f.email}.`)}).catch(fe=>{de.errorResponseHandler(fe)}))}function I(){!(a!=null&&a.id)||!(f!=null&&f.email)||wn(`Do you really want to sent password reset email to ${f.email}?`,()=>de.collection(a.id).requestPasswordReset(f.email).then(()=>{Lt(`Successfully sent password reset email to ${f.email}.`)}).catch(fe=>{de.errorResponseHandler(fe)}))}const L=()=>$(),F=()=>E(),q=()=>I(),z=()=>M(),J=()=>t(10,y=Ui),G=()=>t(10,y=bl);function X(fe){c=fe,t(2,c)}function Q(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function ie(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function Y(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function x(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function U(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function re(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function Re(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function Ne(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function Le(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}function Fe(fe,Z){n.$$.not_equal(m[Z.name],fe)&&(m[Z.name]=fe,t(3,m))}function me(fe,Z){n.$$.not_equal(b[Z.name],fe)&&(b[Z.name]=fe,t(4,b))}function Se(fe,Z){n.$$.not_equal(c[Z.name],fe)&&(c[Z.name]=fe,t(2,c))}const we=()=>s&&h?(wn("You have unsaved changes. Do you really want to close the panel?",()=>{t(9,h=!1),$()}),!1):(Fn({}),!0);function We(fe){le[fe?"unshift":"push"](()=>{u=fe,t(6,u)})}function ue(fe){Ve.call(this,n,fe)}function se(fe){Ve.call(this,n,fe)}return n.$$set=fe=>{"collection"in fe&&t(0,a=fe.collection)},n.$$.update=()=>{n.$$.dirty[0]&24&&t(19,i=W.hasNonEmptyProps(m)||W.hasNonEmptyProps(b)),n.$$.dirty[0]&786436&&t(5,s=i||g!=cp(c)),n.$$.dirty[0]&36&&t(11,l=c.isNew||s)},[a,$,c,m,b,s,u,f,d,h,y,l,r,T,M,E,I,k,g,i,L,F,q,z,J,G,X,Q,ie,Y,x,U,re,Re,Ne,Le,Fe,me,Se,we,We,ue,se]}class q_ extends ye{constructor(e){super(),ve(this,e,eM,xT,be,{collection:0,show:17,hide:1},null,[-1,-1])}get show(){return this.$$.ctx[17]}get hide(){return this.$$.ctx[1]}}function tM(n){let e;return{c(){e=v("span"),e.textContent="N/A",p(e,"class","txt txt-hint")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function nM(n){let e,t;return{c(){e=v("span"),t=B(n[1]),p(e,"class","label txt-base txt-mono"),p(e,"title",n[0])},m(i,s){S(i,e,s),_(e,t)},p(i,s){s&2&&ae(t,i[1]),s&1&&p(e,"title",i[0])},d(i){i&&w(e)}}}function iM(n){let e;function t(l,o){return l[0]?nM:tM}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,[o]){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},i:te,o:te,d(l){s.d(l),l&&w(e)}}}function sM(n,e,t){let{id:i=""}=e,s=i;return n.$$set=l=>{"id"in l&&t(0,i=l.id)},n.$$.update=()=>{n.$$.dirty&1&&typeof i=="string"&&i.length>27&&t(1,s=i.substring(0,5)+"..."+i.substring(i.length-10))},[i,s]}class Za extends ye{constructor(e){super(),ve(this,e,sM,iM,be,{id:0})}}function dp(n,e,t){const i=n.slice();return i[7]=e[t],i[5]=t,i}function pp(n,e,t){const i=n.slice();return i[3]=e[t],i[5]=t,i}function hp(n,e,t){const i=n.slice();return i[3]=e[t],i[5]=t,i}function lM(n){let e,t=ps(n[0][n[1].name])+"",i,s;return{c(){e=v("span"),i=B(t),p(e,"class","txt txt-ellipsis"),p(e,"title",s=ps(n[0][n[1].name]))},m(l,o){S(l,e,o),_(e,i)},p(l,o){o&3&&t!==(t=ps(l[0][l[1].name])+"")&&ae(i,t),o&3&&s!==(s=ps(l[0][l[1].name]))&&p(e,"title",s)},i:te,o:te,d(l){l&&w(e)}}}function oM(n){let e,t=[],i=new Map,s,l=W.toArray(n[0][n[1].name]);const o=r=>r[5]+r[7];for(let r=0;r20,o,r=W.toArray(n[0][n[1].name]).slice(0,20);const a=f=>f[5]+f[3];for(let f=0;f20),l?u||(u=_p(),u.c(),u.m(e,null)):u&&(u.d(1),u=null)},i(f){if(!o){for(let c=0;co[5]+o[3];for(let o=0;o{a[d]=null}),he(),s=a[i],s?s.p(f,c):(s=a[i]=r[i](f),s.c()),A(s,1),s.m(e,null)),(!o||c&2&&l!==(l="col-type-"+f[1].type+" col-field-"+f[1].name))&&p(e,"class",l)},i(f){o||(A(s),o=!0)},o(f){P(s),o=!1},d(f){f&&w(e),a[i].d()}}}function ps(n){return n=n||"",n.length>200?n.substring(0,200):n}function mM(n,e,t){let{record:i}=e,{field:s}=e;function l(o){Ve.call(this,n,o)}return n.$$set=o=>{"record"in o&&t(0,i=o.record),"field"in o&&t(1,s=o.field)},[i,s,l]}class gM extends ye{constructor(e){super(),ve(this,e,mM,hM,be,{record:0,field:1})}}function vp(n,e,t){const i=n.slice();return i[51]=e[t],i}function yp(n,e,t){const i=n.slice();return i[54]=e[t],i}function kp(n,e,t){const i=n.slice();return i[54]=e[t],i}function wp(n,e,t){const i=n.slice();return i[47]=e[t],i}function _M(n){let e,t,i,s,l,o,r;return{c(){e=v("div"),t=v("input"),s=O(),l=v("label"),p(t,"type","checkbox"),p(t,"id","checkbox_0"),t.disabled=i=!n[4].length,t.checked=n[14],p(l,"for","checkbox_0"),p(e,"class","form-field")},m(a,u){S(a,e,u),_(e,t),_(e,s),_(e,l),o||(r=K(t,"change",n[26]),o=!0)},p(a,u){u[0]&16&&i!==(i=!a[4].length)&&(t.disabled=i),u[0]&16384&&(t.checked=a[14])},d(a){a&&w(e),o=!1,r()}}}function bM(n){let e;return{c(){e=v("span"),p(e,"class","loader loader-sm")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function Sp(n){let e,t,i;function s(o){n[27](o)}let l={class:"col-type-text col-field-id",name:"id",$$slots:{default:[vM]},$$scope:{ctx:n}};return n[0]!==void 0&&(l.sort=n[0]),e=new Ft({props:l}),le.push(()=>_e(e,"sort",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[1]&268435456&&(a.$$scope={dirty:r,ctx:o}),!t&&r[0]&1&&(t=!0,a.sort=o[0],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function vM(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="id",p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function $p(n){let e=!n[7].includes("@username"),t,i=!n[7].includes("@email"),s,l,o=e&&Cp(n),r=i&&Tp(n);return{c(){o&&o.c(),t=O(),r&&r.c(),s=Ae()},m(a,u){o&&o.m(a,u),S(a,t,u),r&&r.m(a,u),S(a,s,u),l=!0},p(a,u){u[0]&128&&(e=!a[7].includes("@username")),e?o?(o.p(a,u),u[0]&128&&A(o,1)):(o=Cp(a),o.c(),A(o,1),o.m(t.parentNode,t)):o&&(pe(),P(o,1,1,()=>{o=null}),he()),u[0]&128&&(i=!a[7].includes("@email")),i?r?(r.p(a,u),u[0]&128&&A(r,1)):(r=Tp(a),r.c(),A(r,1),r.m(s.parentNode,s)):r&&(pe(),P(r,1,1,()=>{r=null}),he())},i(a){l||(A(o),A(r),l=!0)},o(a){P(o),P(r),l=!1},d(a){o&&o.d(a),a&&w(t),r&&r.d(a),a&&w(s)}}}function Cp(n){let e,t,i;function s(o){n[28](o)}let l={class:"col-type-text col-field-id",name:"username",$$slots:{default:[yM]},$$scope:{ctx:n}};return n[0]!==void 0&&(l.sort=n[0]),e=new Ft({props:l}),le.push(()=>_e(e,"sort",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[1]&268435456&&(a.$$scope={dirty:r,ctx:o}),!t&&r[0]&1&&(t=!0,a.sort=o[0],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function yM(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="username",p(t,"class",W.getFieldTypeIcon("user")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function Tp(n){let e,t,i;function s(o){n[29](o)}let l={class:"col-type-email col-field-email",name:"email",$$slots:{default:[kM]},$$scope:{ctx:n}};return n[0]!==void 0&&(l.sort=n[0]),e=new Ft({props:l}),le.push(()=>_e(e,"sort",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[1]&268435456&&(a.$$scope={dirty:r,ctx:o}),!t&&r[0]&1&&(t=!0,a.sort=o[0],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function kM(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="email",p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function wM(n){let e,t,i,s,l,o=n[54].name+"",r;return{c(){e=v("div"),t=v("i"),s=O(),l=v("span"),r=B(o),p(t,"class",i=W.getFieldTypeIcon(n[54].type)),p(l,"class","txt"),p(e,"class","col-header-content")},m(a,u){S(a,e,u),_(e,t),_(e,s),_(e,l),_(l,r)},p(a,u){u[0]&65536&&i!==(i=W.getFieldTypeIcon(a[54].type))&&p(t,"class",i),u[0]&65536&&o!==(o=a[54].name+"")&&ae(r,o)},d(a){a&&w(e)}}}function Mp(n,e){let t,i,s,l;function o(a){e[30](a)}let r={class:"col-type-"+e[54].type+" col-field-"+e[54].name,name:e[54].name,$$slots:{default:[wM]},$$scope:{ctx:e}};return e[0]!==void 0&&(r.sort=e[0]),i=new Ft({props:r}),le.push(()=>_e(i,"sort",o)),{key:n,first:null,c(){t=Ae(),j(i.$$.fragment),this.first=t},m(a,u){S(a,t,u),R(i,a,u),l=!0},p(a,u){e=a;const f={};u[0]&65536&&(f.class="col-type-"+e[54].type+" col-field-"+e[54].name),u[0]&65536&&(f.name=e[54].name),u[0]&65536|u[1]&268435456&&(f.$$scope={dirty:u,ctx:e}),!s&&u[0]&1&&(s=!0,f.sort=e[0],ke(()=>s=!1)),i.$set(f)},i(a){l||(A(i.$$.fragment,a),l=!0)},o(a){P(i.$$.fragment,a),l=!1},d(a){a&&w(t),H(i,a)}}}function Op(n){let e,t,i;function s(o){n[31](o)}let l={class:"col-type-date col-field-created",name:"created",$$slots:{default:[SM]},$$scope:{ctx:n}};return n[0]!==void 0&&(l.sort=n[0]),e=new Ft({props:l}),le.push(()=>_e(e,"sort",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[1]&268435456&&(a.$$scope={dirty:r,ctx:o}),!t&&r[0]&1&&(t=!0,a.sort=o[0],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function SM(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="created",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function Dp(n){let e,t,i;function s(o){n[32](o)}let l={class:"col-type-date col-field-updated",name:"updated",$$slots:{default:[$M]},$$scope:{ctx:n}};return n[0]!==void 0&&(l.sort=n[0]),e=new Ft({props:l}),le.push(()=>_e(e,"sort",s)),{c(){j(e.$$.fragment)},m(o,r){R(e,o,r),i=!0},p(o,r){const a={};r[1]&268435456&&(a.$$scope={dirty:r,ctx:o}),!t&&r[0]&1&&(t=!0,a.sort=o[0],ke(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){H(e,o)}}}function $M(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="updated",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function Ap(n){let e;function t(l,o){return l[10]?TM:CM}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&w(e)}}}function CM(n){var r;let e,t,i,s,l,o=((r=n[1])==null?void 0:r.length)&&Ep(n);return{c(){e=v("tr"),t=v("td"),i=v("h6"),i.textContent="No records found.",s=O(),o&&o.c(),l=O(),p(t,"colspan","99"),p(t,"class","txt-center txt-hint p-xs")},m(a,u){S(a,e,u),_(e,t),_(t,i),_(t,s),o&&o.m(t,null),_(e,l)},p(a,u){var f;(f=a[1])!=null&&f.length?o?o.p(a,u):(o=Ep(a),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(a){a&&w(e),o&&o.d()}}}function TM(n){let e;return{c(){e=v("tr"),e.innerHTML=` - `},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function Ep(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Clear filters',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[37]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function Ip(n){let e,t,i,s,l;i=new Za({props:{id:n[51].id}});let o=n[2].isAuth&&Pp(n);return{c(){e=v("td"),t=v("div"),j(i.$$.fragment),s=O(),o&&o.c(),p(t,"class","flex flex-gap-5"),p(e,"class","col-type-text col-field-id")},m(r,a){S(r,e,a),_(e,t),R(i,t,null),_(t,s),o&&o.m(t,null),l=!0},p(r,a){const u={};a[0]&16&&(u.id=r[51].id),i.$set(u),r[2].isAuth?o?o.p(r,a):(o=Pp(r),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){P(i.$$.fragment,r),l=!1},d(r){r&&w(e),H(i),o&&o.d()}}}function Pp(n){let e;function t(l,o){return l[51].verified?OM:MM}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,o){i!==(i=t(l))&&(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&w(e)}}}function MM(n){let e,t,i;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-sm txt-hint")},m(s,l){S(s,e,l),t||(i=Ee(Be.call(null,e,"Unverified")),t=!0)},d(s){s&&w(e),t=!1,i()}}}function OM(n){let e,t,i;return{c(){e=v("i"),p(e,"class","ri-checkbox-circle-fill txt-sm txt-success")},m(s,l){S(s,e,l),t||(i=Ee(Be.call(null,e,"Verified")),t=!0)},d(s){s&&w(e),t=!1,i()}}}function Lp(n){let e=!n[7].includes("@username"),t,i=!n[7].includes("@email"),s,l=e&&Np(n),o=i&&Fp(n);return{c(){l&&l.c(),t=O(),o&&o.c(),s=Ae()},m(r,a){l&&l.m(r,a),S(r,t,a),o&&o.m(r,a),S(r,s,a)},p(r,a){a[0]&128&&(e=!r[7].includes("@username")),e?l?l.p(r,a):(l=Np(r),l.c(),l.m(t.parentNode,t)):l&&(l.d(1),l=null),a[0]&128&&(i=!r[7].includes("@email")),i?o?o.p(r,a):(o=Fp(r),o.c(),o.m(s.parentNode,s)):o&&(o.d(1),o=null)},d(r){l&&l.d(r),r&&w(t),o&&o.d(r),r&&w(s)}}}function Np(n){let e,t;function i(o,r){return r[0]&16&&(t=null),t==null&&(t=!!W.isEmpty(o[51].username)),t?AM:DM}let s=i(n,[-1,-1]),l=s(n);return{c(){e=v("td"),l.c(),p(e,"class","col-type-text col-field-username")},m(o,r){S(o,e,r),l.m(e,null)},p(o,r){s===(s=i(o,r))&&l?l.p(o,r):(l.d(1),l=s(o),l&&(l.c(),l.m(e,null)))},d(o){o&&w(e),l.d()}}}function DM(n){let e,t=n[51].username+"",i,s;return{c(){e=v("span"),i=B(t),p(e,"class","txt txt-ellipsis"),p(e,"title",s=n[51].username)},m(l,o){S(l,e,o),_(e,i)},p(l,o){o[0]&16&&t!==(t=l[51].username+"")&&ae(i,t),o[0]&16&&s!==(s=l[51].username)&&p(e,"title",s)},d(l){l&&w(e)}}}function AM(n){let e;return{c(){e=v("span"),e.textContent="N/A",p(e,"class","txt-hint")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function Fp(n){let e,t;function i(o,r){return r[0]&16&&(t=null),t==null&&(t=!!W.isEmpty(o[51].email)),t?IM:EM}let s=i(n,[-1,-1]),l=s(n);return{c(){e=v("td"),l.c(),p(e,"class","col-type-text col-field-email")},m(o,r){S(o,e,r),l.m(e,null)},p(o,r){s===(s=i(o,r))&&l?l.p(o,r):(l.d(1),l=s(o),l&&(l.c(),l.m(e,null)))},d(o){o&&w(e),l.d()}}}function EM(n){let e,t=n[51].email+"",i,s;return{c(){e=v("span"),i=B(t),p(e,"class","txt txt-ellipsis"),p(e,"title",s=n[51].email)},m(l,o){S(l,e,o),_(e,i)},p(l,o){o[0]&16&&t!==(t=l[51].email+"")&&ae(i,t),o[0]&16&&s!==(s=l[51].email)&&p(e,"title",s)},d(l){l&&w(e)}}}function IM(n){let e;return{c(){e=v("span"),e.textContent="N/A",p(e,"class","txt-hint")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function Rp(n,e){let t,i,s;return i=new gM({props:{record:e[51],field:e[54]}}),{key:n,first:null,c(){t=Ae(),j(i.$$.fragment),this.first=t},m(l,o){S(l,t,o),R(i,l,o),s=!0},p(l,o){e=l;const r={};o[0]&16&&(r.record=e[51]),o[0]&65536&&(r.field=e[54]),i.$set(r)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){P(i.$$.fragment,l),s=!1},d(l){l&&w(t),H(i,l)}}}function Hp(n){let e,t,i;return t=new Ki({props:{date:n[51].created}}),{c(){e=v("td"),j(t.$$.fragment),p(e,"class","col-type-date col-field-created")},m(s,l){S(s,e,l),R(t,e,null),i=!0},p(s,l){const o={};l[0]&16&&(o.date=s[51].created),t.$set(o)},i(s){i||(A(t.$$.fragment,s),i=!0)},o(s){P(t.$$.fragment,s),i=!1},d(s){s&&w(e),H(t)}}}function jp(n){let e,t,i;return t=new Ki({props:{date:n[51].updated}}),{c(){e=v("td"),j(t.$$.fragment),p(e,"class","col-type-date col-field-updated")},m(s,l){S(s,e,l),R(t,e,null),i=!0},p(s,l){const o={};l[0]&16&&(o.date=s[51].updated),t.$set(o)},i(s){i||(A(t.$$.fragment,s),i=!0)},o(s){P(t.$$.fragment,s),i=!1},d(s){s&&w(e),H(t)}}}function qp(n,e){let t,i,s,l,o,r,a,u,f,c,d=!e[7].includes("@id"),h,m,b=[],g=new Map,y,k=!e[7].includes("@created"),$,C=!e[7].includes("@updated"),T,M,D,E,I,L;function F(){return e[34](e[51])}let q=d&&Ip(e),z=e[2].isAuth&&Lp(e),J=e[16];const G=x=>x[54].name;for(let x=0;x',D=O(),p(l,"type","checkbox"),p(l,"id",o="checkbox_"+e[51].id),l.checked=r=e[6][e[51].id],p(u,"for",f="checkbox_"+e[51].id),p(s,"class","form-field"),p(i,"class","bulk-select-col min-width"),p(M,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(x,U){S(x,t,U),_(t,i),_(i,s),_(s,l),_(s,a),_(s,u),_(t,c),q&&q.m(t,null),_(t,h),z&&z.m(t,null),_(t,m);for(let re=0;re{q=null}),he()),e[2].isAuth?z?z.p(e,U):(z=Lp(e),z.c(),z.m(t,m)):z&&(z.d(1),z=null),U[0]&65552&&(J=e[16],pe(),b=bt(b,U,G,1,e,J,g,t,nn,Rp,y,yp),he()),U[0]&128&&(k=!e[7].includes("@created")),k?X?(X.p(e,U),U[0]&128&&A(X,1)):(X=Hp(e),X.c(),A(X,1),X.m(t,$)):X&&(pe(),P(X,1,1,()=>{X=null}),he()),U[0]&128&&(C=!e[7].includes("@updated")),C?Q?(Q.p(e,U),U[0]&128&&A(Q,1)):(Q=jp(e),Q.c(),A(Q,1),Q.m(t,T)):Q&&(pe(),P(Q,1,1,()=>{Q=null}),he())},i(x){if(!E){A(q);for(let U=0;UY[54].name;for(let Y=0;YY[51].id;for(let Y=0;Y',k=O(),$=v("tbody");for(let Y=0;Y{L=null}),he()),Y[2].isAuth?F?(F.p(Y,x),x[0]&4&&A(F,1)):(F=$p(Y),F.c(),A(F,1),F.m(i,a)):F&&(pe(),P(F,1,1,()=>{F=null}),he()),x[0]&65537&&(q=Y[16],pe(),u=bt(u,x,z,1,Y,q,f,i,nn,Mp,c,kp),he()),x[0]&128&&(d=!Y[7].includes("@created")),d?J?(J.p(Y,x),x[0]&128&&A(J,1)):(J=Op(Y),J.c(),A(J,1),J.m(i,h)):J&&(pe(),P(J,1,1,()=>{J=null}),he()),x[0]&128&&(m=!Y[7].includes("@updated")),m?G?(G.p(Y,x),x[0]&128&&A(G,1)):(G=Dp(Y),G.c(),A(G,1),G.m(i,b)):G&&(pe(),P(G,1,1,()=>{G=null}),he()),x[0]&1246422&&(X=Y[4],pe(),C=bt(C,x,Q,1,Y,X,T,$,nn,qp,null,vp),he(),!X.length&&ie?ie.p(Y,x):X.length?ie&&(ie.d(1),ie=null):(ie=Ap(Y),ie.c(),ie.m($,null))),(!M||x[0]&1024)&&ne(e,"table-loading",Y[10])},i(Y){if(!M){A(L),A(F);for(let x=0;x({50:l}),({uniqueId:l})=>[0,l?524288:0]]},$$scope:{ctx:e}}}),{key:n,first:null,c(){t=Ae(),j(i.$$.fragment),this.first=t},m(l,o){S(l,t,o),R(i,l,o),s=!0},p(l,o){e=l;const r={};o[0]&8320|o[1]&268959744&&(r.$$scope={dirty:o,ctx:e}),i.$set(r)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){P(i.$$.fragment,l),s=!1},d(l){l&&w(t),H(i,l)}}}function NM(n){let e,t,i=[],s=new Map,l,o,r=n[13];const a=u=>u[47].id+u[47].name;for(let u=0;uReset',c=O(),d=v("div"),h=O(),m=v("button"),m.innerHTML='Delete selected',p(t,"class","txt"),p(f,"type","button"),p(f,"class","btn btn-xs btn-secondary btn-outline p-l-5 p-r-5"),ne(f,"btn-disabled",n[11]),p(d,"class","flex-fill"),p(m,"type","button"),p(m,"class","btn btn-sm btn-secondary btn-danger"),ne(m,"btn-loading",n[11]),ne(m,"btn-disabled",n[11]),p(e,"class","bulkbar")},m($,C){S($,e,C),_(e,t),_(t,i),_(t,s),_(s,l),_(t,o),_(t,a),_(e,u),_(e,f),_(e,c),_(e,d),_(e,h),_(e,m),g=!0,y||(k=[K(f,"click",n[39]),K(m,"click",n[40])],y=!0)},p($,C){(!g||C[0]&256)&&ae(l,$[8]),(!g||C[0]&256)&&r!==(r=$[8]===1?"record":"records")&&ae(a,r),(!g||C[0]&2048)&&ne(f,"btn-disabled",$[11]),(!g||C[0]&2048)&&ne(m,"btn-loading",$[11]),(!g||C[0]&2048)&&ne(m,"btn-disabled",$[11])},i($){g||($&&xe(()=>{b||(b=je(e,Sn,{duration:150,y:5},!0)),b.run(1)}),g=!0)},o($){$&&(b||(b=je(e,Sn,{duration:150,y:5},!1)),b.run(0)),g=!1},d($){$&&w(e),$&&b&&b.end(),y=!1,Pe(k)}}}function RM(n){let e,t,i,s,l,o;e=new Sa({props:{class:"table-wrapper",$$slots:{before:[FM],default:[PM]},$$scope:{ctx:n}}});let r=n[4].length&&zp(n),a=n[4].length&&n[15]&&Bp(n),u=n[8]&&Up(n);return{c(){j(e.$$.fragment),t=O(),r&&r.c(),i=O(),a&&a.c(),s=O(),u&&u.c(),l=Ae()},m(f,c){R(e,f,c),S(f,t,c),r&&r.m(f,c),S(f,i,c),a&&a.m(f,c),S(f,s,c),u&&u.m(f,c),S(f,l,c),o=!0},p(f,c){const d={};c[0]&95447|c[1]&268435456&&(d.$$scope={dirty:c,ctx:f}),e.$set(d),f[4].length?r?r.p(f,c):(r=zp(f),r.c(),r.m(i.parentNode,i)):r&&(r.d(1),r=null),f[4].length&&f[15]?a?a.p(f,c):(a=Bp(f),a.c(),a.m(s.parentNode,s)):a&&(a.d(1),a=null),f[8]?u?(u.p(f,c),c[0]&256&&A(u,1)):(u=Up(f),u.c(),A(u,1),u.m(l.parentNode,l)):u&&(pe(),P(u,1,1,()=>{u=null}),he())},i(f){o||(A(e.$$.fragment,f),A(u),o=!0)},o(f){P(e.$$.fragment,f),P(u),o=!1},d(f){H(e,f),f&&w(t),r&&r.d(f),f&&w(i),a&&a.d(f),f&&w(s),u&&u.d(f),f&&w(l)}}}function HM(n,e,t){let i,s,l,o,r;const a=It();let{collection:u}=e,{sort:f=""}=e,{filter:c=""}=e,d=[],h=1,m=0,b={},g=!0,y=!1,k=0,$,C=[],T=[];function M(){!(u!=null&&u.id)||localStorage.setItem((u==null?void 0:u.id)+"@hiddenCollumns",JSON.stringify(C))}function D(){if(t(7,C=[]),!!(u!=null&&u.id))try{const Z=localStorage.getItem(u.id+"@hiddenCollumns");Z&&t(7,C=JSON.parse(Z)||[])}catch{}}async function E(){const Z=h;for(let Ce=1;Ce<=Z;Ce++)(Ce===1||i)&&await I(Ce,!1)}async function I(Z=1,Ce=!0){if(!!(u!=null&&u.id))return t(10,g=!0),de.collection(u.id).getList(Z,30,{sort:f,filter:c}).then(async Ue=>{if(Z<=1&&L(),t(10,g=!1),t(9,h=Ue.page),t(5,m=Ue.totalItems),a("load",d.concat(Ue.items)),Ce){const qt=++k;for(;Ue.items.length&&k==qt;)t(4,d=d.concat(Ue.items.splice(0,15))),await W.yieldToMain()}else t(4,d=d.concat(Ue.items))}).catch(Ue=>{Ue!=null&&Ue.isAbort||(t(10,g=!1),console.warn(Ue),L(),de.errorResponseHandler(Ue,!1))})}function L(){t(4,d=[]),t(9,h=1),t(5,m=0),t(6,b={})}function F(){r?q():z()}function q(){t(6,b={})}function z(){for(const Z of d)t(6,b[Z.id]=Z,b);t(6,b)}function J(Z){b[Z.id]?delete b[Z.id]:t(6,b[Z.id]=Z,b),t(6,b)}function G(){wn(`Do you really want to delete the selected ${o===1?"record":"records"}?`,X)}async function X(){if(y||!o||!(u!=null&&u.id))return;let Z=[];for(const Ce of Object.keys(b))Z.push(de.collection(u.id).delete(Ce));return t(11,y=!0),Promise.all(Z).then(()=>{Lt(`Successfully deleted the selected ${o===1?"record":"records"}.`),q()}).catch(Ce=>{de.errorResponseHandler(Ce)}).finally(()=>(t(11,y=!1),E()))}function Q(Z){Ve.call(this,n,Z)}const ie=(Z,Ce)=>{Ce.target.checked?W.removeByValue(C,Z.id):W.pushUnique(C,Z.id),t(7,C)},Y=()=>F();function x(Z){f=Z,t(0,f)}function U(Z){f=Z,t(0,f)}function re(Z){f=Z,t(0,f)}function Re(Z){f=Z,t(0,f)}function Ne(Z){f=Z,t(0,f)}function Le(Z){f=Z,t(0,f)}function Fe(Z){le[Z?"unshift":"push"](()=>{$=Z,t(12,$)})}const me=Z=>J(Z),Se=Z=>a("select",Z),we=(Z,Ce)=>{Ce.code==="Enter"&&(Ce.preventDefault(),a("select",Z))},We=()=>t(1,c=""),ue=()=>I(h+1),se=()=>q(),fe=()=>G();return n.$$set=Z=>{"collection"in Z&&t(2,u=Z.collection),"sort"in Z&&t(0,f=Z.sort),"filter"in Z&&t(1,c=Z.filter)},n.$$.update=()=>{n.$$.dirty[0]&4&&u!=null&&u.id&&(D(),L()),n.$$.dirty[0]&7&&(u==null?void 0:u.id)&&f!==-1&&c!==-1&&I(1),n.$$.dirty[0]&48&&t(15,i=m>d.length),n.$$.dirty[0]&4&&t(23,s=(u==null?void 0:u.schema)||[]),n.$$.dirty[0]&8388736&&t(16,l=s.filter(Z=>!C.includes(Z.id))),n.$$.dirty[0]&64&&t(8,o=Object.keys(b).length),n.$$.dirty[0]&272&&t(14,r=d.length&&o===d.length),n.$$.dirty[0]&128&&C!==-1&&M(),n.$$.dirty[0]&8388612&&t(13,T=[].concat(u.isAuth?[{id:"@username",name:"username"},{id:"@email",name:"email"}]:[],s.map(Z=>({id:Z.id,name:Z.name})),[{id:"@created",name:"created"},{id:"@updated",name:"updated"}]))},[f,c,u,I,d,m,b,C,o,h,g,y,$,T,r,i,l,a,F,q,J,G,E,s,Q,ie,Y,x,U,re,Re,Ne,Le,Fe,me,Se,we,We,ue,se,fe]}class jM extends ye{constructor(e){super(),ve(this,e,HM,RM,be,{collection:2,sort:0,filter:1,reloadLoadedPages:22,load:3},null,[-1,-1])}get reloadLoadedPages(){return this.$$.ctx[22]}get load(){return this.$$.ctx[3]}}function qM(n){let e,t,i,s;return e=new U3({}),i=new pn({props:{$$slots:{default:[BM]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(l,o){R(e,l,o),S(l,t,o),R(i,l,o),s=!0},p(l,o){const r={};o[0]&759|o[1]&1&&(r.$$scope={dirty:o,ctx:l}),i.$set(r)},i(l){s||(A(e.$$.fragment,l),A(i.$$.fragment,l),s=!0)},o(l){P(e.$$.fragment,l),P(i.$$.fragment,l),s=!1},d(l){H(e,l),l&&w(t),H(i,l)}}}function VM(n){let e,t;return e=new pn({props:{center:!0,$$slots:{default:[YM]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s[0]&528|s[1]&1&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function zM(n){let e,t;return e=new pn({props:{center:!0,$$slots:{default:[KM]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s[1]&1&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function Wp(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='',p(e,"type","button"),p(e,"class","btn btn-secondary btn-circle")},m(s,l){S(s,e,l),t||(i=[Ee(Be.call(null,e,{text:"Edit collection",position:"right"})),K(e,"click",n[14])],t=!0)},p:te,d(s){s&&w(e),t=!1,Pe(i)}}}function BM(n){let e,t,i,s,l,o=n[2].name+"",r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M,D,E,I,L=!n[9]&&Wp(n);c=new wa({}),c.$on("refresh",n[15]),k=new ka({props:{value:n[0],autocompleteCollection:n[2]}}),k.$on("submit",n[18]);function F(J){n[20](J)}function q(J){n[21](J)}let z={collection:n[2]};return n[0]!==void 0&&(z.filter=n[0]),n[1]!==void 0&&(z.sort=n[1]),C=new jM({props:z}),n[19](C),le.push(()=>_e(C,"filter",F)),le.push(()=>_e(C,"sort",q)),C.$on("select",n[22]),{c(){e=v("header"),t=v("nav"),i=v("div"),i.textContent="Collections",s=O(),l=v("div"),r=B(o),a=O(),u=v("div"),L&&L.c(),f=O(),j(c.$$.fragment),d=O(),h=v("div"),m=v("button"),m.innerHTML=` - API Preview`,b=O(),g=v("button"),g.innerHTML=` - New record`,y=O(),j(k.$$.fragment),$=O(),j(C.$$.fragment),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(u,"class","inline-flex gap-5"),p(m,"type","button"),p(m,"class","btn btn-outline"),p(g,"type","button"),p(g,"class","btn btn-expanded"),p(h,"class","btns-group"),p(e,"class","page-header")},m(J,G){S(J,e,G),_(e,t),_(t,i),_(t,s),_(t,l),_(l,r),_(e,a),_(e,u),L&&L.m(u,null),_(u,f),R(c,u,null),_(e,d),_(e,h),_(h,m),_(h,b),_(h,g),S(J,y,G),R(k,J,G),S(J,$,G),R(C,J,G),D=!0,E||(I=[K(m,"click",n[16]),K(g,"click",n[17])],E=!0)},p(J,G){(!D||G[0]&4)&&o!==(o=J[2].name+"")&&ae(r,o),J[9]?L&&(L.d(1),L=null):L?L.p(J,G):(L=Wp(J),L.c(),L.m(u,f));const X={};G[0]&1&&(X.value=J[0]),G[0]&4&&(X.autocompleteCollection=J[2]),k.$set(X);const Q={};G[0]&4&&(Q.collection=J[2]),!T&&G[0]&1&&(T=!0,Q.filter=J[0],ke(()=>T=!1)),!M&&G[0]&2&&(M=!0,Q.sort=J[1],ke(()=>M=!1)),C.$set(Q)},i(J){D||(A(c.$$.fragment,J),A(k.$$.fragment,J),A(C.$$.fragment,J),D=!0)},o(J){P(c.$$.fragment,J),P(k.$$.fragment,J),P(C.$$.fragment,J),D=!1},d(J){J&&w(e),L&&L.d(),H(c),J&&w(y),H(k,J),J&&w($),n[19](null),H(C,J),E=!1,Pe(I)}}}function UM(n){let e,t,i,s,l;return{c(){e=v("h1"),e.textContent="Create your first collection to add records!",t=O(),i=v("button"),i.innerHTML=` - Create new collection`,p(e,"class","m-b-10"),p(i,"type","button"),p(i,"class","btn btn-expanded-lg btn-lg")},m(o,r){S(o,e,r),S(o,t,r),S(o,i,r),s||(l=K(i,"click",n[13]),s=!0)},p:te,d(o){o&&w(e),o&&w(t),o&&w(i),s=!1,l()}}}function WM(n){let e;return{c(){e=v("h1"),e.textContent="You don't have any collections yet.",p(e,"class","m-b-10")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function YM(n){let e,t,i;function s(r,a){return r[9]?WM:UM}let l=s(n),o=l(n);return{c(){e=v("div"),t=v("div"),t.innerHTML='',i=O(),o.c(),p(t,"class","icon"),p(e,"class","placeholder-section m-b-base")},m(r,a){S(r,e,a),_(e,t),_(e,i),o.m(e,null)},p(r,a){l===(l=s(r))&&o?o.p(r,a):(o.d(1),o=l(r),o&&(o.c(),o.m(e,null)))},d(r){r&&w(e),o.d()}}}function KM(n){let e;return{c(){e=v("div"),e.innerHTML=` -

    Loading collections...

    `,p(e,"class","placeholder-section m-b-base")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function JM(n){let e,t,i,s,l,o,r,a,u;const f=[zM,VM,qM],c=[];function d(g,y){return g[3]?0:g[8].length?2:1}e=d(n),t=c[e]=f[e](n);let h={};s=new Ja({props:h}),n[23](s);let m={};o=new Q3({props:m}),n[24](o);let b={collection:n[2]};return a=new q_({props:b}),n[25](a),a.$on("save",n[26]),a.$on("delete",n[27]),{c(){t.c(),i=O(),j(s.$$.fragment),l=O(),j(o.$$.fragment),r=O(),j(a.$$.fragment)},m(g,y){c[e].m(g,y),S(g,i,y),R(s,g,y),S(g,l,y),R(o,g,y),S(g,r,y),R(a,g,y),u=!0},p(g,y){let k=e;e=d(g),e===k?c[e].p(g,y):(pe(),P(c[k],1,1,()=>{c[k]=null}),he(),t=c[e],t?t.p(g,y):(t=c[e]=f[e](g),t.c()),A(t,1),t.m(i.parentNode,i));const $={};s.$set($);const C={};o.$set(C);const T={};y[0]&4&&(T.collection=g[2]),a.$set(T)},i(g){u||(A(t),A(s.$$.fragment,g),A(o.$$.fragment,g),A(a.$$.fragment,g),u=!0)},o(g){P(t),P(s.$$.fragment,g),P(o.$$.fragment,g),P(a.$$.fragment,g),u=!1},d(g){c[e].d(g),g&&w(i),n[23](null),H(s,g),g&&w(l),n[24](null),H(o,g),g&&w(r),n[25](null),H(a,g)}}}function ZM(n,e,t){let i,s,l,o,r,a,u;Ze(n,Bn,ie=>t(2,s=ie)),Ze(n,na,ie=>t(3,l=ie)),Ze(n,aa,ie=>t(12,o=ie)),Ze(n,mt,ie=>t(28,r=ie)),Ze(n,Zi,ie=>t(8,a=ie)),Ze(n,ws,ie=>t(9,u=ie)),Ht(mt,r="Collections",r);const f=new URLSearchParams(o);let c,d,h,m,b=f.get("filter")||"",g=f.get("sort")||"-created",y=f.get("collectionId")||"";function k(){t(10,y=s.id),t(1,g="-created"),t(0,b="")}PS(y);const $=()=>c==null?void 0:c.show(),C=()=>c==null?void 0:c.show(s),T=()=>m==null?void 0:m.load(),M=()=>d==null?void 0:d.show(s),D=()=>h==null?void 0:h.show(),E=ie=>t(0,b=ie.detail);function I(ie){le[ie?"unshift":"push"](()=>{m=ie,t(7,m)})}function L(ie){b=ie,t(0,b)}function F(ie){g=ie,t(1,g)}const q=ie=>h==null?void 0:h.show(ie==null?void 0:ie.detail);function z(ie){le[ie?"unshift":"push"](()=>{c=ie,t(4,c)})}function J(ie){le[ie?"unshift":"push"](()=>{d=ie,t(5,d)})}function G(ie){le[ie?"unshift":"push"](()=>{h=ie,t(6,h)})}const X=()=>m==null?void 0:m.reloadLoadedPages(),Q=()=>m==null?void 0:m.reloadLoadedPages();return n.$$.update=()=>{if(n.$$.dirty[0]&4096&&t(11,i=new URLSearchParams(o)),n.$$.dirty[0]&3080&&!l&&i.has("collectionId")&&i.get("collectionId")!=y&&AS(i.get("collectionId")),n.$$.dirty[0]&1028&&(s==null?void 0:s.id)&&y!=s.id&&k(),n.$$.dirty[0]&7&&(g||b||(s==null?void 0:s.id))){const ie=new URLSearchParams({collectionId:(s==null?void 0:s.id)||"",filter:b,sort:g}).toString();ki("/collections?"+ie)}},[b,g,s,l,c,d,h,m,a,u,y,i,o,$,C,T,M,D,E,I,L,F,q,z,J,G,X,Q]}class GM extends ye{constructor(e){super(),ve(this,e,ZM,JM,be,{},null,[-1,-1])}}function XM(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M,D,E,I;return{c(){e=v("aside"),t=v("div"),i=v("div"),i.textContent="System",s=O(),l=v("a"),l.innerHTML=` - Application`,o=O(),r=v("a"),r.innerHTML=` - Mail settings`,a=O(),u=v("a"),u.innerHTML=` - Files storage`,f=O(),c=v("div"),c.innerHTML=`Sync - Experimental`,d=O(),h=v("a"),h.innerHTML=` - Export collections`,m=O(),b=v("a"),b.innerHTML=` - Import collections`,g=O(),y=v("div"),y.textContent="Authentication",k=O(),$=v("a"),$.innerHTML=` - Auth providers`,C=O(),T=v("a"),T.innerHTML=` - Token options`,M=O(),D=v("a"),D.innerHTML=` - Admins`,p(i,"class","sidebar-title"),p(l,"href","/settings"),p(l,"class","sidebar-list-item"),p(r,"href","/settings/mail"),p(r,"class","sidebar-list-item"),p(u,"href","/settings/storage"),p(u,"class","sidebar-list-item"),p(c,"class","sidebar-title"),p(h,"href","/settings/export-collections"),p(h,"class","sidebar-list-item"),p(b,"href","/settings/import-collections"),p(b,"class","sidebar-list-item"),p(y,"class","sidebar-title"),p($,"href","/settings/auth-providers"),p($,"class","sidebar-list-item"),p(T,"href","/settings/tokens"),p(T,"class","sidebar-list-item"),p(D,"href","/settings/admins"),p(D,"class","sidebar-list-item"),p(t,"class","sidebar-content"),p(e,"class","page-sidebar settings-sidebar")},m(L,F){S(L,e,F),_(e,t),_(t,i),_(t,s),_(t,l),_(t,o),_(t,r),_(t,a),_(t,u),_(t,f),_(t,c),_(t,d),_(t,h),_(t,m),_(t,b),_(t,g),_(t,y),_(t,k),_(t,$),_(t,C),_(t,T),_(t,M),_(t,D),E||(I=[Ee(An.call(null,l,{path:"/settings"})),Ee(Bt.call(null,l)),Ee(An.call(null,r,{path:"/settings/mail/?.*"})),Ee(Bt.call(null,r)),Ee(An.call(null,u,{path:"/settings/storage/?.*"})),Ee(Bt.call(null,u)),Ee(An.call(null,h,{path:"/settings/export-collections/?.*"})),Ee(Bt.call(null,h)),Ee(An.call(null,b,{path:"/settings/import-collections/?.*"})),Ee(Bt.call(null,b)),Ee(An.call(null,$,{path:"/settings/auth-providers/?.*"})),Ee(Bt.call(null,$)),Ee(An.call(null,T,{path:"/settings/tokens/?.*"})),Ee(Bt.call(null,T)),Ee(An.call(null,D,{path:"/settings/admins/?.*"})),Ee(Bt.call(null,D))],E=!0)},p:te,i:te,o:te,d(L){L&&w(e),E=!1,Pe(I)}}}class Ci extends ye{constructor(e){super(),ve(this,e,null,XM,be,{})}}function Yp(n,e,t){const i=n.slice();return i[30]=e[t],i}function Kp(n){let e,t;return e=new ge({props:{class:"form-field disabled",name:"id",$$slots:{default:[QM,({uniqueId:i})=>({29:i}),({uniqueId:i})=>[i?536870912:0]]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s[0]&536870914|s[1]&4&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function QM(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="ID",o=O(),r=v("div"),a=v("i"),f=O(),c=v("input"),p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(e,"for",l=n[29]),p(a,"class","ri-calendar-event-line txt-disabled"),p(r,"class","form-field-addon"),p(c,"type","text"),p(c,"id",d=n[29]),c.value=h=n[1].id,c.disabled=!0},m(g,y){S(g,e,y),_(e,t),_(e,i),_(e,s),S(g,o,y),S(g,r,y),_(r,a),S(g,f,y),S(g,c,y),m||(b=Ee(u=Be.call(null,a,{text:`Created: ${n[1].created} -Updated: ${n[1].updated}`,position:"left"})),m=!0)},p(g,y){y[0]&536870912&&l!==(l=g[29])&&p(e,"for",l),u&&Jt(u.update)&&y[0]&2&&u.update.call(null,{text:`Created: ${g[1].created} -Updated: ${g[1].updated}`,position:"left"}),y[0]&536870912&&d!==(d=g[29])&&p(c,"id",d),y[0]&2&&h!==(h=g[1].id)&&c.value!==h&&(c.value=h)},d(g){g&&w(e),g&&w(o),g&&w(r),g&&w(f),g&&w(c),m=!1,b()}}}function Jp(n){let e,t,i,s,l,o,r;function a(){return n[17](n[30])}return{c(){e=v("button"),t=v("img"),s=O(),Ln(t.src,i="./images/avatars/avatar"+n[30]+".svg")||p(t,"src",i),p(t,"alt","Avatar "+n[30]),p(e,"type","button"),p(e,"class",l="link-fade thumb thumb-circle "+(n[30]==n[2]?"thumb-active":"thumb-sm"))},m(u,f){S(u,e,f),_(e,t),_(e,s),o||(r=K(e,"click",a),o=!0)},p(u,f){n=u,f[0]&4&&l!==(l="link-fade thumb thumb-circle "+(n[30]==n[2]?"thumb-active":"thumb-sm"))&&p(e,"class",l)},d(u){u&&w(e),o=!1,r()}}}function xM(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="Email",o=O(),r=v("input"),p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"for",l=n[29]),p(r,"type","email"),p(r,"autocomplete","off"),p(r,"id",a=n[29]),r.required=!0},m(c,d){S(c,e,d),_(e,t),_(e,i),_(e,s),S(c,o,d),S(c,r,d),ce(r,n[3]),u||(f=K(r,"input",n[18]),u=!0)},p(c,d){d[0]&536870912&&l!==(l=c[29])&&p(e,"for",l),d[0]&536870912&&a!==(a=c[29])&&p(r,"id",a),d[0]&8&&r.value!==c[3]&&ce(r,c[3])},d(c){c&&w(e),c&&w(o),c&&w(r),u=!1,f()}}}function Zp(n){let e,t;return e=new ge({props:{class:"form-field form-field-toggle",$$slots:{default:[eO,({uniqueId:i})=>({29:i}),({uniqueId:i})=>[i?536870912:0]]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s[0]&536870928|s[1]&4&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function eO(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Change password"),p(e,"type","checkbox"),p(e,"id",t=n[29]),p(s,"for",o=n[29])},m(u,f){S(u,e,f),e.checked=n[4],S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[19]),r=!0)},p(u,f){f[0]&536870912&&t!==(t=u[29])&&p(e,"id",t),f[0]&16&&(e.checked=u[4]),f[0]&536870912&&o!==(o=u[29])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function Gp(n){let e,t,i,s,l,o,r,a,u;return s=new ge({props:{class:"form-field required",name:"password",$$slots:{default:[tO,({uniqueId:f})=>({29:f}),({uniqueId:f})=>[f?536870912:0]]},$$scope:{ctx:n}}}),r=new ge({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[nO,({uniqueId:f})=>({29:f}),({uniqueId:f})=>[f?536870912:0]]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),i=v("div"),j(s.$$.fragment),l=O(),o=v("div"),j(r.$$.fragment),p(i,"class","col-sm-6"),p(o,"class","col-sm-6"),p(t,"class","grid"),p(e,"class","col-12")},m(f,c){S(f,e,c),_(e,t),_(t,i),R(s,i,null),_(t,l),_(t,o),R(r,o,null),u=!0},p(f,c){const d={};c[0]&536871168|c[1]&4&&(d.$$scope={dirty:c,ctx:f}),s.$set(d);const h={};c[0]&536871424|c[1]&4&&(h.$$scope={dirty:c,ctx:f}),r.$set(h)},i(f){u||(A(s.$$.fragment,f),A(r.$$.fragment,f),f&&xe(()=>{a||(a=je(t,St,{duration:150},!0)),a.run(1)}),u=!0)},o(f){P(s.$$.fragment,f),P(r.$$.fragment,f),f&&(a||(a=je(t,St,{duration:150},!1)),a.run(0)),u=!1},d(f){f&&w(e),H(s),H(r),f&&a&&a.end()}}}function tO(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="Password",o=O(),r=v("input"),p(t,"class","ri-lock-line"),p(s,"class","txt"),p(e,"for",l=n[29]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[29]),r.required=!0},m(c,d){S(c,e,d),_(e,t),_(e,i),_(e,s),S(c,o,d),S(c,r,d),ce(r,n[8]),u||(f=K(r,"input",n[20]),u=!0)},p(c,d){d[0]&536870912&&l!==(l=c[29])&&p(e,"for",l),d[0]&536870912&&a!==(a=c[29])&&p(r,"id",a),d[0]&256&&r.value!==c[8]&&ce(r,c[8])},d(c){c&&w(e),c&&w(o),c&&w(r),u=!1,f()}}}function nO(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("label"),t=v("i"),i=O(),s=v("span"),s.textContent="Password confirm",o=O(),r=v("input"),p(t,"class","ri-lock-line"),p(s,"class","txt"),p(e,"for",l=n[29]),p(r,"type","password"),p(r,"autocomplete","new-password"),p(r,"id",a=n[29]),r.required=!0},m(c,d){S(c,e,d),_(e,t),_(e,i),_(e,s),S(c,o,d),S(c,r,d),ce(r,n[9]),u||(f=K(r,"input",n[21]),u=!0)},p(c,d){d[0]&536870912&&l!==(l=c[29])&&p(e,"for",l),d[0]&536870912&&a!==(a=c[29])&&p(r,"id",a),d[0]&512&&r.value!==c[9]&&ce(r,c[9])},d(c){c&&w(e),c&&w(o),c&&w(r),u=!1,f()}}}function iO(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m=!n[1].isNew&&Kp(n),b=[0,1,2,3,4,5,6,7,8,9],g=[];for(let $=0;$<10;$+=1)g[$]=Jp(Yp(n,b,$));a=new ge({props:{class:"form-field required",name:"email",$$slots:{default:[xM,({uniqueId:$})=>({29:$}),({uniqueId:$})=>[$?536870912:0]]},$$scope:{ctx:n}}});let y=!n[1].isNew&&Zp(n),k=(n[1].isNew||n[4])&&Gp(n);return{c(){e=v("form"),m&&m.c(),t=O(),i=v("div"),s=v("p"),s.textContent="Avatar",l=O(),o=v("div");for(let $=0;$<10;$+=1)g[$].c();r=O(),j(a.$$.fragment),u=O(),y&&y.c(),f=O(),k&&k.c(),p(s,"class","section-title"),p(o,"class","flex flex-gap-xs flex-wrap"),p(i,"class","content"),p(e,"id",n[11]),p(e,"class","grid"),p(e,"autocomplete","off")},m($,C){S($,e,C),m&&m.m(e,null),_(e,t),_(e,i),_(i,s),_(i,l),_(i,o);for(let T=0;T<10;T+=1)g[T].m(o,null);_(e,r),R(a,e,null),_(e,u),y&&y.m(e,null),_(e,f),k&&k.m(e,null),c=!0,d||(h=K(e,"submit",ut(n[12])),d=!0)},p($,C){if($[1].isNew?m&&(pe(),P(m,1,1,()=>{m=null}),he()):m?(m.p($,C),C[0]&2&&A(m,1)):(m=Kp($),m.c(),A(m,1),m.m(e,t)),C[0]&4){b=[0,1,2,3,4,5,6,7,8,9];let M;for(M=0;M<10;M+=1){const D=Yp($,b,M);g[M]?g[M].p(D,C):(g[M]=Jp(D),g[M].c(),g[M].m(o,null))}for(;M<10;M+=1)g[M].d(1)}const T={};C[0]&536870920|C[1]&4&&(T.$$scope={dirty:C,ctx:$}),a.$set(T),$[1].isNew?y&&(pe(),P(y,1,1,()=>{y=null}),he()):y?(y.p($,C),C[0]&2&&A(y,1)):(y=Zp($),y.c(),A(y,1),y.m(e,f)),$[1].isNew||$[4]?k?(k.p($,C),C[0]&18&&A(k,1)):(k=Gp($),k.c(),A(k,1),k.m(e,null)):k&&(pe(),P(k,1,1,()=>{k=null}),he())},i($){c||(A(m),A(a.$$.fragment,$),A(y),A(k),c=!0)},o($){P(m),P(a.$$.fragment,$),P(y),P(k),c=!1},d($){$&&w(e),m&&m.d(),Mt(g,$),H(a),y&&y.d(),k&&k.d(),d=!1,h()}}}function sO(n){let e,t=n[1].isNew?"New admin":"Edit admin",i;return{c(){e=v("h4"),i=B(t)},m(s,l){S(s,e,l),_(e,i)},p(s,l){l[0]&2&&t!==(t=s[1].isNew?"New admin":"Edit admin")&&ae(i,t)},d(s){s&&w(e)}}}function Xp(n){let e,t,i,s,l,o,r,a,u;return o=new Zn({props:{class:"dropdown dropdown-upside dropdown-left dropdown-nowrap",$$slots:{default:[lO]},$$scope:{ctx:n}}}),{c(){e=v("button"),t=v("span"),i=O(),s=v("i"),l=O(),j(o.$$.fragment),r=O(),a=v("div"),p(s,"class","ri-more-line"),p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-secondary"),p(a,"class","flex-fill")},m(f,c){S(f,e,c),_(e,t),_(e,i),_(e,s),_(e,l),R(o,e,null),S(f,r,c),S(f,a,c),u=!0},p(f,c){const d={};c[1]&4&&(d.$$scope={dirty:c,ctx:f}),o.$set(d)},i(f){u||(A(o.$$.fragment,f),u=!0)},o(f){P(o.$$.fragment,f),u=!1},d(f){f&&w(e),H(o),f&&w(r),f&&w(a)}}}function lO(n){let e,t,i;return{c(){e=v("button"),e.innerHTML=` - Delete`,p(e,"type","button"),p(e,"class","dropdown-item txt-danger")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[15]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function oO(n){let e,t,i,s,l,o,r=n[1].isNew?"Create":"Save changes",a,u,f,c,d,h=!n[1].isNew&&Xp(n);return{c(){h&&h.c(),e=O(),t=v("button"),i=v("span"),i.textContent="Cancel",s=O(),l=v("button"),o=v("span"),a=B(r),p(i,"class","txt"),p(t,"type","button"),p(t,"class","btn btn-secondary"),t.disabled=n[6],p(o,"class","txt"),p(l,"type","submit"),p(l,"form",n[11]),p(l,"class","btn btn-expanded"),l.disabled=u=!n[10]||n[6],ne(l,"btn-loading",n[6])},m(m,b){h&&h.m(m,b),S(m,e,b),S(m,t,b),_(t,i),S(m,s,b),S(m,l,b),_(l,o),_(o,a),f=!0,c||(d=K(t,"click",n[16]),c=!0)},p(m,b){m[1].isNew?h&&(pe(),P(h,1,1,()=>{h=null}),he()):h?(h.p(m,b),b[0]&2&&A(h,1)):(h=Xp(m),h.c(),A(h,1),h.m(e.parentNode,e)),(!f||b[0]&64)&&(t.disabled=m[6]),(!f||b[0]&2)&&r!==(r=m[1].isNew?"Create":"Save changes")&&ae(a,r),(!f||b[0]&1088&&u!==(u=!m[10]||m[6]))&&(l.disabled=u),(!f||b[0]&64)&&ne(l,"btn-loading",m[6])},i(m){f||(A(h),f=!0)},o(m){P(h),f=!1},d(m){h&&h.d(m),m&&w(e),m&&w(t),m&&w(s),m&&w(l),c=!1,d()}}}function rO(n){let e,t,i={popup:!0,class:"admin-panel",beforeHide:n[22],$$slots:{footer:[oO],header:[sO],default:[iO]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[23](e),e.$on("hide",n[24]),e.$on("show",n[25]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,l){const o={};l[0]&1152&&(o.beforeHide=s[22]),l[0]&1886|l[1]&4&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[23](null),H(e,s)}}}function aO(n,e,t){let i;const s=It(),l="admin_"+W.randomString(5);let o,r=new Yi,a=!1,u=!1,f=0,c="",d="",h="",m=!1;function b(X){return y(X),t(7,u=!0),o==null?void 0:o.show()}function g(){return o==null?void 0:o.hide()}function y(X){t(1,r=X!=null&&X.clone?X.clone():new Yi),k()}function k(){t(4,m=!1),t(3,c=(r==null?void 0:r.email)||""),t(2,f=(r==null?void 0:r.avatar)||0),t(8,d=""),t(9,h=""),Fn({})}function $(){if(a||!i)return;t(6,a=!0);const X={email:c,avatar:f};(r.isNew||m)&&(X.password=d,X.passwordConfirm=h);let Q;r.isNew?Q=de.admins.create(X):Q=de.admins.update(r.id,X),Q.then(async ie=>{var Y;t(7,u=!1),g(),Lt(r.isNew?"Successfully created admin.":"Successfully updated admin."),s("save",ie),((Y=de.authStore.model)==null?void 0:Y.id)===ie.id&&de.authStore.save(de.authStore.token,ie)}).catch(ie=>{de.errorResponseHandler(ie)}).finally(()=>{t(6,a=!1)})}function C(){!(r!=null&&r.id)||wn("Do you really want to delete the selected admin?",()=>de.admins.delete(r.id).then(()=>{t(7,u=!1),g(),Lt("Successfully deleted admin."),s("delete",r)}).catch(X=>{de.errorResponseHandler(X)}))}const T=()=>C(),M=()=>g(),D=X=>t(2,f=X);function E(){c=this.value,t(3,c)}function I(){m=this.checked,t(4,m)}function L(){d=this.value,t(8,d)}function F(){h=this.value,t(9,h)}const q=()=>i&&u?(wn("You have unsaved changes. Do you really want to close the panel?",()=>{t(7,u=!1),g()}),!1):!0;function z(X){le[X?"unshift":"push"](()=>{o=X,t(5,o)})}function J(X){Ve.call(this,n,X)}function G(X){Ve.call(this,n,X)}return n.$$.update=()=>{n.$$.dirty[0]&30&&t(10,i=r.isNew&&c!=""||m||c!==r.email||f!==r.avatar)},[g,r,f,c,m,o,a,u,d,h,i,l,$,C,b,T,M,D,E,I,L,F,q,z,J,G]}class uO extends ye{constructor(e){super(),ve(this,e,aO,rO,be,{show:14,hide:0},null,[-1,-1])}get show(){return this.$$.ctx[14]}get hide(){return this.$$.ctx[0]}}function Qp(n,e,t){const i=n.slice();return i[24]=e[t],i}function fO(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="id",p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function cO(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="email",p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function dO(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="created",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function pO(n){let e,t,i,s;return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),s.textContent="updated",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,o){S(l,e,o),_(e,t),_(e,i),_(e,s)},p:te,d(l){l&&w(e)}}}function xp(n){let e;function t(l,o){return l[5]?mO:hO}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&w(e)}}}function hO(n){var r;let e,t,i,s,l,o=((r=n[1])==null?void 0:r.length)&&eh(n);return{c(){e=v("tr"),t=v("td"),i=v("h6"),i.textContent="No admins found.",s=O(),o&&o.c(),l=O(),p(t,"colspan","99"),p(t,"class","txt-center txt-hint p-xs")},m(a,u){S(a,e,u),_(e,t),_(t,i),_(t,s),o&&o.m(t,null),_(e,l)},p(a,u){var f;(f=a[1])!=null&&f.length?o?o.p(a,u):(o=eh(a),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(a){a&&w(e),o&&o.d()}}}function mO(n){let e;return{c(){e=v("tr"),e.innerHTML=` - `},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function eh(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Clear filters',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[17]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function th(n){let e;return{c(){e=v("span"),e.textContent="You",p(e,"class","label label-warning m-l-5")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function nh(n,e){let t,i,s,l,o,r,a,u,f,c,d,h,m=e[24].email+"",b,g,y,k,$,C,T,M,D,E,I,L,F,q;u=new Za({props:{id:e[24].id}});let z=e[24].id===e[7].id&&th();$=new Ki({props:{date:e[24].created}}),M=new Ki({props:{date:e[24].updated}});function J(){return e[15](e[24])}function G(...X){return e[16](e[24],...X)}return{key:n,first:null,c(){t=v("tr"),i=v("td"),s=v("figure"),l=v("img"),r=O(),a=v("td"),j(u.$$.fragment),f=O(),z&&z.c(),c=O(),d=v("td"),h=v("span"),b=B(m),y=O(),k=v("td"),j($.$$.fragment),C=O(),T=v("td"),j(M.$$.fragment),D=O(),E=v("td"),E.innerHTML='',I=O(),Ln(l.src,o="./images/avatars/avatar"+(e[24].avatar||0)+".svg")||p(l,"src",o),p(l,"alt","Admin avatar"),p(s,"class","thumb thumb-sm thumb-circle"),p(i,"class","min-width"),p(a,"class","col-type-text col-field-id"),p(h,"class","txt txt-ellipsis"),p(h,"title",g=e[24].email),p(d,"class","col-type-email col-field-email"),p(k,"class","col-type-date col-field-created"),p(T,"class","col-type-date col-field-updated"),p(E,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(X,Q){S(X,t,Q),_(t,i),_(i,s),_(s,l),_(t,r),_(t,a),R(u,a,null),_(a,f),z&&z.m(a,null),_(t,c),_(t,d),_(d,h),_(h,b),_(t,y),_(t,k),R($,k,null),_(t,C),_(t,T),R(M,T,null),_(t,D),_(t,E),_(t,I),L=!0,F||(q=[K(t,"click",J),K(t,"keydown",G)],F=!0)},p(X,Q){e=X,(!L||Q&16&&!Ln(l.src,o="./images/avatars/avatar"+(e[24].avatar||0)+".svg"))&&p(l,"src",o);const ie={};Q&16&&(ie.id=e[24].id),u.$set(ie),e[24].id===e[7].id?z||(z=th(),z.c(),z.m(a,null)):z&&(z.d(1),z=null),(!L||Q&16)&&m!==(m=e[24].email+"")&&ae(b,m),(!L||Q&16&&g!==(g=e[24].email))&&p(h,"title",g);const Y={};Q&16&&(Y.date=e[24].created),$.$set(Y);const x={};Q&16&&(x.date=e[24].updated),M.$set(x)},i(X){L||(A(u.$$.fragment,X),A($.$$.fragment,X),A(M.$$.fragment,X),L=!0)},o(X){P(u.$$.fragment,X),P($.$$.fragment,X),P(M.$$.fragment,X),L=!1},d(X){X&&w(t),H(u),z&&z.d(),H($),H(M),F=!1,Pe(q)}}}function gO(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T=[],M=new Map,D;function E(Y){n[11](Y)}let I={class:"col-type-text",name:"id",$$slots:{default:[fO]},$$scope:{ctx:n}};n[2]!==void 0&&(I.sort=n[2]),o=new Ft({props:I}),le.push(()=>_e(o,"sort",E));function L(Y){n[12](Y)}let F={class:"col-type-email col-field-email",name:"email",$$slots:{default:[cO]},$$scope:{ctx:n}};n[2]!==void 0&&(F.sort=n[2]),u=new Ft({props:F}),le.push(()=>_e(u,"sort",L));function q(Y){n[13](Y)}let z={class:"col-type-date col-field-created",name:"created",$$slots:{default:[dO]},$$scope:{ctx:n}};n[2]!==void 0&&(z.sort=n[2]),d=new Ft({props:z}),le.push(()=>_e(d,"sort",q));function J(Y){n[14](Y)}let G={class:"col-type-date col-field-updated",name:"updated",$$slots:{default:[pO]},$$scope:{ctx:n}};n[2]!==void 0&&(G.sort=n[2]),b=new Ft({props:G}),le.push(()=>_e(b,"sort",J));let X=n[4];const Q=Y=>Y[24].id;for(let Y=0;Yr=!1)),o.$set(U);const re={};x&134217728&&(re.$$scope={dirty:x,ctx:Y}),!f&&x&4&&(f=!0,re.sort=Y[2],ke(()=>f=!1)),u.$set(re);const Re={};x&134217728&&(Re.$$scope={dirty:x,ctx:Y}),!h&&x&4&&(h=!0,Re.sort=Y[2],ke(()=>h=!1)),d.$set(Re);const Ne={};x&134217728&&(Ne.$$scope={dirty:x,ctx:Y}),!g&&x&4&&(g=!0,Ne.sort=Y[2],ke(()=>g=!1)),b.$set(Ne),x&186&&(X=Y[4],pe(),T=bt(T,x,Q,1,Y,X,M,C,nn,nh,null,Qp),he(),!X.length&&ie?ie.p(Y,x):X.length?ie&&(ie.d(1),ie=null):(ie=xp(Y),ie.c(),ie.m(C,null))),(!D||x&32)&&ne(e,"table-loading",Y[5])},i(Y){if(!D){A(o.$$.fragment,Y),A(u.$$.fragment,Y),A(d.$$.fragment,Y),A(b.$$.fragment,Y);for(let x=0;x - New admin`,h=O(),j(m.$$.fragment),b=O(),j(g.$$.fragment),y=O(),M&&M.c(),k=Ae(),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(f,"class","flex-fill"),p(d,"type","button"),p(d,"class","btn btn-expanded"),p(e,"class","page-header")},m(D,E){S(D,e,E),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),_(e,r),R(a,e,null),_(e,u),_(e,f),_(e,c),_(e,d),S(D,h,E),R(m,D,E),S(D,b,E),R(g,D,E),S(D,y,E),M&&M.m(D,E),S(D,k,E),$=!0,C||(T=K(d,"click",n[9]),C=!0)},p(D,E){(!$||E&64)&&ae(o,D[6]);const I={};E&2&&(I.value=D[1]),m.$set(I);const L={};E&134217918&&(L.$$scope={dirty:E,ctx:D}),g.$set(L),D[4].length?M?M.p(D,E):(M=ih(D),M.c(),M.m(k.parentNode,k)):M&&(M.d(1),M=null)},i(D){$||(A(a.$$.fragment,D),A(m.$$.fragment,D),A(g.$$.fragment,D),$=!0)},o(D){P(a.$$.fragment,D),P(m.$$.fragment,D),P(g.$$.fragment,D),$=!1},d(D){D&&w(e),H(a),D&&w(h),H(m,D),D&&w(b),H(g,D),D&&w(y),M&&M.d(D),D&&w(k),C=!1,T()}}}function bO(n){let e,t,i,s,l,o;e=new Ci({}),i=new pn({props:{$$slots:{default:[_O]},$$scope:{ctx:n}}});let r={};return l=new uO({props:r}),n[18](l),l.$on("save",n[19]),l.$on("delete",n[20]),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment),s=O(),j(l.$$.fragment)},m(a,u){R(e,a,u),S(a,t,u),R(i,a,u),S(a,s,u),R(l,a,u),o=!0},p(a,[u]){const f={};u&134217982&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};l.$set(c)},i(a){o||(A(e.$$.fragment,a),A(i.$$.fragment,a),A(l.$$.fragment,a),o=!0)},o(a){P(e.$$.fragment,a),P(i.$$.fragment,a),P(l.$$.fragment,a),o=!1},d(a){H(e,a),a&&w(t),H(i,a),a&&w(s),n[18](null),H(l,a)}}}function vO(n,e,t){let i,s,l;Ze(n,aa,F=>t(21,i=F)),Ze(n,mt,F=>t(6,s=F)),Ze(n,ya,F=>t(7,l=F)),Ht(mt,s="Admins",s);const o=new URLSearchParams(i);let r,a=[],u=!1,f=o.get("filter")||"",c=o.get("sort")||"-created";function d(){return t(5,u=!0),t(4,a=[]),de.admins.getFullList(100,{sort:c||"-created",filter:f}).then(F=>{t(4,a=F),t(5,u=!1)}).catch(F=>{F!=null&&F.isAbort||(t(5,u=!1),console.warn(F),h(),de.errorResponseHandler(F,!1))})}function h(){t(4,a=[])}const m=()=>d(),b=()=>r==null?void 0:r.show(),g=F=>t(1,f=F.detail);function y(F){c=F,t(2,c)}function k(F){c=F,t(2,c)}function $(F){c=F,t(2,c)}function C(F){c=F,t(2,c)}const T=F=>r==null?void 0:r.show(F),M=(F,q)=>{(q.code==="Enter"||q.code==="Space")&&(q.preventDefault(),r==null||r.show(F))},D=()=>t(1,f="");function E(F){le[F?"unshift":"push"](()=>{r=F,t(3,r)})}const I=()=>d(),L=()=>d();return n.$$.update=()=>{if(n.$$.dirty&6&&c!==-1&&f!==-1){const F=new URLSearchParams({filter:f,sort:c}).toString();ki("/settings/admins?"+F),d()}},[d,f,c,r,a,u,s,l,m,b,g,y,k,$,C,T,M,D,E,I,L]}class yO extends ye{constructor(e){super(),ve(this,e,vO,bO,be,{loadAdmins:0})}get loadAdmins(){return this.$$.ctx[0]}}function kO(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Email"),s=O(),l=v("input"),p(e,"for",i=n[8]),p(l,"type","email"),p(l,"id",o=n[8]),l.required=!0,l.autofocus=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0]),l.focus(),r||(a=K(l,"input",n[4]),r=!0)},p(u,f){f&256&&i!==(i=u[8])&&p(e,"for",i),f&256&&o!==(o=u[8])&&p(l,"id",o),f&1&&l.value!==u[0]&&ce(l,u[0])},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function wO(n){let e,t,i,s,l,o,r,a,u,f,c;return{c(){e=v("label"),t=B("Password"),s=O(),l=v("input"),r=O(),a=v("div"),u=v("a"),u.textContent="Forgotten password?",p(e,"for",i=n[8]),p(l,"type","password"),p(l,"id",o=n[8]),l.required=!0,p(u,"href","/request-password-reset"),p(u,"class","link-hint"),p(a,"class","help-block")},m(d,h){S(d,e,h),_(e,t),S(d,s,h),S(d,l,h),ce(l,n[1]),S(d,r,h),S(d,a,h),_(a,u),f||(c=[K(l,"input",n[5]),Ee(Bt.call(null,u))],f=!0)},p(d,h){h&256&&i!==(i=d[8])&&p(e,"for",i),h&256&&o!==(o=d[8])&&p(l,"id",o),h&2&&l.value!==d[1]&&ce(l,d[1])},d(d){d&&w(e),d&&w(s),d&&w(l),d&&w(r),d&&w(a),f=!1,Pe(c)}}}function SO(n){let e,t,i,s,l,o,r,a,u,f,c;return s=new ge({props:{class:"form-field required",name:"identity",$$slots:{default:[kO,({uniqueId:d})=>({8:d}),({uniqueId:d})=>d?256:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"password",$$slots:{default:[wO,({uniqueId:d})=>({8:d}),({uniqueId:d})=>d?256:0]},$$scope:{ctx:n}}}),{c(){e=v("form"),t=v("div"),t.innerHTML="

    Admin sign in

    ",i=O(),j(s.$$.fragment),l=O(),j(o.$$.fragment),r=O(),a=v("button"),a.innerHTML=`Login - `,p(t,"class","content txt-center m-b-base"),p(a,"type","submit"),p(a,"class","btn btn-lg btn-block btn-next"),ne(a,"btn-disabled",n[2]),ne(a,"btn-loading",n[2]),p(e,"class","block")},m(d,h){S(d,e,h),_(e,t),_(e,i),R(s,e,null),_(e,l),R(o,e,null),_(e,r),_(e,a),u=!0,f||(c=K(e,"submit",ut(n[3])),f=!0)},p(d,h){const m={};h&769&&(m.$$scope={dirty:h,ctx:d}),s.$set(m);const b={};h&770&&(b.$$scope={dirty:h,ctx:d}),o.$set(b),(!u||h&4)&&ne(a,"btn-disabled",d[2]),(!u||h&4)&&ne(a,"btn-loading",d[2])},i(d){u||(A(s.$$.fragment,d),A(o.$$.fragment,d),u=!0)},o(d){P(s.$$.fragment,d),P(o.$$.fragment,d),u=!1},d(d){d&&w(e),H(s),H(o),f=!1,c()}}}function $O(n){let e,t;return e=new Ig({props:{$$slots:{default:[SO]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,[s]){const l={};s&519&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function CO(n,e,t){let i;Ze(n,aa,c=>t(6,i=c));const s=new URLSearchParams(i);let l=s.get("demoEmail")||"",o=s.get("demoPassword")||"",r=!1;function a(){if(!r)return t(2,r=!0),de.admins.authWithPassword(l,o).then(()=>{Eg(),ki("/")}).catch(()=>{ul("Invalid login credentials.")}).finally(()=>{t(2,r=!1)})}function u(){l=this.value,t(0,l)}function f(){o=this.value,t(1,o)}return[l,o,r,a,u,f]}class TO extends ye{constructor(e){super(),ve(this,e,CO,$O,be,{})}}function MO(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T;i=new ge({props:{class:"form-field required",name:"meta.appName",$$slots:{default:[DO,({uniqueId:D})=>({19:D}),({uniqueId:D})=>D?524288:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"meta.appUrl",$$slots:{default:[AO,({uniqueId:D})=>({19:D}),({uniqueId:D})=>D?524288:0]},$$scope:{ctx:n}}}),a=new ge({props:{class:"form-field required",name:"logs.maxDays",$$slots:{default:[EO,({uniqueId:D})=>({19:D}),({uniqueId:D})=>D?524288:0]},$$scope:{ctx:n}}}),f=new ge({props:{class:"form-field form-field-toggle",name:"meta.hideControls",$$slots:{default:[IO,({uniqueId:D})=>({19:D}),({uniqueId:D})=>D?524288:0]},$$scope:{ctx:n}}});let M=n[3]&&sh(n);return{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),j(a.$$.fragment),u=O(),j(f.$$.fragment),c=O(),d=v("div"),h=v("div"),m=O(),M&&M.c(),b=O(),g=v("button"),y=v("span"),y.textContent="Save changes",p(t,"class","col-lg-6"),p(l,"class","col-lg-6"),p(h,"class","flex-fill"),p(y,"class","txt"),p(g,"type","submit"),p(g,"class","btn btn-expanded"),g.disabled=k=!n[3]||n[2],ne(g,"btn-loading",n[2]),p(d,"class","col-lg-12 flex"),p(e,"class","grid")},m(D,E){S(D,e,E),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),_(e,r),R(a,e,null),_(e,u),R(f,e,null),_(e,c),_(e,d),_(d,h),_(d,m),M&&M.m(d,null),_(d,b),_(d,g),_(g,y),$=!0,C||(T=K(g,"click",n[13]),C=!0)},p(D,E){const I={};E&1572865&&(I.$$scope={dirty:E,ctx:D}),i.$set(I);const L={};E&1572865&&(L.$$scope={dirty:E,ctx:D}),o.$set(L);const F={};E&1572865&&(F.$$scope={dirty:E,ctx:D}),a.$set(F);const q={};E&1572865&&(q.$$scope={dirty:E,ctx:D}),f.$set(q),D[3]?M?M.p(D,E):(M=sh(D),M.c(),M.m(d,b)):M&&(M.d(1),M=null),(!$||E&12&&k!==(k=!D[3]||D[2]))&&(g.disabled=k),(!$||E&4)&&ne(g,"btn-loading",D[2])},i(D){$||(A(i.$$.fragment,D),A(o.$$.fragment,D),A(a.$$.fragment,D),A(f.$$.fragment,D),$=!0)},o(D){P(i.$$.fragment,D),P(o.$$.fragment,D),P(a.$$.fragment,D),P(f.$$.fragment,D),$=!1},d(D){D&&w(e),H(i),H(o),H(a),H(f),M&&M.d(),C=!1,T()}}}function OO(n){let e;return{c(){e=v("div"),p(e,"class","loader")},m(t,i){S(t,e,i)},p:te,i:te,o:te,d(t){t&&w(e)}}}function DO(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Application name"),s=O(),l=v("input"),p(e,"for",i=n[19]),p(l,"type","text"),p(l,"id",o=n[19]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].meta.appName),r||(a=K(l,"input",n[8]),r=!0)},p(u,f){f&524288&&i!==(i=u[19])&&p(e,"for",i),f&524288&&o!==(o=u[19])&&p(l,"id",o),f&1&&l.value!==u[0].meta.appName&&ce(l,u[0].meta.appName)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function AO(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Application url"),s=O(),l=v("input"),p(e,"for",i=n[19]),p(l,"type","text"),p(l,"id",o=n[19]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].meta.appUrl),r||(a=K(l,"input",n[9]),r=!0)},p(u,f){f&524288&&i!==(i=u[19])&&p(e,"for",i),f&524288&&o!==(o=u[19])&&p(l,"id",o),f&1&&l.value!==u[0].meta.appUrl&&ce(l,u[0].meta.appUrl)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function EO(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Logs max days retention"),s=O(),l=v("input"),p(e,"for",i=n[19]),p(l,"type","number"),p(l,"id",o=n[19]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].logs.maxDays),r||(a=K(l,"input",n[10]),r=!0)},p(u,f){f&524288&&i!==(i=u[19])&&p(e,"for",i),f&524288&&o!==(o=u[19])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].logs.maxDays&&ce(l,u[0].logs.maxDays)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function IO(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("input"),i=O(),s=v("label"),l=v("span"),l.textContent="Hide collection create and edit controls",o=O(),r=v("i"),p(e,"type","checkbox"),p(e,"id",t=n[19]),p(l,"class","txt"),p(r,"class","ri-information-line link-hint"),p(s,"for",a=n[19])},m(c,d){S(c,e,d),e.checked=n[0].meta.hideControls,S(c,i,d),S(c,s,d),_(s,l),_(s,o),_(s,r),u||(f=[K(e,"change",n[11]),Ee(Be.call(null,r,{text:"This could prevent making accidental schema changes when in production environment.",position:"right"}))],u=!0)},p(c,d){d&524288&&t!==(t=c[19])&&p(e,"id",t),d&1&&(e.checked=c[0].meta.hideControls),d&524288&&a!==(a=c[19])&&p(s,"for",a)},d(c){c&&w(e),c&&w(i),c&&w(s),u=!1,Pe(f)}}}function sh(n){let e,t,i,s;return{c(){e=v("button"),t=v("span"),t.textContent="Cancel",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary btn-hint"),e.disabled=n[2]},m(l,o){S(l,e,o),_(e,t),i||(s=K(e,"click",n[12]),i=!0)},p(l,o){o&4&&(e.disabled=l[2])},d(l){l&&w(e),i=!1,s()}}}function PO(n){let e,t,i,s,l,o,r,a,u;const f=[OO,MO],c=[];function d(h,m){return h[1]?0:1}return l=d(n),o=c[l]=f[l](n),{c(){e=v("header"),e.innerHTML=``,t=O(),i=v("div"),s=v("form"),o.c(),p(e,"class","page-header"),p(s,"class","panel"),p(s,"autocomplete","off"),p(i,"class","wrapper")},m(h,m){S(h,e,m),S(h,t,m),S(h,i,m),_(i,s),c[l].m(s,null),r=!0,a||(u=K(s,"submit",ut(n[4])),a=!0)},p(h,m){let b=l;l=d(h),l===b?c[l].p(h,m):(pe(),P(c[b],1,1,()=>{c[b]=null}),he(),o=c[l],o?o.p(h,m):(o=c[l]=f[l](h),o.c()),A(o,1),o.m(s,null))},i(h){r||(A(o),r=!0)},o(h){P(o),r=!1},d(h){h&&w(e),h&&w(t),h&&w(i),c[l].d(),a=!1,u()}}}function LO(n){let e,t,i,s;return e=new Ci({}),i=new pn({props:{$$slots:{default:[PO]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(l,o){R(e,l,o),S(l,t,o),R(i,l,o),s=!0},p(l,[o]){const r={};o&1048591&&(r.$$scope={dirty:o,ctx:l}),i.$set(r)},i(l){s||(A(e.$$.fragment,l),A(i.$$.fragment,l),s=!0)},o(l){P(e.$$.fragment,l),P(i.$$.fragment,l),s=!1},d(l){H(e,l),l&&w(t),H(i,l)}}}function NO(n,e,t){let i,s,l,o;Ze(n,ws,M=>t(14,s=M)),Ze(n,bo,M=>t(15,l=M)),Ze(n,mt,M=>t(16,o=M)),Ht(mt,o="Application settings",o);let r={},a={},u=!1,f=!1,c="";d();async function d(){t(1,u=!0);try{const M=await de.settings.getAll()||{};m(M)}catch(M){de.errorResponseHandler(M)}t(1,u=!1)}async function h(){if(!(f||!i)){t(2,f=!0);try{const M=await de.settings.update(W.filterRedactedProps(a));m(M),Lt("Successfully saved application settings.")}catch(M){de.errorResponseHandler(M)}t(2,f=!1)}}function m(M={}){var D,E;Ht(bo,l=(D=M==null?void 0:M.meta)==null?void 0:D.appName,l),Ht(ws,s=!!((E=M==null?void 0:M.meta)!=null&&E.hideControls),s),t(0,a={meta:(M==null?void 0:M.meta)||{},logs:(M==null?void 0:M.logs)||{}}),t(6,r=JSON.parse(JSON.stringify(a)))}function b(){t(0,a=JSON.parse(JSON.stringify(r||{})))}function g(){a.meta.appName=this.value,t(0,a)}function y(){a.meta.appUrl=this.value,t(0,a)}function k(){a.logs.maxDays=rt(this.value),t(0,a)}function $(){a.meta.hideControls=this.checked,t(0,a)}const C=()=>b(),T=()=>h();return n.$$.update=()=>{n.$$.dirty&64&&t(7,c=JSON.stringify(r)),n.$$.dirty&129&&t(3,i=c!=JSON.stringify(a))},[a,u,f,i,h,b,r,c,g,y,k,$,C,T]}class FO extends ye{constructor(e){super(),ve(this,e,NO,LO,be,{})}}function RO(n){let e,t,i,s=[{type:"password"},{autocomplete:"new-password"},n[5]],l={};for(let o=0;o',i=O(),s=v("input"),p(t,"type","button"),p(t,"class","btn btn-secondary btn-circle"),p(e,"class","form-field-addon"),Un(s,a)},m(u,f){S(u,e,f),_(e,t),S(u,i,f),S(u,s,f),s.autofocus&&s.focus(),l||(o=[Ee(Be.call(null,t,{position:"left",text:"Set new value"})),K(t,"click",n[6])],l=!0)},p(u,f){Un(s,a=Zt(r,[{readOnly:!0},{type:"text"},f&2&&{placeholder:u[1]},f&32&&u[5]]))},d(u){u&&w(e),u&&w(i),u&&w(s),l=!1,Pe(o)}}}function jO(n){let e;function t(l,o){return l[3]?HO:RO}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,[o]){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},i:te,o:te,d(l){s.d(l),l&&w(e)}}}function qO(n,e,t){const i=["value","mask"];let s=wt(e,i),{value:l=""}=e,{mask:o="******"}=e,r,a=!1;async function u(){t(0,l=""),t(3,a=!1),await Tn(),r==null||r.focus()}const f=()=>u();function c(h){le[h?"unshift":"push"](()=>{r=h,t(2,r)})}function d(){l=this.value,t(0,l)}return n.$$set=h=>{e=Ke(Ke({},e),Wn(h)),t(5,s=wt(e,i)),"value"in h&&t(0,l=h.value),"mask"in h&&t(1,o=h.mask)},n.$$.update=()=>{n.$$.dirty&3&&l===o&&t(3,a=!0)},[l,o,r,a,u,s,f,c,d]}class Ga extends ye{constructor(e){super(),ve(this,e,qO,jO,be,{value:0,mask:1})}}function VO(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b;return{c(){e=v("label"),t=B("Subject"),s=O(),l=v("input"),r=O(),a=v("div"),u=B(`Available placeholder parameters: - `),f=v("span"),f.textContent=`{APP_NAME} - `,c=B(`, - `),d=v("span"),d.textContent=`{APP_URL} - `,h=B("."),p(e,"for",i=n[31]),p(l,"type","text"),p(l,"id",o=n[31]),p(l,"spellcheck","false"),l.required=!0,p(f,"class","label label-sm link-primary txt-mono"),p(d,"class","label label-sm link-primary txt-mono"),p(a,"class","help-block")},m(g,y){S(g,e,y),_(e,t),S(g,s,y),S(g,l,y),ce(l,n[0].subject),S(g,r,y),S(g,a,y),_(a,u),_(a,f),_(a,c),_(a,d),_(a,h),m||(b=[K(l,"input",n[13]),K(f,"click",n[14]),K(d,"click",n[15])],m=!0)},p(g,y){y[1]&1&&i!==(i=g[31])&&p(e,"for",i),y[1]&1&&o!==(o=g[31])&&p(l,"id",o),y[0]&1&&l.value!==g[0].subject&&ce(l,g[0].subject)},d(g){g&&w(e),g&&w(s),g&&w(l),g&&w(r),g&&w(a),m=!1,Pe(b)}}}function zO(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y;return{c(){e=v("label"),t=B("Action URL"),s=O(),l=v("input"),r=O(),a=v("div"),u=B(`Available placeholder parameters: - `),f=v("span"),f.textContent=`{APP_NAME} - `,c=B(`, - `),d=v("span"),d.textContent=`{APP_URL} - `,h=B(`, - `),m=v("span"),m.textContent="{TOKEN}",b=B("."),p(e,"for",i=n[31]),p(l,"type","text"),p(l,"id",o=n[31]),p(l,"spellcheck","false"),l.required=!0,p(f,"class","label label-sm link-primary txt-mono"),p(d,"class","label label-sm link-primary txt-mono"),p(m,"class","label label-sm link-primary txt-mono"),p(m,"title","Required parameter"),p(a,"class","help-block")},m(k,$){S(k,e,$),_(e,t),S(k,s,$),S(k,l,$),ce(l,n[0].actionUrl),S(k,r,$),S(k,a,$),_(a,u),_(a,f),_(a,c),_(a,d),_(a,h),_(a,m),_(a,b),g||(y=[K(l,"input",n[16]),K(f,"click",n[17]),K(d,"click",n[18]),K(m,"click",n[19])],g=!0)},p(k,$){$[1]&1&&i!==(i=k[31])&&p(e,"for",i),$[1]&1&&o!==(o=k[31])&&p(l,"id",o),$[0]&1&&l.value!==k[0].actionUrl&&ce(l,k[0].actionUrl)},d(k){k&&w(e),k&&w(s),k&&w(l),k&&w(r),k&&w(a),g=!1,Pe(y)}}}function BO(n){let e,t,i,s;return{c(){e=v("textarea"),p(e,"id",t=n[31]),p(e,"class","txt-mono"),p(e,"spellcheck","false"),p(e,"rows","14"),e.required=!0},m(l,o){S(l,e,o),ce(e,n[0].body),i||(s=K(e,"input",n[21]),i=!0)},p(l,o){o[1]&1&&t!==(t=l[31])&&p(e,"id",t),o[0]&1&&ce(e,l[0].body)},i:te,o:te,d(l){l&&w(e),i=!1,s()}}}function UO(n){let e,t,i,s;function l(a){n[20](a)}var o=n[4];function r(a){let u={id:a[31],language:"html"};return a[0].body!==void 0&&(u.value=a[0].body),{props:u}}return o&&(e=jt(o,r(n)),le.push(()=>_e(e,"value",l))),{c(){e&&j(e.$$.fragment),i=Ae()},m(a,u){e&&R(e,a,u),S(a,i,u),s=!0},p(a,u){const f={};if(u[1]&1&&(f.id=a[31]),!t&&u[0]&1&&(t=!0,f.value=a[0].body,ke(()=>t=!1)),o!==(o=a[4])){if(e){pe();const c=e;P(c.$$.fragment,1,0,()=>{H(c,1)}),he()}o?(e=jt(o,r(a)),le.push(()=>_e(e,"value",l)),j(e.$$.fragment),A(e.$$.fragment,1),R(e,i.parentNode,i)):e=null}else o&&e.$set(f)},i(a){s||(e&&A(e.$$.fragment,a),s=!0)},o(a){e&&P(e.$$.fragment,a),s=!1},d(a){a&&w(i),e&&H(e,a)}}}function WO(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C;const T=[UO,BO],M=[];function D(E,I){return E[4]&&!E[5]?0:1}return l=D(n),o=M[l]=T[l](n),{c(){e=v("label"),t=B("Body (HTML)"),s=O(),o.c(),r=O(),a=v("div"),u=B(`Available placeholder parameters: - `),f=v("span"),f.textContent=`{APP_NAME} - `,c=B(`, - `),d=v("span"),d.textContent=`{APP_URL} - `,h=B(`, - `),m=v("span"),m.textContent=`{TOKEN} - `,b=B(`, - `),g=v("span"),g.textContent=`{ACTION_URL} - `,y=B("."),p(e,"for",i=n[31]),p(f,"class","label label-sm link-primary txt-mono"),p(d,"class","label label-sm link-primary txt-mono"),p(m,"class","label label-sm link-primary txt-mono"),p(g,"class","label label-sm link-primary txt-mono"),p(g,"title","Required parameter"),p(a,"class","help-block")},m(E,I){S(E,e,I),_(e,t),S(E,s,I),M[l].m(E,I),S(E,r,I),S(E,a,I),_(a,u),_(a,f),_(a,c),_(a,d),_(a,h),_(a,m),_(a,b),_(a,g),_(a,y),k=!0,$||(C=[K(f,"click",n[22]),K(d,"click",n[23]),K(m,"click",n[24]),K(g,"click",n[25])],$=!0)},p(E,I){(!k||I[1]&1&&i!==(i=E[31]))&&p(e,"for",i);let L=l;l=D(E),l===L?M[l].p(E,I):(pe(),P(M[L],1,1,()=>{M[L]=null}),he(),o=M[l],o?o.p(E,I):(o=M[l]=T[l](E),o.c()),A(o,1),o.m(r.parentNode,r))},i(E){k||(A(o),k=!0)},o(E){P(o),k=!1},d(E){E&&w(e),E&&w(s),M[l].d(E),E&&w(r),E&&w(a),$=!1,Pe(C)}}}function YO(n){let e,t,i,s,l,o;return e=new ge({props:{class:"form-field required",name:n[1]+".subject",$$slots:{default:[VO,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),i=new ge({props:{class:"form-field required",name:n[1]+".actionUrl",$$slots:{default:[zO,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),l=new ge({props:{class:"form-field m-0 required",name:n[1]+".body",$$slots:{default:[WO,({uniqueId:r})=>({31:r}),({uniqueId:r})=>[0,r?1:0]]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment),s=O(),j(l.$$.fragment)},m(r,a){R(e,r,a),S(r,t,a),R(i,r,a),S(r,s,a),R(l,r,a),o=!0},p(r,a){const u={};a[0]&2&&(u.name=r[1]+".subject"),a[0]&1|a[1]&3&&(u.$$scope={dirty:a,ctx:r}),e.$set(u);const f={};a[0]&2&&(f.name=r[1]+".actionUrl"),a[0]&1|a[1]&3&&(f.$$scope={dirty:a,ctx:r}),i.$set(f);const c={};a[0]&2&&(c.name=r[1]+".body"),a[0]&49|a[1]&3&&(c.$$scope={dirty:a,ctx:r}),l.$set(c)},i(r){o||(A(e.$$.fragment,r),A(i.$$.fragment,r),A(l.$$.fragment,r),o=!0)},o(r){P(e.$$.fragment,r),P(i.$$.fragment,r),P(l.$$.fragment,r),o=!1},d(r){H(e,r),r&&w(t),H(i,r),r&&w(s),H(l,r)}}}function lh(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function KO(n){let e,t,i,s,l,o,r,a,u,f,c=n[6]&&lh();return{c(){e=v("div"),t=v("i"),i=O(),s=v("span"),l=B(n[2]),o=O(),r=v("div"),a=O(),c&&c.c(),u=Ae(),p(t,"class","ri-draft-line"),p(s,"class","txt"),p(e,"class","inline-flex"),p(r,"class","flex-fill")},m(d,h){S(d,e,h),_(e,t),_(e,i),_(e,s),_(s,l),S(d,o,h),S(d,r,h),S(d,a,h),c&&c.m(d,h),S(d,u,h),f=!0},p(d,h){(!f||h[0]&4)&&ae(l,d[2]),d[6]?c?h[0]&64&&A(c,1):(c=lh(),c.c(),A(c,1),c.m(u.parentNode,u)):c&&(pe(),P(c,1,1,()=>{c=null}),he())},i(d){f||(A(c),f=!0)},o(d){P(c),f=!1},d(d){d&&w(e),d&&w(o),d&&w(r),d&&w(a),c&&c.d(d),d&&w(u)}}}function JO(n){let e,t;const i=[n[8]];let s={$$slots:{header:[KO],default:[YO]},$$scope:{ctx:n}};for(let l=0;lt(12,o=Y));let{key:r}=e,{title:a}=e,{config:u={}}=e,f,c=oh,d=!1;function h(){f==null||f.expand()}function m(){f==null||f.collapse()}function b(){f==null||f.collapseSiblings()}async function g(){c||d||(t(5,d=!0),t(4,c=(await st(()=>import("./CodeEditor.032be7a5.js"),["./CodeEditor.032be7a5.js","./index.e8a8986f.js"],import.meta.url)).default),oh=c,t(5,d=!1))}function y(Y){W.copyToClipboard(Y),Dg(`Copied ${Y} to clipboard`,2e3)}g();function k(){u.subject=this.value,t(0,u)}const $=()=>y("{APP_NAME}"),C=()=>y("{APP_URL}");function T(){u.actionUrl=this.value,t(0,u)}const M=()=>y("{APP_NAME}"),D=()=>y("{APP_URL}"),E=()=>y("{TOKEN}");function I(Y){n.$$.not_equal(u.body,Y)&&(u.body=Y,t(0,u))}function L(){u.body=this.value,t(0,u)}const F=()=>y("{APP_NAME}"),q=()=>y("{APP_URL}"),z=()=>y("{TOKEN}"),J=()=>y("{ACTION_URL}");function G(Y){le[Y?"unshift":"push"](()=>{f=Y,t(3,f)})}function X(Y){Ve.call(this,n,Y)}function Q(Y){Ve.call(this,n,Y)}function ie(Y){Ve.call(this,n,Y)}return n.$$set=Y=>{e=Ke(Ke({},e),Wn(Y)),t(8,l=wt(e,s)),"key"in Y&&t(1,r=Y.key),"title"in Y&&t(2,a=Y.title),"config"in Y&&t(0,u=Y.config)},n.$$.update=()=>{n.$$.dirty[0]&4098&&t(6,i=!W.isEmpty(W.getNestedVal(o,r))),n.$$.dirty[0]&3&&(u.enabled||ks(r))},[u,r,a,f,c,d,i,y,l,h,m,b,o,k,$,C,T,M,D,E,I,L,F,q,z,J,G,X,Q,ie]}class Cr extends ye{constructor(e){super(),ve(this,e,ZO,JO,be,{key:1,title:2,config:0,expand:9,collapse:10,collapseSiblings:11},null,[-1,-1])}get expand(){return this.$$.ctx[9]}get collapse(){return this.$$.ctx[10]}get collapseSiblings(){return this.$$.ctx[11]}}function rh(n,e,t){const i=n.slice();return i[22]=e[t],i}function ah(n,e){let t,i,s,l,o,r=e[22].label+"",a,u,f,c,d;return{key:n,first:null,c(){t=v("div"),i=v("input"),l=O(),o=v("label"),a=B(r),f=O(),p(i,"type","radio"),p(i,"name","template"),p(i,"id",s=e[21]+e[22].value),i.__value=e[22].value,i.value=i.__value,e[12][0].push(i),p(o,"for",u=e[21]+e[22].value),p(t,"class","form-field-block"),this.first=t},m(h,m){S(h,t,m),_(t,i),i.checked=i.__value===e[2],_(t,l),_(t,o),_(o,a),_(t,f),c||(d=K(i,"change",e[11]),c=!0)},p(h,m){e=h,m&2097152&&s!==(s=e[21]+e[22].value)&&p(i,"id",s),m&4&&(i.checked=i.__value===e[2]),m&2097152&&u!==(u=e[21]+e[22].value)&&p(o,"for",u)},d(h){h&&w(t),e[12][0].splice(e[12][0].indexOf(i),1),c=!1,d()}}}function GO(n){let e=[],t=new Map,i,s=n[7];const l=o=>o[22].value;for(let o=0;o({21:a}),({uniqueId:a})=>a?2097152:0]},$$scope:{ctx:n}}}),s=new ge({props:{class:"form-field required m-0",name:"email",$$slots:{default:[XO,({uniqueId:a})=>({21:a}),({uniqueId:a})=>a?2097152:0]},$$scope:{ctx:n}}}),{c(){e=v("form"),j(t.$$.fragment),i=O(),j(s.$$.fragment),p(e,"id",n[6]),p(e,"autocomplete","off")},m(a,u){S(a,e,u),R(t,e,null),_(e,i),R(s,e,null),l=!0,o||(r=K(e,"submit",ut(n[14])),o=!0)},p(a,u){const f={};u&35651588&&(f.$$scope={dirty:u,ctx:a}),t.$set(f);const c={};u&35651586&&(c.$$scope={dirty:u,ctx:a}),s.$set(c)},i(a){l||(A(t.$$.fragment,a),A(s.$$.fragment,a),l=!0)},o(a){P(t.$$.fragment,a),P(s.$$.fragment,a),l=!1},d(a){a&&w(e),H(t),H(s),o=!1,r()}}}function xO(n){let e;return{c(){e=v("h4"),e.textContent="Send test email",p(e,"class","center txt-break")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function eD(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("button"),t=B("Close"),i=O(),s=v("button"),l=v("i"),o=O(),r=v("span"),r.textContent="Send",p(e,"type","button"),p(e,"class","btn btn-secondary"),e.disabled=n[4],p(l,"class","ri-mail-send-line"),p(r,"class","txt"),p(s,"type","submit"),p(s,"form",n[6]),p(s,"class","btn btn-expanded"),s.disabled=a=!n[5]||n[4],ne(s,"btn-loading",n[4])},m(c,d){S(c,e,d),_(e,t),S(c,i,d),S(c,s,d),_(s,l),_(s,o),_(s,r),u||(f=[K(e,"click",n[0]),K(s,"click",n[10])],u=!0)},p(c,d){d&16&&(e.disabled=c[4]),d&48&&a!==(a=!c[5]||c[4])&&(s.disabled=a),d&16&&ne(s,"btn-loading",c[4])},d(c){c&&w(e),c&&w(i),c&&w(s),u=!1,Pe(f)}}}function tD(n){let e,t,i={class:"overlay-panel-sm email-test-popup",overlayClose:!n[4],escClose:!n[4],beforeHide:n[15],popup:!0,$$slots:{footer:[eD],header:[xO],default:[QO]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[16](e),e.$on("show",n[17]),e.$on("hide",n[18]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,[l]){const o={};l&16&&(o.overlayClose=!s[4]),l&16&&(o.escClose=!s[4]),l&16&&(o.beforeHide=s[15]),l&33554486&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[16](null),H(e,s)}}}const Tr="last_email_test",uh="email_test_request";function nD(n,e,t){let i;const s=It(),l="email_test_"+W.randomString(5),o=[{label:'"Verification" template',value:"verification"},{label:'"Password reset" template',value:"password-reset"},{label:'"Confirm email change" template',value:"email-change"}];let r,a=localStorage.getItem(Tr),u=o[0].value,f=!1,c=null;function d(E="",I=""){t(1,a=E||localStorage.getItem(Tr)),t(2,u=I||o[0].value),Fn({}),r==null||r.show()}function h(){return clearTimeout(c),r==null?void 0:r.hide()}async function m(){if(!(!i||f)){t(4,f=!0),localStorage==null||localStorage.setItem(Tr,a),clearTimeout(c),c=setTimeout(()=>{de.cancelRequest(uh),ul("Test email send timeout.")},3e4);try{await de.settings.testEmail(a,u,{$cancelKey:uh}),Lt("Successfully sent test email."),s("submit"),t(4,f=!1),await Tn(),h()}catch(E){t(4,f=!1),de.errorResponseHandler(E)}clearTimeout(c)}}const b=[[]],g=()=>m();function y(){u=this.__value,t(2,u)}function k(){a=this.value,t(1,a)}const $=()=>m(),C=()=>!f;function T(E){le[E?"unshift":"push"](()=>{r=E,t(3,r)})}function M(E){Ve.call(this,n,E)}function D(E){Ve.call(this,n,E)}return n.$$.update=()=>{n.$$.dirty&6&&t(5,i=!!a&&!!u)},[h,a,u,r,f,i,l,o,m,d,g,y,b,k,$,C,T,M,D]}class iD extends ye{constructor(e){super(),ve(this,e,nD,tD,be,{show:9,hide:0})}get show(){return this.$$.ctx[9]}get hide(){return this.$$.ctx[0]}}function sD(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M,D,E,I,L;i=new ge({props:{class:"form-field required",name:"meta.senderName",$$slots:{default:[oD,({uniqueId:U})=>({29:U}),({uniqueId:U})=>U?536870912:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"meta.senderAddress",$$slots:{default:[rD,({uniqueId:U})=>({29:U}),({uniqueId:U})=>U?536870912:0]},$$scope:{ctx:n}}});function F(U){n[13](U)}let q={single:!0,key:"meta.verificationTemplate",title:'Default "Verification" email template'};n[0].meta.verificationTemplate!==void 0&&(q.config=n[0].meta.verificationTemplate),u=new Cr({props:q}),le.push(()=>_e(u,"config",F));function z(U){n[14](U)}let J={single:!0,key:"meta.resetPasswordTemplate",title:'Default "Password reset" email template'};n[0].meta.resetPasswordTemplate!==void 0&&(J.config=n[0].meta.resetPasswordTemplate),d=new Cr({props:J}),le.push(()=>_e(d,"config",z));function G(U){n[15](U)}let X={single:!0,key:"meta.confirmEmailChangeTemplate",title:'Default "Confirm email change" email template'};n[0].meta.confirmEmailChangeTemplate!==void 0&&(X.config=n[0].meta.confirmEmailChangeTemplate),b=new Cr({props:X}),le.push(()=>_e(b,"config",G)),C=new ge({props:{class:"form-field form-field-toggle m-b-sm",$$slots:{default:[aD,({uniqueId:U})=>({29:U}),({uniqueId:U})=>U?536870912:0]},$$scope:{ctx:n}}});let Q=n[0].smtp.enabled&&fh(n);function ie(U,re){return U[4]?mD:hD}let Y=ie(n),x=Y(n);return{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),a=v("div"),j(u.$$.fragment),c=O(),j(d.$$.fragment),m=O(),j(b.$$.fragment),y=O(),k=v("hr"),$=O(),j(C.$$.fragment),T=O(),Q&&Q.c(),M=O(),D=v("div"),E=v("div"),I=O(),x.c(),p(t,"class","col-lg-6"),p(l,"class","col-lg-6"),p(e,"class","grid m-b-base"),p(a,"class","accordions"),p(E,"class","flex-fill"),p(D,"class","flex")},m(U,re){S(U,e,re),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),S(U,r,re),S(U,a,re),R(u,a,null),_(a,c),R(d,a,null),_(a,m),R(b,a,null),S(U,y,re),S(U,k,re),S(U,$,re),R(C,U,re),S(U,T,re),Q&&Q.m(U,re),S(U,M,re),S(U,D,re),_(D,E),_(D,I),x.m(D,null),L=!0},p(U,re){const Re={};re&1610612737&&(Re.$$scope={dirty:re,ctx:U}),i.$set(Re);const Ne={};re&1610612737&&(Ne.$$scope={dirty:re,ctx:U}),o.$set(Ne);const Le={};!f&&re&1&&(f=!0,Le.config=U[0].meta.verificationTemplate,ke(()=>f=!1)),u.$set(Le);const Fe={};!h&&re&1&&(h=!0,Fe.config=U[0].meta.resetPasswordTemplate,ke(()=>h=!1)),d.$set(Fe);const me={};!g&&re&1&&(g=!0,me.config=U[0].meta.confirmEmailChangeTemplate,ke(()=>g=!1)),b.$set(me);const Se={};re&1610612737&&(Se.$$scope={dirty:re,ctx:U}),C.$set(Se),U[0].smtp.enabled?Q?(Q.p(U,re),re&1&&A(Q,1)):(Q=fh(U),Q.c(),A(Q,1),Q.m(M.parentNode,M)):Q&&(pe(),P(Q,1,1,()=>{Q=null}),he()),Y===(Y=ie(U))&&x?x.p(U,re):(x.d(1),x=Y(U),x&&(x.c(),x.m(D,null)))},i(U){L||(A(i.$$.fragment,U),A(o.$$.fragment,U),A(u.$$.fragment,U),A(d.$$.fragment,U),A(b.$$.fragment,U),A(C.$$.fragment,U),A(Q),L=!0)},o(U){P(i.$$.fragment,U),P(o.$$.fragment,U),P(u.$$.fragment,U),P(d.$$.fragment,U),P(b.$$.fragment,U),P(C.$$.fragment,U),P(Q),L=!1},d(U){U&&w(e),H(i),H(o),U&&w(r),U&&w(a),H(u),H(d),H(b),U&&w(y),U&&w(k),U&&w($),H(C,U),U&&w(T),Q&&Q.d(U),U&&w(M),U&&w(D),x.d()}}}function lD(n){let e;return{c(){e=v("div"),p(e,"class","loader")},m(t,i){S(t,e,i)},p:te,i:te,o:te,d(t){t&&w(e)}}}function oD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Sender name"),s=O(),l=v("input"),p(e,"for",i=n[29]),p(l,"type","text"),p(l,"id",o=n[29]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].meta.senderName),r||(a=K(l,"input",n[11]),r=!0)},p(u,f){f&536870912&&i!==(i=u[29])&&p(e,"for",i),f&536870912&&o!==(o=u[29])&&p(l,"id",o),f&1&&l.value!==u[0].meta.senderName&&ce(l,u[0].meta.senderName)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function rD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Sender address"),s=O(),l=v("input"),p(e,"for",i=n[29]),p(l,"type","email"),p(l,"id",o=n[29]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].meta.senderAddress),r||(a=K(l,"input",n[12]),r=!0)},p(u,f){f&536870912&&i!==(i=u[29])&&p(e,"for",i),f&536870912&&o!==(o=u[29])&&p(l,"id",o),f&1&&l.value!==u[0].meta.senderAddress&&ce(l,u[0].meta.senderAddress)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function aD(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("input"),i=O(),s=v("label"),l=v("span"),l.innerHTML="Use SMTP mail server (recommended)",o=O(),r=v("i"),p(e,"type","checkbox"),p(e,"id",t=n[29]),e.required=!0,p(l,"class","txt"),p(r,"class","ri-information-line link-hint"),p(s,"for",a=n[29])},m(c,d){S(c,e,d),e.checked=n[0].smtp.enabled,S(c,i,d),S(c,s,d),_(s,l),_(s,o),_(s,r),u||(f=[K(e,"change",n[16]),Ee(Be.call(null,r,{text:'By default PocketBase uses the unix "sendmail" command for sending emails. For better emails deliverability it is recommended to use a SMTP mail server.',position:"top"}))],u=!0)},p(c,d){d&536870912&&t!==(t=c[29])&&p(e,"id",t),d&1&&(e.checked=c[0].smtp.enabled),d&536870912&&a!==(a=c[29])&&p(s,"for",a)},d(c){c&&w(e),c&&w(i),c&&w(s),u=!1,Pe(f)}}}function fh(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$;return i=new ge({props:{class:"form-field required",name:"smtp.host",$$slots:{default:[uD,({uniqueId:C})=>({29:C}),({uniqueId:C})=>C?536870912:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"smtp.port",$$slots:{default:[fD,({uniqueId:C})=>({29:C}),({uniqueId:C})=>C?536870912:0]},$$scope:{ctx:n}}}),u=new ge({props:{class:"form-field required",name:"smtp.tls",$$slots:{default:[cD,({uniqueId:C})=>({29:C}),({uniqueId:C})=>C?536870912:0]},$$scope:{ctx:n}}}),d=new ge({props:{class:"form-field",name:"smtp.username",$$slots:{default:[dD,({uniqueId:C})=>({29:C}),({uniqueId:C})=>C?536870912:0]},$$scope:{ctx:n}}}),b=new ge({props:{class:"form-field",name:"smtp.password",$$slots:{default:[pD,({uniqueId:C})=>({29:C}),({uniqueId:C})=>C?536870912:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),a=v("div"),j(u.$$.fragment),f=O(),c=v("div"),j(d.$$.fragment),h=O(),m=v("div"),j(b.$$.fragment),g=O(),y=v("div"),p(t,"class","col-lg-6"),p(l,"class","col-lg-3"),p(a,"class","col-lg-3"),p(c,"class","col-lg-6"),p(m,"class","col-lg-6"),p(y,"class","col-lg-12"),p(e,"class","grid")},m(C,T){S(C,e,T),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),_(e,r),_(e,a),R(u,a,null),_(e,f),_(e,c),R(d,c,null),_(e,h),_(e,m),R(b,m,null),_(e,g),_(e,y),$=!0},p(C,T){const M={};T&1610612737&&(M.$$scope={dirty:T,ctx:C}),i.$set(M);const D={};T&1610612737&&(D.$$scope={dirty:T,ctx:C}),o.$set(D);const E={};T&1610612737&&(E.$$scope={dirty:T,ctx:C}),u.$set(E);const I={};T&1610612737&&(I.$$scope={dirty:T,ctx:C}),d.$set(I);const L={};T&1610612737&&(L.$$scope={dirty:T,ctx:C}),b.$set(L)},i(C){$||(A(i.$$.fragment,C),A(o.$$.fragment,C),A(u.$$.fragment,C),A(d.$$.fragment,C),A(b.$$.fragment,C),C&&xe(()=>{k||(k=je(e,St,{duration:150},!0)),k.run(1)}),$=!0)},o(C){P(i.$$.fragment,C),P(o.$$.fragment,C),P(u.$$.fragment,C),P(d.$$.fragment,C),P(b.$$.fragment,C),C&&(k||(k=je(e,St,{duration:150},!1)),k.run(0)),$=!1},d(C){C&&w(e),H(i),H(o),H(u),H(d),H(b),C&&k&&k.end()}}}function uD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("SMTP server host"),s=O(),l=v("input"),p(e,"for",i=n[29]),p(l,"type","text"),p(l,"id",o=n[29]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].smtp.host),r||(a=K(l,"input",n[17]),r=!0)},p(u,f){f&536870912&&i!==(i=u[29])&&p(e,"for",i),f&536870912&&o!==(o=u[29])&&p(l,"id",o),f&1&&l.value!==u[0].smtp.host&&ce(l,u[0].smtp.host)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function fD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Port"),s=O(),l=v("input"),p(e,"for",i=n[29]),p(l,"type","number"),p(l,"id",o=n[29]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].smtp.port),r||(a=K(l,"input",n[18]),r=!0)},p(u,f){f&536870912&&i!==(i=u[29])&&p(e,"for",i),f&536870912&&o!==(o=u[29])&&p(l,"id",o),f&1&&rt(l.value)!==u[0].smtp.port&&ce(l,u[0].smtp.port)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function cD(n){let e,t,i,s,l,o,r;function a(f){n[19](f)}let u={id:n[29],items:n[6]};return n[0].smtp.tls!==void 0&&(u.keyOfSelected=n[0].smtp.tls),l=new Es({props:u}),le.push(()=>_e(l,"keyOfSelected",a)),{c(){e=v("label"),t=B("TLS Encryption"),s=O(),j(l.$$.fragment),p(e,"for",i=n[29])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&536870912&&i!==(i=f[29]))&&p(e,"for",i);const d={};c&536870912&&(d.id=f[29]),!o&&c&1&&(o=!0,d.keyOfSelected=f[0].smtp.tls,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function dD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Username"),s=O(),l=v("input"),p(e,"for",i=n[29]),p(l,"type","text"),p(l,"id",o=n[29])},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].smtp.username),r||(a=K(l,"input",n[20]),r=!0)},p(u,f){f&536870912&&i!==(i=u[29])&&p(e,"for",i),f&536870912&&o!==(o=u[29])&&p(l,"id",o),f&1&&l.value!==u[0].smtp.username&&ce(l,u[0].smtp.username)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function pD(n){let e,t,i,s,l,o,r;function a(f){n[21](f)}let u={id:n[29]};return n[0].smtp.password!==void 0&&(u.value=n[0].smtp.password),l=new Ga({props:u}),le.push(()=>_e(l,"value",a)),{c(){e=v("label"),t=B("Password"),s=O(),j(l.$$.fragment),p(e,"for",i=n[29])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&536870912&&i!==(i=f[29]))&&p(e,"for",i);const d={};c&536870912&&(d.id=f[29]),!o&&c&1&&(o=!0,d.value=f[0].smtp.password,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function hD(n){let e,t,i;return{c(){e=v("button"),e.innerHTML=` - Send test email`,p(e,"type","button"),p(e,"class","btn btn-expanded btn-outline")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[24]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function mD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("button"),t=v("span"),t.textContent="Cancel",i=O(),s=v("button"),l=v("span"),l.textContent="Save changes",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary btn-hint"),e.disabled=n[3],p(l,"class","txt"),p(s,"type","submit"),p(s,"class","btn btn-expanded"),s.disabled=o=!n[4]||n[3],ne(s,"btn-loading",n[3])},m(u,f){S(u,e,f),_(e,t),S(u,i,f),S(u,s,f),_(s,l),r||(a=[K(e,"click",n[22]),K(s,"click",n[23])],r=!0)},p(u,f){f&8&&(e.disabled=u[3]),f&24&&o!==(o=!u[4]||u[3])&&(s.disabled=o),f&8&&ne(s,"btn-loading",u[3])},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,Pe(a)}}}function gD(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g;const y=[lD,sD],k=[];function $(C,T){return C[2]?0:1}return d=$(n),h=k[d]=y[d](n),{c(){e=v("header"),t=v("nav"),i=v("div"),i.textContent="Settings",s=O(),l=v("div"),o=B(n[5]),r=O(),a=v("div"),u=v("form"),f=v("div"),f.innerHTML="

    Configure common settings for sending emails.

    ",c=O(),h.c(),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(f,"class","content txt-xl m-b-base"),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m(C,T){S(C,e,T),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),S(C,r,T),S(C,a,T),_(a,u),_(u,f),_(u,c),k[d].m(u,null),m=!0,b||(g=K(u,"submit",ut(n[25])),b=!0)},p(C,T){(!m||T&32)&&ae(o,C[5]);let M=d;d=$(C),d===M?k[d].p(C,T):(pe(),P(k[M],1,1,()=>{k[M]=null}),he(),h=k[d],h?h.p(C,T):(h=k[d]=y[d](C),h.c()),A(h,1),h.m(u,null))},i(C){m||(A(h),m=!0)},o(C){P(h),m=!1},d(C){C&&w(e),C&&w(r),C&&w(a),k[d].d(),b=!1,g()}}}function _D(n){let e,t,i,s,l,o;e=new Ci({}),i=new pn({props:{$$slots:{default:[gD]},$$scope:{ctx:n}}});let r={};return l=new iD({props:r}),n[26](l),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment),s=O(),j(l.$$.fragment)},m(a,u){R(e,a,u),S(a,t,u),R(i,a,u),S(a,s,u),R(l,a,u),o=!0},p(a,[u]){const f={};u&1073741887&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};l.$set(c)},i(a){o||(A(e.$$.fragment,a),A(i.$$.fragment,a),A(l.$$.fragment,a),o=!0)},o(a){P(e.$$.fragment,a),P(i.$$.fragment,a),P(l.$$.fragment,a),o=!1},d(a){H(e,a),a&&w(t),H(i,a),a&&w(s),n[26](null),H(l,a)}}}function bD(n,e,t){let i,s,l;Ze(n,mt,X=>t(5,l=X));const o=[{label:"Auto (StartTLS)",value:!1},{label:"Always",value:!0}];Ht(mt,l="Mail settings",l);let r,a={},u={},f=!1,c=!1;d();async function d(){t(2,f=!0);try{const X=await de.settings.getAll()||{};m(X)}catch(X){de.errorResponseHandler(X)}t(2,f=!1)}async function h(){if(!(c||!s)){t(3,c=!0);try{const X=await de.settings.update(W.filterRedactedProps(u));m(X),Fn({}),Lt("Successfully saved mail settings.")}catch(X){de.errorResponseHandler(X)}t(3,c=!1)}}function m(X={}){t(0,u={meta:(X==null?void 0:X.meta)||{},smtp:(X==null?void 0:X.smtp)||{}}),t(9,a=JSON.parse(JSON.stringify(u)))}function b(){t(0,u=JSON.parse(JSON.stringify(a||{})))}function g(){u.meta.senderName=this.value,t(0,u)}function y(){u.meta.senderAddress=this.value,t(0,u)}function k(X){n.$$.not_equal(u.meta.verificationTemplate,X)&&(u.meta.verificationTemplate=X,t(0,u))}function $(X){n.$$.not_equal(u.meta.resetPasswordTemplate,X)&&(u.meta.resetPasswordTemplate=X,t(0,u))}function C(X){n.$$.not_equal(u.meta.confirmEmailChangeTemplate,X)&&(u.meta.confirmEmailChangeTemplate=X,t(0,u))}function T(){u.smtp.enabled=this.checked,t(0,u)}function M(){u.smtp.host=this.value,t(0,u)}function D(){u.smtp.port=rt(this.value),t(0,u)}function E(X){n.$$.not_equal(u.smtp.tls,X)&&(u.smtp.tls=X,t(0,u))}function I(){u.smtp.username=this.value,t(0,u)}function L(X){n.$$.not_equal(u.smtp.password,X)&&(u.smtp.password=X,t(0,u))}const F=()=>b(),q=()=>h(),z=()=>r==null?void 0:r.show(),J=()=>h();function G(X){le[X?"unshift":"push"](()=>{r=X,t(1,r)})}return n.$$.update=()=>{n.$$.dirty&512&&t(10,i=JSON.stringify(a)),n.$$.dirty&1025&&t(4,s=i!=JSON.stringify(u))},[u,r,f,c,s,l,o,h,b,a,i,g,y,k,$,C,T,M,D,E,I,L,F,q,z,J,G]}class vD extends ye{constructor(e){super(),ve(this,e,bD,_D,be,{})}}function yD(n){var C,T;let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b;e=new ge({props:{class:"form-field form-field-toggle",$$slots:{default:[wD,({uniqueId:M})=>({25:M}),({uniqueId:M})=>M?33554432:0]},$$scope:{ctx:n}}});let g=((C=n[0].s3)==null?void 0:C.enabled)!=n[1].s3.enabled&&ch(n),y=n[1].s3.enabled&&dh(n),k=((T=n[1].s3)==null?void 0:T.enabled)&&!n[6]&&!n[3]&&ph(n),$=n[6]&&hh(n);return{c(){j(e.$$.fragment),t=O(),g&&g.c(),i=O(),y&&y.c(),s=O(),l=v("div"),o=v("div"),r=O(),k&&k.c(),a=O(),$&&$.c(),u=O(),f=v("button"),c=v("span"),c.textContent="Save changes",p(o,"class","flex-fill"),p(c,"class","txt"),p(f,"type","submit"),p(f,"class","btn btn-expanded"),f.disabled=d=!n[6]||n[3],ne(f,"btn-loading",n[3]),p(l,"class","flex")},m(M,D){R(e,M,D),S(M,t,D),g&&g.m(M,D),S(M,i,D),y&&y.m(M,D),S(M,s,D),S(M,l,D),_(l,o),_(l,r),k&&k.m(l,null),_(l,a),$&&$.m(l,null),_(l,u),_(l,f),_(f,c),h=!0,m||(b=K(f,"click",n[19]),m=!0)},p(M,D){var I,L;const E={};D&100663298&&(E.$$scope={dirty:D,ctx:M}),e.$set(E),((I=M[0].s3)==null?void 0:I.enabled)!=M[1].s3.enabled?g?(g.p(M,D),D&3&&A(g,1)):(g=ch(M),g.c(),A(g,1),g.m(i.parentNode,i)):g&&(pe(),P(g,1,1,()=>{g=null}),he()),M[1].s3.enabled?y?(y.p(M,D),D&2&&A(y,1)):(y=dh(M),y.c(),A(y,1),y.m(s.parentNode,s)):y&&(pe(),P(y,1,1,()=>{y=null}),he()),((L=M[1].s3)==null?void 0:L.enabled)&&!M[6]&&!M[3]?k?k.p(M,D):(k=ph(M),k.c(),k.m(l,a)):k&&(k.d(1),k=null),M[6]?$?$.p(M,D):($=hh(M),$.c(),$.m(l,u)):$&&($.d(1),$=null),(!h||D&72&&d!==(d=!M[6]||M[3]))&&(f.disabled=d),(!h||D&8)&&ne(f,"btn-loading",M[3])},i(M){h||(A(e.$$.fragment,M),A(g),A(y),h=!0)},o(M){P(e.$$.fragment,M),P(g),P(y),h=!1},d(M){H(e,M),M&&w(t),g&&g.d(M),M&&w(i),y&&y.d(M),M&&w(s),M&&w(l),k&&k.d(),$&&$.d(),m=!1,b()}}}function kD(n){let e;return{c(){e=v("div"),p(e,"class","loader")},m(t,i){S(t,e,i)},p:te,i:te,o:te,d(t){t&&w(e)}}}function wD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Use S3 storage"),p(e,"type","checkbox"),p(e,"id",t=n[25]),e.required=!0,p(s,"for",o=n[25])},m(u,f){S(u,e,f),e.checked=n[1].s3.enabled,S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[11]),r=!0)},p(u,f){f&33554432&&t!==(t=u[25])&&p(e,"id",t),f&2&&(e.checked=u[1].s3.enabled),f&33554432&&o!==(o=u[25])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function ch(n){var I;let e,t,i,s,l,o,r,a=(I=n[0].s3)!=null&&I.enabled?"S3 storage":"local file system",u,f,c,d=n[1].s3.enabled?"S3 storage":"local file system",h,m,b,g,y,k,$,C,T,M,D,E;return{c(){e=v("div"),t=v("div"),i=v("div"),i.innerHTML='',s=O(),l=v("div"),o=B(`If you have existing uploaded files, you'll have to migrate them manually from - the - `),r=v("strong"),u=B(a),f=B(` - to the - `),c=v("strong"),h=B(d),m=B(`. - `),b=v("br"),g=B(` - There are numerous command line tools that can help you, such as: - `),y=v("a"),y.textContent=`rclone - `,k=B(`, - `),$=v("a"),$.textContent=`s5cmd - `,C=B(", etc."),T=O(),M=v("div"),p(i,"class","icon"),p(y,"href","https://github.com/rclone/rclone"),p(y,"target","_blank"),p(y,"rel","noopener noreferrer"),p(y,"class","txt-bold"),p($,"href","https://github.com/peak/s5cmd"),p($,"target","_blank"),p($,"rel","noopener noreferrer"),p($,"class","txt-bold"),p(l,"class","content"),p(t,"class","alert alert-warning m-0"),p(M,"class","clearfix m-t-base")},m(L,F){S(L,e,F),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),_(l,r),_(r,u),_(l,f),_(l,c),_(c,h),_(l,m),_(l,b),_(l,g),_(l,y),_(l,k),_(l,$),_(l,C),_(e,T),_(e,M),E=!0},p(L,F){var q;(!E||F&1)&&a!==(a=(q=L[0].s3)!=null&&q.enabled?"S3 storage":"local file system")&&ae(u,a),(!E||F&2)&&d!==(d=L[1].s3.enabled?"S3 storage":"local file system")&&ae(h,d)},i(L){E||(L&&xe(()=>{D||(D=je(e,St,{duration:150},!0)),D.run(1)}),E=!0)},o(L){L&&(D||(D=je(e,St,{duration:150},!1)),D.run(0)),E=!1},d(L){L&&w(e),L&&D&&D.end()}}}function dh(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M;return i=new ge({props:{class:"form-field required",name:"s3.endpoint",$$slots:{default:[SD,({uniqueId:D})=>({25:D}),({uniqueId:D})=>D?33554432:0]},$$scope:{ctx:n}}}),o=new ge({props:{class:"form-field required",name:"s3.bucket",$$slots:{default:[$D,({uniqueId:D})=>({25:D}),({uniqueId:D})=>D?33554432:0]},$$scope:{ctx:n}}}),u=new ge({props:{class:"form-field required",name:"s3.region",$$slots:{default:[CD,({uniqueId:D})=>({25:D}),({uniqueId:D})=>D?33554432:0]},$$scope:{ctx:n}}}),d=new ge({props:{class:"form-field required",name:"s3.accessKey",$$slots:{default:[TD,({uniqueId:D})=>({25:D}),({uniqueId:D})=>D?33554432:0]},$$scope:{ctx:n}}}),b=new ge({props:{class:"form-field required",name:"s3.secret",$$slots:{default:[MD,({uniqueId:D})=>({25:D}),({uniqueId:D})=>D?33554432:0]},$$scope:{ctx:n}}}),k=new ge({props:{class:"form-field",name:"s3.forcePathStyle",$$slots:{default:[OD,({uniqueId:D})=>({25:D}),({uniqueId:D})=>D?33554432:0]},$$scope:{ctx:n}}}),{c(){e=v("div"),t=v("div"),j(i.$$.fragment),s=O(),l=v("div"),j(o.$$.fragment),r=O(),a=v("div"),j(u.$$.fragment),f=O(),c=v("div"),j(d.$$.fragment),h=O(),m=v("div"),j(b.$$.fragment),g=O(),y=v("div"),j(k.$$.fragment),$=O(),C=v("div"),p(t,"class","col-lg-6"),p(l,"class","col-lg-3"),p(a,"class","col-lg-3"),p(c,"class","col-lg-6"),p(m,"class","col-lg-6"),p(y,"class","col-lg-12"),p(C,"class","col-lg-12"),p(e,"class","grid")},m(D,E){S(D,e,E),_(e,t),R(i,t,null),_(e,s),_(e,l),R(o,l,null),_(e,r),_(e,a),R(u,a,null),_(e,f),_(e,c),R(d,c,null),_(e,h),_(e,m),R(b,m,null),_(e,g),_(e,y),R(k,y,null),_(e,$),_(e,C),M=!0},p(D,E){const I={};E&100663298&&(I.$$scope={dirty:E,ctx:D}),i.$set(I);const L={};E&100663298&&(L.$$scope={dirty:E,ctx:D}),o.$set(L);const F={};E&100663298&&(F.$$scope={dirty:E,ctx:D}),u.$set(F);const q={};E&100663298&&(q.$$scope={dirty:E,ctx:D}),d.$set(q);const z={};E&100663298&&(z.$$scope={dirty:E,ctx:D}),b.$set(z);const J={};E&100663298&&(J.$$scope={dirty:E,ctx:D}),k.$set(J)},i(D){M||(A(i.$$.fragment,D),A(o.$$.fragment,D),A(u.$$.fragment,D),A(d.$$.fragment,D),A(b.$$.fragment,D),A(k.$$.fragment,D),D&&xe(()=>{T||(T=je(e,St,{duration:150},!0)),T.run(1)}),M=!0)},o(D){P(i.$$.fragment,D),P(o.$$.fragment,D),P(u.$$.fragment,D),P(d.$$.fragment,D),P(b.$$.fragment,D),P(k.$$.fragment,D),D&&(T||(T=je(e,St,{duration:150},!1)),T.run(0)),M=!1},d(D){D&&w(e),H(i),H(o),H(u),H(d),H(b),H(k),D&&T&&T.end()}}}function SD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Endpoint"),s=O(),l=v("input"),p(e,"for",i=n[25]),p(l,"type","text"),p(l,"id",o=n[25]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[1].s3.endpoint),r||(a=K(l,"input",n[12]),r=!0)},p(u,f){f&33554432&&i!==(i=u[25])&&p(e,"for",i),f&33554432&&o!==(o=u[25])&&p(l,"id",o),f&2&&l.value!==u[1].s3.endpoint&&ce(l,u[1].s3.endpoint)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function $D(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Bucket"),s=O(),l=v("input"),p(e,"for",i=n[25]),p(l,"type","text"),p(l,"id",o=n[25]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[1].s3.bucket),r||(a=K(l,"input",n[13]),r=!0)},p(u,f){f&33554432&&i!==(i=u[25])&&p(e,"for",i),f&33554432&&o!==(o=u[25])&&p(l,"id",o),f&2&&l.value!==u[1].s3.bucket&&ce(l,u[1].s3.bucket)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function CD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Region"),s=O(),l=v("input"),p(e,"for",i=n[25]),p(l,"type","text"),p(l,"id",o=n[25]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[1].s3.region),r||(a=K(l,"input",n[14]),r=!0)},p(u,f){f&33554432&&i!==(i=u[25])&&p(e,"for",i),f&33554432&&o!==(o=u[25])&&p(l,"id",o),f&2&&l.value!==u[1].s3.region&&ce(l,u[1].s3.region)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function TD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Access key"),s=O(),l=v("input"),p(e,"for",i=n[25]),p(l,"type","text"),p(l,"id",o=n[25]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[1].s3.accessKey),r||(a=K(l,"input",n[15]),r=!0)},p(u,f){f&33554432&&i!==(i=u[25])&&p(e,"for",i),f&33554432&&o!==(o=u[25])&&p(l,"id",o),f&2&&l.value!==u[1].s3.accessKey&&ce(l,u[1].s3.accessKey)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function MD(n){let e,t,i,s,l,o,r;function a(f){n[16](f)}let u={id:n[25],required:!0};return n[1].s3.secret!==void 0&&(u.value=n[1].s3.secret),l=new Ga({props:u}),le.push(()=>_e(l,"value",a)),{c(){e=v("label"),t=B("Secret"),s=O(),j(l.$$.fragment),p(e,"for",i=n[25])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&33554432&&i!==(i=f[25]))&&p(e,"for",i);const d={};c&33554432&&(d.id=f[25]),!o&&c&2&&(o=!0,d.value=f[1].s3.secret,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function OD(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=v("input"),i=O(),s=v("label"),l=v("span"),l.textContent="Force path-style addressing",o=O(),r=v("i"),p(e,"type","checkbox"),p(e,"id",t=n[25]),p(l,"class","txt"),p(r,"class","ri-information-line link-hint"),p(s,"for",a=n[25])},m(c,d){S(c,e,d),e.checked=n[1].s3.forcePathStyle,S(c,i,d),S(c,s,d),_(s,l),_(s,o),_(s,r),u||(f=[K(e,"change",n[17]),Ee(Be.call(null,r,{text:'Forces the request to use path-style addressing, eg. "https://s3.amazonaws.com/BUCKET/KEY" instead of the default "https://BUCKET.s3.amazonaws.com/KEY".',position:"top"}))],u=!0)},p(c,d){d&33554432&&t!==(t=c[25])&&p(e,"id",t),d&2&&(e.checked=c[1].s3.forcePathStyle),d&33554432&&a!==(a=c[25])&&p(s,"for",a)},d(c){c&&w(e),c&&w(i),c&&w(s),u=!1,Pe(f)}}}function ph(n){let e;function t(l,o){return l[4]?ED:l[5]?AD:DD}let i=t(n),s=i(n);return{c(){s.c(),e=Ae()},m(l,o){s.m(l,o),S(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&w(e)}}}function DD(n){let e;return{c(){e=v("div"),e.innerHTML=` - S3 connected successfully`,p(e,"class","label label-sm label-success entrance-right")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function AD(n){let e,t,i,s;return{c(){e=v("div"),e.innerHTML=` - Failed to establish S3 connection`,p(e,"class","label label-sm label-warning entrance-right")},m(l,o){var r;S(l,e,o),i||(s=Ee(t=Be.call(null,e,(r=n[5].data)==null?void 0:r.message)),i=!0)},p(l,o){var r;t&&Jt(t.update)&&o&32&&t.update.call(null,(r=l[5].data)==null?void 0:r.message)},d(l){l&&w(e),i=!1,s()}}}function ED(n){let e;return{c(){e=v("span"),p(e,"class","loader loader-sm")},m(t,i){S(t,e,i)},p:te,d(t){t&&w(e)}}}function hh(n){let e,t,i,s;return{c(){e=v("button"),t=v("span"),t.textContent="Cancel",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary btn-hint"),e.disabled=n[3]},m(l,o){S(l,e,o),_(e,t),i||(s=K(e,"click",n[18]),i=!0)},p(l,o){o&8&&(e.disabled=l[3])},d(l){l&&w(e),i=!1,s()}}}function ID(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g;const y=[kD,yD],k=[];function $(C,T){return C[2]?0:1}return d=$(n),h=k[d]=y[d](n),{c(){e=v("header"),t=v("nav"),i=v("div"),i.textContent="Settings",s=O(),l=v("div"),o=B(n[7]),r=O(),a=v("div"),u=v("form"),f=v("div"),f.innerHTML=`

    By default PocketBase uses the local file system to store uploaded files.

    -

    If you have limited disk space, you could optionally connect to a S3 compatible storage.

    `,c=O(),h.c(),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(f,"class","content txt-xl m-b-base"),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m(C,T){S(C,e,T),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),S(C,r,T),S(C,a,T),_(a,u),_(u,f),_(u,c),k[d].m(u,null),m=!0,b||(g=K(u,"submit",ut(n[20])),b=!0)},p(C,T){(!m||T&128)&&ae(o,C[7]);let M=d;d=$(C),d===M?k[d].p(C,T):(pe(),P(k[M],1,1,()=>{k[M]=null}),he(),h=k[d],h?h.p(C,T):(h=k[d]=y[d](C),h.c()),A(h,1),h.m(u,null))},i(C){m||(A(h),m=!0)},o(C){P(h),m=!1},d(C){C&&w(e),C&&w(r),C&&w(a),k[d].d(),b=!1,g()}}}function PD(n){let e,t,i,s;return e=new Ci({}),i=new pn({props:{$$slots:{default:[ID]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(l,o){R(e,l,o),S(l,t,o),R(i,l,o),s=!0},p(l,[o]){const r={};o&67109119&&(r.$$scope={dirty:o,ctx:l}),i.$set(r)},i(l){s||(A(e.$$.fragment,l),A(i.$$.fragment,l),s=!0)},o(l){P(e.$$.fragment,l),P(i.$$.fragment,l),s=!1},d(l){H(e,l),l&&w(t),H(i,l)}}}const io="s3_test_request";function LD(n,e,t){let i,s,l;Ze(n,mt,q=>t(7,l=q)),Ht(mt,l="Files storage",l);let o={},r={},a=!1,u=!1,f=!1,c=null,d=null;h();async function h(){t(2,a=!0);try{const q=await de.settings.getAll()||{};b(q)}catch(q){de.errorResponseHandler(q)}t(2,a=!1)}async function m(){if(!(u||!s)){t(3,u=!0);try{de.cancelRequest(io);const q=await de.settings.update(W.filterRedactedProps(r));Fn({}),await b(q),Eg(),c?A1("Successfully saved but failed to establish S3 connection."):Lt("Successfully saved files storage settings.")}catch(q){de.errorResponseHandler(q)}t(3,u=!1)}}async function b(q={}){t(1,r={s3:(q==null?void 0:q.s3)||{}}),t(0,o=JSON.parse(JSON.stringify(r))),await y()}async function g(){t(1,r=JSON.parse(JSON.stringify(o||{}))),await y()}async function y(){if(t(5,c=null),!!r.s3.enabled){de.cancelRequest(io),clearTimeout(d),d=setTimeout(()=>{de.cancelRequest(io),addErrorToast("S3 test connection timeout.")},3e4),t(4,f=!0);try{await de.settings.testS3({$cancelKey:io})}catch(q){t(5,c=q)}t(4,f=!1),clearTimeout(d)}}cn(()=>()=>{clearTimeout(d)});function k(){r.s3.enabled=this.checked,t(1,r)}function $(){r.s3.endpoint=this.value,t(1,r)}function C(){r.s3.bucket=this.value,t(1,r)}function T(){r.s3.region=this.value,t(1,r)}function M(){r.s3.accessKey=this.value,t(1,r)}function D(q){n.$$.not_equal(r.s3.secret,q)&&(r.s3.secret=q,t(1,r))}function E(){r.s3.forcePathStyle=this.checked,t(1,r)}const I=()=>g(),L=()=>m(),F=()=>m();return n.$$.update=()=>{n.$$.dirty&1&&t(10,i=JSON.stringify(o)),n.$$.dirty&1026&&t(6,s=i!=JSON.stringify(r))},[o,r,a,u,f,c,s,l,m,g,i,k,$,C,T,M,D,E,I,L,F]}class ND extends ye{constructor(e){super(),ve(this,e,LD,PD,be,{})}}function FD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("input"),i=O(),s=v("label"),l=B("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[20]),p(s,"for",o=n[20])},m(u,f){S(u,e,f),e.checked=n[0].enabled,S(u,i,f),S(u,s,f),_(s,l),r||(a=K(e,"change",n[12]),r=!0)},p(u,f){f&1048576&&t!==(t=u[20])&&p(e,"id",t),f&1&&(e.checked=u[0].enabled),f&1048576&&o!==(o=u[20])&&p(s,"for",o)},d(u){u&&w(e),u&&w(i),u&&w(s),r=!1,a()}}}function mh(n){let e,t,i,s,l,o,r,a,u,f,c;l=new ge({props:{class:"form-field required",name:n[1]+".clientId",$$slots:{default:[RD,({uniqueId:h})=>({20:h}),({uniqueId:h})=>h?1048576:0]},$$scope:{ctx:n}}}),a=new ge({props:{class:"form-field required",name:n[1]+".clientSecret",$$slots:{default:[HD,({uniqueId:h})=>({20:h}),({uniqueId:h})=>h?1048576:0]},$$scope:{ctx:n}}});let d=n[4]&&gh(n);return{c(){e=v("div"),t=v("div"),i=O(),s=v("div"),j(l.$$.fragment),o=O(),r=v("div"),j(a.$$.fragment),u=O(),d&&d.c(),p(t,"class","col-12 spacing"),p(s,"class","col-lg-6"),p(r,"class","col-lg-6"),p(e,"class","grid")},m(h,m){S(h,e,m),_(e,t),_(e,i),_(e,s),R(l,s,null),_(e,o),_(e,r),R(a,r,null),_(e,u),d&&d.m(e,null),c=!0},p(h,m){const b={};m&2&&(b.name=h[1]+".clientId"),m&3145729&&(b.$$scope={dirty:m,ctx:h}),l.$set(b);const g={};m&2&&(g.name=h[1]+".clientSecret"),m&3145729&&(g.$$scope={dirty:m,ctx:h}),a.$set(g),h[4]?d?(d.p(h,m),m&16&&A(d,1)):(d=gh(h),d.c(),A(d,1),d.m(e,null)):d&&(pe(),P(d,1,1,()=>{d=null}),he())},i(h){c||(A(l.$$.fragment,h),A(a.$$.fragment,h),A(d),h&&xe(()=>{f||(f=je(e,St,{duration:200},!0)),f.run(1)}),c=!0)},o(h){P(l.$$.fragment,h),P(a.$$.fragment,h),P(d),h&&(f||(f=je(e,St,{duration:200},!1)),f.run(0)),c=!1},d(h){h&&w(e),H(l),H(a),d&&d.d(),h&&f&&f.end()}}}function RD(n){let e,t,i,s,l,o,r,a;return{c(){e=v("label"),t=B("Client ID"),s=O(),l=v("input"),p(e,"for",i=n[20]),p(l,"type","text"),p(l,"id",o=n[20]),l.required=!0},m(u,f){S(u,e,f),_(e,t),S(u,s,f),S(u,l,f),ce(l,n[0].clientId),r||(a=K(l,"input",n[13]),r=!0)},p(u,f){f&1048576&&i!==(i=u[20])&&p(e,"for",i),f&1048576&&o!==(o=u[20])&&p(l,"id",o),f&1&&l.value!==u[0].clientId&&ce(l,u[0].clientId)},d(u){u&&w(e),u&&w(s),u&&w(l),r=!1,a()}}}function HD(n){let e,t,i,s,l,o,r;function a(f){n[14](f)}let u={id:n[20],required:!0};return n[0].clientSecret!==void 0&&(u.value=n[0].clientSecret),l=new Ga({props:u}),le.push(()=>_e(l,"value",a)),{c(){e=v("label"),t=B("Client Secret"),s=O(),j(l.$$.fragment),p(e,"for",i=n[20])},m(f,c){S(f,e,c),_(e,t),S(f,s,c),R(l,f,c),r=!0},p(f,c){(!r||c&1048576&&i!==(i=f[20]))&&p(e,"for",i);const d={};c&1048576&&(d.id=f[20]),!o&&c&1&&(o=!0,d.value=f[0].clientSecret,ke(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&w(e),f&&w(s),H(l,f)}}}function gh(n){let e,t,i,s;function l(a){n[15](a)}var o=n[4];function r(a){let u={key:a[1]};return a[0]!==void 0&&(u.config=a[0]),{props:u}}return o&&(t=jt(o,r(n)),le.push(()=>_e(t,"config",l))),{c(){e=v("div"),t&&j(t.$$.fragment),p(e,"class","col-lg-12")},m(a,u){S(a,e,u),t&&R(t,e,null),s=!0},p(a,u){const f={};if(u&2&&(f.key=a[1]),!i&&u&1&&(i=!0,f.config=a[0],ke(()=>i=!1)),o!==(o=a[4])){if(t){pe();const c=t;P(c.$$.fragment,1,0,()=>{H(c,1)}),he()}o?(t=jt(o,r(a)),le.push(()=>_e(t,"config",l)),j(t.$$.fragment),A(t.$$.fragment,1),R(t,e,null)):t=null}else o&&t.$set(f)},i(a){s||(t&&A(t.$$.fragment,a),s=!0)},o(a){t&&P(t.$$.fragment,a),s=!1},d(a){a&&w(e),t&&H(t)}}}function jD(n){let e,t,i,s;e=new ge({props:{class:"form-field form-field-toggle m-b-0",name:n[1]+".enabled",$$slots:{default:[FD,({uniqueId:o})=>({20:o}),({uniqueId:o})=>o?1048576:0]},$$scope:{ctx:n}}});let l=n[0].enabled&&mh(n);return{c(){j(e.$$.fragment),t=O(),l&&l.c(),i=Ae()},m(o,r){R(e,o,r),S(o,t,r),l&&l.m(o,r),S(o,i,r),s=!0},p(o,r){const a={};r&2&&(a.name=o[1]+".enabled"),r&3145729&&(a.$$scope={dirty:r,ctx:o}),e.$set(a),o[0].enabled?l?(l.p(o,r),r&1&&A(l,1)):(l=mh(o),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(pe(),P(l,1,1,()=>{l=null}),he())},i(o){s||(A(e.$$.fragment,o),A(l),s=!0)},o(o){P(e.$$.fragment,o),P(l),s=!1},d(o){H(e,o),o&&w(t),l&&l.d(o),o&&w(i)}}}function _h(n){let e;return{c(){e=v("i"),p(e,"class",n[3])},m(t,i){S(t,e,i)},p(t,i){i&8&&p(e,"class",t[3])},d(t){t&&w(e)}}}function qD(n){let e;return{c(){e=v("span"),e.textContent="Disabled",p(e,"class","label label-hint")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function VD(n){let e;return{c(){e=v("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function bh(n){let e,t,i,s,l;return{c(){e=v("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,r){S(o,e,r),i=!0,s||(l=Ee(Be.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(xe(()=>{t||(t=je(e,$t,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=je(e,$t,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&w(e),o&&t&&t.end(),s=!1,l()}}}function zD(n){let e,t,i,s,l,o,r,a,u,f,c=n[3]&&_h(n);function d(g,y){return g[0].enabled?VD:qD}let h=d(n),m=h(n),b=n[6]&&bh();return{c(){e=v("div"),c&&c.c(),t=O(),i=v("span"),s=B(n[2]),l=O(),m.c(),o=O(),r=v("div"),a=O(),b&&b.c(),u=Ae(),p(i,"class","txt"),p(e,"class","inline-flex"),p(r,"class","flex-fill")},m(g,y){S(g,e,y),c&&c.m(e,null),_(e,t),_(e,i),_(i,s),S(g,l,y),m.m(g,y),S(g,o,y),S(g,r,y),S(g,a,y),b&&b.m(g,y),S(g,u,y),f=!0},p(g,y){g[3]?c?c.p(g,y):(c=_h(g),c.c(),c.m(e,t)):c&&(c.d(1),c=null),(!f||y&4)&&ae(s,g[2]),h!==(h=d(g))&&(m.d(1),m=h(g),m&&(m.c(),m.m(o.parentNode,o))),g[6]?b?y&64&&A(b,1):(b=bh(),b.c(),A(b,1),b.m(u.parentNode,u)):b&&(pe(),P(b,1,1,()=>{b=null}),he())},i(g){f||(A(b),f=!0)},o(g){P(b),f=!1},d(g){g&&w(e),c&&c.d(),g&&w(l),m.d(g),g&&w(o),g&&w(r),g&&w(a),b&&b.d(g),g&&w(u)}}}function BD(n){let e,t;const i=[n[7]];let s={$$slots:{header:[zD],default:[jD]},$$scope:{ctx:n}};for(let l=0;lt(11,o=E));let{key:r}=e,{title:a}=e,{icon:u=""}=e,{config:f={}}=e,{optionsComponent:c}=e,d;function h(){d==null||d.expand()}function m(){d==null||d.collapse()}function b(){d==null||d.collapseSiblings()}function g(){f.enabled=this.checked,t(0,f)}function y(){f.clientId=this.value,t(0,f)}function k(E){n.$$.not_equal(f.clientSecret,E)&&(f.clientSecret=E,t(0,f))}function $(E){f=E,t(0,f)}function C(E){le[E?"unshift":"push"](()=>{d=E,t(5,d)})}function T(E){Ve.call(this,n,E)}function M(E){Ve.call(this,n,E)}function D(E){Ve.call(this,n,E)}return n.$$set=E=>{e=Ke(Ke({},e),Wn(E)),t(7,l=wt(e,s)),"key"in E&&t(1,r=E.key),"title"in E&&t(2,a=E.title),"icon"in E&&t(3,u=E.icon),"config"in E&&t(0,f=E.config),"optionsComponent"in E&&t(4,c=E.optionsComponent)},n.$$.update=()=>{n.$$.dirty&2050&&t(6,i=!W.isEmpty(W.getNestedVal(o,r))),n.$$.dirty&3&&(f.enabled||ks(r))},[f,r,a,u,c,d,i,l,h,m,b,o,g,y,k,$,C,T,M,D]}class WD extends ye{constructor(e){super(),ve(this,e,UD,BD,be,{key:1,title:2,icon:3,config:0,optionsComponent:4,expand:8,collapse:9,collapseSiblings:10})}get expand(){return this.$$.ctx[8]}get collapse(){return this.$$.ctx[9]}get collapseSiblings(){return this.$$.ctx[10]}}function vh(n,e,t){const i=n.slice();return i[16]=e[t][0],i[17]=e[t][1],i[18]=e,i[19]=t,i}function YD(n){let e,t,i,s,l,o,r,a,u,f,c,d,h=Object.entries(_l),m=[];for(let y=0;yP(m[y],1,1,()=>{m[y]=null});let g=n[4]&&kh(n);return{c(){e=v("div");for(let y=0;yn[10](e,t),o=()=>n[10](null,t);function r(u){n[11](u,n[16])}let a={single:!0,key:n[16],title:n[17].title,icon:n[17].icon||"ri-fingerprint-line",optionsComponent:n[17].optionsComponent};return n[0][n[16]]!==void 0&&(a.config=n[0][n[16]]),e=new WD({props:a}),l(),le.push(()=>_e(e,"config",r)),{c(){j(e.$$.fragment)},m(u,f){R(e,u,f),s=!0},p(u,f){n=u,t!==n[16]&&(o(),t=n[16],l());const c={};!i&&f&1&&(i=!0,c.config=n[0][n[16]],ke(()=>i=!1)),e.$set(c)},i(u){s||(A(e.$$.fragment,u),s=!0)},o(u){P(e.$$.fragment,u),s=!1},d(u){o(),H(e,u)}}}function kh(n){let e,t,i,s;return{c(){e=v("button"),t=v("span"),t.textContent="Cancel",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary btn-hint"),e.disabled=n[3]},m(l,o){S(l,e,o),_(e,t),i||(s=K(e,"click",n[12]),i=!0)},p(l,o){o&8&&(e.disabled=l[3])},d(l){l&&w(e),i=!1,s()}}}function JD(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g;const y=[KD,YD],k=[];function $(C,T){return C[2]?0:1}return d=$(n),h=k[d]=y[d](n),{c(){e=v("header"),t=v("nav"),i=v("div"),i.textContent="Settings",s=O(),l=v("div"),o=B(n[5]),r=O(),a=v("div"),u=v("form"),f=v("h6"),f.textContent="Manage the allowed users sign-in/sign-up methods.",c=O(),h.c(),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(f,"class","m-b-base"),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m(C,T){S(C,e,T),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),S(C,r,T),S(C,a,T),_(a,u),_(u,f),_(u,c),k[d].m(u,null),m=!0,b||(g=K(u,"submit",ut(n[6])),b=!0)},p(C,T){(!m||T&32)&&ae(o,C[5]);let M=d;d=$(C),d===M?k[d].p(C,T):(pe(),P(k[M],1,1,()=>{k[M]=null}),he(),h=k[d],h?h.p(C,T):(h=k[d]=y[d](C),h.c()),A(h,1),h.m(u,null))},i(C){m||(A(h),m=!0)},o(C){P(h),m=!1},d(C){C&&w(e),C&&w(r),C&&w(a),k[d].d(),b=!1,g()}}}function ZD(n){let e,t,i,s;return e=new Ci({}),i=new pn({props:{$$slots:{default:[JD]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(l,o){R(e,l,o),S(l,t,o),R(i,l,o),s=!0},p(l,[o]){const r={};o&1048639&&(r.$$scope={dirty:o,ctx:l}),i.$set(r)},i(l){s||(A(e.$$.fragment,l),A(i.$$.fragment,l),s=!0)},o(l){P(e.$$.fragment,l),P(i.$$.fragment,l),s=!1},d(l){H(e,l),l&&w(t),H(i,l)}}}function GD(n,e,t){let i,s,l;Ze(n,mt,$=>t(5,l=$)),Ht(mt,l="Auth providers",l);let o={},r={},a={},u=!1,f=!1;c();async function c(){t(2,u=!0);try{const $=await de.settings.getAll()||{};h($)}catch($){de.errorResponseHandler($)}t(2,u=!1)}async function d(){var $;if(!(f||!s)){t(3,f=!0);try{const C=await de.settings.update(W.filterRedactedProps(a));h(C),Fn({}),($=o[Object.keys(o)[0]])==null||$.collapseSiblings(),Lt("Successfully updated auth providers.")}catch(C){de.errorResponseHandler(C)}t(3,f=!1)}}function h($){$=$||{},t(0,a={});for(const C in _l)t(0,a[C]=Object.assign({enabled:!1},$[C]),a);t(8,r=JSON.parse(JSON.stringify(a)))}function m(){t(0,a=JSON.parse(JSON.stringify(r||{})))}function b($,C){le[$?"unshift":"push"](()=>{o[C]=$,t(1,o)})}function g($,C){n.$$.not_equal(a[C],$)&&(a[C]=$,t(0,a))}const y=()=>m(),k=()=>d();return n.$$.update=()=>{n.$$.dirty&256&&t(9,i=JSON.stringify(r)),n.$$.dirty&513&&t(4,s=i!=JSON.stringify(a))},[a,o,u,f,s,l,d,m,r,i,b,g,y,k]}class XD extends ye{constructor(e){super(),ve(this,e,GD,ZD,be,{})}}function wh(n,e,t){const i=n.slice();return i[16]=e[t],i[17]=e,i[18]=t,i}function QD(n){let e=[],t=new Map,i,s,l,o,r,a,u,f,c,d,h,m=n[5];const b=y=>y[16].key;for(let y=0;y({19:l}),({uniqueId:l})=>l?524288:0]},$$scope:{ctx:e}}}),{key:n,first:null,c(){t=Ae(),j(i.$$.fragment),this.first=t},m(l,o){S(l,t,o),R(i,l,o),s=!0},p(l,o){e=l;const r={};o&1572865&&(r.$$scope={dirty:o,ctx:e}),i.$set(r)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){P(i.$$.fragment,l),s=!1},d(l){l&&w(t),H(i,l)}}}function $h(n){let e,t,i,s;return{c(){e=v("button"),t=v("span"),t.textContent="Cancel",p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary btn-hint"),e.disabled=n[2]},m(l,o){S(l,e,o),_(e,t),i||(s=K(e,"click",n[12]),i=!0)},p(l,o){o&4&&(e.disabled=l[2])},d(l){l&&w(e),i=!1,s()}}}function tA(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g;const y=[xD,QD],k=[];function $(C,T){return C[1]?0:1}return d=$(n),h=k[d]=y[d](n),{c(){e=v("header"),t=v("nav"),i=v("div"),i.textContent="Settings",s=O(),l=v("div"),o=B(n[4]),r=O(),a=v("div"),u=v("form"),f=v("div"),f.innerHTML="

    Adjust common token options.

    ",c=O(),h.c(),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(f,"class","content m-b-sm txt-xl"),p(u,"class","panel"),p(u,"autocomplete","off"),p(a,"class","wrapper")},m(C,T){S(C,e,T),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),S(C,r,T),S(C,a,T),_(a,u),_(u,f),_(u,c),k[d].m(u,null),m=!0,b||(g=K(u,"submit",ut(n[6])),b=!0)},p(C,T){(!m||T&16)&&ae(o,C[4]);let M=d;d=$(C),d===M?k[d].p(C,T):(pe(),P(k[M],1,1,()=>{k[M]=null}),he(),h=k[d],h?h.p(C,T):(h=k[d]=y[d](C),h.c()),A(h,1),h.m(u,null))},i(C){m||(A(h),m=!0)},o(C){P(h),m=!1},d(C){C&&w(e),C&&w(r),C&&w(a),k[d].d(),b=!1,g()}}}function nA(n){let e,t,i,s;return e=new Ci({}),i=new pn({props:{$$slots:{default:[tA]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(l,o){R(e,l,o),S(l,t,o),R(i,l,o),s=!0},p(l,[o]){const r={};o&1048607&&(r.$$scope={dirty:o,ctx:l}),i.$set(r)},i(l){s||(A(e.$$.fragment,l),A(i.$$.fragment,l),s=!0)},o(l){P(e.$$.fragment,l),P(i.$$.fragment,l),s=!1},d(l){H(e,l),l&&w(t),H(i,l)}}}function iA(n,e,t){let i,s,l;Ze(n,mt,$=>t(4,l=$));const o=[{key:"recordAuthToken",label:"Auth record authentication token"},{key:"recordVerificationToken",label:"Auth record email verification token"},{key:"recordPasswordResetToken",label:"Auth record password reset token"},{key:"recordEmailChangeToken",label:"Auth record email change token"},{key:"adminAuthToken",label:"Admins auth token"},{key:"adminPasswordResetToken",label:"Admins password reset token"}];Ht(mt,l="Token options",l);let r={},a={},u=!1,f=!1;c();async function c(){t(1,u=!0);try{const $=await de.settings.getAll()||{};h($)}catch($){de.errorResponseHandler($)}t(1,u=!1)}async function d(){if(!(f||!s)){t(2,f=!0);try{const $=await de.settings.update(W.filterRedactedProps(a));h($),Lt("Successfully saved tokens options.")}catch($){de.errorResponseHandler($)}t(2,f=!1)}}function h($){var C;$=$||{},t(0,a={});for(const T of o)t(0,a[T.key]={duration:((C=$[T.key])==null?void 0:C.duration)||0},a);t(8,r=JSON.parse(JSON.stringify(a)))}function m(){t(0,a=JSON.parse(JSON.stringify(r||{})))}function b($){a[$.key].duration=rt(this.value),t(0,a)}const g=$=>{a[$.key].secret?(delete a[$.key].secret,t(0,a)):t(0,a[$.key].secret=W.randomString(50),a)},y=()=>m(),k=()=>d();return n.$$.update=()=>{n.$$.dirty&256&&t(9,i=JSON.stringify(r)),n.$$.dirty&513&&t(3,s=i!=JSON.stringify(a))},[a,u,f,s,l,o,d,m,r,i,b,g,y,k]}class sA extends ye{constructor(e){super(),ve(this,e,iA,nA,be,{})}}function lA(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m;return o=new I_({props:{content:n[2]}}),{c(){e=v("div"),e.innerHTML=`

    Below you'll find your current collections configuration that you could import in - another PocketBase environment.

    `,t=O(),i=v("div"),s=v("button"),s.innerHTML='Copy',l=O(),j(o.$$.fragment),r=O(),a=v("div"),u=v("div"),f=O(),c=v("button"),c.innerHTML=` - Download as JSON`,p(e,"class","content txt-xl m-b-base"),p(s,"type","button"),p(s,"class","btn btn-sm btn-secondary fade copy-schema svelte-jm5c4z"),p(i,"tabindex","0"),p(i,"class","export-preview svelte-jm5c4z"),p(u,"class","flex-fill"),p(c,"type","button"),p(c,"class","btn btn-expanded"),p(a,"class","flex m-t-base")},m(b,g){S(b,e,g),S(b,t,g),S(b,i,g),_(i,s),_(i,l),R(o,i,null),n[8](i),S(b,r,g),S(b,a,g),_(a,u),_(a,f),_(a,c),d=!0,h||(m=[K(s,"click",n[7]),K(i,"keydown",n[9]),K(c,"click",n[10])],h=!0)},p(b,g){const y={};g&4&&(y.content=b[2]),o.$set(y)},i(b){d||(A(o.$$.fragment,b),d=!0)},o(b){P(o.$$.fragment,b),d=!1},d(b){b&&w(e),b&&w(t),b&&w(i),H(o),n[8](null),b&&w(r),b&&w(a),h=!1,Pe(m)}}}function oA(n){let e;return{c(){e=v("div"),p(e,"class","loader")},m(t,i){S(t,e,i)},p:te,i:te,o:te,d(t){t&&w(e)}}}function rA(n){let e,t,i,s,l,o,r,a,u,f,c,d;const h=[oA,lA],m=[];function b(g,y){return g[1]?0:1}return f=b(n),c=m[f]=h[f](n),{c(){e=v("header"),t=v("nav"),i=v("div"),i.textContent="Settings",s=O(),l=v("div"),o=B(n[3]),r=O(),a=v("div"),u=v("div"),c.c(),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(u,"class","panel"),p(a,"class","wrapper")},m(g,y){S(g,e,y),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),S(g,r,y),S(g,a,y),_(a,u),m[f].m(u,null),d=!0},p(g,y){(!d||y&8)&&ae(o,g[3]);let k=f;f=b(g),f===k?m[f].p(g,y):(pe(),P(m[k],1,1,()=>{m[k]=null}),he(),c=m[f],c?c.p(g,y):(c=m[f]=h[f](g),c.c()),A(c,1),c.m(u,null))},i(g){d||(A(c),d=!0)},o(g){P(c),d=!1},d(g){g&&w(e),g&&w(r),g&&w(a),m[f].d()}}}function aA(n){let e,t,i,s;return e=new Ci({}),i=new pn({props:{$$slots:{default:[rA]},$$scope:{ctx:n}}}),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment)},m(l,o){R(e,l,o),S(l,t,o),R(i,l,o),s=!0},p(l,[o]){const r={};o&8207&&(r.$$scope={dirty:o,ctx:l}),i.$set(r)},i(l){s||(A(e.$$.fragment,l),A(i.$$.fragment,l),s=!0)},o(l){P(e.$$.fragment,l),P(i.$$.fragment,l),s=!1},d(l){H(e,l),l&&w(t),H(i,l)}}}function uA(n,e,t){let i,s;Ze(n,mt,g=>t(3,s=g)),Ht(mt,s="Export collections",s);const l="export_"+W.randomString(5);let o,r=[],a=!1;u();async function u(){t(1,a=!0);try{t(6,r=await de.collections.getFullList(100,{$cancelKey:l}));for(let g of r)delete g.created,delete g.updated}catch(g){de.errorResponseHandler(g)}t(1,a=!1)}function f(){W.downloadJson(r,"pb_schema")}function c(){W.copyToClipboard(i),Dg("The configuration was copied to your clipboard!",3e3)}const d=()=>c();function h(g){le[g?"unshift":"push"](()=>{o=g,t(0,o)})}const m=g=>{if(g.ctrlKey&&g.code==="KeyA"){g.preventDefault();const y=window.getSelection(),k=document.createRange();k.selectNodeContents(o),y.removeAllRanges(),y.addRange(k)}},b=()=>f();return n.$$.update=()=>{n.$$.dirty&64&&t(2,i=JSON.stringify(r,null,4))},[o,a,i,s,f,c,r,d,h,m,b]}class fA extends ye{constructor(e){super(),ve(this,e,uA,aA,be,{})}}function Ch(n,e,t){const i=n.slice();return i[14]=e[t],i}function Th(n,e,t){const i=n.slice();return i[17]=e[t][0],i[18]=e[t][1],i}function Mh(n,e,t){const i=n.slice();return i[14]=e[t],i}function Oh(n,e,t){const i=n.slice();return i[17]=e[t][0],i[23]=e[t][1],i}function Dh(n,e,t){const i=n.slice();return i[14]=e[t],i}function Ah(n,e,t){const i=n.slice();return i[17]=e[t][0],i[18]=e[t][1],i}function Eh(n,e,t){const i=n.slice();return i[30]=e[t],i}function cA(n){let e,t,i,s,l=n[1].name+"",o,r=n[9]&&Ih(),a=n[0].name!==n[1].name&&Ph(n);return{c(){e=v("div"),r&&r.c(),t=O(),a&&a.c(),i=O(),s=v("strong"),o=B(l),p(s,"class","txt"),p(e,"class","inline-flex fleg-gap-5")},m(u,f){S(u,e,f),r&&r.m(e,null),_(e,t),a&&a.m(e,null),_(e,i),_(e,s),_(s,o)},p(u,f){u[9]?r||(r=Ih(),r.c(),r.m(e,t)):r&&(r.d(1),r=null),u[0].name!==u[1].name?a?a.p(u,f):(a=Ph(u),a.c(),a.m(e,i)):a&&(a.d(1),a=null),f[0]&2&&l!==(l=u[1].name+"")&&ae(o,l)},d(u){u&&w(e),r&&r.d(),a&&a.d()}}}function dA(n){var o;let e,t,i,s=((o=n[0])==null?void 0:o.name)+"",l;return{c(){e=v("span"),e.textContent="Deleted",t=O(),i=v("strong"),l=B(s),p(e,"class","label label-danger")},m(r,a){S(r,e,a),S(r,t,a),S(r,i,a),_(i,l)},p(r,a){var u;a[0]&1&&s!==(s=((u=r[0])==null?void 0:u.name)+"")&&ae(l,s)},d(r){r&&w(e),r&&w(t),r&&w(i)}}}function pA(n){var o;let e,t,i,s=((o=n[1])==null?void 0:o.name)+"",l;return{c(){e=v("span"),e.textContent="Added",t=O(),i=v("strong"),l=B(s),p(e,"class","label label-success")},m(r,a){S(r,e,a),S(r,t,a),S(r,i,a),_(i,l)},p(r,a){var u;a[0]&2&&s!==(s=((u=r[1])==null?void 0:u.name)+"")&&ae(l,s)},d(r){r&&w(e),r&&w(t),r&&w(i)}}}function Ih(n){let e;return{c(){e=v("span"),e.textContent="Changed",p(e,"class","label label-warning")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Ph(n){let e,t=n[0].name+"",i,s,l;return{c(){e=v("strong"),i=B(t),s=O(),l=v("i"),p(e,"class","txt-strikethrough txt-hint"),p(l,"class","ri-arrow-right-line txt-sm")},m(o,r){S(o,e,r),_(e,i),S(o,s,r),S(o,l,r)},p(o,r){r[0]&1&&t!==(t=o[0].name+"")&&ae(i,t)},d(o){o&&w(e),o&&w(s),o&&w(l)}}}function Lh(n){var g,y;let e,t,i,s=n[30]+"",l,o,r,a,u=n[12]((g=n[0])==null?void 0:g[n[30]])+"",f,c,d,h,m=n[12]((y=n[1])==null?void 0:y[n[30]])+"",b;return{c(){var k,$,C,T,M,D;e=v("tr"),t=v("td"),i=v("span"),l=B(s),o=O(),r=v("td"),a=v("pre"),f=B(u),c=O(),d=v("td"),h=v("pre"),b=B(m),p(t,"class","min-width svelte-lmkr38"),p(a,"class","txt"),p(r,"class","svelte-lmkr38"),ne(r,"changed-old-col",!n[10]&&xt((k=n[0])==null?void 0:k[n[30]],($=n[1])==null?void 0:$[n[30]])),ne(r,"changed-none-col",n[10]),p(h,"class","txt"),p(d,"class","svelte-lmkr38"),ne(d,"changed-new-col",!n[5]&&xt((C=n[0])==null?void 0:C[n[30]],(T=n[1])==null?void 0:T[n[30]])),ne(d,"changed-none-col",n[5]),p(e,"class","svelte-lmkr38"),ne(e,"txt-primary",xt((M=n[0])==null?void 0:M[n[30]],(D=n[1])==null?void 0:D[n[30]]))},m(k,$){S(k,e,$),_(e,t),_(t,i),_(i,l),_(e,o),_(e,r),_(r,a),_(a,f),_(e,c),_(e,d),_(d,h),_(h,b)},p(k,$){var C,T,M,D,E,I,L,F;$[0]&1&&u!==(u=k[12]((C=k[0])==null?void 0:C[k[30]])+"")&&ae(f,u),$[0]&3075&&ne(r,"changed-old-col",!k[10]&&xt((T=k[0])==null?void 0:T[k[30]],(M=k[1])==null?void 0:M[k[30]])),$[0]&1024&&ne(r,"changed-none-col",k[10]),$[0]&2&&m!==(m=k[12]((D=k[1])==null?void 0:D[k[30]])+"")&&ae(b,m),$[0]&2083&&ne(d,"changed-new-col",!k[5]&&xt((E=k[0])==null?void 0:E[k[30]],(I=k[1])==null?void 0:I[k[30]])),$[0]&32&&ne(d,"changed-none-col",k[5]),$[0]&2051&&ne(e,"txt-primary",xt((L=k[0])==null?void 0:L[k[30]],(F=k[1])==null?void 0:F[k[30]]))},d(k){k&&w(e)}}}function Nh(n){let e,t=n[6],i=[];for(let s=0;sProps - Old - New`,l=O(),o=v("tbody");for(let C=0;C!["schema","created","updated"].includes(y));function b(){t(4,f=Array.isArray(r==null?void 0:r.schema)?r==null?void 0:r.schema.concat():[]),a||t(4,f=f.concat(u.filter(y=>!f.find(k=>y.id==k.id))))}function g(y){return typeof y>"u"?"":W.isObject(y)?JSON.stringify(y,null,4):y}return n.$$set=y=>{"collectionA"in y&&t(0,o=y.collectionA),"collectionB"in y&&t(1,r=y.collectionB),"deleteMissing"in y&&t(2,a=y.deleteMissing)},n.$$.update=()=>{n.$$.dirty[0]&2&&t(5,i=!(r!=null&&r.id)&&!(r!=null&&r.name)),n.$$.dirty[0]&33&&t(10,s=!i&&!(o!=null&&o.id)),n.$$.dirty[0]&1&&t(3,u=Array.isArray(o==null?void 0:o.schema)?o==null?void 0:o.schema.concat():[]),n.$$.dirty[0]&7&&(typeof(o==null?void 0:o.schema)<"u"||typeof(r==null?void 0:r.schema)<"u"||typeof a<"u")&&b(),n.$$.dirty[0]&24&&t(6,c=u.filter(y=>!f.find(k=>y.id==k.id))),n.$$.dirty[0]&24&&t(7,d=f.filter(y=>u.find(k=>k.id==y.id))),n.$$.dirty[0]&24&&t(8,h=f.filter(y=>!u.find(k=>k.id==y.id))),n.$$.dirty[0]&7&&t(9,l=W.hasCollectionChanges(o,r,a))},[o,r,a,u,f,i,c,d,h,l,s,m,g]}class gA extends ye{constructor(e){super(),ve(this,e,mA,hA,be,{collectionA:0,collectionB:1,deleteMissing:2},null,[-1,-1])}}function Bh(n,e,t){const i=n.slice();return i[17]=e[t],i}function Uh(n){let e,t;return e=new gA({props:{collectionA:n[17].old,collectionB:n[17].new,deleteMissing:n[3]}}),{c(){j(e.$$.fragment)},m(i,s){R(e,i,s),t=!0},p(i,s){const l={};s&4&&(l.collectionA=i[17].old),s&4&&(l.collectionB=i[17].new),s&8&&(l.deleteMissing=i[3]),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){H(e,i)}}}function _A(n){let e,t,i=n[2],s=[];for(let o=0;oP(s[o],1,1,()=>{s[o]=null});return{c(){for(let o=0;o{m()}):m()}async function m(){if(!u){t(4,u=!0);try{await de.collections.import(o,a),Lt("Successfully imported collections configuration."),i("submit")}catch(C){de.errorResponseHandler(C)}t(4,u=!1),c()}}const b=()=>h(),g=()=>!u;function y(C){le[C?"unshift":"push"](()=>{s=C,t(1,s)})}function k(C){Ve.call(this,n,C)}function $(C){Ve.call(this,n,C)}return n.$$.update=()=>{n.$$.dirty&384&&Array.isArray(l)&&Array.isArray(o)&&d()},[c,s,r,a,u,h,f,l,o,b,g,y,k,$]}class wA extends ye{constructor(e){super(),ve(this,e,kA,yA,be,{show:6,hide:0})}get show(){return this.$$.ctx[6]}get hide(){return this.$$.ctx[0]}}function Wh(n,e,t){const i=n.slice();return i[32]=e[t],i}function Yh(n,e,t){const i=n.slice();return i[35]=e[t],i}function Kh(n,e,t){const i=n.slice();return i[32]=e[t],i}function SA(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k,$,C,T,M,D;a=new ge({props:{class:"form-field "+(n[6]?"":"field-error"),name:"collections",$$slots:{default:[CA,({uniqueId:z})=>({40:z}),({uniqueId:z})=>[0,z?512:0]]},$$scope:{ctx:n}}});let E=!1,I=n[6]&&n[1].length&&!n[7]&&Zh(),L=n[6]&&n[1].length&&n[7]&&Gh(n),F=n[13].length&&rm(n),q=!!n[0]&&am(n);return{c(){e=v("input"),t=O(),i=v("div"),s=v("p"),l=B(`Paste below the collections configuration you want to import or - `),o=v("button"),o.innerHTML='Load from JSON file',r=O(),j(a.$$.fragment),u=O(),f=O(),I&&I.c(),c=O(),L&&L.c(),d=O(),F&&F.c(),h=O(),m=v("div"),q&&q.c(),b=O(),g=v("div"),y=O(),k=v("button"),$=v("span"),$.textContent="Review",p(e,"type","file"),p(e,"class","hidden"),p(e,"accept",".json"),p(o,"class","btn btn-outline btn-sm m-l-5"),ne(o,"btn-loading",n[12]),p(i,"class","content txt-xl m-b-base"),p(g,"class","flex-fill"),p($,"class","txt"),p(k,"type","button"),p(k,"class","btn btn-expanded btn-warning m-l-auto"),k.disabled=C=!n[14],p(m,"class","flex m-t-base")},m(z,J){S(z,e,J),n[19](e),S(z,t,J),S(z,i,J),_(i,s),_(s,l),_(s,o),S(z,r,J),R(a,z,J),S(z,u,J),S(z,f,J),I&&I.m(z,J),S(z,c,J),L&&L.m(z,J),S(z,d,J),F&&F.m(z,J),S(z,h,J),S(z,m,J),q&&q.m(m,null),_(m,b),_(m,g),_(m,y),_(m,k),_(k,$),T=!0,M||(D=[K(e,"change",n[20]),K(o,"click",n[21]),K(k,"click",n[26])],M=!0)},p(z,J){(!T||J[0]&4096)&&ne(o,"btn-loading",z[12]);const G={};J[0]&64&&(G.class="form-field "+(z[6]?"":"field-error")),J[0]&65|J[1]&1536&&(G.$$scope={dirty:J,ctx:z}),a.$set(G),z[6]&&z[1].length&&!z[7]?I||(I=Zh(),I.c(),I.m(c.parentNode,c)):I&&(I.d(1),I=null),z[6]&&z[1].length&&z[7]?L?L.p(z,J):(L=Gh(z),L.c(),L.m(d.parentNode,d)):L&&(L.d(1),L=null),z[13].length?F?F.p(z,J):(F=rm(z),F.c(),F.m(h.parentNode,h)):F&&(F.d(1),F=null),z[0]?q?q.p(z,J):(q=am(z),q.c(),q.m(m,b)):q&&(q.d(1),q=null),(!T||J[0]&16384&&C!==(C=!z[14]))&&(k.disabled=C)},i(z){T||(A(a.$$.fragment,z),A(E),T=!0)},o(z){P(a.$$.fragment,z),P(E),T=!1},d(z){z&&w(e),n[19](null),z&&w(t),z&&w(i),z&&w(r),H(a,z),z&&w(u),z&&w(f),I&&I.d(z),z&&w(c),L&&L.d(z),z&&w(d),F&&F.d(z),z&&w(h),z&&w(m),q&&q.d(),M=!1,Pe(D)}}}function $A(n){let e;return{c(){e=v("div"),p(e,"class","loader")},m(t,i){S(t,e,i)},p:te,i:te,o:te,d(t){t&&w(e)}}}function Jh(n){let e;return{c(){e=v("div"),e.textContent="Invalid collections configuration.",p(e,"class","help-block help-block-error")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function CA(n){let e,t,i,s,l,o,r,a,u,f,c=!!n[0]&&!n[6]&&Jh();return{c(){e=v("label"),t=B("Collections"),s=O(),l=v("textarea"),r=O(),c&&c.c(),a=Ae(),p(e,"for",i=n[40]),p(e,"class","p-b-10"),p(l,"id",o=n[40]),p(l,"class","code"),p(l,"spellcheck","false"),p(l,"rows","15"),l.required=!0},m(d,h){S(d,e,h),_(e,t),S(d,s,h),S(d,l,h),ce(l,n[0]),S(d,r,h),c&&c.m(d,h),S(d,a,h),u||(f=K(l,"input",n[22]),u=!0)},p(d,h){h[1]&512&&i!==(i=d[40])&&p(e,"for",i),h[1]&512&&o!==(o=d[40])&&p(l,"id",o),h[0]&1&&ce(l,d[0]),!!d[0]&&!d[6]?c||(c=Jh(),c.c(),c.m(a.parentNode,a)):c&&(c.d(1),c=null)},d(d){d&&w(e),d&&w(s),d&&w(l),d&&w(r),c&&c.d(d),d&&w(a),u=!1,f()}}}function Zh(n){let e;return{c(){e=v("div"),e.innerHTML=`
    -
    Your collections configuration is already up-to-date!
    `,p(e,"class","alert alert-info")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function Gh(n){let e,t,i,s,l,o=n[9].length&&Xh(n),r=n[4].length&&em(n),a=n[8].length&&sm(n);return{c(){e=v("h5"),e.textContent="Detected changes",t=O(),i=v("div"),o&&o.c(),s=O(),r&&r.c(),l=O(),a&&a.c(),p(e,"class","section-title"),p(i,"class","list")},m(u,f){S(u,e,f),S(u,t,f),S(u,i,f),o&&o.m(i,null),_(i,s),r&&r.m(i,null),_(i,l),a&&a.m(i,null)},p(u,f){u[9].length?o?o.p(u,f):(o=Xh(u),o.c(),o.m(i,s)):o&&(o.d(1),o=null),u[4].length?r?r.p(u,f):(r=em(u),r.c(),r.m(i,l)):r&&(r.d(1),r=null),u[8].length?a?a.p(u,f):(a=sm(u),a.c(),a.m(i,null)):a&&(a.d(1),a=null)},d(u){u&&w(e),u&&w(t),u&&w(i),o&&o.d(),r&&r.d(),a&&a.d()}}}function Xh(n){let e=[],t=new Map,i,s=n[9];const l=o=>o[32].id;for(let o=0;oo[35].old.id+o[35].new.id;for(let o=0;oo[32].id;for(let o=0;o',i=O(),s=v("div"),s.innerHTML=`Some of the imported collections shares the same name and/or fields but are - imported with different IDs. You can replace them in the import if you want - to.`,l=O(),o=v("button"),o.innerHTML='Replace with original ids',p(t,"class","icon"),p(s,"class","content"),p(o,"type","button"),p(o,"class","btn btn-warning btn-sm btn-outline"),p(e,"class","alert alert-warning m-t-base")},m(u,f){S(u,e,f),_(e,t),_(e,i),_(e,s),_(e,l),_(e,o),r||(a=K(o,"click",n[24]),r=!0)},p:te,d(u){u&&w(e),r=!1,a()}}}function am(n){let e,t,i;return{c(){e=v("button"),e.innerHTML='Clear',p(e,"type","button"),p(e,"class","btn btn-secondary link-hint")},m(s,l){S(s,e,l),t||(i=K(e,"click",n[25]),t=!0)},p:te,d(s){s&&w(e),t=!1,i()}}}function TA(n){let e,t,i,s,l,o,r,a,u,f,c,d;const h=[$A,SA],m=[];function b(g,y){return g[5]?0:1}return f=b(n),c=m[f]=h[f](n),{c(){e=v("header"),t=v("nav"),i=v("div"),i.textContent="Settings",s=O(),l=v("div"),o=B(n[15]),r=O(),a=v("div"),u=v("div"),c.c(),p(i,"class","breadcrumb-item"),p(l,"class","breadcrumb-item"),p(t,"class","breadcrumbs"),p(e,"class","page-header"),p(u,"class","panel"),p(a,"class","wrapper")},m(g,y){S(g,e,y),_(e,t),_(t,i),_(t,s),_(t,l),_(l,o),S(g,r,y),S(g,a,y),_(a,u),m[f].m(u,null),d=!0},p(g,y){(!d||y[0]&32768)&&ae(o,g[15]);let k=f;f=b(g),f===k?m[f].p(g,y):(pe(),P(m[k],1,1,()=>{m[k]=null}),he(),c=m[f],c?c.p(g,y):(c=m[f]=h[f](g),c.c()),A(c,1),c.m(u,null))},i(g){d||(A(c),d=!0)},o(g){P(c),d=!1},d(g){g&&w(e),g&&w(r),g&&w(a),m[f].d()}}}function MA(n){let e,t,i,s,l,o;e=new Ci({}),i=new pn({props:{$$slots:{default:[TA]},$$scope:{ctx:n}}});let r={};return l=new wA({props:r}),n[27](l),l.$on("submit",n[28]),{c(){j(e.$$.fragment),t=O(),j(i.$$.fragment),s=O(),j(l.$$.fragment)},m(a,u){R(e,a,u),S(a,t,u),R(i,a,u),S(a,s,u),R(l,a,u),o=!0},p(a,u){const f={};u[0]&65535|u[1]&1024&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};l.$set(c)},i(a){o||(A(e.$$.fragment,a),A(i.$$.fragment,a),A(l.$$.fragment,a),o=!0)},o(a){P(e.$$.fragment,a),P(i.$$.fragment,a),P(l.$$.fragment,a),o=!1},d(a){H(e,a),a&&w(t),H(i,a),a&&w(s),n[27](null),H(l,a)}}}function OA(n,e,t){let i,s,l,o,r,a,u;Ze(n,mt,Y=>t(15,u=Y)),Ht(mt,u="Import collections",u);let f,c,d="",h=!1,m=[],b=[],g=!0,y=[],k=!1;$();async function $(){t(5,k=!0);try{t(2,b=await de.collections.getFullList(200));for(let Y of b)delete Y.created,delete Y.updated}catch(Y){de.errorResponseHandler(Y)}t(5,k=!1)}function C(){if(t(4,y=[]),!!i)for(let Y of m){const x=W.findByKey(b,"id",Y.id);!(x!=null&&x.id)||!W.hasCollectionChanges(x,Y,g)||y.push({new:Y,old:x})}}function T(){t(1,m=[]);try{t(1,m=JSON.parse(d))}catch{}Array.isArray(m)?t(1,m=W.filterDuplicatesByKey(m)):t(1,m=[]);for(let Y of m)delete Y.created,delete Y.updated,Y.schema=W.filterDuplicatesByKey(Y.schema)}function M(){var Y,x;for(let U of m){const re=W.findByKey(b,"name",U.name)||W.findByKey(b,"id",U.id);if(!re)continue;const Re=U.id,Ne=re.id;U.id=Ne;const Le=Array.isArray(re.schema)?re.schema:[],Fe=Array.isArray(U.schema)?U.schema:[];for(const me of Fe){const Se=W.findByKey(Le,"name",me.name);Se&&Se.id&&(me.id=Se.id)}for(let me of m)if(!!Array.isArray(me.schema))for(let Se of me.schema)((Y=Se.options)==null?void 0:Y.collectionId)&&((x=Se.options)==null?void 0:x.collectionId)===Re&&(Se.options.collectionId=Ne)}t(0,d=JSON.stringify(m,null,4))}function D(Y){t(12,h=!0);const x=new FileReader;x.onload=async U=>{t(12,h=!1),t(10,f.value="",f),t(0,d=U.target.result),await Tn(),m.length||(ul("Invalid collections configuration."),E())},x.onerror=U=>{console.warn(U),ul("Failed to load the imported JSON."),t(12,h=!1),t(10,f.value="",f)},x.readAsText(Y)}function E(){t(0,d=""),t(10,f.value="",f),Fn({})}function I(Y){le[Y?"unshift":"push"](()=>{f=Y,t(10,f)})}const L=()=>{f.files.length&&D(f.files[0])},F=()=>{f.click()};function q(){d=this.value,t(0,d)}function z(){g=this.checked,t(3,g)}const J=()=>M(),G=()=>E(),X=()=>c==null?void 0:c.show(b,m,g);function Q(Y){le[Y?"unshift":"push"](()=>{c=Y,t(11,c)})}const ie=()=>E();return n.$$.update=()=>{n.$$.dirty[0]&1&&typeof d<"u"&&T(),n.$$.dirty[0]&3&&t(6,i=!!d&&m.length&&m.length===m.filter(Y=>!!Y.id&&!!Y.name).length),n.$$.dirty[0]&78&&t(9,s=b.filter(Y=>i&&g&&!W.findByKey(m,"id",Y.id))),n.$$.dirty[0]&70&&t(8,l=m.filter(Y=>i&&!W.findByKey(b,"id",Y.id))),n.$$.dirty[0]&10&&(typeof m<"u"||typeof g<"u")&&C(),n.$$.dirty[0]&785&&t(7,o=!!d&&(s.length||l.length||y.length)),n.$$.dirty[0]&224&&t(14,r=!k&&i&&o),n.$$.dirty[0]&6&&t(13,a=m.filter(Y=>{let x=W.findByKey(b,"name",Y.name)||W.findByKey(b,"id",Y.id);if(!x)return!1;if(x.id!=Y.id)return!0;const U=Array.isArray(x.schema)?x.schema:[],re=Array.isArray(Y.schema)?Y.schema:[];for(const Re of re){if(W.findByKey(U,"id",Re.id))continue;const Le=W.findByKey(U,"name",Re.name);if(Le&&Re.id!=Le.id)return!0}return!1}))},[d,m,b,g,y,k,i,o,l,s,f,c,h,a,r,u,M,D,E,I,L,F,q,z,J,G,X,Q,ie]}class DA extends ye{constructor(e){super(),ve(this,e,OA,MA,be,{},null,[-1,-1])}}const Ct=[async n=>{const e=new URLSearchParams(window.location.search);return n.location!=="/"&&e.has("installer")?ki("/"):!0}],AA={"/login":vt({component:TO,conditions:Ct.concat([n=>!de.authStore.isValid]),userData:{showAppSidebar:!1}}),"/request-password-reset":vt({asyncComponent:()=>st(()=>import("./PageAdminRequestPasswordReset.1557a730.js"),[],import.meta.url),conditions:Ct.concat([n=>!de.authStore.isValid]),userData:{showAppSidebar:!1}}),"/confirm-password-reset/:token":vt({asyncComponent:()=>st(()=>import("./PageAdminConfirmPasswordReset.998f445a.js"),[],import.meta.url),conditions:Ct.concat([n=>!de.authStore.isValid]),userData:{showAppSidebar:!1}}),"/collections":vt({component:GM,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/logs":vt({component:DS,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings":vt({component:FO,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/admins":vt({component:yO,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/mail":vt({component:vD,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/storage":vt({component:ND,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/auth-providers":vt({component:XD,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/tokens":vt({component:sA,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/export-collections":vt({component:fA,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/import-collections":vt({component:DA,conditions:Ct.concat([n=>de.authStore.isValid]),userData:{showAppSidebar:!0}}),"/users/confirm-password-reset/:token":vt({asyncComponent:()=>st(()=>import("./PageRecordConfirmPasswordReset.e9685272.js"),[],import.meta.url),conditions:Ct,userData:{showAppSidebar:!1}}),"/auth/confirm-password-reset/:token":vt({asyncComponent:()=>st(()=>import("./PageRecordConfirmPasswordReset.e9685272.js"),[],import.meta.url),conditions:Ct,userData:{showAppSidebar:!1}}),"/users/confirm-verification/:token":vt({asyncComponent:()=>st(()=>import("./PageRecordConfirmVerification.195e3a55.js"),[],import.meta.url),conditions:Ct,userData:{showAppSidebar:!1}}),"/auth/confirm-verification/:token":vt({asyncComponent:()=>st(()=>import("./PageRecordConfirmVerification.195e3a55.js"),[],import.meta.url),conditions:Ct,userData:{showAppSidebar:!1}}),"/users/confirm-email-change/:token":vt({asyncComponent:()=>st(()=>import("./PageRecordConfirmEmailChange.824a9bd8.js"),[],import.meta.url),conditions:Ct,userData:{showAppSidebar:!1}}),"/auth/confirm-email-change/:token":vt({asyncComponent:()=>st(()=>import("./PageRecordConfirmEmailChange.824a9bd8.js"),[],import.meta.url),conditions:Ct,userData:{showAppSidebar:!1}}),"*":vt({component:X1,userData:{showAppSidebar:!1}})};function EA(n,{from:e,to:t},i={}){const s=getComputedStyle(n),l=s.transform==="none"?"":s.transform,[o,r]=s.transformOrigin.split(" ").map(parseFloat),a=e.left+e.width*o/t.width-(t.left+o),u=e.top+e.height*r/t.height-(t.top+r),{delay:f=0,duration:c=h=>Math.sqrt(h)*120,easing:d=zo}=i;return{delay:f,duration:Jt(c)?c(Math.sqrt(a*a+u*u)):c,easing:d,css:(h,m)=>{const b=m*a,g=m*u,y=h+m*e.width/t.width,k=h+m*e.height/t.height;return`transform: ${l} translate(${b}px, ${g}px) scale(${y}, ${k});`}}}function um(n,e,t){const i=n.slice();return i[2]=e[t],i}function IA(n){let e;return{c(){e=v("i"),p(e,"class","ri-alert-line")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function PA(n){let e;return{c(){e=v("i"),p(e,"class","ri-error-warning-line")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function LA(n){let e;return{c(){e=v("i"),p(e,"class","ri-checkbox-circle-line")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function NA(n){let e;return{c(){e=v("i"),p(e,"class","ri-information-line")},m(t,i){S(t,e,i)},d(t){t&&w(e)}}}function fm(n,e){let t,i,s,l,o=e[2].message+"",r,a,u,f,c,d,h=te,m,b,g;function y(T,M){return T[2].type==="info"?NA:T[2].type==="success"?LA:T[2].type==="warning"?PA:IA}let k=y(e),$=k(e);function C(){return e[1](e[2])}return{key:n,first:null,c(){t=v("div"),i=v("div"),$.c(),s=O(),l=v("div"),r=B(o),a=O(),u=v("button"),u.innerHTML='',f=O(),p(i,"class","icon"),p(l,"class","content"),p(u,"type","button"),p(u,"class","close"),p(t,"class","alert txt-break"),ne(t,"alert-info",e[2].type=="info"),ne(t,"alert-success",e[2].type=="success"),ne(t,"alert-danger",e[2].type=="error"),ne(t,"alert-warning",e[2].type=="warning"),this.first=t},m(T,M){S(T,t,M),_(t,i),$.m(i,null),_(t,s),_(t,l),_(l,r),_(t,a),_(t,u),_(t,f),m=!0,b||(g=K(u,"click",ut(C)),b=!0)},p(T,M){e=T,k!==(k=y(e))&&($.d(1),$=k(e),$&&($.c(),$.m(i,null))),(!m||M&1)&&o!==(o=e[2].message+"")&&ae(r,o),(!m||M&1)&&ne(t,"alert-info",e[2].type=="info"),(!m||M&1)&&ne(t,"alert-success",e[2].type=="success"),(!m||M&1)&&ne(t,"alert-danger",e[2].type=="error"),(!m||M&1)&&ne(t,"alert-warning",e[2].type=="warning")},r(){d=t.getBoundingClientRect()},f(){l0(t),h(),vm(t,d)},a(){h(),h=s0(t,d,EA,{duration:150})},i(T){m||(xe(()=>{c||(c=je(t,vo,{duration:150},!0)),c.run(1)}),m=!0)},o(T){c||(c=je(t,vo,{duration:150},!1)),c.run(0),m=!1},d(T){T&&w(t),$.d(),T&&c&&c.end(),b=!1,g()}}}function FA(n){let e,t=[],i=new Map,s,l=n[0];const o=r=>r[2].message;for(let r=0;rt(0,i=l)),[i,l=>Ag(l)]}class HA extends ye{constructor(e){super(),ve(this,e,RA,FA,be,{})}}function jA(n){var s;let e,t=((s=n[1])==null?void 0:s.text)+"",i;return{c(){e=v("h4"),i=B(t),p(e,"class","block center txt-break"),p(e,"slot","header")},m(l,o){S(l,e,o),_(e,i)},p(l,o){var r;o&2&&t!==(t=((r=l[1])==null?void 0:r.text)+"")&&ae(i,t)},d(l){l&&w(e)}}}function qA(n){let e,t,i,s,l,o,r;return{c(){e=v("button"),t=v("span"),t.textContent="No",i=O(),s=v("button"),l=v("span"),l.textContent="Yes",p(t,"class","txt"),e.autofocus=!0,p(e,"type","button"),p(e,"class","btn btn-secondary btn-expanded-sm"),e.disabled=n[2],p(l,"class","txt"),p(s,"type","button"),p(s,"class","btn btn-danger btn-expanded"),s.disabled=n[2],ne(s,"btn-loading",n[2])},m(a,u){S(a,e,u),_(e,t),S(a,i,u),S(a,s,u),_(s,l),e.focus(),o||(r=[K(e,"click",n[4]),K(s,"click",n[5])],o=!0)},p(a,u){u&4&&(e.disabled=a[2]),u&4&&(s.disabled=a[2]),u&4&&ne(s,"btn-loading",a[2])},d(a){a&&w(e),a&&w(i),a&&w(s),o=!1,Pe(r)}}}function VA(n){let e,t,i={class:"confirm-popup hide-content overlay-panel-sm",overlayClose:!n[2],escClose:!n[2],btnClose:!1,popup:!0,$$slots:{footer:[qA],header:[jA]},$$scope:{ctx:n}};return e=new Jn({props:i}),n[6](e),e.$on("hide",n[7]),{c(){j(e.$$.fragment)},m(s,l){R(e,s,l),t=!0},p(s,[l]){const o={};l&4&&(o.overlayClose=!s[2]),l&4&&(o.escClose=!s[2]),l&271&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[6](null),H(e,s)}}}function zA(n,e,t){let i;Ze(n,Ya,c=>t(1,i=c));let s,l=!1,o=!1;const r=()=>{t(3,o=!1),s==null||s.hide()},a=async()=>{i!=null&&i.yesCallback&&(t(2,l=!0),await Promise.resolve(i.yesCallback()),t(2,l=!1)),t(3,o=!0),s==null||s.hide()};function u(c){le[c?"unshift":"push"](()=>{s=c,t(0,s)})}const f=async()=>{!o&&(i==null?void 0:i.noCallback)&&i.noCallback(),await Tn(),t(3,o=!1),L_()};return n.$$.update=()=>{n.$$.dirty&3&&i!=null&&i.text&&(t(3,o=!1),s==null||s.show())},[s,i,l,o,r,a,u,f]}class BA extends ye{constructor(e){super(),ve(this,e,zA,VA,be,{})}}function cm(n){let e,t,i,s,l,o,r,a,u,f,c,d,h,m,b,g,y,k;return b=new Zn({props:{class:"dropdown dropdown-nowrap dropdown-upside dropdown-left",$$slots:{default:[UA]},$$scope:{ctx:n}}}),{c(){var $;e=v("aside"),t=v("a"),t.innerHTML='PocketBase logo',i=O(),s=v("nav"),l=v("a"),l.innerHTML='',o=O(),r=v("a"),r.innerHTML='',a=O(),u=v("a"),u.innerHTML='',f=O(),c=v("figure"),d=v("img"),m=O(),j(b.$$.fragment),p(t,"href","/"),p(t,"class","logo logo-sm"),p(l,"href","/collections"),p(l,"class","menu-item"),p(l,"aria-label","Collections"),p(r,"href","/logs"),p(r,"class","menu-item"),p(r,"aria-label","Logs"),p(u,"href","/settings"),p(u,"class","menu-item"),p(u,"aria-label","Settings"),p(s,"class","main-menu"),Ln(d.src,h="./images/avatars/avatar"+((($=n[0])==null?void 0:$.avatar)||0)+".svg")||p(d,"src",h),p(d,"alt","Avatar"),p(c,"class","thumb thumb-circle link-hint closable"),p(e,"class","app-sidebar")},m($,C){S($,e,C),_(e,t),_(e,i),_(e,s),_(s,l),_(s,o),_(s,r),_(s,a),_(s,u),_(e,f),_(e,c),_(c,d),_(c,m),R(b,c,null),g=!0,y||(k=[Ee(Bt.call(null,t)),Ee(Bt.call(null,l)),Ee(An.call(null,l,{path:"/collections/?.*",className:"current-route"})),Ee(Be.call(null,l,{text:"Collections",position:"right"})),Ee(Bt.call(null,r)),Ee(An.call(null,r,{path:"/logs/?.*",className:"current-route"})),Ee(Be.call(null,r,{text:"Logs",position:"right"})),Ee(Bt.call(null,u)),Ee(An.call(null,u,{path:"/settings/?.*",className:"current-route"})),Ee(Be.call(null,u,{text:"Settings",position:"right"}))],y=!0)},p($,C){var M;(!g||C&1&&!Ln(d.src,h="./images/avatars/avatar"+(((M=$[0])==null?void 0:M.avatar)||0)+".svg"))&&p(d,"src",h);const T={};C&1024&&(T.$$scope={dirty:C,ctx:$}),b.$set(T)},i($){g||(A(b.$$.fragment,$),g=!0)},o($){P(b.$$.fragment,$),g=!1},d($){$&&w(e),H(b),y=!1,Pe(k)}}}function UA(n){let e,t,i,s,l,o,r;return{c(){e=v("a"),e.innerHTML=` - Manage admins`,t=O(),i=v("hr"),s=O(),l=v("button"),l.innerHTML=` - Logout`,p(e,"href","/settings/admins"),p(e,"class","dropdown-item closable"),p(l,"type","button"),p(l,"class","dropdown-item closable")},m(a,u){S(a,e,u),S(a,t,u),S(a,i,u),S(a,s,u),S(a,l,u),o||(r=[Ee(Bt.call(null,e)),K(l,"click",n[6])],o=!0)},p:te,d(a){a&&w(e),a&&w(t),a&&w(i),a&&w(s),a&&w(l),o=!1,Pe(r)}}}function WA(n){var h;let e,t,i,s,l,o,r,a,u,f,c;document.title=e=W.joinNonEmpty([n[3],n[2],"PocketBase"]," - ");let d=((h=n[0])==null?void 0:h.id)&&n[1]&&cm(n);return o=new b0({props:{routes:AA}}),o.$on("routeLoading",n[4]),o.$on("conditionsFailed",n[5]),a=new HA({}),f=new BA({}),{c(){t=O(),i=v("div"),d&&d.c(),s=O(),l=v("div"),j(o.$$.fragment),r=O(),j(a.$$.fragment),u=O(),j(f.$$.fragment),p(l,"class","app-body"),p(i,"class","app-layout")},m(m,b){S(m,t,b),S(m,i,b),d&&d.m(i,null),_(i,s),_(i,l),R(o,l,null),_(l,r),R(a,l,null),S(m,u,b),R(f,m,b),c=!0},p(m,[b]){var g;(!c||b&12)&&e!==(e=W.joinNonEmpty([m[3],m[2],"PocketBase"]," - "))&&(document.title=e),((g=m[0])==null?void 0:g.id)&&m[1]?d?(d.p(m,b),b&3&&A(d,1)):(d=cm(m),d.c(),A(d,1),d.m(i,s)):d&&(pe(),P(d,1,1,()=>{d=null}),he())},i(m){c||(A(d),A(o.$$.fragment,m),A(a.$$.fragment,m),A(f.$$.fragment,m),c=!0)},o(m){P(d),P(o.$$.fragment,m),P(a.$$.fragment,m),P(f.$$.fragment,m),c=!1},d(m){m&&w(t),m&&w(i),d&&d.d(),H(o),H(a),m&&w(u),H(f,m)}}}function YA(n,e,t){let i,s,l,o;Ze(n,ws,h=>t(8,i=h)),Ze(n,bo,h=>t(2,s=h)),Ze(n,ya,h=>t(0,l=h)),Ze(n,mt,h=>t(3,o=h));let r,a=!1;function u(h){var m,b,g,y;((m=h==null?void 0:h.detail)==null?void 0:m.location)!==r&&(t(1,a=!!((g=(b=h==null?void 0:h.detail)==null?void 0:b.userData)!=null&&g.showAppSidebar)),r=(y=h==null?void 0:h.detail)==null?void 0:y.location,Ht(mt,o="",o),Fn({}),L_())}function f(){ki("/")}async function c(){var h,m;if(!!(l!=null&&l.id))try{const b=await de.settings.getAll({$cancelKey:"initialAppSettings"});Ht(bo,s=((h=b==null?void 0:b.meta)==null?void 0:h.appName)||"",s),Ht(ws,i=!!((m=b==null?void 0:b.meta)!=null&&m.hideControls),i)}catch(b){console.warn("Failed to load app settings.",b)}}function d(){de.logout()}return n.$$.update=()=>{n.$$.dirty&1&&l!=null&&l.id&&c()},[l,a,s,o,u,f,d]}class KA extends ye{constructor(e){super(),ve(this,e,YA,WA,be,{})}}new KA({target:document.getElementById("app")});export{Pe as A,Lt as B,W as C,ki as D,Ae as E,Ig as F,ru as G,Ze as H,Zi as I,It as J,cn as K,le as L,I_ as M,bt as N,Gi as O,nn as P,Pn as Q,fa as R,ye as S,Qa as T,P as a,O as b,j as c,H as d,v as e,p as f,S as g,_ as h,ve as i,Ee as j,pe as k,Bt as l,R as m,he as n,w as o,de as p,ge as q,ne as r,be as s,A as t,K as u,ut as v,B as w,ae as x,te as y,ce as z}; diff --git a/ui/dist/assets/index.e8a8986f.js b/ui/dist/assets/index.e8a8986f.js deleted file mode 100644 index 803b3963f0fea0e4d0f1682dacf08cfa4464db94..0000000000000000000000000000000000000000 --- a/ui/dist/assets/index.e8a8986f.js +++ /dev/null @@ -1,13 +0,0 @@ -class I{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),ze.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),ze.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new ii(this),r=new ii(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new ii(this,e)}iterRange(e,t=this.length){return new Zo(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new el(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?I.empty:e.length<=32?new J(e):ze.from(J.split(e,[]))}}class J extends I{constructor(e,t=Vh(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Fh(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new J(xr(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=qi(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new J(l,o.length+r.length));else{let a=l.length>>1;i.push(new J(l.slice(0,a)),new J(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof J))return super.replace(e,t,i);let s=qi(this.text,qi(i.text,xr(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new J(s,r):ze.from(J.split(s,[]),r)}sliceString(e,t=this.length,i=` -`){let s="";for(let r=0,o=0;r<=t&&oe&&o&&(s+=i),er&&(s+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new J(i,s)),i=[],s=-1);return s>-1&&t.push(new J(i,s)),t}}class ze extends I{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=a+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r=o){let h=s&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if(i.lines=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines>5-1&&a.lines>h>>5+1){let c=this.children.slice();return c[s]=a,new ze(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` -`){let s="";for(let r=0,o=0;re&&r&&(s+=i),eo&&(s+=l.sliceString(e-o,t-o,i)),o=a+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof ze))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let a=this.children[s],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new J(d,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],a=0,h=-1,c=[];function f(d){let p;if(d.lines>r&&d instanceof ze)for(let m of d.children)f(m);else d.lines>o&&(a>o||!a)?(u(),l.push(d)):d instanceof J&&a&&(p=c[c.length-1])instanceof J&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,c[c.length-1]=new J(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>s&&u(),a+=d.lines,h+=d.length+1,c.push(d))}function u(){a!=0&&(l.push(c.length==1?c[0]:ze.from(c,h)),h=-1,a=c.length=0)}for(let d of e)f(d);return u(),l.length==1?l[0]:new ze(l,t)}}I.empty=new J([""],0);function Vh(n){let e=-1;for(let t of n)e+=t.length+1;return e}function qi(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r=t&&(a>i&&(l=l.slice(0,i-s)),s0?1:(e instanceof J?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof J?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(s instanceof J){let a=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=s.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof J?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class Zo{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new ii(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class el{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(I.prototype[Symbol.iterator]=function(){return this.iter()},ii.prototype[Symbol.iterator]=Zo.prototype[Symbol.iterator]=el.prototype[Symbol.iterator]=function(){return this});class Fh{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}let Pt="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;nn)return Pt[e-1]<=n;return!1}function vr(n){return n>=127462&&n<=127487}const kr=8205;function fe(n,e,t=!0,i=!0){return(t?tl:Hh)(n,e,i)}function tl(n,e,t){if(e==n.length)return e;e&&il(n.charCodeAt(e))&&nl(n.charCodeAt(e-1))&&e--;let i=ie(n,e);for(e+=Se(i);e=0&&vr(ie(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Hh(n,e,t){for(;e>0;){let i=tl(n,e-2,t);if(i=56320&&n<57344}function nl(n){return n>=55296&&n<56320}function ie(n,e){let t=n.charCodeAt(e);if(!nl(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return il(i)?(t-55296<<10)+(i-56320)+65536:t}function zs(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Se(n){return n<65536?1:2}const Qn=/\r\n?|\n/;var le=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(le||(le={}));class je{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-s);r+=l}else{if(i!=le.Simple&&h>=e&&(i==le.TrackDel&&se||i==le.TrackBefore&&se))return null;if(h>e||h==e&&t<0&&!l)return e==s||t<0?r:r+a;r+=a}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i=0&&s<=t&&l>=e)return st?"cover":!0;s=l}return!1}toString(){let e="";for(let t=0;t=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new je(e)}static create(e){return new je(e)}}class Y extends je{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Zn(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return es(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s=0){t[s]=l,t[s+1]=o;let a=s>>1;for(;i.length0&&et(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!s.length)return;ou||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let p=d?typeof d=="string"?I.of(d.split(i||Qn)):d:I.empty,m=p.length;if(f==u&&m==0)return;fo&&oe(s,f-o,-1),oe(s,u-f,m),et(r,s,p),o=u}}return h(e),a(!l),l}static empty(e){return new Y(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;sl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length=0&&t<=0&&t==n[s+1]?n[s]+=e:e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function et(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(s,h,r,c,f),s=h,r=c}}}function es(n,e,t,i=!1){let s=[],r=i?[]:null,o=new ri(n),l=new ri(e);for(let a=-1;;)if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);oe(s,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let f=Math.min(c,l.len);h+=f,c-=f,l.forward(f)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}class ri{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?I.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?I.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class gt{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new gt(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return b.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return b.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return b.range(e.anchor,e.head)}static create(e,t,i){return new gt(e,t,i)}}class b{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:b.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;te.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new b(e.ranges.map(t=>gt.fromJSON(t)),e.main)}static single(e,t=e){return new b([b.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;se?4:0))}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;sr.head?b.range(a,l):b.range(l,a))}}return new b(e,t)}}function rl(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let qs=0;class D{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=qs++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}static define(e={}){return new D(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:$s),!!e.static,e.enables)}of(e){return new $i([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $i(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $i(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function $s(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class $i{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=qs++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?h=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&c.push(e[f.id]);return{create(f){return f.values[o]=i(f),1},update(f,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||ts(f,c)){let d=i(f);if(l?!Sr(d,f.values[o],s):!s(d,f.values[o]))return f.values[o]=d,1}return 0},reconfigure:(f,u)=>{let d,p=u.config.address[r];if(p!=null){let m=Xi(u,p);if(this.dependencies.every(g=>g instanceof D?u.facet(g)===f.facet(g):g instanceof ye?u.field(g,!1)==f.field(g,!1):!0)||(l?Sr(d=i(f),m,s):s(d=i(f),m)))return f.values[o]=m,0}else d=i(f);return f.values[o]=d,1}}}}function Sr(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[a.id]),s=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;ci===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Cr).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,Cr.of({field:this,create:e})]}get extension(){return this}}const pt={lowest:4,low:3,default:2,high:1,highest:0};function Gt(n){return e=>new ol(e,n)}const St={highest:Gt(pt.highest),high:Gt(pt.high),default:Gt(pt.default),low:Gt(pt.low),lowest:Gt(pt.lowest)};class ol{constructor(e,t){this.inner=e,this.prec=t}}class xn{of(e){return new is(this,e)}reconfigure(e){return xn.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class is{constructor(e,t){this.compartment=e,this.inner=t}}class _i{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let u of qh(e,t,o))u instanceof ye?s.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of s)l[u.id]=h.length<<1,h.push(d=>u.slot(d));let c=i==null?void 0:i.config.facets;for(let u in r){let d=r[u],p=d[0].facet,m=c&&c[u]||[];if(d.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,$s(m,d))a.push(i.facet(p));else{let g=p.combine(d.map(y=>y.value));a.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of d)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(y=>g.dynamicSlot(y)));l[p.id]=h.length<<1,h.push(g=>zh(g,p,d))}}let f=h.map(u=>u(l));return new _i(e,o,f,l,a,r)}}function qh(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let a=s.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof is&&t.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof is){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof ol)r(o.inner,o.prec);else if(o instanceof ye)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof $i)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,pt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(n,pt.default),i.reduce((o,l)=>o.concat(l))}function ni(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function Xi(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const ll=D.define(),al=D.define({combine:n=>n.some(e=>e),static:!0}),hl=D.define({combine:n=>n.length?n[0]:void 0,static:!0}),cl=D.define(),fl=D.define(),ul=D.define(),dl=D.define({combine:n=>n.length?n[0]:!1});class ht{constructor(e,t){this.type=e,this.value=t}static define(){return new $h}}class $h{of(e){return new ht(this,e)}}class Kh{constructor(e){this.map=e}of(e){return new L(this,e)}}class L{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new L(this.type,t)}is(e){return this.type==e}static define(e={}){return new Kh(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}L.reconfigure=L.define();L.appendConfig=L.define();class Q{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&rl(i,t.newLength),r.some(l=>l.type==Q.time)||(this.annotations=r.concat(Q.time.of(Date.now())))}static create(e,t,i,s,r,o){return new Q(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(Q.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}Q.time=ht.define();Q.userEvent=ht.define();Q.addToHistory=ht.define();Q.remote=ht.define();function jh(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i=n[i]))r=n[i++],o=n[i++];else if(s=0;s--){let r=i[s](n);r instanceof Q?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof Q?n=r[0]:n=gl(e,Rt(r),!1)}return n}function Gh(n){let e=n.startState,t=e.facet(ul),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=pl(i,ns(e,r,n.changes.newLength),!0))}return i==n?n:Q.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const Jh=[];function Rt(n){return n==null?Jh:Array.isArray(n)?n:[n]}var z=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(z||(z={}));const _h=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let ss;try{ss=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function Xh(n){if(ss)return ss.test(n);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||_h.test(t)))return!0}return!1}function Yh(n){return e=>{if(!/\S/.test(e))return z.Space;if(Xh(e))return z.Word;for(let t=0;t-1)return z.Word;return z.Other}}class N{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;ls.set(a,l)),t=null),s.set(o.value.compartment,o.value.extension)):o.is(L.reconfigure)?(t=null,i=o.value):o.is(L.appendConfig)&&(t=null,i=Rt(i).concat(o.value));let r;t?r=e.startState.values.slice():(t=_i.resolve(i,s,this),r=new N(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,a)=>a.reconfigure(l,this),null).values),new N(t,e.newDoc,e.newSelection,r,(o,l)=>l.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:b.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=Rt(i.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return N.create({doc:e.doc,selection:b.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=_i.resolve(e.extensions||[],new Map),i=e.doc instanceof I?e.doc:I.of((e.doc||"").split(t.staticFacet(N.lineSeparator)||Qn)),s=e.selection?e.selection instanceof b?e.selection:b.single(e.selection.anchor,e.selection.head):b.single(0);return rl(s,i.length),t.staticFacet(al)||(s=s.asSingle()),new N(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(N.tabSize)}get lineBreak(){return this.facet(N.lineSeparator)||` -`}get readOnly(){return this.facet(dl)}phrase(e,...t){for(let i of this.facet(N.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>t.length?i:t[r-1]})),e}languageDataAt(e,t,i=-1){let s=[];for(let r of this.facet(ll))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){return Yh(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,l=e-i;for(;o>0;){let a=fe(t,o,!1);if(r(t.slice(a,o))!=z.Word)break;o=a}for(;ln.length?n[0]:4});N.lineSeparator=hl;N.readOnly=dl;N.phrases=D.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(s=>n[s]==e[s])}});N.languageData=ll;N.changeFilter=cl;N.transactionFilter=fl;N.transactionExtender=ul;xn.reconfigure=L.define();function Ct(n,e,t={}){let i={};for(let s of n)for(let r of Object.keys(s)){let o=s[r],l=i[r];if(l===void 0)i[r]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(t,r))i[r]=t[r](l,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class bt{eq(e){return this==e}range(e,t=e){return oi.create(e,t,this)}}bt.prototype.startSide=bt.prototype.endSide=0;bt.prototype.point=!1;bt.prototype.mapMode=le.TrackDel;class oi{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new oi(e,t,i)}}function rs(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class Ks{constructor(e,t,i,s){this.from=e,this.to=t,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,s=0){let r=i?this.to:this.from;for(let o=s,l=r.length;;){if(o==l)return o;let a=o+l>>1,h=r[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==o)return h>=0?o:l;h>=0?l=a:o=a+1}}between(e,t,i,s){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);rd||u==d&&h.startSide>0&&h.endSide<=0)continue;(d-u||h.endSide-h.startSide)<0||(o<0&&(o=u),h.point&&(l=Math.max(l,d-u)),i.push(h),s.push(u-o),r.push(d-o))}return{mapped:i.length?new Ks(s,r,i,l):null,pos:o}}}class K{constructor(e,t,i,s){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=s}static create(e,t,i,s){return new K(e,t,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(rs)),this.isEmpty)return t.length?K.of(t):this;let l=new ml(this,null,-1).goto(0),a=0,h=[],c=new wt;for(;l.value||a=0){let f=t[a++];c.addInner(f.from,f.to,f.value)||h.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||rl.to||r=r&&e<=r+o.length&&o.between(r,e-r,t-r,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return li.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return li.from(e).goto(t)}static compare(e,t,i,s,r=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),l=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),a=Ar(o,l,i),h=new Jt(o,a,r),c=new Jt(l,a,r);i.iterGaps((f,u,d)=>Mr(h,f,c,u,d,s)),i.empty&&i.length==0&&Mr(h,0,c,0,0,s)}static eq(e,t,i=0,s){s==null&&(s=1e9-1);let r=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0),o=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let l=Ar(r,o),a=new Jt(r,l,0).goto(i),h=new Jt(o,l,0).goto(i);for(;;){if(a.to!=h.to||!os(a.active,h.active)||a.point&&(!h.point||!a.point.eq(h.point)))return!1;if(a.to>s)return!0;a.next(),h.next()}}static spans(e,t,i,s,r=-1){let o=new Jt(e,null,r).goto(t),l=t,a=o.openStart;for(;;){let h=Math.min(o.to,i);if(o.point){let c=o.activeForPoint(o.to),f=o.pointFroml&&(s.span(l,h,o.active,a),a=o.openEnd(h));if(o.to>i)return a+(o.point&&o.to>i?1:0);l=o.to,o.next()}}static of(e,t=!1){let i=new wt;for(let s of e instanceof oi?[e]:t?Qh(e):e)i.add(s.from,s.to,s.value);return i.finish()}}K.empty=new K([],[],null,-1);function Qh(n){if(n.length>1)for(let e=n[0],t=1;t0)return n.slice().sort(rs);e=i}return n}K.empty.nextLayer=K.empty;class wt{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Ks(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new wt)).add(e,t,i)}addInner(e,t,i){let s=e-this.lastTo||i.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(K.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=K.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ar(n,e,t){let i=new Map;for(let r of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&s.push(new ml(o,t,i,r));return s.length==1?s[0]:new li(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ln(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ln(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Ln(this.heap,0)}}}function Ln(n,e){for(let t=n[e];;){let i=(e<<1)+1;if(i>=n.length)break;let s=n[i];if(i+1=0&&(s=n[i+1],i++),t.compare(s)<0)break;n[i]=t,n[e]=s,e=i}}class Jt{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=li.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Si(this.active,e),Si(this.activeTo,e),Si(this.activeRank,e),this.minActive=Dr(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:s,rank:r}=this.cursor;for(;t-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&Si(i,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[s]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Mr(n,e,t,i,s,r){n.goto(e),t.goto(i);let o=i+s,l=i,a=i-e;for(;;){let h=n.to+a-t.to||n.endSide-t.endSide,c=h<0?n.to+a:t.to,f=Math.min(c,o);if(n.point||t.point?n.point&&t.point&&(n.point==t.point||n.point.eq(t.point))&&os(n.activeForPoint(n.to+a),t.activeForPoint(t.to))||r.comparePoint(l,f,n.point,t.point):f>l&&!os(n.active,t.active)&&r.compareRange(l,f,n.active,t.active),c>o)break;l=c,h<=0&&n.next(),h>=0&&t.next()}}function os(n,e){if(n.length!=e.length)return!1;for(let t=0;t=e;i--)n[i+1]=n[i];n[e]=t}function Dr(n,e){let t=-1,i=1e9;for(let s=0;s=e)return s;if(s==n.length)break;r+=n.charCodeAt(s)==9?t-r%t:1,s=fe(n,s)}return i===!0?-1:n.length}const as="\u037C",Or=typeof Symbol>"u"?"__"+as:Symbol.for(as),hs=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Tr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class ot{constructor(e,t){this.rules=[];let{finish:i}=t||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,l,a,h){let c=[],f=/^@(\w+)\b/.exec(o[0]),u=f&&f[1]=="keyframes";if(f&&l==null)return a.push(o[0]+";");for(let d in l){let p=l[d];if(/&/.test(d))r(d.split(/,\s*/).map(m=>o.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,a);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+d+") should be a primitive value.");r(s(d),p,c,u)}else p!=null&&c.push(d.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(c.length||u)&&a.push((i&&!f&&!h?o.map(i):o).join(", ")+" {"+c.join(" ")+"}")}for(let o in e)r(s(o),e[o],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=Tr[Or]||1;return Tr[Or]=e+1,as+e.toString(36)}static mount(e,t){(e[hs]||new Zh(e)).mount(Array.isArray(t)?t:[t])}}let Ai=null;class Zh{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet<"u"){if(Ai)return e.adoptedStyleSheets=[Ai.sheet].concat(e.adoptedStyleSheets),e[hs]=Ai;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),Ai=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild)}this.modules=[],e[hs]=this}mount(e){let t=this.sheet,i=0,s=0;for(let r=0;r-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,o),t)for(let a=0;a",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Br=typeof navigator<"u"&&/Chrome\/(\d+)/.exec(navigator.userAgent);typeof navigator<"u"&&/Gecko\/\d+/.test(navigator.userAgent);var ec=typeof navigator<"u"&&/Mac/.test(navigator.platform),tc=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),ic=ec||Br&&+Br[1]<57;for(var ne=0;ne<10;ne++)lt[48+ne]=lt[96+ne]=String(ne);for(var ne=1;ne<=24;ne++)lt[ne+111]="F"+ne;for(var ne=65;ne<=90;ne++)lt[ne]=String.fromCharCode(ne+32),ai[ne]=String.fromCharCode(ne);for(var En in lt)ai.hasOwnProperty(En)||(ai[En]=lt[En]);function nc(n){var e=ic&&(n.ctrlKey||n.altKey||n.metaKey)||tc&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?ai:lt)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Yi(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function Nt(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function sc(n){let e=n.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function Ki(n,e){if(!e.anchorNode)return!1;try{return Nt(n,e.anchorNode)}catch{return!1}}function hi(n){return n.nodeType==3?Vt(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function Qi(n,e,t,i){return t?Pr(n,e,t,i,-1)||Pr(n,e,t,i,1):!1}function Zi(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function Pr(n,e,t,i,s){for(;;){if(n==t&&e==i)return!0;if(e==(s<0?0:ci(n))){if(n.nodeName=="DIV")return!1;let r=n.parentNode;if(!r||r.nodeType!=1)return!1;e=Zi(n)+(s<0?0:1),n=r}else if(n.nodeType==1){if(n=n.childNodes[e+(s<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=s<0?ci(n):0}else return!1}}function ci(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}const yl={left:0,right:0,top:0,bottom:0};function js(n,e){let t=e?n.left:n.right;return{left:t,right:t,top:n.top,bottom:n.bottom}}function rc(n){return{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function oc(n,e,t,i,s,r,o,l){let a=n.ownerDocument,h=a.defaultView||window;for(let c=n;c;)if(c.nodeType==1){let f,u=c==a.body;if(u)f=rc(h);else{if(c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let m=c.getBoundingClientRect();f={left:m.left,right:m.left+c.clientWidth,top:m.top,bottom:m.top+c.clientHeight}}let d=0,p=0;if(s=="nearest")e.top0&&e.bottom>f.bottom+p&&(p=e.bottom-f.bottom+p+o)):e.bottom>f.bottom&&(p=e.bottom-f.bottom+o,t<0&&e.top-p0&&e.right>f.right+d&&(d=e.right-f.right+d+r)):e.right>f.right&&(d=e.right-f.right+r,t<0&&e.leftt)return f.domBoundsAround(e,t,h);if(u>=e&&s==-1&&(s=a,r=h),h>t&&f.dom.parentNode==this.dom){o=a,l=c;break}c=u,h=u+f.breakAfter}return{from:r,to:l<0?i+this.length:l,startDOM:(s?this.children[s-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.dirty|=2),t.dirty&1)return;t.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=Us){this.markDirty();for(let s=e;sthis.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function vl(n,e,t,i,s,r,o,l,a){let{children:h}=n,c=h.length?h[e]:null,f=r.length?r[r.length-1]:null,u=f?f.breakAfter:o;if(!(e==i&&c&&!o&&!u&&r.length<2&&c.merge(t,s,r.length?f:null,t==0,l,a))){if(i0&&(!o&&r.length&&c.merge(t,c.length,r[0],!1,l,0)?c.breakAfter=r.shift().breakAfter:(t2);var A={mac:Nr||/Mac/.test(Ce.platform),windows:/Win/.test(Ce.platform),linux:/Linux|X11/.test(Ce.platform),ie:vn,ie_version:Sl?cs.documentMode||6:us?+us[1]:fs?+fs[1]:0,gecko:Er,gecko_version:Er?+(/Firefox\/(\d+)/.exec(Ce.userAgent)||[0,0])[1]:0,chrome:!!In,chrome_version:In?+In[1]:0,ios:Nr,android:/Android\b/.test(Ce.userAgent),webkit:Ir,safari:Cl,webkit_version:Ir?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:cs.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const cc=256;class at extends H{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,i){return i&&(!(i instanceof at)||this.length-(t-e)+i.length>cc)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new at(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new ae(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return ds(this.dom,e,t)}}class Ge extends H{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let s of t)s.setParent(this)}setAttrs(e){if(wl(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,t,i,s,r,o){return i&&(!(i instanceof Ge&&i.mark.eq(this.mark))||e&&r<=0||te&&t.push(i=e&&(s=r),i=a,r++}let o=this.length-e;return this.length=e,s>-1&&(this.children.length=s,this.markDirty()),new Ge(this.mark,t,o)}domAtPos(e){return Dl(this,e)}coordsAt(e,t){return Tl(this,e,t)}}function ds(n,e,t){let i=n.nodeValue.length;e>i&&(e=i);let s=e,r=e,o=0;e==0&&t<0||e==i&&t>=0?A.chrome||A.gecko||(e?(s--,o=1):r=0)?0:l.length-1];return A.safari&&!o&&a.width==0&&(a=Array.prototype.find.call(l,h=>h.width)||a),o?js(a,o<0):a||null}class tt extends H{constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}static create(e,t,i){return new(e.customView||tt)(e,t,i)}split(e){let t=tt.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,i,s,r,o){return i&&(!(i instanceof tt)||!this.widget.compare(i.widget)||e>0&&r<=0||t0?i.length-1:0;s=i[r],!(e>0?r==0:r==i.length-1||s.top0?-1:1);return this.length?s:js(s,this.side>0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class Al extends tt{domAtPos(e){let{topView:t,text:i}=this.widget;return t?ps(e,0,t,i,(s,r)=>s.domAtPos(r),s=>new ae(i,Math.min(s,i.nodeValue.length))):new ae(i,Math.min(e,i.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,t){let{topView:i,text:s}=this.widget;return i?Ml(e,t,i,s):Math.min(t,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,t){let{topView:i,text:s}=this.widget;return i?ps(e,t,i,s,(r,o,l)=>r.coordsAt(o,l),(r,o)=>ds(s,r,o)):ds(s,e,t)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}canReuseDOM(){return!0}}function ps(n,e,t,i,s,r){if(t instanceof Ge){for(let o=t.dom.firstChild;o;o=o.nextSibling){let l=H.get(o);if(!l)return r(n,e);let a=Nt(o,i),h=l.length+(a?i.nodeValue.length:0);if(n0?-1:1);return i&&i.topt.top?{left:t.left,right:t.right,top:i.top,bottom:i.bottom}:t}get overrideDOMText(){return I.empty}}at.prototype.children=tt.prototype.children=Ft.prototype.children=Us;function fc(n,e){let t=n.parent,i=t?t.children.indexOf(n):-1;for(;t&&i>=0;)if(e<0?i>0:ir&&e0;r--){let o=i[r-1];if(o.dom.parentNode==t)return o.domAtPos(o.length)}for(let r=s;r0&&e instanceof Ge&&s.length&&(i=s[s.length-1])instanceof Ge&&i.mark.eq(e.mark)?Ol(i,e.children[0],t-1):(s.push(e),e.setParent(n)),n.length+=e.length}function Tl(n,e,t){let i=null,s=-1,r=null,o=-1;function l(h,c){for(let f=0,u=0;f=c&&(d.children.length?l(d,c-u):!r&&(p>c||u==p&&d.getSide()>0)?(r=d,o=c-u):(u0?3e8:-4e8:t>0?1e8:-1e8,new xt(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,s;if(e.isBlockGap)i=-5e8,s=4e8;else{let{start:r,end:o}=Bl(e,t);i=(r?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new xt(e,i,s,t,e.widget||null,!0)}static line(e){return new wi(e)}static set(e,t=!1){return K.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}T.none=K.empty;class kn extends T{constructor(e){let{start:t,end:i}=Bl(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof kn&&this.tagName==e.tagName&&this.class==e.class&&Gs(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}kn.prototype.point=!1;class wi extends T{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof wi&&Gs(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}wi.prototype.mapMode=le.TrackBefore;wi.prototype.point=!0;class xt extends T{constructor(e,t,i,s,r,o){super(t,i,r,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?le.TrackBefore:le.TrackAfter:le.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof xt&&dc(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}xt.prototype.point=!0;function Bl(n,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=n;return t==null&&(t=n.inclusive),i==null&&(i=n.inclusive),{start:t!=null?t:e,end:i!=null?i:e}}function dc(n,e){return n==e||!!(n&&e&&n.compare(e))}function ys(n,e,t,i=0){let s=t.length-1;s>=0&&t[s]+i>=n?t[s]=Math.max(t[s],e):t.push(n,e)}class ue extends H{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,i,s,r,o){if(i){if(!(i instanceof ue))return!1;this.dom||i.transferDOM(this)}return s&&this.setDeco(i?i.attrs:null),kl(this,e,t,i?i.children:[],r,o),!0}split(e){let t=new ue;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i,off:s}=this.childPos(e);s&&(t.append(this.children[i].split(s),0),this.children[i].merge(s,this.children[i].length,null,!1,0,0),i++);for(let r=i;r0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){!this.dom||(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Gs(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){Ol(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=gs(t,this.attrs||{})),i&&(this.attrs=gs({class:i},this.attrs||{}))}domAtPos(e){return Dl(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e){var t;this.dom?this.dirty&4&&(wl(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(ms(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let i=this.dom.lastChild;for(;i&&H.get(i)instanceof Ge;)i=i.lastChild;if(!i||!this.length||i.nodeName!="BR"&&((t=H.get(i))===null||t===void 0?void 0:t.isEditable)==!1&&(!A.ios||!this.children.some(s=>s instanceof at))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let t of this.children){if(!(t instanceof at)||/[^ -~]/.test(t.text))return null;let i=hi(t.dom);if(i.length!=1)return null;e+=i[0].width}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}:null}coordsAt(e,t){return Tl(this,e,t)}become(e){return!1}get type(){return q.Text}static find(e,t){for(let i=0,s=0;i=t){if(r instanceof ue)return r;if(o>t)break}s=o+r.breakAfter}return null}}class yt extends H{constructor(e,t,i){super(),this.widget=e,this.length=t,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,s,r,o){return i&&(!(i instanceof yt)||!this.widget.compare(i.widget)||e>0&&r<=0||t0;){if(this.textOff==this.text.length){let{value:r,lineBreak:o,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}else this.text=r,this.textOff=0}let s=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(Mi(new at(this.text.slice(this.textOff,this.textOff+s)),t),i),this.atCursorPos=!0,this.textOff+=s,e-=s,i=0}}span(e,t,i,s){this.buildText(t-e,i,s),this.pos=t,this.openStart<0&&(this.openStart=s)}point(e,t,i,s,r,o){if(this.disallowBlockEffectsFor[o]&&i instanceof xt){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=t-e;if(i instanceof xt)if(i.block){let{type:a}=i;a==q.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new yt(i.widget||new Vr("div"),l,a))}else{let a=tt.create(i.widget||new Vr("span"),l,l?0:i.startSide),h=this.atCursorPos&&!a.isEditable&&r<=s.length&&(e0),c=!a.isEditable&&(en.some(e=>e)}),Vl=D.define({combine:n=>n.some(e=>e)});class en{constructor(e,t="nearest",i="nearest",s=5,r=5){this.range=e,this.y=t,this.x=i,this.yMargin=s,this.xMargin=r}map(e){return e.empty?this:new en(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const Fr=L.define({map:(n,e)=>n.map(e)});function Ee(n,e,t){let i=n.facet(El);i.length?i[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}const Sn=D.define({combine:n=>n.length?n[0]:!0});let pc=0;const Qt=D.define();class pe{constructor(e,t,i,s){this.id=e,this.create=t,this.domEventHandlers=i,this.extension=s(this)}static define(e,t){const{eventHandlers:i,provide:s,decorations:r}=t||{};return new pe(pc++,e,i,o=>{let l=[Qt.of(o)];return r&&l.push(fi.of(a=>{let h=a.plugin(o);return h?r(h):T.none})),s&&l.push(s(o)),l})}static fromClass(e,t){return pe.define(i=>new e(i),t)}}class Nn{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(Ee(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){Ee(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){Ee(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Fl=D.define(),_s=D.define(),fi=D.define(),Wl=D.define(),Hl=D.define(),Zt=D.define();class Ue{constructor(e,t,i,s){this.fromA=e,this.toA=t,this.fromB=i,this.toB=s}join(e){return new Ue(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>i.toA)){if(s.toAc)break;r+=2}if(!a)return i;new Ue(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),o=a.toA,l=a.toB}}}class tn{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=Y.empty(this.startState.doc.length);for(let o of i)this.changes=this.changes.compose(o.changes);let s=[];this.changes.iterChangedRanges((o,l,a,h)=>s.push(new Ue(o,l,a,h))),this.changedRanges=s;let r=e.hasFocus;r!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=r,this.flags|=1)}static create(e,t,i){return new tn(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var _=function(n){return n[n.LTR=0]="LTR",n[n.RTL=1]="RTL",n}(_||(_={}));const ws=_.LTR,gc=_.RTL;function zl(n){let e=[];for(let t=0;t=t){if(l.level==i)return o;(r<0||(s!=0?s<0?l.fromt:e[r].level>l.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}const $=[];function xc(n,e){let t=n.length,i=e==ws?1:2,s=e==ws?2:1;if(!n||i==1&&!wc.test(n))return ql(t);for(let o=0,l=i,a=i;o=0;u-=3)if(Ne[u+1]==-c){let d=Ne[u+2],p=d&2?i:d&4?d&1?s:i:0;p&&($[o]=$[Ne[u]]=p),l=u;break}}else{if(Ne.length==189)break;Ne[l++]=o,Ne[l++]=h,Ne[l++]=a}else if((f=$[o])==2||f==1){let u=f==i;a=u?0:1;for(let d=l-3;d>=0;d-=3){let p=Ne[d+2];if(p&2)break;if(u)Ne[d+2]|=2;else{if(p&4)break;Ne[d+2]|=4}}}for(let o=0;ol;){let c=h,f=$[--h]!=2;for(;h>l&&f==($[h-1]!=2);)h--;r.push(new Et(h,c,f?2:1))}else r.push(new Et(l,o,0))}else for(let o=0;o1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);i=r+o}}readNode(e){if(e.cmIgnore)return;let t=H.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let s=i.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+Math.min(t,i.offset))}}function Wr(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}class Hr{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class zr extends H{constructor(e){super(),this.view=e,this.compositionDeco=T.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ue],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Ue(0,0,0,e.state.doc.length)],0)}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:o,toA:l})=>lthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=T.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=Sc(this.view,e.changes)),(A.ie||A.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let i=this.decorations,s=this.updateDeco(),r=Dc(i,s,e.changes);return t=Ue.extendWithRanges(t,r),this.dirty==0&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t);let{observer:i}=this.view;i.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=A.chrome||A.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(r),this.dirty=0,r&&(r.written||i.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to=0?e[s]:null;if(!r)break;let{fromA:o,toA:l,fromB:a,toB:h}=r,{content:c,breakAtStart:f,openStart:u,openEnd:d}=Js.build(this.view.state.doc,a,h,this.decorations,this.dynamicDecorationMap),{i:p,off:m}=i.findPos(l,1),{i:g,off:y}=i.findPos(o,-1);vl(this,g,y,p,m,c,f,u,d)}}updateSelection(e=!1,t=!1){if((e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange(),!(t||this.mayControlSelection()))return;let i=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,r=this.domAtPos(s.anchor),o=s.empty?r:this.domAtPos(s.head);if(A.gecko&&s.empty&&kc(r)){let a=document.createTextNode("");this.view.observer.ignore(()=>r.node.insertBefore(a,r.node.childNodes[r.offset]||null)),r=o=new ae(a,0),i=!0}let l=this.view.observer.selectionRange;(i||!l.focusNode||!Qi(r.node,r.offset,l.anchorNode,l.anchorOffset)||!Qi(o.node,o.offset,l.focusNode,l.focusOffset))&&(this.view.observer.ignore(()=>{A.android&&A.chrome&&this.dom.contains(l.focusNode)&&Oc(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let a=Yi(this.view.root);if(a)if(s.empty){if(A.gecko){let h=Ac(r.node,r.offset);if(h&&h!=3){let c=Ul(r.node,r.offset,h==1?1:-1);c&&(r=new ae(c,h==1?0:c.nodeValue.length))}}a.collapse(r.node,r.offset),s.bidiLevel!=null&&l.cursorBidiLevel!=null&&(l.cursorBidiLevel=s.bidiLevel)}else if(a.extend){a.collapse(r.node,r.offset);try{a.extend(o.node,o.offset)}catch{}}else{let h=document.createRange();s.anchor>s.head&&([r,o]=[o,r]),h.setEnd(o.node,o.offset),h.setStart(r.node,r.offset),a.removeAllRanges(),a.addRange(h)}}),this.view.observer.setSelectionRange(r,o)),this.impreciseAnchor=r.precise?null:new ae(l.anchorNode,l.anchorOffset),this.impreciseHead=o.precise?null:new ae(l.focusNode,l.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view:e}=this,t=e.state.selection.main,i=Yi(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let o=ue.find(this,t.head);if(!o)return;let l=o.posAtStart;if(t.head==l||t.head==l+o.length)return;let a=this.coordsAt(t.head,-1),h=this.coordsAt(t.head,1);if(!a||!h||a.bottom>h.top)return;let c=this.domAtPos(t.head+t.assoc);i.collapse(c.node,c.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=t.from&&i.collapse(s,r)}mayControlSelection(){let e=this.view.root.activeElement;return e==this.dom||Ki(this.dom,this.view.observer.selectionRange)&&!(e&&this.dom.contains(e))}nearest(e){for(let t=e;t;){let i=H.get(t);if(i&&i.rootView==this)return i;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;to||e==o&&r.type!=q.WidgetBefore&&r.type!=q.WidgetAfter&&(!s||t==2||this.children[s-1].breakAfter||this.children[s-1].type==q.WidgetBefore&&t>-2))return r.coordsAt(e-o,t);i=o}}measureVisibleLineHeights(e){let t=[],{from:i,to:s}=e,r=this.view.contentDOM.clientWidth,o=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==_.LTR;for(let h=0,c=0;cs)break;if(h>=i){let d=f.dom.getBoundingClientRect();if(t.push(d.height),o){let p=f.dom.lastChild,m=p?hi(p):[];if(m.length){let g=m[m.length-1],y=a?g.right-d.left:d.right-g.left;y>l&&(l=y,this.minWidth=r,this.minWidthFrom=h,this.minWidthTo=u)}}}h=u+f.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?_.RTL:_.LTR}measureTextSize(){for(let s of this.children)if(s instanceof ue){let r=s.measureTextSize();if(r)return r}let e=document.createElement("div"),t,i;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=hi(e.firstChild)[0];t=e.getBoundingClientRect().height,i=s?s.width/27:7,e.remove()}),{lineHeight:t,charWidth:i}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new xl(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,s=0;;s++){let r=s==t.viewports.length?null:t.viewports[s],o=r?r.from-1:this.length;if(o>i){let l=t.lineBlockAt(o).bottom-t.lineBlockAt(i).top;e.push(T.replace({widget:new qr(l),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return T.set(e)}updateDeco(){let e=this.view.state.facet(fi).map((t,i)=>(this.dynamicDecorationMap[i]=typeof t=="function")?t(this.view):t);for(let t=e.length;tt.anchor?-1:1),s;if(!i)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)});let r=0,o=0,l=0,a=0;for(let c of this.view.state.facet(Hl).map(f=>f(this.view)))if(c){let{left:f,right:u,top:d,bottom:p}=c;f!=null&&(r=Math.max(r,f)),u!=null&&(o=Math.max(o,u)),d!=null&&(l=Math.max(l,d)),p!=null&&(a=Math.max(a,p))}let h={left:i.left-r,top:i.top-l,right:i.right+o,bottom:i.bottom+a};oc(this.view.scrollDOM,h,t.head0&&t<=0)n=n.childNodes[e-1],e=ci(n);else if(n.nodeType==1&&e=0)n=n.childNodes[e],e=0;else return null}}function Ac(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let h=fe(s.text,o,!1);if(i(s.text.slice(h,o))!=a)break;o=h}for(;ln?e.left-n:Math.max(0,n-e.right)}function Pc(n,e){return e.top>n?e.top-n:Math.max(0,n-e.bottom)}function Vn(n,e){return n.tope.top+1}function $r(n,e){return en.bottom?{top:n.top,left:n.left,right:n.right,bottom:e}:n}function vs(n,e,t){let i,s,r,o,l=!1,a,h,c,f;for(let p=n.firstChild;p;p=p.nextSibling){let m=hi(p);for(let g=0;gx||o==x&&r>S)&&(i=p,s=y,r=S,o=x,l=!S||(S>0?g0)),S==0?t>y.bottom&&(!c||c.bottomy.top)&&(h=p,f=y):c&&Vn(c,y)?c=Kr(c,y.bottom):f&&Vn(f,y)&&(f=$r(f,y.top))}}if(c&&c.bottom>=t?(i=a,s=c):f&&f.top<=t&&(i=h,s=f),!i)return{node:n,offset:0};let u=Math.max(s.left,Math.min(s.right,e));if(i.nodeType==3)return jr(i,u,t);if(l&&i.contentEditable!="false")return vs(i,u,t);let d=Array.prototype.indexOf.call(n.childNodes,i)+(e>=(s.left+s.right)/2?1:0);return{node:n,offset:d}}function jr(n,e,t){let i=n.nodeValue.length,s=-1,r=1e9,o=0;for(let l=0;lt?c.top-t:t-c.bottom)-1;if(c.left-1<=e&&c.right+1>=e&&f=(c.left+c.right)/2,d=u;if((A.chrome||A.gecko)&&Vt(n,l).getBoundingClientRect().left==c.right&&(d=!u),f<=0)return{node:n,offset:l+(d?1:0)};s=l+(d?1:0),r=f}}}return{node:n,offset:s>-1?s:o>0?n.nodeValue.length:0}}function Gl(n,{x:e,y:t},i,s=-1){var r;let o=n.contentDOM.getBoundingClientRect(),l=o.top+n.viewState.paddingTop,a,{docHeight:h}=n.viewState,c=t-l;if(c<0)return 0;if(c>h)return n.state.doc.length;for(let y=n.defaultLineHeight/2,S=!1;a=n.elementAtHeight(c),a.type!=q.Text;)for(;c=s>0?a.bottom+y:a.top-y,!(c>=0&&c<=h);){if(S)return i?null:0;S=!0,s=-s}t=l+c;let f=a.from;if(fn.viewport.to)return n.viewport.to==n.state.doc.length?n.state.doc.length:i?null:Ur(n,o,a,e,t);let u=n.dom.ownerDocument,d=n.root.elementFromPoint?n.root:u,p=d.elementFromPoint(e,t);p&&!n.contentDOM.contains(p)&&(p=null),p||(e=Math.max(o.left+1,Math.min(o.right-1,e)),p=d.elementFromPoint(e,t),p&&!n.contentDOM.contains(p)&&(p=null));let m,g=-1;if(p&&((r=n.docView.nearest(p))===null||r===void 0?void 0:r.isEditable)!=!1){if(u.caretPositionFromPoint){let y=u.caretPositionFromPoint(e,t);y&&({offsetNode:m,offset:g}=y)}else if(u.caretRangeFromPoint){let y=u.caretRangeFromPoint(e,t);y&&({startContainer:m,startOffset:g}=y,(!n.contentDOM.contains(m)||A.safari&&Rc(m,g,e)||A.chrome&&Lc(m,g,e))&&(m=void 0))}}if(!m||!n.docView.dom.contains(m)){let y=ue.find(n.docView,f);if(!y)return c>a.top+a.height/2?a.to:a.from;({node:m,offset:g}=vs(y.dom,e,t))}return n.docView.posFromDOM(m,g)}function Ur(n,e,t,i,s){let r=Math.round((i-e.left)*n.defaultCharacterWidth);if(n.lineWrapping&&t.height>n.defaultLineHeight*1.5){let l=Math.floor((s-t.top)/n.defaultLineHeight);r+=l*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+ls(o,r,n.state.tabSize)}function Rc(n,e,t){let i;if(n.nodeType!=3||e!=(i=n.nodeValue.length))return!1;for(let s=n.nextSibling;s;s=s.nextSibling)if(s.nodeType!=1||s.nodeName!="BR")return!1;return Vt(n,i-1,i).getBoundingClientRect().left>t}function Lc(n,e,t){if(e!=0)return!1;for(let s=n;;){let r=s.parentNode;if(!r||r.nodeType!=1||r.firstChild!=s)return!1;if(r.classList.contains("cm-line"))break;s=r}let i=n.nodeType==1?n.getBoundingClientRect():Vt(n,0,Math.max(n.nodeValue.length,1)).getBoundingClientRect();return t-i.left>5}function Ec(n,e,t,i){let s=n.state.doc.lineAt(e.head),r=!i||!n.lineWrapping?null:n.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let a=n.dom.getBoundingClientRect(),h=n.textDirectionAt(s.from),c=n.posAtCoords({x:t==(h==_.LTR)?a.right-1:a.left+1,y:(r.top+r.bottom)/2});if(c!=null)return b.cursor(c,t?-1:1)}let o=ue.find(n.docView,e.head),l=o?t?o.posAtEnd:o.posAtStart:t?s.to:s.from;return b.cursor(l,t?-1:1)}function Gr(n,e,t,i){let s=n.state.doc.lineAt(e.head),r=n.bidiSpans(s),o=n.textDirectionAt(s.from);for(let l=e,a=null;;){let h=vc(s,r,o,l,t),c=$l;if(!h){if(s.number==(t?n.state.doc.lines:1))return l;c=` -`,s=n.state.doc.line(s.number+(t?1:-1)),r=n.bidiSpans(s),h=b.cursor(t?s.from:s.to)}if(a){if(!a(c))return l}else{if(!i)return h;a=i(c)}l=h}}function Ic(n,e,t){let i=n.state.charCategorizer(e),s=i(t);return r=>{let o=i(r);return s==z.Space&&(s=o),s==o}}function Nc(n,e,t,i){let s=e.head,r=t?1:-1;if(s==(t?n.state.doc.length:0))return b.cursor(s,e.assoc);let o=e.goalColumn,l,a=n.contentDOM.getBoundingClientRect(),h=n.coordsAtPos(s),c=n.documentTop;if(h)o==null&&(o=h.left-a.left),l=r<0?h.top:h.bottom;else{let d=n.viewState.lineBlockAt(s);o==null&&(o=Math.min(a.right-a.left,n.defaultCharacterWidth*(s-d.from))),l=(r<0?d.top:d.bottom)+c}let f=a.left+o,u=i!=null?i:n.defaultLineHeight>>1;for(let d=0;;d+=10){let p=l+(u+d)*r,m=Gl(n,{x:f,y:p},!1,r);if(pa.bottom||(r<0?ms))return b.cursor(m,e.assoc,void 0,o)}}function Fn(n,e,t){let i=n.state.facet(Wl).map(s=>s(n));for(;;){let s=!1;for(let r of i)r.between(t.from-1,t.from+1,(o,l,a)=>{t.from>o&&t.fromt.from?b.cursor(o,1):b.cursor(l,-1),s=!0)});if(!s)return t}}class Vc{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.mouseSelection=null;for(let t in Z){let i=Z[t];e.contentDOM.addEventListener(t,s=>{!Jr(e,s)||this.ignoreDuringComposition(s)||t=="keydown"&&this.keydown(e,s)||(this.mustFlushObserver(s)&&e.observer.forceFlush(),this.runCustomHandlers(t,e,s)?s.preventDefault():i(e,s))},ks[t]),this.registeredEvents.push(t)}A.chrome&&A.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,A.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var i;let s;this.customHandlers=[];for(let r of t)if(s=(i=r.update(e).spec)===null||i===void 0?void 0:i.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:s});for(let o in s)this.registeredEvents.indexOf(o)<0&&o!="scroll"&&(this.registeredEvents.push(o),e.contentDOM.addEventListener(o,l=>{!Jr(e,l)||this.runCustomHandlers(o,e,l)&&l.preventDefault()}))}}runCustomHandlers(e,t,i){for(let s of this.customHandlers){let r=s.handlers[e];if(r)try{if(r.call(s.plugin,i,t)||i.defaultPrevented)return!0}catch(o){Ee(t.state,o)}}return!1}runScrollHandlers(e,t){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let i of this.customHandlers){let s=i.handlers.scroll;if(s)try{s.call(i.plugin,t,e)}catch(r){Ee(e.state,r)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()s.keyCode==t.keyCode))&&!t.ctrlKey||Fc.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=i||t,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,Lt(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:A.safari&&!A.ios&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const Jl=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Fc="dthko",_l=[16,17,18,20,91,92,224,225];class Wc{constructor(e,t,i,s){this.view=e,this.style=i,this.mustSelect=s,this.lastEvent=t;let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(N.allowMultipleSelections)&&Hc(e,t),this.dragMove=zc(e,t),this.dragging=qc(e,t)&&Zl(t)==1?null:!1,this.dragging===!1&&(t.preventDefault(),this.select(t))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}select(e){let t=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!t.eq(this.view.state.selection)||t.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:t,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function Hc(n,e){let t=n.state.facet(Pl);return t.length?t[0](e):A.mac?e.metaKey:e.ctrlKey}function zc(n,e){let t=n.state.facet(Rl);return t.length?t[0](e):A.mac?!e.altKey:!e.ctrlKey}function qc(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let i=Yi(n.root);if(!i||i.rangeCount==0)return!0;let s=i.getRangeAt(0).getClientRects();for(let r=0;r=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function Jr(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=H.get(t))&&i.ignoreEvent(e))return!1;return!0}const Z=Object.create(null),ks=Object.create(null),Xl=A.ie&&A.ie_version<15||A.ios&&A.webkit_version<604;function $c(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),Yl(n,t.value)},50)}function Yl(n,e){let{state:t}=n,i,s=1,r=t.toText(e),o=r.lines==t.selection.ranges.length;if(Ss!=null&&t.selection.ranges.every(a=>a.empty)&&Ss==r.toString()){let a=-1;i=t.changeByRange(h=>{let c=t.doc.lineAt(h.from);if(c.from==a)return{range:h};a=c.from;let f=t.toText((o?r.line(s++).text:e)+t.lineBreak);return{changes:{from:c.from,insert:f},range:b.cursor(h.from+f.length)}})}else o?i=t.changeByRange(a=>{let h=r.line(s++);return{changes:{from:a.from,to:a.to,insert:h.text},range:b.cursor(a.from+h.length)}}):i=t.replaceSelection(r);n.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Z.keydown=(n,e)=>{n.inputState.setSelectionOrigin("select"),e.keyCode==27?n.inputState.lastEscPress=Date.now():_l.indexOf(e.keyCode)<0&&(n.inputState.lastEscPress=0)};Z.touchstart=(n,e)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};Z.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};ks.touchstart=ks.touchmove={passive:!0};Z.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let i of n.state.facet(Ll))if(t=i(n,e),t)break;if(!t&&e.button==0&&(t=Uc(n,e)),t){let i=n.root.activeElement!=n.contentDOM;i&&n.observer.ignore(()=>bl(n.contentDOM)),n.inputState.startMouseSelection(new Wc(n,e,t,i))}};function _r(n,e,t,i){if(i==1)return b.cursor(e,t);if(i==2)return Tc(n.state,e,t);{let s=ue.find(n.docView,e),r=n.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:r.from,l=s?s.posAtEnd:r.to;return ln>=e.top&&n<=e.bottom,Xr=(n,e,t)=>Ql(e,t)&&n>=t.left&&n<=t.right;function Kc(n,e,t,i){let s=ue.find(n.docView,e);if(!s)return 1;let r=e-s.posAtStart;if(r==0)return 1;if(r==s.length)return-1;let o=s.coordsAt(r,-1);if(o&&Xr(t,i,o))return-1;let l=s.coordsAt(r,1);return l&&Xr(t,i,l)?1:o&&Ql(i,o)?-1:1}function Yr(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:Kc(n,t,e.clientX,e.clientY)}}const jc=A.ie&&A.ie_version<=11;let Qr=null,Zr=0,eo=0;function Zl(n){if(!jc)return n.detail;let e=Qr,t=eo;return Qr=n,eo=Date.now(),Zr=!e||t>Date.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(Zr+1)%3:1}function Uc(n,e){let t=Yr(n,e),i=Zl(e),s=n.state.selection,r=t,o=e;return{update(l){l.docChanged&&(t.pos=l.changes.mapPos(t.pos),s=s.map(l.changes),o=null)},get(l,a,h){let c;o&&l.clientX==o.clientX&&l.clientY==o.clientY?c=r:(c=r=Yr(n,l),o=l);let f=_r(n,c.pos,c.bias,i);if(t.pos!=c.pos&&!a){let u=_r(n,t.pos,t.bias,i),d=Math.min(u.from,f.from),p=Math.max(u.to,f.to);f=d1&&s.ranges.some(u=>u.eq(f))?Gc(s,f):h?s.addRange(f):b.create([f])}}}function Gc(n,e){for(let t=0;;t++)if(n.ranges[t].eq(e))return b.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}Z.dragstart=(n,e)=>{let{selection:{main:t}}=n.state,{mouseSelection:i}=n.inputState;i&&(i.dragging=t),e.dataTransfer&&(e.dataTransfer.setData("Text",n.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove")};function to(n,e,t,i){if(!t)return;let s=n.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:r}=n.inputState,o=i&&r&&r.dragging&&r.dragMove?{from:r.dragging.from,to:r.dragging.to}:null,l={from:s,insert:t},a=n.state.changes(o?[o,l]:l);n.focus(),n.dispatch({changes:a,selection:{anchor:a.mapPos(s,-1),head:a.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"})}Z.drop=(n,e)=>{if(!e.dataTransfer)return;if(n.state.readOnly)return e.preventDefault();let t=e.dataTransfer.files;if(t&&t.length){e.preventDefault();let i=Array(t.length),s=0,r=()=>{++s==t.length&&to(n,e,i.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(i[o]=l.result),r()},l.readAsText(t[o])}}else to(n,e,e.dataTransfer.getData("Text"),!0)};Z.paste=(n,e)=>{if(n.state.readOnly)return e.preventDefault();n.observer.flush();let t=Xl?null:e.clipboardData;t?(Yl(n,t.getData("text/plain")),e.preventDefault()):$c(n)};function Jc(n,e){let t=n.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),n.focus()},50)}function _c(n){let e=[],t=[],i=!1;for(let s of n.selection.ranges)s.empty||(e.push(n.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:r}of n.selection.ranges){let o=n.doc.lineAt(r);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),s=o.number}i=!0}return{text:e.join(n.lineBreak),ranges:t,linewise:i}}let Ss=null;Z.copy=Z.cut=(n,e)=>{let{text:t,ranges:i,linewise:s}=_c(n.state);if(!t&&!s)return;Ss=s?t:null;let r=Xl?null:e.clipboardData;r?(e.preventDefault(),r.clearData(),r.setData("text/plain",t)):Jc(n,t),e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"})};function ea(n){setTimeout(()=>{n.hasFocus!=n.inputState.notifiedFocused&&n.update([])},10)}Z.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),ea(n)};Z.blur=n=>{n.observer.clearSelectionRange(),ea(n)};Z.compositionstart=Z.compositionupdate=n=>{n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0)};Z.compositionend=n=>{n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionFirstChange=null,A.chrome&&A.android&&n.observer.flushSoon(),setTimeout(()=>{n.inputState.composing<0&&n.docView.compositionDeco.size&&n.update([])},50)};Z.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};Z.beforeinput=(n,e)=>{var t;let i;if(A.chrome&&A.android&&(i=Jl.find(s=>s.inputType==e.inputType))&&(n.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let s=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>s+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}};const io=["pre-wrap","normal","pre-line","break-spaces"];class Xc{constructor(e){this.lineWrapping=e,this.doc=I.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength)),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return io.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,l=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=t,this.charWidth=i,this.lineLength=s,l){this.heightSamples={};for(let a=0;a0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>ji&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return de.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,s){let r=this;for(let o=s.length-1;o>=0;o--){let{fromA:l,toA:a,fromB:h,toB:c}=s[o],f=r.lineAt(l,W.ByPosNoHeight,t,0,0),u=f.to>=a?f:r.lineAt(a,W.ByPosNoHeight,t,0,0);for(c+=u.to-a,a=u.to;o>0&&f.from<=s[o-1].toA;)l=s[o-1].fromA,h=s[o-1].fromB,o--,lr*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),i+=1+l.break,s-=l.size}else if(r>s*2){let l=e[i];l.break?e.splice(i,1,l.left,null,l.right):e.splice(i,1,l.left,l.right),i+=2+l.break,r-=l.size}else break;else if(s=r&&o(this.blockAt(0,i,s,r))}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more&&this.setHeight(e,s.heights[s.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class ke extends ta{constructor(e,t){super(e,t,q.Text),this.collapsed=0,this.widgetHeight=0}replace(e,t,i){let s=i[0];return i.length==1&&(s instanceof ke||s instanceof te&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof te?s=new ke(s.length,this.height):s.height=this.height,this.outdated||(s.outdated=!1),s):de.of(i)}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more?this.setHeight(e,s.heights[s.index++]):(i||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class te extends de{constructor(e){super(e,0)}lines(e,t){let i=e.lineAt(t).number,s=e.lineAt(t+this.length).number;return{firstLine:i,lastLine:s,lineHeight:this.height/(s-i+1)}}blockAt(e,t,i,s){let{firstLine:r,lastLine:o,lineHeight:l}=this.lines(t,s),a=Math.max(0,Math.min(o-r,Math.floor((e-i)/l))),{from:h,length:c}=t.line(r+a);return new nt(h,c,i+l*a,l,q.Text)}lineAt(e,t,i,s,r){if(t==W.ByHeight)return this.blockAt(e,i,s,r);if(t==W.ByPosNoHeight){let{from:f,to:u}=i.lineAt(e);return new nt(f,u-f,0,0,q.Text)}let{firstLine:o,lineHeight:l}=this.lines(i,r),{from:a,length:h,number:c}=i.lineAt(e);return new nt(a,h,s+l*(c-o),l,q.Text)}forEachLine(e,t,i,s,r,o){let{firstLine:l,lineHeight:a}=this.lines(i,r);for(let h=Math.max(e,r),c=Math.min(r+this.length,t);h<=c;){let f=i.lineAt(h);h==e&&(s+=a*(f.number-l)),o(new nt(f.from,f.length,s,a,q.Text)),s+=a,h=f.to+1}}replace(e,t,i){let s=this.length-t;if(s>0){let r=i[i.length-1];r instanceof te?i[i.length-1]=new te(r.length+s):i.push(null,new te(s-1))}if(e>0){let r=i[0];r instanceof te?i[0]=new te(e+r.length):i.unshift(new te(e-1),null)}return de.of(i)}decomposeLeft(e,t){t.push(new te(e-1),null)}decomposeRight(e,t){t.push(null,new te(this.length-e-1))}updateHeight(e,t=0,i=!1,s){let r=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],l=Math.max(t,s.from),a=-1,h=e.heightChanged;for(s.from>t&&o.push(new te(s.from-t-1).updateHeight(e,t));l<=r&&s.more;){let f=e.doc.lineAt(l).length;o.length&&o.push(null);let u=s.heights[s.index++];a==-1?a=u:Math.abs(u-a)>=ji&&(a=-2);let d=new ke(f,u);d.outdated=!1,o.push(d),l+=f+1}l<=r&&o.push(null,new te(r-l).updateHeight(e,l));let c=de.of(o);return e.heightChanged=h||a<0||Math.abs(c.height-this.height)>=ji||Math.abs(a-this.lines(e.doc,t).lineHeight)>=ji,c}else(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class Qc extends de{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,s){let r=i+this.left.height;return el))return h;let c=t==W.ByPosNoHeight?W.ByPosNoHeight:W.ByPos;return a?h.join(this.right.lineAt(l,c,i,o,l)):this.left.lineAt(l,c,i,s,r).join(h)}forEachLine(e,t,i,s,r,o){let l=s+this.left.height,a=r+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,l,a,o);else{let h=this.lineAt(a,W.ByPos,i,s,r);e=e&&h.from<=t&&o(h),t>h.to&&this.right.forEachLine(h.to+1,t,i,l,a,o)}}replace(e,t,i){let s=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,i));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let l of i)r.push(l);if(e>0&&no(r,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,s=i+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e2*t.size||t.size>2*e.size?de.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,s){let{left:r,right:o}=this,l=t+r.length+this.break,a=null;return s&&s.from<=t+r.length&&s.more?a=r=r.updateHeight(e,t,i,s):r.updateHeight(e,t,i),s&&s.from<=l+o.length&&s.more?a=o=o.updateHeight(e,l,i,s):o.updateHeight(e,l,i),a?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function no(n,e){let t,i;n[e]==null&&(t=n[e-1])instanceof te&&(i=n[e+1])instanceof te&&n.splice(e-1,3,new te(t.length+1+i.length))}const Zc=5;class Xs{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof ke?s.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new ke(i-this.pos,-1)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=Zc)&&this.addLineDeco(s,r)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new ke(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new te(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof ke)return e;let t=new ke(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine(),e.type==q.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=q.WidgetBefore&&(this.covering=e)}addLineDeco(e,t){let i=this.ensureLine();i.length+=t,i.collapsed+=t,i.widgetHeight=Math.max(i.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof ke)&&!this.isCovered?this.nodes.push(new ke(0,-1)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&f.overflow!="visible"){let u=c.getBoundingClientRect();r=Math.max(r,u.left),o=Math.min(o,u.right),l=Math.max(l,u.top),a=h==n.parentNode?u.bottom:Math.min(a,u.bottom)}h=f.position=="absolute"||f.position=="fixed"?c.offsetParent:c.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:r-t.left,right:Math.max(r,o)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function sf(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class Wn{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new Xc(t),this.stateDeco=e.facet(fi).filter(i=>typeof i!="function"),this.heightMap=de.empty().applyChanges(this.stateDeco,I.empty,this.heightOracle.setDoc(e.doc),[new Ue(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=T.set(this.lineGaps.map(i=>i.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let s=i?t.head:t.anchor;if(!e.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);e.push(new Di(r,o))}}this.viewports=e.sort((i,s)=>i.from-s.from),this.scaler=this.heightMap.height<=7e6?ro:new af(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:ei(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(fi).filter(h=>typeof h!="function");let s=e.changedRanges,r=Ue.extendWithRanges(s,ef(i,this.stateDeco,e?e.changes:Y.empty(this.state.doc.length))),o=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=o&&(e.flags|=2);let l=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let a=!e.changes.empty||e.flags&2||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Vl)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),s=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?_.RTL:_.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),l=o||this.mustMeasureContent||this.contentDOMHeight!=t.clientHeight;this.contentDOMHeight=t.clientHeight,this.mustMeasureContent=!1;let a=0,h=0,c=parseInt(i.paddingTop)||0,f=parseInt(i.paddingBottom)||0;(this.paddingTop!=c||this.paddingBottom!=f)&&(this.paddingTop=c,this.paddingBottom=f,a|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,a|=8);let u=(this.printing?sf:nf)(t,this.paddingTop),d=u.top-this.pixelViewport.top,p=u.bottom-this.pixelViewport.bottom;this.pixelViewport=u;let m=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(m!=this.inView&&(this.inView=m,m&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let g=t.clientWidth;if((this.contentDOMWidth!=g||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=g,this.editorHeight=e.scrollDOM.clientHeight,a|=8),l){let S=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(S)&&(o=!0),o||s.lineWrapping&&Math.abs(g-this.contentDOMWidth)>s.charWidth){let{lineHeight:x,charWidth:C}=e.docView.measureTextSize();o=x>0&&s.refresh(r,x,C,g/C,S),o&&(e.docView.minWidth=0,a|=8)}d>0&&p>0?h=Math.max(d,p):d<0&&p<0&&(h=Math.min(d,p)),s.heightChanged=!1;for(let x of this.viewports){let C=x.from==this.viewport.from?S:e.docView.measureVisibleLineHeights(x);this.heightMap=(o?de.empty().applyChanges(this.stateDeco,I.empty,this.heightOracle,[new Ue(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new Yc(x.from,C))}s.heightChanged&&(a|=2)}let y=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(h,this.scrollTarget)),this.updateForViewport(),(a&2||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),a|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),a}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.state.doc,{visibleTop:o,visibleBottom:l}=this,a=new Di(s.lineAt(o-i*1e3,W.ByHeight,r,0,0).from,s.lineAt(l+(1-i)*1e3,W.ByHeight,r,0,0).to);if(t){let{head:h}=t.range;if(ha.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=s.lineAt(h,W.ByPos,r,0,0),u;t.y=="center"?u=(f.top+f.bottom)/2-c/2:t.y=="start"||t.y=="nearest"&&h=l+Math.max(10,Math.min(i,250)))&&s>o-2*1e3&&r>1,o=s<<1;if(this.defaultTextDirection!=_.LTR&&!i)return[];let l=[],a=(h,c,f,u)=>{if(c-hh&&gg.from>=f.from&&g.to<=f.to&&Math.abs(g.from-h)g.fromy));if(!m){if(cg.from<=c&&g.to>=c)){let g=t.moveToLineBoundary(b.cursor(c),!1,!0).head;g>h&&(c=g)}m=new Wn(h,c,this.gapSize(f,h,c,u))}l.push(m)};for(let h of this.viewportLines){if(h.lengthh.from&&a(h.from,u,h,c),dt.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];K.spans(e,this.viewport.from,this.viewport.to,{span(s,r){t.push({from:s,to:r})},point(){}},20);let i=t.length!=this.visibleRanges.length||this.visibleRanges.some((s,r)=>s.from!=t[r].from||s.to!=t[r].to);return this.visibleRanges=t,i?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||ei(this.heightMap.lineAt(e,W.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return ei(this.heightMap.lineAt(this.scaler.fromDOM(e),W.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return ei(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Di{constructor(e,t){this.from=e,this.to=t}}function of(n,e,t){let i=[],s=n,r=0;return K.spans(t,n,e,{span(){},point(o,l){o>s&&(i.push({from:s,to:o}),r+=o-s),s=l}},20),s=1)return e[e.length-1].to;let i=Math.floor(n*t);for(let s=0;;s++){let{from:r,to:o}=e[s],l=o-r;if(i<=l)return r+i;i-=l}}function Ti(n,e){let t=0;for(let{from:i,to:s}of n.ranges){if(e<=s){t+=e-i;break}t+=s-i}return t/n.total}function lf(n,e){for(let t of n)if(e(t))return t}const ro={toDOM(n){return n},fromDOM(n){return n},scale:1};class af{constructor(e,t,i){let s=0,r=0,o=0;this.viewports=i.map(({from:l,to:a})=>{let h=t.lineAt(l,W.ByPos,e,0,0).top,c=t.lineAt(a,W.ByPos,e,0,0).bottom;return s+=c-h,{from:l,to:a,top:h,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let l of this.viewports)l.domTop=o+(l.top-r)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),r=l.bottom}toDOM(e){for(let t=0,i=0,s=0;;t++){let r=tei(s,e)):n.type)}const Bi=D.define({combine:n=>n.join(" ")}),Cs=D.define({combine:n=>n.indexOf(!0)>-1}),As=ot.newName(),ia=ot.newName(),na=ot.newName(),sa={"&light":"."+ia,"&dark":"."+na};function Ms(n,e,t){return new ot(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,s=>{if(s=="&")return n;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):n+" "+i}})}const hf=Ms("."+As,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},sa);class cf{constructor(e,t,i,s){this.typeOver=s,this.bounds=null,this.text="";let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let l=r||o?[]:uf(e),a=new Kl(l,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=df(l,this.bounds.from)}else{let l=e.observer.selectionRange,a=r&&r.node==l.focusNode&&r.offset==l.focusOffset||!Nt(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),h=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Nt(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset);this.newSel=b.single(h,a)}}}function ra(n,e){let t,{newSel:i}=e,s=n.state.selection.main;if(e.bounds){let{from:r,to:o}=e.bounds,l=s.from,a=null;(n.inputState.lastKeyCode===8&&n.inputState.lastKeyTime>Date.now()-100||A.android&&e.text.length=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:n.state.doc.slice(s.from,t.from).append(t.insert).append(n.state.doc.slice(t.to,s.to))}:(A.mac||A.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())?(i&&t.insert.length==2&&(i=b.single(i.main.anchor-1,i.main.head-1)),t={from:s.from,to:s.to,insert:I.of([" "])}):A.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` - `&&n.lineWrapping&&(i&&(i=b.single(i.main.anchor-1,i.main.head-1)),t={from:s.from,to:s.to,insert:I.of([" "])}),t){let r=n.state;if(A.ios&&n.inputState.flushIOSKey(n)||A.android&&(t.from==s.from&&t.to==s.to&&t.insert.length==1&&t.insert.lines==2&&Lt(n.contentDOM,"Enter",13)||t.from==s.from-1&&t.to==s.to&&t.insert.length==0&&Lt(n.contentDOM,"Backspace",8)||t.from==s.from&&t.to==s.to+1&&t.insert.length==0&&Lt(n.contentDOM,"Delete",46)))return!0;let o=t.insert.toString();if(n.state.facet(Il).some(h=>h(n,t.from,t.to,o)))return!0;n.inputState.composing>=0&&n.inputState.composing++;let l;if(t.from>=s.from&&t.to<=s.to&&t.to-t.from>=(s.to-s.from)/3&&(!i||i.main.empty&&i.main.from==t.from+t.insert.length)&&n.inputState.composing<0){let h=s.fromt.to?r.sliceDoc(t.to,s.to):"";l=r.replaceSelection(n.state.toText(h+t.insert.sliceString(0,void 0,n.state.lineBreak)+c))}else{let h=r.changes(t),c=i&&!r.selection.main.eq(i.main)&&i.main.to<=h.newLength?i.main:void 0;if(r.selection.ranges.length>1&&n.inputState.composing>=0&&t.to<=s.to&&t.to>=s.to-10){let f=n.state.sliceDoc(t.from,t.to),u=jl(n)||n.state.doc.lineAt(s.head),d=s.to-t.to,p=s.to-s.from;l=r.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:h,range:c||m.map(h)};let g=m.to-d,y=g-f.length;if(m.to-m.from!=p||n.state.sliceDoc(y,g)!=f||u&&m.to>=u.from&&m.from<=u.to)return{range:m};let S=r.changes({from:y,to:g,insert:t.insert}),x=m.to-s.to;return{changes:S,range:c?b.range(Math.max(0,c.anchor+x),Math.max(0,c.head+x)):m.map(S)}})}else l={changes:h,selection:c&&r.selection.replaceRange(c)}}let a="input.type";return n.composing&&(a+=".compose",n.inputState.compositionFirstChange&&(a+=".start",n.inputState.compositionFirstChange=!1)),n.dispatch(l,{scrollIntoView:!0,userEvent:a}),!0}else if(i&&!i.main.eq(s)){let r=!1,o="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(r=!0),o=n.inputState.lastSelectionOrigin),n.dispatch({selection:i,scrollIntoView:r,userEvent:o}),!0}else return!1}function ff(n,e,t,i){let s=Math.min(n.length,e.length),r=0;for(;r0&&l>0&&n.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(i=="end"){let a=Math.max(0,r-Math.min(o,l));t-=o+a-r}if(o=o?r-t:0;r-=a,l=r+(l-o),o=r}else if(l=l?r-t:0;r-=a,o=r+(o-l),l=r}return{from:r,toA:o,toB:l}}function uf(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:s,focusOffset:r}=n.observer.selectionRange;return t&&(e.push(new Hr(t,i)),(s!=t||r!=i)&&e.push(new Hr(s,r))),e}function df(n,e){if(n.length==0)return null;let t=n[0].pos,i=n.length==2?n[1].pos:t;return t>-1&&i>-1?b.single(t+e,i+e):null}const pf={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Hn=A.ie&&A.ie_version<=11;class gf{constructor(e){this.view=e,this.active=!1,this.selectionRange=new lc,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(A.ie&&A.ie_version<=11||A.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Hn&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resize=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(Sn)?i.root.activeElement!=this.dom:!Ki(i.dom,s))return;let r=s.anchorNode&&i.docView.nearest(s.anchorNode);if(r&&r.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(A.ie&&A.ie_version<=11||A.android&&A.chrome)&&!i.state.selection.main.empty&&s.focusNode&&Qi(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=A.safari&&e.root.nodeType==11&&sc(this.dom.ownerDocument)==this.dom&&mf(this.view)||Yi(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=Ki(this.dom,t);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),!this.flush()&&r.force&&Lt(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}processRecords(){let e=this.queue;for(let r of this.observer.takeRecords())e.push(r);e.length&&(this.queue=[]);let t=-1,i=-1,s=!1;for(let r of e){let o=this.readMutation(r);!o||(o.typeOver&&(s=!0),t==-1?{from:t,to:i}=o:(t=Math.min(o.from,t),i=Math.max(o.to,i)))}return{from:t,to:i,typeOver:s}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),s=this.selectionChanged&&Ki(this.dom,this.selectionRange);return e<0&&!s?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new cf(this.view,e,t,i))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let i=this.view.state,s=ra(this.view,t);return this.view.state==i&&this.view.update([]),s}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.dirty|=4),e.type=="childList"){let i=oo(t,e.previousSibling||e.target.previousSibling,-1),s=oo(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resize)===null||i===void 0||i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function oo(n,e,t){for(;e;){let i=H.get(e);if(i&&i.parent==n)return i;let s=e.parentNode;e=s!=n.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function mf(n){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(n.contentDOM.addEventListener("beforeinput",t,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let i=e.startContainer,s=e.startOffset,r=e.endContainer,o=e.endOffset,l=n.docView.domAtPos(n.state.selection.main.anchor);return Qi(l.node,l.offset,r,o)&&([i,s,r,o]=[r,o,i,s]),{anchorNode:i,anchorOffset:s,focusNode:r,focusOffset:o}}class O{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||ac(e.parent)||document,this.viewState=new so(e.state||N.create(e)),this.plugins=this.state.facet(Qt).map(t=>new Nn(t));for(let t of this.plugins)t.update(this);this.observer=new gf(this),this.inputState=new Vc(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new zr(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof Q?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,s,r=this.state;for(let h of e){if(h.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=h.state}if(this.destroyed){this.viewState.state=r;return}let o=this.observer.delayedAndroidKey,l=null;if(o?(this.observer.clearDelayedAndroidKey(),l=this.observer.readChange(),(l&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(l=null)):this.observer.clear(),r.facet(N.phrases)!=this.state.facet(N.phrases))return this.setState(r);s=tn.create(this,r,e);let a=this.viewState.scrollTarget;try{this.updateState=2;for(let h of e){if(a&&(a=a.map(h.changes)),h.scrollIntoView){let{main:c}=h.state.selection;a=new en(c.empty?c:b.cursor(c.head,c.head>c.anchor?-1:1))}for(let c of h.effects)c.is(Fr)&&(a=c.value)}this.viewState.update(s,a),this.bidiCache=nn.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(Zt)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(h=>h.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(Bi)!=s.state.facet(Bi)&&(this.viewState.mustMeasureContent=!0),(t||i||a||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!s.empty)for(let h of this.state.facet(bs))h(s);l&&!ra(this,l)&&o.force&&Lt(this.contentDOM,o.key,o.keyCode)}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new so(e),this.plugins=e.facet(Qt).map(i=>new Nn(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView=new zr(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Qt),i=e.state.facet(Qt);if(t!=i){let s=[];for(let r of i){let o=t.indexOf(r);if(o<0)s.push(new Nn(r));else{let l=this.plugins[o];l.mustUpdate=e,s.push(l)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,{scrollHeight:i,scrollTop:s,clientHeight:r}=this.scrollDOM,o=s>i-r-4?i:s;try{for(let l=0;;l++){this.updateState=1;let a=this.viewport,h=this.viewState.lineBlockAtHeight(o),c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let f=[];c&4||([this.measureRequests,f]=[f,this.measureRequests]);let u=f.map(g=>{try{return g.read(this)}catch(y){return Ee(this.state,y),lo}}),d=tn.create(this,this.state,[]),p=!1,m=!1;d.flags|=c,t?t.flags|=c:t=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),p=this.docView.update(d));for(let g=0;g1||g<-1)&&(this.scrollDOM.scrollTop+=g,m=!0)}if(p&&this.docView.updateSelection(!0),this.viewport.from==a.from&&this.viewport.to==a.to&&!m&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(bs))l(t)}get themeClasses(){return As+" "+(this.state.facet(Cs)?na:ia)+" "+this.state.facet(Bi)}updateAttrs(){let e=ao(this,Fl,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Sn)?"true":"false",class:"cm-content",style:`${A.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),ao(this,_s,t);let i=this.observer.ignore(()=>{let s=ms(this.contentDOM,this.contentAttrs,t),r=ms(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let s of i.effects)if(s.is(O.announce)){t&&(this.announceDOM.textContent=""),t=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(Zt),ot.mount(this.root,this.styleModules.concat(hf).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(e.key!=null){for(let t=0;ti.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return Fn(this,e,Gr(this,e,t,i))}moveByGroup(e,t){return Fn(this,e,Gr(this,e,t,i=>Ic(this,e.head,i)))}moveToLineBoundary(e,t,i=!0){return Ec(this,e,t,i)}moveVertically(e,t,i){return Fn(this,e,Nc(this,e,t,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Gl(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(e),r=this.bidiSpans(s),o=r[Et.find(r,e-s.from,-1,t)];return js(i,o.dir==_.LTR==t>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Nl)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>yf)return ql(e.length);let t=this.textDirectionAt(e.from);for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t)return s.order;let i=xc(e.text,t);return this.bidiCache.push(new nn(e.from,e.to,t,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||A.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{bl(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Fr.of(new en(typeof e=="number"?b.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return pe.define(()=>({}),{eventHandlers:e})}static theme(e,t){let i=ot.newName(),s=[Bi.of(i),Zt.of(Ms(`.${i}`,e))];return t&&t.dark&&s.push(Cs.of(!0)),s}static baseTheme(e){return St.lowest(Zt.of(Ms("."+As,e,sa)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),s=i&&H.get(i)||H.get(e);return((t=s==null?void 0:s.rootView)===null||t===void 0?void 0:t.view)||null}}O.styleModule=Zt;O.inputHandler=Il;O.perLineTextDirection=Nl;O.exceptionSink=El;O.updateListener=bs;O.editable=Sn;O.mouseSelectionStyle=Ll;O.dragMovesSelection=Rl;O.clickAddsSelectionRange=Pl;O.decorations=fi;O.atomicRanges=Wl;O.scrollMargins=Hl;O.darkTheme=Cs;O.contentAttributes=_s;O.editorAttributes=Fl;O.lineWrapping=O.contentAttributes.of({class:"cm-lineWrapping"});O.announce=L.define();const yf=4096,lo={};class nn{constructor(e,t,i,s){this.from=e,this.to=t,this.dir=i,this.order=s}static update(e,t){if(t.empty)return e;let i=[],s=e.length?e[e.length-1].dir:_.LTR;for(let r=Math.max(0,e.length-10);r=0;s--){let r=i[s],o=typeof r=="function"?r(n):r;o&&gs(o,t)}return t}const bf=A.mac?"mac":A.windows?"win":A.linux?"linux":"key";function wf(n,e){const t=n.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let s,r,o,l;for(let a=0;ai.concat(s),[]))),t}function vf(n,e,t){return la(oa(n.state),e,n,t)}let Ze=null;const kf=4e3;function Sf(n,e=bf){let t=Object.create(null),i=Object.create(null),s=(o,l)=>{let a=i[o];if(a==null)i[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,l,a,h)=>{var c,f;let u=t[o]||(t[o]=Object.create(null)),d=l.split(/ (?!$)/).map(g=>wf(g,e));for(let g=1;g{let x=Ze={view:S,prefix:y,scope:o};return setTimeout(()=>{Ze==x&&(Ze=null)},kf),!0}]})}let p=d.join(" ");s(p,!1);let m=u[p]||(u[p]={preventDefault:!1,run:((f=(c=u._any)===null||c===void 0?void 0:c.run)===null||f===void 0?void 0:f.slice())||[]});a&&m.run.push(a),h&&(m.preventDefault=!0)};for(let o of n){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let h of l){let c=t[h]||(t[h]=Object.create(null));c._any||(c._any={preventDefault:!1,run:[]});for(let f in c)c[f].run.push(o.any)}let a=o[e]||o.key;if(!!a)for(let h of l)r(h,a,o.run,o.preventDefault),o.shift&&r(h,"Shift-"+a,o.shift,o.preventDefault)}return t}function la(n,e,t,i){let s=nc(e),r=ie(s,0),o=Se(r)==s.length&&s!=" ",l="",a=!1;Ze&&Ze.view==t&&Ze.scope==i&&(l=Ze.prefix+" ",(a=_l.indexOf(e.keyCode)<0)&&(Ze=null));let h=new Set,c=p=>{if(p){for(let m of p.run)if(!h.has(m)&&(h.add(m),m(t,e)))return!0;p.preventDefault&&(a=!0)}return!1},f=n[i],u,d;if(f){if(c(f[l+Pi(s,e,!o)]))return!0;if(o&&(e.altKey||e.metaKey||e.ctrlKey)&&(u=lt[e.keyCode])&&u!=s){if(c(f[l+Pi(u,e,!0)]))return!0;if(e.shiftKey&&(d=ai[e.keyCode])!=s&&d!=u&&c(f[l+Pi(d,e,!1)]))return!0}else if(o&&e.shiftKey&&c(f[l+Pi(s,e,!0)]))return!0;if(c(f._any))return!0}return a}class aa{constructor(e,t,i,s,r){this.className=e,this.left=t,this.top=i,this.width=s,this.height=r}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}function Cf(n,e){return n.constructor==e.constructor&&n.eq(e)}class Af{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Ui)!=e.state.facet(Ui)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&e.view.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(Ui);for(;t!Cf(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let s of e)s.update&&t&&s.constructor&&this.drawn[i].constructor&&s.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(s.draw(),t);for(;t;){let s=t.nextSibling;t.remove(),t=s}this.drawn=e}}destroy(){this.dom.remove()}}const Ui=D.define();function ha(n){return[pe.define(e=>new Af(e,n)),Ui.of(n)]}const ca=!A.ios,ui=D.define({combine(n){return Ct(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function bg(n={}){return[ui.of(n),Mf,Df,Of,Vl.of(!0)]}function fa(n){return n.startState.facet(ui)!=n.startState.facet(ui)}const Mf=ha({above:!0,markers(n){let{state:e}=n,t=e.facet(ui),i=[];for(let s of e.selection.ranges){let r=s==e.selection.main;if(s.empty?!r||ca:t.drawRangeCursor){let o=Bf(n,s,r);o&&i.push(o)}}return i},update(n,e){n.transactions.some(i=>i.scrollIntoView)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=fa(n);return t&&co(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){co(e.state,n)},class:"cm-cursorLayer"});function co(n,e){e.style.animationDuration=n.facet(ui).cursorBlinkRate+"ms"}const Df=ha({above:!1,markers(n){return n.state.selection.ranges.map(e=>e.empty?[]:Tf(n,e)).reduce((e,t)=>e.concat(t))},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||fa(n)},class:"cm-selectionLayer"}),ua={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};ca&&(ua[".cm-line"].caretColor="transparent !important");const Of=St.highest(O.theme(ua));function da(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==_.LTR?e.left:e.right-n.scrollDOM.clientWidth)-n.scrollDOM.scrollLeft,top:e.top-n.scrollDOM.scrollTop}}function fo(n,e,t){let i=b.cursor(e);return{from:Math.max(t.from,n.moveToLineBoundary(i,!1,!0).from),to:Math.min(t.to,n.moveToLineBoundary(i,!0,!0).from),type:q.Text}}function uo(n,e){let t=n.lineBlockAt(e);if(Array.isArray(t.type)){for(let i of t.type)if(i.to>e||i.to==e&&(i.to==t.to||i.type==q.Text))return i}return t}function Tf(n,e){if(e.to<=n.viewport.from||e.from>=n.viewport.to)return[];let t=Math.max(e.from,n.viewport.from),i=Math.min(e.to,n.viewport.to),s=n.textDirection==_.LTR,r=n.contentDOM,o=r.getBoundingClientRect(),l=da(n),a=window.getComputedStyle(r.firstChild),h=o.left+parseInt(a.paddingLeft)+Math.min(0,parseInt(a.textIndent)),c=o.right-parseInt(a.paddingRight),f=uo(n,t),u=uo(n,i),d=f.type==q.Text?f:null,p=u.type==q.Text?u:null;if(n.lineWrapping&&(d&&(d=fo(n,t,d)),p&&(p=fo(n,i,p))),d&&p&&d.from==p.from)return g(y(e.from,e.to,d));{let x=d?y(e.from,null,d):S(f,!1),C=p?y(null,e.to,p):S(u,!0),k=[];return(d||f).to<(p||u).from-1?k.push(m(h,x.bottom,c,C.top)):x.bottomP&&U.from=xe)break;ee>X&&E(Math.max(Re,X),x==null&&Re<=P,Math.min(ee,xe),C==null&&ee>=V,ce.dir)}if(X=se.to+1,X>=xe)break}return j.length==0&&E(P,x==null,V,C==null,n.textDirection),{top:M,bottom:B,horizontal:j}}function S(x,C){let k=o.top+(C?x.top:x.bottom);return{top:k,bottom:k,horizontal:[]}}}function Bf(n,e,t){let i=n.coordsAtPos(e.head,e.assoc||1);if(!i)return null;let s=da(n);return new aa(t?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",i.left-s.left,i.top-s.top,-1,i.bottom-i.top)}const pa=L.define({map(n,e){return n==null?null:e.mapPos(n)}}),ti=ye.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,i)=>i.is(pa)?i.value:t,n)}}),Pf=pe.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(ti);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(ti)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let n=this.view.state.field(ti),e=n!=null&&this.view.coordsAtPos(n);if(!e)return null;let t=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-t.left+this.view.scrollDOM.scrollLeft,top:e.top-t.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(n){this.cursor&&(n?(this.cursor.style.left=n.left+"px",this.cursor.style.top=n.top+"px",this.cursor.style.height=n.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(ti)!=n&&this.view.dispatch({effects:pa.of(n)})}},{eventHandlers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function wg(){return[ti,Pf]}function po(n,e,t,i,s){e.lastIndex=0;for(let r=n.iterRange(t,i),o=t,l;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;l=e.exec(r.value);)s(o+l.index,l)}function Rf(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let i=[];for(let{from:s,to:r}of t)s=Math.max(n.state.doc.lineAt(s).from,s-e),r=Math.min(n.state.doc.lineAt(r).to,r+e),i.length&&i[i.length-1].to>=s?i[i.length-1].to=r:i.push({from:s,to:r});return i}class Lf{constructor(e){const{regexp:t,decoration:i,decorate:s,boundary:r,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,s)this.addMatch=(l,a,h,c)=>s(c,h,h+l[0].length,l,a);else if(typeof i=="function")this.addMatch=(l,a,h,c)=>{let f=i(l,a,h);f&&c(h,h+l[0].length,f)};else if(i)this.addMatch=(l,a,h,c)=>c(h,h+l[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(e){let t=new wt,i=t.add.bind(t);for(let{from:s,to:r}of Rf(e,this.maxLength))po(e.state.doc,this.regexp,s,r,(o,l)=>this.addMatch(l,e,o,i));return t.finish()}updateDeco(e,t){let i=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((r,o,l,a)=>{a>e.view.viewport.from&&l1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,t.map(e.changes),i,s):t}updateRange(e,t,i,s){for(let r of e.visibleRanges){let o=Math.max(r.from,i),l=Math.min(r.to,s);if(l>o){let a=e.state.doc.lineAt(o),h=a.toa.from;o--)if(this.boundary.test(a.text[o-1-a.from])){c=o;break}for(;lu.push(y.range(m,g));if(a==h)for(this.regexp.lastIndex=c-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(g,e,m,p));t=t.update({filterFrom:c,filterTo:f,filter:(m,g)=>mf,add:u})}}return t}}const Ds=/x/.unicode!=null?"gu":"g",Ef=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Ds),If={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let zn=null;function Nf(){var n;if(zn==null&&typeof document<"u"&&document.body){let e=document.body.style;zn=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return zn||!1}const Gi=D.define({combine(n){let e=Ct(n,{render:null,specialChars:Ef,addSpecialChars:null});return(e.replaceTabs=!Nf())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Ds)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Ds)),e}});function xg(n={}){return[Gi.of(n),Vf()]}let go=null;function Vf(){return go||(go=pe.fromClass(class{constructor(n){this.view=n,this.decorations=T.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(Gi)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new Lf({regexp:n.specialChars,decoration:(e,t,i)=>{let{doc:s}=t.state,r=ie(e[0],0);if(r==9){let o=s.lineAt(i),l=t.state.tabSize,a=bi(o.text,l,i-o.from);return T.replace({widget:new zf((l-a%l)*this.view.defaultCharacterWidth)})}return this.decorationCache[r]||(this.decorationCache[r]=T.replace({widget:new Hf(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(Gi);n.startState.facet(Gi)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const Ff="\u2022";function Wf(n){return n>=32?Ff:n==10?"\u2424":String.fromCharCode(9216+n)}class Hf extends ct{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Wf(this.code),i=e.state.phrase("Control character")+" "+(If[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,t);if(s)return s;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class zf extends ct{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}class qf extends ct{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function vg(n){return pe.fromClass(class{constructor(e){this.view=e,this.placeholder=T.set([T.widget({widget:new qf(n),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?T.none:this.placeholder}},{decorations:e=>e.decorations})}const Os=2e3;function $f(n,e,t){let i=Math.min(e.line,t.line),s=Math.max(e.line,t.line),r=[];if(e.off>Os||t.off>Os||e.col<0||t.col<0){let o=Math.min(e.off,t.off),l=Math.max(e.off,t.off);for(let a=i;a<=s;a++){let h=n.doc.line(a);h.length<=l&&r.push(b.range(h.from+o,h.to+l))}}else{let o=Math.min(e.col,t.col),l=Math.max(e.col,t.col);for(let a=i;a<=s;a++){let h=n.doc.line(a),c=ls(h.text,o,n.tabSize,!0);if(c<0)r.push(b.cursor(h.to));else{let f=ls(h.text,l,n.tabSize);r.push(b.range(h.from+c,h.from+f))}}}return r}function Kf(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function mo(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),s=t-i.from,r=s>Os?-1:s==i.length?Kf(n,e.clientX):bi(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:r,off:s}}function jf(n,e){let t=mo(n,e),i=n.state.selection;return t?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(r);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let l=mo(n,s);if(!l)return i;let a=$f(n.state,t,l);return a.length?o?b.create(a.concat(i.ranges)):b.create(a):i}}:null}function kg(n){let e=(n==null?void 0:n.eventFilter)||(t=>t.altKey&&t.button==0);return O.mouseSelectionStyle.of((t,i)=>e(i)?jf(t,i):null)}const Ri="-10000px";class Uf{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(s=>s),this.tooltipViews=this.tooltips.map(i)}update(e){var t;let i=e.state.facet(this.facet),s=i.filter(o=>o);if(i===this.input){for(let o of this.tooltipViews)o.update&&o.update(e);return!1}let r=[];for(let o=0;o{var e,t,i;return{position:A.ios?"absolute":((e=n.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=n.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||Gf}}}),ga=pe.fromClass(class{constructor(n){this.view=n,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(qn);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new Uf(n,ma,t=>this.createTooltip(t)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n);e&&this.observeIntersection();let t=e||n.geometryChanged,i=n.state.facet(qn);if(i.position!=this.position){this.position=i.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n){let e=n.create(this.view);if(e.dom.classList.add("cm-tooltip"),n.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow",e.dom.appendChild(t)}return e.dom.style.position=this.position,e.dom.style.top=Ri,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var n,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),(n=t.destroy)===null||n===void 0||n.call(t);(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=this.view.dom.getBoundingClientRect();return{editor:n,parent:this.parent?this.container.getBoundingClientRect():n,pos:this.manager.tooltips.map((e,t)=>{let i=this.manager.tooltipViews[t];return i.getCoords?i.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(qn).tooltipSpace(this.view)}}writeMeasure(n){let{editor:e,space:t}=n,i=[];for(let s=0;s=Math.min(e.bottom,t.bottom)||a.rightMath.min(e.right,t.right)+.1){l.style.top=Ri;continue}let c=r.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,f=c?7:0,u=h.right-h.left,d=h.bottom-h.top,p=o.offset||_f,m=this.view.textDirection==_.LTR,g=h.width>t.right-t.left?m?t.left:t.right-h.width:m?Math.min(a.left-(c?14:0)+p.x,t.right-u):Math.max(t.left,a.left-u+(c?14:0)-p.x),y=!!r.above;!r.strictSide&&(y?a.top-(h.bottom-h.top)-p.yt.bottom)&&y==t.bottom-a.bottom>a.top-t.top&&(y=!y);let S=(y?a.top-t.top:t.bottom-a.bottom)-f;if(Sg&&k.topx&&(x=y?k.top-d-2-f:k.bottom+f+2);this.position=="absolute"?(l.style.top=x-n.parent.top+"px",l.style.left=g-n.parent.left+"px"):(l.style.top=x+"px",l.style.left=g+"px"),c&&(c.style.left=`${a.left+(m?p.x:-p.x)-(g+14-7)}px`),o.overlap!==!0&&i.push({left:g,top:x,right:C,bottom:x+d}),l.classList.toggle("cm-tooltip-above",y),l.classList.toggle("cm-tooltip-below",!y),o.positioned&&o.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=Ri}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),Jf=O.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),_f={x:0,y:0},ma=D.define({enables:[ga,Jf]});function Xf(n,e){let t=n.plugin(ga);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const yo=D.define({combine(n){let e,t;for(let i of n)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function sn(n,e){let t=n.plugin(ya),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const ya=pe.fromClass(class{constructor(n){this.input=n.state.facet(rn),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(yo);this.top=new Li(n,!0,e.topContainer),this.bottom=new Li(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(yo);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Li(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Li(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(rn);if(t!=this.input){let i=t.filter(a=>a),s=[],r=[],o=[],l=[];for(let a of i){let h=this.specs.indexOf(a),c;h<0?(c=a(n.view),l.push(c)):(c=this.panels[h],c.update&&c.update(n)),s.push(c),(c.top?r:o).push(c)}this.specs=i,this.panels=s,this.top.sync(r),this.bottom.sync(o);for(let a of l)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>O.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class Li{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=bo(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=bo(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function bo(n){let e=n.nextSibling;return n.remove(),e}const rn=D.define({enables:ya});class vt extends bt{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}vt.prototype.elementClass="";vt.prototype.toDOM=void 0;vt.prototype.mapMode=le.TrackBefore;vt.prototype.startSide=vt.prototype.endSide=-1;vt.prototype.point=!0;const Yf=D.define(),Qf=new class extends vt{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Zf=Yf.compute(["selection"],n=>{let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.head).from;s>t&&(t=s,e.push(Qf.range(s)))}return K.of(e)});function Sg(){return Zf}const eu=1024;let tu=0;class Me{constructor(e,t){this.from=e,this.to=t}}class R{constructor(e={}){this.id=tu++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=ge.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}R.closedBy=new R({deserialize:n=>n.split(" ")});R.openedBy=new R({deserialize:n=>n.split(" ")});R.group=new R({deserialize:n=>n.split(" ")});R.contextHash=new R({perNode:!0});R.lookAhead=new R({perNode:!0});R.mounted=new R({perNode:!0});class iu{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}}const nu=Object.create(null);class ge{constructor(e,t,i,s=0){this.name=e,this.props=t,this.id=i,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):nu,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new ge(e.name||"",t,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(R.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let s of i.split(" "))t[s]=e[i];return i=>{for(let s=i.prop(R.group),r=-1;r<(s?s.length:0);r++){let o=t[r<0?i.name:s[r]];if(o)return o}}}}ge.none=new ge("",Object.create(null),0,8);class Qs{constructor(e){this.types=e;for(let t=0;t=s&&(o.type.isAnonymous||t(o)!==!1)){if(o.firstChild())continue;l=!0}for(;l&&i&&!o.type.isAnonymous&&i(o),!o.nextSibling();){if(!o.parent())return;l=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:tr(ge.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,s)=>new F(this.type,t,i,s,this.propValues),e.makeTree||((t,i,s)=>new F(ge.none,t,i,s)))}static build(e){return ru(e)}}F.empty=new F(ge.none,[],[],0);class Zs{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Zs(this.buffer,this.index)}}class At{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return ge.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return l}slice(e,t,i){let s=this.buffer,r=new Uint16Array(t-e),o=0;for(let l=e,a=0;l=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function wa(n,e){let t=n.childBefore(e);for(;t;){let i=t.lastChild;if(!i||i.to!=t.to)break;i.type.isError&&i.from==i.to?(n=t,t=i.prevSibling):t=i}return n}function Wt(n,e,t,i){for(var s;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to0?l.length:-1;e!=h;e+=t){let c=l[e],f=a[e]+o.from;if(!!ba(s,i,f,f+c.length)){if(c instanceof At){if(r&G.ExcludeBuffers)continue;let u=c.findChild(0,c.buffer.length,t,i-f,s);if(u>-1)return new qe(new su(o,c,e,f),null,u)}else if(r&G.IncludeAnonymous||!c.type.isAnonymous||er(c)){let u;if(!(r&G.IgnoreMounts)&&c.props&&(u=c.prop(R.mounted))&&!u.overlay)return new Te(u.tree,f,e,o);let d=new Te(c,f,e,o);return r&G.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?c.children.length-1:0,t,i,s)}}}if(r&G.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let s;if(!(i&G.IgnoreOverlays)&&(s=this._tree.prop(R.mounted))&&s.overlay){let r=e-this.from;for(let{from:o,to:l}of s.overlay)if((t>0?o<=r:o=r:l>r))return new Te(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new di(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Wt(this,e,t,!1)}resolveInner(e,t=0){return Wt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return wa(this,e)}getChild(e,t=null,i=null){let s=on(this,e,t,i);return s.length?s[0]:null}getChildren(e,t=null,i=null){return on(this,e,t,i)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return ln(this,e)}}function on(n,e,t,i){let s=n.cursor(),r=[];if(!s.firstChild())return r;if(t!=null){for(;!s.type.is(t);)if(!s.nextSibling())return r}for(;;){if(i!=null&&s.type.is(i))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return i==null?r:[]}}function ln(n,e,t=e.length-1){for(let i=n.parent;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class su{constructor(e,t,i,s){this.parent=e,this.buffer=t,this.index=i,this.start=s}}class qe{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new qe(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&G.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new qe(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new qe(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new qe(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new di(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,s=this.index+4,r=i.buffer[this.index+3];if(r>s){let o=i.buffer[this.index+1];e.push(i.slice(s,r,o)),t.push(0)}return new F(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Wt(this,e,t,!1)}resolveInner(e,t=0){return Wt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return wa(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,i=null){let s=on(this,e,t,i);return s.length?s[0]:null}getChildren(e,t=null,i=null){return on(this,e,t,i)}get node(){return this}matchContext(e){return ln(this,e)}}class di{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Te)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=i+s.buffer[e+1],this.to=i+s.buffer[e+2],!0}yield(e){return e?e instanceof Te?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&G.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&G.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&G.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:s}=this;if(s){if(e>0){if(this.index-1)for(let r=t+e,o=e<0?-1:i._tree.children.length;r!=o;r+=e){let l=i._tree.children[r];if(this.mode&G.IncludeAnonymous||l instanceof At||!l.type.isAnonymous||er(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,i=r+1;break e}s=this.stack[--r]}}for(let s=i;s=0;r--){if(r<0)return ln(this.node,e,s);let o=i[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function er(n){return n.children.some(e=>e instanceof At||!e.type.isAnonymous||er(e))}function ru(n){var e;let{buffer:t,nodeSet:i,maxBufferLength:s=eu,reused:r=[],minRepeatType:o=i.types.length}=n,l=Array.isArray(t)?new Zs(t,t.length):t,a=i.types,h=0,c=0;function f(C,k,M,B,j){let{id:E,start:P,end:V,size:U}=l,X=c;for(;U<0;)if(l.next(),U==-1){let ee=r[E];M.push(ee),B.push(P-C);return}else if(U==-3){h=E;return}else if(U==-4){c=E;return}else throw new RangeError(`Unrecognized record size: ${U}`);let xe=a[E],se,ce,Re=P-C;if(V-P<=s&&(ce=m(l.pos-k,j))){let ee=new Uint16Array(ce.size-ce.skip),Le=l.pos-ce.size,_e=ee.length;for(;l.pos>Le;)_e=g(ce.start,ee,_e);se=new At(ee,V-ce.start,i),Re=ce.start-C}else{let ee=l.pos-U;l.next();let Le=[],_e=[],ut=E>=o?E:-1,Mt=0,ki=V;for(;l.pos>ee;)ut>=0&&l.id==ut&&l.size>=0?(l.end<=ki-s&&(d(Le,_e,P,Mt,l.end,ki,ut,X),Mt=Le.length,ki=l.end),l.next()):f(P,ee,Le,_e,ut);if(ut>=0&&Mt>0&&Mt-1&&Mt>0){let wr=u(xe);se=tr(xe,Le,_e,0,Le.length,0,V-P,wr,wr)}else se=p(xe,Le,_e,V-P,X-V)}M.push(se),B.push(Re)}function u(C){return(k,M,B)=>{let j=0,E=k.length-1,P,V;if(E>=0&&(P=k[E])instanceof F){if(!E&&P.type==C&&P.length==B)return P;(V=P.prop(R.lookAhead))&&(j=M[E]+P.length+V)}return p(C,k,M,B,j)}}function d(C,k,M,B,j,E,P,V){let U=[],X=[];for(;C.length>B;)U.push(C.pop()),X.push(k.pop()+M-j);C.push(p(i.types[P],U,X,E-j,V-E)),k.push(j-M)}function p(C,k,M,B,j=0,E){if(h){let P=[R.contextHash,h];E=E?[P].concat(E):[P]}if(j>25){let P=[R.lookAhead,j];E=E?[P].concat(E):[P]}return new F(C,k,M,B,E)}function m(C,k){let M=l.fork(),B=0,j=0,E=0,P=M.end-s,V={size:0,start:0,skip:0};e:for(let U=M.pos-C;M.pos>U;){let X=M.size;if(M.id==k&&X>=0){V.size=B,V.start=j,V.skip=E,E+=4,B+=4,M.next();continue}let xe=M.pos-X;if(X<0||xe=o?4:0,ce=M.start;for(M.next();M.pos>xe;){if(M.size<0)if(M.size==-3)se+=4;else break e;else M.id>=o&&(se+=4);M.next()}j=ce,B+=X,E+=se}return(k<0||B==C)&&(V.size=B,V.start=j,V.skip=E),V.size>4?V:void 0}function g(C,k,M){let{id:B,start:j,end:E,size:P}=l;if(l.next(),P>=0&&B4){let U=l.pos-(P-4);for(;l.pos>U;)M=g(C,k,M)}k[--M]=V,k[--M]=E-C,k[--M]=j-C,k[--M]=B}else P==-3?h=B:P==-4&&(c=B);return M}let y=[],S=[];for(;l.pos>0;)f(n.start||0,n.bufferStart||0,y,S,-1);let x=(e=n.length)!==null&&e!==void 0?e:y.length?S[0]+y[0].length:0;return new F(a[n.topID],y.reverse(),S.reverse(),x)}const xo=new WeakMap;function Ji(n,e){if(!n.isAnonymous||e instanceof At||e.type!=n)return 1;let t=xo.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=n||!(i instanceof F)){t=1;break}t+=Ji(n,i)}xo.set(e,t)}return t}function tr(n,e,t,i,s,r,o,l,a){let h=0;for(let p=i;p=c)break;M+=B}if(x==C+1){if(M>c){let B=p[C];d(B.children,B.positions,0,B.children.length,m[C]+S);continue}f.push(p[C])}else{let B=m[x-1]+p[x-1].length-k;f.push(tr(n,p,m,C,x,k,B,null,a))}u.push(k+S-r)}}return d(e,t,i,s,0),(l||a)(f,u,o)}class Cg{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let s=this.map.get(e);s||this.map.set(e,s=new Map),s.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof qe?this.setBuffer(e.context.buffer,e.index,t):e instanceof Te&&this.map.set(e.tree,t)}get(e){return e instanceof qe?this.getBuffer(e.context.buffer,e.index):e instanceof Te?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class Xe{constructor(e,t,i,s,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let s=[new Xe(0,e.length,e,0,!1,i)];for(let r of t)r.to>e.length&&s.push(r);return s}static applyChanges(e,t,i=128){if(!t.length)return e;let s=[],r=1,o=e.length?e[0]:null;for(let l=0,a=0,h=0;;l++){let c=l=i)for(;o&&o.from=u.from||f<=u.to||h){let d=Math.max(u.from,a)-h,p=Math.min(u.to,f)-h;u=d>=p?null:new Xe(d,p,u.tree,u.offset+h,l>0,!!c)}if(u&&s.push(u),o.to>f)break;o=rnew Me(s.from,s.to)):[new Me(0,0)]:[new Me(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let s=this.startParse(e,t,i);for(;;){let r=s.advance();if(r)return r}}}class ou{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function Ag(n){return(e,t,i,s)=>new au(e,n,t,i,s)}class vo{constructor(e,t,i,s,r){this.parser=e,this.parse=t,this.overlay=i,this.target=s,this.ranges=r}}class lu{constructor(e,t,i,s,r,o,l){this.parser=e,this.predicate=t,this.mounts=i,this.index=s,this.start=r,this.target=o,this.prev=l,this.depth=0,this.ranges=[]}}const Ts=new R({perNode:!0});class au{constructor(e,t,i,s,r){this.nest=t,this.input=i,this.fragments=s,this.ranges=r,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let s of this.inner)s.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new F(i.type,i.children,i.positions,i.length,i.propValues.concat([[Ts,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[R.mounted.id]=new iu(t,e.overlay,e.parser),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;tc.frag.from<=s.from&&c.frag.to>=s.to&&c.mount.overlay);if(h)for(let c of h.mount.overlay){let f=c.from+h.pos,u=c.to+h.pos;f>=s.from&&u<=s.to&&!t.ranges.some(d=>d.fromf)&&t.ranges.push({from:f,to:u})}}l=!1}else if(i&&(o=hu(i.ranges,s.from,s.to)))l=o!=2;else if(!s.type.isAnonymous&&s.fromnew Me(f.from-s.from,f.to-s.from)):null,s.tree,c)),r.overlay?c.length&&(i={ranges:c,depth:0,prev:i}):l=!1}}else t&&(a=t.predicate(s))&&(a===!0&&(a=new Me(s.from,s.to)),a.fromnew Me(c.from-t.start,c.to-t.start)),t.target,h)),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function hu(n,e,t){for(let i of n){if(i.from>=t)break;if(i.to>e)return i.from<=e&&i.to>=t?2:1}return 0}function ko(n,e,t,i,s,r){if(e=e.to);i++);let o=s.children[i],l=o.buffer;function a(h,c,f,u,d){let p=h;for(;l[p+2]+r<=e.from;)p=l[p+3];let m=[],g=[];ko(o,h,p,m,g,u);let y=l[p+1],S=l[p+2],x=y+r==e.from&&S+r==e.to&&l[p]==e.type.id;return m.push(x?e.toTree():a(p+4,l[p+3],o.set.types[l[p]],y,S-y)),g.push(y-u),ko(o,l[p+3],c,m,g,u),new F(f,m,g,d)}s.children[i]=a(0,l.length,ge.none,0,o.length);for(let h=0;h<=t;h++)n.childAfter(e.from)}class So{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(G.IncludeAnonymous|G.IgnoreMounts)}moveTo(e){let{cursor:t}=this,i=e-this.offset;for(;!this.done&&t.from=e&&t.enter(i,1,G.IgnoreOverlays|G.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof F)t=t.children[0];else break}return!1}}class fu{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(t=i.tree.prop(Ts))!==null&&t!==void 0?t:i.to,this.inner=new So(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Ts))!==null&&e!==void 0?e:t.to,this.inner=new So(t.tree,-t.offset)}}findMounts(e,t){var i;let s=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let r=this.inner.cursor.node;r;r=r.parent){let o=(i=r.tree)===null||i===void 0?void 0:i.prop(R.mounted);if(o&&o.parser==t)for(let l=this.fragI;l=r.to)break;a.tree==this.curFrag.tree&&s.push({frag:a,pos:r.from-a.offset,mount:o})}}}return s}}function Co(n,e){let t=null,i=e;for(let s=1,r=0;s=l)break;a.to<=o||(t||(i=t=e.slice()),a.froml&&t.splice(r+1,0,new Me(l,a.to))):a.to>l?t[r--]=new Me(l,a.to):t.splice(r--,1))}}return i}function uu(n,e,t,i){let s=0,r=0,o=!1,l=!1,a=-1e9,h=[];for(;;){let c=s==n.length?1e9:o?n[s].to:n[s].from,f=r==e.length?1e9:l?e[r].to:e[r].from;if(o!=l){let u=Math.max(a,t),d=Math.min(c,f,i);unew Me(u.from+i,u.to+i)),f=uu(e,c,a,h);for(let u=0,d=a;;u++){let p=u==f.length,m=p?h:f[u].from;if(m>d&&t.push(new Xe(d,m,s.tree,-o,r.from>=d||r.openStart,r.to<=m||r.openEnd)),p)break;d=f[u].to}}else t.push(new Xe(a,h,s.tree,-o,r.from>=o||r.openStart,r.to<=l||r.openEnd))}return t}let du=0;class He{constructor(e,t,i){this.set=e,this.base=t,this.modified=i,this.id=du++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new He([],null,[]);if(t.set.push(t),e)for(let i of e.set)t.set.push(i);return t}static defineModifier(){let e=new an;return t=>t.modified.indexOf(e)>-1?t:an.get(t.base||t,t.modified.concat(e).sort((i,s)=>i.id-s.id))}}let pu=0;class an{constructor(){this.instances=[],this.id=pu++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(l=>l.base==e&&gu(t,l.modified));if(i)return i;let s=[],r=new He(s,e,t);for(let l of t)l.instances.push(r);let o=mu(t);for(let l of e.set)if(!l.modified.length)for(let a of o)s.push(an.get(l,a));return r}}function gu(n,e){return n.length==e.length&&n.every((t,i)=>t==e[i])}function mu(n){let e=[[]];for(let t=0;ti.length-t.length)}function yu(n){let e=Object.create(null);for(let t in n){let i=n[t];Array.isArray(i)||(i=[i]);for(let s of t.split(" "))if(s){let r=[],o=2,l=s;for(let f=0;;){if(l=="..."&&f>0&&f+3==s.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+s);if(r.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),f+=u[0].length,f==s.length)break;let d=s[f++];if(f==s.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+s);l=s.slice(f)}let a=r.length-1,h=r[a];if(!h)throw new RangeError("Invalid path: "+s);let c=new hn(i,o,a>0?r.slice(0,a):null);e[h]=c.sort(e[h])}}return va.add(e)}const va=new R;class hn{constructor(e,t,i,s){this.tags=e,this.mode=t,this.context=i,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=s;for(let l of r)for(let a of l.set){let h=t[a.id];if(h){o=o?o+" "+h:h;break}}return o},scope:i}}function bu(n,e){let t=null;for(let i of n){let s=i.style(e);s&&(t=t?t+" "+s:s)}return t}function wu(n,e,t,i=0,s=n.length){let r=new xu(i,Array.isArray(e)?e:[e],t);r.highlightRange(n.cursor(),i,s,"",r.highlighters),r.flush(s)}class xu{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,s,r){let{type:o,from:l,to:a}=e;if(l>=i||a<=t)return;o.isTop&&(r=this.highlighters.filter(d=>!d.scope||d.scope(o)));let h=s,c=vu(e)||hn.empty,f=bu(r,c.tags);if(f&&(h&&(h+=" "),h+=f,c.mode==1&&(s+=(s?" ":"")+f)),this.startSpan(e.from,h),c.opaque)return;let u=e.tree&&e.tree.prop(R.mounted);if(u&&u.overlay){let d=e.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(g=>!g.scope||g.scope(u.tree.type)),m=e.firstChild();for(let g=0,y=l;;g++){let S=g=x||!e.nextSibling())););if(!S||x>i)break;y=S.to+l,y>t&&(this.highlightRange(d.cursor(),Math.max(t,S.from+l),Math.min(i,y),s,p),this.startSpan(y,h))}m&&e.parent()}else if(e.firstChild()){do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,s,r),this.startSpan(Math.min(i,e.to),h)}while(e.nextSibling());e.parent()}}}function vu(n){let e=n.type.prop(va);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}const w=He.define,Ii=w(),Ye=w(),Mo=w(Ye),Do=w(Ye),Qe=w(),Ni=w(Qe),$n=w(Qe),We=w(),dt=w(We),Ve=w(),Fe=w(),Bs=w(),_t=w(Bs),Vi=w(),v={comment:Ii,lineComment:w(Ii),blockComment:w(Ii),docComment:w(Ii),name:Ye,variableName:w(Ye),typeName:Mo,tagName:w(Mo),propertyName:Do,attributeName:w(Do),className:w(Ye),labelName:w(Ye),namespace:w(Ye),macroName:w(Ye),literal:Qe,string:Ni,docString:w(Ni),character:w(Ni),attributeValue:w(Ni),number:$n,integer:w($n),float:w($n),bool:w(Qe),regexp:w(Qe),escape:w(Qe),color:w(Qe),url:w(Qe),keyword:Ve,self:w(Ve),null:w(Ve),atom:w(Ve),unit:w(Ve),modifier:w(Ve),operatorKeyword:w(Ve),controlKeyword:w(Ve),definitionKeyword:w(Ve),moduleKeyword:w(Ve),operator:Fe,derefOperator:w(Fe),arithmeticOperator:w(Fe),logicOperator:w(Fe),bitwiseOperator:w(Fe),compareOperator:w(Fe),updateOperator:w(Fe),definitionOperator:w(Fe),typeOperator:w(Fe),controlOperator:w(Fe),punctuation:Bs,separator:w(Bs),bracket:_t,angleBracket:w(_t),squareBracket:w(_t),paren:w(_t),brace:w(_t),content:We,heading:dt,heading1:w(dt),heading2:w(dt),heading3:w(dt),heading4:w(dt),heading5:w(dt),heading6:w(dt),contentSeparator:w(We),list:w(We),quote:w(We),emphasis:w(We),strong:w(We),link:w(We),monospace:w(We),strikethrough:w(We),inserted:w(),deleted:w(),changed:w(),invalid:w(),meta:Vi,documentMeta:w(Vi),annotation:w(Vi),processingInstruction:w(Vi),definition:He.defineModifier(),constant:He.defineModifier(),function:He.defineModifier(),standard:He.defineModifier(),local:He.defineModifier(),special:He.defineModifier()};ka([{tag:v.link,class:"tok-link"},{tag:v.heading,class:"tok-heading"},{tag:v.emphasis,class:"tok-emphasis"},{tag:v.strong,class:"tok-strong"},{tag:v.keyword,class:"tok-keyword"},{tag:v.atom,class:"tok-atom"},{tag:v.bool,class:"tok-bool"},{tag:v.url,class:"tok-url"},{tag:v.labelName,class:"tok-labelName"},{tag:v.inserted,class:"tok-inserted"},{tag:v.deleted,class:"tok-deleted"},{tag:v.literal,class:"tok-literal"},{tag:v.string,class:"tok-string"},{tag:v.number,class:"tok-number"},{tag:[v.regexp,v.escape,v.special(v.string)],class:"tok-string2"},{tag:v.variableName,class:"tok-variableName"},{tag:v.local(v.variableName),class:"tok-variableName tok-local"},{tag:v.definition(v.variableName),class:"tok-variableName tok-definition"},{tag:v.special(v.variableName),class:"tok-variableName2"},{tag:v.definition(v.propertyName),class:"tok-propertyName tok-definition"},{tag:v.typeName,class:"tok-typeName"},{tag:v.namespace,class:"tok-namespace"},{tag:v.className,class:"tok-className"},{tag:v.macroName,class:"tok-macroName"},{tag:v.propertyName,class:"tok-propertyName"},{tag:v.operator,class:"tok-operator"},{tag:v.comment,class:"tok-comment"},{tag:v.meta,class:"tok-meta"},{tag:v.invalid,class:"tok-invalid"},{tag:v.punctuation,class:"tok-punctuation"}]);var Kn;const Ht=new R;function Sa(n){return D.define({combine:n?e=>e.concat(n):void 0})}class De{constructor(e,t,i=[],s=""){this.data=e,this.name=s,N.prototype.hasOwnProperty("tree")||Object.defineProperty(N.prototype,"tree",{get(){return me(this)}}),this.parser=t,this.extension=[$t.of(this),N.languageData.of((r,o,l)=>r.facet(Oo(r,o,l)))].concat(i)}isActiveAt(e,t,i=-1){return Oo(e,t,i)==this.data}findRegions(e){let t=e.facet($t);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],s=(r,o)=>{if(r.prop(Ht)==this.data){i.push({from:o,to:o+r.length});return}let l=r.prop(R.mounted);if(l){if(l.tree.prop(Ht)==this.data){if(l.overlay)for(let a of l.overlay)i.push({from:a.from+o,to:a.to+o});else i.push({from:o,to:o+r.length});return}else if(l.overlay){let a=i.length;if(s(l.tree,l.overlay[0].from+o),i.length>a)return}}for(let a=0;ai.isTop?t:void 0)]}),e.name)}configure(e,t){return new Ps(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function me(n){let e=n.field(De.state,!1);return e?e.tree:F.empty}class ku{constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,this.string="",this.cursor=e.iter()}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let Xt=null;class zt{constructor(e,t,i=[],s,r,o,l,a){this.parser=e,this.state=t,this.fragments=i,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new zt(e,t,[],F.empty,0,i,[],null)}startParse(){return this.parser.startParse(new ku(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=F.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Xe.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Xt;Xt=this;try{return e()}finally{Xt=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=To(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:s,treeLen:r,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((h,c,f,u)=>a.push({fromA:h,toA:c,fromB:f,toB:u})),i=Xe.applyChanges(i,a),s=F.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let h of this.skipped){let c=e.mapPos(h.from,1),f=e.mapPos(h.to,-1);ce.from&&(this.fragments=To(this.fragments,s,r),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends xa{createParse(t,i,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let a=Xt;if(a){for(let h of s)a.tempSkipped.push(h);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new F(ge.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Xt}}function To(n,e,t){return Xe.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}class qt{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new qt(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=zt.create(e.facet($t).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new qt(i)}}De.state=ye.define({create:qt.init,update(n,e){for(let t of e.effects)if(t.is(De.setState))return t.value;return e.startState.facet($t)!=e.state.facet($t)?qt.init(e.state):n.apply(e)}});let Ca=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Ca=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const jn=typeof navigator<"u"&&((Kn=navigator.scheduling)===null||Kn===void 0?void 0:Kn.isInputPending)?()=>navigator.scheduling.isInputPending():null,Su=pe.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(De.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(De.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Ca(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnds+1e3,a=r.context.work(()=>jn&&jn()||Date.now()>o,s+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:De.setState.of(new qt(r.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Ee(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),$t=D.define({combine(n){return n.length?n[0]:null},enables:n=>[De.state,Su,O.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]});class Dg{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}const Aa=D.define(),Cn=D.define({combine:n=>{if(!n.length)return" ";if(!/^(?: +|\t+)$/.test(n[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return n[0]}});function kt(n){let e=n.facet(Cn);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function cn(n,e){let t="",i=n.tabSize;if(n.facet(Cn).charCodeAt(0)==9)for(;e>=i;)t+=" ",e-=i;for(let s=0;s=i.from&&s<=i.to?r&&s==e?{text:"",from:e}:(t<0?s-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,t=e.length){return bi(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:s}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Cu=new R;function Au(n,e,t){return Da(e.resolveInner(t).enterUnfinishedNodesBefore(t),t,n)}function Mu(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function Du(n){let e=n.type.prop(Cu);if(e)return e;let t=n.firstChild,i;if(t&&(i=t.type.prop(R.closedBy))){let s=n.lastChild,r=s&&i.indexOf(s.name)>-1;return o=>Oa(o,!0,1,void 0,r&&!Mu(o)?s.from:void 0)}return n.parent==null?Ou:null}function Da(n,e,t){for(;n;n=n.parent){let i=Du(n);if(i)return i(ir.create(t,e,n))}return null}function Ou(){return 0}class ir extends An{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.node=i}static create(e,t,i){return new ir(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let t=this.node.resolve(e.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(Tu(t,this.node))break;e=this.state.doc.lineAt(t.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?Da(e,this.pos,this.base):0}}function Tu(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function Bu(n){let e=n.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let s=n.options.simulateBreak,r=n.state.doc.lineAt(t.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==i)return null;if(!a.type.isSkipped)return a.fromOa(i,e,t,n)}function Oa(n,e,t,i,s){let r=n.textAfter,o=r.match(/^\s*/)[0].length,l=i&&r.slice(o,o+i.length)==i||s==n.pos+o,a=e?Bu(n):null;return a?l?n.column(a.from):n.column(a.to):n.baseIndent+(l?0:n.unit*t)}const Tg=n=>n.baseIndent;function Bg({except:n,units:e=1}={}){return t=>{let i=n&&n.test(t.textAfter);return t.baseIndent+(i?0:e*t.unit)}}const Pg=new R;function Rg(n){let e=n.firstChild,t=n.lastChild;return e&&e.tol.prop(Ht)==o.data:o?l=>l==o:void 0,this.style=ka(e.map(l=>({tag:l.tag,class:l.class||s(Object.assign({},l,{tag:null}))})),{all:r}).style,this.module=i?new ot(i):null,this.themeType=t.themeType}static define(e,t){return new Mn(e,t||{})}}const Rs=D.define(),Ta=D.define({combine(n){return n.length?[n[0]]:null}});function Un(n){let e=n.facet(Rs);return e.length?e:n.facet(Ta)}function Lg(n,e){let t=[Ru],i;return n instanceof Mn&&(n.module&&t.push(O.styleModule.of(n.module)),i=n.themeType),e!=null&&e.fallback?t.push(Ta.of(n)):i?t.push(Rs.computeN([O.darkTheme],s=>s.facet(O.darkTheme)==(i=="dark")?[n]:[])):t.push(Rs.of(n)),t}class Pu{constructor(e){this.markCache=Object.create(null),this.tree=me(e.state),this.decorations=this.buildDeco(e,Un(e.state))}update(e){let t=me(e.state),i=Un(e.state),s=i!=Un(e.startState);t.length{i.add(o,l,this.markCache[a]||(this.markCache[a]=T.mark({class:a})))},s,r);return i.finish()}}const Ru=St.high(pe.fromClass(Pu,{decorations:n=>n.decorations})),Eg=Mn.define([{tag:v.meta,color:"#7a757a"},{tag:v.link,textDecoration:"underline"},{tag:v.heading,textDecoration:"underline",fontWeight:"bold"},{tag:v.emphasis,fontStyle:"italic"},{tag:v.strong,fontWeight:"bold"},{tag:v.strikethrough,textDecoration:"line-through"},{tag:v.keyword,color:"#708"},{tag:[v.atom,v.bool,v.url,v.contentSeparator,v.labelName],color:"#219"},{tag:[v.literal,v.inserted],color:"#164"},{tag:[v.string,v.deleted],color:"#a11"},{tag:[v.regexp,v.escape,v.special(v.string)],color:"#e40"},{tag:v.definition(v.variableName),color:"#00f"},{tag:v.local(v.variableName),color:"#30a"},{tag:[v.typeName,v.namespace],color:"#085"},{tag:v.className,color:"#167"},{tag:[v.special(v.variableName),v.macroName],color:"#256"},{tag:v.definition(v.propertyName),color:"#00c"},{tag:v.comment,color:"#940"},{tag:v.invalid,color:"#f00"}]),Lu=O.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Ba=1e4,Pa="()[]{}",Ra=D.define({combine(n){return Ct(n,{afterCursor:!0,brackets:Pa,maxScanDistance:Ba,renderMatch:Nu})}}),Eu=T.mark({class:"cm-matchingBracket"}),Iu=T.mark({class:"cm-nonmatchingBracket"});function Nu(n){let e=[],t=n.matched?Eu:Iu;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}const Vu=ye.define({create(){return T.none},update(n,e){if(!e.docChanged&&!e.selection)return n;let t=[],i=e.state.facet(Ra);for(let s of e.state.selection.ranges){if(!s.empty)continue;let r=$e(e.state,s.head,-1,i)||s.head>0&&$e(e.state,s.head-1,1,i)||i.afterCursor&&($e(e.state,s.head,1,i)||s.headO.decorations.from(n)}),Fu=[Vu,Lu];function Ig(n={}){return[Ra.of(n),Fu]}function Ls(n,e,t){let i=n.prop(e<0?R.openedBy:R.closedBy);if(i)return i;if(n.name.length==1){let s=t.indexOf(n.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function $e(n,e,t,i={}){let s=i.maxScanDistance||Ba,r=i.brackets||Pa,o=me(n),l=o.resolveInner(e,t);for(let a=l;a;a=a.parent){let h=Ls(a.type,t,r);if(h&&a.from=i.to){if(a==0&&s.indexOf(h.type.name)>-1&&h.from0)return null;let h={from:t<0?e-1:e,to:t>0?e+1:e},c=n.doc.iterRange(e,t>0?n.doc.length:0),f=0;for(let u=0;!c.next().done&&u<=r;){let d=c.value;t<0&&(u+=d.length);let p=e+u*t;for(let m=t>0?0:d.length-1,g=t>0?d.length:-1;m!=g;m+=t){let y=o.indexOf(d[m]);if(!(y<0||i.resolveInner(p+m,1).type!=s))if(y%2==0==t>0)f++;else{if(f==1)return{start:h,end:{from:p+m,to:p+m+1},matched:y>>1==a>>1};f--}}t>0&&(u+=d.length)}return c.done?{start:h,matched:!1}:null}function Bo(n,e,t,i=0,s=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let r=s;for(let o=i;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosi?o.toLowerCase():o,r=this.string.substr(this.pos,e.length);return s(r)==s(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}}current(){return this.string.slice(this.start,this.pos)}}function zu(n){return{name:n.name||"",token:n.token,blankLine:n.blankLine||(()=>{}),startState:n.startState||(()=>!0),copyState:n.copyState||qu,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||sr}}function qu(n){if(typeof n!="object")return n;let e={};for(let t in n){let i=n[t];e[t]=i instanceof Array?i.slice():i}return e}class Ea extends De{constructor(e){let t=Sa(e.languageData),i=zu(e),s,r=new class extends xa{createParse(o,l,a){return new Ku(s,o,l,a)}};super(t,r,[Aa.of((o,l)=>this.getIndent(o,l))],e.name),this.topNode=Gu(t),s=this,this.streamParser=i,this.stateAfter=new R({perNode:!0}),this.tokenTable=e.tokenTable?new Fa(i.tokenTable):Uu}static define(e){return new Ea(e)}getIndent(e,t){let i=me(e.state),s=i.resolve(t);for(;s&&s.type!=this.topNode;)s=s.parent;if(!s)return null;let r=nr(this,i,0,s.from,t),o,l;if(r?(l=r.state,o=r.pos+1):(l=this.streamParser.startState(e.unit),o=0),t-o>1e4)return null;for(;o=i&&t+e.length<=s&&e.prop(n.stateAfter);if(r)return{state:n.streamParser.copyState(r),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],a=t+e.positions[o],h=l instanceof F&&a=e.length)return e;!s&&e.type==n.topNode&&(s=!0);for(let r=e.children.length-1;r>=0;r--){let o=e.positions[r],l=e.children[r],a;if(ot&&nr(n,s.tree,0-s.offset,t,o),a;if(l&&(a=Ia(n,s.tree,t+s.offset,l.pos+s.offset,!1)))return{state:l.state,tree:a}}return{state:n.streamParser.startState(i?kt(i):4),tree:F.empty}}class Ku{constructor(e,t,i,s){this.lang=e,this.input=t,this.fragments=i,this.ranges=s,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=s[s.length-1].to;let r=zt.get(),o=s[0].from,{state:l,tree:a}=$u(e,i,o,r==null?void 0:r.state);this.state=l,this.parsedPos=this.chunkStart=o+a.length;for(let h=0;h=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` -`&&(t="");else{let i=t.indexOf(` -`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,l=this.lineAfter(o);t+=l,i=o+l.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;let o=this.ranges[++this.rangeIndex].from;t+=o-s}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){r=this.skipGapsTo(t,r,1),t+=r;let o=this.chunk.length;r=this.skipGapsTo(i,r,-1),i+=r,s+=this.chunk.length-o}return this.chunk.push(e,t,i,s),r}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new La(t,e?e.state.tabSize:4,e?kt(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=Na(r.token,o,this.state);if(l&&(s=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,4,s)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPose.start)return s}throw new Error("Stream parser failed to advance stream.")}const sr=Object.create(null),pi=[ge.none],ju=new Qs(pi),Po=[],Va=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Va[n]=Wa(sr,e);class Fa{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Va)}resolve(e){return e?this.table[e]||(this.table[e]=Wa(this.extra,e)):0}}const Uu=new Fa(sr);function Gn(n,e){Po.indexOf(n)>-1||(Po.push(n),console.warn(e))}function Wa(n,e){let t=null;for(let r of e.split(".")){let o=n[r]||v[r];o?typeof o=="function"?t?t=o(t):Gn(r,`Modifier ${r} used at start of tag`):t?Gn(r,`Tag ${r} used as modifier`):t=o:Gn(r,`Unknown highlighting tag ${r}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),s=ge.define({id:pi.length,name:i,props:[yu({[i]:t})]});return pi.push(s),s.id}function Gu(n){let e=ge.define({id:pi.length,name:"Document",props:[Ht.add(()=>n)]});return pi.push(e),e}const Ju=n=>{let e=or(n.state);return e.line?_u(n):e.block?Yu(n):!1};function rr(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let s=n(e,t);return s?(i(t.update(s)),!0):!1}}const _u=rr(ed,0),Xu=rr(Ha,0),Yu=rr((n,e)=>Ha(n,e,Zu(e)),0);function or(n,e=n.selection.main.head){let t=n.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const Yt=50;function Qu(n,{open:e,close:t},i,s){let r=n.sliceDoc(i-Yt,i),o=n.sliceDoc(s,s+Yt),l=/\s*$/.exec(r)[0].length,a=/^\s*/.exec(o)[0].length,h=r.length-l;if(r.slice(h-e.length,h)==e&&o.slice(a,a+t.length)==t)return{open:{pos:i-l,margin:l&&1},close:{pos:s+a,margin:a&&1}};let c,f;s-i<=2*Yt?c=f=n.sliceDoc(i,s):(c=n.sliceDoc(i,i+Yt),f=n.sliceDoc(s-Yt,s));let u=/^\s*/.exec(c)[0].length,d=/\s*$/.exec(f)[0].length,p=f.length-d-t.length;return c.slice(u,u+e.length)==e&&f.slice(p,p+t.length)==t?{open:{pos:i+u+e.length,margin:/\s/.test(c.charAt(u+e.length))?1:0},close:{pos:s-d-t.length,margin:/\s/.test(f.charAt(p-1))?1:0}}:null}function Zu(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),s=t.to<=i.to?i:n.doc.lineAt(t.to),r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from,to:s.to})}return e}function Ha(n,e,t=e.selection.ranges){let i=t.map(r=>or(e,r.from).block);if(!i.every(r=>r))return null;let s=t.map((r,o)=>Qu(e,i[o],r.from,r.to));if(n!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(n!=1&&s.some(r=>r)){let r=[];for(let o=0,l;os&&(r==o||o>c.from)){s=c.from;let f=or(e,h).line;if(!f)continue;let u=/^\s*/.exec(c.text)[0].length,d=u==c.length,p=c.text.slice(u,u+f.length)==f?u:-1;ur.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:l,token:a,indent:h,empty:c,single:f}of i)(f||!c)&&r.push({from:l.from+h,insert:a+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&i.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:l,token:a}of i)if(l>=0){let h=o.from+l,c=h+a.length;o.text[c-o.from]==" "&&c++,r.push({from:h,to:c})}return{changes:r}}return null}const Es=ht.define(),td=ht.define(),id=D.define(),za=D.define({combine(n){return Ct(n,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function nd(n){let e=0;return n.iterChangedRanges((t,i)=>e=i),e}const qa=ye.define({create(){return Ke.empty},update(n,e){let t=e.state.facet(za),i=e.annotation(Es);if(i){let a=e.docChanged?b.single(nd(e.changes)):void 0,h=we.fromTransaction(e,a),c=i.side,f=c==0?n.undone:n.done;return h?f=fn(f,f.length,t.minDepth,h):f=ja(f,e.startState.selection),new Ke(c==0?i.rest:f,c==0?f:i.rest)}let s=e.annotation(td);if((s=="full"||s=="before")&&(n=n.isolate()),e.annotation(Q.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let r=we.fromTransaction(e),o=e.annotation(Q.time),l=e.annotation(Q.userEvent);return r?n=n.addChanges(r,o,l,t.newGroupDelay,t.minDepth):e.selection&&(n=n.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(s=="full"||s=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new Ke(n.done.map(we.fromJSON),n.undone.map(we.fromJSON))}});function Ng(n={}){return[qa,za.of(n),O.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?$a:e.inputType=="historyRedo"?Is:null;return i?(e.preventDefault(),i(t)):!1}})]}function Dn(n,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let s=t.field(qa,!1);if(!s)return!1;let r=s.pop(n,t,e);return r?(i(r),!0):!1}}const $a=Dn(0,!1),Is=Dn(1,!1),sd=Dn(0,!0),rd=Dn(1,!0);class we{constructor(e,t,i,s,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new we(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new we(e.changes&&Y.fromJSON(e.changes),[],e.mapped&&je.fromJSON(e.mapped),e.startSelection&&b.fromJSON(e.startSelection),e.selectionsAfter.map(b.fromJSON))}static fromTransaction(e,t){let i=Oe;for(let s of e.startState.facet(id)){let r=s(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new we(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Oe)}static selection(e){return new we(void 0,Oe,void 0,void 0,e)}}function fn(n,e,t,i){let s=e+1>t+20?e-t-1:0,r=n.slice(s,e);return r.push(i),r}function od(n,e){let t=[],i=!1;return n.iterChangedRanges((s,r)=>t.push(s,r)),e.iterChangedRanges((s,r,o,l)=>{for(let a=0;a=h&&o<=c&&(i=!0)}}),i}function ld(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function Ka(n,e){return n.length?e.length?n.concat(e):n:e}const Oe=[],ad=200;function ja(n,e){if(n.length){let t=n[n.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-ad));return i.length&&i[i.length-1].eq(e)?n:(i.push(e),fn(n,n.length-1,1e9,t.setSelAfter(i)))}else return[we.selection([e])]}function hd(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Jn(n,e){if(!n.length)return n;let t=n.length,i=Oe;for(;t;){let s=cd(n[t-1],e,i);if(s.changes&&!s.changes.empty||s.effects.length){let r=n.slice(0,t);return r[t-1]=s,r}else e=s.mapped,t--,i=s.selectionsAfter}return i.length?[we.selection(i)]:Oe}function cd(n,e,t){let i=Ka(n.selectionsAfter.length?n.selectionsAfter.map(l=>l.map(e)):Oe,t);if(!n.changes)return we.selection(i);let s=n.changes.map(e),r=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(r):r;return new we(s,L.mapEffects(n.effects,e),o,n.startSelection.map(r),i)}const fd=/^(input\.type|delete)($|\.)/;class Ke{constructor(e,t,i=0,s=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=s}isolate(){return this.prevTime?new Ke(this.done,this.undone):this}addChanges(e,t,i,s,r){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!i||fd.test(i))&&(!l.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?n.moveByChar(t,e):On(t,e))}function he(n){return n.textDirectionAt(n.state.selection.main.head)==_.LTR}const Ga=n=>Ua(n,!he(n)),Ja=n=>Ua(n,he(n));function _a(n,e){return Ie(n,t=>t.empty?n.moveByGroup(t,e):On(t,e))}const ud=n=>_a(n,!he(n)),dd=n=>_a(n,he(n));function pd(n,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function Tn(n,e,t){let i=me(n).resolveInner(e.head),s=t?R.closedBy:R.openedBy;for(let a=e.head;;){let h=t?i.childAfter(a):i.childBefore(a);if(!h)break;pd(n,h,s)?i=h:a=t?h.to:h.from}let r=i.type.prop(s),o,l;return r&&(o=t?$e(n,i.from,1):$e(n,i.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?i.to:i.from,b.cursor(l,t?-1:1)}const gd=n=>Ie(n,e=>Tn(n.state,e,!he(n))),md=n=>Ie(n,e=>Tn(n.state,e,he(n)));function Xa(n,e){return Ie(n,t=>{if(!t.empty)return On(t,e);let i=n.moveVertically(t,e);return i.head!=t.head?i:n.moveToLineBoundary(t,e)})}const Ya=n=>Xa(n,!1),Qa=n=>Xa(n,!0);function Za(n){return Math.max(n.defaultLineHeight,Math.min(n.dom.clientHeight,innerHeight)-5)}function eh(n,e){let{state:t}=n,i=jt(t.selection,l=>l.empty?n.moveVertically(l,e,Za(n)):On(l,e));if(i.eq(t.selection))return!1;let s=n.coordsAtPos(t.selection.main.head),r=n.scrollDOM.getBoundingClientRect(),o;return s&&s.top>r.top&&s.bottomeh(n,!1),Ns=n=>eh(n,!0);function ft(n,e,t){let i=n.lineBlockAt(e.head),s=n.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?i.to:i.from)&&(s=n.moveToLineBoundary(e,t,!1)),!t&&s.head==i.from&&i.length){let r=/^\s*/.exec(n.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;r&&e.head!=i.from+r&&(s=b.cursor(i.from+r))}return s}const yd=n=>Ie(n,e=>ft(n,e,!0)),bd=n=>Ie(n,e=>ft(n,e,!1)),wd=n=>Ie(n,e=>ft(n,e,!he(n))),xd=n=>Ie(n,e=>ft(n,e,he(n))),vd=n=>Ie(n,e=>b.cursor(n.lineBlockAt(e.head).from,1)),kd=n=>Ie(n,e=>b.cursor(n.lineBlockAt(e.head).to,-1));function Sd(n,e,t){let i=!1,s=jt(n.selection,r=>{let o=$e(n,r.head,-1)||$e(n,r.head,1)||r.head>0&&$e(n,r.head-1,1)||r.headSd(n,e,!1);function Pe(n,e){let t=jt(n.state.selection,i=>{let s=e(i);return b.range(i.anchor,s.head,s.goalColumn)});return t.eq(n.state.selection)?!1:(n.dispatch(Je(n.state,t)),!0)}function th(n,e){return Pe(n,t=>n.moveByChar(t,e))}const ih=n=>th(n,!he(n)),nh=n=>th(n,he(n));function sh(n,e){return Pe(n,t=>n.moveByGroup(t,e))}const Ad=n=>sh(n,!he(n)),Md=n=>sh(n,he(n)),Dd=n=>Pe(n,e=>Tn(n.state,e,!he(n))),Od=n=>Pe(n,e=>Tn(n.state,e,he(n)));function rh(n,e){return Pe(n,t=>n.moveVertically(t,e))}const oh=n=>rh(n,!1),lh=n=>rh(n,!0);function ah(n,e){return Pe(n,t=>n.moveVertically(t,e,Za(n)))}const Lo=n=>ah(n,!1),Eo=n=>ah(n,!0),Td=n=>Pe(n,e=>ft(n,e,!0)),Bd=n=>Pe(n,e=>ft(n,e,!1)),Pd=n=>Pe(n,e=>ft(n,e,!he(n))),Rd=n=>Pe(n,e=>ft(n,e,he(n))),Ld=n=>Pe(n,e=>b.cursor(n.lineBlockAt(e.head).from)),Ed=n=>Pe(n,e=>b.cursor(n.lineBlockAt(e.head).to)),Io=({state:n,dispatch:e})=>(e(Je(n,{anchor:0})),!0),No=({state:n,dispatch:e})=>(e(Je(n,{anchor:n.doc.length})),!0),Vo=({state:n,dispatch:e})=>(e(Je(n,{anchor:n.selection.main.anchor,head:0})),!0),Fo=({state:n,dispatch:e})=>(e(Je(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),Id=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),Nd=({state:n,dispatch:e})=>{let t=Pn(n).map(({from:i,to:s})=>b.range(i,Math.min(s+1,n.doc.length)));return e(n.update({selection:b.create(t),userEvent:"select"})),!0},Vd=({state:n,dispatch:e})=>{let t=jt(n.selection,i=>{var s;let r=me(n).resolveInner(i.head,1);for(;!(r.from=i.to||r.to>i.to&&r.from<=i.from||!(!((s=r.parent)===null||s===void 0)&&s.parent));)r=r.parent;return b.range(r.to,r.from)});return e(Je(n,t)),!0},Fd=({state:n,dispatch:e})=>{let t=n.selection,i=null;return t.ranges.length>1?i=b.create([t.main]):t.main.empty||(i=b.create([b.cursor(t.main.head)])),i?(e(Je(n,i)),!0):!1};function Bn(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:i}=n,s=i.changeByRange(r=>{let{from:o,to:l}=r;if(o==l){let a=e(o);ao&&(t="delete.forward",a=Fi(n,a,!0)),o=Math.min(o,a),l=Math.max(l,a)}else o=Fi(n,o,!1),l=Fi(n,l,!0);return o==l?{range:r}:{changes:{from:o,to:l},range:b.cursor(o)}});return s.changes.empty?!1:(n.dispatch(i.update(s,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?O.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function Fi(n,e,t){if(n instanceof O)for(let i of n.state.facet(O.atomicRanges).map(s=>s(n)))i.between(e,e,(s,r)=>{se&&(e=t?r:s)});return e}const hh=(n,e)=>Bn(n,t=>{let{state:i}=n,s=i.doc.lineAt(t),r,o;if(!e&&t>s.from&&thh(n,!1),ch=n=>hh(n,!0),fh=(n,e)=>Bn(n,t=>{let i=t,{state:s}=n,r=s.doc.lineAt(i),o=s.charCategorizer(i);for(let l=null;;){if(i==(e?r.to:r.from)){i==t&&r.number!=(e?s.doc.lines:1)&&(i+=e?1:-1);break}let a=fe(r.text,i-r.from,e)+r.from,h=r.text.slice(Math.min(i,a)-r.from,Math.max(i,a)-r.from),c=o(h);if(l!=null&&c!=l)break;(h!=" "||i!=t)&&(l=c),i=a}return i}),uh=n=>fh(n,!1),Wd=n=>fh(n,!0),dh=n=>Bn(n,e=>{let t=n.lineBlockAt(e).to;return eBn(n,e=>{let t=n.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)}),zd=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:I.of(["",""])},range:b.cursor(i.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},qd=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>{if(!i.empty||i.from==0||i.from==n.doc.length)return{range:i};let s=i.from,r=n.doc.lineAt(s),o=s==r.from?s-1:fe(r.text,s-r.from,!1)+r.from,l=s==r.to?s+1:fe(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:l,insert:n.doc.slice(s,l).append(n.doc.slice(o,s))},range:b.cursor(l)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Pn(n){let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.from),r=n.doc.lineAt(i.to);if(!i.empty&&i.to==r.from&&(r=n.doc.lineAt(i.to-1)),t>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(i)}else e.push({from:s.from,to:r.to,ranges:[i]});t=r.number+1}return e}function ph(n,e,t){if(n.readOnly)return!1;let i=[],s=[];for(let r of Pn(n)){if(t?r.to==n.doc.length:r.from==0)continue;let o=n.doc.lineAt(t?r.to+1:r.from-1),l=o.length+1;if(t){i.push({from:r.to,to:o.to},{from:r.from,insert:o.text+n.lineBreak});for(let a of r.ranges)s.push(b.range(Math.min(n.doc.length,a.anchor+l),Math.min(n.doc.length,a.head+l)))}else{i.push({from:o.from,to:r.from},{from:r.to,insert:n.lineBreak+o.text});for(let a of r.ranges)s.push(b.range(a.anchor-l,a.head-l))}}return i.length?(e(n.update({changes:i,scrollIntoView:!0,selection:b.create(s,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}const $d=({state:n,dispatch:e})=>ph(n,e,!1),Kd=({state:n,dispatch:e})=>ph(n,e,!0);function gh(n,e,t){if(n.readOnly)return!1;let i=[];for(let s of Pn(n))t?i.push({from:s.from,insert:n.doc.slice(s.from,s.to)+n.lineBreak}):i.push({from:s.to,insert:n.lineBreak+n.doc.slice(s.from,s.to)});return e(n.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const jd=({state:n,dispatch:e})=>gh(n,e,!1),Ud=({state:n,dispatch:e})=>gh(n,e,!0),Gd=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(Pn(e).map(({from:s,to:r})=>(s>0?s--:rn.moveVertically(s,!0)).map(t);return n.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Jd(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=me(n).resolveInner(e),i=t.childBefore(e),s=t.childAfter(e),r;return i&&s&&i.to<=e&&s.from>=e&&(r=i.type.prop(R.closedBy))&&r.indexOf(s.name)>-1&&n.doc.lineAt(i.to).from==n.doc.lineAt(s.from).from?{from:i.to,to:s.from}:null}const _d=mh(!1),Xd=mh(!0);function mh(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(s=>{let{from:r,to:o}=s,l=e.doc.lineAt(r),a=!n&&r==o&&Jd(e,r);n&&(r=o=(o<=l.to?l:e.doc.lineAt(o)).to);let h=new An(e,{simulateBreak:r,simulateDoubleBreak:!!a}),c=Ma(h,r);for(c==null&&(c=/^\s*/.exec(e.doc.lineAt(r).text)[0].length);ol.from&&r{let s=[];for(let o=i.from;o<=i.to;){let l=n.doc.lineAt(o);l.number>t&&(i.empty||i.to>l.from)&&(e(l,s,i),t=l.number),o=l.to+1}let r=n.changes(s);return{changes:s,range:b.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}})}const Yd=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),i=new An(n,{overrideIndentation:r=>{let o=t[r];return o==null?-1:o}}),s=lr(n,(r,o,l)=>{let a=Ma(i,r.from);if(a==null)return;/\S/.test(r.text)||(a=0);let h=/^\s*/.exec(r.text)[0],c=cn(n,a);(h!=c||l.fromn.readOnly?!1:(e(n.update(lr(n,(t,i)=>{i.push({from:t.from,insert:n.facet(Cn)})}),{userEvent:"input.indent"})),!0),Zd=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(lr(n,(t,i)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let r=bi(s,n.tabSize),o=0,l=cn(n,Math.max(0,r-kt(n)));for(;o({mac:n.key,run:n.run,shift:n.shift}))),Fg=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:gd,shift:Dd},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:md,shift:Od},{key:"Alt-ArrowUp",run:$d},{key:"Shift-Alt-ArrowUp",run:jd},{key:"Alt-ArrowDown",run:Kd},{key:"Shift-Alt-ArrowDown",run:Ud},{key:"Escape",run:Fd},{key:"Mod-Enter",run:Xd},{key:"Alt-l",mac:"Ctrl-l",run:Nd},{key:"Mod-i",run:Vd,preventDefault:!0},{key:"Mod-[",run:Zd},{key:"Mod-]",run:Qd},{key:"Mod-Alt-\\",run:Yd},{key:"Shift-Mod-k",run:Gd},{key:"Shift-Mod-\\",run:Cd},{key:"Mod-/",run:Ju},{key:"Alt-A",run:Xu}].concat(tp);function re(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=t[i];typeof s=="string"?n.setAttribute(i,s):s!=null&&(n[i]=s)}e++}for(;en.normalize("NFKD"):n=>n;class Kt{constructor(e,t,i=0,s=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,s),this.bufferStart=i,this.normalize=r?l=>r(Wo(l)):Wo,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return ie(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=zs(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=Se(e);let s=this.normalize(t);for(let r=0,o=i;;r++){let l=s.charCodeAt(r),a=this.match(l,o);if(a)return this.value=a,this;if(r==s.length-1)break;o==i&&rthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,s=i+t[0].length;if(this.matchPos=un(this.text,s+(i==s?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||s.to<=t){let l=new It(t,e.sliceString(t,i));return _n.set(e,l),l}if(s.from==t&&s.to==i)return s;let{text:r,from:o}=s;return o>t&&(r=e.sliceString(t,o)+r,o=t),s.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,s=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this.matchPos=un(this.text,s+(i==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=It.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(wh.prototype[Symbol.iterator]=xh.prototype[Symbol.iterator]=function(){return this});function ip(n){try{return new RegExp(n,ar),!0}catch{return!1}}function un(n,e){if(e>=n.length)return e;let t=n.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function Fs(n){let e=re("input",{class:"cm-textfield",name:"line"}),t=re("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),n.dispatch({effects:dn.of(!1)}),n.focus()):s.keyCode==13&&(s.preventDefault(),i())},onsubmit:s=>{s.preventDefault(),i()}},re("label",n.state.phrase("Go to line"),": ",e)," ",re("button",{class:"cm-button",type:"submit"},n.state.phrase("go")));function i(){let s=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!s)return;let{state:r}=n,o=r.doc.lineAt(r.selection.main.head),[,l,a,h,c]=s,f=h?+h.slice(1):0,u=a?+a:o.number;if(a&&c){let p=u/100;l&&(p=p*(l=="-"?-1:1)+o.number/r.doc.lines),u=Math.round(r.doc.lines*p)}else a&&l&&(u=u*(l=="-"?-1:1)+o.number);let d=r.doc.line(Math.max(1,Math.min(r.doc.lines,u)));n.dispatch({effects:dn.of(!1),selection:b.cursor(d.from+Math.max(0,Math.min(f,d.length))),scrollIntoView:!0}),n.focus()}return{dom:t}}const dn=L.define(),Ho=ye.define({create(){return!0},update(n,e){for(let t of e.effects)t.is(dn)&&(n=t.value);return n},provide:n=>rn.from(n,e=>e?Fs:null)}),np=n=>{let e=sn(n,Fs);if(!e){let t=[dn.of(!0)];n.state.field(Ho,!1)==null&&t.push(L.appendConfig.of([Ho,sp])),n.dispatch({effects:t}),e=sn(n,Fs)}return e&&e.dom.querySelector("input").focus(),!0},sp=O.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),rp={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},vh=D.define({combine(n){return Ct(n,rp,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function Wg(n){let e=[cp,hp];return n&&e.push(vh.of(n)),e}const op=T.mark({class:"cm-selectionMatch"}),lp=T.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function zo(n,e,t,i){return(t==0||n(e.sliceDoc(t-1,t))!=z.Word)&&(i==e.doc.length||n(e.sliceDoc(i,i+1))!=z.Word)}function ap(n,e,t,i){return n(e.sliceDoc(t,t+1))==z.Word&&n(e.sliceDoc(i-1,i))==z.Word}const hp=pe.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(vh),{state:t}=n,i=t.selection;if(i.ranges.length>1)return T.none;let s=i.main,r,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return T.none;let a=t.wordAt(s.head);if(!a)return T.none;o=t.charCategorizer(s.head),r=t.sliceDoc(a.from,a.to)}else{let a=s.to-s.from;if(a200)return T.none;if(e.wholeWords){if(r=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(zo(o,t,s.from,s.to)&&ap(o,t,s.from,s.to)))return T.none}else if(r=t.sliceDoc(s.from,s.to).trim(),!r)return T.none}let l=[];for(let a of n.visibleRanges){let h=new Kt(t.doc,r,a.from,a.to);for(;!h.next().done;){let{from:c,to:f}=h.value;if((!o||zo(o,t,c,f))&&(s.empty&&c<=s.from&&f>=s.to?l.push(lp.range(c,f)):(c>=s.to||f<=s.from)&&l.push(op.range(c,f)),l.length>e.maxMatches))return T.none}}return T.set(l)}},{decorations:n=>n.decorations}),cp=O.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),fp=({state:n,dispatch:e})=>{let{selection:t}=n,i=b.create(t.ranges.map(s=>n.wordAt(s.head)||b.cursor(s.head)),t.mainIndex);return i.eq(t)?!1:(e(n.update({selection:i})),!0)};function up(n,e){let{main:t,ranges:i}=n.selection,s=n.wordAt(t.head),r=s&&s.from==t.from&&s.to==t.to;for(let o=!1,l=new Kt(n.doc,e,i[i.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new Kt(n.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(a=>a.from==l.value.from))continue;if(r){let a=n.wordAt(l.value.from);if(!a||a.from!=l.value.from||a.to!=l.value.to)continue}return l.value}}const dp=({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(r=>r.from===r.to))return fp({state:n,dispatch:e});let i=n.sliceDoc(t[0].from,t[0].to);if(n.selection.ranges.some(r=>n.sliceDoc(r.from,r.to)!=i))return!1;let s=up(n,i);return s?(e(n.update({selection:n.selection.addRange(b.range(s.from,s.to),!1),effects:O.scrollIntoView(s.to)})),!0):!1},hr=D.define({combine(n){return Ct(n,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new Cp(e)})}});class kh{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||ip(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` -`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new yp(this):new gp(this)}getCursor(e,t=0,i){let s=e.doc?e:N.create({doc:e});return i==null&&(i=s.doc.length),this.regexp?Tt(this,s,t,i):Ot(this,s,t,i)}}class Sh{constructor(e){this.spec=e}}function Ot(n,e,t,i){return new Kt(e.doc,n.unquoted,t,i,n.caseSensitive?void 0:s=>s.toLowerCase(),n.wholeWord?pp(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function pp(n,e){return(t,i,s,r)=>((r>t||r+s.length=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Ot(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Tt(n,e,t,i){return new wh(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:n.wholeWord?mp(e.charCategorizer(e.selection.main.head)):void 0},t,i)}function pn(n,e){return n.slice(fe(n,e,!1),e)}function gn(n,e){return n.slice(e,fe(n,e))}function mp(n){return(e,t,i)=>!i[0].length||(n(pn(i.input,i.index))!=z.Word||n(gn(i.input,i.index))!=z.Word)&&(n(gn(i.input,i.index+i[0].length))!=z.Word||n(pn(i.input,i.index+i[0].length))!=z.Word)}class yp extends Sh{nextMatch(e,t,i){let s=Tt(this.spec,e,i,e.doc.length).next();return s.done&&(s=Tt(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=Tt(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(t,i)=>i=="$"?"$":i=="&"?e.match[0]:i!="0"&&+i=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Tt(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const gi=L.define(),cr=L.define(),st=ye.define({create(n){return new Xn(Ws(n).create(),null)},update(n,e){for(let t of e.effects)t.is(gi)?n=new Xn(t.value.create(),n.panel):t.is(cr)&&(n=new Xn(n.query,t.value?fr:null));return n},provide:n=>rn.from(n,e=>e.panel)});class Xn{constructor(e,t){this.query=e,this.panel=t}}const bp=T.mark({class:"cm-searchMatch"}),wp=T.mark({class:"cm-searchMatch cm-searchMatch-selected"}),xp=pe.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(st))}update(n){let e=n.state.field(st);(e!=n.startState.field(st)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return T.none;let{view:t}=this,i=new wt;for(let s=0,r=t.visibleRanges,o=r.length;sr[s+1].from-2*250;)a=r[++s].to;n.highlight(t.state,l,a,(h,c)=>{let f=t.state.selection.ranges.some(u=>u.from==h&&u.to==c);i.add(h,c,f?wp:bp)})}return i.finish()}},{decorations:n=>n.decorations});function xi(n){return e=>{let t=e.state.field(st,!1);return t&&t.query.spec.valid?n(e,t):Ch(e)}}const mn=xi((n,{query:e})=>{let{to:t}=n.state.selection.main,i=e.nextMatch(n.state,t,t);return i?(n.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:ur(n,i),userEvent:"select.search"}),!0):!1}),yn=xi((n,{query:e})=>{let{state:t}=n,{from:i}=t.selection.main,s=e.prevMatch(t,i,i);return s?(n.dispatch({selection:{anchor:s.from,head:s.to},scrollIntoView:!0,effects:ur(n,s),userEvent:"select.search"}),!0):!1}),vp=xi((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:b.create(t.map(i=>b.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),kp=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let l=new Kt(n.doc,n.sliceDoc(i,s));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(b.range(l.value.from,l.value.to))}return e(n.update({selection:b.create(r,o),userEvent:"select.search.matches"})),!0},qo=xi((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,i,i);if(!r)return!1;let o=[],l,a,h=[];if(r.from==i&&r.to==s&&(a=t.toText(e.getReplacement(r)),o.push({from:r.from,to:r.to,insert:a}),r=e.nextMatch(t,r.from,r.to),h.push(O.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))),r){let c=o.length==0||o[0].from>=r.to?0:r.to-r.from-a.length;l={anchor:r.from-c,head:r.to-c},h.push(ur(n,r))}return n.dispatch({changes:o,selection:l,scrollIntoView:!!l,effects:h,userEvent:"input.replace"}),!0}),Sp=xi((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state,1e9).map(s=>{let{from:r,to:o}=s;return{from:r,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let i=n.state.phrase("replaced $ matches",t.length)+".";return n.dispatch({changes:t,effects:O.announce.of(i),userEvent:"input.replace.all"}),!0});function fr(n){return n.state.facet(hr).createPanel(n)}function Ws(n,e){var t,i,s,r;let o=n.selection.main,l=o.empty||o.to>o.from+100?"":n.sliceDoc(o.from,o.to);if(e&&!l)return e;let a=n.facet(hr);return new kh({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:a.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:a.caseSensitive,literal:(s=e==null?void 0:e.literal)!==null&&s!==void 0?s:a.literal,wholeWord:(r=e==null?void 0:e.wholeWord)!==null&&r!==void 0?r:a.wholeWord})}const Ch=n=>{let e=n.state.field(st,!1);if(e&&e.panel){let t=sn(n,fr);if(!t)return!1;let i=t.dom.querySelector("[main-field]");if(i&&i!=n.root.activeElement){let s=Ws(n.state,e.query.spec);s.valid&&n.dispatch({effects:gi.of(s)}),i.focus(),i.select()}}else n.dispatch({effects:[cr.of(!0),e?gi.of(Ws(n.state,e.query.spec)):L.appendConfig.of(Mp)]});return!0},Ah=n=>{let e=n.state.field(st,!1);if(!e||!e.panel)return!1;let t=sn(n,fr);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:cr.of(!1)}),!0},Hg=[{key:"Mod-f",run:Ch,scope:"editor search-panel"},{key:"F3",run:mn,shift:yn,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:mn,shift:yn,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Ah,scope:"editor search-panel"},{key:"Mod-Shift-l",run:kp},{key:"Alt-g",run:np},{key:"Mod-d",run:dp,preventDefault:!0}];class Cp{constructor(e){this.view=e;let t=this.query=e.state.field(st).query.spec;this.commit=this.commit.bind(this),this.searchField=re("input",{value:t.search,placeholder:ve(e,"Find"),"aria-label":ve(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=re("input",{value:t.replace,placeholder:ve(e,"Replace"),"aria-label":ve(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=re("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=re("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=re("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(s,r,o){return re("button",{class:"cm-button",name:s,onclick:r,type:"button"},o)}this.dom=re("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>mn(e),[ve(e,"next")]),i("prev",()=>yn(e),[ve(e,"previous")]),i("select",()=>vp(e),[ve(e,"all")]),re("label",null,[this.caseField,ve(e,"match case")]),re("label",null,[this.reField,ve(e,"regexp")]),re("label",null,[this.wordField,ve(e,"by word")]),...e.state.readOnly?[]:[re("br"),this.replaceField,i("replace",()=>qo(e),[ve(e,"replace")]),i("replaceAll",()=>Sp(e),[ve(e,"replace all")])],re("button",{name:"close",onclick:()=>Ah(e),"aria-label":ve(e,"close"),type:"button"},["\xD7"])])}commit(){let e=new kh({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:gi.of(e)}))}keydown(e){vf(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?yn:mn)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),qo(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(gi)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(hr).top}}function ve(n,e){return n.state.phrase(e)}const Wi=30,Hi=/[\s\.,:;?!]/;function ur(n,{from:e,to:t}){let i=n.state.doc.lineAt(e),s=n.state.doc.lineAt(t).to,r=Math.max(i.from,e-Wi),o=Math.min(s,t+Wi),l=n.state.sliceDoc(r,o);if(r!=i.from){for(let a=0;al.length-Wi;a--)if(!Hi.test(l[a-1])&&Hi.test(l[a])){l=l.slice(0,a);break}}return O.announce.of(`${n.state.phrase("current match")}. ${l} ${n.state.phrase("on line")} ${i.number}.`)}const Ap=O.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Mp=[st,St.lowest(xp),Ap];class Mh{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=me(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),s=t.text.slice(i-t.from,this.pos-t.from),r=s.search(Dh(e,!1));return r<0?null:{from:i+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,t){e=="abort"&&this.abortListeners&&this.abortListeners.push(t)}}function $o(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function Dp(n){let e=Object.create(null),t=Object.create(null);for(let{label:s}of n){e[s[0]]=!0;for(let r=1;rtypeof s=="string"?{label:s}:s),[t,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:Dp(e);return s=>{let r=s.matchBefore(i);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:t}:null}}function zg(n,e){return t=>{for(let i=me(t.state).resolveInner(t.pos,-1);i;i=i.parent)if(n.indexOf(i.name)>-1)return null;return e(t)}}class Ko{constructor(e,t,i){this.completion=e,this.source=t,this.match=i}}function rt(n){return n.selection.main.head}function Dh(n,e){var t;let{source:i}=n,s=e&&i[0]!="^",r=i[i.length-1]!="$";return!s&&!r?n:new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}const Tp=ht.define();function Bp(n,e,t,i){return Object.assign(Object.assign({},n.changeByRange(s=>{if(s==n.selection.main)return{changes:{from:t,to:i,insert:e},range:b.cursor(t+e.length)};let r=i-t;return!s.empty||r&&n.sliceDoc(s.from-r,s.from)!=n.sliceDoc(t,i)?{range:s}:{changes:{from:s.from-r,to:s.from,insert:e},range:b.cursor(s.from-r+e.length)}})),{userEvent:"input.complete"})}function Oh(n,e){const t=e.completion.apply||e.completion.label;let i=e.source;typeof t=="string"?n.dispatch(Object.assign(Object.assign({},Bp(n.state,t,i.from,i.to)),{annotations:Tp.of(e.completion)})):t(n,e.completion,i.from,i.to)}const jo=new WeakMap;function Pp(n){if(!Array.isArray(n))return n;let e=jo.get(n);return e||jo.set(n,e=Op(n)),e}class Rp{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let t=0;t=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(M=zs(k))!=M.toLowerCase()?1:M!=M.toUpperCase()?2:0;(!S||B==1&&g||C==0&&B!=0)&&(t[f]==k||i[f]==k&&(u=!0)?o[f++]=S:o.length&&(y=!1)),C=B,S+=Se(k)}return f==a&&o[0]==0&&y?this.result(-100+(u?-200:0),o,e):d==a&&p==0?[-200-e.length,0,m]:l>-1?[-700-e.length,l,l+this.pattern.length]:d==a?[-200+-700-e.length,p,m]:f==a?this.result(-100+(u?-200:0)+-700+(y?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,i){let s=[e-i.length],r=1;for(let o of t){let l=o+(this.astral?Se(ie(i,o)):1);r>1&&s[r-1]==o?s[r-1]=l:(s[r++]=o,s[r++]=l)}return s}}const Be=D.define({combine(n){return Ct(n,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,optionClass:(e,t)=>i=>Lp(e(i),t(i)),addToOptions:(e,t)=>e.concat(t)})}});function Lp(n,e){return n?e?n+" "+e:n:e}function Ep(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,s){let r=document.createElement("span");r.className="cm-completionLabel";let{label:o}=t,l=0;for(let a=1;al&&r.appendChild(document.createTextNode(o.slice(l,h)));let f=r.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(o.slice(h,c))),f.className="cm-completionMatchedText",l=c}return lt.position-i.position).map(t=>t.render)}function Uo(n,e,t){if(n<=t)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let i=Math.floor((n-e)/t);return{from:n-(i+1)*t,to:n-i*t}}class Ip{constructor(e,t){this.view=e,this.stateField=t,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:l=>this.positionInfo(l),key:this},this.space=null;let i=e.state.field(t),{options:s,selected:r}=i.open,o=e.state.facet(Be);this.optionContent=Ep(o),this.optionClass=o.optionClass,this.range=Uo(s.length,r,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",l=>{for(let a=l.target,h;a&&a!=this.dom;a=a.parentNode)if(a.nodeName=="LI"&&(h=/-(\d+)$/.exec(a.id))&&+h[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){var t,i,s;let r=e.state.field(this.stateField),o=e.startState.field(this.stateField);r!=o&&(this.updateSel(),((t=r.open)===null||t===void 0?void 0:t.disabled)!=((i=o.open)===null||i===void 0?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((s=r.open)===null||s===void 0)&&s.disabled)))}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=Uo(t.options.length,t.selected,this.view.state.facet(Be).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(t.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:i}=t.options[t.selected],{info:s}=i;if(!s)return;let r=typeof s=="string"?document.createTextNode(s):s(i);if(!r)return;"then"in r?r.then(o=>{o&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(o)}).catch(o=>Ee(this.view.state,o,"completion info")):this.addInfoPane(r)}}addInfoPane(e){let t=this.info=document.createElement("div");t.className="cm-tooltip cm-completionInfo",t.appendChild(e),this.dom.appendChild(t),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return t&&Vp(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let p=this.dom.ownerDocument.defaultView||window;r={left:0,top:0,right:p.innerWidth,bottom:p.innerHeight}}if(s.top>Math.min(r.bottom,t.bottom)-10||s.bottom=i.height||p>t.top?c=s.bottom-t.top+"px":f=t.bottom-s.top+"px"}return{top:c,bottom:f,maxWidth:h,class:a?o?"left-narrow":"right-narrow":l?"left":"right"}}positionInfo(e){this.info&&(e?(this.info.style.top=e.top,this.info.style.bottom=e.bottom,this.info.style.maxWidth=e.maxWidth,this.info.className="cm-tooltip cm-completionInfo cm-completionInfo-"+e.class):this.info.style.top="-1e6px")}createListBox(e,t,i){const s=document.createElement("ul");s.id=t,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions"));for(let r=i.from;rnew Ip(e,n)}function Vp(n,e){let t=n.getBoundingClientRect(),i=e.getBoundingClientRect();i.topt.bottom&&(n.scrollTop+=i.bottom-t.bottom)}function Go(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function Fp(n,e){let t=[],i=0;for(let l of n)if(l.hasResult())if(l.result.filter===!1){let a=l.result.getMatch;for(let h of l.result.options){let c=[1e9-i++];if(a)for(let f of a(h))c.push(f);t.push(new Ko(h,l,c))}}else{let a=new Rp(e.sliceDoc(l.from,l.to)),h;for(let c of l.result.options)(h=a.match(c.label))&&(c.boost!=null&&(h[0]+=c.boost),t.push(new Ko(c,l,h)))}let s=[],r=null,o=e.facet(Be).compareCompletions;for(let l of t.sort((a,h)=>h.match[0]-a.match[0]||o(a.completion,h.completion)))!r||r.label!=l.completion.label||r.detail!=l.completion.detail||r.type!=null&&l.completion.type!=null&&r.type!=l.completion.type||r.apply!=l.completion.apply?s.push(l):Go(l.completion)>Go(r)&&(s[s.length-1]=l),r=l.completion;return s}class Bt{constructor(e,t,i,s,r,o){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Bt(this.options,Jo(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,s,r){let o=Fp(e,t);if(!o.length)return s&&e.some(a=>a.state==1)?new Bt(s.options,s.attrs,s.tooltip,s.timestamp,s.selected,!0):null;let l=t.facet(Be).selectOnOpen?0:-1;if(s&&s.selected!=l&&s.selected!=-1){let a=s.options[s.selected].completion;for(let h=0;hh.hasResult()?Math.min(a,h.from):a,1e8),create:Np(Ae),above:r.aboveCursor},s?s.timestamp:Date.now(),l,!1)}map(e){return new Bt(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class bn{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new bn(zp,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(Be),r=(i.override||t.languageDataAt("autocomplete",rt(t)).map(Pp)).map(l=>(this.active.find(h=>h.source==l)||new be(l,this.active.some(h=>h.state!=0)?1:0)).update(e,i));r.length==this.active.length&&r.every((l,a)=>l==this.active[a])&&(r=this.active);let o=this.open;e.selection||r.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!Wp(r,this.active)?o=Bt.build(r,t,this.id,this.open,i):o&&o.disabled&&!r.some(l=>l.state==1)?o=null:o&&e.docChanged&&(o=o.map(e.changes)),!o&&r.every(l=>l.state!=1)&&r.some(l=>l.hasResult())&&(r=r.map(l=>l.hasResult()?new be(l.source,0):l));for(let l of e.effects)l.is(Bh)&&(o=o&&o.setSelected(l.value,this.id));return r==this.active&&o==this.open?this:new bn(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:Hp}}function Wp(n,e){if(n==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=n+"-"+e),t}const zp=[];function Hs(n){return n.isUserEvent("input.type")?"input":n.isUserEvent("delete.backward")?"delete":null}class be{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=Hs(e),s=this;i?s=s.handleUserEvent(e,i,t):e.docChanged?s=s.handleChange(e):e.selection&&s.state!=0&&(s=new be(s.source,0));for(let r of e.effects)if(r.is(dr))s=new be(s.source,1,r.value?rt(e.state):-1);else if(r.is(wn))s=new be(s.source,0);else if(r.is(Th))for(let o of r.value)o.source==s.source&&(s=o);return s}handleUserEvent(e,t,i){return t=="delete"||!i.activateOnTyping?this.map(e.changes):new be(this.source,1)}handleChange(e){return e.changes.touchesRange(rt(e.startState))?new be(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new be(this.source,this.state,e.mapPos(this.explicitPos))}}class si extends be{constructor(e,t,i,s,r){super(e,2,t),this.result=i,this.from=s,this.to=r}hasResult(){return!0}handleUserEvent(e,t,i){var s;let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=rt(e.state);if((this.explicitPos<0?l<=r:lo||t=="delete"&&rt(e.startState)==this.from)return new be(this.source,t=="input"&&i.activateOnTyping?1:0);let a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),h;return qp(this.result.validFor,e.state,r,o)?new si(this.source,a,this.result,r,o):this.result.update&&(h=this.result.update(this.result,r,o,new Mh(e.state,l,a>=0)))?new si(this.source,a,h,h.from,(s=h.to)!==null&&s!==void 0?s:rt(e.state)):new be(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new be(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new si(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function qp(n,e,t,i){if(!n)return!1;let s=e.sliceDoc(t,i);return typeof n=="function"?n(s,t,i,e):Dh(n,!0).test(s)}const dr=L.define(),wn=L.define(),Th=L.define({map(n,e){return n.map(t=>t.map(e))}}),Bh=L.define(),Ae=ye.define({create(){return bn.start()},update(n,e){return n.update(e)},provide:n=>[ma.from(n,e=>e.tooltip),O.contentAttributes.from(n,e=>e.attrs)]});function zi(n,e="option"){return t=>{let i=t.state.field(Ae,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+s*(n?1:-1):n?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),t.dispatch({effects:Bh.of(l)}),!0}}const $p=n=>{let e=n.state.field(Ae,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||Date.now()-e.open.timestampn.state.field(Ae,!1)?(n.dispatch({effects:dr.of(!0)}),!0):!1,jp=n=>{let e=n.state.field(Ae,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:wn.of(null)}),!0)};class Up{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const _o=50,Gp=50,Jp=1e3,_p=pe.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of n.state.field(Ae).active)e.state==1&&this.startQuery(e)}update(n){let e=n.state.field(Ae);if(!n.selectionSet&&!n.docChanged&&n.startState.field(Ae)==e)return;let t=n.transactions.some(i=>(i.selection||i.docChanged)&&!Hs(i));for(let i=0;iGp&&Date.now()-s.time>Jp){for(let r of s.context.abortListeners)try{r()}catch(o){Ee(this.view.state,o)}s.context.abortListeners=null,this.running.splice(i--,1)}else s.updates.push(...n.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(i=>i.state==1&&!this.running.some(s=>s.active.source==i.source))?setTimeout(()=>this.startUpdate(),_o):-1,this.composing!=0)for(let i of n.transactions)Hs(i)=="input"?this.composing=2:this.composing==2&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:n}=this.view,e=n.field(Ae);for(let t of e.active)t.state==1&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t)}startQuery(n){let{state:e}=this.view,t=rt(e),i=new Mh(e,t,n.explicitPos==t),s=new Up(n,i);this.running.push(s),Promise.resolve(n.source(i)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:wn.of(null)}),Ee(this.view.state,r)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),_o))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Be);for(let i=0;io.source==s.active.source);if(r&&r.state==1)if(s.done==null){let o=new be(s.active.source,0);for(let l of s.updates)o=o.update(l,t);o.state!=1&&e.push(o)}else this.startQuery(r)}e.length&&this.view.dispatch({effects:Th.of(e)})}},{eventHandlers:{blur(){let n=this.view.state.field(Ae,!1);n&&n.tooltip&&this.view.state.facet(Be).closeOnBlur&&this.view.dispatch({effects:wn.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:dr.of(!1)}),20),this.composing=0}}}),Ph=O.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:`${400}px`,boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:`${30}px`},".cm-completionInfo.cm-completionInfo-right-narrow":{left:`${30}px`},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class Xp{constructor(e,t,i,s){this.field=e,this.line=t,this.from=i,this.to=s}}class pr{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,le.TrackDel),i=e.mapPos(this.to,1,le.TrackDel);return t==null||i==null?null:new pr(this.field,t,i)}}class gr{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],s=[t],r=e.doc.lineAt(t),o=/^\s*/.exec(r.text)[0];for(let a of this.lines){if(i.length){let h=o,c=/^\t*/.exec(a)[0].length;for(let f=0;fnew pr(a.field,s[a.line]+a.from,s[a.line]+a.to));return{text:i,ranges:l}}static parse(e){let t=[],i=[],s=[],r;for(let o of e.split(/\r\n?|\n/)){for(;r=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(o);){let l=r[1]?+r[1]:null,a=r[2]||r[3]||"",h=-1;for(let c=0;c=h&&f.field++}s.push(new Xp(h,i.length,r.index,r.index+a.length)),o=o.slice(0,r.index)+a+o.slice(r.index+r[0].length)}for(let l;l=/\\([{}])/.exec(o);){o=o.slice(0,l.index)+l[1]+o.slice(l.index+l[0].length);for(let a of s)a.line==i.length&&a.from>l.index&&(a.from--,a.to--)}i.push(o)}return new gr(i,s)}}let Yp=T.widget({widget:new class extends ct{toDOM(){let n=document.createElement("span");return n.className="cm-snippetFieldPosition",n}ignoreEvent(){return!1}}}),Qp=T.mark({class:"cm-snippetField"});class Ut{constructor(e,t){this.ranges=e,this.active=t,this.deco=T.set(e.map(i=>(i.from==i.to?Yp:Qp).range(i.from,i.to)))}map(e){let t=[];for(let i of this.ranges){let s=i.map(e);if(!s)return null;t.push(s)}return new Ut(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(i=>i.field==this.active&&i.from<=t.from&&i.to>=t.to))}}const vi=L.define({map(n,e){return n&&n.map(e)}}),Zp=L.define(),mi=ye.define({create(){return null},update(n,e){for(let t of e.effects){if(t.is(vi))return t.value;if(t.is(Zp)&&n)return new Ut(n.ranges,t.value)}return n&&e.docChanged&&(n=n.map(e.changes)),n&&e.selection&&!n.selectionInsideField(e.selection)&&(n=null),n},provide:n=>O.decorations.from(n,e=>e?e.deco:T.none)});function mr(n,e){return b.create(n.filter(t=>t.field==e).map(t=>b.range(t.from,t.to)))}function eg(n){let e=gr.parse(n);return(t,i,s,r)=>{let{text:o,ranges:l}=e.instantiate(t.state,s),a={changes:{from:s,to:r,insert:I.of(o)},scrollIntoView:!0};if(l.length&&(a.selection=mr(l,0)),l.length>1){let h=new Ut(l,0),c=a.effects=[vi.of(h)];t.state.field(mi,!1)===void 0&&c.push(L.appendConfig.of([mi,rg,og,Ph]))}t.dispatch(t.state.update(a))}}function Rh(n){return({state:e,dispatch:t})=>{let i=e.field(mi,!1);if(!i||n<0&&i.active==0)return!1;let s=i.active+n,r=n>0&&!i.ranges.some(o=>o.field==s+n);return t(e.update({selection:mr(i.ranges,s),effects:vi.of(r?null:new Ut(i.ranges,s))})),!0}}const tg=({state:n,dispatch:e})=>n.field(mi,!1)?(e(n.update({effects:vi.of(null)})),!0):!1,ig=Rh(1),ng=Rh(-1),sg=[{key:"Tab",run:ig,shift:ng},{key:"Escape",run:tg}],Xo=D.define({combine(n){return n.length?n[0]:sg}}),rg=St.highest(Ys.compute([Xo],n=>n.facet(Xo)));function qg(n,e){return Object.assign(Object.assign({},e),{apply:eg(n)})}const og=O.domEventHandlers({mousedown(n,e){let t=e.state.field(mi,!1),i;if(!t||(i=e.posAtCoords({x:n.clientX,y:n.clientY}))==null)return!1;let s=t.ranges.find(r=>r.from<=i&&r.to>=i);return!s||s.field==t.active?!1:(e.dispatch({selection:mr(t.ranges,s.field),effects:vi.of(t.ranges.some(r=>r.field>s.field)?new Ut(t.ranges,s.field):null)}),!0)}}),yi={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},mt=L.define({map(n,e){let t=e.mapPos(n,-1,le.TrackAfter);return t==null?void 0:t}}),yr=L.define({map(n,e){return e.mapPos(n)}}),br=new class extends bt{};br.startSide=1;br.endSide=-1;const Lh=ye.define({create(){return K.empty},update(n,e){if(e.selection){let t=e.state.doc.lineAt(e.selection.main.head).from,i=e.startState.doc.lineAt(e.startState.selection.main.head).from;t!=e.changes.mapPos(i,-1)&&(n=K.empty)}n=n.map(e.changes);for(let t of e.effects)t.is(mt)?n=n.update({add:[br.range(t.value,t.value+1)]}):t.is(yr)&&(n=n.update({filter:i=>i!=t.value}));return n}});function $g(){return[ag,Lh]}const Yn="()[]{}<>";function Eh(n){for(let e=0;e{if((lg?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let s=n.state.selection.main;if(i.length>2||i.length==2&&Se(ie(i,0))==1||e!=s.from||t!=s.to)return!1;let r=cg(n.state,i);return r?(n.dispatch(r),!0):!1}),hg=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let i=Ih(n,n.selection.main.head).brackets||yi.brackets,s=null,r=n.changeByRange(o=>{if(o.empty){let l=fg(n.doc,o.head);for(let a of i)if(a==l&&Rn(n.doc,o.head)==Eh(ie(a,0)))return{changes:{from:o.head-a.length,to:o.head+a.length},range:b.cursor(o.head-a.length)}}return{range:s=o}});return s||e(n.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},Kg=[{key:"Backspace",run:hg}];function cg(n,e){let t=Ih(n,n.selection.main.head),i=t.brackets||yi.brackets;for(let s of i){let r=Eh(ie(s,0));if(e==s)return r==s?pg(n,s,i.indexOf(s+s+s)>-1,t):ug(n,s,r,t.before||yi.before);if(e==r&&Nh(n,n.selection.main.from))return dg(n,s,r)}return null}function Nh(n,e){let t=!1;return n.field(Lh).between(0,n.doc.length,i=>{i==e&&(t=!0)}),t}function Rn(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Se(ie(t,0)))}function fg(n,e){let t=n.sliceString(e-2,e);return Se(ie(t,0))==t.length?t:t.slice(1)}function ug(n,e,t,i){let s=null,r=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:mt.of(o.to+e.length),range:b.range(o.anchor+e.length,o.head+e.length)};let l=Rn(n.doc,o.head);return!l||/\s/.test(l)||i.indexOf(l)>-1?{changes:{insert:e+t,from:o.head},effects:mt.of(o.head+e.length),range:b.cursor(o.head+e.length)}:{range:s=o}});return s?null:n.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function dg(n,e,t){let i=null,s=n.selection.ranges.map(r=>r.empty&&Rn(n.doc,r.head)==t?b.cursor(r.head+t.length):i=r);return i?null:n.update({selection:b.create(s,n.selection.mainIndex),scrollIntoView:!0,effects:n.selection.ranges.map(({from:r})=>yr.of(r))})}function pg(n,e,t,i){let s=i.stringPrefixes||yi.stringPrefixes,r=null,o=n.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:mt.of(l.to+e.length),range:b.range(l.anchor+e.length,l.head+e.length)};let a=l.head,h=Rn(n.doc,a),c;if(h==e){if(Yo(n,a))return{changes:{insert:e+e,from:a},effects:mt.of(a+e.length),range:b.cursor(a+e.length)};if(Nh(n,a)){let f=t&&n.sliceDoc(a,a+e.length*3)==e+e+e;return{range:b.cursor(a+e.length*(f?3:1)),effects:yr.of(a)}}}else{if(t&&n.sliceDoc(a-2*e.length,a)==e+e&&(c=Qo(n,a-2*e.length,s))>-1&&Yo(n,c))return{changes:{insert:e+e+e+e,from:a},effects:mt.of(a+e.length),range:b.cursor(a+e.length)};if(n.charCategorizer(a)(h)!=z.Word&&Qo(n,a,s)>-1&&!gg(n,a,e,s))return{changes:{insert:e+e,from:a},effects:mt.of(a+e.length),range:b.cursor(a+e.length)}}return{range:r=l}});return r?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Yo(n,e){let t=me(n).resolveInner(e+1);return t.parent&&t.from==e}function gg(n,e,t,i){let s=me(n).resolveInner(e,-1),r=i.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=n.sliceDoc(s.from,Math.min(s.to,s.from+t.length+r)),a=l.indexOf(t);if(!a||a>-1&&i.indexOf(l.slice(0,a))>-1){let c=s.firstChild;for(;c&&c.from==s.from&&c.to-c.from>t.length+a;){if(n.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let h=s.to==e&&s.parent;if(!h)break;s=h}return!1}function Qo(n,e,t){let i=n.charCategorizer(e);if(i(n.sliceDoc(e-1,e))!=z.Word)return e;for(let s of t){let r=e-s.length;if(n.sliceDoc(r,e)==s&&i(n.sliceDoc(r-1,r))!=z.Word)return r}return-1}function jg(n={}){return[Ae,Be.of(n),_p,yg,Ph]}const mg=[{key:"Ctrl-Space",run:Kp},{key:"Escape",run:jp},{key:"ArrowDown",run:zi(!0)},{key:"ArrowUp",run:zi(!1)},{key:"PageDown",run:zi(!0,"page")},{key:"PageUp",run:zi(!1,"page")},{key:"Enter",run:$p}],yg=St.highest(Ys.computeN([Be],n=>n.facet(Be).defaultKeymap?[mg]:[]));export{Bg as A,Pg as B,xn as C,eu as D,O as E,Rg as F,Dg as G,me as H,G as I,zg as J,Op as K,Ps as L,b as M,Qs as N,Tg as O,xa as P,Og as Q,qg as R,Ea as S,F as T,Cg as U,N as a,xg as b,Ng as c,bg as d,wg as e,Eg as f,Ig as g,Sg as h,$g as i,Wg as j,Ys as k,Kg as l,Fg as m,Hg as n,Vg as o,mg as p,jg as q,kg as r,Lg as s,vg as t,ge as u,R as v,yu as w,v as x,Ag as y,Cu as z}; diff --git a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff b/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff deleted file mode 100644 index f45202d1288533bab575d7384f83f689ee707ff5..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff and /dev/null differ diff --git a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2 b/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2 deleted file mode 100644 index 46e7760e44dbee7a254ac9a1c54c12d45593f83b..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2 and /dev/null differ diff --git a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff b/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff deleted file mode 100644 index 1f3ca80d15447ac59740a039fefc9455857d9ace..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff and /dev/null differ diff --git a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2 b/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2 deleted file mode 100644 index ab691d23bb9bc2655916c560873aa12e1e428cb7..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2 and /dev/null differ diff --git a/ui/dist/fonts/remixicon/remixicon.eot b/ui/dist/fonts/remixicon/remixicon.eot deleted file mode 100644 index 40629af2b93f9f3e977246ae380ad89f35362313..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/remixicon/remixicon.eot and /dev/null differ diff --git a/ui/dist/fonts/remixicon/remixicon.glyph.json b/ui/dist/fonts/remixicon/remixicon.glyph.json deleted file mode 100644 index 81e05921d4402d8bea7d2563f10d7d29767c5521..0000000000000000000000000000000000000000 --- a/ui/dist/fonts/remixicon/remixicon.glyph.json +++ /dev/null @@ -1 +0,0 @@ -{"24-hours-fill":{"path":["M0 0H24V24H0z","M12 13c1.657 0 3 1.343 3 3 0 .85-.353 1.616-.92 2.162L12.17 20H15v2H9v-1.724l3.693-3.555c.19-.183.307-.438.307-.721 0-.552-.448-1-1-1s-1 .448-1 1H9c0-1.657 1.343-3 3-3zm6 0v4h2v-4h2v9h-2v-3h-4v-6h2zM4 12c0 2.527 1.171 4.78 3 6.246v2.416C4.011 18.933 2 15.702 2 12h2zm8-10c5.185 0 9.449 3.947 9.95 9h-2.012C19.446 7.054 16.08 4 12 4 9.536 4 7.332 5.114 5.865 6.865L8 9H2V3l2.447 2.446C6.28 3.336 8.984 2 12 2z"],"unicode":"","glyph":"M600 550C682.85 550 750 482.85 750 400C750 357.4999999999999 732.35 319.2000000000001 704 291.9000000000001L608.5 200H750V100H450V186.2000000000001L634.65 363.9500000000001C644.15 373.1 650 385.8499999999999 650 400C650 427.6 627.6 450 600 450S550 427.6 550 400H450C450 482.85 517.15 550 600 550zM900 550V350H1000V550H1100V100H1000V250H800V550H900zM200 600C200 473.65 258.55 361 350 287.7V166.8999999999999C200.55 253.35 100 414.9 100 600H200zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9C972.3 847.3 803.9999999999999 1000 600 1000C476.8 1000 366.6 944.3 293.25 856.75L400 750H100V1050L222.35 927.7C314 1033.2 449.2 1100 600 1100z","horizAdvX":"1200"},"24-hours-line":{"path":["M0 0H24V24H0z","M12 13c1.657 0 3 1.343 3 3 0 .85-.353 1.616-.92 2.162L12.17 20H15v2H9v-1.724l3.693-3.555c.19-.183.307-.438.307-.721 0-.552-.448-1-1-1s-1 .448-1 1H9c0-1.657 1.343-3 3-3zm6 0v4h2v-4h2v9h-2v-3h-4v-6h2zM4 12c0 2.527 1.171 4.78 3 6.246v2.416C4.011 18.933 2 15.702 2 12h2zm8-10c5.185 0 9.449 3.947 9.95 9h-2.012C19.446 7.054 16.08 4 12 4 9.25 4 6.824 5.387 5.385 7.5H8v2H2v-6h2V6c1.824-2.43 4.729-4 8-4z"],"unicode":"","glyph":"M600 550C682.85 550 750 482.85 750 400C750 357.4999999999999 732.35 319.2000000000001 704 291.9000000000001L608.5 200H750V100H450V186.2000000000001L634.65 363.9500000000001C644.15 373.1 650 385.8499999999999 650 400C650 427.6 627.6 450 600 450S550 427.6 550 400H450C450 482.85 517.15 550 600 550zM900 550V350H1000V550H1100V100H1000V250H800V550H900zM200 600C200 473.65 258.55 361 350 287.7V166.8999999999999C200.55 253.35 100 414.9 100 600H200zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9C972.3 847.3 803.9999999999999 1000 600 1000C462.5 1000 341.2 930.65 269.25 825H400V725H100V1025H200V900C291.2 1021.5 436.45 1100 600 1100z","horizAdvX":"1200"},"4k-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8.5 10.5V12h-1V9H9v3H7.5V9H6v4.5h3V15h1.5v-1.5h1zM18 15l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5v-2.25L16.25 15H18z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM575 525V600H525V750H450V600H375V750H300V525H450V450H525V525H575zM900 450L787.5 600L900 750H812.5L725 637.5V750H650V450H725V562.5L812.5 450H900z","horizAdvX":"1200"},"4k-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8.5 10.5h-1V15H9v-1.5H6V9h1.5v3H9V9h1.5v3h1v1.5zM18 15h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM575 525H525V450H450V525H300V750H375V600H450V750H525V600H575V525zM900 450H812.5L725 562.5V450H650V750H725V637.5L812.5 750H900L787.5 600L900 450z","horizAdvX":"1200"},"a-b":{"path":["M0 0h24v24H0z","M5 15v2c0 1.054.95 2 2 2h3v2H7a4 4 0 0 1-4-4v-2h2zm13-5l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16 10h2zm-1 2.885L15.753 16h2.492L17 12.885zM3 3h6a3 3 0 0 1 2.235 5A3 3 0 0 1 9 13H3V3zm6 6H5v2h4a1 1 0 0 0 0-2zm8-6a4 4 0 0 1 4 4v2h-2V7a2 2 0 0 0-2-2h-3V3h3zM9 5H5v2h4a1 1 0 1 0 0-2z"],"unicode":"","glyph":"M250 450V350C250 297.3000000000001 297.5 250 350 250H500V150H350A200 200 0 0 0 150 350V450H250zM900 700L1120 150H1012.2499999999998L952.1999999999998 300H747.6999999999998L687.7499999999999 150H580.0499999999998L800 700H900zM850 555.75L787.65 400H912.25L850 555.75zM150 1050H450A150 150 0 0 0 561.75 800A150 150 0 0 0 450 550H150V1050zM450 750H250V650H450A50 50 0 0 1 450 750zM850 1050A200 200 0 0 0 1050 850V750H950V850A100 100 0 0 1 850 950H700V1050H850zM450 950H250V850H450A50 50 0 1 1 450 950z","horizAdvX":"1200"},"account-box-fill":{"path":["M0 0h24v24H0z","M3 4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H4.995A1.995 1.995 0 0 1 3 19.005V4.995zM6.357 18h11.49a6.992 6.992 0 0 0-5.745-3 6.992 6.992 0 0 0-5.745 3zM12 13a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M150 950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25zM317.85 300H892.35A349.6 349.6 0 0 1 605.1 450A349.6 349.6 0 0 1 317.85 300zM600 550A175 175 0 1 1 600 900A175 175 0 0 1 600 550z","horizAdvX":"1200"},"account-box-line":{"path":["M0 0h24v24H0z","M3 4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H4.995A1.995 1.995 0 0 1 3 19.005V4.995zM5 5v14h14V5H5zm2.972 13.18a9.983 9.983 0 0 1-1.751-.978A6.994 6.994 0 0 1 12.102 14c2.4 0 4.517 1.207 5.778 3.047a9.995 9.995 0 0 1-1.724 1.025A4.993 4.993 0 0 0 12.102 16c-1.715 0-3.23.864-4.13 2.18zM12 13a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M150 950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25zM250 950V250H950V950H250zM398.6 291A499.15 499.15 0 0 0 311.05 339.9000000000001A349.70000000000005 349.70000000000005 0 0 0 605.1 500C725.1 500 830.95 439.65 894 347.65A499.74999999999994 499.74999999999994 0 0 0 807.8 296.4000000000001A249.65000000000003 249.65000000000003 0 0 1 605.1 400C519.35 400 443.6 356.8 398.6 291zM600 550A175 175 0 1 0 600 900A175 175 0 0 0 600 550zM600 650A75 75 0 1 1 600 800A75 75 0 0 1 600 650z","horizAdvX":"1200"},"account-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zM6.023 15.416C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM301.15 429.2C374.55 319.7 484.75 250 608 250C731.2 250 841.45 319.6500000000001 914.8 429.2A448.3999999999999 448.3999999999999 0 0 1 608 550A448.3999999999999 448.3999999999999 0 0 1 301.1500000000001 429.2zM600 650A150 150 0 1 1 600 950A150 150 0 0 1 600 650z","horizAdvX":"1200"},"account-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4.987-3.744A7.966 7.966 0 0 0 12 20c1.97 0 3.773-.712 5.167-1.892A6.979 6.979 0 0 0 12.16 16a6.981 6.981 0 0 0-5.147 2.256zM5.616 16.82A8.975 8.975 0 0 1 12.16 14a8.972 8.972 0 0 1 6.362 2.634 8 8 0 1 0-12.906.187zM12 13a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350.65 287.2000000000001A398.29999999999995 398.29999999999995 0 0 1 600 200C698.5 200 788.65 235.6 858.3500000000001 294.6A348.95 348.95 0 0 1 608 400A349.04999999999995 349.04999999999995 0 0 1 350.65 287.2000000000001zM280.8 359A448.75 448.75 0 0 0 608 500A448.6 448.6 0 0 0 926.1 368.3A400 400 0 1 1 280.7999999999999 358.95zM600 550A200 200 0 1 0 600 950A200 200 0 0 0 600 550zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"account-pin-box-fill":{"path":["M0 0h24v24H0z","M14 21l-2 2-2-2H4.995A1.995 1.995 0 0 1 3 19.005V4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H14zm-7.643-3h11.49a6.992 6.992 0 0 0-5.745-3 6.992 6.992 0 0 0-5.745 3zM12 13a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M700 150L600 50L500 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H700zM317.85 300H892.35A349.6 349.6 0 0 1 605.1 450A349.6 349.6 0 0 1 317.85 300zM600 550A175 175 0 1 1 600 900A175 175 0 0 1 600 550z","horizAdvX":"1200"},"account-pin-box-line":{"path":["M0 0h24v24H0z","M14 21l-2 2-2-2H4.995A1.995 1.995 0 0 1 3 19.005V4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H14zm5-2V5H5v14h5.828L12 20.172 13.172 19H19zm-11.028-.82a9.983 9.983 0 0 1-1.751-.978A6.994 6.994 0 0 1 12.102 14c2.4 0 4.517 1.207 5.778 3.047a9.995 9.995 0 0 1-1.724 1.025A4.993 4.993 0 0 0 12.102 16c-1.715 0-3.23.864-4.13 2.18zM12 13a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M700 150L600 50L500 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H700zM950 250V950H250V250H541.4L600 191.4L658.6 250H950zM398.6 291A499.15 499.15 0 0 0 311.05 339.9000000000001A349.70000000000005 349.70000000000005 0 0 0 605.1 500C725.1 500 830.95 439.65 894 347.65A499.74999999999994 499.74999999999994 0 0 0 807.8 296.4000000000001A249.65000000000003 249.65000000000003 0 0 1 605.1 400C519.35 400 443.6 356.8 398.6 291zM600 550A175 175 0 1 0 600 900A175 175 0 0 0 600 550zM600 650A75 75 0 1 1 600 800A75 75 0 0 1 600 650z","horizAdvX":"1200"},"account-pin-circle-fill":{"path":["M0 0h24v24H0z","M14.256 21.744L12 24l-2.256-2.256C5.31 20.72 2 16.744 2 12 2 6.48 6.48 2 12 2s10 4.48 10 10c0 4.744-3.31 8.72-7.744 9.744zm-8.233-6.328C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M712.8 112.8L600 0L487.2 112.8C265.5 164 100 362.8 100 600C100 876 324 1100 600 1100S1100 876 1100 600C1100 362.8 934.5000000000002 164 712.8 112.8zM301.15 429.2C374.55 319.7 484.75 250 608 250C731.2 250 841.45 319.6500000000001 914.8 429.2A448.3999999999999 448.3999999999999 0 0 1 608 550A448.3999999999999 448.3999999999999 0 0 1 301.1500000000001 429.2zM600 650A150 150 0 1 1 600 950A150 150 0 0 1 600 650z","horizAdvX":"1200"},"account-pin-circle-line":{"path":["M0 0h24v24H0z","M9.745 21.745C5.308 20.722 2 16.747 2 12 2 6.477 6.477 2 12 2s10 4.477 10 10c0 4.747-3.308 8.722-7.745 9.745L12 24l-2.255-2.255zm-2.733-3.488a7.953 7.953 0 0 0 3.182 1.539l.56.129L12 21.172l1.247-1.247.56-.13a7.956 7.956 0 0 0 3.36-1.686A6.979 6.979 0 0 0 12.16 16c-2.036 0-3.87.87-5.148 2.257zM5.616 16.82A8.975 8.975 0 0 1 12.16 14a8.972 8.972 0 0 1 6.362 2.634 8 8 0 1 0-12.906.187zM12 13a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M487.2499999999999 112.75C265.4 163.8999999999999 100 362.65 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600C1100 362.65 934.6 163.8999999999999 712.75 112.7500000000002L600 0L487.2500000000001 112.75zM350.5999999999999 287.15A397.65000000000003 397.65000000000003 0 0 1 509.6999999999999 210.1999999999998L537.6999999999999 203.7499999999998L600 141.3999999999999L662.35 203.75L690.35 210.2499999999999A397.80000000000007 397.80000000000007 0 0 1 858.3500000000001 294.55A348.95 348.95 0 0 1 608 400C506.2 400 414.5 356.5 350.6 287.15zM280.8 359A448.75 448.75 0 0 0 608 500A448.6 448.6 0 0 0 926.1 368.3A400 400 0 1 1 280.7999999999999 358.95zM600 550A200 200 0 1 0 600 950A200 200 0 0 0 600 550zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"add-box-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7 8H7v2h4v4h2v-4h4v-2h-4V7h-2v4z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550 650H350V550H550V350H650V550H850V650H650V850H550V650z","horizAdvX":"1200"},"add-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6 6V7h2v4h4v2h-4v4h-2v-4H7v-2h4z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM550 650V850H650V650H850V550H650V350H550V550H350V650H550z","horizAdvX":"1200"},"add-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11H7v2h4v4h2v-4h4v-2h-4V7h-2v4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 650H350V550H550V350H650V550H850V650H650V850H550V650z","horizAdvX":"1200"},"add-circle-line":{"path":["M0 0h24v24H0z","M11 11V7h2v4h4v2h-4v4h-2v-4H7v-2h4zm1 11C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"],"unicode":"","glyph":"M550 650V850H650V650H850V550H650V350H550V550H350V650H550zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200z","horizAdvX":"1200"},"add-fill":{"path":["M0 0h24v24H0z","M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"],"unicode":"","glyph":"M550 650V950H650V650H950V550H650V250H550V550H250V650z","horizAdvX":"1200"},"add-line":{"path":["M0 0h24v24H0z","M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"],"unicode":"","glyph":"M550 650V950H650V650H950V550H650V250H550V550H250V650z","horizAdvX":"1200"},"admin-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm9 4h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1050 350H1100V100H700V350H750V400A150 150 0 0 0 1050 400V350zM950 350V400A50 50 0 0 1 850 400V350H950z","horizAdvX":"1200"},"admin-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm9 6h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1050 350H1100V100H700V350H750V400A150 150 0 0 0 1050 400V350zM950 350V400A50 50 0 0 1 850 400V350H950z","horizAdvX":"1200"},"advertisement-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM9.399 8h-2l-3.2 8h2.154l.4-1h3.29l.4 1h2.155L9.399 8zM19 8h-2v2h-1a3 3 0 0 0-.176 5.995L16 16h3V8zm-2 4v2h-1l-.117-.007a1 1 0 0 1 0-1.986L16 12h1zm-8.601-1.115L9.244 13H7.552l.847-2.115z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM469.9499999999999 800H369.95L209.95 400H317.6499999999999L337.65 450H502.15L522.15 400H629.9L469.9499999999999 800zM950 800H850V700H800A150 150 0 0 1 791.2 400.25L800 400H950V800zM850 600V500H800L794.15 500.35A50 50 0 0 0 794.15 599.65L800 600H850zM419.95 655.75L462.2 550H377.6L419.95 655.75z","horizAdvX":"1200"},"advertisement-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zM9.399 8l3.199 8h-2.155l-.4-1h-3.29l-.4 1H4.199l3.2-8h2zM19 8v8h-3a3 3 0 0 1 0-6h.999L17 8h2zm-2 4h-1a1 1 0 0 0-.117 1.993L16 14h1v-2zm-8.601-1.115L7.552 13h1.692l-.845-2.115z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM469.9499999999999 800L629.9 400H522.15L502.15 450H337.65L317.6499999999999 400H209.95L369.95 800H469.95zM950 800V400H800A150 150 0 0 0 800 700H849.9499999999999L850 800H950zM850 600H800A50 50 0 0 1 794.15 500.35L800 500H850V600zM419.95 655.75L377.6 550H462.2L419.95 655.75z","horizAdvX":"1200"},"airplay-fill":{"path":["M0 0h24v24H0z","M12.4 13.533l5 6.667a.5.5 0 0 1-.4.8H7a.5.5 0 0 1-.4-.8l5-6.667a.5.5 0 0 1 .8 0zM18 19v-2h2V5H4v12h2v2H2.992A.994.994 0 0 1 2 18V4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H18z"],"unicode":"","glyph":"M620 523.35L869.9999999999999 190A25 25 0 0 0 850 150H350A25 25 0 0 0 330 190L580 523.35A25 25 0 0 0 620 523.35zM900 250V350H1000V950H200V350H300V250H149.6A49.7 49.7 0 0 0 100 300V1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H900z","horizAdvX":"1200"},"airplay-line":{"path":["M0 0h24v24H0z","M12.4 13.533l5 6.667a.5.5 0 0 1-.4.8H7a.5.5 0 0 1-.4-.8l5-6.667a.5.5 0 0 1 .8 0zM12 16.33L10 19h4l-2-2.67zM18 19v-2h2V5H4v12h2v2H2.992A.994.994 0 0 1 2 18V4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H18z"],"unicode":"","glyph":"M620 523.35L869.9999999999999 190A25 25 0 0 0 850 150H350A25 25 0 0 0 330 190L580 523.35A25 25 0 0 0 620 523.35zM600 383.5000000000001L500 250H700L600 383.5000000000001zM900 250V350H1000V950H200V350H300V250H149.6A49.7 49.7 0 0 0 100 300V1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H900z","horizAdvX":"1200"},"alarm-fill":{"path":["M0 0h24v24H0z","M12 22a9 9 0 1 1 0-18 9 9 0 0 1 0 18zm1-9V8h-2v7h5v-2h-3zM1.747 6.282l3.535-3.535 1.415 1.414L3.16 7.697 1.747 6.282zm16.97-3.535l3.536 3.535-1.414 1.415-3.536-3.536 1.415-1.414z"],"unicode":"","glyph":"M600 100A450 450 0 1 0 600 1000A450 450 0 0 0 600 100zM650 550V800H550V450H800V550H650zM87.35 885.9L264.1 1062.65L334.85 991.95L158 815.15L87.35 885.9zM935.85 1062.65L1112.65 885.9L1041.9499999999998 815.15L865.1499999999999 991.95L935.8999999999997 1062.65z","horizAdvX":"1200"},"alarm-line":{"path":["M0 0h24v24H0z","M12 22a9 9 0 1 1 0-18 9 9 0 0 1 0 18zm0-2a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm1-7h3v2h-5V8h2v5zM1.747 6.282l3.535-3.535 1.415 1.414L3.16 7.697 1.747 6.282zm16.97-3.535l3.536 3.535-1.414 1.415-3.536-3.536 1.415-1.414z"],"unicode":"","glyph":"M600 100A450 450 0 1 0 600 1000A450 450 0 0 0 600 100zM600 200A350 350 0 1 1 600 900A350 350 0 0 1 600 200zM650 550H800V450H550V800H650V550zM87.35 885.9L264.1 1062.65L334.85 991.95L158 815.15L87.35 885.9zM935.85 1062.65L1112.65 885.9L1041.9499999999998 815.15L865.1499999999999 991.95L935.8999999999997 1062.65z","horizAdvX":"1200"},"alarm-warning-fill":{"path":["M0 0h24v24H0z","M4 20v-6a8 8 0 1 1 16 0v6h1v2H3v-2h1zm2-6h2a4 4 0 0 1 4-4V8a6 6 0 0 0-6 6zm5-12h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222z"],"unicode":"","glyph":"M200 200V500A400 400 0 1 0 1000 500V200H1050V100H150V200H200zM300 500H400A200 200 0 0 0 600 700V800A300 300 0 0 1 300 500zM550 1100H650V950H550V1100zM988.9 959.6L1059.6 888.9000000000001L953.6 782.85L882.85 853.55L988.9 959.6zM140.4 888.9L211.1 959.6L317.15 853.5999999999999L246.5 782.8L140.4 888.9z","horizAdvX":"1200"},"alarm-warning-line":{"path":["M0 0h24v24H0z","M4 20v-6a8 8 0 1 1 16 0v6h1v2H3v-2h1zm2 0h12v-6a6 6 0 1 0-12 0v6zm5-18h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222zM7 14a5 5 0 0 1 5-5v2a3 3 0 0 0-3 3H7z"],"unicode":"","glyph":"M200 200V500A400 400 0 1 0 1000 500V200H1050V100H150V200H200zM300 200H900V500A300 300 0 1 1 300 500V200zM550 1100H650V950H550V1100zM988.9 959.6L1059.6 888.9000000000001L953.6 782.85L882.85 853.55L988.9 959.6zM140.4 888.9L211.1 959.6L317.15 853.5999999999999L246.5 782.8L140.4 888.9zM350 500A250 250 0 0 0 600 750V650A150 150 0 0 1 450 500H350z","horizAdvX":"1200"},"album-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 14c2.213 0 4-1.787 4-4s-1.787-4-4-4-4 1.787-4 4 1.787 4 4 4zm0-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 400C710.6500000000001 400 800 489.3499999999999 800 600S710.6500000000001 800 600 800S400 710.6500000000001 400 600S489.35 400 600 400zM600 650C627.5 650 650 627.5 650 600S627.5 550 600 550S550 572.5 550 600S572.5 650 600 650z","horizAdvX":"1200"},"album-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400z","horizAdvX":"1200"},"alert-fill":{"path":["M0 0h24v24H0z","M12.866 3l9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0zM11 16v2h2v-2h-2zm0-7v5h2V9h-2z"],"unicode":"","glyph":"M643.3 1050L1119.6 225A50 50 0 0 0 1076.3 150H123.7A50 50 0 0 0 80.4 225L556.7 1050A50 50 0 0 0 643.3 1050zM550 400V300H650V400H550zM550 750V500H650V750H550z","horizAdvX":"1200"},"alert-line":{"path":["M0 0h24v24H0z","M12.866 3l9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0zm-8.66 16h15.588L12 5.5 4.206 19zM11 16h2v2h-2v-2zm0-7h2v5h-2V9z"],"unicode":"","glyph":"M643.3 1050L1119.6 225A50 50 0 0 0 1076.3 150H123.7A50 50 0 0 0 80.4 225L556.7 1050A50 50 0 0 0 643.3 1050zM210.3 250H989.6999999999998L600 925L210.3 250zM550 400H650V300H550V400zM550 750H650V500H550V750z","horizAdvX":"1200"},"aliens-fill":{"path":["M0 0h24v24H0z","M12 2a8.5 8.5 0 0 1 8.5 8.5c0 6.5-5.5 12-8.5 12s-8.5-5.5-8.5-12A8.5 8.5 0 0 1 12 2zm5.5 10a4.5 4.5 0 0 0-4.475 4.975 4.5 4.5 0 0 0 4.95-4.95A4.552 4.552 0 0 0 17.5 12zm-11 0c-.16 0-.319.008-.475.025a4.5 4.5 0 0 0 4.95 4.95A4.5 4.5 0 0 0 6.5 12z"],"unicode":"","glyph":"M600 1100A424.99999999999994 424.99999999999994 0 0 0 1025 675C1025 350 750 75 600 75S175 350 175 675A424.99999999999994 424.99999999999994 0 0 0 600 1100zM875 600A225 225 0 0 1 651.25 351.2499999999999A225 225 0 0 1 898.7500000000001 598.7499999999999A227.6 227.6 0 0 1 875 600zM325 600C317 600 309.05 599.6 301.25 598.75A225 225 0 0 1 548.7500000000001 351.2499999999999A225 225 0 0 1 325 600z","horizAdvX":"1200"},"aliens-line":{"path":["M0 0h24v24H0z","M12 2a8.5 8.5 0 0 1 8.5 8.5c0 6.5-5.5 12-8.5 12s-8.5-5.5-8.5-12A8.5 8.5 0 0 1 12 2zm0 2a6.5 6.5 0 0 0-6.5 6.5c0 4.794 4.165 10 6.5 10s6.5-5.206 6.5-10A6.5 6.5 0 0 0 12 4zm5.5 7c.16 0 .319.008.475.025a4.5 4.5 0 0 1-4.95 4.95A4.5 4.5 0 0 1 17.5 11zm-11 0a4.5 4.5 0 0 1 4.475 4.975 4.5 4.5 0 0 1-4.95-4.95C6.18 11.008 6.34 11 6.5 11z"],"unicode":"","glyph":"M600 1100A424.99999999999994 424.99999999999994 0 0 0 1025 675C1025 350 750 75 600 75S175 350 175 675A424.99999999999994 424.99999999999994 0 0 0 600 1100zM600 1000A325 325 0 0 1 275 675C275 435.3 483.2499999999999 175 600 175S925 435.3 925 675A325 325 0 0 1 600 1000zM875 650C883 650 890.9499999999999 649.6 898.7500000000001 648.75A225 225 0 0 0 651.2500000000001 401.2499999999999A225 225 0 0 0 875 650zM325 650A225 225 0 0 0 548.75 401.25A225 225 0 0 0 301.25 648.7500000000001C309 649.6 317 650 325 650z","horizAdvX":"1200"},"align-bottom":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zm5-6h3l-4 4-4-4h3V3h2v10zm10 0h3l-4 4-4-4h3V3h2v10z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM400 550H550L350 350L150 550H300V1050H400V550zM900 550H1050L850 350L650 550H800V1050H900V550z","horizAdvX":"1200"},"align-center":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm2 15h14v2H5v-2zm-2-5h18v2H3v-2zm2-5h14v2H5V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM250 250H950V150H250V250zM150 500H1050V400H150V500zM250 750H950V650H250V750z","horizAdvX":"1200"},"align-justify":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h18v2H3v-2zm0-5h18v2H3v-2zm0-5h18v2H3V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H1050V150H150V250zM150 500H1050V400H150V500zM150 750H1050V650H150V750z","horizAdvX":"1200"},"align-left":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h14v2H3v-2zm0-5h18v2H3v-2zm0-5h14v2H3V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H850V150H150V250zM150 500H1050V400H150V500zM150 750H850V650H150V750z","horizAdvX":"1200"},"align-right":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm4 15h14v2H7v-2zm-4-5h18v2H3v-2zm4-5h14v2H7V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM350 250H1050V150H350V250zM150 500H1050V400H150V500zM350 750H1050V650H350V750z","horizAdvX":"1200"},"align-top":{"path":["M0 0h24v24H0z","M3 3h18v2H3V3zm5 8v10H6V11H3l4-4 4 4H8zm10 0v10h-2V11h-3l4-4 4 4h-3z"],"unicode":"","glyph":"M150 1050H1050V950H150V1050zM400 650V150H300V650H150L350 850L550 650H400zM900 650V150H800V650H650L850 850L1050 650H900z","horizAdvX":"1200"},"align-vertically":{"path":["M0 0h24v24H0z","M3 11h18v2H3v-2zm15 7v3h-2v-3h-3l4-4 4 4h-3zM8 18v3H6v-3H3l4-4 4 4H8zM18 6h3l-4 4-4-4h3V3h2v3zM8 6h3l-4 4-4-4h3V3h2v3z"],"unicode":"","glyph":"M150 650H1050V550H150V650zM900 300V150H800V300H650L850 500L1050 300H900zM400 300V150H300V300H150L350 500L550 300H400zM900 900H1050L850 700L650 900H800V1050H900V900zM400 900H550L350 700L150 900H300V1050H400V900z","horizAdvX":"1200"},"alipay-fill":{"path":["M0 0h24v24H0z","M21.422 15.358c-3.83-1.153-6.055-1.84-6.678-2.062a12.41 12.41 0 0 0 1.32-3.32H12.8V8.872h4v-.68h-4V6.344h-1.536c-.28 0-.312.248-.312.248v1.592H7.2v.68h3.752v1.104H7.88v.616h6.224a10.972 10.972 0 0 1-.888 2.176c-1.408-.464-2.192-.784-3.912-.944-3.256-.312-4.008 1.48-4.128 2.576C5 16.064 6.48 17.424 8.688 17.424s3.68-1.024 5.08-2.72c1.167.558 3.338 1.525 6.514 2.902A9.99 9.99 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.983 9.983 0 0 1-.578 3.358zm-12.99 1.01c-2.336 0-2.704-1.48-2.584-2.096.12-.616.8-1.416 2.104-1.416 1.496 0 2.832.384 4.44 1.16-1.136 1.48-2.52 2.352-3.96 2.352z"],"unicode":"","glyph":"M1071.1000000000001 432.1C879.5999999999999 489.75 768.35 524.0999999999999 737.2 535.1999999999999A620.5 620.5 0 0 1 803.2 701.1999999999999H640V756.4H840V790.4H640V882.8H563.2C549.2 882.8 547.6000000000001 870.4 547.6000000000001 870.4V790.8H360V756.8H547.6V701.6H394V670.8000000000001H705.1999999999999A548.6 548.6 0 0 0 660.8 562C590.4 585.2 551.1999999999999 601.2 465.1999999999999 609.2C302.3999999999999 624.8000000000001 264.7999999999999 535.2 258.7999999999999 480.4C250 396.8 324 328.8000000000001 434.4000000000001 328.8000000000001S618.4 380.0000000000001 688.4000000000001 464.8000000000001C746.75 436.9000000000001 855.3000000000001 388.5500000000001 1014.1 319.7000000000001A499.5000000000001 499.5000000000001 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600A499.15 499.15 0 0 0 1071.1000000000001 432.1zM421.6 381.5999999999999C304.8 381.5999999999999 286.4 455.5999999999999 292.4000000000001 486.3999999999999C298.4000000000001 517.1999999999999 332.4000000000001 557.1999999999999 397.6 557.1999999999999C472.4 557.1999999999999 539.2 537.9999999999999 619.6 499.1999999999999C562.8000000000001 425.2 493.6000000000001 381.5999999999999 421.6000000000002 381.5999999999999z","horizAdvX":"1200"},"alipay-line":{"path":["M0 0h24v24H0z","M18.408 16.79c-2.173-.95-3.72-1.646-4.64-2.086-1.4 1.696-2.872 2.72-5.08 2.72S5 16.064 5.176 14.392c.12-1.096.872-2.888 4.128-2.576 1.72.16 2.504.48 3.912.944.36-.664.664-1.4.888-2.176H7.88v-.616h3.072V8.864H7.2v-.68h3.752V6.592s.032-.248.312-.248H12.8v1.848h4v.68h-4v1.104h3.264a12.41 12.41 0 0 1-1.32 3.32c.51.182 2.097.676 4.76 1.483a8 8 0 1 0-1.096 2.012zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.568-5.632c1.44 0 2.824-.872 3.96-2.352-1.608-.776-2.944-1.16-4.44-1.16-1.304 0-1.984.8-2.104 1.416-.12.616.248 2.096 2.584 2.096z"],"unicode":"","glyph":"M920.4 360.5C811.75 408 734.4 442.8000000000001 688.4000000000001 464.8000000000001C618.4 380.0000000000001 544.8000000000001 328.8000000000001 434.4000000000001 328.8000000000001S250 396.8 258.8 480.4C264.8 535.2 302.4 624.8000000000001 465.2 609.2C551.2 601.2 590.4 585.2 660.8000000000001 562.0000000000001C678.8000000000001 595.2 694 632.0000000000001 705.2 670.8000000000001H394V701.6000000000001H547.6V756.8H360V790.8H547.6V870.4000000000001S549.2 882.8 563.1999999999999 882.8H640V790.4H840V756.4H640V701.2H803.2A620.5 620.5 0 0 0 737.2 535.2C762.6999999999999 526.1 842.0500000000001 501.4 975.2 461.05A400 400 0 1 1 920.3999999999997 360.45zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM421.6 381.5999999999999C493.6 381.5999999999999 562.8 425.2 619.6 499.1999999999999C539.1999999999999 537.9999999999999 472.4 557.1999999999999 397.6 557.1999999999999C332.3999999999999 557.1999999999999 298.4 517.1999999999999 292.4 486.3999999999999C286.3999999999999 455.5999999999999 304.8 381.5999999999999 421.5999999999999 381.5999999999999z","horizAdvX":"1200"},"amazon-fill":{"path":["M0 0h24v24H0z","M21.996 18.23c0 .727-.405 2.127-1.314 2.896-.182.14-.365.061-.285-.143.265-.648.872-2.147.587-2.492-.2-.262-1.03-.243-1.738-.182-.324.041-.607.06-.828.105-.203.017-.245-.163-.041-.303.262-.185.545-.325.87-.428 1.15-.344 2.48-.137 2.67.083.036.042.08.16.08.463zm-1.921 1.294a7.426 7.426 0 0 1-.83.55c-2.122 1.275-4.87 1.943-7.258 1.943-3.843 0-7.28-1.417-9.888-3.788-.223-.182-.038-.446.223-.303 2.81 1.64 6.288 2.632 9.889 2.632 2.265 0 4.708-.424 7.035-1.336.162-.061.344-.144.503-.202.367-.165.69.243.326.504zm-6.17-11.03c0-1.041.041-1.654-.304-2.18-.306-.433-.833-.693-1.568-.652-.798.044-1.655.567-1.874 1.526-.042.22-.171.436-.436.483l-2.436-.31c-.174-.04-.438-.173-.352-.521C7.458 4.088 9.81 3.129 12.033 3h.523c1.22 0 2.787.349 3.79 1.264 1.217 1.136 1.088 2.662 1.088 4.32v3.927c0 1.178.477 1.7.958 2.314.13.219.174.477-.045.655-.48.435-1.394 1.219-1.917 1.654-.174.133-.488.147-.61.045-.77-.645-.958-1.003-1.435-1.658-.83.871-1.526 1.352-2.355 1.613a7.035 7.035 0 0 1-1.784.216c-2.09 0-3.746-1.303-3.746-3.88 0-2.049 1.09-3.442 2.7-4.101 1.61-.66 3.95-.87 4.704-.874zm-.478 5.192c.52-.872.477-1.586.477-3.185-.651 0-1.306.045-1.871.178-1.045.303-1.874.961-1.874 2.355 0 1.09.567 1.832 1.525 1.832.132 0 .248-.016.349-.045.67-.186 1.088-.522 1.394-1.135z"],"unicode":"","glyph":"M1099.8 288.5C1099.8 252.15 1079.55 182.1500000000001 1034.1 143.7000000000001C1025 136.6999999999998 1015.85 140.6499999999999 1019.85 150.8499999999999C1033.1 183.25 1063.4499999999998 258.2 1049.1999999999998 275.4500000000001C1039.2 288.5500000000001 997.6999999999998 287.5999999999999 962.3 284.55C946.1 282.4999999999999 931.95 281.55 920.9 279.3C910.75 278.45 908.6499999999997 287.45 918.85 294.45C931.95 303.7 946.1 310.7 962.35 315.85C1019.85 333.0500000000001 1086.35 322.7000000000001 1095.8500000000001 311.7000000000001C1097.65 309.6 1099.85 303.7000000000001 1099.85 288.5500000000001zM1003.75 223.8A371.3 371.3 0 0 0 962.25 196.3C856.1500000000001 132.55 718.75 99.1499999999999 599.3500000000001 99.1499999999999C407.2000000000001 99.1499999999999 235.3500000000001 170 104.9500000000001 288.5499999999999C93.8000000000001 297.6499999999998 103.0500000000001 310.8499999999999 116.1000000000001 303.7C256.6000000000001 221.6999999999998 430.5000000000002 172.0999999999999 610.5500000000001 172.0999999999999C723.8000000000002 172.0999999999999 845.9500000000002 193.2999999999999 962.3 238.8999999999998C970.4 241.9499999999997 979.5000000000002 246.0999999999997 987.4500000000002 248.9999999999999C1005.8000000000002 257.2499999999998 1021.9500000000002 236.8499999999999 1003.7500000000002 223.7999999999997zM695.25 775.3C695.25 827.3499999999999 697.3 858 680.05 884.3C664.75 905.9499999999998 638.4 918.9499999999998 601.65 916.8999999999997C561.75 914.7 518.9 888.55 507.9499999999999 840.5999999999999C505.85 829.5999999999999 499.4 818.8 486.15 816.4499999999999L364.35 831.9499999999999C355.6499999999999 833.9499999999999 342.45 840.5999999999999 346.75 858C372.9000000000001 995.6 490.5 1043.55 601.65 1050H627.8C688.8 1050 767.15 1032.55 817.3 986.8C878.15 930 871.7 853.7 871.7 770.8V574.45C871.7 515.55 895.5500000000001 489.45 919.6 458.75C926.1 447.8000000000001 928.3 434.9 917.35 426.0000000000001C893.3499999999999 404.25 847.65 365.0500000000001 821.4999999999998 343.3C812.7999999999998 336.65 797.0999999999998 335.9500000000001 790.9999999999999 341.05C752.4999999999999 373.2999999999999 743.0999999999998 391.2 719.2499999999998 423.9499999999998C677.7499999999998 380.3999999999999 642.9499999999998 356.3499999999999 601.4999999999998 343.2999999999999A351.75 351.75 0 0 0 512.2999999999997 332.4999999999998C407.7999999999998 332.4999999999998 324.9999999999997 397.6499999999998 324.9999999999997 526.4999999999997C324.9999999999997 628.9499999999997 379.4999999999997 698.5999999999997 459.9999999999998 731.5499999999997C540.4999999999998 764.5499999999997 657.4999999999998 775.0499999999996 695.1999999999998 775.2499999999997zM671.35 515.6999999999999C697.3499999999999 559.3 695.2 594.9999999999999 695.2 674.9499999999999C662.65 674.9499999999999 629.9 672.6999999999999 601.65 666.05C549.4 650.8999999999999 507.9499999999999 617.9999999999999 507.9499999999999 548.2999999999998C507.9499999999999 493.7999999999998 536.3 456.6999999999998 584.1999999999999 456.6999999999998C590.8 456.6999999999998 596.5999999999999 457.4999999999999 601.65 458.9499999999998C635.15 468.2499999999999 656.05 485.0499999999998 671.35 515.6999999999998z","horizAdvX":"1200"},"amazon-line":{"path":["M0 0h24v24H0z","M15.625 14.62c-1.107 1.619-2.728 2.384-4.625 2.384-2.304 0-4.276-1.773-3.993-4.124.315-2.608 2.34-3.73 5.708-4.143.601-.073.85-.094 2.147-.19l.138-.01v-.215C15 6.526 13.932 5.3 12.5 5.3c-1.437 0-2.44.747-3.055 2.526l-1.89-.652C8.442 4.604 10.193 3.3 12.5 3.3c2.603 0 4.5 2.178 4.5 5.022 0 2.649.163 4.756.483 5.557.356.892.486 1.117.884 1.613l-1.56 1.251c-.523-.652-.753-1.049-1.181-2.122v-.001zm5.632 5.925c-.271.2-.742.081-.529-.44.265-.648.547-1.408.262-1.752-.21-.255-.467-.382-1.027-.382-.46 0-.69.06-.995.08-.204.013-.293-.297-.091-.44a2.96 2.96 0 0 1 .87-.428c1.15-.344 2.505-.155 2.67.083.365.53-.199 2.569-1.16 3.28zm-1.182-1.084a7.555 7.555 0 0 1-.83.695c-2.122 1.616-4.87 2.46-7.258 2.46-3.843 0-7.28-1.793-9.888-4.795-.223-.23-.038-.566.223-.384 2.81 2.077 6.288 3.333 9.889 3.333 2.265 0 4.708-.537 7.035-1.693.162-.076.344-.18.503-.254.367-.21.69.306.326.638zm-5.065-8.92c-1.258.094-1.496.113-2.052.181-2.552.313-3.797 1.003-3.965 2.398-.126 1.043.81 1.884 2.007 1.884 2.039 0 3.517-1.228 4.022-4.463h-.012z"],"unicode":"","glyph":"M781.25 469C725.9000000000001 388.05 644.85 349.8000000000001 550 349.8000000000001C434.8 349.8000000000001 336.2 438.4500000000001 350.35 556C366.1 686.4000000000001 467.35 742.5 635.75 763.1500000000001C665.8 766.8000000000002 678.25 767.8500000000001 743.1 772.6500000000001L750 773.1500000000001V783.9000000000001C750 873.7 696.6 935 625 935C553.15 935 503 897.6500000000001 472.25 808.7L377.7500000000001 841.3C422.1 969.8 509.65 1035 625 1035C755.15 1035 850 926.1 850 783.9000000000001C850 651.45 858.15 546.1 874.15 506.0500000000001C891.9500000000002 461.45 898.45 450.2000000000001 918.35 425.4000000000001L840.3500000000001 362.85C814.2000000000002 395.4500000000002 802.7 415.3000000000001 781.3000000000001 468.95V469zM1062.85 172.75C1049.3 162.7500000000002 1025.7499999999998 168.7000000000001 1036.3999999999999 194.7500000000001C1049.6499999999999 227.1500000000001 1063.75 265.1500000000002 1049.5 282.3500000000002C1038.9999999999998 295.1 1026.15 301.4500000000002 998.1499999999997 301.4500000000002C975.1499999999997 301.4500000000002 963.6499999999997 298.4500000000003 948.3999999999997 297.4500000000003C938.1999999999998 296.8000000000002 933.7499999999998 312.3000000000003 943.8499999999998 319.4500000000003A148 148 0 0 0 987.3499999999998 340.8500000000004C1044.8499999999997 358.0500000000004 1112.5999999999997 348.6000000000004 1120.8499999999997 336.7000000000005C1139.0999999999997 310.2000000000004 1110.8999999999996 208.2500000000005 1062.8499999999997 172.7000000000003zM1003.75 226.9500000000001A377.74999999999994 377.74999999999994 0 0 0 962.25 192.2000000000001C856.1500000000001 111.4000000000001 718.75 69.2000000000001 599.3500000000001 69.2000000000001C407.2000000000001 69.2000000000001 235.3500000000001 158.8499999999999 104.9500000000001 308.9500000000001C93.8000000000001 320.4500000000002 103.0500000000001 337.25 116.1000000000001 328.1500000000001C256.6000000000001 224.3000000000002 430.5000000000002 161.5000000000002 610.5500000000001 161.5000000000002C723.8000000000002 161.5000000000002 845.9500000000002 188.3500000000001 962.3 246.1500000000003C970.4 249.9500000000003 979.5000000000002 255.1500000000002 987.4500000000002 258.8500000000004C1005.8000000000002 269.3500000000004 1021.9500000000002 243.5500000000003 1003.7500000000002 226.9500000000003zM750.4999999999999 672.95C687.5999999999999 668.2500000000001 675.6999999999999 667.3000000000001 647.8999999999999 663.9000000000001C520.3 648.2500000000001 458.0499999999999 613.7500000000001 449.6499999999999 544.0000000000001C443.35 491.8500000000001 490.15 449.8000000000001 549.9999999999999 449.8000000000001C651.9499999999999 449.8000000000001 725.8499999999999 511.2 751.0999999999999 672.9500000000002H750.4999999999999z","horizAdvX":"1200"},"anchor-fill":{"path":["M0 0h24v24H0z","M13 9.874v10.054c3.619-.453 6.487-3.336 6.938-6.972H17L20.704 7A10.041 10.041 0 0 1 22 11.95C22 17.5 17.523 22 12 22S2 17.5 2 11.95c0-1.8.471-3.489 1.296-4.95L7 12.956H4.062c.451 3.636 3.32 6.519 6.938 6.972V9.874A4.002 4.002 0 0 1 12 2a4 4 0 0 1 1 7.874zM12 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M650 706.3V203.5999999999999C830.95 226.2499999999999 974.3500000000003 370.3999999999999 996.9 552.2H850L1035.2 850A502.05000000000007 502.05000000000007 0 0 0 1100 602.5C1100 325 876.15 100 600 100S100 325 100 602.5C100 692.5 123.55 776.95 164.8 850L350 552.2H203.1C225.65 370.4000000000001 369.1 226.2499999999999 550 203.5999999999999V706.3A200.10000000000002 200.10000000000002 0 0 0 600 1100A200 200 0 0 0 650 706.3000000000001zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"anchor-line":{"path":["M0 0h24v24H0z","M2.05 11H7v2H4.062A8.004 8.004 0 0 0 11 19.938V9.874A4.002 4.002 0 0 1 12 2a4 4 0 0 1 1 7.874v10.064A8.004 8.004 0 0 0 19.938 13H17v-2h4.95c.033.329.05.663.05 1 0 5.523-4.477 10-10 10S2 17.523 2 12c0-.337.017-.671.05-1zM12 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M102.5 650H350V550H203.1A400.20000000000005 400.20000000000005 0 0 1 550 203.1V706.3A200.10000000000002 200.10000000000002 0 0 0 600 1100A200 200 0 0 0 650 706.3000000000001V203.1A400.20000000000005 400.20000000000005 0 0 1 996.9 550H850V650H1097.5C1099.15 633.55 1100 616.85 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600C100 616.85 100.85 633.55 102.5 650zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"ancient-gate-fill":{"path":["M0 0h24v24H0z","M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-6v-2a3 3 0 0 0-5.995-.176L9 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-1.865-7a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072z"],"unicode":"","glyph":"M945.05 700A149.95000000000002 149.95000000000002 0 0 1 1148.8 644.35A175 175 0 0 0 1050.05 466.85L1050 150H750V250A150 150 0 0 1 450.25 258.8L450 250V150H150V466.8000000000001A175 175 0 0 0 51.05 644.4499999999999A149.95000000000002 149.95000000000002 0 0 1 254.9 700H945.05zM851.8000000000001 1050A175 175 0 0 1 1074.1 907A175 175 0 0 0 909.6 750.25L900 750H300A175 175 0 0 0 125.9 907A175 175 0 0 1 348.2000000000001 1050H851.8000000000001z","horizAdvX":"1200"},"ancient-gate-line":{"path":["M0 0h24v24H0z","M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-7v-2a2 2 0 0 0-1.85-1.995L12 17a2 2 0 0 0-1.995 1.85L10 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-.971 2H6.069l-.076.079c-.431.42-.935.76-1.486 1.002l-.096.039.589.28-.001 5.6 3.002-.001v-.072l.01-.223c.149-2.016 1.78-3.599 3.854-3.698l.208-.005.223.01a4 4 0 0 1 3.699 3.787l.004.201L19 19l.001-5.6.587-.28-.095-.04a5.002 5.002 0 0 1-1.486-1.001L17.93 12zm-.894-9a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072zM15.6 5H8.399a5.507 5.507 0 0 1-1.49 1.816L6.661 7h10.677l-.012-.008a5.518 5.518 0 0 1-1.579-1.722L15.6 5z"],"unicode":"","glyph":"M945.05 700A149.95000000000002 149.95000000000002 0 0 1 1148.8 644.35A175 175 0 0 0 1050.05 466.85L1050 150H700V250A100 100 0 0 1 607.5 349.75L600 350A100 100 0 0 1 500.2499999999999 257.4999999999999L500 250V150H150V466.8000000000001A175 175 0 0 0 51.05 644.4499999999999A149.95000000000002 149.95000000000002 0 0 1 254.9 700H945.05zM896.5 600H303.45L299.6500000000001 596.05C278.1 575.05 252.9 558.05 225.35 545.9499999999999L220.55 544L250 530L249.95 250L400.05 250.0500000000001V253.65L400.55 264.8C408 365.5999999999999 489.55 444.75 593.2499999999999 449.7000000000001L603.65 449.9500000000001L614.8 449.4500000000001A200 200 0 0 0 799.75 260.1000000000002L799.9499999999999 250.0500000000001L950 250L950.05 530L979.4 544L974.65 545.9999999999999A250.09999999999997 250.09999999999997 0 0 0 900.35 596.0499999999998L896.5 600zM851.8000000000001 1050A175 175 0 0 1 1074.1 907A175 175 0 0 0 909.6 750.25L900 750H300A175 175 0 0 0 125.9 907A175 175 0 0 1 348.2000000000001 1050H851.8000000000001zM780 950H419.95A275.34999999999997 275.34999999999997 0 0 0 345.45 859.2L333.05 850H866.9000000000001L866.3000000000001 850.4A275.90000000000003 275.90000000000003 0 0 0 787.35 936.5L780 950z","horizAdvX":"1200"},"ancient-pavilion-fill":{"path":["M0 0h24v24H0z","M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7z"],"unicode":"","glyph":"M625.65 1099.95A450.2 450.2 0 0 1 1124.15 806.1A225.05 225.05 0 0 0 950 605.6V250L1050 249.95V149.9500000000001H150V249.95H250V605.5999999999999A225.15 225.15 0 0 0 75.8 806.0999999999999A450.2 450.2 0 0 1 574.4 1099.8999999999999H625.65zM850 600H350V250H850V600z","horizAdvX":"1200"},"ancient-pavilion-line":{"path":["M0 0h24v24H0z","M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7zm-5-6.673l-.11.155A11.012 11.012 0 0 1 5.4 9.736l-.358.073.673.19h12.573l.668-.19-.011-.002a11.01 11.01 0 0 1-6.836-4.326L12 5.326z"],"unicode":"","glyph":"M625.65 1099.95A450.2 450.2 0 0 1 1124.15 806.1A225.05 225.05 0 0 0 950 605.6V250L1050 249.95V149.9500000000001H150V249.95H250V605.5999999999999A225.15 225.15 0 0 0 75.8 806.0999999999999A450.2 450.2 0 0 1 574.4 1099.8999999999999H625.65zM850 600H350V250H850V600zM600 933.65L594.5 925.9A550.6 550.6 0 0 0 270 713.2L252.1 709.55L285.7500000000001 700.05H914.4L947.8 709.55L947.25 709.65A550.5 550.5 0 0 0 605.45 925.95L600 933.7z","horizAdvX":"1200"},"android-fill":{"path":["M0 0h24v24H0z","M6.382 3.968A8.962 8.962 0 0 1 12 2c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453A8.962 8.962 0 0 1 21 11v1H3v-1c0-2.125.736-4.078 1.968-5.618L3.515 3.93l1.414-1.414 1.453 1.453zM3 14h18v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7zm6-5a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm6 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M319.1 1001.6A448.1 448.1 0 0 0 600 1100C706.25 1100 803.9 1063.2 880.9000000000001 1001.6L953.55 1074.25L1024.2500000000002 1003.55L951.6000000000003 930.9A448.1 448.1 0 0 0 1050 650V600H150V650C150 756.25 186.8 853.9000000000001 248.4 930.9L175.75 1003.5L246.45 1074.2L319.1 1001.55zM150 500H1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V500zM450 750A50 50 0 1 1 450 850A50 50 0 0 1 450 750zM750 750A50 50 0 1 1 750 850A50 50 0 0 1 750 750z","horizAdvX":"1200"},"android-line":{"path":["M0 0h24v24H0z","M19 13H5v7h14v-7zm0-2a7 7 0 0 0-14 0h14zM6.382 3.968A8.962 8.962 0 0 1 12 2c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453A8.962 8.962 0 0 1 21 11v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11c0-2.125.736-4.078 1.968-5.618L3.515 3.93l1.414-1.414 1.453 1.453zM9 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm6 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M950 550H250V200H950V550zM950 650A350 350 0 0 1 250 650H950zM319.1 1001.6A448.1 448.1 0 0 0 600 1100C706.25 1100 803.9 1063.2 880.9000000000001 1001.6L953.55 1074.25L1024.2500000000002 1003.55L951.6000000000003 930.9A448.1 448.1 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650C150 756.25 186.8 853.9000000000001 248.4 930.9L175.75 1003.5L246.45 1074.2L319.1 1001.55zM450 750A50 50 0 1 0 450 850A50 50 0 0 0 450 750zM750 750A50 50 0 1 0 750 850A50 50 0 0 0 750 750z","horizAdvX":"1200"},"angularjs-fill":{"path":["M0 0h24v24H0z","M12 2l9.3 3.32-1.418 12.31L12 22l-7.882-4.37L2.7 5.32 12 2zm0 2.21L6.186 17.26h2.168l1.169-2.92h4.934l1.17 2.92h2.167L12 4.21zm1.698 8.33h-3.396L12 8.45l1.698 4.09z"],"unicode":"","glyph":"M600 1100L1065 934L994.1 318.4999999999999L600 100L205.9 318.5L135 934L600 1100zM600 989.5L309.3 336.9999999999999H417.7L476.15 482.9999999999999H722.85L781.35 336.9999999999999H889.7L600 989.5zM684.9 573H515.1L600 777.5L684.9 573z","horizAdvX":"1200"},"angularjs-line":{"path":["M0 0h24v24H0z","M17.523 16.65l.49-.27 1.118-9.71L12 4.123 4.869 6.669l1.119 9.71.473.263L12 4.21l5.523 12.44zm-1.099.61h-.798l-1.169-2.92H9.523l-1.17 2.92h-.777L12 19.713l4.424-2.453zM12 2l9.3 3.32-1.418 12.31L12 22l-7.882-4.37L2.7 5.32 12 2zm1.698 10.54L12 8.45l-1.698 4.09h3.396z"],"unicode":"","glyph":"M876.15 367.5000000000001L900.6499999999999 381L956.5499999999998 866.5000000000001L600 993.85L243.45 866.55L299.4 381.05L323.05 367.8999999999999L600 989.5L876.15 367.5000000000001zM821.1999999999999 337.0000000000001H781.3L722.8499999999999 483.0000000000001H476.15L417.65 337.0000000000001H378.8L600 214.3499999999999L821.1999999999999 336.9999999999999zM600 1100L1065 934L994.1 318.4999999999999L600 100L205.9 318.5L135 934L600 1100zM684.9 573L600 777.5L515.1 573H684.9z","horizAdvX":"1200"},"anticlockwise-2-fill":{"path":["M0 0h24v24H0z","M14 4h2a5 5 0 0 1 5 5v4h-2V9a3 3 0 0 0-3-3h-2v3L9 5l5-4v3zm1 7v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1z"],"unicode":"","glyph":"M700 1000H800A250 250 0 0 0 1050 750V550H950V750A150 150 0 0 1 800 900H700V750L450 950L700 1150V1000zM750 650V150A50 50 0 0 0 700 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H700A50 50 0 0 0 750 650z","horizAdvX":"1200"},"anticlockwise-2-line":{"path":["M0 0h24v24H0z","M13.414 6l1.829 1.828-1.415 1.415L9.586 5 13.828.757l1.415 1.415L13.414 4H16a5 5 0 0 1 5 5v4h-2V9a3 3 0 0 0-3-3h-2.586zM15 11v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1zm-2 1H5v8h8v-8z"],"unicode":"","glyph":"M670.6999999999999 900L762.15 808.5999999999999L691.4 737.8499999999999L479.3 950L691.4 1162.15L762.15 1091.4L670.6999999999999 1000H800A250 250 0 0 0 1050 750V550H950V750A150 150 0 0 1 800 900H670.6999999999999zM750 650V150A50 50 0 0 0 700 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H700A50 50 0 0 0 750 650zM650 600H250V200H650V600z","horizAdvX":"1200"},"anticlockwise-fill":{"path":["M0 0h24v24H0z","M6 10h3l-4 5-4-5h3V8a5 5 0 0 1 5-5h4v2H9a3 3 0 0 0-3 3v2zm5-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H11a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M300 700H450L250 450L50 700H200V800A250 250 0 0 0 450 1050H650V950H450A150 150 0 0 1 300 800V700zM550 750H1050A50 50 0 0 0 1100 700V200A50 50 0 0 0 1050 150H550A50 50 0 0 0 500 200V700A50 50 0 0 0 550 750z","horizAdvX":"1200"},"anticlockwise-line":{"path":["M0 0h24v24H0z","M11 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H11a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm1 2v8h8v-8h-8zm-6-.414l1.828-1.829 1.415 1.415L5 14.414.757 10.172l1.415-1.415L4 10.586V8a5 5 0 0 1 5-5h4v2H9a3 3 0 0 0-3 3v2.586z"],"unicode":"","glyph":"M550 750H1050A50 50 0 0 0 1100 700V200A50 50 0 0 0 1050 150H550A50 50 0 0 0 500 200V700A50 50 0 0 0 550 750zM600 650V250H1000V650H600zM300 670.6999999999999L391.4000000000001 762.1500000000001L462.15 691.4L250 479.3000000000001L37.85 691.4L108.6 762.1499999999999L200 670.6999999999999V800A250 250 0 0 0 450 1050H650V950H450A150 150 0 0 1 300 800V670.6999999999999z","horizAdvX":"1200"},"app-store-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM8.823 15.343c-.395-.477-.886-.647-1.479-.509l-.15.041-.59 1.016a.823.823 0 0 0 1.366.916l.062-.093.79-1.371zM13.21 8.66c-.488.404-.98 1.597-.29 2.787l3.04 5.266a.824.824 0 0 0 1.476-.722l-.049-.1-.802-1.392h1.19a.82.82 0 0 0 .822-.823.82.82 0 0 0-.72-.816l-.103-.006h-2.14L13.44 9.057l-.23-.396zm.278-3.044a.825.825 0 0 0-1.063.21l-.062.092-.367.633-.359-.633a.824.824 0 0 0-1.476.722l.049.1.838 1.457-2.685 4.653H6.266a.82.82 0 0 0-.822.822c0 .421.312.766.719.817l.103.006h7.48c.34-.64-.06-1.549-.81-1.638l-.121-.007h-2.553l3.528-6.11a.823.823 0 0 0-.302-1.124z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM441.1500000000001 432.85C421.4000000000001 456.7 396.85 465.2 367.2 458.3000000000001L359.7 456.25L330.2 405.4500000000001A41.15 41.15 0 0 1 398.5000000000001 359.6500000000001L401.6 364.3000000000001L441.1 432.8500000000002zM660.5 767C636.1 746.8 611.5 687.15 646.0000000000001 627.6500000000001L798 364.3499999999999A41.199999999999996 41.199999999999996 0 0 1 871.8 400.45L869.35 405.45L829.25 475.0499999999998H888.7500000000001A40.99999999999999 40.99999999999999 0 0 1 929.85 516.1999999999999A40.99999999999999 40.99999999999999 0 0 1 893.8500000000001 556.9999999999999L888.7 557.3H781.7L672 747.15L660.5 766.95zM674.4000000000001 919.2A41.25 41.25 0 0 1 621.25 908.7L618.1500000000001 904.1L599.8000000000001 872.45L581.8500000000001 904.1A41.199999999999996 41.199999999999996 0 0 1 508.0500000000001 868L510.5000000000001 863L552.4 790.1500000000001L418.15 557.5000000000001H313.3A40.99999999999999 40.99999999999999 0 0 1 272.2 516.4000000000001C272.2 495.3500000000001 287.8 478.1000000000001 308.1500000000001 475.5500000000002L313.3 475.2500000000001H687.3000000000001C704.3000000000001 507.2500000000001 684.3 552.7 646.8 557.1500000000001L640.75 557.5000000000001H513.1L689.5 863.0000000000001A41.15 41.15 0 0 1 674.4000000000001 919.2z","horizAdvX":"1200"},"app-store-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zM8.823 15.343l-.79 1.37a.823.823 0 1 1-1.428-.822l.589-1.016c.66-.206 1.201-.048 1.629.468zM13.21 8.66l2.423 4.194h2.141a.82.82 0 0 1 .823.822.82.82 0 0 1-.823.823h-1.19l.803 1.391a.824.824 0 0 1-1.427.823l-3.04-5.266c-.69-1.19-.198-2.383.29-2.787zm.278-3.044c.395.226.528.73.302 1.125l-3.528 6.109h2.553c.826 0 1.29.972.931 1.645h-7.48a.82.82 0 0 1-.822-.823.82.82 0 0 1 .822-.822h2.097l2.685-4.653-.838-1.456a.824.824 0 0 1 1.427-.823l.359.633.367-.633a.823.823 0 0 1 1.125-.302z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM441.1500000000001 432.85L401.6500000000001 364.3499999999999A41.15 41.15 0 1 0 330.2500000000001 405.45L359.7000000000001 456.2499999999999C392.7000000000001 466.5499999999998 419.7500000000001 458.6499999999999 441.1500000000001 432.8499999999999zM660.5 767L781.6500000000001 557.3000000000001H888.7A40.99999999999999 40.99999999999999 0 0 0 929.85 516.2A40.99999999999999 40.99999999999999 0 0 0 888.7 475.0500000000001H829.1999999999999L869.35 405.5000000000001A41.199999999999996 41.199999999999996 0 0 0 798 364.3500000000002L646.0000000000001 627.6500000000001C611.5000000000001 687.1500000000001 636.1 746.8000000000002 660.5 767.0000000000002zM674.4000000000001 919.2C694.1500000000001 907.9 700.8000000000001 882.7 689.5 862.95L513.1 557.5H640.7500000000001C682.0500000000001 557.5 705.25 508.9000000000001 687.3000000000001 475.25H313.3000000000001A40.99999999999999 40.99999999999999 0 0 0 272.2000000000001 516.4000000000001A40.99999999999999 40.99999999999999 0 0 0 313.3000000000001 557.5H418.1500000000001L552.4000000000001 790.1500000000001L510.5000000000001 862.95A41.199999999999996 41.199999999999996 0 0 0 581.8500000000001 904.1L599.8000000000001 872.45L618.1500000000002 904.1A41.15 41.15 0 0 0 674.4000000000002 919.2z","horizAdvX":"1200"},"apple-fill":{"path":["M0 0h24v24H0z","M11.624 7.222c-.876 0-2.232-.996-3.66-.96-1.884.024-3.612 1.092-4.584 2.784-1.956 3.396-.504 8.412 1.404 11.172.936 1.344 2.04 2.856 3.504 2.808 1.404-.06 1.932-.912 3.636-.912 1.692 0 2.172.912 3.66.876 1.512-.024 2.472-1.368 3.396-2.724 1.068-1.56 1.512-3.072 1.536-3.156-.036-.012-2.94-1.128-2.976-4.488-.024-2.808 2.292-4.152 2.4-4.212-1.32-1.932-3.348-2.148-4.056-2.196-1.848-.144-3.396 1.008-4.26 1.008zm3.12-2.832c.78-.936 1.296-2.244 1.152-3.54-1.116.048-2.46.744-3.264 1.68-.72.828-1.344 2.16-1.176 3.432 1.236.096 2.508-.636 3.288-1.572z"],"unicode":"","glyph":"M581.2 838.9C537.4000000000001 838.9 469.6 888.6999999999999 398.2000000000001 886.9C304 885.7 217.6 832.3 169 747.7C71.2000000000001 577.9 143.8000000000001 327.1000000000002 239.2000000000001 189.1C286.0000000000001 121.8999999999999 341.2000000000001 46.3000000000002 414.4000000000001 48.7C484.6 51.7 511.0000000000001 94.3 596.1999999999999 94.3C680.8 94.3 704.8 48.7 779.1999999999999 50.5C854.8 51.7 902.8 118.8999999999999 949 186.6999999999999C1002.4 264.6999999999998 1024.6000000000001 340.2999999999999 1025.8000000000002 344.4999999999999C1024 345.0999999999999 878.8000000000001 400.8999999999999 877.0000000000001 568.8999999999999C875.8000000000001 709.2999999999998 991.6 776.4999999999999 997.0000000000002 779.4999999999998C931 876.0999999999999 829.6000000000001 886.8999999999999 794.2 889.2999999999997C701.8 896.4999999999998 624.4 838.8999999999999 581.2 838.8999999999999zM737.2 980.5C776.1999999999999 1027.3 802 1092.7 794.8 1157.5C739 1155.1 671.8 1120.3 631.6 1073.5C595.5999999999999 1032.1 564.4 965.5 572.8 901.9C634.6 897.1 698.1999999999999 933.7 737.2 980.5z","horizAdvX":"1200"},"apple-line":{"path":["M0 0h24v24H0z","M15.729 8.208c-.473-.037-.981.076-1.759.373.066-.025-.742.29-.968.37-.502.175-.915.271-1.378.271-.458 0-.88-.092-1.366-.255-.155-.053-.311-.11-.505-.186-.082-.032-.382-.152-.448-.177-.648-.254-1.013-.35-1.316-.342-1.152.015-2.243.68-2.876 1.782-1.292 2.244-.577 6.299 1.312 9.031 1.006 1.444 1.556 1.96 1.778 1.953.222-.01.385-.057.783-.225l.167-.071c1.005-.429 1.71-.618 2.771-.618 1.021 0 1.703.186 2.668.602l.168.072c.398.17.542.208.792.202.358-.005.799-.417 1.778-1.854.268-.391.505-.803.71-1.22a7.354 7.354 0 0 1-.392-.347c-1.289-1.228-2.086-2.884-2.108-4.93a6.625 6.625 0 0 1 1.41-4.181 4.124 4.124 0 0 0-1.221-.25zm.155-1.994c.708.048 2.736.264 4.056 2.196-.108.06-2.424 1.404-2.4 4.212.036 3.36 2.94 4.476 2.976 4.488-.024.084-.468 1.596-1.536 3.156-.924 1.356-1.884 2.7-3.396 2.724-1.488.036-1.968-.876-3.66-.876-1.704 0-2.232.852-3.636.912-1.464.048-2.568-1.464-3.504-2.808-1.908-2.76-3.36-7.776-1.404-11.172.972-1.692 2.7-2.76 4.584-2.784 1.428-.036 2.784.96 3.66.96.864 0 2.412-1.152 4.26-1.008zm-1.14-1.824c-.78.936-2.052 1.668-3.288 1.572-.168-1.272.456-2.604 1.176-3.432.804-.936 2.148-1.632 3.264-1.68.144 1.296-.372 2.604-1.152 3.54z"],"unicode":"","glyph":"M786.4499999999999 789.5999999999999C762.8 791.45 737.4 785.8 698.5 770.95C701.8 772.2 661.3999999999999 756.45 650.0999999999999 752.45C624.9999999999999 743.7 604.35 738.9000000000001 581.1999999999999 738.9000000000001C558.3 738.9000000000001 537.1999999999999 743.5 512.9 751.6500000000001C505.15 754.3000000000002 497.35 757.1500000000001 487.6499999999999 760.95C483.5499999999999 762.5500000000001 468.55 768.55 465.2499999999999 769.8000000000001C432.8499999999999 782.5 414.5999999999999 787.3 399.45 786.9000000000001C341.8499999999999 786.1500000000001 287.3 752.9000000000001 255.6499999999999 697.8000000000001C191.0499999999999 585.6 226.7999999999999 382.85 321.2499999999999 246.25C371.5499999999999 174.0500000000002 399.0499999999999 148.25 410.1499999999999 148.6000000000001C421.2499999999999 149.1000000000001 429.3999999999999 151.4500000000001 449.2999999999999 159.8500000000001L457.6499999999999 163.4000000000003C507.8999999999999 184.8500000000001 543.1499999999997 194.3000000000002 596.1999999999998 194.3000000000002C647.2499999999999 194.3000000000002 681.3499999999998 185.0000000000001 729.5999999999998 164.2000000000001L737.9999999999998 160.6000000000001C757.8999999999997 152.1000000000001 765.0999999999997 150.2000000000003 777.5999999999997 150.5C795.4999999999998 150.75 817.5499999999997 171.3500000000001 866.4999999999998 243.2000000000001C879.8999999999997 262.7500000000001 891.7499999999997 283.3500000000002 901.9999999999998 304.2A367.7 367.7 0 0 0 882.3999999999999 321.5500000000001C817.9499999999997 382.9500000000002 778.0999999999998 465.7500000000001 776.9999999999998 568.0500000000001A331.25 331.25 0 0 0 847.4999999999998 777.1000000000001A206.19999999999996 206.19999999999996 0 0 1 786.4499999999998 789.6000000000001zM794.1999999999999 889.3C829.5999999999999 886.9 930.9999999999998 876.0999999999999 996.9999999999998 779.5C991.6 776.5 875.8 709.3 877 568.9C878.8000000000001 400.9000000000001 1024 345.1 1025.8 344.5C1024.6 340.3000000000001 1002.3999999999997 264.7000000000001 948.9999999999998 186.7000000000001C902.7999999999998 118.9000000000001 854.7999999999998 51.7 779.1999999999998 50.5C704.7999999999998 48.7 680.7999999999998 94.3000000000002 596.1999999999998 94.3000000000002C510.9999999999998 94.3000000000002 484.5999999999999 51.7 414.3999999999999 48.7000000000003C341.1999999999998 46.3000000000002 285.9999999999999 121.9000000000001 239.1999999999999 189.1000000000001C143.7999999999999 327.1000000000002 71.1999999999999 577.9000000000002 168.9999999999999 747.7000000000003C217.5999999999999 832.3000000000002 303.9999999999999 885.7000000000003 398.1999999999998 886.9000000000002C469.5999999999998 888.7000000000002 537.3999999999999 838.9000000000002 581.1999999999998 838.9000000000002C624.3999999999999 838.9000000000002 701.7999999999998 896.5000000000002 794.1999999999998 889.3000000000002zM737.1999999999999 980.5C698.1999999999999 933.7 634.5999999999999 897.0999999999999 572.7999999999998 901.9C564.4 965.5 595.5999999999999 1032.1 631.5999999999999 1073.5C671.8 1120.3 738.9999999999999 1155.1 794.7999999999998 1157.5C801.9999999999998 1092.7 776.1999999999998 1027.3 737.1999999999999 980.5z","horizAdvX":"1200"},"apps-2-fill":{"path":["M0 0h24v24H0z","M7 11.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10-10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z"],"unicode":"","glyph":"M350 625A225 225 0 1 0 350 1075A225 225 0 0 0 350 625zM350 125A225 225 0 1 0 350 575A225 225 0 0 0 350 125zM850 625A225 225 0 1 0 850 1075A225 225 0 0 0 850 625zM850 125A225 225 0 1 0 850 575A225 225 0 0 0 850 125z","horizAdvX":"1200"},"apps-2-line":{"path":["M0 0h24v24H0z","M6.5 11.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm.5 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10-10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zM6.5 9.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm.5 10a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm10-10a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 10a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M325 625A225 225 0 1 0 325 1075A225 225 0 0 0 325 625zM350 125A225 225 0 1 0 350 575A225 225 0 0 0 350 125zM850 625A225 225 0 1 0 850 1075A225 225 0 0 0 850 625zM850 125A225 225 0 1 0 850 575A225 225 0 0 0 850 125zM325 725A125 125 0 1 1 325 975A125 125 0 0 1 325 725zM350 225A125 125 0 1 1 350 475A125 125 0 0 1 350 225zM850 725A125 125 0 1 1 850 975A125 125 0 0 1 850 725zM850 225A125 125 0 1 1 850 475A125 125 0 0 1 850 225z","horizAdvX":"1200"},"apps-fill":{"path":["M0 0h24v24H0z","M6.75 2.5A4.25 4.25 0 0 1 11 6.75V11H6.75a4.25 4.25 0 1 1 0-8.5zm0 10.5H11v4.25A4.25 4.25 0 1 1 6.75 13zm10.5-10.5a4.25 4.25 0 1 1 0 8.5H13V6.75a4.25 4.25 0 0 1 4.25-4.25zM13 13h4.25A4.25 4.25 0 1 1 13 17.25V13z"],"unicode":"","glyph":"M337.5 1075A212.49999999999997 212.49999999999997 0 0 0 550 862.5V650H337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 1075zM337.5 550H550V337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 550zM862.5 1075A212.49999999999997 212.49999999999997 0 1 0 862.5 650H650V862.5A212.49999999999997 212.49999999999997 0 0 0 862.5 1075zM650 550H862.5A212.49999999999997 212.49999999999997 0 1 0 650 337.5V550z","horizAdvX":"1200"},"apps-line":{"path":["M0 0h24v24H0z","M6.75 2.5A4.25 4.25 0 0 1 11 6.75V11H6.75a4.25 4.25 0 1 1 0-8.5zM9 9V6.75A2.25 2.25 0 1 0 6.75 9H9zm-2.25 4H11v4.25A4.25 4.25 0 1 1 6.75 13zm0 2A2.25 2.25 0 1 0 9 17.25V15H6.75zm10.5-12.5a4.25 4.25 0 1 1 0 8.5H13V6.75a4.25 4.25 0 0 1 4.25-4.25zm0 6.5A2.25 2.25 0 1 0 15 6.75V9h2.25zM13 13h4.25A4.25 4.25 0 1 1 13 17.25V13zm2 2v2.25A2.25 2.25 0 1 0 17.25 15H15z"],"unicode":"","glyph":"M337.5 1075A212.49999999999997 212.49999999999997 0 0 0 550 862.5V650H337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 1075zM450 750V862.5A112.5 112.5 0 1 1 337.5 750H450zM337.5 550H550V337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 550zM337.5 450A112.5 112.5 0 1 1 450 337.5V450H337.5zM862.5 1075A212.49999999999997 212.49999999999997 0 1 0 862.5 650H650V862.5A212.49999999999997 212.49999999999997 0 0 0 862.5 1075zM862.5 750A112.5 112.5 0 1 1 750 862.5V750H862.5zM650 550H862.5A212.49999999999997 212.49999999999997 0 1 0 650 337.5V550zM750 450V337.5A112.5 112.5 0 1 1 862.5 450H750z","horizAdvX":"1200"},"archive-drawer-fill":{"path":["M0 0h24v24H0z","M3 13h18v8.002c0 .551-.445.998-.993.998H3.993A.995.995 0 0 1 3 21.002V13zM3 2.998C3 2.447 3.445 2 3.993 2h16.014c.548 0 .993.446.993.998V11H3V2.998zM9 5v2h6V5H9zm0 11v2h6v-2H9z"],"unicode":"","glyph":"M150 550H1050V149.8999999999999C1050 122.3499999999999 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65A49.75000000000001 49.75000000000001 0 0 0 150 149.9000000000001V550zM150 1050.1C150 1077.65 172.25 1100 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.7 1049.9999999999998 1050.1V650H150V1050.1zM450 950V850H750V950H450zM450 400V300H750V400H450z","horizAdvX":"1200"},"archive-drawer-line":{"path":["M0 0h24v24H0z","M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z"],"unicode":"","glyph":"M150 1050.4C150 1077.8 172.25 1100 199.65 1100H1000.35A50 50 0 0 0 1049.9999999999998 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM950 650V1000H250V650H950zM950 550H250V200H950V550zM450 900H750V800H450V900zM450 450H750V350H450V450z","horizAdvX":"1200"},"archive-fill":{"path":["M0 0h24v24H0z","M3 10h18v10.004c0 .55-.445.996-.993.996H3.993A.994.994 0 0 1 3 20.004V10zm6 2v2h6v-2H9zM2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.444.992 1v4H2V4z"],"unicode":"","glyph":"M150 700H1050V199.8000000000001C1050 172.3000000000002 1027.75 150.0000000000002 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.8V700zM450 600V500H750V600H450zM100 1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.8 1100 1000V800H100V1000z","horizAdvX":"1200"},"archive-line":{"path":["M0 0h24v24H0z","M3 10H2V4.003C2 3.449 2.455 3 2.992 3h18.016A.99.99 0 0 1 22 4.003V10h-1v10.001a.996.996 0 0 1-.993.999H3.993A.996.996 0 0 1 3 20.001V10zm16 0H5v9h14v-9zM4 5v3h16V5H4zm5 7h6v2H9v-2z"],"unicode":"","glyph":"M150 700H100V999.85C100 1027.55 122.75 1050 149.6 1050H1050.3999999999999A49.5 49.5 0 0 0 1100 999.85V700H1050V199.9500000000002A49.800000000000004 49.800000000000004 0 0 0 1000.35 150.0000000000002H199.65A49.800000000000004 49.800000000000004 0 0 0 150 199.9499999999999V700zM950 700H250V250H950V700zM200 950V800H1000V950H200zM450 600H750V500H450V600z","horizAdvX":"1200"},"arrow-down-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm1 10V8h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM650 600V800H550V600H400L600 400L800 600H650z","horizAdvX":"1200"},"arrow-down-circle-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm1-8h3l-4 4-4-4h3V8h2v4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM650 600H800L600 400L400 600H550V800H650V600z","horizAdvX":"1200"},"arrow-down-fill":{"path":["M0 0h24v24H0z","M13 12h7l-8 8-8-8h7V4h2z"],"unicode":"","glyph":"M650 600H1000L600 200L200 600H550V1000H650z","horizAdvX":"1200"},"arrow-down-line":{"path":["M0 0h24v24H0z","M13 16.172l5.364-5.364 1.414 1.414L12 20l-7.778-7.778 1.414-1.414L11 16.172V4h2v12.172z"],"unicode":"","glyph":"M650 391.4L918.2 659.6L988.9 588.9L600 200L211.1 588.9L281.8 659.5999999999999L550 391.4V1000H650V391.4z","horizAdvX":"1200"},"arrow-down-s-fill":{"path":["M0 0h24v24H0z","M12 16l-6-6h12z"],"unicode":"","glyph":"M600 400L300 700H900z","horizAdvX":"1200"},"arrow-down-s-line":{"path":["M0 0h24v24H0z","M12 13.172l4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z"],"unicode":"","glyph":"M600 541.4L847.5 788.8999999999999L918.2 718.1999999999999L600 400L281.8 718.2L352.5 788.9000000000001z","horizAdvX":"1200"},"arrow-drop-down-fill":{"path":["M0 0h24v24H0z","M12 14l-4-4h8z"],"unicode":"","glyph":"M600 500L400 700H800z","horizAdvX":"1200"},"arrow-drop-down-line":{"path":["M0 0h24v24H0z","M12 15l-4.243-4.243 1.415-1.414L12 12.172l2.828-2.829 1.415 1.414z"],"unicode":"","glyph":"M600 450L387.85 662.15L458.6 732.85L600 591.4L741.4 732.85L812.15 662.15z","horizAdvX":"1200"},"arrow-drop-left-fill":{"path":["M0 0h24v24H0z","M9 12l4-4v8z"],"unicode":"","glyph":"M450 600L650 800V400z","horizAdvX":"1200"},"arrow-drop-left-line":{"path":["M0 0h24v24H0z","M11.828 12l2.829 2.828-1.414 1.415L9 12l4.243-4.243 1.414 1.415L11.828 12z"],"unicode":"","glyph":"M591.4 600L732.85 458.6L662.15 387.85L450 600L662.15 812.1500000000001L732.85 741.4L591.4 600z","horizAdvX":"1200"},"arrow-drop-right-fill":{"path":["M0 0h24v24H0z","M14 12l-4 4V8z"],"unicode":"","glyph":"M700 600L500 400V800z","horizAdvX":"1200"},"arrow-drop-right-line":{"path":["M0 0h24v24H0z","M12.172 12L9.343 9.172l1.414-1.415L15 12l-4.243 4.243-1.414-1.415z"],"unicode":"","glyph":"M608.6 600L467.15 741.4L537.85 812.15L750 600L537.85 387.8499999999999L467.15 458.5999999999999z","horizAdvX":"1200"},"arrow-drop-up-fill":{"path":["M0 0h24v24H0z","M12 10l4 4H8z"],"unicode":"","glyph":"M600 700L800 500H400z","horizAdvX":"1200"},"arrow-drop-up-line":{"path":["M0 0h24v24H0z","M12 11.828l-2.828 2.829-1.415-1.414L12 9l4.243 4.243-1.415 1.414L12 11.828z"],"unicode":"","glyph":"M600 608.6L458.6 467.15L387.85 537.85L600 750L812.1500000000001 537.85L741.4000000000001 467.15L600 608.6z","horizAdvX":"1200"},"arrow-go-back-fill":{"path":["M0 0h24v24H0z","M8 7v4L2 6l6-5v4h5a8 8 0 1 1 0 16H4v-2h9a6 6 0 1 0 0-12H8z"],"unicode":"","glyph":"M400 850V650L100 900L400 1150V950H650A400 400 0 1 0 650 150H200V250H650A300 300 0 1 1 650 850H400z","horizAdvX":"1200"},"arrow-go-back-line":{"path":["M0 0h24v24H0z","M5.828 7l2.536 2.536L6.95 10.95 2 6l4.95-4.95 1.414 1.414L5.828 5H13a8 8 0 1 1 0 16H4v-2h9a6 6 0 1 0 0-12H5.828z"],"unicode":"","glyph":"M291.4000000000001 850L418.2000000000001 723.2L347.5 652.5L100 900L347.5 1147.5L418.2000000000001 1076.8L291.4000000000001 950H650A400 400 0 1 0 650 150H200V250H650A300 300 0 1 1 650 850H291.4000000000001z","horizAdvX":"1200"},"arrow-go-forward-fill":{"path":["M0 0h24v24H0z","M16 7h-5a6 6 0 1 0 0 12h9v2h-9a8 8 0 1 1 0-16h5V1l6 5-6 5V7z"],"unicode":"","glyph":"M800 850H550A300 300 0 1 1 550 250H1000V150H550A400 400 0 1 0 550 950H800V1150L1100 900L800 650V850z","horizAdvX":"1200"},"arrow-go-forward-line":{"path":["M0 0h24v24H0z","M18.172 7H11a6 6 0 1 0 0 12h9v2h-9a8 8 0 1 1 0-16h7.172l-2.536-2.536L17.05 1.05 22 6l-4.95 4.95-1.414-1.414L18.172 7z"],"unicode":"","glyph":"M908.6 850H550A300 300 0 1 1 550 250H1000V150H550A400 400 0 1 0 550 950H908.6L781.8000000000001 1076.8L852.5 1147.5L1100 900L852.5 652.5L781.8000000000001 723.2L908.6 850z","horizAdvX":"1200"},"arrow-left-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 9V8l-4 4 4 4v-3h4v-2h-4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 650V800L400 600L600 400V550H800V650H600z","horizAdvX":"1200"},"arrow-left-circle-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm0-9h4v2h-4v3l-4-4 4-4v3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM600 650H800V550H600V400L400 600L600 800V650z","horizAdvX":"1200"},"arrow-left-down-fill":{"path":["M0 0h24v24H0z","M12.36 13.05L17.31 18H5.998V6.688l4.95 4.95 5.656-5.657 1.415 1.414z"],"unicode":"","glyph":"M618 547.5L865.4999999999999 300H299.9000000000001V865.6L547.4 618.1L830.1999999999999 900.95L900.95 830.25z","horizAdvX":"1200"},"arrow-left-down-line":{"path":["M0 0h24v24H0z","M9 13.59l8.607-8.607 1.414 1.414-8.607 8.607H18v2H7v-11h2v7.585z"],"unicode":"","glyph":"M450 520.5L880.3499999999999 950.85L951.05 880.15L520.7 449.8000000000001H900V349.8000000000001H350V899.8000000000002H450V520.5500000000001z","horizAdvX":"1200"},"arrow-left-fill":{"path":["M0 0h24v24H0z","M12 13v7l-8-8 8-8v7h8v2z"],"unicode":"","glyph":"M600 550V200L200 600L600 1000V650H1000V550z","horizAdvX":"1200"},"arrow-left-line":{"path":["M0 0h24v24H0z","M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z"],"unicode":"","glyph":"M391.4000000000001 650H1000V550H391.4000000000001L659.6 281.8L588.9 211.0999999999999L200 600L588.9 988.9L659.5999999999999 918.2z","horizAdvX":"1200"},"arrow-left-right-fill":{"path":["M0 0h24v24H0z","M16 16v-4l5 5-5 5v-4H4v-2h12zM8 2v3.999L20 6v2H8v4L3 7l5-5z"],"unicode":"","glyph":"M800 400V600L1050 350L800 100V300H200V400H800zM400 1100V900.05L1000 900V800H400V600L150 850L400 1100z","horizAdvX":"1200"},"arrow-left-right-line":{"path":["M0 0h24v24H0z","M16.05 12.05L21 17l-4.95 4.95-1.414-1.414 2.536-2.537L4 18v-2h13.172l-2.536-2.536 1.414-1.414zm-8.1-10l1.414 1.414L6.828 6 20 6v2H6.828l2.536 2.536L7.95 11.95 3 7l4.95-4.95z"],"unicode":"","glyph":"M802.5 597.5L1050 350L802.5 102.5L731.8000000000001 173.2000000000001L858.6 300.0500000000001L200 300V400H858.6L731.8000000000001 526.8L802.5 597.5zM397.5000000000001 1097.5L468.2 1026.8L341.4000000000001 900L1000 900V800H341.4000000000001L468.2 673.2L397.5 602.5L150 850L397.5 1097.5z","horizAdvX":"1200"},"arrow-left-s-fill":{"path":["M0 0h24v24H0z","M8 12l6-6v12z"],"unicode":"","glyph":"M400 600L700 900V300z","horizAdvX":"1200"},"arrow-left-s-line":{"path":["M0 0h24v24H0z","M10.828 12l4.95 4.95-1.414 1.414L8 12l6.364-6.364 1.414 1.414z"],"unicode":"","glyph":"M541.4 600L788.9 352.5L718.1999999999999 281.8L400 600L718.2 918.2L788.9 847.5z","horizAdvX":"1200"},"arrow-left-up-fill":{"path":["M0 0h24v24H0z","M12.36 10.947l5.658 5.656-1.415 1.415-5.656-5.657-4.95 4.95V5.997H17.31z"],"unicode":"","glyph":"M618 652.6500000000001L900.9 369.8500000000002L830.1500000000001 299.1000000000002L547.3500000000001 581.9500000000002L299.8500000000002 334.4500000000002V900.15H865.4999999999999z","horizAdvX":"1200"},"arrow-left-up-line":{"path":["M0 0h24v24H0z","M9.414 8l8.607 8.607-1.414 1.414L8 9.414V17H6V6h11v2z"],"unicode":"","glyph":"M470.7 800L901.05 369.6500000000001L830.3499999999999 298.95L400 729.3V350H300V900H850V800z","horizAdvX":"1200"},"arrow-right-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 9H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 650H400V550H600V400L800 600L600 800V650z","horizAdvX":"1200"},"arrow-right-circle-line":{"path":["M0 0h24v24H0z","M12 11V8l4 4-4 4v-3H8v-2h4zm0-9c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8z"],"unicode":"","glyph":"M600 650V800L800 600L600 400V550H400V650H600zM600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200z","horizAdvX":"1200"},"arrow-right-down-fill":{"path":["M0 0h24v24H0z","M11.637 13.05L5.98 7.395 7.394 5.98l5.657 5.657L18 6.687V18H6.687z"],"unicode":"","glyph":"M581.85 547.5L299 830.25L369.7 901L652.55 618.15L900 865.65V300H334.35z","horizAdvX":"1200"},"arrow-right-down-line":{"path":["M0 0h24v24H0z","M14.59 16.004L5.982 7.397l1.414-1.414 8.607 8.606V7.004h2v11h-11v-2z"],"unicode":"","glyph":"M729.5 399.8L299.1 830.15L369.8 900.85L800.15 470.55V849.8H900.15V299.8000000000001H350.15V399.8000000000001z","horizAdvX":"1200"},"arrow-right-fill":{"path":["M0 0h24v24H0z","M12 13H4v-2h8V4l8 8-8 8z"],"unicode":"","glyph":"M600 550H200V650H600V1000L1000 600L600 200z","horizAdvX":"1200"},"arrow-right-line":{"path":["M0 0h24v24H0z","M16.172 11l-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"],"unicode":"","glyph":"M808.6 650L540.4 918.2L611.1 988.9L1000 600L611.1 211.1L540.4000000000001 281.8000000000002L808.6 550H200V650z","horizAdvX":"1200"},"arrow-right-s-fill":{"path":["M0 0h24v24H0z","M16 12l-6 6V6z"],"unicode":"","glyph":"M800 600L500 300V900z","horizAdvX":"1200"},"arrow-right-s-line":{"path":["M0 0h24v24H0z","M13.172 12l-4.95-4.95 1.414-1.414L16 12l-6.364 6.364-1.414-1.414z"],"unicode":"","glyph":"M658.6 600L411.1000000000001 847.5L481.8000000000001 918.2L800 600L481.8 281.8L411.1 352.5z","horizAdvX":"1200"},"arrow-right-up-fill":{"path":["M0 0h24v24H0z","M13.05 12.36l-5.656 5.658-1.414-1.415 5.657-5.656-4.95-4.95H18V17.31z"],"unicode":"","glyph":"M652.5 582L369.7000000000001 299.0999999999999L299.0000000000001 369.8499999999999L581.85 652.6499999999999L334.35 900.1499999999999H900V334.5000000000001z","horizAdvX":"1200"},"arrow-right-up-line":{"path":["M0 0h24v24H0z","M16.004 9.414l-8.607 8.607-1.414-1.414L14.589 8H7.004V6h11v11h-2V9.414z"],"unicode":"","glyph":"M800.2 729.3L369.8500000000001 298.95L299.1500000000001 369.6500000000001L729.45 800H350.2V900H900.1999999999999V350H800.1999999999999V729.3z","horizAdvX":"1200"},"arrow-up-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm1 10h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM650 600H800L600 800L400 600H550V400H650V600z","horizAdvX":"1200"},"arrow-up-circle-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm1-8v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM650 600V400H550V600H400L600 800L800 600H650z","horizAdvX":"1200"},"arrow-up-down-fill":{"path":["M0 0h24v24H0z","M12 8H8.001L8 20H6V8H2l5-5 5 5zm10 8l-5 5-5-5h4V4h2v12h4z"],"unicode":"","glyph":"M600 800H400.05L400 200H300V800H100L350 1050L600 800zM1100 400L850 150L600 400H800V1000H900V400H1100z","horizAdvX":"1200"},"arrow-up-down-line":{"path":["M0 0h24v24H0z","M11.95 7.95l-1.414 1.414L8 6.828 8 20H6V6.828L3.465 9.364 2.05 7.95 7 3l4.95 4.95zm10 8.1L17 21l-4.95-4.95 1.414-1.414 2.537 2.536L16 4h2v13.172l2.536-2.536 1.414 1.414z"],"unicode":"","glyph":"M597.5 802.5L526.8 731.8L400 858.5999999999999L400 200H300V858.5999999999999L173.25 731.8L102.5 802.5L350 1050L597.5 802.5zM1097.5 397.5L850 150L602.5 397.5L673.2 468.1999999999999L800.0500000000001 341.4L800 1000H900V341.4L1026.8000000000002 468.1999999999999L1097.5000000000002 397.5z","horizAdvX":"1200"},"arrow-up-fill":{"path":["M0 0h24v24H0z","M13 12v8h-2v-8H4l8-8 8 8z"],"unicode":"","glyph":"M650 600V200H550V600H200L600 1000L1000 600z","horizAdvX":"1200"},"arrow-up-line":{"path":["M0 0h24v24H0z","M13 7.828V20h-2V7.828l-5.364 5.364-1.414-1.414L12 4l7.778 7.778-1.414 1.414L13 7.828z"],"unicode":"","glyph":"M650 808.5999999999999V200H550V808.5999999999999L281.8 540.4L211.1 611.1L600 1000L988.9 611.1L918.1999999999998 540.4000000000001L650 808.5999999999999z","horizAdvX":"1200"},"arrow-up-s-fill":{"path":["M0 0h24v24H0z","M12 8l6 6H6z"],"unicode":"","glyph":"M600 800L900 500H300z","horizAdvX":"1200"},"arrow-up-s-line":{"path":["M0 0h24v24H0z","M12 10.828l-4.95 4.95-1.414-1.414L12 8l6.364 6.364-1.414 1.414z"],"unicode":"","glyph":"M600 658.6L352.5 411.1L281.8 481.8000000000001L600 800L918.2 481.8L847.5 411.1z","horizAdvX":"1200"},"artboard-2-fill":{"path":["M0 0h24v24H0z","M6 6h12v12H6V6zm0-4h2v3H6V2zm0 17h2v3H6v-3zM2 6h3v2H2V6zm0 10h3v2H2v-2zM19 6h3v2h-3V6zm0 10h3v2h-3v-2zM16 2h2v3h-2V2zm0 17h2v3h-2v-3z"],"unicode":"","glyph":"M300 900H900V300H300V900zM300 1100H400V950H300V1100zM300 250H400V100H300V250zM100 900H250V800H100V900zM100 400H250V300H100V400zM950 900H1100V800H950V900zM950 400H1100V300H950V400zM800 1100H900V950H800V1100zM800 250H900V100H800V250z","horizAdvX":"1200"},"artboard-2-line":{"path":["M0 0h24v24H0z","M8 8v8h8V8H8zM6 6h12v12H6V6zm0-4h2v3H6V2zm0 17h2v3H6v-3zM2 6h3v2H2V6zm0 10h3v2H2v-2zM19 6h3v2h-3V6zm0 10h3v2h-3v-2zM16 2h2v3h-2V2zm0 17h2v3h-2v-3z"],"unicode":"","glyph":"M400 800V400H800V800H400zM300 900H900V300H300V900zM300 1100H400V950H300V1100zM300 250H400V100H300V250zM100 900H250V800H100V900zM100 400H250V300H100V400zM950 900H1100V800H950V900zM950 400H1100V300H950V400zM800 1100H900V950H800V1100zM800 250H900V100H800V250z","horizAdvX":"1200"},"artboard-fill":{"path":["M0 0h24v24H0z","M8.586 17H3v-2h18v2h-5.586l3.243 3.243-1.414 1.414L13 17.414V20h-2v-2.586l-4.243 4.243-1.414-1.414L8.586 17zM5 3h14a1 1 0 0 1 1 1v10H4V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M429.3 350H150V450H1050V350H770.6999999999999L932.85 187.85L862.15 117.1500000000001L650 329.3V200H550V329.3L337.85 117.1499999999999L267.15 187.8499999999999L429.3 350zM250 1050H950A50 50 0 0 0 1000 1000V500H200V1000A50 50 0 0 0 250 1050z","horizAdvX":"1200"},"artboard-line":{"path":["M0 0h24v24H0z","M8.586 17H3v-2h18v2h-5.586l3.243 3.243-1.414 1.414L13 17.414V20h-2v-2.586l-4.243 4.243-1.414-1.414L8.586 17zM5 3h14a1 1 0 0 1 1 1v10H4V4a1 1 0 0 1 1-1zm1 2v7h12V5H6z"],"unicode":"","glyph":"M429.3 350H150V450H1050V350H770.6999999999999L932.85 187.85L862.15 117.1500000000001L650 329.3V200H550V329.3L337.85 117.1499999999999L267.15 187.8499999999999L429.3 350zM250 1050H950A50 50 0 0 0 1000 1000V500H200V1000A50 50 0 0 0 250 1050zM300 950V600H900V950H300z","horizAdvX":"1200"},"article-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM7 6v4h4V6H7zm0 6v2h10v-2H7zm0 4v2h10v-2H7zm6-9v2h4V7h-4z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM350 900V700H550V900H350zM350 600V500H850V600H350zM350 400V300H850V400H350zM650 850V750H850V850H650z","horizAdvX":"1200"},"article-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM7 6h4v4H7V6zm0 6h10v2H7v-2zm0 4h10v2H7v-2zm6-9h4v2h-4V7z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM350 900H550V700H350V900zM350 600H850V500H350V600zM350 400H850V300H350V400zM650 850H850V750H650V850z","horizAdvX":"1200"},"aspect-ratio-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-3 9h-2v3h-3v2h5v-5zm-7-5H6v5h2V9h3V7z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM900 600H800V450H650V350H900V600zM550 850H300V600H400V750H550V850z","horizAdvX":"1200"},"aspect-ratio-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-7 12v-2h3v-3h2v5h-5zM11 7v2H8v3H6V7h5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM650 350V450H800V600H900V350H650zM550 850V750H400V600H300V850H550z","horizAdvX":"1200"},"asterisk":{"path":["M0 0h24v24H0z","M13 3v7.267l6.294-3.633 1 1.732-6.293 3.633 6.293 3.635-1 1.732L13 13.732V21h-2v-7.268l-6.294 3.634-1-1.732L9.999 12 3.706 8.366l1-1.732L11 10.267V3z"],"unicode":"","glyph":"M650 1050V686.65L964.7 868.3L1014.7 781.7L700.0500000000001 600.0500000000001L1014.7 418.3000000000001L964.7 331.7000000000001L650 513.4000000000001V150H550V513.4000000000001L235.3 331.7000000000001L185.3 418.3L499.95 600L185.3 781.7L235.3 868.3L550 686.65V1050z","horizAdvX":"1200"},"at-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm8-10a8 8 0 1 0-3.968 6.911l-1.008-1.727A6 6 0 1 1 18 12v1a1 1 0 0 1-2 0V9h-1.354a4 4 0 1 0 .066 5.94A3 3 0 0 0 20 13v-1zm-8-2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM1000 600A400 400 0 1 1 801.6 254.45L751.2 340.8A300 300 0 1 0 900 600V550A50 50 0 0 0 800 550V750H732.3000000000001A200 200 0 1 1 735.6 452.9999999999999A150 150 0 0 1 1000 550V600zM600 700A100 100 0 1 0 600 500A100 100 0 0 0 600 700z","horizAdvX":"1200"},"at-line":{"path":["M0 0h24v24H0z","M20 12a8 8 0 1 0-3.562 6.657l1.11 1.664A9.953 9.953 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10v1.5a3.5 3.5 0 0 1-6.396 1.966A5 5 0 1 1 15 8H17v5.5a1.5 1.5 0 0 0 3 0V12zm-8-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"],"unicode":"","glyph":"M1000 600A400 400 0 1 1 821.9 267.15L877.3999999999999 183.9499999999999A497.65 497.65 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600V525A175 175 0 0 0 780.1999999999999 426.7000000000001A250 250 0 1 0 750 800H850V525A75 75 0 0 1 1000 525V600zM600 750A150 150 0 1 1 600 450A150 150 0 0 1 600 750z","horizAdvX":"1200"},"attachment-2":{"path":["M0 0h24v24H0z","M14.828 7.757l-5.656 5.657a1 1 0 1 0 1.414 1.414l5.657-5.656A3 3 0 1 0 12 4.929l-5.657 5.657a5 5 0 1 0 7.071 7.07L19.071 12l1.414 1.414-5.657 5.657a7 7 0 1 1-9.9-9.9l5.658-5.656a5 5 0 0 1 7.07 7.07L12 16.244A3 3 0 1 1 7.757 12l5.657-5.657 1.414 1.414z"],"unicode":"","glyph":"M741.4 812.1500000000001L458.6 529.3000000000001A50 50 0 1 1 529.3000000000001 458.6L812.1500000000001 741.4A150 150 0 1 1 600 953.55L317.15 670.6999999999999A250 250 0 1 1 670.6999999999999 317.2000000000001L953.55 600L1024.2500000000002 529.3000000000001L741.4000000000001 246.4500000000001A350 350 0 1 0 246.4000000000001 741.45L529.3000000000001 1024.25A250 250 0 0 0 882.8000000000001 670.7500000000001L600 387.8A150 150 0 1 0 387.85 600L670.6999999999999 882.85L741.4 812.1500000000001z","horizAdvX":"1200"},"attachment-fill":{"path":["M0 0h24v24H0z","M20.997 2.992L21 21.008a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.01c.549 0 .994.444.994.992zM9 13V9a1 1 0 1 1 2 0v4a1 1 0 0 0 2 0V9a3 3 0 0 0-6 0v4a5 5 0 0 0 10 0V8h-2v5a3 3 0 0 1-6 0z"],"unicode":"","glyph":"M1049.85 1050.4L1050 149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.15C1027.6 1100 1049.85 1077.8 1049.85 1050.4zM450 550V750A50 50 0 1 0 550 750V550A50 50 0 0 1 650 550V750A150 150 0 0 1 350 750V550A250 250 0 0 1 850 550V800H750V550A150 150 0 0 0 450 550z","horizAdvX":"1200"},"attachment-line":{"path":["M0 0h24v24H0z","M14 13.5V8a4 4 0 1 0-8 0v5.5a6.5 6.5 0 1 0 13 0V4h2v9.5a8.5 8.5 0 1 1-17 0V8a6 6 0 1 1 12 0v5.5a3.5 3.5 0 0 1-7 0V8h2v5.5a1.5 1.5 0 0 0 3 0z"],"unicode":"","glyph":"M700 525V800A200 200 0 1 1 300 800V525A325 325 0 1 1 950 525V1000H1050V525A424.99999999999994 424.99999999999994 0 1 0 200 525V800A300 300 0 1 0 800 800V525A175 175 0 0 0 450 525V800H550V525A75 75 0 0 1 700 525z","horizAdvX":"1200"},"auction-fill":{"path":["M0 0h24v24H0z","M14 20v2H2v-2h12zM14.586.686l7.778 7.778L20.95 9.88l-1.06-.354L17.413 12l5.657 5.657-1.414 1.414L16 13.414l-2.404 2.404.283 1.132-1.415 1.414-7.778-7.778 1.415-1.414 1.13.282 6.294-6.293-.353-1.06L14.586.686z"],"unicode":"","glyph":"M700 200V100H100V200H700zM729.3000000000001 1165.7L1118.2 776.8L1047.5 706L994.5 723.6999999999999L870.65 600L1153.5 317.15L1082.8 246.45L800 529.3000000000001L679.8 409.1L693.9499999999999 352.5L623.1999999999999 281.8L234.3 670.6999999999999L305.05 741.3999999999999L361.55 727.3L676.2499999999999 1041.9499999999998L658.5999999999999 1094.9499999999998L729.3000000000001 1165.7z","horizAdvX":"1200"},"auction-line":{"path":["M0 0h24v24H0z","M14 20v2H2v-2h12zM14.586.686l7.778 7.778L20.95 9.88l-1.06-.354L17.413 12l5.657 5.657-1.414 1.414L16 13.414l-2.404 2.404.283 1.132-1.415 1.414-7.778-7.778 1.415-1.414 1.13.282 6.294-6.293-.353-1.06L14.586.686zm.707 3.536l-7.071 7.07 3.535 3.536 7.071-7.07-3.535-3.536z"],"unicode":"","glyph":"M700 200V100H100V200H700zM729.3000000000001 1165.7L1118.2 776.8L1047.5 706L994.5 723.6999999999999L870.65 600L1153.5 317.15L1082.8 246.45L800 529.3000000000001L679.8 409.1L693.9499999999999 352.5L623.1999999999999 281.8L234.3 670.6999999999999L305.05 741.3999999999999L361.55 727.3L676.2499999999999 1041.9499999999998L658.5999999999999 1094.9499999999998L729.3000000000001 1165.7zM764.6500000000001 988.9L411.1000000000001 635.3999999999999L587.85 458.5999999999999L941.4 812.0999999999999L764.6500000000001 988.8999999999997z","horizAdvX":"1200"},"award-fill":{"path":["M0 0h24v24H0z","M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M850 437.75V94.1500000000001A25 25 0 0 0 812.15 72.7000000000003L600 200L387.85 72.7000000000001A25 25 0 0 0 350 94.2000000000001V437.7000000000001A400 400 0 1 0 850 437.7000000000001zM600 450A300 300 0 1 1 600 1050A300 300 0 0 1 600 450zM600 550A200 200 0 1 0 600 950A200 200 0 0 0 600 550z","horizAdvX":"1200"},"award-line":{"path":["M0 0h24v24H0z","M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zm-8 1.173v3.05l3-1.8 3 1.8v-3.05A7.978 7.978 0 0 1 12 17a7.978 7.978 0 0 1-3-.582zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12z"],"unicode":"","glyph":"M850 437.75V94.1500000000001A25 25 0 0 0 812.15 72.7000000000003L600 200L387.85 72.7000000000001A25 25 0 0 0 350 94.2000000000001V437.7000000000001A400 400 0 1 0 850 437.7000000000001zM450 379.1V226.6L600 316.6L750 226.6V379.1A398.90000000000003 398.90000000000003 0 0 0 600 350A398.90000000000003 398.90000000000003 0 0 0 450 379.1zM600 450A300 300 0 1 1 600 1050A300 300 0 0 1 600 450z","horizAdvX":"1200"},"baidu-fill":{"path":["M0 0h24v24H0z","M5.927 12.497c2.063-.443 1.782-2.909 1.72-3.448-.101-.83-1.078-2.282-2.405-2.167-1.67.15-1.913 2.561-1.913 2.561-.226 1.115.54 3.497 2.598 3.054zm2.19 4.288c-.06.173-.195.616-.078 1.002.23.866.982.905.982.905h1.08v-2.64H8.944c-.52.154-.77.559-.827.733zm1.638-8.422c1.14 0 2.06-1.312 2.06-2.933 0-1.62-.92-2.93-2.06-2.93-1.137 0-2.06 1.31-2.06 2.93 0 1.621.923 2.933 2.06 2.933zm4.908.193c1.522.198 2.501-1.427 2.696-2.659.199-1.23-.784-2.658-1.862-2.904-1.08-.248-2.429 1.483-2.552 2.61-.147 1.38.197 2.758 1.718 2.953zm0 3.448c-1.865-2.905-4.513-1.723-5.4-.245-.881 1.477-2.256 2.41-2.451 2.658-.198.244-2.846 1.673-2.258 4.284.587 2.609 2.652 2.56 2.652 2.56s1.521.15 3.286-.246c1.766-.391 3.286.098 3.286.098s4.125 1.38 5.253-1.278c1.128-2.66-.637-4.038-.637-4.038s-2.356-1.823-3.732-3.793zm-6.008 7.75c-1.158-.231-1.619-1.021-1.677-1.156-.057-.137-.386-.772-.212-1.853.5-1.619 1.927-1.735 1.927-1.735h1.428v-1.755l1.215.02v6.479h-2.68zm4.59-.019c-1.196-.308-1.251-1.158-1.251-1.158v-3.412l1.251-.02v3.066c.077.328.483.387.483.387h1.271v-3.433h1.332v4.57h-3.086zm7.454-9.11c0-.59-.49-2.364-2.305-2.364-1.819 0-2.062 1.675-2.062 2.859 0 1.13.095 2.707 2.354 2.657 2.26-.05 2.013-2.56 2.013-3.152z"],"unicode":"","glyph":"M296.35 575.15C399.5 597.3 385.45 720.5999999999999 382.35 747.55C377.3 789.05 328.45 861.6500000000001 262.1 855.9000000000001C178.6 848.4 166.4499999999999 727.85 166.4499999999999 727.85C155.15 672.1 193.4499999999999 553 296.3499999999999 575.15zM405.85 360.75C402.8499999999999 352.1000000000002 396.1 329.9500000000001 401.95 310.6500000000001C413.45 267.35 451.05 265.4 451.05 265.4H505.05V397.4H447.2000000000001C421.2000000000001 389.7000000000001 408.7000000000001 369.45 405.85 360.75zM487.7499999999999 781.85C544.75 781.85 590.75 847.45 590.75 928.5C590.75 1009.5 544.75 1075 487.7499999999999 1075C430.8999999999999 1075 384.75 1009.5 384.75 928.5C384.75 847.45 430.8999999999999 781.85 487.7499999999999 781.85zM733.15 772.2C809.2499999999999 762.3 858.2 843.55 867.95 905.15C877.9000000000002 966.65 828.7500000000001 1038.05 774.8500000000001 1050.35C720.8500000000001 1062.75 653.4000000000001 976.2 647.2500000000001 919.85C639.9000000000001 850.85 657.1 781.95 733.1500000000001 772.2zM733.15 599.8000000000001C639.9 745.05 507.5 685.95 463.15 612.05C419.1 538.1999999999999 350.35 491.55 340.6 479.15C330.7 466.95 198.3 395.5 227.7 264.95C257.05 134.5 360.3 136.9500000000001 360.3 136.9500000000001S436.35 129.4500000000001 524.5999999999999 149.25C612.9 168.8 688.9 144.3499999999999 688.9 144.3499999999999S895.15 75.3500000000001 951.55 208.25C1007.95 341.25 919.7 410.15 919.7 410.15S801.8999999999999 501.3 733.0999999999999 599.8zM432.7500000000001 212.3000000000001C374.8500000000001 223.8500000000001 351.8000000000001 263.3500000000002 348.9000000000001 270.1C346.0500000000001 276.9500000000001 329.6000000000001 308.7 338.3000000000001 362.7500000000001C363.3000000000001 443.7000000000002 434.6500000000001 449.5000000000001 434.6500000000001 449.5000000000001H506.0500000000001V537.25L566.8000000000001 536.2500000000001V212.3000000000001H432.8000000000002zM662.25 213.25C602.45 228.65 599.7 271.1500000000001 599.7 271.1500000000001V441.75L662.25 442.75V289.4500000000001C666.1 273.0500000000001 686.4000000000001 270.1 686.4000000000001 270.1H749.9500000000002V441.75H816.5500000000002V213.25H662.2500000000001zM1034.95 668.75C1034.95 698.25 1010.4500000000002 786.95 919.7 786.95C828.7500000000001 786.95 816.6 703.2 816.6 644C816.6 587.5 821.35 508.6500000000001 934.3 511.1500000000001C1047.3 513.6500000000001 1034.9499999999998 639.1500000000001 1034.9499999999998 668.75z","horizAdvX":"1200"},"baidu-line":{"path":["M0 0h24v24H0z","M7.564 19.28a9.69 9.69 0 0 0 2.496-.217 8.8 8.8 0 0 1 2.98-.131c.547.067.985.165 1.288.257 1.078.275 2.61.223 3.005-.41.291-.468.253-.787-.026-1.199a1.886 1.886 0 0 0-.212-.26 25.006 25.006 0 0 1-.743-.618 25.618 25.618 0 0 1-1.753-1.66 16.151 16.151 0 0 1-1.577-1.893l-.036-.053c-.742-1.139-1.558-1.067-2.002-.317a9.604 9.604 0 0 1-.955 1.331c-.41.482-.83.89-1.305 1.297-.123.105-.503.42-.412.344-.004.003-.017.015.051-.071-.098.12-.95.877-1.2 1.162-.515.583-.723 1.08-.645 1.48.072.376.219.587.45.745a1.432 1.432 0 0 0 .48.206l.116.007zm7.098-7.276c1.376 1.97 3.732 3.793 3.732 3.793s2.063 1.748.637 4.038c-1.426 2.29-5.253 1.278-5.253 1.278s-1.52-.49-3.286-.098c-1.765.395-3.286.245-3.286.245S5 21.015 4.554 18.701c-.446-2.314 2.06-4.04 2.258-4.284.195-.247 1.512-1.073 2.452-2.658.94-1.586 3.583-2.54 5.398.245zm5.539-1.42c0 .458.19 2.393-1.553 2.432-1.742.038-1.816-1.178-1.816-2.05 0-.913.188-2.205 1.59-2.205 1.4 0 1.779 1.369 1.779 1.824zm-5.43-2.777c-1.18-.152-1.447-1.222-1.333-2.293.096-.875 1.143-2.219 1.981-2.026.837.19 1.6 1.3 1.446 2.254-.151.957-.911 2.218-2.094 2.065zM9.755 7.44c-.86 0-1.56-.993-1.56-2.22 0-1.227.699-2.22 1.56-2.22.863 0 1.56.993 1.56 2.22 0 1.227-.697 2.22-1.56 2.22zm-3.793 4.566c-1.695.365-2.326-1.597-2.14-2.515 0 0 .2-1.987 1.576-2.11 1.093-.095 1.898 1.101 1.981 1.785.051.444.283 2.475-1.417 2.84z"],"unicode":"","glyph":"M378.2 236A484.49999999999994 484.49999999999994 0 0 1 503 246.8499999999999A440 440 0 0 0 652 253.3999999999999C679.35 250.0499999999999 701.25 245.15 716.4000000000001 240.5499999999999C770.3000000000001 226.7999999999999 846.9000000000001 229.3999999999999 866.6500000000001 261.0499999999999C881.2000000000002 284.4499999999998 879.3000000000001 300.3999999999998 865.3500000000001 320.9999999999999A94.3 94.3 0 0 1 854.7500000000001 334A1250.3 1250.3 0 0 0 817.6000000000001 364.8999999999999A1280.9 1280.9 0 0 0 729.9500000000002 447.8999999999999A807.55 807.55 0 0 0 651.1000000000001 542.55L649.3000000000002 545.2C612.2000000000002 602.15 571.4000000000002 598.55 549.2000000000003 561.05A480.2 480.2 0 0 0 501.4500000000003 494.5C480.9500000000003 470.4000000000001 459.9500000000003 450 436.2000000000003 429.65C430.0500000000003 424.4 411.0500000000003 408.65 415.6000000000003 412.4500000000001C415.4000000000003 412.3000000000001 414.7500000000003 411.7000000000001 418.1500000000003 416C413.2500000000003 410 370.6500000000003 372.1500000000001 358.1500000000003 357.9000000000001C332.4000000000003 328.7500000000001 322.0000000000003 303.9000000000001 325.9000000000002 283.9000000000001C329.5000000000003 265.1 336.8500000000003 254.5500000000001 348.4000000000002 246.65A71.6 71.6 0 0 1 372.4000000000002 236.35L378.2000000000002 236zM733.0999999999999 599.8C801.9 501.3 919.7 410.15 919.7 410.15S1022.85 322.7499999999999 951.55 208.25C880.25 93.75 688.9 144.3499999999999 688.9 144.3499999999999S612.9 168.8499999999999 524.5999999999999 149.25C436.3499999999999 129.5 360.3 137 360.3 137S250 149.25 227.7 264.95C205.4 380.65 330.7000000000001 466.9499999999999 340.6 479.1499999999999C350.35 491.4999999999999 416.2 532.8 463.2 612.0499999999998C510.1999999999999 691.3499999999999 642.35 739.05 733.0999999999999 599.8zM1010.05 670.8C1010.05 647.8999999999999 1019.55 551.15 932.4 549.1999999999999C845.3 547.3 841.6 608.0999999999999 841.6 651.6999999999999C841.6 697.3499999999999 851 761.9499999999999 921.1 761.9499999999999C991.1 761.9499999999999 1010.05 693.5 1010.05 670.75zM738.5500000000001 809.6499999999999C679.5500000000001 817.25 666.2 870.75 671.9 924.3C676.7 968.05 729.0500000000001 1035.25 770.95 1025.6C812.8 1016.1 850.95 960.6 843.2500000000001 912.9C835.7000000000002 865.05 797.7000000000002 802 738.5500000000002 809.65zM487.7500000000001 828C444.7500000000001 828 409.75 877.65 409.75 939C409.75 1000.35 444.7 1050 487.7500000000001 1050C530.9 1050 565.7500000000001 1000.35 565.7500000000001 939C565.7500000000001 877.65 530.9000000000001 828 487.7500000000001 828zM298.1 599.7C213.35 581.4499999999999 181.8000000000001 679.55 191.1 725.45C191.1 725.45 201.1 824.8 269.9000000000001 830.95C324.55 835.7 364.8 775.9000000000001 368.9500000000001 741.7C371.5000000000001 719.5 383.1 617.95 298.1 599.7z","horizAdvX":"1200"},"ball-pen-fill":{"path":["M0 0h24v24H0z","M17.849 11.808l-.707-.707-9.9 9.9H3v-4.243L14.313 5.444l5.657 5.657a1 1 0 0 1 0 1.414l-7.07 7.071-1.415-1.414 6.364-6.364zm.707-9.192l2.829 2.828a1 1 0 0 1 0 1.414L19.97 8.273 15.728 4.03l1.414-1.414a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M892.45 609.6L857.1 644.95L362.1 149.9500000000001H150V362.1000000000003L715.65 927.8L998.5 644.95A50 50 0 0 0 998.5 574.2500000000001L644.9999999999999 220.7000000000001L574.25 291.4000000000001L892.45 609.6000000000001zM927.8 1069.2L1069.25 927.8A50 50 0 0 0 1069.25 857.1000000000001L998.5 786.35L786.4 998.5L857.1 1069.2A50 50 0 0 0 927.8 1069.2z","horizAdvX":"1200"},"ball-pen-line":{"path":["M0 0h24v24H0z","M17.849 11.808l-.707-.707-9.9 9.9H3v-4.243L14.313 5.444l5.657 5.657a1 1 0 0 1 0 1.414l-7.07 7.071-1.415-1.414 6.364-6.364zm-2.121-2.121l-1.415-1.414L5 17.586v1.415h1.414l9.314-9.314zm2.828-7.071l2.829 2.828a1 1 0 0 1 0 1.414L19.97 8.273 15.728 4.03l1.414-1.414a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M892.45 609.6L857.1 644.95L362.1 149.9500000000001H150V362.1000000000003L715.65 927.8L998.5 644.95A50 50 0 0 0 998.5 574.2500000000001L644.9999999999999 220.7000000000001L574.25 291.4000000000001L892.45 609.6000000000001zM786.4 715.6500000000001L715.65 786.35L250 320.7000000000001V249.9500000000002H320.7L786.4 715.6500000000001zM927.8 1069.2L1069.25 927.8A50 50 0 0 0 1069.25 857.1000000000001L998.5 786.35L786.4 998.5L857.1 1069.2A50 50 0 0 0 927.8 1069.2z","horizAdvX":"1200"},"bank-card-2-fill":{"path":["M0 0h24v24H0z","M22 11v9a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9h20zm0-4H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v3z"],"unicode":"","glyph":"M1100 650V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V650H1100zM1100 850H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V850z","horizAdvX":"1200"},"bank-card-2-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 9H4v7h16v-7zm0-4V5H4v3h16z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 600H200V250H1000V600zM1000 800V950H200V800H1000z","horizAdvX":"1200"},"bank-card-fill":{"path":["M0 0h24v24H0z","M22 10v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10h20zm0-2H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4zm-7 8v2h4v-2h-4z"],"unicode":"","glyph":"M1100 700V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V700H1100zM1100 800H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V800zM750 400V300H950V400H750z","horizAdvX":"1200"},"bank-card-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 8H4v8h16v-8zm0-2V5H4v4h16zm-6 6h4v2h-4v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 650H200V250H1000V650zM1000 750V950H200V750H1000zM700 450H900V350H700V450z","horizAdvX":"1200"},"bank-fill":{"path":["M0 0h24v24H0z","M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm10 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 200H1100V100H100V200zM200 600H300V250H200V600zM450 600H550V250H450V600zM650 600H750V250H650V600zM900 600H1000V250H900V600zM100 850L600 1100L1100 850V650H100V850zM600 800A50 50 0 1 1 600 900A50 50 0 0 1 600 800z","horizAdvX":"1200"},"bank-line":{"path":["M0 0h24v24H0z","M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm2 1.236V9h16v-.764l-8-4-8 4zM12 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M100 200H1100V100H100V200zM200 600H300V250H200V600zM450 600H550V250H450V600zM650 600H750V250H650V600zM900 600H1000V250H900V600zM100 850L600 1100L1100 850V650H100V850zM200 788.2V750H1000V788.2L600 988.2L200 788.2zM600 800A50 50 0 1 0 600 900A50 50 0 0 0 600 800z","horizAdvX":"1200"},"bar-chart-2-fill":{"path":["M0 0h24v24H0z","M2 13h6v8H2v-8zM9 3h6v18H9V3zm7 5h6v13h-6V8z"],"unicode":"","glyph":"M100 550H400V150H100V550zM450 1050H750V150H450V1050zM800 800H1100V150H800V800z","horizAdvX":"1200"},"bar-chart-2-line":{"path":["M0 0h24v24H0z","M2 13h6v8H2v-8zm14-5h6v13h-6V8zM9 3h6v18H9V3zM4 15v4h2v-4H4zm7-10v14h2V5h-2zm7 5v9h2v-9h-2z"],"unicode":"","glyph":"M100 550H400V150H100V550zM800 800H1100V150H800V800zM450 1050H750V150H450V1050zM200 450V250H300V450H200zM550 950V250H650V950H550zM900 700V250H1000V700H900z","horizAdvX":"1200"},"bar-chart-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 10v4h2v-4H7zm4-6v10h2V7h-2zm4 3v7h2v-7h-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM350 550V350H450V550H350zM550 850V350H650V850H550zM750 700V350H850V700H750z","horizAdvX":"1200"},"bar-chart-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm3 8h2v4H7v-4zm4-6h2v10h-2V7zm4 3h2v7h-2v-7z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM350 550H450V350H350V550zM550 850H650V350H550V850zM750 700H850V350H750V700z","horizAdvX":"1200"},"bar-chart-fill":{"path":["M0 0h24v24H0z","M3 12h4v9H3v-9zm14-4h4v13h-4V8zm-7-6h4v19h-4V2z"],"unicode":"","glyph":"M150 600H350V150H150V600zM850 800H1050V150H850V800zM500 1100H700V150H500V1100z","horizAdvX":"1200"},"bar-chart-grouped-fill":{"path":["M0 0h24v24H0z","M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"],"unicode":"","glyph":"M100 600H200V150H100V600zM250 500H350V150H250V500zM800 800H900V150H800V800zM950 700H1050V150H950V700zM450 1100H550V150H450V1100zM600 1000H700V150H600V1000z","horizAdvX":"1200"},"bar-chart-grouped-line":{"path":["M0 0h24v24H0z","M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"],"unicode":"","glyph":"M100 600H200V150H100V600zM250 500H350V150H250V500zM800 800H900V150H800V800zM950 700H1050V150H950V700zM450 1100H550V150H450V1100zM600 1000H700V150H600V1000z","horizAdvX":"1200"},"bar-chart-horizontal-fill":{"path":["M0 0h24v24H0z","M12 3v4H3V3h9zm4 14v4H3v-4h13zm6-7v4H3v-4h19z"],"unicode":"","glyph":"M600 1050V850H150V1050H600zM800 350V150H150V350H800zM1100 700V500H150V700H1100z","horizAdvX":"1200"},"bar-chart-horizontal-line":{"path":["M0 0h24v24H0z","M12 3v2H3V3h9zm4 16v2H3v-2h13zm6-8v2H3v-2h19z"],"unicode":"","glyph":"M600 1050V950H150V1050H600zM800 250V150H150V250H800zM1100 650V550H150V650H1100z","horizAdvX":"1200"},"bar-chart-line":{"path":["M0 0h24v24H0z","M3 12h2v9H3v-9zm16-4h2v13h-2V8zm-8-6h2v19h-2V2z"],"unicode":"","glyph":"M150 600H250V150H150V600zM950 800H1050V150H950V800zM550 1100H650V150H550V1100z","horizAdvX":"1200"},"barcode-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 4v10h3V7H6zm4 0v10h2V7h-2zm3 0v10h1V7h-1zm2 0v10h3V7h-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM300 850V350H450V850H300zM500 850V350H600V850H500zM650 850V350H700V850H650zM750 850V350H900V850H750z","horizAdvX":"1200"},"barcode-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 4h3v10H6V7zm4 0h2v10h-2V7zm3 0h1v10h-1V7zm2 0h3v10h-3V7z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM300 850H450V350H300V850zM500 850H600V350H500V850zM650 850H700V350H650V850zM750 850H900V350H750V850z","horizAdvX":"1200"},"barcode-fill":{"path":["M0 0h24v24H0z","M2 4h2v16H2V4zm4 0h2v16H6V4zm3 0h3v16H9V4zm4 0h2v16h-2V4zm3 0h2v16h-2V4zm3 0h3v16h-3V4z"],"unicode":"","glyph":"M100 1000H200V200H100V1000zM300 1000H400V200H300V1000zM450 1000H600V200H450V1000zM650 1000H750V200H650V1000zM800 1000H900V200H800V1000zM950 1000H1100V200H950V1000z","horizAdvX":"1200"},"barcode-line":{"path":["M0 0h24v24H0z","M2 4h2v16H2V4zm4 0h1v16H6V4zm2 0h2v16H8V4zm3 0h2v16h-2V4zm3 0h2v16h-2V4zm3 0h1v16h-1V4zm2 0h3v16h-3V4z"],"unicode":"","glyph":"M100 1000H200V200H100V1000zM300 1000H350V200H300V1000zM400 1000H500V200H400V1000zM550 1000H650V200H550V1000zM700 1000H800V200H700V1000zM850 1000H900V200H850V1000zM950 1000H1100V200H950V1000z","horizAdvX":"1200"},"barricade-fill":{"path":["M0 0h24v24H0z","M19.556 19H21v2H3v-2h1.444l.89-4h13.333l.889 4zM17.333 9l.89 4H5.777l.889-4h10.666zm-.444-2H7.11l.715-3.217A1 1 0 0 1 8.802 3h6.396a1 1 0 0 1 .976.783L16.889 7z"],"unicode":"","glyph":"M977.8 250H1050V150H150V250H222.2L266.7 450H933.3500000000003L977.8 250zM866.6499999999999 750L911.15 550H288.85L333.3 750H866.6zM844.4499999999999 850H355.5L391.25 1010.85A50 50 0 0 0 440.1 1050H759.9A50 50 0 0 0 808.6999999999999 1010.85L844.4499999999999 850z","horizAdvX":"1200"},"barricade-line":{"path":["M0 0h24v24H0z","M6.493 19h11.014l-.667-3H7.16l-.667 3zm13.063 0H21v2H3v-2h1.444L7.826 3.783A1 1 0 0 1 8.802 3h6.396a1 1 0 0 1 .976.783L19.556 19zM7.604 14h8.792l-.89-4H8.494l-.889 4zm1.334-6h6.124l-.666-3H9.604l-.666 3z"],"unicode":"","glyph":"M324.6500000000001 250H875.3499999999999L841.9999999999998 400H358L324.6500000000001 250zM977.8 250H1050V150H150V250H222.2L391.3 1010.85A50 50 0 0 0 440.1 1050H759.9A50 50 0 0 0 808.6999999999999 1010.85L977.8 250zM380.2 500H819.8000000000001L775.3 700H424.7L380.25 500zM446.9000000000001 800H753.1L719.8000000000001 950H480.1999999999999L446.8999999999999 800z","horizAdvX":"1200"},"base-station-fill":{"path":["M0 0h24v24H0z","M12 13l6 9H6l6-9zm-1.06-2.44a1.5 1.5 0 1 1 2.12-2.12 1.5 1.5 0 0 1-2.12 2.12zM5.281 2.783l1.415 1.415a7.5 7.5 0 0 0 0 10.606l-1.415 1.415a9.5 9.5 0 0 1 0-13.436zm13.436 0a9.5 9.5 0 0 1 0 13.436l-1.415-1.415a7.5 7.5 0 0 0 0-10.606l1.415-1.415zM8.11 5.611l1.414 1.414a3.5 3.5 0 0 0 0 4.95l-1.414 1.414a5.5 5.5 0 0 1 0-7.778zm7.778 0a5.5 5.5 0 0 1 0 7.778l-1.414-1.414a3.5 3.5 0 0 0 0-4.95l1.414-1.414z"],"unicode":"","glyph":"M600 550L900 100H300L600 550zM547 672A75 75 0 1 0 652.9999999999999 778A75 75 0 0 0 546.9999999999999 671.9999999999999zM264.05 1060.85L334.8 990.1A375 375 0 0 1 334.8 459.8L264.05 389.05A474.99999999999994 474.99999999999994 0 0 0 264.05 1060.85zM935.85 1060.85A474.99999999999994 474.99999999999994 0 0 0 935.85 389.05L865.1 459.8A375 375 0 0 1 865.1 990.1L935.85 1060.85zM405.5 919.45L476.1999999999999 848.75A175 175 0 0 1 476.1999999999999 601.25L405.5 530.5500000000001A275 275 0 0 0 405.5 919.45zM794.3999999999999 919.45A275 275 0 0 0 794.3999999999999 530.5500000000001L723.6999999999999 601.25A175 175 0 0 1 723.6999999999999 848.75L794.3999999999999 919.45z","horizAdvX":"1200"},"base-station-line":{"path":["M0 0h24v24H0z","M12 13l6 9H6l6-9zm0 3.6L9.74 20h4.52L12 16.6zm-1.06-6.04a1.5 1.5 0 1 1 2.12-2.12 1.5 1.5 0 0 1-2.12 2.12zM5.281 2.783l1.415 1.415a7.5 7.5 0 0 0 0 10.606l-1.415 1.415a9.5 9.5 0 0 1 0-13.436zm13.436 0a9.5 9.5 0 0 1 0 13.436l-1.415-1.415a7.5 7.5 0 0 0 0-10.606l1.415-1.415zM8.11 5.611l1.414 1.414a3.5 3.5 0 0 0 0 4.95l-1.414 1.414a5.5 5.5 0 0 1 0-7.778zm7.778 0a5.5 5.5 0 0 1 0 7.778l-1.414-1.414a3.5 3.5 0 0 0 0-4.95l1.414-1.414z"],"unicode":"","glyph":"M600 550L900 100H300L600 550zM600 369.9999999999999L487 200H713L600 369.9999999999999zM547 671.9999999999999A75 75 0 1 0 652.9999999999999 778A75 75 0 0 0 546.9999999999999 671.9999999999999zM264.05 1060.85L334.8 990.1A375 375 0 0 1 334.8 459.8L264.05 389.05A474.99999999999994 474.99999999999994 0 0 0 264.05 1060.85zM935.85 1060.85A474.99999999999994 474.99999999999994 0 0 0 935.85 389.05L865.1 459.8A375 375 0 0 1 865.1 990.1L935.85 1060.85zM405.5 919.45L476.1999999999999 848.75A175 175 0 0 1 476.1999999999999 601.25L405.5 530.5500000000001A275 275 0 0 0 405.5 919.45zM794.3999999999999 919.45A275 275 0 0 0 794.3999999999999 530.5500000000001L723.6999999999999 601.25A175 175 0 0 1 723.6999999999999 848.75L794.3999999999999 919.45z","horizAdvX":"1200"},"basketball-fill":{"path":["M0 0h24v24H0z","M12.366 13.366l1.775 1.025a9.98 9.98 0 0 0-.311 7.44A9.911 9.911 0 0 1 12 22a9.964 9.964 0 0 1-4.11-.88l4.476-7.754zm3.517 2.032l4.234 2.444a10.033 10.033 0 0 1-4.363 3.43 7.988 7.988 0 0 1 .008-5.57l.121-.304zM8.86 11.342l1.775 1.024-4.476 7.75a10.026 10.026 0 0 1-3.59-4.785 9.978 9.978 0 0 0 6.085-3.713l.206-.276zm13.046-.726c.063.453.095.915.095 1.384a9.964 9.964 0 0 1-.88 4.11l-4.236-2.445a7.985 7.985 0 0 1 4.866-3.021l.155-.028zM2.881 7.891l4.235 2.445a7.99 7.99 0 0 1-5.021 3.05A10.14 10.14 0 0 1 2 12c0-1.465.315-2.856.88-4.11zm14.961-4.008a10.026 10.026 0 0 1 3.59 4.785 9.985 9.985 0 0 0-6.086 3.715l-.205.276-1.775-1.025 4.476-7.75zM12 2c1.465 0 2.856.315 4.11.88l-4.476 7.754L9.859 9.61a9.98 9.98 0 0 0 .311-7.442A9.922 9.922 0 0 1 12 2zm-3.753.73a7.992 7.992 0 0 1-.01 5.57l-.12.303-4.234-2.445a10.036 10.036 0 0 1 4.164-3.346l.2-.083z"],"unicode":"","glyph":"M618.3 531.7L707.05 480.45A499 499 0 0 1 691.5 108.4500000000001A495.55 495.55 0 0 0 600 100A498.2 498.2 0 0 0 394.5 144L618.3 531.6999999999999zM794.15 430.1L1005.85 307.9000000000001A501.65 501.65 0 0 0 787.6999999999999 136.4000000000001A399.40000000000003 399.40000000000003 0 0 0 788.0999999999998 414.9000000000001L794.1499999999999 430.1000000000002zM443 632.9L531.75 581.7L307.95 194.2000000000001A501.3 501.3 0 0 0 128.45 433.4500000000001A498.9 498.9 0 0 1 432.7 619.1L443 632.9000000000001zM1095.3 669.2C1098.4499999999998 646.5500000000001 1100.05 623.45 1100.05 600A498.2 498.2 0 0 0 1056.05 394.5L844.2499999999999 516.75A399.25 399.25 0 0 0 1087.55 667.8000000000001L1095.3 669.2000000000002zM144.05 805.45L355.8 683.1999999999999A399.5 399.5 0 0 0 104.75 530.7A507.00000000000006 507.00000000000006 0 0 0 100 600C100 673.25 115.75 742.8 144 805.5zM892.0999999999999 1005.85A501.3 501.3 0 0 0 1071.6 766.6A499.25 499.25 0 0 1 767.3 580.85L757.05 567.0500000000001L668.2999999999998 618.3000000000001L892.0999999999999 1005.8zM600 1100C673.25 1100 742.8 1084.25 805.5 1056L581.7 668.3L492.95 719.5A499 499 0 0 1 508.5 1091.6000000000001A496.1 496.1 0 0 0 600 1100zM412.35 1063.5A399.6 399.6 0 0 0 411.85 785L405.85 769.8499999999999L194.15 892.0999999999999A501.8 501.8 0 0 0 402.35 1059.3999999999999L412.35 1063.55z","horizAdvX":"1200"},"basketball-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm.366 11.366l-3.469 6.01a8.053 8.053 0 0 0 4.459.51 9.937 9.937 0 0 1 .784-5.494l-1.774-1.026zm3.518 2.031a7.956 7.956 0 0 0-.587 3.894 8.022 8.022 0 0 0 3.077-2.456l-2.49-1.438zm-7.025-4.055a9.95 9.95 0 0 1-4.365 3.428 8.01 8.01 0 0 0 2.671 3.604l3.469-6.008-1.775-1.024zm11.103-.13l-.258.12a7.947 7.947 0 0 0-2.82 2.333l2.492 1.439a7.975 7.975 0 0 0 .586-3.893zM4 12c0 .266.013.53.038.789a7.95 7.95 0 0 0 3.078-2.454L4.624 8.897A7.975 7.975 0 0 0 4 12zm12.835-6.374l-3.469 6.008 1.775 1.025a9.95 9.95 0 0 1 4.366-3.43 8.015 8.015 0 0 0-2.419-3.402l-.253-.201zM12 4c-.463 0-.916.04-1.357.115a9.928 9.928 0 0 1-.784 5.494l1.775 1.025 3.469-6.01A7.975 7.975 0 0 0 12 4zm-3.297.71l-.191.088a8.033 8.033 0 0 0-2.886 2.367l2.49 1.438a7.956 7.956 0 0 0 .587-3.893z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM618.3 531.7L444.85 231.2000000000002A402.65000000000003 402.65000000000003 0 0 1 667.8 205.7000000000001A496.84999999999997 496.84999999999997 0 0 0 707 480.4L618.3 531.7zM794.2 430.15A397.80000000000007 397.80000000000007 0 0 1 764.85 235.45A401.1 401.1 0 0 1 918.7000000000002 358.25L794.2000000000002 430.15zM442.95 632.9A497.49999999999994 497.49999999999994 0 0 0 224.7 461.5A400.5 400.5 0 0 1 358.25 281.3000000000001L531.6999999999999 581.7L442.95 632.9000000000001zM998.1 639.4L985.2 633.4000000000001A397.35 397.35 0 0 1 844.2 516.75L968.8 444.8000000000001A398.74999999999994 398.74999999999994 0 0 1 998.1 639.45zM200 600C200 586.7 200.65 573.5 201.9 560.5500000000001A397.5 397.5 0 0 1 355.8 683.25L231.2 755.15A398.74999999999994 398.74999999999994 0 0 1 200 600zM841.75 918.7L668.3000000000001 618.3L757.0500000000001 567.05A497.49999999999994 497.49999999999994 0 0 0 975.35 738.55A400.75 400.75 0 0 1 854.4000000000001 908.65L841.75 918.7zM600 1000C576.85 1000 554.1999999999999 998 532.1500000000001 994.25A496.40000000000003 496.40000000000003 0 0 0 492.95 719.55L581.7 668.3L755.15 968.8A398.74999999999994 398.74999999999994 0 0 1 600 1000zM435.15 964.5L425.5999999999999 960.1A401.65 401.65 0 0 1 281.3 841.75L405.8 769.85A397.80000000000007 397.80000000000007 0 0 1 435.15 964.5z","horizAdvX":"1200"},"battery-2-charge-fill":{"path":["M0 0h24v24H0z","M9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3zm4 8V7l-5 7h3v5l5-7h-3z"],"unicode":"","glyph":"M450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450zM650 600V850L400 500H550V250L800 600H650z","horizAdvX":"1200"},"battery-2-charge-line":{"path":["M0 0h24v24H0z","M13 12h3l-5 7v-5H8l5-7v5zm-2-6H7v14h10V6h-4V4h-2v2zM9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3z"],"unicode":"","glyph":"M650 600H800L550 250V500H400L650 850V600zM550 900H350V200H850V900H650V1000H550V900zM450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450z","horizAdvX":"1200"},"battery-2-fill":{"path":["M0 0h24v24H0z","M9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3z"],"unicode":"","glyph":"M450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450z","horizAdvX":"1200"},"battery-2-line":{"path":["M0 0h24v24H0z","M11 6H7v14h10V6h-4V4h-2v2zM9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3z"],"unicode":"","glyph":"M550 900H350V200H850V900H650V1000H550V900zM450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450z","horizAdvX":"1200"},"battery-charge-fill":{"path":["M0 0h24v24H0z","M12 11V5l-5 8h3v6l5-8h-3zM3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm18 4h2v6h-2V9z"],"unicode":"","glyph":"M600 650V950L350 550H500V250L750 650H600zM150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-charge-line":{"path":["M0 0h24v24H0z","M8 19H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h6.625L8.458 7H4v10h4v2zm4.375 0l1.167-2H18V7h-4V5h5a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-6.625zM21 9h2v6h-2V9zm-9 2h3l-5 8v-6H7l5-8v6z"],"unicode":"","glyph":"M400 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950H481.25L422.9000000000001 850H200V350H400V250zM618.75 250L677.1 350H900V850H700V950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H618.75zM1050 750H1150V450H1050V750zM600 650H750L500 250V550H350L600 950V650z","horizAdvX":"1200"},"battery-fill":{"path":["M0 0h24v24H0z","M3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm18 4h2v6h-2V9z"],"unicode":"","glyph":"M150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-line":{"path":["M0 0h24v24H0z","M4 7v10h14V7H4zM3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm18 4h2v6h-2V9z"],"unicode":"","glyph":"M200 850V350H900V850H200zM150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-low-fill":{"path":["M0 0h24v24H0z","M3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm2 3v8h4V8H5zm16 1h2v6h-2V9z"],"unicode":"","glyph":"M150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM250 800V400H450V800H250zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-low-line":{"path":["M0 0h24v24H0z","M4 7v10h14V7H4zM3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm2 3h4v8H5V8zm16 1h2v6h-2V9z"],"unicode":"","glyph":"M200 850V350H900V850H200zM150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM250 800H450V400H250V800zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-saver-fill":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4zm-1 7h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700zM650 750H550V600H400V500H550V350H650V500H800V600H650V750z","horizAdvX":"1200"},"battery-saver-line":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4zm-1 2h-2v2H7v14h10V6h-4V4zm0 5v3h3v2h-3v3h-2v-3H8v-2h3V9h2z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700zM650 1000H550V900H350V200H850V900H650V1000zM650 750V600H800V500H650V350H550V500H400V600H550V750H650z","horizAdvX":"1200"},"battery-share-fill":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v6.2L15 8v3h-1c-2.142 0-4 1.79-4 4v3h2v-3c0-1.05.95-2 2-2h1v3l4-3.2V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V640L750 800V650H700C592.9 650 500 560.5 500 450V300H600V450C600 502.5 647.5 550 700 550H750V400L950 560V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700z","horizAdvX":"1200"},"battery-share-line":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v2h-2V6h-4V4h-2v2H7v14h10v-3h2v4a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4zm1 6l5 4-5 4v-3h-1c-1.054 0-2 .95-2 2v3h-2v-3a4 4 0 0 1 4-4h1V8z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V850H850V900H650V1000H550V900H350V200H850V350H950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700zM750 800L1000 600L750 400V550H700C647.3 550 600 502.5 600 450V300H500V450A200 200 0 0 0 700 650H750V800z","horizAdvX":"1200"},"bear-smile-fill":{"path":["M0 0h24v24H0z","M17.5 2a4.5 4.5 0 0 1 2.951 7.897c.355.967.549 2.013.549 3.103A9 9 0 1 1 3.55 9.897a4.5 4.5 0 1 1 6.791-5.744 9.05 9.05 0 0 1 3.32 0A4.494 4.494 0 0 1 17.5 2zM10 13H8a4 4 0 0 0 7.995.2L16 13h-2a2 2 0 0 1-3.995.15L10 13z"],"unicode":"","glyph":"M875 1100A225 225 0 0 0 1022.55 705.15C1040.3 656.8 1050 604.5 1050 550A450 450 0 1 0 177.5 705.15A225 225 0 1 0 517.0500000000001 992.35A452.50000000000006 452.50000000000006 0 0 0 683.0500000000001 992.35A224.70000000000002 224.70000000000002 0 0 0 875 1100zM500 550H400A200 200 0 0 1 799.75 540L800 550H700A100 100 0 0 0 500.2499999999999 542.5L500 550z","horizAdvX":"1200"},"bear-smile-line":{"path":["M0 0h24v24H0z","M17.5 2a4.5 4.5 0 0 1 2.951 7.897c.355.967.549 2.013.549 3.103A9 9 0 1 1 3.55 9.897a4.5 4.5 0 1 1 6.791-5.744 9.05 9.05 0 0 1 3.32 0A4.494 4.494 0 0 1 17.5 2zm0 2c-.823 0-1.575.4-2.038 1.052l-.095.144-.718 1.176-1.355-.253a7.05 7.05 0 0 0-2.267-.052l-.316.052-1.356.255-.72-1.176A2.5 2.5 0 1 0 4.73 8.265l.131.123 1.041.904-.475 1.295A7 7 0 1 0 19 13c0-.716-.107-1.416-.314-2.083l-.112-.33-.475-1.295 1.04-.904A2.5 2.5 0 0 0 17.5 4zM10 13a2 2 0 1 0 4 0h2a4 4 0 1 1-8 0h2z"],"unicode":"","glyph":"M875 1100A225 225 0 0 0 1022.55 705.15C1040.3 656.8 1050 604.5 1050 550A450 450 0 1 0 177.5 705.15A225 225 0 1 0 517.0500000000001 992.35A452.50000000000006 452.50000000000006 0 0 0 683.0500000000001 992.35A224.70000000000002 224.70000000000002 0 0 0 875 1100zM875 1000C833.85 1000 796.25 980 773.1 947.4L768.3499999999999 940.2L732.4499999999999 881.4L664.6999999999999 894.05A352.5 352.5 0 0 1 551.3499999999999 896.65L535.55 894.05L467.7499999999999 881.3L431.7499999999999 940.1A125 125 0 1 1 236.5000000000001 786.75L243.0500000000001 780.6L295.1 735.4000000000001L271.3500000000001 670.65A350 350 0 1 1 950 550C950 585.8 944.65 620.8000000000001 934.3 654.15L928.7 670.65L904.95 735.4000000000001L956.95 780.6A125 125 0 0 1 875 1000zM500 550A100 100 0 1 1 700 550H800A200 200 0 1 0 400 550H500z","horizAdvX":"1200"},"behance-fill":{"path":["M0 0h24v24H0z","M7.443 5.35c.639 0 1.23.05 1.77.198a3.83 3.83 0 0 1 1.377.544c.394.247.689.594.885 1.039.197.445.295.99.295 1.583 0 .693-.147 1.286-.491 1.731-.295.446-.787.841-1.377 1.138.836.248 1.475.693 1.868 1.286.394.594.64 1.336.64 2.177 0 .693-.148 1.286-.394 1.781-.246.495-.639.94-1.082 1.237a5.078 5.078 0 0 1-1.573.692c-.59.149-1.18.248-1.77.248H1V5.35h6.443zm-.394 5.54c.541 0 .984-.148 1.328-.395.344-.247.492-.693.492-1.237 0-.297-.05-.594-.148-.791-.098-.198-.246-.347-.442-.495-.197-.099-.394-.198-.64-.247-.246-.05-.491-.05-.787-.05H4v3.216h3.05zm.148 5.838c.295 0 .59-.05.836-.099a1.72 1.72 0 0 0 .688-.297 1.76 1.76 0 0 0 .492-.544c.098-.247.197-.544.197-.89 0-.693-.197-1.188-.59-1.534-.394-.297-.935-.445-1.574-.445H4v3.81h3.197zm9.492-.05c.393.396.983.594 1.77.594.541 0 1.033-.148 1.426-.395.394-.297.64-.594.738-.891h2.41c-.394 1.187-.984 2.028-1.77 2.572-.788.495-1.722.792-2.853.792a5.753 5.753 0 0 1-2.115-.396 3.93 3.93 0 0 1-1.574-1.088 3.93 3.93 0 0 1-.983-1.633c-.246-.643-.345-1.335-.345-2.127 0-.742.099-1.434.345-2.078a5.34 5.34 0 0 1 1.032-1.682c.443-.445.984-.84 1.574-1.088a5.49 5.49 0 0 1 2.066-.396c.836 0 1.574.149 2.213.495.64.346 1.131.742 1.525 1.336a6.01 6.01 0 0 1 .885 1.88c.098.692.147 1.385.098 2.176H16c0 .792.295 1.534.689 1.93zm3.098-5.194c-.344-.346-.885-.544-1.525-.544-.442 0-.787.099-1.082.247-.295.149-.491.347-.688.545a1.322 1.322 0 0 0-.344.692c-.05.248-.099.445-.099.643h4.426c-.098-.742-.344-1.236-.688-1.583zM15.459 6.29h5.508v1.336H15.46V6.29z"],"unicode":"","glyph":"M372.15 932.5C404.1 932.5 433.65 930 460.65 922.6A191.5 191.5 0 0 0 529.5 895.4C549.2 883.05 563.95 865.6999999999999 573.75 843.45C583.5999999999999 821.2 588.5 793.95 588.5 764.3C588.5 729.65 581.15 700 563.95 677.75C549.2 655.45 524.5999999999999 635.7 495.1 620.85C536.9 608.45 568.8499999999999 586.2 588.5 556.55C608.1999999999999 526.85 620.5 489.75 620.5 447.7000000000001C620.5 413.0500000000001 613.1 383.4 600.8 358.6500000000001C588.5 333.9000000000001 568.85 311.65 546.6999999999999 296.8A253.9 253.9 0 0 0 468.05 262.2000000000001C438.55 254.75 409.05 249.8 379.55 249.8H50V932.5H372.15zM352.45 655.5C379.5 655.5 401.65 662.9 418.85 675.25C436.0499999999999 687.5999999999999 443.45 709.8999999999999 443.45 737.0999999999999C443.45 751.95 440.95 766.8 436.05 776.65C431.15 786.55 423.75 794 413.95 801.4C404.1 806.3499999999999 394.25 811.3 381.95 813.75C369.6500000000001 816.25 357.4000000000001 816.25 342.6 816.25H200V655.4499999999999H352.5zM359.85 363.5999999999999C374.6 363.5999999999999 389.35 366.0999999999999 401.65 368.55A86 86 0 0 1 436.05 383.4A88 88 0 0 1 460.65 410.6C465.5500000000001 422.95 470.5 437.8 470.5 455.1C470.5 489.75 460.65 514.5 441 531.8000000000001C421.3 546.6500000000001 394.25 554.0500000000001 362.3 554.0500000000001H200V363.5500000000001H359.85zM834.45 366.0999999999999C854.1 346.3 883.6 336.3999999999999 922.95 336.3999999999999C950 336.3999999999999 974.6 343.7999999999999 994.2499999999998 356.1499999999999C1013.9499999999998 370.9999999999999 1026.25 385.8499999999999 1031.1499999999999 400.7H1151.6499999999999C1131.95 341.3499999999999 1102.45 299.2999999999999 1063.1499999999999 272.0999999999998C1023.7499999999998 247.3499999999998 977.0499999999998 232.4999999999998 920.4999999999998 232.4999999999998A287.65000000000003 287.65000000000003 0 0 0 814.7499999999998 252.2999999999999A196.5 196.5 0 0 0 736.0499999999997 306.6999999999998A196.5 196.5 0 0 0 686.8999999999997 388.3499999999998C674.5999999999997 420.4999999999998 669.6499999999996 455.0999999999998 669.6499999999996 494.6999999999997C669.6499999999996 531.7999999999997 674.5999999999997 566.3999999999997 686.8999999999997 598.5999999999997A267 267 0 0 0 738.4999999999997 682.6999999999997C760.6499999999996 704.9499999999998 787.6999999999997 724.6999999999997 817.1999999999997 737.0999999999997A274.50000000000006 274.50000000000006 0 0 0 920.4999999999995 756.8999999999997C962.2999999999996 756.8999999999997 999.1999999999998 749.4499999999998 1031.1499999999996 732.1499999999997C1063.1499999999996 714.8499999999997 1087.6999999999998 695.0499999999998 1107.3999999999996 665.3499999999998A300.5 300.5 0 0 0 1151.6499999999996 571.3499999999998C1156.5499999999997 536.7499999999998 1158.9999999999995 502.0999999999998 1156.5499999999997 462.5499999999998H800C800 422.9499999999998 814.7500000000001 385.8499999999998 834.45 366.0499999999998zM989.35 625.8C972.1499999999997 643.0999999999999 945.1 652.9999999999999 913.1 652.9999999999999C891 652.9999999999999 873.7500000000001 648.05 859 640.65C844.2499999999999 633.1999999999999 834.45 623.3 824.6 613.4A66.1 66.1 0 0 1 807.4 578.8C804.9 566.4 802.4499999999999 556.55 802.4499999999999 546.6499999999999H1023.7500000000002C1018.8500000000003 583.7499999999999 1006.55 608.4499999999999 989.3500000000003 625.8zM772.9499999999999 885.5H1048.35V818.7H773V885.5z","horizAdvX":"1200"},"behance-line":{"path":["M0 0h24v24H0z","M7.5 11a2 2 0 1 0 0-4H3v4h4.5zm1 2H3v4h5.5a2 2 0 1 0 0-4zm2.063-1.428A4 4 0 0 1 8.5 19H1V5h6.5a4 4 0 0 1 3.063 6.572zM15.5 6H21v1.5h-5.5V6zm7.5 8.5h-7.5v.25A2.75 2.75 0 0 0 20.7 16h2.134a4.752 4.752 0 0 1-9.334-1.25v-1.5a4.75 4.75 0 1 1 9.5 0v1.25zm-2.104-2a2.751 2.751 0 0 0-5.292 0h5.292z"],"unicode":"","glyph":"M375 650A100 100 0 1 1 375 850H150V650H375zM425 550H150V350H425A100 100 0 1 1 425 550zM528.15 621.4000000000001A200 200 0 0 0 425 250H50V950H375A200 200 0 0 0 528.15 621.4000000000001zM775 900H1050V825H775V900zM1150 475H775V462.5A137.5 137.5 0 0 1 1035 400H1141.7A237.60000000000002 237.60000000000002 0 0 0 675 462.5V537.5A237.49999999999997 237.49999999999997 0 1 0 1150 537.5V475zM1044.8 575A137.54999999999998 137.54999999999998 0 0 1 780.2 575H1044.8z","horizAdvX":"1200"},"bell-fill":{"path":["M0 0h24v24H0z","M13.414 10.586l.48.486.465.485.459.492c3.458 3.764 5.472 7.218 4.607 8.083-.4.4-1.356.184-2.64-.507a9.006 9.006 0 0 1-10.403-.592l2.98-2.98a2 2 0 1 0-1.45-1.569l.035.155-2.979 2.98a9.007 9.007 0 0 1-.592-10.405c-.692-1.283-.908-2.238-.508-2.639.977-.976 5.25 1.715 9.546 6.01zm6.364-6.364a2 2 0 0 1-.164 2.976 9.015 9.015 0 0 1 .607 8.47c-1.189-1.954-3.07-4.174-5.393-6.496l-.537-.532c-2.128-2.079-4.156-3.764-5.958-4.86a9.015 9.015 0 0 1 8.471.607 2 2 0 0 1 2.974-.165z"],"unicode":"","glyph":"M670.6999999999999 670.6999999999999L694.7 646.4L717.95 622.15L740.9 597.5500000000001C913.8 409.35 1014.5 236.65 971.25 193.4000000000001C951.2500000000002 173.4000000000001 903.45 184.2000000000001 839.25 218.7500000000002A450.3 450.3 0 0 0 319.1 248.3500000000002L468.1 397.3500000000002A100 100 0 1 1 395.6 475.8000000000001L397.35 468.0500000000001L248.4 319.0500000000002A450.34999999999997 450.34999999999997 0 0 0 218.8 839.3000000000002C184.2 903.4500000000002 173.4 951.2000000000002 193.4 971.2500000000002C242.2500000000001 1020.0500000000002 455.9 885.5000000000001 670.6999999999999 670.7500000000001zM988.9 988.9A100 100 0 0 0 980.6999999999998 840.0999999999999A450.74999999999994 450.74999999999994 0 0 0 1011.0499999999998 416.5999999999999C951.5999999999998 514.3 857.5499999999998 625.3 741.3999999999997 741.4L714.5499999999997 768C608.1499999999997 871.95 506.7499999999997 956.2 416.6499999999998 1011A450.74999999999994 450.74999999999994 0 0 0 840.1999999999997 980.65A100 100 0 0 0 988.8999999999997 988.9z","horizAdvX":"1200"},"bell-line":{"path":["M0 0h24v24H0z","M14.121 9.879c4.296 4.295 6.829 8.728 5.657 9.9-.475.474-1.486.34-2.807-.273a9.008 9.008 0 0 1-10.59-.474l-.038.04-1.414-1.415.038-.04A9.006 9.006 0 0 1 4.495 7.03c-.614-1.322-.748-2.333-.273-2.808 1.128-1.128 5.277 1.177 9.417 5.182l.482.475zm-1.414 1.414C10.823 9.409 8.87 7.842 7.236 6.87l-.186.18a7.002 7.002 0 0 0-.657 9.142l1.846-1.846a2 2 0 1 1 1.416 1.415l-1.848 1.846a7.002 7.002 0 0 0 9.143-.657l.179-.188-.053-.089c-.976-1.615-2.52-3.53-4.369-5.38zm7.071-7.071a2 2 0 0 1-.164 2.976 9.015 9.015 0 0 1 .662 8.345 21.168 21.168 0 0 0-1.386-2.306 6.99 6.99 0 0 0-1.94-6.187 6.992 6.992 0 0 0-6.187-1.94 21.092 21.092 0 0 0-2.306-1.386 9.016 9.016 0 0 1 8.347.663 2 2 0 0 1 2.974-.165z"],"unicode":"","glyph":"M706.0500000000001 706.05C920.8500000000003 491.3000000000001 1047.5 269.6500000000001 988.9 211.05C965.1499999999997 187.35 914.6 194.05 848.55 224.7000000000001A450.4 450.4 0 0 0 319.05 248.4L317.15 246.4000000000001L246.45 317.15L248.35 319.15A450.3 450.3 0 0 0 224.75 848.5C194.05 914.6 187.35 965.15 211.1 988.9C267.5 1045.3 474.95 930.05 681.9499999999999 729.8L706.05 706.05zM635.35 635.35C541.15 729.55 443.5 807.9000000000001 361.8 856.5L352.5 847.5A350.09999999999997 350.09999999999997 0 0 1 319.65 390.4L411.9500000000001 482.7A100 100 0 1 0 482.7500000000001 411.9500000000001L390.3500000000001 319.6500000000001A350.09999999999997 350.09999999999997 0 0 1 847.5000000000001 352.5L856.45 361.9L853.8000000000001 366.3499999999999C805.0000000000001 447.0999999999999 727.8000000000001 542.8499999999999 635.35 635.3499999999999zM988.9 988.9A100 100 0 0 0 980.6999999999998 840.1A450.74999999999994 450.74999999999994 0 0 0 1013.7999999999998 422.85A1058.3999999999999 1058.3999999999999 0 0 1 944.4999999999998 538.1500000000001A349.50000000000006 349.50000000000006 0 0 1 847.4999999999998 847.5000000000001A349.6 349.6 0 0 1 538.1499999999997 944.5000000000002A1054.6 1054.6 0 0 1 422.8499999999997 1013.8000000000002A450.8 450.8 0 0 0 840.1999999999997 980.65A100 100 0 0 0 988.8999999999997 988.9z","horizAdvX":"1200"},"bike-fill":{"path":["M0 0h24v24H0z","M5.5 12H4V7H2V5h6v2H6v2.795l9.813-2.629L15.233 5H12V3h3.978a1 1 0 0 1 .988.741l1.553 5.796-1.932.517-.256-.956L5.5 12zM5 21a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm13 3a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-4a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M275 600H200V850H100V950H400V850H300V710.25L790.65 841.7L761.65 950H600V1050H798.9A50 50 0 0 0 848.3000000000001 1012.95L925.95 723.15L829.3500000000001 697.3L816.5500000000002 745.0999999999999L275 600zM250 150A200 200 0 1 0 250 550A200 200 0 0 0 250 150zM250 300A50 50 0 1 1 250 400A50 50 0 0 1 250 300zM900 150A250 250 0 1 0 900 650A250 250 0 0 0 900 150zM900 350A50 50 0 1 1 900 450A50 50 0 0 1 900 350z","horizAdvX":"1200"},"bike-line":{"path":["M0 0h24v24H0z","M5.5 12H4V7H2V5h6v2H6v2.795l9.813-2.629L15.233 5H12V3h3.978a1 1 0 0 1 .988.741l1.553 5.796-1.932.517-.256-.956L5.5 12zM5 19a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm13-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M275 600H200V850H100V950H400V850H300V710.25L790.65 841.7L761.65 950H600V1050H798.9A50 50 0 0 0 848.3000000000001 1012.95L925.95 723.15L829.3500000000001 697.3L816.5500000000002 745.0999999999999L275 600zM250 250A100 100 0 1 1 250 450A100 100 0 0 1 250 250zM250 150A200 200 0 1 0 250 550A200 200 0 0 0 250 150zM900 250A150 150 0 1 1 900 550A150 150 0 0 1 900 250zM900 150A250 250 0 1 0 900 650A250 250 0 0 0 900 150z","horizAdvX":"1200"},"bilibili-fill":{"path":["M0 0h24v24H0z","M18.223 3.086a1.25 1.25 0 0 1 0 1.768L17.08 5.996h1.17A3.75 3.75 0 0 1 22 9.747v7.5a3.75 3.75 0 0 1-3.75 3.75H5.75A3.75 3.75 0 0 1 2 17.247v-7.5a3.75 3.75 0 0 1 3.75-3.75h1.166L5.775 4.855a1.25 1.25 0 1 1 1.767-1.768l2.652 2.652c.079.079.145.165.198.257h3.213c.053-.092.12-.18.199-.258l2.651-2.652a1.25 1.25 0 0 1 1.768 0zm.027 5.42H5.75a1.25 1.25 0 0 0-1.247 1.157l-.003.094v7.5c0 .659.51 1.199 1.157 1.246l.093.004h12.5a1.25 1.25 0 0 0 1.247-1.157l.003-.093v-7.5c0-.69-.56-1.25-1.25-1.25zm-10 2.5c.69 0 1.25.56 1.25 1.25v1.25a1.25 1.25 0 1 1-2.5 0v-1.25c0-.69.56-1.25 1.25-1.25zm7.5 0c.69 0 1.25.56 1.25 1.25v1.25a1.25 1.25 0 1 1-2.5 0v-1.25c0-.69.56-1.25 1.25-1.25z"],"unicode":"","glyph":"M911.15 1045.7A62.5 62.5 0 0 0 911.15 957.3L853.9999999999999 900.2H912.5A187.5 187.5 0 0 0 1100 712.65V337.65A187.5 187.5 0 0 0 912.5 150.1500000000001H287.5A187.5 187.5 0 0 0 100 337.65V712.65A187.5 187.5 0 0 0 287.5 900.15H345.8L288.75 957.25A62.5 62.5 0 1 0 377.1 1045.65L509.6999999999999 913.05C513.65 909.1 516.9499999999999 904.8 519.6 900.2H680.25C682.9000000000001 904.8 686.25 909.2 690.2 913.1L822.7499999999999 1045.7A62.5 62.5 0 0 0 911.15 1045.7zM912.5 774.7H287.5A62.5 62.5 0 0 1 225.15 716.8499999999999L225 712.1500000000001V337.1500000000001C225 304.2000000000002 250.5 277.2000000000001 282.85 274.8500000000002L287.5 274.6500000000001H912.5A62.5 62.5 0 0 1 974.85 332.5000000000001L975 337.1500000000001V712.1500000000001C975 746.6500000000001 947.0000000000002 774.6500000000001 912.5 774.6500000000001zM412.5 649.7C447 649.7 475 621.6999999999999 475 587.2V524.7A62.5 62.5 0 1 0 350 524.7V587.2C350 621.6999999999999 378 649.7 412.5 649.7zM787.5 649.7C822.0000000000001 649.7 850 621.6999999999999 850 587.2V524.7A62.5 62.5 0 1 0 725 524.7V587.2C725 621.6999999999999 753 649.7 787.5 649.7z","horizAdvX":"1200"},"bilibili-line":{"path":["M0 0h24v24H0z","M7.172 2.757L10.414 6h3.171l3.243-3.242a1 1 0 0 1 1.415 1.415l-1.829 1.827L18.5 6A3.5 3.5 0 0 1 22 9.5v8a3.5 3.5 0 0 1-3.5 3.5h-13A3.5 3.5 0 0 1 2 17.5v-8A3.5 3.5 0 0 1 5.5 6h2.085L5.757 4.171a1 1 0 0 1 1.415-1.415zM18.5 8h-13a1.5 1.5 0 0 0-1.493 1.356L4 9.5v8a1.5 1.5 0 0 0 1.356 1.493L5.5 19h13a1.5 1.5 0 0 0 1.493-1.356L20 17.5v-8A1.5 1.5 0 0 0 18.5 8zM8 11a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1zm8 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M358.6 1062.15L520.6999999999999 900H679.25L841.4 1062.1A50 50 0 0 0 912.15 991.35L820.6999999999999 900L925 900A175 175 0 0 0 1100 725V325A175 175 0 0 0 925 150H275A175 175 0 0 0 100 325V725A175 175 0 0 0 275 900H379.25L287.85 991.45A50 50 0 0 0 358.6 1062.2zM925 800H275A75 75 0 0 1 200.35 732.2L200 725V325A75 75 0 0 1 267.8 250.35L275 250H925A75 75 0 0 1 999.65 317.8000000000001L1000 325V725A75 75 0 0 1 925 800zM400 650A50 50 0 0 0 450 600V500A50 50 0 0 0 350 500V600A50 50 0 0 0 400 650zM800 650A50 50 0 0 0 850 600V500A50 50 0 0 0 750 500V600A50 50 0 0 0 800 650z","horizAdvX":"1200"},"bill-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM8 9v2h8V9H8zm0 4v2h8v-2H8z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM400 750V650H800V750H400zM400 550V450H800V550H400z","horizAdvX":"1200"},"bill-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM8 9h8v2H8V9zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM400 750H800V650H400V750zM400 550H800V450H400V550z","horizAdvX":"1200"},"billiards-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 1.75a2.5 2.5 0 0 1 1.88 4.148c.565.456.92 1.117.92 1.852 0 1.38-1.254 2.5-2.8 2.5-1.546 0-2.8-1.12-2.8-2.5 0-.735.355-1.396.92-1.853A2.5 2.5 0 0 1 12 7.75zm0 5c-.753 0-1.3.488-1.3 1s.547 1 1.3 1 1.3-.488 1.3-1-.547-1-1.3-1zm0-3.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 900A300 300 0 1 1 600 300A300 300 0 0 1 600 900zM600 812.5A125 125 0 0 0 694 605.1C722.2499999999999 582.3000000000001 740 549.25 740 512.5C740 443.5 677.3 387.5 600 387.5C522.7 387.5 459.9999999999999 443.5 459.9999999999999 512.5C459.9999999999999 549.25 477.75 582.3000000000001 505.9999999999999 605.15A125 125 0 0 0 600 812.5zM600 562.5C562.35 562.5 535 538.1 535 512.5S562.35 462.5 600 462.5S665 486.9 665 512.5S637.65 562.5 600 562.5zM600 737.5A50 50 0 1 1 600 637.5A50 50 0 0 1 600 737.5z","horizAdvX":"1200"},"billiards-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 2a6 6 0 1 1 0 12 6 6 0 0 1 0-12zm0 1.75a2.5 2.5 0 0 0-1.88 4.147c-.565.457-.92 1.118-.92 1.853 0 1.38 1.254 2.5 2.8 2.5 1.546 0 2.8-1.12 2.8-2.5 0-.735-.355-1.396-.92-1.852A2.5 2.5 0 0 0 12 7.75zm0 5c.753 0 1.3.488 1.3 1s-.547 1-1.3 1-1.3-.488-1.3-1 .547-1 1.3-1zm0-3.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 900A300 300 0 1 0 600 300A300 300 0 0 0 600 900zM600 812.5A125 125 0 0 1 506.0000000000001 605.15C477.7500000000001 582.3 460.0000000000001 549.25 460.0000000000001 512.5C460.0000000000001 443.5 522.7 387.5 600 387.5C677.3 387.5 740 443.5 740 512.5C740 549.25 722.25 582.3000000000001 694 605.1A125 125 0 0 1 600 812.5zM600 562.5C637.65 562.5 665 538.1 665 512.5S637.65 462.5 600 462.5S535 486.9 535 512.5S562.35 562.5 600 562.5zM600 737.5A50 50 0 1 0 600 637.5A50 50 0 0 0 600 737.5z","horizAdvX":"1200"},"bit-coin-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-6v2h2v-2h1a2.5 2.5 0 0 0 2-4 2.5 2.5 0 0 0-2-4h-1V6h-2v2H8v8h3zm-1-3h4a.5.5 0 1 1 0 1h-4v-1zm0-3h4a.5.5 0 1 1 0 1h-4v-1z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 400V300H650V400H700A125 125 0 0 1 800 600A125 125 0 0 1 700 800H650V900H550V800H400V400H550zM500 550H700A25 25 0 1 0 700 500H500V550zM500 700H700A25 25 0 1 0 700 650H500V700z","horizAdvX":"1200"},"bit-coin-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-4H8V8h3V6h2v2h1a2.5 2.5 0 0 1 2 4 2.5 2.5 0 0 1-2 4h-1v2h-2v-2zm-1-3v1h4a.5.5 0 1 0 0-1h-4zm0-3v1h4a.5.5 0 1 0 0-1h-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 400H400V800H550V900H650V800H700A125 125 0 0 0 800 600A125 125 0 0 0 700 400H650V300H550V400zM500 550V500H700A25 25 0 1 1 700 550H500zM500 700V650H700A25 25 0 1 1 700 700H500z","horizAdvX":"1200"},"blaze-fill":{"path":["M0 0h24v24H0z","M18.5 9c1 1.06 1.5 2.394 1.5 4 0 3.466-3.7 4.276-5.5 9-.667-.575-1-1.408-1-2.5 0-3.482 5-5.29 5-10.5zm-4-4c1.2 1.238 1.8 2.572 1.8 4 0 4.951-6.045 5.692-4.8 13C9.833 20.84 9 19.173 9 17c0-3.325 5.5-6 5.5-12zM10 1c1.333 1.667 2 3.167 2 4.5 0 6.25-8.5 8.222-4 16.5-2.616-.58-4.5-3-4.5-6C3.5 9.5 10 8.5 10 1z"],"unicode":"","glyph":"M925 750C975 697 1000 630.3 1000 550C1000 376.7 815 336.2000000000001 725 100C691.65 128.75 675 170.4000000000001 675 225C675 399.0999999999999 925 489.5 925 750zM725 950C785 888.1 815 821.4 815 750C815 502.4499999999999 512.75 465.4 575 100C491.65 158 450 241.3500000000002 450 350C450 516.25 725 650 725 950zM500 1150C566.65 1066.65 600 991.65 600 925C600 612.5 175 513.9 400 100C269.2000000000001 129 175 250 175 400C175 725 500 775 500 1150z","horizAdvX":"1200"},"blaze-line":{"path":["M0 0h24v24H0z","M19 9c.667 1.06 1 2.394 1 4 0 3-3.5 4-5 9-.667-.575-1-1.408-1-2.5 0-3.482 5-5.29 5-10.5zm-4.5-4a8.31 8.31 0 0 1 1 4c0 5-6 6-4 13C9.833 20.84 9 19.173 9 17c0-3.325 5.5-6 5.5-12zM10 1c.667 1.333 1 2.833 1 4.5 0 6-9 7.5-3 16.5-2.5-.5-4.5-3-4.5-6C3.5 9.5 10 8.5 10 1z"],"unicode":"","glyph":"M950 750C983.3500000000003 697 1000 630.3 1000 550C1000 400 825 350 750 100C716.65 128.75 700 170.4000000000001 700 225C700 399.0999999999999 950 489.5 950 750zM725 950A415.5 415.5 0 0 0 775 750C775 500 475 450 575 100C491.65 158 450 241.3500000000002 450 350C450 516.25 725 650 725 950zM500 1150C533.35 1083.35 550 1008.35 550 925C550 625 100 550 400 100C275 125 175 250 175 400C175 725 500 775 500 1150z","horizAdvX":"1200"},"bluetooth-connect-fill":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657zM19.5 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-13 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25zM975 525A75 75 0 1 0 975 675A75 75 0 0 0 975 525zM325 525A75 75 0 1 0 325 675A75 75 0 0 0 325 525z","horizAdvX":"1200"},"bluetooth-connect-line":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657zM19.5 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-13 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25zM975 525A75 75 0 1 0 975 675A75 75 0 0 0 975 525zM325 525A75 75 0 1 0 325 675A75 75 0 0 0 325 525z","horizAdvX":"1200"},"bluetooth-fill":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25z","horizAdvX":"1200"},"bluetooth-line":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25z","horizAdvX":"1200"},"blur-off-fill":{"path":["M0 0h24v24H0z","M5.432 6.846L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.038-3.04A9 9 0 0 1 5.432 6.848zM8.243 4.03L12 .272l6.364 6.364a9.002 9.002 0 0 1 2.05 9.564L8.244 4.03z"],"unicode":"","glyph":"M271.6 857.7L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L907.7 221.6499999999999A450 450 0 0 0 271.6 857.6zM412.1500000000001 998.5L600 1186.4L918.2 868.2A450.1 450.1 0 0 0 1020.7 390L412.2 998.5z","horizAdvX":"1200"},"blur-off-line":{"path":["M0 0h24v24H0z","M18.154 19.568A9 9 0 0 1 5.432 6.846L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.038-3.04zM6.847 8.262a7 7 0 0 0 9.891 9.89l-9.89-9.89zM20.414 16.2l-1.599-1.599a6.995 6.995 0 0 0-1.865-6.55L12 3.1 9.657 5.443 8.243 4.03 12 .272l6.364 6.364a9.002 9.002 0 0 1 2.05 9.564z"],"unicode":"","glyph":"M907.7 221.5999999999999A450 450 0 0 0 271.6 857.7L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L907.7 221.6499999999999zM342.35 786.9A350 350 0 0 1 836.9 292.4L342.4 786.9zM1020.7 390L940.7500000000002 469.95A349.75 349.75 0 0 1 847.5000000000001 797.45L600 1045L482.85 927.85L412.1500000000001 998.5L600 1186.4L918.2 868.2A450.1 450.1 0 0 0 1020.7 390z","horizAdvX":"1200"},"body-scan-fill":{"path":["M0 0h24v24H0z","M4 16v4h4v2H2v-6h2zm18 0v6h-6v-2h4v-4h2zM7.5 7a4.5 4.5 0 0 0 9 0h2a6.5 6.5 0 0 1-3.499 5.767L15 19H9v-6.232A6.5 6.5 0 0 1 5.5 7h2zM12 5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM8 2v2l-4-.001V8H2V2h6zm14 0v6h-2V4h-4V2h6z"],"unicode":"","glyph":"M200 400V200H400V100H100V400H200zM1100 400V100H800V200H1000V400H1100zM375 850A225 225 0 0 1 825 850H925A325 325 0 0 0 750.05 561.65L750 250H450V561.5999999999999A325 325 0 0 0 275 850H375zM600 950A125 125 0 1 0 600 700A125 125 0 0 0 600 950zM400 1100V1000L200 1000.05V800H100V1100H400zM1100 1100V800H1000V1000H800V1100H1100z","horizAdvX":"1200"},"body-scan-line":{"path":["M0 0h24v24H0z","M4 16v4h4v2H2v-6h2zm18 0v6h-6v-2h4v-4h2zM7.5 7a4.502 4.502 0 0 0 3.5 4.389V17h2l.001-5.612A4.502 4.502 0 0 0 16.5 7h2a6.5 6.5 0 0 1-3.499 5.767L15 19H9v-6.232A6.5 6.5 0 0 1 5.5 7h2zM12 5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM8 2v2l-4-.001V8H2V2h6zm14 0v6h-2V4h-4V2h6z"],"unicode":"","glyph":"M200 400V200H400V100H100V400H200zM1100 400V100H800V200H1000V400H1100zM375 850A225.1 225.1 0 0 1 550 630.5500000000001V350H650L650.05 630.6A225.1 225.1 0 0 1 825 850H925A325 325 0 0 0 750.05 561.65L750 250H450V561.5999999999999A325 325 0 0 0 275 850H375zM600 950A125 125 0 1 0 600 700A125 125 0 0 0 600 950zM400 1100V1000L200 1000.05V800H100V1100H400zM1100 1100V800H1000V1000H800V1100H1100z","horizAdvX":"1200"},"bold":{"path":["M0 0h24v24H0z","M8 11h4.5a2.5 2.5 0 1 0 0-5H8v5zm10 4.5a4.5 4.5 0 0 1-4.5 4.5H6V4h6.5a4.5 4.5 0 0 1 3.256 7.606A4.498 4.498 0 0 1 18 15.5zM8 13v5h5.5a2.5 2.5 0 1 0 0-5H8z"],"unicode":"","glyph":"M400 650H625A125 125 0 1 1 625 900H400V650zM900 425A225 225 0 0 0 675 200H300V1000H625A225 225 0 0 0 787.8 619.7A224.90000000000003 224.90000000000003 0 0 0 900 425zM400 550V300H675A125 125 0 1 1 675 550H400z","horizAdvX":"1200"},"book-2-fill":{"path":["M0 0h24v24H0z","M21 18H6a1 1 0 0 0 0 2h15v2H6a3 3 0 0 1-3-3V4a2 2 0 0 1 2-2h16v16zm-5-9V7H8v2h8z"],"unicode":"","glyph":"M1050 300H300A50 50 0 0 1 300 200H1050V100H300A150 150 0 0 0 150 250V1000A100 100 0 0 0 250 1100H1050V300zM800 750V850H400V750H800z","horizAdvX":"1200"},"book-2-line":{"path":["M0 0h24v24H0z","M21 18H6a1 1 0 0 0 0 2h15v2H6a3 3 0 0 1-3-3V4a2 2 0 0 1 2-2h16v16zM5 16.05c.162-.033.329-.05.5-.05H19V4H5v12.05zM16 9H8V7h8v2z"],"unicode":"","glyph":"M1050 300H300A50 50 0 0 1 300 200H1050V100H300A150 150 0 0 0 150 250V1000A100 100 0 0 0 250 1100H1050V300zM250 397.5C258.1 399.15 266.45 400 275 400H950V1000H250V397.5zM800 750H400V850H800V750z","horizAdvX":"1200"},"book-3-fill":{"path":["M0 0h24v24H0z","M21 4H7a2 2 0 1 0 0 4h14v13a1 1 0 0 1-1 1H7a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h13a1 1 0 0 1 1 1v1zm-1 3H7a1 1 0 1 1 0-2h13v2z"],"unicode":"","glyph":"M1050 1000H350A100 100 0 1 1 350 800H1050V150A50 50 0 0 0 1000 100H350A200 200 0 0 0 150 300V900A200 200 0 0 0 350 1100H1000A50 50 0 0 0 1050 1050V1000zM1000 850H350A50 50 0 1 0 350 950H1000V850z","horizAdvX":"1200"},"book-3-line":{"path":["M0 0h24v24H0z","M21 4H7a2 2 0 1 0 0 4h14v13a1 1 0 0 1-1 1H7a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h13a1 1 0 0 1 1 1v1zM5 18a2 2 0 0 0 2 2h12V10H7a3.982 3.982 0 0 1-2-.535V18zM20 7H7a1 1 0 1 1 0-2h13v2z"],"unicode":"","glyph":"M1050 1000H350A100 100 0 1 1 350 800H1050V150A50 50 0 0 0 1000 100H350A200 200 0 0 0 150 300V900A200 200 0 0 0 350 1100H1000A50 50 0 0 0 1050 1050V1000zM250 300A100 100 0 0 1 350 200H950V700H350A199.10000000000002 199.10000000000002 0 0 0 250 726.75V300zM1000 850H350A50 50 0 1 0 350 950H1000V850z","horizAdvX":"1200"},"book-fill":{"path":["M0 0h24v24H0z","M20 22H6.5A3.5 3.5 0 0 1 3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-3H6.5a1.5 1.5 0 0 0 0 3H19z"],"unicode":"","glyph":"M1000 100H325A175 175 0 0 0 150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V350H325A75 75 0 0 1 325 200H950z","horizAdvX":"1200"},"book-line":{"path":["M0 0h24v24H0z","M3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5A3.5 3.5 0 0 1 3 18.5zM19 20v-3H6.5a1.5 1.5 0 0 0 0 3H19zM5 15.337A3.486 3.486 0 0 1 6.5 15H19V4H6a1 1 0 0 0-1 1v10.337z"],"unicode":"","glyph":"M150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H325A175 175 0 0 0 150 275zM950 200V350H325A75 75 0 0 1 325 200H950zM250 433.15A174.3 174.3 0 0 0 325 450H950V1000H300A50 50 0 0 1 250 950V433.15z","horizAdvX":"1200"},"book-mark-fill":{"path":["M0 0h24v24H0z","M20 22H6.5A3.5 3.5 0 0 1 3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-3H6.5a1.5 1.5 0 0 0 0 3H19zM10 4v8l3.5-2 3.5 2V4h-7z"],"unicode":"","glyph":"M1000 100H325A175 175 0 0 0 150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V350H325A75 75 0 0 1 325 200H950zM500 1000V600L675 700L850 600V1000H500z","horizAdvX":"1200"},"book-mark-line":{"path":["M0 0h24v24H0z","M3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5A3.5 3.5 0 0 1 3 18.5zM19 20v-3H6.5a1.5 1.5 0 0 0 0 3H19zM10 4H6a1 1 0 0 0-1 1v10.337A3.486 3.486 0 0 1 6.5 15H19V4h-2v8l-3.5-2-3.5 2V4z"],"unicode":"","glyph":"M150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H325A175 175 0 0 0 150 275zM950 200V350H325A75 75 0 0 1 325 200H950zM500 1000H300A50 50 0 0 1 250 950V433.15A174.3 174.3 0 0 0 325 450H950V1000H850V600L675 700L500 600V1000z","horizAdvX":"1200"},"book-open-fill":{"path":["M0 0h24v24H0z","M21 21h-8V6a3 3 0 0 1 3-3h5a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zm-10 0H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a3 3 0 0 1 3 3v15zm0 0h2v2h-2v-2z"],"unicode":"","glyph":"M1050 150H650V900A150 150 0 0 0 800 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150zM550 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H400A150 150 0 0 0 550 900V150zM550 150H650V50H550V150z","horizAdvX":"1200"},"book-open-line":{"path":["M0 0h24v24H0z","M13 21v2h-2v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6a3.99 3.99 0 0 1 3 1.354A3.99 3.99 0 0 1 15 3h6a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-8zm7-2V5h-5a2 2 0 0 0-2 2v12h7zm-9 0V7a2 2 0 0 0-2-2H4v14h7z"],"unicode":"","glyph":"M650 150V50H550V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H450A199.5 199.5 0 0 0 600 982.3A199.5 199.5 0 0 0 750 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H650zM1000 250V950H750A100 100 0 0 1 650 850V250H1000zM550 250V850A100 100 0 0 1 450 950H200V250H550z","horizAdvX":"1200"},"book-read-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM12 5v14h8V5h-8zm1 2h6v2h-6V7zm0 3h6v2h-6v-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM600 950V250H1000V950H600zM650 850H950V750H650V850zM650 700H950V600H650V700z","horizAdvX":"1200"},"book-read-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM11 5H4v14h7V5zm2 0v14h7V5h-7zm1 2h5v2h-5V7zm0 3h5v2h-5v-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM550 950H200V250H550V950zM650 950V250H1000V950H650zM700 850H950V750H700V850zM700 700H950V600H700V700z","horizAdvX":"1200"},"booklet-fill":{"path":["M0 0h24v24H0z","M8 2v20H4v-4H2v-2h2v-3H2v-2h2V8H2V6h2V2h4zm12.005 0C21.107 2 22 2.898 22 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H10V2h10.005z"],"unicode":"","glyph":"M400 1100V100H200V300H100V400H200V550H100V650H200V800H100V900H200V1100H400zM1000.2500000000002 1100C1055.35 1100 1100 1055.1 1100 1000.5V199.5000000000001C1100 144.5500000000002 1055.35 100.0000000000002 1000.25 100.0000000000002H500V1100H1000.2500000000002z","horizAdvX":"1200"},"booklet-line":{"path":["M0 0h24v24H0z","M20.005 2C21.107 2 22 2.898 22 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H4v-4H2v-2h2v-3H2v-2h2V8H2V6h2V2h16.005zM8 4H6v16h2V4zm12 0H10v16h10V4z"],"unicode":"","glyph":"M1000.25 1100C1055.35 1100 1100 1055.1 1100 1000.5V199.5000000000001C1100 144.5500000000002 1055.35 100.0000000000002 1000.25 100.0000000000002H200V300.0000000000003H100V400.0000000000003H200V550.0000000000002H100V650.0000000000002H200V800H100V900H200V1100H1000.25zM400 1000H300V200H400V1000zM1000 1000H500V200H1000V1000z","horizAdvX":"1200"},"bookmark-2-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm3 7v2h8V9H8z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100zM400 750V650H800V750H400z","horizAdvX":"1200"},"bookmark-2-line":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm13 2H6v15.432l6-3.761 6 3.761V4zM8 9h8v2H8V9z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100zM900 1000H300V228.3999999999999L600 416.4499999999998L900 228.3999999999999V1000zM400 750H800V650H400V750z","horizAdvX":"1200"},"bookmark-3-fill":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v19.276a.5.5 0 0 1-.704.457L12 19.03l-8.296 3.702A.5.5 0 0 1 3 22.276V3a1 1 0 0 1 1-1zm8 11.5l2.939 1.545-.561-3.272 2.377-2.318-3.286-.478L12 6l-1.47 2.977-3.285.478 2.377 2.318-.56 3.272L12 13.5z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V86.2000000000001A25 25 0 0 0 1014.8 63.3499999999999L600 248.5L185.2000000000001 63.4000000000001A25 25 0 0 0 150 86.2000000000001V1050A50 50 0 0 0 200 1100zM600 525L746.95 447.75L718.9 611.35L837.75 727.25L673.4499999999999 751.15L600 900L526.5 751.15L362.25 727.25L481.1 611.35L453.1 447.75L600 525z","horizAdvX":"1200"},"bookmark-3-line":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v19.276a.5.5 0 0 1-.704.457L12 19.03l-8.296 3.702A.5.5 0 0 1 3 22.276V3a1 1 0 0 1 1-1zm15 17.965V4H5v15.965l7-3.124 7 3.124zM12 13.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L12 6l1.47 2.977 3.285.478-2.377 2.318.56 3.272L12 13.5z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V86.2000000000001A25 25 0 0 0 1014.8 63.3499999999999L600 248.5L185.2000000000001 63.4000000000001A25 25 0 0 0 150 86.2000000000001V1050A50 50 0 0 0 200 1100zM950 201.75V1000H250V201.75L600 357.95L950 201.75zM600 525L453.05 447.75L481.1 611.35L362.25 727.25L526.5500000000001 751.15L600 900L673.5 751.15L837.7500000000001 727.25L718.9000000000002 611.35L746.9000000000002 447.75L600 525z","horizAdvX":"1200"},"bookmark-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100z","horizAdvX":"1200"},"bookmark-line":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm13 2H6v15.432l6-3.761 6 3.761V4z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100zM900 1000H300V228.3999999999999L600 416.4499999999998L900 228.3999999999999V1000z","horizAdvX":"1200"},"boxing-fill":{"path":["M0 0h24v24H0z","M9.5 11l.144.007a1.5 1.5 0 0 1 1.35 1.349L11 12.5l-.007.144a1.5 1.5 0 0 1-1.349 1.35L9.5 14H6v2h3.5c1.7 0 3.117-1.212 3.434-2.819l.03-.18L19 13c.711 0 1.388-.149 2-.416V17a3.001 3.001 0 0 1-2 2.829V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-1.17A3.001 3.001 0 0 1 3 17v-4a2 2 0 0 1 2-2h4.5zM22 7.5V8l-.005.176a3 3 0 0 1-2.819 2.819L19 11h-6.337a3.501 3.501 0 0 0-2.955-1.994L9.5 9H5c-.729 0-1.412.195-2.001.536L3 6a4 4 0 0 1 4-4h9.5A5.5 5.5 0 0 1 22 7.5z"],"unicode":"","glyph":"M475 650L482.2 649.65A75 75 0 0 0 549.7 582.2L550 575L549.65 567.8A75 75 0 0 0 482.2 500.3L475 500H300V400H475C560 400 630.85 460.6 646.7 540.9499999999999L648.2 549.9499999999999L950 550C985.55 550 1019.3999999999997 557.4499999999999 1050 570.8000000000001V350A150.04999999999998 150.04999999999998 0 0 0 950 208.55V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V208.5000000000001A150.04999999999998 150.04999999999998 0 0 0 150 350V550A100 100 0 0 0 250 650H475zM1100 825V800L1099.75 791.2A150 150 0 0 0 958.8 650.25L950 650H633.15A175.04999999999998 175.04999999999998 0 0 1 485.4 749.7L475 750H250C213.55 750 179.4 740.25 149.95 723.2L150 900A200 200 0 0 0 350 1100H825A275 275 0 0 0 1100 825z","horizAdvX":"1200"},"boxing-line":{"path":["M0 0h24v24H0z","M16.5 2A5.5 5.5 0 0 1 22 7.5V10c0 .888-.386 1.686-1 2.235V17a3.001 3.001 0 0 1-2 2.829V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-1.17A3.001 3.001 0 0 1 3 17V6a4 4 0 0 1 4-4h9.5zm-7 9H5v6a1 1 0 0 0 .883.993L6 18h12a1 1 0 0 0 .993-.883L19 17v-4h-6.036A3.5 3.5 0 0 1 9.5 16H6v-2h3.5a1.5 1.5 0 0 0 1.493-1.356L11 12.5a1.5 1.5 0 0 0-1.356-1.493L9.5 11zm7-7H7a2 2 0 0 0-1.995 1.85L5 6v3h4.5a3.5 3.5 0 0 1 3.163 2H19a1 1 0 0 0 .993-.883L20 10V7.5a3.5 3.5 0 0 0-3.308-3.495L16.5 4z"],"unicode":"","glyph":"M825 1100A275 275 0 0 0 1100 825V700C1100 655.6 1080.7 615.7 1050 588.25V350A150.04999999999998 150.04999999999998 0 0 0 950 208.55V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V208.5000000000001A150.04999999999998 150.04999999999998 0 0 0 150 350V900A200 200 0 0 0 350 1100H825zM475 650H250V350A50 50 0 0 1 294.15 300.35L300 300H900A50 50 0 0 1 949.65 344.15L950 350V550H648.2A175 175 0 0 0 475 400H300V500H475A75 75 0 0 1 549.65 567.8L550 575A75 75 0 0 1 482.2 649.65L475 650zM825 1000H350A100 100 0 0 1 250.25 907.5L250 900V750H475A175 175 0 0 0 633.15 650H950A50 50 0 0 1 999.65 694.15L1000 700V825A175 175 0 0 1 834.6 999.75L825 1000z","horizAdvX":"1200"},"braces-fill":{"path":["M0 0h24v24H0z","M4 18v-3.7a1.5 1.5 0 0 0-1.5-1.5H2v-1.6h.5A1.5 1.5 0 0 0 4 9.7V6a3 3 0 0 1 3-3h1v2H7a1 1 0 0 0-1 1v4.1A2 2 0 0 1 4.626 12 2 2 0 0 1 6 13.9V18a1 1 0 0 0 1 1h1v2H7a3 3 0 0 1-3-3zm16-3.7V18a3 3 0 0 1-3 3h-1v-2h1a1 1 0 0 0 1-1v-4.1a2 2 0 0 1 1.374-1.9A2 2 0 0 1 18 10.1V6a1 1 0 0 0-1-1h-1V3h1a3 3 0 0 1 3 3v3.7a1.5 1.5 0 0 0 1.5 1.5h.5v1.6h-.5a1.5 1.5 0 0 0-1.5 1.5z"],"unicode":"","glyph":"M200 300V485A75 75 0 0 1 125 560H100V640H125A75 75 0 0 1 200 715V900A150 150 0 0 0 350 1050H400V950H350A50 50 0 0 1 300 900V695A100 100 0 0 0 231.3 600A100 100 0 0 0 300 505V300A50 50 0 0 1 350 250H400V150H350A150 150 0 0 0 200 300zM1000 485V300A150 150 0 0 0 850 150H800V250H850A50 50 0 0 1 900 300V505A100 100 0 0 0 968.7 600A100 100 0 0 0 900 695V900A50 50 0 0 1 850 950H800V1050H850A150 150 0 0 0 1000 900V715A75 75 0 0 1 1075 640H1100V560H1075A75 75 0 0 1 1000 485z","horizAdvX":"1200"},"braces-line":{"path":["M0 0h24v24H0z","M4 18v-3.7a1.5 1.5 0 0 0-1.5-1.5H2v-1.6h.5A1.5 1.5 0 0 0 4 9.7V6a3 3 0 0 1 3-3h1v2H7a1 1 0 0 0-1 1v4.1A2 2 0 0 1 4.626 12 2 2 0 0 1 6 13.9V18a1 1 0 0 0 1 1h1v2H7a3 3 0 0 1-3-3zm16-3.7V18a3 3 0 0 1-3 3h-1v-2h1a1 1 0 0 0 1-1v-4.1a2 2 0 0 1 1.374-1.9A2 2 0 0 1 18 10.1V6a1 1 0 0 0-1-1h-1V3h1a3 3 0 0 1 3 3v3.7a1.5 1.5 0 0 0 1.5 1.5h.5v1.6h-.5a1.5 1.5 0 0 0-1.5 1.5z"],"unicode":"","glyph":"M200 300V485A75 75 0 0 1 125 560H100V640H125A75 75 0 0 1 200 715V900A150 150 0 0 0 350 1050H400V950H350A50 50 0 0 1 300 900V695A100 100 0 0 0 231.3 600A100 100 0 0 0 300 505V300A50 50 0 0 1 350 250H400V150H350A150 150 0 0 0 200 300zM1000 485V300A150 150 0 0 0 850 150H800V250H850A50 50 0 0 1 900 300V505A100 100 0 0 0 968.7 600A100 100 0 0 0 900 695V900A50 50 0 0 1 850 950H800V1050H850A150 150 0 0 0 1000 900V715A75 75 0 0 1 1075 640H1100V560H1075A75 75 0 0 1 1000 485z","horizAdvX":"1200"},"brackets-fill":{"path":["M0 0h24v24H0z","M9 3v2H6v14h3v2H4V3h5zm6 0h5v18h-5v-2h3V5h-3V3z"],"unicode":"","glyph":"M450 1050V950H300V250H450V150H200V1050H450zM750 1050H1000V150H750V250H900V950H750V1050z","horizAdvX":"1200"},"brackets-line":{"path":["M0 0h24v24H0z","M9 3v2H6v14h3v2H4V3h5zm6 0h5v18h-5v-2h3V5h-3V3z"],"unicode":"","glyph":"M450 1050V950H300V250H450V150H200V1050H450zM750 1050H1000V150H750V250H900V950H750V1050z","horizAdvX":"1200"},"briefcase-2-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm10 8v-3h-2v3H9v-3H7v3H4v6h16v-6h-3zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM850 550V700H750V550H450V700H350V550H200V250H1000V550H850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-2-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm13 8H4v6h16v-6zm0-6H4v4h3V9h2v2h6V9h2v2h3V7zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM1000 550H200V250H1000V550zM1000 850H200V650H350V750H450V650H750V750H850V650H1000V850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-3-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm10 2v5h3V7h-3zm-2 0H9v5h6V7zM7 7H4v5h3V7zm2-4v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM850 850V600H1000V850H850zM750 850H450V600H750V850zM350 850H200V600H350V850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-3-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm8 2H9v12h6V7zM7 7H4v12h3V7zm10 0v12h3V7h-3zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM750 850H450V250H750V850zM350 850H200V250H350V850zM850 850V250H1000V850H850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-4-fill":{"path":["M0 0h24v24H0z","M9 13v3h6v-3h7v7a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7h7zm2-2h2v3h-2v-3zM7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v5h-7V9H9v2H2V6a1 1 0 0 1 1-1h4zm2-2v2h6V3H9z"],"unicode":"","glyph":"M450 550V400H750V550H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V550H450zM550 650H650V500H550V650zM350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V650H750V750H450V650H100V900A50 50 0 0 0 150 950H350zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-4-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm2 8H4v6h16v-6h-5v3H9v-3zm11-6H4v4h5V9h6v2h5V7zm-9 4v3h2v-3h-2zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM450 550H200V250H1000V550H750V400H450V550zM1000 850H200V650H450V750H750V650H1000V850zM550 650V500H650V650H550zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-5-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm-1 8V7H4v6h2zm2-6v6h3v-2h2v2h3V7H8zm10 6h2V7h-2v6zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM300 550V850H200V550H300zM400 850V550H550V650H650V550H800V850H400zM900 550H1000V850H900V550zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-5-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm9 10h-3v1h-2v-1H8v4h8v-4zM8 7v6h3v-1h2v1h3V7H8zm-2 6V7H4v6h2zm12 0h2V7h-2v6zM6 15H4v4h2v-4zm12 0v4h2v-4h-2zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM800 450H650V400H550V450H400V250H800V450zM400 850V550H550V600H650V550H800V850H400zM300 550V850H200V550H300zM900 550H1000V850H900V550zM300 450H200V250H300V450zM900 450V250H1000V450H900zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zM4 15v4h16v-4H4zm7-4v2h2v-2h-2zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM200 450V250H1000V450H200zM550 650V550H650V650H550zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zM4 16v3h16v-3H4zm0-2h16V7H4v7zM9 3v2h6V3H9zm2 8h2v2h-2v-2z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM200 400V250H1000V400H200zM200 500H1000V850H200V500zM450 1050V950H750V1050H450zM550 650H650V550H550V650z","horizAdvX":"1200"},"bring-forward":{"path":["M0 0H24V24H0z","M14 3c.552 0 1 .448 1 1v5h5c.552 0 1 .448 1 1v10c0 .552-.448 1-1 1H10c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h10zm-1 2H5v8h8V5z"],"unicode":"","glyph":"M700 1050C727.6 1050 750 1027.6 750 1000V750H1000C1027.6 750 1050 727.5999999999999 1050 700V200C1050 172.4000000000001 1027.6 150 1000 150H500C472.4 150 450 172.4000000000001 450 200V450H200C172.4 450 150 472.4 150 500V1000C150 1027.6 172.4 1050 200 1050H700zM650 950H250V550H650V950z","horizAdvX":"1200"},"bring-to-front":{"path":["M0 0H24V24H0z","M11 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v5h2c.552 0 1 .448 1 1v7c0 .552-.448 1-1 1h-7c-.552 0-1-.448-1-1v-2H7c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7zm5 5H8v8h8V8z"],"unicode":"","glyph":"M550 1050C577.6 1050 600 1027.6 600 1000V900H850C877.6 900 900 877.5999999999999 900 850V600H1000C1027.6 600 1050 577.6 1050 550V200C1050 172.4000000000001 1027.6 150 1000 150H650C622.4 150 600 172.4000000000001 600 200V300H350C322.4000000000001 300 300 322.4 300 350V600H200C172.4 600 150 622.4 150 650V1000C150 1027.6 172.4 1050 200 1050H550zM800 800H400V400H800V800z","horizAdvX":"1200"},"broadcast-fill":{"path":["M0 0h24v24H0z","M4.929 2.929l1.414 1.414A7.975 7.975 0 0 0 4 10c0 2.21.895 4.21 2.343 5.657L4.93 17.07A9.969 9.969 0 0 1 2 10a9.969 9.969 0 0 1 2.929-7.071zm14.142 0A9.969 9.969 0 0 1 22 10a9.969 9.969 0 0 1-2.929 7.071l-1.414-1.414A7.975 7.975 0 0 0 20 10c0-2.21-.895-4.21-2.343-5.657L19.07 2.93zM7.757 5.757l1.415 1.415A3.987 3.987 0 0 0 8 10c0 1.105.448 2.105 1.172 2.828l-1.415 1.415A5.981 5.981 0 0 1 6 10c0-1.657.672-3.157 1.757-4.243zm8.486 0A5.981 5.981 0 0 1 18 10a5.981 5.981 0 0 1-1.757 4.243l-1.415-1.415A3.987 3.987 0 0 0 16 10a3.987 3.987 0 0 0-1.172-2.828l1.415-1.415zM12 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 2c.58 0 1.077.413 1.184.983L14.5 22h-5l1.316-7.017c.107-.57.604-.983 1.184-.983z"],"unicode":"","glyph":"M246.45 1053.55L317.15 982.85A398.74999999999994 398.74999999999994 0 0 1 200 700C200 589.5 244.75 489.5 317.15 417.15L246.5 346.5A498.45 498.45 0 0 0 100 700A498.45 498.45 0 0 0 246.45 1053.55zM953.55 1053.55A498.45 498.45 0 0 0 1100 700A498.45 498.45 0 0 0 953.55 346.4500000000001L882.85 417.1500000000001A398.74999999999994 398.74999999999994 0 0 1 1000 700C1000 810.5 955.25 910.5 882.85 982.85L953.5 1053.5zM387.85 912.15L458.6 841.4000000000001A199.35000000000002 199.35000000000002 0 0 1 400 700C400 644.75 422.4000000000001 594.75 458.6 558.6L387.85 487.85A299.05 299.05 0 0 0 300 700C300 782.85 333.6 857.85 387.85 912.15zM812.1500000000001 912.15A299.05 299.05 0 0 0 900 700A299.05 299.05 0 0 0 812.15 487.85L741.4 558.6A199.35000000000002 199.35000000000002 0 0 1 800 700A199.35000000000002 199.35000000000002 0 0 1 741.4 841.4L812.15 912.15zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600zM600 500C629 500 653.85 479.35 659.1999999999999 450.85L725 100H475L540.8000000000001 450.85C546.15 479.35 571 500 600 500z","horizAdvX":"1200"},"broadcast-line":{"path":["M0 0h24v24H0z","M4.929 2.929l1.414 1.414A7.975 7.975 0 0 0 4 10c0 2.21.895 4.21 2.343 5.657L4.93 17.07A9.969 9.969 0 0 1 2 10a9.969 9.969 0 0 1 2.929-7.071zm14.142 0A9.969 9.969 0 0 1 22 10a9.969 9.969 0 0 1-2.929 7.071l-1.414-1.414A7.975 7.975 0 0 0 20 10c0-2.21-.895-4.21-2.343-5.657L19.07 2.93zM7.757 5.757l1.415 1.415A3.987 3.987 0 0 0 8 10c0 1.105.448 2.105 1.172 2.828l-1.415 1.415A5.981 5.981 0 0 1 6 10c0-1.657.672-3.157 1.757-4.243zm8.486 0A5.981 5.981 0 0 1 18 10a5.981 5.981 0 0 1-1.757 4.243l-1.415-1.415A3.987 3.987 0 0 0 16 10a3.987 3.987 0 0 0-1.172-2.828l1.415-1.415zM12 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-1 2h2v8h-2v-8z"],"unicode":"","glyph":"M246.45 1053.55L317.15 982.85A398.74999999999994 398.74999999999994 0 0 1 200 700C200 589.5 244.75 489.5 317.15 417.15L246.5 346.5A498.45 498.45 0 0 0 100 700A498.45 498.45 0 0 0 246.45 1053.55zM953.55 1053.55A498.45 498.45 0 0 0 1100 700A498.45 498.45 0 0 0 953.55 346.4500000000001L882.85 417.1500000000001A398.74999999999994 398.74999999999994 0 0 1 1000 700C1000 810.5 955.25 910.5 882.85 982.85L953.5 1053.5zM387.85 912.15L458.6 841.4000000000001A199.35000000000002 199.35000000000002 0 0 1 400 700C400 644.75 422.4000000000001 594.75 458.6 558.6L387.85 487.85A299.05 299.05 0 0 0 300 700C300 782.85 333.6 857.85 387.85 912.15zM812.1500000000001 912.15A299.05 299.05 0 0 0 900 700A299.05 299.05 0 0 0 812.15 487.85L741.4 558.6A199.35000000000002 199.35000000000002 0 0 1 800 700A199.35000000000002 199.35000000000002 0 0 1 741.4 841.4L812.15 912.15zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600zM550 500H650V100H550V500z","horizAdvX":"1200"},"brush-2-fill":{"path":["M0 0h24v24H0z","M16.536 15.95l2.12-2.122-3.181-3.182 3.535-3.535-2.12-2.121-3.536 3.535-3.182-3.182L8.05 7.464l8.486 8.486zM13.354 5.697l2.828-2.829a1 1 0 0 1 1.414 0l3.536 3.536a1 1 0 0 1 0 1.414l-2.829 2.828 2.475 2.475a1 1 0 0 1 0 1.415L13 22.314a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l7.778-7.778a1 1 0 0 1 1.415 0l2.475 2.475z"],"unicode":"","glyph":"M826.8000000000001 402.5L932.8 508.6L773.7500000000001 667.7L950.5000000000002 844.45L844.5 950.5000000000002L667.7 773.75L508.6 932.8500000000003L402.5000000000001 826.8L826.8000000000001 402.5zM667.6999999999999 915.15L809.0999999999999 1056.6A50 50 0 0 0 879.8 1056.6L1056.6000000000001 879.8A50 50 0 0 0 1056.6000000000001 809.1L915.15 667.7L1038.9 543.95A50 50 0 0 0 1038.9 473.2000000000002L650 84.3A50 50 0 0 0 579.3000000000001 84.3L84.3 579.3000000000001A50 50 0 0 0 84.3 650L473.1999999999999 1038.9A50 50 0 0 0 543.9499999999999 1038.9L667.6999999999998 915.15z","horizAdvX":"1200"},"brush-2-line":{"path":["M0 0h24v24H0z","M16.536 15.95l2.12-2.122-3.181-3.182 3.535-3.535-2.12-2.121-3.536 3.535-3.182-3.182L8.05 7.464l8.486 8.486zm-1.415 1.414L6.636 8.879l-2.828 2.828 8.485 8.485 2.828-2.828zM13.354 5.697l2.828-2.829a1 1 0 0 1 1.414 0l3.536 3.536a1 1 0 0 1 0 1.414l-2.829 2.828 2.475 2.475a1 1 0 0 1 0 1.415L13 22.314a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l7.778-7.778a1 1 0 0 1 1.415 0l2.475 2.475z"],"unicode":"","glyph":"M826.8000000000001 402.5L932.8 508.6L773.7500000000001 667.7L950.5000000000002 844.45L844.5 950.5000000000002L667.7 773.75L508.6 932.8500000000003L402.5000000000001 826.8L826.8000000000001 402.5zM756.0500000000001 331.8L331.8 756.05L190.4 614.6500000000001L614.65 190.4L756.05 331.8zM667.6999999999999 915.15L809.0999999999999 1056.6A50 50 0 0 0 879.8 1056.6L1056.6000000000001 879.8A50 50 0 0 0 1056.6000000000001 809.1L915.15 667.7L1038.9 543.95A50 50 0 0 0 1038.9 473.2000000000002L650 84.3A50 50 0 0 0 579.3000000000001 84.3L84.3 579.3000000000001A50 50 0 0 0 84.3 650L473.1999999999999 1038.9A50 50 0 0 0 543.9499999999999 1038.9L667.6999999999998 915.15z","horizAdvX":"1200"},"brush-3-fill":{"path":["M0 0h24v24H0z","M20 11V8h-6V4h-4v4H4v3h16zm1 2v8a1 1 0 0 1-1 1H10v-6H8v6H4a1 1 0 0 1-1-1v-8H2V7a1 1 0 0 1 1-1h5V3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v3h5a1 1 0 0 1 1 1v6h-1z"],"unicode":"","glyph":"M1000 650V800H700V1000H500V800H200V650H1000zM1050 550V150A50 50 0 0 0 1000 100H500V400H400V100H200A50 50 0 0 0 150 150V550H100V850A50 50 0 0 0 150 900H400V1050A50 50 0 0 0 450 1100H750A50 50 0 0 0 800 1050V900H1050A50 50 0 0 0 1100 850V550H1050z","horizAdvX":"1200"},"brush-3-line":{"path":["M0 0h24v24H0z","M8 20v-5h2v5h9v-7H5v7h3zm-4-9h16V8h-6V4h-4v4H4v3zM3 21v-8H2V7a1 1 0 0 1 1-1h5V3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v3h5a1 1 0 0 1 1 1v6h-1v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z"],"unicode":"","glyph":"M400 200V450H500V200H950V550H250V200H400zM200 650H1000V800H700V1000H500V800H200V650zM150 150V550H100V850A50 50 0 0 0 150 900H400V1050A50 50 0 0 0 450 1100H750A50 50 0 0 0 800 1050V900H1050A50 50 0 0 0 1100 850V550H1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150z","horizAdvX":"1200"},"brush-4-fill":{"path":["M0 0h24v24H0z","M20 16H4v2h16v-2zM3 14V4a1 1 0 0 1 1-1h3v8.273h2V3h11a1 1 0 0 1 1 1v10h1v5a1 1 0 0 1-1 1h-8v3h-2v-3H3a1 1 0 0 1-1-1v-5h1z"],"unicode":"","glyph":"M1000 400H200V300H1000V400zM150 500V1000A50 50 0 0 0 200 1050H350V636.35H450V1050H1000A50 50 0 0 0 1050 1000V500H1100V250A50 50 0 0 0 1050 200H650V50H550V200H150A50 50 0 0 0 100 250V500H150z","horizAdvX":"1200"},"brush-4-line":{"path":["M0 0h24v24H0z","M9 5v6.273H7V5H5v9h14V5H9zm11 11H4v2h16v-2zM3 14V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10h1v5a1 1 0 0 1-1 1h-8v3h-2v-3H3a1 1 0 0 1-1-1v-5h1z"],"unicode":"","glyph":"M450 950V636.35H350V950H250V500H950V950H450zM1000 400H200V300H1000V400zM150 500V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V500H1100V250A50 50 0 0 0 1050 200H650V50H550V200H150A50 50 0 0 0 100 250V500H150z","horizAdvX":"1200"},"brush-fill":{"path":["M0 0h24v24H0z","M13.289 6.216l4.939-3.841a1 1 0 0 1 1.32.082l2.995 2.994a1 1 0 0 1 .082 1.321l-3.84 4.938a7.505 7.505 0 0 1-7.283 9.292C8 21.002 3.5 19.5 1 18c3.98-3 3.047-4.81 3.5-6.5 1.058-3.95 4.842-6.257 8.789-5.284zm3.413 1.879c.065.063.13.128.193.194l1.135 1.134 2.475-3.182-1.746-1.746-3.182 2.475 1.125 1.125z"],"unicode":"","glyph":"M664.4499999999999 889.2L911.4 1081.25A50 50 0 0 0 977.4 1077.15L1127.15 927.45A50 50 0 0 0 1131.2500000000002 861.4L939.2500000000002 614.5A375.25 375.25 0 0 0 575.1000000000001 149.8999999999999C400 149.9000000000001 175 225 50 300C249.0000000000001 450 202.35 540.4999999999999 225 625C277.9 822.5 467.0999999999999 937.85 664.4499999999999 889.2zM835.0999999999999 795.25C838.35 792.0999999999999 841.5999999999999 788.8499999999999 844.75 785.55L901.5 728.8499999999999L1025.2500000000002 887.9499999999999L937.9500000000002 975.25L778.8500000000001 851.5L835.1000000000003 795.25z","horizAdvX":"1200"},"brush-line":{"path":["M0 0h24v24H0z","M15.456 9.678l-.142-.142a5.475 5.475 0 0 0-2.39-1.349c-2.907-.778-5.699.869-6.492 3.83-.043.16-.066.34-.104.791-.154 1.87-.594 3.265-1.8 4.68 2.26.888 4.938 1.514 6.974 1.514a5.505 5.505 0 0 0 5.31-4.078 5.497 5.497 0 0 0-1.356-5.246zM13.29 6.216l4.939-3.841a1 1 0 0 1 1.32.082l2.995 2.994a1 1 0 0 1 .082 1.321l-3.84 4.938a7.505 7.505 0 0 1-7.283 9.292C8 21.002 3.5 19.5 1 18c3.98-3 3.047-4.81 3.5-6.5 1.058-3.95 4.842-6.257 8.789-5.284zm3.413 1.879c.065.063.13.128.193.194l1.135 1.134 2.475-3.182-1.746-1.746-3.182 2.475 1.125 1.125z"],"unicode":"","glyph":"M772.8 716.0999999999999L765.7 723.1999999999999A273.75 273.75 0 0 1 646.1999999999999 790.6499999999999C500.85 829.55 361.25 747.1999999999999 321.6 599.15C319.45 591.15 318.3 582.15 316.4 559.5999999999999C308.7 466.0999999999999 286.7 396.35 226.4 325.6C339.4 281.2 473.3 249.9000000000001 575.0999999999999 249.9000000000001A275.25 275.25 0 0 1 840.5999999999999 453.8000000000001A274.84999999999997 274.84999999999997 0 0 1 772.7999999999998 716.1zM664.5 889.2L911.45 1081.25A50 50 0 0 0 977.45 1077.15L1127.2 927.45A50 50 0 0 0 1131.3 861.4L939.3 614.5A375.25 375.25 0 0 0 575.15 149.8999999999999C400 149.9000000000001 175 225 50 300C249.0000000000001 450 202.35 540.4999999999999 225 625C277.9 822.5 467.0999999999999 937.85 664.4499999999999 889.2zM835.15 795.25C838.4000000000001 792.0999999999999 841.6499999999999 788.8499999999999 844.8000000000001 785.55L901.55 728.8499999999999L1025.3000000000002 887.9499999999999L938.0000000000002 975.25L778.9000000000002 851.5L835.1500000000001 795.25z","horizAdvX":"1200"},"bubble-chart-fill":{"path":["M0 0L24 0 24 24 0 24z","M16 16c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3zM6 12c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm8.5-10C17.538 2 20 4.462 20 7.5S17.538 13 14.5 13 9 10.538 9 7.5 11.462 2 14.5 2z"],"unicode":"","glyph":"M800 400C882.85 400 950 332.85 950 250S882.85 100 800 100S650 167.1500000000001 650 250S717.15 400 800 400zM300 600C410.5000000000001 600 500 510.5 500 400S410.5000000000001 200 300 200S100 289.5 100 400S189.5 600 300 600zM725 1100C876.9 1100 1000 976.9 1000 825S876.9 550 725 550S450 673.1 450 825S573.1 1100 725 1100z","horizAdvX":"1200"},"bubble-chart-line":{"path":["M0 0L24 0 24 24 0 24z","M16 16c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3zM6 12c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm10 6c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM6 14c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm8.5-12C17.538 2 20 4.462 20 7.5S17.538 13 14.5 13 9 10.538 9 7.5 11.462 2 14.5 2zm0 2C12.567 4 11 5.567 11 7.5s1.567 3.5 3.5 3.5S18 9.433 18 7.5 16.433 4 14.5 4z"],"unicode":"","glyph":"M800 400C882.85 400 950 332.85 950 250S882.85 100 800 100S650 167.1500000000001 650 250S717.15 400 800 400zM300 600C410.5000000000001 600 500 510.5 500 400S410.5000000000001 200 300 200S100 289.5 100 400S189.5 600 300 600zM800 300C772.4 300 750 277.6 750 250S772.4 200 800 200S850 222.4 850 250S827.6 300 800 300zM300 500C244.75 500 200 455.25 200 400S244.75 300 300 300S400 344.75 400 400S355.25 500 300 500zM725 1100C876.9 1100 1000 976.9 1000 825S876.9 550 725 550S450 673.1 450 825S573.1 1100 725 1100zM725 1000C628.35 1000 550 921.65 550 825S628.35 650 725 650S900 728.35 900 825S821.65 1000 725 1000z","horizAdvX":"1200"},"bug-2-fill":{"path":["M0 0h24v24H0z","M5.07 16A7.06 7.06 0 0 1 5 15v-1H3v-2h2v-1c0-.34.024-.673.07-1H3V8h2.674a7.03 7.03 0 0 1 2.84-3.072l-1.05-1.05L8.88 2.465l1.683 1.684a7.03 7.03 0 0 1 2.876 0l1.683-1.684 1.415 1.415-1.05 1.05A7.03 7.03 0 0 1 18.326 8H21v2h-2.07c.046.327.07.66.07 1v1h2v2h-2v1c0 .34-.024.673-.07 1H21v2h-2.674a7 7 0 0 1-12.652 0H3v-2h2.07zM9 10v2h6v-2H9zm0 4v2h6v-2H9z"],"unicode":"","glyph":"M253.5 400A353 353 0 0 0 250 450V500H150V600H250V650C250 667 251.2 683.65 253.5 700H150V800H283.7A351.5 351.5 0 0 0 425.7 953.6L373.2 1006.1L444.0000000000001 1076.75L528.15 992.55A351.5 351.5 0 0 0 671.95 992.55L756.1 1076.75L826.8499999999999 1006L774.3499999999999 953.5A351.5 351.5 0 0 0 916.3 800H1050V700H946.5C948.8 683.65 950 667 950 650V600H1050V500H950V450C950 433 948.8 416.35 946.5 400H1050V300H916.3A350 350 0 0 0 283.7000000000001 300H150V400H253.5zM450 700V600H750V700H450zM450 500V400H750V500H450z","horizAdvX":"1200"},"bug-2-line":{"path":["M0 0h24v24H0z","M10.562 4.148a7.03 7.03 0 0 1 2.876 0l1.683-1.684 1.415 1.415-1.05 1.05A7.03 7.03 0 0 1 18.326 8H21v2h-2.07c.046.327.07.66.07 1v1h2v2h-2v1c0 .34-.024.673-.07 1H21v2h-2.674a7 7 0 0 1-12.652 0H3v-2h2.07A7.06 7.06 0 0 1 5 15v-1H3v-2h2v-1c0-.34.024-.673.07-1H3V8h2.674a7.03 7.03 0 0 1 2.84-3.072l-1.05-1.05L8.88 2.465l1.683 1.684zM12 6a5 5 0 0 0-5 5v4a5 5 0 0 0 10 0v-4a5 5 0 0 0-5-5zm-3 8h6v2H9v-2zm0-4h6v2H9v-2z"],"unicode":"","glyph":"M528.1 992.6A351.5 351.5 0 0 0 671.9 992.6L756.05 1076.8L826.7999999999998 1006.05L774.2999999999998 953.55A351.5 351.5 0 0 0 916.3 800H1050V700H946.5C948.8 683.65 950 667 950 650V600H1050V500H950V450C950 433 948.8 416.35 946.5 400H1050V300H916.3A350 350 0 0 0 283.7000000000001 300H150V400H253.5A353 353 0 0 0 250 450V500H150V600H250V650C250 667 251.2 683.65 253.5 700H150V800H283.7A351.5 351.5 0 0 0 425.7 953.6L373.2 1006.1L444.0000000000001 1076.75L528.15 992.55zM600 900A250 250 0 0 1 350 650V450A250 250 0 0 1 850 450V650A250 250 0 0 1 600 900zM450 500H750V400H450V500zM450 700H750V600H450V700z","horizAdvX":"1200"},"bug-fill":{"path":["M0 0h24v24H0z","M6.056 8.3a7.01 7.01 0 0 1 .199-.3h11.49c.069.098.135.199.199.3l2.02-1.166 1 1.732-2.213 1.278c.162.59.249 1.213.249 1.856v1h3v2h-3c0 .953-.19 1.862-.536 2.69l2.5 1.444-1 1.732-2.526-1.458A6.992 6.992 0 0 1 13 21.929V14h-2v7.93a6.992 6.992 0 0 1-4.438-2.522l-2.526 1.458-1-1.732 2.5-1.443A6.979 6.979 0 0 1 5 15H2v-2h3v-1c0-.643.087-1.265.249-1.856L3.036 8.866l1-1.732L6.056 8.3zM8 6a4 4 0 1 1 8 0H8z"],"unicode":"","glyph":"M302.8 785A350.5 350.5 0 0 0 312.75 800H887.25C890.7 795.0999999999999 894.0000000000001 790.05 897.2000000000002 785L998.2000000000002 843.3L1048.2 756.7L937.55 692.8C945.65 663.3 950 632.1500000000001 950 600V550H1100V450H950C950 402.35 940.4999999999998 356.8999999999999 923.2 315.4999999999999L1048.1999999999998 243.3L998.2 156.7000000000001L871.9 229.5999999999999A349.6 349.6 0 0 0 650 103.5500000000002V500H550V103.5A349.6 349.6 0 0 0 328.1 229.5999999999999L201.8 156.7000000000001L151.8 243.3L276.8 315.4500000000001A348.95 348.95 0 0 0 250 450H100V550H250V600C250 632.1500000000001 254.35 663.25 262.45 692.8L151.8 756.7L201.8 843.3L302.8 785zM400 900A200 200 0 1 0 800 900H400z","horizAdvX":"1200"},"bug-line":{"path":["M0 0h24v24H0z","M13 19.9a5.002 5.002 0 0 0 4-4.9v-3a4.98 4.98 0 0 0-.415-2h-9.17A4.98 4.98 0 0 0 7 12v3a5.002 5.002 0 0 0 4 4.9V14h2v5.9zm-7.464-2.21A6.979 6.979 0 0 1 5 15H2v-2h3v-1c0-.643.087-1.265.249-1.856L3.036 8.866l1-1.732L6.056 8.3a7.01 7.01 0 0 1 .199-.3h11.49c.069.098.135.199.199.3l2.02-1.166 1 1.732-2.213 1.278c.162.59.249 1.213.249 1.856v1h3v2h-3c0 .953-.19 1.862-.536 2.69l2.5 1.444-1 1.732-2.526-1.458A6.986 6.986 0 0 1 12 22a6.986 6.986 0 0 1-5.438-2.592l-2.526 1.458-1-1.732 2.5-1.443zM8 6a4 4 0 1 1 8 0H8z"],"unicode":"","glyph":"M650 205.0000000000001A250.09999999999997 250.09999999999997 0 0 1 850 450.0000000000001V600.0000000000001A249.00000000000003 249.00000000000003 0 0 1 829.25 700.0000000000001H370.7500000000001A249.00000000000003 249.00000000000003 0 0 1 350 600V450A250.09999999999997 250.09999999999997 0 0 1 550 205.0000000000001V500H650V205.0000000000001zM276.8 315.5000000000001A348.95 348.95 0 0 0 250 450H100V550H250V600C250 632.1500000000001 254.35 663.25 262.45 692.8L151.8 756.7L201.8 843.3L302.8 785A350.5 350.5 0 0 0 312.75 800H887.25C890.7 795.0999999999999 894.0000000000001 790.05 897.2000000000002 785L998.2000000000002 843.3L1048.2 756.7L937.55 692.8C945.65 663.3 950 632.1500000000001 950 600V550H1100V450H950C950 402.35 940.4999999999998 356.8999999999999 923.2 315.4999999999999L1048.1999999999998 243.3L998.2 156.7000000000001L871.9 229.5999999999999A349.29999999999995 349.29999999999995 0 0 0 600 100A349.29999999999995 349.29999999999995 0 0 0 328.1 229.5999999999999L201.8 156.7000000000001L151.8 243.3L276.8 315.4500000000001zM400 900A200 200 0 1 0 800 900H400z","horizAdvX":"1200"},"building-2-fill":{"path":["M0 0h24v24H0z","M12 19h2V6l6.394 2.74a1 1 0 0 1 .606.92V19h2v2H1v-2h2V5.65a1 1 0 0 1 .594-.914l7.703-3.424A.5.5 0 0 1 12 1.77V19z"],"unicode":"","glyph":"M600 250H700V900L1019.7 763A50 50 0 0 0 1050 717V250H1150V150H50V250H150V917.5A50 50 0 0 0 179.7 963.2L564.85 1134.3999999999999A25 25 0 0 0 600 1111.5V250z","horizAdvX":"1200"},"building-2-line":{"path":["M0 0h24v24H0z","M3 19V5.7a1 1 0 0 1 .658-.94l9.671-3.516a.5.5 0 0 1 .671.47v4.953l6.316 2.105a1 1 0 0 1 .684.949V19h2v2H1v-2h2zm2 0h7V3.855L5 6.401V19zm14 0v-8.558l-5-1.667V19h5z"],"unicode":"","glyph":"M150 250V915A50 50 0 0 0 182.9 962L666.4499999999999 1137.8A25 25 0 0 0 699.9999999999999 1114.3V866.6500000000001L1015.8 761.4A50 50 0 0 0 1050 713.95V250H1150V150H50V250H150zM250 250H600V1007.25L250 879.95V250zM950 250V677.9L700 761.25V250H950z","horizAdvX":"1200"},"building-3-fill":{"path":["M0 0h24v24H0z","M10 10.111V1l11 6v14H3V7z"],"unicode":"","glyph":"M500 694.45V1150L1050 850V150H150V850z","horizAdvX":"1200"},"building-3-line":{"path":["M0 0h24v24H0z","M10 10.111V1l11 6v14H3V7l7 3.111zm2-5.742v8.82l-7-3.111V19h14V8.187L12 4.37z"],"unicode":"","glyph":"M500 694.45V1150L1050 850V150H150V850L500 694.45zM600 981.55V540.55L250 696.1V250H950V790.6500000000001L600 981.5z","horizAdvX":"1200"},"building-4-fill":{"path":["M0 0h24v24H0z","M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM8 11v2h3v-2H8zm0-4v2h3V7H8zm0 8v2h3v-2H8zm5 0v2h3v-2h-3zm0-4v2h3v-2h-3zm0-4v2h3V7h-3z"],"unicode":"","glyph":"M1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM400 650V550H550V650H400zM400 850V750H550V850H400zM400 450V350H550V450H400zM650 450V350H800V450H650zM650 650V550H800V650H650zM650 850V750H800V850H650z","horizAdvX":"1200"},"building-4-line":{"path":["M0 0h24v24H0z","M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zm-2 0V4H5v16h14zM8 11h3v2H8v-2zm0-4h3v2H8V7zm0 8h3v2H8v-2zm5 0h3v2h-3v-2zm0-4h3v2h-3v-2zm0-4h3v2h-3V7z"],"unicode":"","glyph":"M1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM950 200V1000H250V200H950zM400 650H550V550H400V650zM400 850H550V750H400V850zM400 450H550V350H400V450zM650 450H800V350H650V450zM650 650H800V550H650V650zM650 850H800V750H650V850z","horizAdvX":"1200"},"building-fill":{"path":["M0 0h24v24H0z","M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h2V9h3a1 1 0 0 1 1 1v9zM7 11v2h4v-2H7zm0-4v2h4V7H7z"],"unicode":"","glyph":"M1050 250H1150V150H50V250H150V1000A50 50 0 0 0 200 1050H700A50 50 0 0 0 750 1000V250H850V750H1000A50 50 0 0 0 1050 700V250zM350 650V550H550V650H350zM350 850V750H550V850H350z","horizAdvX":"1200"},"building-line":{"path":["M0 0h24v24H0z","M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h4v-8h-2V9h3a1 1 0 0 1 1 1v9zM5 5v14h8V5H5zm2 6h4v2H7v-2zm0-4h4v2H7V7z"],"unicode":"","glyph":"M1050 250H1150V150H50V250H150V1000A50 50 0 0 0 200 1050H700A50 50 0 0 0 750 1000V250H950V650H850V750H1000A50 50 0 0 0 1050 700V250zM250 950V250H650V950H250zM350 650H550V550H350V650zM350 850H550V750H350V850z","horizAdvX":"1200"},"bus-2-fill":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v9a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-1zM5 5v7h14V5H5zm2.5 13a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H200A50 50 0 0 0 150 150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V150A50 50 0 0 0 1000 100H900A50 50 0 0 0 850 150V200zM250 950V600H950V950H250zM375 300A75 75 0 1 1 375 450A75 75 0 0 1 375 300zM825 300A75 75 0 1 1 825 450A75 75 0 0 1 825 300z","horizAdvX":"1200"},"bus-2-line":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v9a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-1zM5 5v6h14V5H5zm14 8H5v5h14v-5zM7.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H200A50 50 0 0 0 150 150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V150A50 50 0 0 0 1000 100H900A50 50 0 0 0 850 150V200zM250 950V650H950V950H250zM950 550H250V300H950V550zM375 350A75 75 0 1 0 375 500A75 75 0 0 0 375 350zM825 350A75 75 0 1 0 825 500A75 75 0 0 0 825 350z","horizAdvX":"1200"},"bus-fill":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zM5 5v9h14V5H5zm0 11v2h4v-2H5zm10 0v2h4v-2h-4z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200zM250 950V500H950V950H250zM250 400V300H450V400H250zM750 400V300H950V400H750z","horizAdvX":"1200"},"bus-line":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm2-8V5H5v7h14zm0 2H5v4h14v-4zM6 15h4v2H6v-2zm8 0h4v2h-4v-2z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200zM950 600V950H250V600H950zM950 500H250V300H950V500zM300 450H500V350H300V450zM700 450H900V350H700V450z","horizAdvX":"1200"},"bus-wifi-fill":{"path":["M0 0h24v24H0z","M12 3v2H5v9h14v-2h2v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h7zM9 16H5v2h4v-2zm10 0h-4v2h4v-2zm-.5-15a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V950H250V500H950V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H600zM450 400H250V300H450V400zM950 400H750V300H950V400zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"bus-wifi-line":{"path":["M0 0h24v24H0z","M12 3v2H5v7h16v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h7zm7 11H5v4h14v-4zm-9 1v2H6v-2h4zm8 0v2h-4v-2h4zm.5-14a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V950H250V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H600zM950 500H250V300H950V500zM500 450V350H300V450H500zM900 450V350H700V450H900zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"cactus-fill":{"path":["M0 0H24V24H0z","M12 2c2.21 0 4 1.79 4 4v9h1c.55 0 1-.45 1-1V8c0-.552.448-1 1-1s1 .448 1 1v6c0 1.657-1.343 3-3 3h-1v3h2v2H6v-2h2v-6H7c-1.657 0-3-1.343-3-3V9c0-.552.448-1 1-1s1 .448 1 1v2c0 .55.45 1 1 1h1V6c0-2.21 1.79-4 4-4z"],"unicode":"","glyph":"M600 1100C710.5 1100 800 1010.5 800 900V450H850C877.5 450 900 472.5 900 500V800C900 827.5999999999999 922.4 850 950 850S1000 827.5999999999999 1000 800V500C1000 417.15 932.85 350 850 350H800V200H900V100H300V200H400V500H350C267.15 500 200 567.15 200 650V750C200 777.5999999999999 222.4 800 250 800S300 777.5999999999999 300 750V650C300 622.5 322.5 600 350 600H400V900C400 1010.5 489.4999999999999 1100 600 1100z","horizAdvX":"1200"},"cactus-line":{"path":["M0 0H24V24H0z","M12 2c2.21 0 4 1.79 4 4v9h1c.55 0 1-.45 1-1V8c0-.552.448-1 1-1s1 .448 1 1v6c0 1.66-1.34 3-3 3h-1v3h2v2H6v-2h2v-6H7c-1.657 0-3-1.343-3-3V9c0-.552.448-1 1-1s1 .448 1 1v2c0 .55.45 1 1 1h1V6c0-2.21 1.79-4 4-4zm0 2c-1.105 0-2 .895-2 2v14h4V6c0-1.105-.895-2-2-2z"],"unicode":"","glyph":"M600 1100C710.5 1100 800 1010.5 800 900V450H850C877.5 450 900 472.5 900 500V800C900 827.5999999999999 922.4 850 950 850S1000 827.5999999999999 1000 800V500C1000 417 933 350 850 350H800V200H900V100H300V200H400V500H350C267.15 500 200 567.15 200 650V750C200 777.5999999999999 222.4 800 250 800S300 777.5999999999999 300 750V650C300 622.5 322.5 600 350 600H400V900C400 1010.5 489.4999999999999 1100 600 1100zM600 1000C544.75 1000 500 955.25 500 900V200H700V900C700 955.25 655.25 1000 600 1000z","horizAdvX":"1200"},"cake-2-fill":{"path":["M0 0h24v24H0z","M8 6v3.999h3V6h2v3.999h3V6h2v3.999L19 10a3 3 0 0 1 2.995 2.824L22 13v1c0 1.014-.377 1.94-.999 2.645L21 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4.36a4.025 4.025 0 0 1-.972-2.182l-.022-.253L2 14v-1a3 3 0 0 1 2.824-2.995L5 10l1-.001V6h2zm11 6H5a1 1 0 0 0-.993.883L4 13v.971l.003.147A2 2 0 0 0 6 16a1.999 1.999 0 0 0 1.98-1.7l.015-.153.005-.176c.036-1.248 1.827-1.293 1.989-.134l.01.134.004.147a2 2 0 0 0 3.992.031l.012-.282c.124-1.156 1.862-1.156 1.986 0l.012.282a2 2 0 0 0 3.99 0L20 14v-1a1 1 0 0 0-.883-.993L19 12zM7 1c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 0 1-2.898-.776C5.85 2.002 7 2.5 7 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C10.85 2.002 12 2.5 12 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C15.85 2.002 17 2.5 17 1z"],"unicode":"","glyph":"M400 900V700.05H550V900H650V700.05H800V900H900V700.05L950 700A150 150 0 0 0 1099.75 558.8L1100 550V500C1100 449.3000000000001 1081.15 403 1050.05 367.75L1050 150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V368A201.25000000000003 201.25000000000003 0 0 0 101.4 477.1L100.3 489.75L100 500V550A150 150 0 0 0 241.2 699.75L250 700L300 700.05V900H400zM950 600H250A50 50 0 0 1 200.35 555.85L200 550V501.45L200.15 494.1A100 100 0 0 1 300 400A99.95000000000002 99.95000000000002 0 0 1 399 485L399.75 492.65L400 501.45C401.8 563.8499999999999 491.35 566.0999999999999 499.45 508.15L499.95 501.45L500.15 494.1A100 100 0 0 1 699.75 492.55L700.35 506.65C706.5500000000001 564.4499999999999 793.45 564.4499999999999 799.6500000000001 506.65L800.2500000000001 492.55A100 100 0 0 1 999.7500000000002 492.55L1000 500V550A50 50 0 0 1 955.85 599.65L950 600zM350 1150C416 1106.45 433.1500000000001 1045.6 422.45 1005.6A75 75 0 0 0 277.55 1044.4C292.5 1099.9 350 1075 350 1150zM600 1150C666 1106.45 683.15 1045.6 672.45 1005.6A75 75 0 1 0 527.55 1044.4C542.5 1099.9 600 1075 600 1150zM850 1150C916 1106.45 933.15 1045.6 922.45 1005.6A75 75 0 1 0 777.5500000000001 1044.4C792.5 1099.9 850 1075 850 1150z","horizAdvX":"1200"},"cake-2-line":{"path":["M0 0h24v24H0z","M8 6v3.999h3V6h2v3.999h3V6h2v3.999L19 10a3 3 0 0 1 2.995 2.824L22 13v1c0 1.014-.377 1.94-.999 2.645L21 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4.36a4.025 4.025 0 0 1-.972-2.182l-.022-.253L2 14v-1a3 3 0 0 1 2.824-2.995L5 10l1-.001V6h2zm1.002 10.641l-.054.063a3.994 3.994 0 0 1-2.514 1.273l-.23.018L6 18c-.345 0-.68-.044-1-.126V20h14v-2.126a4.007 4.007 0 0 1-3.744-.963l-.15-.15-.106-.117-.107.118a3.99 3.99 0 0 1-2.451 1.214l-.242.02L12 18a3.977 3.977 0 0 1-2.797-1.144l-.15-.157-.051-.058zM19 12H5a1 1 0 0 0-.993.883L4 13v.971l.003.147A2 2 0 0 0 6 16a1.999 1.999 0 0 0 1.98-1.7l.015-.153.005-.176c.036-1.248 1.827-1.293 1.989-.134l.01.134.004.147a2 2 0 0 0 3.992.031l.012-.282c.124-1.156 1.862-1.156 1.986 0l.012.282a2 2 0 0 0 3.99 0L20 14v-1a1 1 0 0 0-.883-.993L19 12zM7 1c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 0 1-2.898-.776C5.85 2.002 7 2.5 7 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C10.85 2.002 12 2.5 12 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C15.85 2.002 17 2.5 17 1z"],"unicode":"","glyph":"M400 900V700.05H550V900H650V700.05H800V900H900V700.05L950 700A150 150 0 0 0 1099.75 558.8L1100 550V500C1100 449.3000000000001 1081.15 403 1050.05 367.75L1050 150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V368A201.25000000000003 201.25000000000003 0 0 0 101.4 477.1L100.3 489.75L100 500V550A150 150 0 0 0 241.2 699.75L250 700L300 700.05V900H400zM450.1 367.9500000000001L447.4000000000001 364.8000000000002A199.70000000000002 199.70000000000002 0 0 0 321.7000000000001 301.1500000000002L310.2000000000001 300.2500000000001L300 300C282.75 300 266 302.2000000000001 250 306.3000000000001V200H950V306.3000000000001A200.34999999999997 200.34999999999997 0 0 0 762.8 354.4500000000002L755.3 361.9500000000001L750 367.8000000000001L744.6500000000001 361.9000000000002A199.5 199.5 0 0 0 622.1 301.2000000000003L610 300.2000000000003L600 300A198.85 198.85 0 0 0 460.15 357.2L452.65 365.05L450.1 367.95zM950 600H250A50 50 0 0 1 200.35 555.85L200 550V501.45L200.15 494.1A100 100 0 0 1 300 400A99.95000000000002 99.95000000000002 0 0 1 399 485L399.75 492.65L400 501.45C401.8 563.8499999999999 491.35 566.0999999999999 499.45 508.15L499.95 501.45L500.15 494.1A100 100 0 0 1 699.75 492.55L700.35 506.65C706.5500000000001 564.4499999999999 793.45 564.4499999999999 799.6500000000001 506.65L800.2500000000001 492.55A100 100 0 0 1 999.7500000000002 492.55L1000 500V550A50 50 0 0 1 955.85 599.65L950 600zM350 1150C416 1106.45 433.1500000000001 1045.6 422.45 1005.6A75 75 0 0 0 277.55 1044.4C292.5 1099.9 350 1075 350 1150zM600 1150C666 1106.45 683.15 1045.6 672.45 1005.6A75 75 0 1 0 527.55 1044.4C542.5 1099.9 600 1075 600 1150zM850 1150C916 1106.45 933.15 1045.6 922.45 1005.6A75 75 0 1 0 777.5500000000001 1044.4C792.5 1099.9 850 1075 850 1150z","horizAdvX":"1200"},"cake-3-fill":{"path":["M0 0h24v24H0z","M15.5 2a3.5 3.5 0 0 1 3.437 4.163l-.015.066a4.502 4.502 0 0 1 .303 8.428l-1.086 6.507a1 1 0 0 1-.986.836H6.847a1 1 0 0 1-.986-.836l-1.029-6.17a3 3 0 0 1-.829-5.824L4 9a6 6 0 0 1 8.575-5.42A3.493 3.493 0 0 1 15.5 2zM11 15H9v5h2v-5zm4 0h-2v5h2v-5zm2.5-2a2.5 2.5 0 1 0-.956-4.81l-.175.081a2 2 0 0 1-2.663-.804l-.07-.137A4 4 0 0 0 10 5C7.858 5 6.109 6.684 6.005 8.767L6 8.964l.003.17a2 2 0 0 1-1.186 1.863l-.15.059A1.001 1.001 0 0 0 5 13h12.5z"],"unicode":"","glyph":"M775 1100A175 175 0 0 0 946.85 891.8499999999999L946.1 888.55A225.1 225.1 0 0 0 961.2500000000002 467.15L906.9500000000002 141.8A50 50 0 0 0 857.6500000000001 100H342.35A50 50 0 0 0 293.05 141.8L241.6 450.3A150 150 0 0 0 200.1500000000001 741.4999999999999L200 750A300 300 0 0 0 628.75 1021A174.64999999999998 174.64999999999998 0 0 0 775 1100zM550 450H450V200H550V450zM750 450H650V200H750V450zM875 550A125 125 0 1 1 827.2 790.5L818.45 786.4499999999999A100 100 0 0 0 685.3 826.65L681.8 833.5A200 200 0 0 1 500 950C392.9 950 305.45 865.8 300.25 761.6500000000001L300 751.8L300.15 743.3A100 100 0 0 0 240.85 650.15L233.35 647.2A50.05 50.05 0 0 1 250 550H875z","horizAdvX":"1200"},"cake-3-line":{"path":["M0 0h24v24H0z","M15.5 2a3.5 3.5 0 0 1 3.437 4.163l-.015.066a4.502 4.502 0 0 1 .303 8.428l-1.086 6.507a1 1 0 0 1-.986.836H6.847a1 1 0 0 1-.986-.836l-1.029-6.17a3 3 0 0 1-.829-5.824L4 9a6 6 0 0 1 8.574-5.421A3.496 3.496 0 0 1 15.5 2zM9 15H6.86l.834 5H9v-5zm4 0h-2v5h2v-5zm4.139 0H15v5h1.305l.834-5zM10 5C7.858 5 6.109 6.684 6.005 8.767L6 8.964l.003.17a2 2 0 0 1-1.186 1.863l-.15.059A1.001 1.001 0 0 0 5 13h12.5a2.5 2.5 0 1 0-.956-4.81l-.175.081a2 2 0 0 1-2.663-.804l-.07-.137A4 4 0 0 0 10 5zm5.5-1a1.5 1.5 0 0 0-1.287.729 6.006 6.006 0 0 1 1.24 1.764c.444-.228.93-.384 1.446-.453A1.5 1.5 0 0 0 15.5 4z"],"unicode":"","glyph":"M775 1100A175 175 0 0 0 946.85 891.8499999999999L946.1 888.55A225.1 225.1 0 0 0 961.2500000000002 467.15L906.9500000000002 141.8A50 50 0 0 0 857.6500000000001 100H342.35A50 50 0 0 0 293.05 141.8L241.6 450.3A150 150 0 0 0 200.1500000000001 741.4999999999999L200 750A300 300 0 0 0 628.7 1021.05A174.8 174.8 0 0 0 775 1100zM450 450H343L384.7 200H450V450zM650 450H550V200H650V450zM856.9499999999999 450H750V200H815.25L856.9499999999999 450zM500 950C392.9 950 305.45 865.8 300.25 761.6500000000001L300 751.8L300.15 743.3A100 100 0 0 0 240.85 650.15L233.35 647.2A50.05 50.05 0 0 1 250 550H875A125 125 0 1 1 827.2 790.5L818.45 786.4499999999999A100 100 0 0 0 685.3 826.65L681.8 833.5A200 200 0 0 1 500 950zM775 1000A75 75 0 0 1 710.6500000000001 963.55A300.3 300.3 0 0 0 772.6500000000001 875.3499999999999C794.8500000000001 886.75 819.1500000000001 894.55 844.95 898A75 75 0 0 1 775 1000z","horizAdvX":"1200"},"cake-fill":{"path":["M0 0h24v24H0z","M13 7v4h7a1 1 0 0 1 1 1v8h2v2H1v-2h2v-8a1 1 0 0 1 1-1h7V7h2zm.83-6.598A3 3 0 0 1 12.732 4.5L11 5.5a3 3 0 0 1 1.098-4.098l1.732-1z"],"unicode":"","glyph":"M650 850V650H1000A50 50 0 0 0 1050 600V200H1150V100H50V200H150V600A50 50 0 0 0 200 650H550V850H650zM691.5 1179.9A150 150 0 0 0 636.5999999999999 975L550 925A150 150 0 0 0 604.9000000000001 1129.9L691.5 1179.9z","horizAdvX":"1200"},"cake-line":{"path":["M0 0h24v24H0z","M13 7v4h7a1 1 0 0 1 1 1v8h2v2H1v-2h2v-8a1 1 0 0 1 1-1h7V7h2zm6 6H5v7h14v-7zM13.83.402A3 3 0 0 1 12.732 4.5L11 5.5a3 3 0 0 1 1.098-4.098l1.732-1z"],"unicode":"","glyph":"M650 850V650H1000A50 50 0 0 0 1050 600V200H1150V100H50V200H150V600A50 50 0 0 0 200 650H550V850H650zM950 550H250V200H950V550zM691.5 1179.9A150 150 0 0 0 636.5999999999999 975L550 925A150 150 0 0 0 604.9000000000001 1129.9L691.5 1179.9z","horizAdvX":"1200"},"calculator-fill":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm3 10v2h2v-2H7zm0 4v2h2v-2H7zm4-4v2h2v-2h-2zm0 4v2h2v-2h-2zm4-4v6h2v-6h-2zM7 6v4h10V6H7z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM350 600V500H450V600H350zM350 400V300H450V400H350zM550 600V500H650V600H550zM550 400V300H650V400H550zM750 600V300H850V600H750zM350 900V700H850V900H350z","horizAdvX":"1200"},"calculator-line":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm1 2v16h14V4H5zm2 2h10v4H7V6zm0 6h2v2H7v-2zm0 4h2v2H7v-2zm4-4h2v2h-2v-2zm0 4h2v2h-2v-2zm4-4h2v6h-2v-6z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM250 1000V200H950V1000H250zM350 900H850V700H350V900zM350 600H450V500H350V600zM350 400H450V300H350V400zM550 600H650V500H550V600zM550 400H650V300H550V400zM750 600H850V300H750V600z","horizAdvX":"1200"},"calendar-2-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM200 750V250H1000V750H200zM300 650H400V550H300V650zM550 650H650V550H550V650zM800 650H900V550H800V650z","horizAdvX":"1200"},"calendar-2-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm3 8H4v8h16v-8zm-5-6H9v2H7V5H4v4h16V5h-3v2h-2V5zm-9 8h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM1000 650H200V250H1000V650zM750 950H450V850H350V950H200V750H1000V950H850V850H750V950zM300 550H400V450H300V550zM550 550H650V450H550V550zM800 550H900V450H800V550z","horizAdvX":"1200"},"calendar-check-fill":{"path":["M0 0h24v24H0z","M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2zm11 7H4v11h16V8zm-4.964 2.136l1.414 1.414-4.95 4.95-3.536-3.536L9.38 11.55l2.121 2.122 3.536-3.536z"],"unicode":"","glyph":"M450 1150V1050H750V1150H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450zM1000 800H200V250H1000V800zM751.8 693.2L822.5 622.5L575 375L398.2000000000001 551.8L469.0000000000001 622.5L575.0500000000001 516.4L751.85 693.1999999999999z","horizAdvX":"1200"},"calendar-check-line":{"path":["M0 0h24v24H0z","M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2zm11 9H4v9h16v-9zm-4.964 1.136l1.414 1.414-4.95 4.95-3.536-3.536L9.38 12.55l2.121 2.122 3.536-3.536zM7 5H4v3h16V5h-3v1h-2V5H9v1H7V5z"],"unicode":"","glyph":"M450 1150V1050H750V1150H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450zM1000 700H200V250H1000V700zM751.8 643.2L822.5 572.5L575 325L398.2000000000001 501.8L469.0000000000001 572.5L575.0500000000001 466.4L751.85 643.1999999999999zM350 950H200V800H1000V950H850V900H750V950H450V900H350V950z","horizAdvX":"1200"},"calendar-event-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 4h5v4H6v-4z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM200 750V250H1000V750H200zM300 550H550V350H300V550z","horizAdvX":"1200"},"calendar-event-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm3 6V5h-3v2h-2V5H9v2H7V5H4v4h16zm0 2H4v8h16v-8zM6 13h5v4H6v-4z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM1000 750V950H850V850H750V950H450V850H350V950H200V750H1000zM1000 650H200V250H1000V650zM300 550H550V350H300V550z","horizAdvX":"1200"},"calendar-fill":{"path":["M0 0h24v24H0z","M2 11h20v9a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9zm15-8h4a1 1 0 0 1 1 1v5H2V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2z"],"unicode":"","glyph":"M100 650H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V650zM850 1050H1050A50 50 0 0 0 1100 1000V750H100V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050z","horizAdvX":"1200"},"calendar-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM750 950H450V850H350V950H200V750H1000V950H850V850H750V950zM1000 650H200V250H1000V650z","horizAdvX":"1200"},"calendar-todo-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm0 4h2v2H6v-2zm4-4h8v2h-8v-2zm0 4h5v2h-5v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM200 750V250H1000V750H200zM300 650H400V550H300V650zM300 450H400V350H300V450zM500 650H900V550H500V650zM500 450H750V350H500V450z","horizAdvX":"1200"},"calendar-todo-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8zM6 14h2v2H6v-2zm4 0h8v2h-8v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM750 950H450V850H350V950H200V750H1000V950H850V850H750V950zM1000 650H200V250H1000V650zM300 500H400V400H300V500zM500 500H900V400H500V500z","horizAdvX":"1200"},"camera-2-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 2a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm6-12v2h2V5h-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 350A250 250 0 1 1 600 850A250 250 0 0 1 600 350zM900 950V850H1000V950H900z","horizAdvX":"1200"},"camera-2-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm8 10a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm5-11h2v2h-2V6z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350zM850 900H950V800H850V900z","horizAdvX":"1200"},"camera-3-fill":{"path":["M0 0h24v24H0z","M2 6c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6zm12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zM4 7v2h3V7H4zm0-5h6v2H4V2z"],"unicode":"","glyph":"M100 900C100 927.6 122.75 950 149.6 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900zM700 300A250 250 0 1 1 700 800A250 250 0 0 1 700 300zM200 850V750H350V850H200zM200 1100H500V1000H200V1100z","horizAdvX":"1200"},"camera-3-line":{"path":["M0 0h24v24H0z","M2 6c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6zm2 1v12h16V7H4zm10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zM4 2h6v2H4V2z"],"unicode":"","glyph":"M100 900C100 927.6 122.75 950 149.6 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900zM200 850V250H1000V850H200zM700 400A150 150 0 1 1 700 700A150 150 0 0 1 700 400zM700 300A250 250 0 1 0 700 800A250 250 0 0 0 700 300zM200 1100H500V1000H200V1100z","horizAdvX":"1200"},"camera-fill":{"path":["M0 0h24v24H0z","M9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm3 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM600 250A300 300 0 1 1 600 850A300 300 0 0 1 600 250zM600 350A200 200 0 1 0 600 750A200 200 0 0 0 600 350z","horizAdvX":"1200"},"camera-lens-fill":{"path":["M0 0h24v24H0z","M9.827 21.763L14.31 14l3.532 6.117A9.955 9.955 0 0 1 12 22c-.746 0-1.473-.082-2.173-.237zM7.89 21.12A10.028 10.028 0 0 1 2.458 15h8.965L7.89 21.119zM2.05 13a9.964 9.964 0 0 1 2.583-7.761L9.112 13H2.05zm4.109-9.117A9.955 9.955 0 0 1 12 2c.746 0 1.473.082 2.173.237L9.69 10 6.159 3.883zM16.11 2.88A10.028 10.028 0 0 1 21.542 9h-8.965l3.533-6.119zM21.95 11a9.964 9.964 0 0 1-2.583 7.761L14.888 11h7.064z"],"unicode":"","glyph":"M491.35 111.8499999999999L715.5 500L892.0999999999999 194.15A497.74999999999994 497.74999999999994 0 0 0 600 100C562.6999999999999 100 526.3499999999999 104.1000000000001 491.35 111.8499999999999zM394.5 144A501.40000000000003 501.40000000000003 0 0 0 122.9 450H571.15L394.5 144.05zM102.5 550A498.2 498.2 0 0 0 231.65 938.05L455.6 550H102.5zM307.95 1005.85A497.74999999999994 497.74999999999994 0 0 0 600 1100C637.3000000000001 1100 673.6500000000001 1095.9 708.65 1088.15L484.5 700L307.95 1005.85zM805.5 1056A501.40000000000003 501.40000000000003 0 0 0 1077.1000000000001 750H628.8500000000001L805.5000000000001 1055.95zM1097.5 650A498.2 498.2 0 0 0 968.35 261.9500000000001L744.4 650H1097.6z","horizAdvX":"1200"},"camera-lens-line":{"path":["M0 0h24v24H0z","M9.858 19.71L12 16H5.07a8.018 8.018 0 0 0 4.788 3.71zM4.252 14h4.284L5.07 7.999A7.963 7.963 0 0 0 4 12c0 .69.088 1.36.252 2zm2.143-7.708L8.535 10 12 4a7.974 7.974 0 0 0-5.605 2.292zm7.747-2.002L12 8h6.93a8.018 8.018 0 0 0-4.788-3.71zM19.748 10h-4.284l3.465 6.001A7.963 7.963 0 0 0 20 12c0-.69-.088-1.36-.252-2zm-2.143 7.708L15.465 14 12 20a7.974 7.974 0 0 0 5.605-2.292zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1.155-12h-2.31l-1.154 2 1.154 2h2.31l1.154-2-1.154-2z"],"unicode":"","glyph":"M492.9 214.5L600 400H253.5A400.90000000000003 400.90000000000003 0 0 1 492.9 214.5zM212.6 500H426.8L253.5 800.05A398.15 398.15 0 0 1 200 600C200 565.5 204.4 532 212.6 500zM319.75 885.4000000000001L426.75 700L600 1000A398.70000000000005 398.70000000000005 0 0 1 319.75 885.4000000000001zM707.1 985.5L600 800H946.5A400.90000000000003 400.90000000000003 0 0 1 707.1 985.5zM987.4 700H773.2000000000002L946.45 399.95A398.15 398.15 0 0 1 1000 600C1000 634.5 995.6 668 987.4 700zM880.25 314.6000000000002L773.25 500L600 200A398.70000000000005 398.70000000000005 0 0 1 880.25 314.6000000000002zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM657.75 700H542.25L484.55 600L542.25 500H657.75L715.4499999999999 600L657.75 700z","horizAdvX":"1200"},"camera-line":{"path":["M0 0h24v24H0z","M9.828 5l-2 2H4v12h16V7h-3.828l-2-2H9.828zM9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm3 15a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11zm0-2a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M491.4 950L391.4 850H200V250H1000V850H808.6L708.6 950H491.4zM450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM600 300A275 275 0 1 0 600 850A275 275 0 0 0 600 300zM600 400A175 175 0 1 1 600 750A175 175 0 0 1 600 400z","horizAdvX":"1200"},"camera-off-fill":{"path":["M0 0h24v24H0z","M19.586 21H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h.586L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L19.586 21zM7.556 8.97a6 6 0 0 0 8.475 8.475l-1.417-1.417a4 4 0 0 1-5.642-5.642L7.555 8.97zM22 17.785l-4.045-4.045a6 6 0 0 0-6.695-6.695L8.106 3.892 9 3h6l2 2h4a1 1 0 0 1 1 1v11.786zm-8.492-8.492a4.013 4.013 0 0 1 2.198 2.198l-2.198-2.198z"],"unicode":"","glyph":"M979.3 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H179.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L979.3 150zM377.8 751.5A300 300 0 0 1 801.55 327.75L730.6999999999999 398.6A200 200 0 0 0 448.5999999999999 680.7L377.75 751.5zM1100 310.75L897.7499999999999 513A300 300 0 0 1 562.9999999999999 847.75L405.3 1005.4L450 1050H750L850 950H1050A50 50 0 0 0 1100 900V310.7zM675.4 735.35A200.65 200.65 0 0 0 785.3 625.45L675.4 735.35z","horizAdvX":"1200"},"camera-off-line":{"path":["M0 0h24v24H0z","M19.586 21H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h.586L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L19.586 21zm-14-14H4v12h13.586l-2.18-2.18A5.5 5.5 0 0 1 7.68 9.094L5.586 7zm3.524 3.525a3.5 3.5 0 0 0 4.865 4.865L9.11 10.525zM22 17.785l-2-2V7h-3.828l-2-2H9.828l-.307.307-1.414-1.414L9 3h6l2 2h4a1 1 0 0 1 1 1v11.786zM11.263 7.05a5.5 5.5 0 0 1 6.188 6.188l-2.338-2.338a3.515 3.515 0 0 0-1.512-1.512l-2.338-2.338z"],"unicode":"","glyph":"M979.3 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H179.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L979.3 150zM279.3 850H200V250H879.3L770.3 359A275 275 0 0 0 384 745.3L279.3 850zM455.5 673.75A175 175 0 0 1 698.75 430.5L455.5 673.75zM1100 310.75L1000 410.75V850H808.6L708.6 950H491.4L476.05 934.65L405.35 1005.35L450 1050H750L850 950H1050A50 50 0 0 0 1100 900V310.7zM563.15 847.5A275 275 0 0 0 872.5500000000001 538.1L755.65 655.0000000000001A175.75 175.75 0 0 1 680.05 730.6000000000001L563.1499999999999 847.5000000000001z","horizAdvX":"1200"},"camera-switch-fill":{"path":["M0 0h24v24H0z","M9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm5.684 15.368l-.895-1.79A4 4 0 0 1 8 13h2.001L7.839 8.677a6 6 0 0 0 6.845 9.69zM9.316 7.632l.895 1.79A4 4 0 0 1 16 13h-2.001l2.161 4.323a6 6 0 0 0-6.845-9.69z"],"unicode":"","glyph":"M450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM734.2 281.5999999999999L689.45 371.0999999999999A200 200 0 0 0 400 550H500.05L391.9500000000001 766.1500000000001A300 300 0 0 1 734.2 281.6500000000001zM465.8 818.4000000000001L510.55 728.9A200 200 0 0 0 800 550H699.95L808 333.85A300 300 0 0 1 465.7500000000001 818.3499999999999z","horizAdvX":"1200"},"camera-switch-line":{"path":["M0 0h24v24H0z","M9.828 5l-2 2H4v12h16V7h-3.828l-2-2H9.828zM9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm.64 4.53a5.5 5.5 0 0 1 6.187 8.92L13.75 12.6h1.749l.001-.1a3.5 3.5 0 0 0-4.928-3.196L9.64 7.53zm4.677 9.96a5.5 5.5 0 0 1-6.18-8.905L10.25 12.5H8.5a3.5 3.5 0 0 0 4.886 3.215l.931 1.774z"],"unicode":"","glyph":"M491.4 950L391.4 850H200V250H1000V850H808.6L708.6 950H491.4zM450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM482 823.5A275 275 0 0 0 791.3500000000001 377.5L687.5 570H774.95L775 575A175 175 0 0 1 528.5999999999999 734.8L482 823.5zM715.85 325.4999999999999A275 275 0 0 0 406.85 770.7499999999999L512.5 575H425A175 175 0 0 1 669.3 414.25L715.85 325.55z","horizAdvX":"1200"},"capsule-fill":{"path":["M0 0H24V24H0z","M19.778 4.222c2.343 2.343 2.343 6.142 0 8.485l-2.122 2.12-4.949 4.951c-2.343 2.343-6.142 2.343-8.485 0-2.343-2.343-2.343-6.142 0-8.485l7.07-7.071c2.344-2.343 6.143-2.343 8.486 0zm-4.95 10.606L9.172 9.172l-3.536 3.535c-1.562 1.562-1.562 4.095 0 5.657 1.562 1.562 4.095 1.562 5.657 0l3.535-3.536z"],"unicode":"","glyph":"M988.9 988.9C1106.05 871.75 1106.05 681.8 988.9 564.65L882.8 458.6499999999999L635.3499999999999 211.0999999999999C518.1999999999999 93.9499999999998 328.25 93.9499999999998 211.1 211.0999999999999C93.95 328.2499999999999 93.95 518.1999999999998 211.1 635.3499999999999L564.6 988.8999999999997C681.8 1106.0499999999997 871.7499999999999 1106.0499999999997 988.9 988.8999999999997zM741.4 458.6L458.6 741.4L281.8000000000001 564.65C203.7000000000001 486.55 203.7000000000001 359.9 281.8000000000001 281.8C359.9000000000001 203.6999999999999 486.5500000000001 203.6999999999999 564.6500000000001 281.8L741.4000000000001 458.5999999999999z","horizAdvX":"1200"},"capsule-line":{"path":["M0 0H24V24H0z","M19.778 4.222c2.343 2.343 2.343 6.142 0 8.485l-7.07 7.071c-2.344 2.343-6.143 2.343-8.486 0-2.343-2.343-2.343-6.142 0-8.485l7.07-7.071c2.344-2.343 6.143-2.343 8.486 0zm-5.656 11.313L8.465 9.878l-2.829 2.83c-1.562 1.561-1.562 4.094 0 5.656 1.562 1.562 4.095 1.562 5.657 0l2.829-2.83zm4.242-9.899c-1.562-1.562-4.095-1.562-5.657 0L9.88 8.464l5.657 5.657 2.828-2.828c1.562-1.562 1.562-4.095 0-5.657z"],"unicode":"","glyph":"M988.9 988.9C1106.05 871.75 1106.05 681.8 988.9 564.65L635.3999999999999 211.1C518.1999999999999 93.9500000000001 328.25 93.9500000000001 211.0999999999999 211.1C93.9499999999999 328.2500000000001 93.9499999999999 518.2 211.0999999999999 635.35L564.5999999999999 988.9C681.7999999999998 1106.05 871.7499999999999 1106.05 988.9 988.9zM706.1 423.25L423.25 706.1L281.8 564.6C203.7 486.55 203.7 359.9 281.8 281.8C359.9 203.6999999999999 486.5499999999999 203.6999999999999 564.65 281.8L706.1 423.3zM918.2 918.2C840.1 996.3 713.45 996.3 635.35 918.2L494.0000000000001 776.8L776.85 493.9499999999999L918.2500000000002 635.3499999999999C996.3500000000003 713.4499999999999 996.3500000000003 840.0999999999999 918.2500000000002 918.2z","horizAdvX":"1200"},"car-fill":{"path":["M0 0h24v24H0z","M19 20H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.513-6.702A2 2 0 0 1 6.386 4h11.228a2 2 0 0 1 1.873 1.298L22 12v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zM4.136 12h15.728l-2.25-6H6.386l-2.25 6zM6.5 17a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M950 200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V600L225.65 935.1A100 100 0 0 0 319.3 1000H880.7A100 100 0 0 0 974.3500000000003 935.1L1100 600V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200zM206.8 600H993.2L880.7 900H319.3L206.8 600zM325 350A75 75 0 1 1 325 500A75 75 0 0 1 325 350zM875 350A75 75 0 1 1 875 500A75 75 0 0 1 875 350z","horizAdvX":"1200"},"car-line":{"path":["M0 0h24v24H0z","M19 20H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V11l2.48-5.788A2 2 0 0 1 6.32 4H17.68a2 2 0 0 1 1.838 1.212L22 11v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm1-7H4v5h16v-5zM4.176 11h15.648l-2.143-5H6.32l-2.143 5zM6.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M950 200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V650L224 939.4A100 100 0 0 0 316 1000H884A100 100 0 0 0 975.9 939.4L1100 650V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200zM1000 550H200V300H1000V550zM208.8 650H991.2L884.0499999999998 900H316L208.85 650zM325 350A75 75 0 1 0 325 500A75 75 0 0 0 325 350zM875 350A75 75 0 1 0 875 500A75 75 0 0 0 875 350z","horizAdvX":"1200"},"car-washing-fill":{"path":["M0 0h24v24H0z","M19 21H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.417-4.029A2 2 0 0 1 6.132 8h11.736a2 2 0 0 1 1.715.971L22 13v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zM4.332 13h15.336l-1.8-3H6.132l-1.8 3zM6.5 18a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM5.44 3.44L6.5 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0L12 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0l1.06-1.061 1.06 1.06a1.5 1.5 0 1 1-2.121 0z"],"unicode":"","glyph":"M950 150H250V100A50 50 0 0 0 200 50H150A50 50 0 0 0 100 100V550L220.85 751.45A100 100 0 0 0 306.6 800H893.4000000000001A100 100 0 0 0 979.15 751.45L1100 550V100A50 50 0 0 0 1050 50H1000A50 50 0 0 0 950 100V150zM216.6 550H983.4L893.4 700H306.6L216.6 550zM325 300A75 75 0 1 1 325 450A75 75 0 0 1 325 300zM875 300A75 75 0 1 1 875 450A75 75 0 0 1 875 300zM272 1028L325 1081.1L378 1028.1A75 75 0 1 0 271.95 1028.1zM547.0000000000001 1028L600 1081.1L653 1028.1A75 75 0 1 0 546.95 1028.1zM822.0000000000001 1028L875 1081.05L927.9999999999998 1028.05A75 75 0 1 0 821.95 1028.05z","horizAdvX":"1200"},"car-washing-line":{"path":["M0 0h24v24H0z","M19 21H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V12l2.417-4.029A2 2 0 0 1 6.132 7h11.736a2 2 0 0 1 1.715.971L22 12v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm1-7H4v5h16v-5zM4.332 12h15.336l-1.8-3H6.132l-1.8 3zM5.44 3.44L6.5 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0L12 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0L17.5 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zM6.5 18a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M950 150H250V100A50 50 0 0 0 200 50H150A50 50 0 0 0 100 100V600L220.85 801.45A100 100 0 0 0 306.6 850H893.4000000000001A100 100 0 0 0 979.15 801.45L1100 600V100A50 50 0 0 0 1050 50H1000A50 50 0 0 0 950 100V150zM1000 500H200V250H1000V500zM216.6 600H983.4L893.4 750H306.6L216.6 600zM272 1028L325 1081.1L378 1028.1A75 75 0 1 0 271.95 1028.1zM547.0000000000001 1028L600 1081.1L653 1028.1A75 75 0 1 0 546.95 1028.1zM822.0000000000001 1028L875 1081.1L927.9999999999998 1028.1A75 75 0 1 0 821.95 1028.1zM325 300A75 75 0 1 0 325 450A75 75 0 0 0 325 300zM875 300A75 75 0 1 0 875 450A75 75 0 0 0 875 300z","horizAdvX":"1200"},"caravan-fill":{"path":["M0 0L24 0 24 24 0 24z","M14.172 3c.53 0 1.039.21 1.414.586l4.828 4.828c.375.375.586.884.586 1.414V17h2v2h-8.126c-.445 1.726-2.01 3-3.874 3-1.864 0-3.43-1.274-3.874-3H3c-.552 0-1-.448-1-1V5c0-1.105.895-2 2-2h10.172zM11 16c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm3-9H6v6h8V7zm-2 2v2H8V9h4z"],"unicode":"","glyph":"M708.6 1050C735.1 1050 760.5500000000001 1039.5 779.3000000000001 1020.7L1020.7 779.3C1039.45 760.55 1050 735.1 1050 708.6V350H1150V250H743.7C721.45 163.7000000000001 643.2 100 550 100C456.8 100 378.5 163.7000000000001 356.3 250H150C122.4 250 100 272.4 100 300V950C100 1005.25 144.75 1050 200 1050H708.6zM550 400C494.75 400 450 355.25 450 300S494.75 200 550 200S650 244.75 650 300S605.25 400 550 400zM700 850H300V550H700V850zM600 750V650H400V750H600z","horizAdvX":"1200"},"caravan-line":{"path":["M0 0L24 0 24 24 0 24z","M14.172 3c.53 0 1.039.21 1.414.586l4.828 4.828c.375.375.586.884.586 1.414V17h2v2h-8.126c-.445 1.726-2.01 3-3.874 3-1.864 0-3.43-1.274-3.874-3H3c-.552 0-1-.448-1-1V5c0-1.105.895-2 2-2h10.172zM11 16c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm3.172-11H4v12h3.126c.444-1.725 2.01-3 3.874-3 1.864 0 3.43 1.275 3.874 3H19V9.828L14.172 5zM14 7v6H6V7h8zm-2 2H8v2h4V9z"],"unicode":"","glyph":"M708.6 1050C735.1 1050 760.5500000000001 1039.5 779.3000000000001 1020.7L1020.7 779.3C1039.45 760.55 1050 735.1 1050 708.6V350H1150V250H743.7C721.45 163.7000000000001 643.2 100 550 100C456.8 100 378.5 163.7000000000001 356.3 250H150C122.4 250 100 272.4 100 300V950C100 1005.25 144.75 1050 200 1050H708.6zM550 400C494.75 400 450 355.25 450 300S494.75 200 550 200S650 244.75 650 300S605.25 400 550 400zM708.6 950H200V350H356.3C378.5 436.25 456.8 500 550 500C643.2 500 721.5 436.25 743.7 350H950V708.6L708.6 950zM700 850V550H300V850H700zM600 750H400V650H600V750z","horizAdvX":"1200"},"cast-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-6a13.1 13.1 0 0 0-.153-2H20V5H4v3.153A13.1 13.1 0 0 0 2 8V4a1 1 0 0 1 1-1zm10 18h-2a9 9 0 0 0-9-9v-2c6.075 0 11 4.925 11 11zm-4 0H7a5 5 0 0 0-5-5v-2a7 7 0 0 1 7 7zm-4 0H2v-3a3 3 0 0 1 3 3zm9.373-4A13.032 13.032 0 0 0 6 8.627V7h12v10h-3.627z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H750A655 655 0 0 1 742.35 250H1000V950H200V792.3499999999999A655 655 0 0 1 100 800V1000A50 50 0 0 0 150 1050zM650 150H550A450 450 0 0 1 100 600V700C403.75 700 650 453.75 650 150zM450 150H350A250 250 0 0 1 100 400V500A350 350 0 0 0 450 150zM250 150H100V300A150 150 0 0 0 250 150zM718.65 350A651.6 651.6 0 0 1 300 768.65V850H900V350H718.6500000000001z","horizAdvX":"1200"},"cast-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-6a13.1 13.1 0 0 0-.153-2H20V5H4v3.153A13.1 13.1 0 0 0 2 8V4a1 1 0 0 1 1-1zm10 18h-2a9 9 0 0 0-9-9v-2c6.075 0 11 4.925 11 11zm-4 0H7a5 5 0 0 0-5-5v-2a7 7 0 0 1 7 7zm-4 0H2v-3a3 3 0 0 1 3 3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H750A655 655 0 0 1 742.35 250H1000V950H200V792.3499999999999A655 655 0 0 1 100 800V1000A50 50 0 0 0 150 1050zM650 150H550A450 450 0 0 1 100 600V700C403.75 700 650 453.75 650 150zM450 150H350A250 250 0 0 1 100 400V500A350 350 0 0 0 450 150zM250 150H100V300A150 150 0 0 0 250 150z","horizAdvX":"1200"},"cellphone-fill":{"path":["M0 0h24v24H0z","M7 2h11a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V0h2v2zm0 2v5h10V4H7z"],"unicode":"","glyph":"M350 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1200H350V1100zM350 1000V750H850V1000H350z","horizAdvX":"1200"},"cellphone-line":{"path":["M0 0h24v24H0z","M7 2h11a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V0h2v2zm0 7h10V4H7v5zm0 2v9h10v-9H7z"],"unicode":"","glyph":"M350 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1200H350V1100zM350 750H850V1000H350V750zM350 650V200H850V650H350z","horizAdvX":"1200"},"celsius-fill":{"path":["M0 0h24v24H0z","M4.5 10a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM22 10h-2a4 4 0 1 0-8 0v5a4 4 0 1 0 8 0h2a6 6 0 1 1-12 0v-5a6 6 0 1 1 12 0z"],"unicode":"","glyph":"M225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800zM1100 700H1000A200 200 0 1 1 600 700V450A200 200 0 1 1 1000 450H1100A300 300 0 1 0 500 450V700A300 300 0 1 0 1100 700z","horizAdvX":"1200"},"celsius-line":{"path":["M0 0h24v24H0z","M4.5 10a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM22 10h-2a4 4 0 1 0-8 0v5a4 4 0 1 0 8 0h2a6 6 0 1 1-12 0v-5a6 6 0 1 1 12 0z"],"unicode":"","glyph":"M225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800zM1100 700H1000A200 200 0 1 1 600 700V450A200 200 0 1 1 1000 450H1100A300 300 0 1 0 500 450V700A300 300 0 1 0 1100 700z","horizAdvX":"1200"},"centos-fill":{"path":["M0 0H24V24H0z","M12 13.06l4.47 4.471L12 22l-4.47-4.47L12 13.06zm-8 3.06L7.879 20H4v-3.88zm16 0V20h-3.88L20 16.12zm-2.47-8.59L22 12l-4.469 4.47-4.47-4.47 4.469-4.47zm-11.06 0L10.94 12l-4.471 4.469L2 12l4.47-4.47zM12 2l4.469 4.469L12 10.939 7.53 6.47 12 2zM7.879 4l-3.88 3.879L4 4h3.879zM20 4v3.879l-3.88-3.88L20 4z"],"unicode":"","glyph":"M600 547L823.5 323.4500000000001L600 100L376.5 323.5L600 547zM200 394L393.95 200H200V394zM1000 394V200H806L1000 394zM876.5 823.5L1100 600L876.55 376.5L653.05 600L876.5 823.5zM323.5000000000001 823.5L547 600L323.45 376.55L100 600L323.5 823.5zM600 1100L823.45 876.55L600 653.05L376.5 876.5L600 1100zM393.95 1000L199.95 806.05L200 1000H393.95zM1000 1000V806.05L806 1000.05L1000 1000z","horizAdvX":"1200"},"centos-line":{"path":["M0 0H24V24H0z","M12 2l4.292 4.292 1.061-1.06L16.121 4H20v3.879l-1.233-1.233-1.06 1.061L22 12l-4.292 4.293 1.059 1.059L20 16.121V20h-3.88l1.232-1.233-1.059-1.06L12 22l-4.293-4.293-1.061 1.06L7.879 20H4v-3.88l1.231 1.232 1.061-1.06L2 12l4.293-4.293-1.062-1.061L4 7.879V4h3.879L6.646 5.23l1.062 1.062L12 2zm0 11.413l-2.88 2.879 2.88 2.88 2.879-2.88L12 13.412zM7.707 9.12L4.828 12l2.878 2.878 2.88-2.88-2.879-2.877zm8.585 0l-2.877 2.878 2.878 2.879L19.172 12l-2.88-2.879zM12 4.828L9.122 7.707l2.879 2.878 2.877-2.879L12 4.828z"],"unicode":"","glyph":"M600 1100L814.6000000000001 885.4000000000001L867.6500000000001 938.4L806.05 1000H1000V806.05L938.35 867.7L885.35 814.6500000000001L1100 600L885.3999999999999 385.35L938.35 332.4L1000 393.9500000000001V200H806L867.6 261.65L814.65 314.65L600 100L385.35 314.65L332.3 261.65L393.95 200H200V394L261.55 332.4L314.6 385.3999999999999L100 600L314.6500000000001 814.6500000000001L261.55 867.7L200 806.05V1000H393.95L332.3 938.5L385.4000000000001 885.4L600 1100zM600 529.35L456.0000000000001 385.3999999999999L600 241.4L743.9499999999999 385.3999999999999L600 529.4zM385.35 744L241.4 600L385.3 456.1L529.3000000000001 600.0999999999999L385.35 743.9499999999998zM814.6000000000001 744L670.7500000000001 600.1L814.6500000000001 456.1500000000001L958.6 600L814.6000000000001 743.95zM600 958.6L456.1 814.6500000000001L600.05 670.75L743.9 814.6999999999999L600 958.6z","horizAdvX":"1200"},"character-recognition-fill":{"path":["M0 0h24v24H0z","M21 3v18H3V3h18zm-8.001 3h-2L6.6 17h2.154l1.199-3h4.09l1.201 3h2.155l-4.4-11zm-1 2.885L13.244 12h-2.492l1.247-3.115z"],"unicode":"","glyph":"M1050 1050V150H150V1050H1050zM649.95 900H549.95L330 350H437.7L497.65 500H702.15L762.2 350H869.95L649.95 900zM599.95 755.75L662.2 600H537.5999999999999L599.9499999999999 755.75z","horizAdvX":"1200"},"character-recognition-line":{"path":["M0 0h24v24H0z","M5 15v4h4v2H3v-6h2zm16 0v6h-6v-2h4v-4h2zm-8.001-9l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3H6.6l4.399-11h2zm-1 2.885L10.752 12h2.492l-1.245-3.115zM9 3v2H5v4H3V3h6zm12 0v6h-2V5h-4V3h6z"],"unicode":"","glyph":"M250 450V250H450V150H150V450H250zM1050 450V150H750V250H950V450H1050zM649.95 900L869.95 350H762.2L702.1500000000001 500H497.65L437.7000000000001 350H330L549.9499999999999 900H649.9499999999999zM599.95 755.75L537.6 600H662.2L599.9499999999999 755.75zM450 1050V950H250V750H150V1050H450zM1050 1050V750H950V950H750V1050H1050z","horizAdvX":"1200"},"charging-pile-2-fill":{"path":["M0 0h24v24H0z","M20 11h-1V7h1V4h2v3h1v4h-1v7a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7zM9 11V7l-4 6h3v4l4-6H9z"],"unicode":"","glyph":"M1000 650H950V850H1000V1000H1100V850H1150V650H1100V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650zM450 650V850L250 550H400V350L600 650H450z","horizAdvX":"1200"},"charging-pile-2-line":{"path":["M0 0h24v24H0z","M20 11h-1V7h1V4h2v3h1v4h-1v7a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7zm-8 8V5H5v14h7zm-3-8h3l-4 6v-4H5l4-6v4z"],"unicode":"","glyph":"M1000 650H950V850H1000V1000H1100V850H1150V650H1100V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650zM600 250V950H250V250H600zM450 650H600L400 350V550H250L450 850V650z","horizAdvX":"1200"},"charging-pile-fill":{"path":["M0 0h24v24H0z","M3 19V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1zm6-8V7l-4 6h3v4l4-6H9z"],"unicode":"","glyph":"M150 250V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150zM450 650V850L250 550H400V350L600 650H450z","horizAdvX":"1200"},"charging-pile-line":{"path":["M0 0h24v24H0z","M14 19h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5zm-9 0h7V5H5v14zm4-8h3l-4 6v-4H5l4-6v4z"],"unicode":"","glyph":"M700 250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250zM250 250H600V950H250V250zM450 650H600L400 350V550H250L450 850V650z","horizAdvX":"1200"},"chat-1-fill":{"path":["M0 0h24v24H0z","M10 3h4a8 8 0 1 1 0 16v3.5c-5-2-12-5-12-11.5a8 8 0 0 1 8-8z"],"unicode":"","glyph":"M500 1050H700A400 400 0 1 0 700 250V75C450 175 100 325 100 650A400 400 0 0 0 500 1050z","horizAdvX":"1200"},"chat-1-line":{"path":["M0 0h24v24H0z","M10 3h4a8 8 0 1 1 0 16v3.5c-5-2-12-5-12-11.5a8 8 0 0 1 8-8zm2 14h2a6 6 0 1 0 0-12h-4a6 6 0 0 0-6 6c0 3.61 2.462 5.966 8 8.48V17z"],"unicode":"","glyph":"M500 1050H700A400 400 0 1 0 700 250V75C450 175 100 325 100 650A400 400 0 0 0 500 1050zM600 350H700A300 300 0 1 1 700 950H500A300 300 0 0 1 200 650C200 469.5 323.1 351.7 600 226V350z","horizAdvX":"1200"},"chat-2-fill":{"path":["M0 0h24v24H0z","M14.45 19L12 22.5 9.55 19H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-6.55z"],"unicode":"","glyph":"M722.5 250L600 75L477.5000000000001 250H150A50 50 0 0 0 100 300V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H722.5z","horizAdvX":"1200"},"chat-2-line":{"path":["M0 0h24v24H0z","M14.45 19L12 22.5 9.55 19H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-6.55zm-1.041-2H20V5H4v12h6.591L12 19.012 13.409 17z"],"unicode":"","glyph":"M722.5 250L600 75L477.5000000000001 250H150A50 50 0 0 0 100 300V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H722.5zM670.4499999999999 350H1000V950H200V350H529.5500000000001L600 249.4L670.45 350z","horizAdvX":"1200"},"chat-3-fill":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8z","horizAdvX":"1200"},"chat-3-line":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176zm.29-2.113l.653.35A7.955 7.955 0 0 0 12 20a8 8 0 1 0-8-8c0 1.334.325 2.618.94 3.766l.349.653-.655 2.947 2.947-.655z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8zM379.05 264.45L411.7 246.9499999999998A397.75 397.75 0 0 1 600 200A400 400 0 1 1 200 600C200 533.3000000000001 216.25 469.1 247 411.7000000000001L264.45 379.05L231.7 231.7000000000001L379.05 264.4500000000001z","horizAdvX":"1200"},"chat-4-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75z","horizAdvX":"1200"},"chat-4-line":{"path":["M0 0h24v24H0z","M5.763 17H20V5H4v13.385L5.763 17zm.692 2L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455z"],"unicode":"","glyph":"M288.15 350H1000V950H200V280.7500000000001L288.15 350zM322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75z","horizAdvX":"1200"},"chat-check-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm4.838-6.879L8.818 9.646l-1.414 1.415 3.889 3.889 5.657-5.657-1.414-1.414-4.243 4.242z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM564.65 593.9499999999999L440.9 717.6999999999999L370.2 646.95L564.65 452.5L847.5 735.35L776.8 806.05L564.65 593.95z","horizAdvX":"1200"},"chat-check-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zm5.53-4.879l4.243-4.242 1.414 1.414-5.657 5.657-3.89-3.89 1.415-1.414 2.475 2.475z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM564.65 593.9499999999999L776.8 806.05L847.5 735.3499999999999L564.65 452.5L370.1499999999999 647L440.8999999999999 717.6999999999999L564.6499999999999 593.9499999999999z","horizAdvX":"1200"},"chat-delete-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm6.96-8l2.474-2.475-1.414-1.414L12 9.586 9.525 7.11 8.111 8.525 10.586 11 8.11 13.475l1.414 1.414L12 12.414l2.475 2.475 1.414-1.414L13.414 11z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM670.75 650L794.4499999999999 773.75L723.75 844.45L600 720.7L476.25 844.5L405.55 773.75L529.3000000000001 650L405.5 526.25L476.1999999999999 455.5500000000001L600 579.3000000000001L723.75 455.5500000000001L794.4499999999999 526.25L670.6999999999999 650z","horizAdvX":"1200"},"chat-delete-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM13.414 11l2.475 2.475-1.414 1.414L12 12.414 9.525 14.89l-1.414-1.414L10.586 11 8.11 8.525l1.414-1.414L12 9.586l2.475-2.475 1.414 1.414L13.414 11z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM670.6999999999999 650L794.4499999999999 526.25L723.75 455.5500000000001L600 579.3000000000001L476.25 455.5L405.55 526.1999999999999L529.3000000000001 650L405.5 773.75L476.1999999999999 844.45L600 720.7L723.75 844.45L794.4499999999999 773.75L670.6999999999999 650z","horizAdvX":"1200"},"chat-download-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM13 11V7h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM650 650V850H550V650H400L600 450L800 650H650z","horizAdvX":"1200"},"chat-download-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM13 11h3l-4 4-4-4h3V7h2v4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM650 650H800L600 450L400 650H550V850H650V650z","horizAdvX":"1200"},"chat-follow-up-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-4 4h-2v8h2V7zm-6 1H9v1.999L7 10v2l2-.001V14h2v-2.001L13 12v-2l-2-.001V8z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM850 850H750V450H850V850zM550 800H450V700.05L350 700V600L450 600.05V500H550V600.05L650 600V700L550 700.05V800z","horizAdvX":"1200"},"chat-follow-up-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-3 2v8h-2V7h2zm-6 1v1.999L13 10v2l-2-.001V14H9v-2.001L7 12v-2l2-.001V8h2z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V280.7500000000001L288.15 350H1000V950zM850 850V450H750V850H850zM550 800V700.05L650 700V600L550 600.05V500H450V600.05L350 600V700L450 700.05V800H550z","horizAdvX":"1200"},"chat-forward-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM12 10H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM600 700H400V600H600V450L800 650L600 850V700z","horizAdvX":"1200"},"chat-forward-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM12 10V7l4 4-4 4v-3H8v-2h4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM600 700V850L800 650L600 450V600H400V700H600z","horizAdvX":"1200"},"chat-heart-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm5.563-4.3l3.359-3.359a2.25 2.25 0 0 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 0 0-3.182 3.182l3.359 3.359z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM600.9000000000001 465L768.85 632.95A112.5 112.5 0 0 1 609.75 792.0500000000001L600.9000000000001 783.2L592.0500000000001 792.0500000000001A112.5 112.5 0 0 1 432.9500000000001 632.95L600.9000000000001 465z","horizAdvX":"1200"},"chat-heart-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zm8.018-3.685L8.659 11.34a2.25 2.25 0 0 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM600.9000000000001 465L432.9500000000001 633A112.5 112.5 0 0 0 592.0500000000001 792.1L600.9000000000001 783.25L609.75 792.1A112.5 112.5 0 0 0 768.85 633L600.85 465.05z","horizAdvX":"1200"},"chat-history-fill":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm1 5h-2v7h6v-2h-4V7z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM650 850H550V500H850V600H650V850z","horizAdvX":"1200"},"chat-history-line":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm1 3v5h4v2h-6V7h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600C200 533.25 216.3 469.1 247 411.7000000000001L264.5 378.9999999999999L231.7 231.6999999999998L379.1 264.3999999999999L411.75 246.9499999999998C469.15 216.2499999999998 533.25 199.9999999999998 600 199.9999999999998C820.9 199.9999999999998 1000 379.0999999999999 1000 599.9999999999998S820.9 999.9999999999998 600 999.9999999999998zM650 850V600H850V500H550V850H650z","horizAdvX":"1200"},"chat-new-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 10H8v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 700H400V600H550V450H650V600H800V700H650V850H550V700z","horizAdvX":"1200"},"chat-new-line":{"path":["M0 0h24v24H0z","M14 3v2H4v13.385L5.763 17H20v-7h2v8a1 1 0 0 1-1 1H6.455L2 22.5V4a1 1 0 0 1 1-1h11zm5 0V0h2v3h3v2h-3v3h-2V5h-3V3h3z"],"unicode":"","glyph":"M700 1050V950H200V280.7500000000001L288.15 350H1000V700H1100V300A50 50 0 0 0 1050 250H322.75L100 75V1000A50 50 0 0 0 150 1050H700zM950 1050V1200H1050V1050H1200V950H1050V800H950V950H800V1050H950z","horizAdvX":"1200"},"chat-off-fill":{"path":["M0 0h24v24H0z","M2.808 1.393l19.799 19.8-1.415 1.414-3.608-3.608L6.455 19 2 22.5V4c0-.17.042-.329.116-.469l-.723-.723 1.415-1.415zM21 3a1 1 0 0 1 1 1v13.785L7.214 3H21z"],"unicode":"","glyph":"M140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L879.1999999999999 250.0499999999999L322.75 250L100 75V1000C100 1008.5 102.1 1016.45 105.8 1023.45L69.65 1059.6L140.4 1130.35zM1050 1050A50 50 0 0 0 1100 1000V310.75L360.7000000000001 1050H1050z","horizAdvX":"1200"},"chat-off-line":{"path":["M0 0h24v24H0z","M2.808 1.393l19.799 19.8-1.415 1.414-3.608-3.608L6.455 19 2 22.5V4c0-.17.042-.329.116-.469l-.723-.723 1.415-1.415zm1.191 4.02L4 18.385 5.763 17h9.821L4 5.412zM21 3a1 1 0 0 1 1 1v13.785l-2-2V5L9.213 4.999 7.214 3H21z"],"unicode":"","glyph":"M140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L879.1999999999999 250.0499999999999L322.75 250L100 75V1000C100 1008.5 102.1 1016.45 105.8 1023.45L69.65 1059.6L140.4 1130.35zM199.95 929.35L200 280.7499999999999L288.15 350H779.1999999999999L200 929.4zM1050 1050A50 50 0 0 0 1100 1000V310.75L1000 410.75V950L460.65 950.05L360.7000000000001 1050H1050z","horizAdvX":"1200"},"chat-poll-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-8 4h-2v8h2V7zm4 2h-2v6h2V9zm-8 2H7v4h2v-4z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM650 850H550V450H650V850zM850 750H750V450H850V750zM450 650H350V450H450V650z","horizAdvX":"1200"},"chat-poll-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-7 2v8h-2V7h2zm4 2v6h-2V9h2zm-8 2v4H7v-4h2z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V280.7500000000001L288.15 350H1000V950zM650 850V450H550V850H650zM850 750V450H750V750H850zM450 650V450H350V650H450z","horizAdvX":"1200"},"chat-private-fill":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 5c-1.598 0-3 1.34-3 3v1H8v5h8v-5h-1v-1c0-1.657-1.343-3-3-3zm2 6v1h-4v-1h4zm-2-4c.476 0 1 .49 1 1v1h-2v-1c0-.51.487-1 1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM600 850C520.0999999999999 850 450 783 450 700V650H400V400H800V650H750V700C750 782.85 682.85 850 600 850zM700 550V500H500V550H700zM600 750C623.8 750 650 725.5 650 700V650H550V700C550 725.5 574.35 750 600 750z","horizAdvX":"1200"},"chat-private-line":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm0 3c1.657 0 3 1.343 3 3v1h1v5H8v-5h1v-1c0-1.657 1.343-3 3-3zm2 6h-4v1h4v-1zm-2-4c-.552 0-1 .45-1 1v1h2v-1c0-.552-.448-1-1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600C200 533.25 216.3 469.1 247 411.7000000000001L264.5 378.9999999999999L231.7 231.6999999999998L379.1 264.3999999999999L411.75 246.9499999999998C469.15 216.2499999999998 533.25 199.9999999999998 600 199.9999999999998C820.9 199.9999999999998 1000 379.0999999999999 1000 599.9999999999998S820.9 999.9999999999998 600 999.9999999999998zM600 850C682.85 850 750 782.85 750 700V650H800V400H400V650H450V700C450 782.85 517.15 850 600 850zM700 550H500V500H700V550zM600 750C572.4 750 550 727.5 550 700V650H650V700C650 727.5999999999999 627.6 750 600 750z","horizAdvX":"1200"},"chat-quote-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zM10.962 8.1l-.447-.688C8.728 8.187 7.5 9.755 7.5 11.505c0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01v-.092c.006-.422.092-1.633 1.454-2.466l.185-.107-.447-.688zm4.553-.688c-1.787.775-3.015 2.343-3.015 4.093 0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01 0-.313-.029-1.762 1.639-2.665z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM548.1 795L525.75 829.4C436.4 790.6500000000001 375 712.25 375 624.75C375 575 388.85 544.3 414.6 516.9499999999999C430.8 499.75 456.45 487.4999999999999 483.3 487.4999999999999C531.6 487.4999999999999 570.8000000000001 526.6999999999999 570.8000000000001 574.9999999999999C570.8000000000001 620.9999999999999 535.25 658.0499999999998 490.1 662.2499999999999C482.1 662.9999999999999 473.9 662.8499999999999 466.15 661.7499999999999V666.3499999999999C466.45 687.4499999999999 470.7500000000001 747.9999999999999 538.85 789.65L548.1 795L525.7500000000001 829.3999999999999zM775.75 829.4C686.4000000000001 790.6500000000001 625 712.25 625 624.75C625 575.0000000000001 638.8499999999999 544.3000000000001 664.6 516.95C680.8 499.75 706.4499999999999 487.5 733.3000000000001 487.5C781.6 487.5 820.8000000000001 526.7 820.8000000000001 575C820.8000000000001 621 785.25 658.05 740.1 662.25C732.1 663.0000000000001 723.9 662.85 716.15 661.7500000000001C716.15 677.4000000000001 714.7 749.8500000000001 798.1 795.0000000000001z","horizAdvX":"1200"},"chat-quote-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-9.485 2.412l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093zm5 0l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V280.7500000000001L288.15 350H1000V950zM525.75 829.4L548.1 795C464.7 749.85 466.15 677.4 466.15 661.8000000000001C473.9 662.8 482.05 663 490.15 662.25C535.25 658.0500000000001 570.8000000000001 621.0000000000001 570.8000000000001 575C570.8000000000001 526.7 531.6 487.5 483.3 487.5C456.45 487.5 430.8 499.75 414.6 517C388.85 544.3 375 575 375 624.75C375 712.25 436.4 790.6499999999999 525.75 829.4zM775.75 829.4L798.1 795C714.7 749.85 716.15 677.4 716.15 661.8000000000001C723.9 662.8 732.05 663 740.1500000000001 662.25C785.25 658.0500000000001 820.8000000000001 621.0000000000001 820.8000000000001 575C820.8000000000001 526.7 781.6 487.5 733.3000000000001 487.5C706.4499999999999 487.5 680.8 499.75 664.6 517C638.8499999999999 544.3 625 575 625 624.75C625 712.25 686.4 790.6499999999999 775.75 829.4z","horizAdvX":"1200"},"chat-settings-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm1.69-6.929l-.975.563 1 1.732.976-.563c.501.51 1.14.887 1.854 1.071V16h2v-1.126a3.996 3.996 0 0 0 1.854-1.071l.976.563 1-1.732-.975-.563a4.004 4.004 0 0 0 0-2.142l.975-.563-1-1.732-.976.563A3.996 3.996 0 0 0 13 7.126V6h-2v1.126a3.996 3.996 0 0 0-1.854 1.071l-.976-.563-1 1.732.975.563a4.004 4.004 0 0 0 0 2.142zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM407.25 596.45L358.5 568.3L408.5 481.7L457.3000000000001 509.85C482.35 484.35 514.3000000000001 465.5 550 456.3000000000001V400H650V456.3A199.8 199.8 0 0 1 742.6999999999999 509.8499999999999L791.4999999999999 481.6999999999999L841.4999999999999 568.2999999999998L792.7499999999999 596.4499999999999A200.2 200.2 0 0 1 792.7499999999999 703.55L841.4999999999999 731.6999999999999L791.4999999999999 818.3L742.6999999999999 790.15A199.8 199.8 0 0 1 650 843.7V900H550V843.7A199.8 199.8 0 0 1 457.3000000000001 790.1500000000001L408.5000000000001 818.3L358.5000000000001 731.7L407.2500000000001 703.55A200.2 200.2 0 0 1 407.2500000000001 596.45zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"chat-settings-line":{"path":["M0 0h24v24H0z","M22 12h-2V5H4v13.385L5.763 17H12v2H6.455L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8zm-7.855 7.071a4.004 4.004 0 0 1 0-2.142l-.975-.563 1-1.732.976.563A3.996 3.996 0 0 1 17 14.126V13h2v1.126c.715.184 1.353.56 1.854 1.071l.976-.563 1 1.732-.975.563a4.004 4.004 0 0 1 0 2.142l.975.563-1 1.732-.976-.563c-.501.51-1.14.887-1.854 1.071V23h-2v-1.126a3.996 3.996 0 0 1-1.854-1.071l-.976.563-1-1.732.975-.563zM18 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M1100 600H1000V950H200V280.7500000000001L288.15 350H600V250H322.75L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V600zM707.25 246.4500000000001A200.2 200.2 0 0 0 707.25 353.5500000000001L658.5 381.7000000000001L708.5 468.3L757.3000000000001 440.15A199.8 199.8 0 0 0 850 493.7V550H950V493.7C985.75 484.5000000000001 1017.65 465.7 1042.7 440.1500000000001L1091.5 468.3000000000001L1141.5 381.7000000000001L1092.7499999999998 353.5500000000001A200.2 200.2 0 0 0 1092.7499999999998 246.4500000000001L1141.5 218.3000000000002L1091.5 131.7000000000003L1042.7 159.8500000000001C1017.6499999999997 134.3500000000001 985.7 115.5 950 106.3V50H850V106.3A199.8 199.8 0 0 0 757.3000000000001 159.8500000000001L708.5000000000001 131.7000000000003L658.5000000000001 218.3000000000002L707.2500000000001 246.4500000000001zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"chat-smile-2-fill":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8zM350 600A250 250 0 0 1 850 600H750A150 150 0 0 0 450 600H350z","horizAdvX":"1200"},"chat-smile-2-line":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176zm.29-2.113l.653.35A7.955 7.955 0 0 0 12 20a8 8 0 1 0-8-8c0 1.334.325 2.618.94 3.766l.349.653-.655 2.947 2.947-.655zM7 12h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8zM379.05 264.45L411.7 246.9499999999998A397.75 397.75 0 0 1 600 200A400 400 0 1 1 200 600C200 533.3000000000001 216.25 469.1 247 411.7000000000001L264.45 379.05L231.7 231.7000000000001L379.05 264.4500000000001zM350 600H450A150 150 0 0 1 750 600H850A250 250 0 0 0 350 600z","horizAdvX":"1200"},"chat-smile-3-fill":{"path":["M0 0h24v24H0z","M4.929 19.071A9.969 9.969 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929zM8 13a4 4 0 1 0 8 0H8z"],"unicode":"","glyph":"M246.45 246.45A498.45 498.45 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45zM400 550A200 200 0 1 1 800 550H400z","horizAdvX":"1200"},"chat-smile-3-line":{"path":["M0 0h24v24H0z","M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929A9.969 9.969 0 0 1 2 12zm4.828 8H12a8 8 0 1 0-8-8c0 2.152.851 4.165 2.343 5.657l1.414 1.414-.929.929zM8 13h8a4 4 0 1 1-8 0z"],"unicode":"","glyph":"M100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45A498.45 498.45 0 0 0 100 600zM341.4000000000001 200H600A400 400 0 1 1 200 600C200 492.4 242.55 391.75 317.15 317.15L387.85 246.45L341.4 200zM400 550H800A200 200 0 1 0 400 550z","horizAdvX":"1200"},"chat-smile-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM7 10a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM350 700A250 250 0 0 1 850 700H750A150 150 0 0 0 450 700H350z","horizAdvX":"1200"},"chat-smile-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM7 10h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM350 700H450A150 150 0 0 1 750 700H850A250 250 0 0 0 350 700z","horizAdvX":"1200"},"chat-upload-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM13 11h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM650 650H800L600 850L400 650H550V450H650V650z","horizAdvX":"1200"},"chat-upload-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM13 11v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM650 650V450H550V650H400L600 850L800 650H650z","horizAdvX":"1200"},"chat-voice-fill":{"path":["M0 0h24v24H0z","M4.929 19.071A9.969 9.969 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929zM11 6v12h2V6h-2zM7 9v6h2V9H7zm8 0v6h2V9h-2z"],"unicode":"","glyph":"M246.45 246.45A498.45 498.45 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45zM550 900V300H650V900H550zM350 750V450H450V750H350zM750 750V450H850V750H750z","horizAdvX":"1200"},"chat-voice-line":{"path":["M0 0h24v24H0z","M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929A9.969 9.969 0 0 1 2 12zm4.828 8H12a8 8 0 1 0-8-8c0 2.152.851 4.165 2.343 5.657l1.414 1.414-.929.929zM11 6h2v12h-2V6zM7 9h2v6H7V9zm8 0h2v6h-2V9z"],"unicode":"","glyph":"M100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45A498.45 498.45 0 0 0 100 600zM341.4000000000001 200H600A400 400 0 1 1 200 600C200 492.4 242.55 391.75 317.15 317.15L387.85 246.45L341.4 200zM550 900H650V300H550V900zM350 750H450V450H350V750zM750 750H850V450H750V750z","horizAdvX":"1200"},"check-double-fill":{"path":["M0 0h24v24H0z","M11.602 13.76l1.412 1.412 8.466-8.466 1.414 1.414-9.88 9.88-6.364-6.364 1.414-1.414 2.125 2.125 1.413 1.412zm.002-2.828l4.952-4.953 1.41 1.41-4.952 4.953-1.41-1.41zm-2.827 5.655L7.364 18 1 11.636l1.414-1.414 1.413 1.413-.001.001 4.951 4.951z"],"unicode":"","glyph":"M580.1 512L650.6999999999999 441.4L1073.9999999999998 864.6999999999999L1144.6999999999998 794L650.6999999999999 300L332.4999999999999 618.2L403.2 688.9000000000001L509.4499999999999 582.65L580.0999999999999 512.05zM580.2 653.4L827.8000000000001 901.05L898.3000000000001 830.55L650.7 582.9L580.2 653.4zM438.85 370.65L368.2 300L50 618.2L120.7 688.9000000000001L191.35 618.25L191.3 618.2L438.85 370.65z","horizAdvX":"1200"},"check-double-line":{"path":["M0 0h24v24H0z","M11.602 13.76l1.412 1.412 8.466-8.466 1.414 1.414-9.88 9.88-6.364-6.364 1.414-1.414 2.125 2.125 1.413 1.412zm.002-2.828l4.952-4.953 1.41 1.41-4.952 4.953-1.41-1.41zm-2.827 5.655L7.364 18 1 11.636l1.414-1.414 1.413 1.413-.001.001 4.951 4.951z"],"unicode":"","glyph":"M580.1 512L650.6999999999999 441.4L1073.9999999999998 864.6999999999999L1144.6999999999998 794L650.6999999999999 300L332.4999999999999 618.2L403.2 688.9000000000001L509.4499999999999 582.65L580.0999999999999 512.05zM580.2 653.4L827.8000000000001 901.05L898.3000000000001 830.55L650.7 582.9L580.2 653.4zM438.85 370.65L368.2 300L50 618.2L120.7 688.9000000000001L191.35 618.25L191.3 618.2L438.85 370.65z","horizAdvX":"1200"},"check-fill":{"path":["M0 0h24v24H0z","M10 15.172l9.192-9.193 1.415 1.414L10 18l-6.364-6.364 1.414-1.414z"],"unicode":"","glyph":"M500 441.4L959.6 901.05L1030.35 830.3499999999999L500 300L181.8 618.2L252.5 688.9000000000001z","horizAdvX":"1200"},"check-line":{"path":["M0 0h24v24H0z","M10 15.172l9.192-9.193 1.415 1.414L10 18l-6.364-6.364 1.414-1.414z"],"unicode":"","glyph":"M500 441.4L959.6 901.05L1030.35 830.3499999999999L500 300L181.8 618.2L252.5 688.9000000000001z","horizAdvX":"1200"},"checkbox-blank-circle-fill":{"path":["M0 0h24v24H0z"],"unicode":"","glyph":"M100 600A500 500 0 0 1 1100 600A500 500 0 0 1 100 600","horizAdvX":"1200"},"checkbox-blank-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200z","horizAdvX":"1200"},"checkbox-blank-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"checkbox-blank-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250z","horizAdvX":"1200"},"checkbox-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-.997-6l7.07-7.071-1.414-1.414-5.656 5.657-2.829-2.829-1.414 1.414L11.003 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550.15 400L903.65 753.55L832.9499999999999 824.25L550.15 541.4L408.7 682.85L338 612.15L550.15 400z","horizAdvX":"1200"},"checkbox-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-.997-4L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550.15 400L338 612.15L408.7 682.85L550.15 541.4L832.9499999999999 824.25L903.7 753.55L550.15 400z","horizAdvX":"1200"},"checkbox-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7.003 13l7.07-7.071-1.414-1.414-5.656 5.657-2.829-2.829-1.414 1.414L11.003 16z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550.15 400L903.65 753.55L832.9499999999999 824.25L550.15 541.4L408.7 682.85L338 612.15L550.15 400z","horizAdvX":"1200"},"checkbox-indeterminate-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 8v2h10v-2H7z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM350 650V550H850V650H350z","horizAdvX":"1200"},"checkbox-indeterminate-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm2 6h10v2H7v-2z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM350 650H850V550H350V650z","horizAdvX":"1200"},"checkbox-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM550.15 400L338 612.15L408.7 682.85L550.15 541.4L832.9499999999999 824.25L903.7 753.55L550.15 400z","horizAdvX":"1200"},"checkbox-multiple-blank-fill":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850z","horizAdvX":"1200"},"checkbox-multiple-blank-line":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3zM4.003 9L4 20h11V9H4.003z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850zM200.15 750L200 200H750V750H200.15z","horizAdvX":"1200"},"checkbox-multiple-fill":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3zm-.497 11l5.656-5.657-1.414-1.414-4.242 4.243L6.38 13.05l-1.414 1.414L8.503 18z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850zM425.15 300L707.9499999999999 582.85L637.25 653.55L425.15 441.4L319 547.5L248.3 476.8L425.15 300z","horizAdvX":"1200"},"checkbox-multiple-line":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3zm6 2H4.003L4 20h11V9zm-6.497 9l-3.536-3.536 1.414-1.414 2.122 2.122 4.242-4.243 1.414 1.414L8.503 18z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850zM750 750H200.15L200 200H750V750zM425.15 300L248.35 476.8L319.05 547.5L425.15 441.4L637.25 653.55L707.95 582.85L425.15 300z","horizAdvX":"1200"},"china-railway-fill":{"path":["M0 0h24v24H0z","M11 19v-6l-2-1V9h6v3l-2 1v6l5 1v2H6v-2l5-1zM10 2.223V1h4v1.223a9.003 9.003 0 0 1 2.993 16.266l-1.11-1.664a7 7 0 1 0-7.767 0l-1.109 1.664A9.003 9.003 0 0 1 10 2.223z"],"unicode":"","glyph":"M550 250V550L450 600V750H750V600L650 550V250L900 200V100H300V200L550 250zM500 1088.85V1150H700V1088.85A450.15 450.15 0 0 0 849.65 275.5500000000002L794.15 358.7500000000003A350 350 0 1 1 405.8 358.7500000000003L350.35 275.5500000000002A450.15 450.15 0 0 0 500 1088.85z","horizAdvX":"1200"},"china-railway-line":{"path":["M0 0h24v24H0z","M11 20v-7H9v-3h6v3h-2v7h5v2H6v-2h5zM10 2.223V1h4v1.223a9.003 9.003 0 0 1 2.993 16.266l-1.11-1.664a7 7 0 1 0-7.767 0l-1.109 1.664A9.003 9.003 0 0 1 10 2.223z"],"unicode":"","glyph":"M550 200V550H450V700H750V550H650V200H900V100H300V200H550zM500 1088.85V1150H700V1088.85A450.15 450.15 0 0 0 849.65 275.5500000000002L794.15 358.7500000000003A350 350 0 1 1 405.8 358.7500000000003L350.35 275.5500000000002A450.15 450.15 0 0 0 500 1088.85z","horizAdvX":"1200"},"chrome-fill":{"path":["M0 0h24v24H0z","M9.827 21.763C5.35 20.771 2 16.777 2 12c0-1.822.487-3.53 1.339-5.002l4.283 7.419a4.999 4.999 0 0 0 4.976 2.548l-2.77 4.798zM12 22l4.287-7.425A4.977 4.977 0 0 0 17 12a4.978 4.978 0 0 0-1-3h5.542c.298.947.458 1.955.458 3 0 5.523-4.477 10-10 10zm2.572-8.455a2.999 2.999 0 0 1-5.17-.045l-.029-.05a3 3 0 1 1 5.225.05l-.026.045zm-9.94-8.306A9.974 9.974 0 0 1 12 2a9.996 9.996 0 0 1 8.662 5H12a5.001 5.001 0 0 0-4.599 3.035L4.632 5.239z"],"unicode":"","glyph":"M491.35 111.8499999999999C267.5 161.4500000000001 100 361.15 100 600C100 691.0999999999999 124.35 776.5 166.95 850.0999999999999L381.1 479.15A249.94999999999996 249.94999999999996 0 0 1 629.9 351.75L491.4 111.8500000000001zM600 100L814.3499999999999 471.25A248.85000000000005 248.85000000000005 0 0 1 850 600A248.9 248.9 0 0 1 800 750H1077.1000000000001C1092 702.6500000000001 1100 652.25 1100 600C1100 323.85 876.15 100 600 100zM728.5999999999999 522.75A149.95000000000002 149.95000000000002 0 0 0 470.1 525L468.65 527.5A150 150 0 1 0 729.9 525L728.5999999999999 522.75zM231.6 938.05A498.69999999999993 498.69999999999993 0 0 0 600 1100A499.8 499.8 0 0 0 1033.1 850H600A250.05000000000004 250.05000000000004 0 0 1 370.05 698.25L231.6 938.05z","horizAdvX":"1200"},"chrome-line":{"path":["M0 0h24v24H0z","M10.365 19.833l1.93-3.342a4.499 4.499 0 0 1-4.234-2.315L4.794 8.52a8.003 8.003 0 0 0 5.57 11.313zm2.225.146A8 8 0 0 0 19.602 9.5h-3.86A4.48 4.48 0 0 1 16.5 12a4.48 4.48 0 0 1-.642 2.318l-3.268 5.66zm1.553-6.691l.022-.038a2.5 2.5 0 1 0-4.354-.042l.024.042a2.499 2.499 0 0 0 4.308.038zm-8.108-6.62l1.929 3.34A4.5 4.5 0 0 1 12 7.5h6.615A7.992 7.992 0 0 0 12 4a7.98 7.98 0 0 0-5.965 2.669zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M518.25 208.3500000000001L614.75 375.4500000000001A224.94999999999996 224.94999999999996 0 0 0 403.05 491.2L239.7 774A400.15000000000003 400.15000000000003 0 0 1 518.2 208.3500000000001zM629.5 201.0500000000001A400 400 0 0 1 980.1 725H787.1A224.00000000000003 224.00000000000003 0 0 0 825 600A224.00000000000003 224.00000000000003 0 0 0 792.9 484.1L629.5 201.0999999999999zM707.1500000000001 535.6L708.25 537.5A125 125 0 1 1 490.55 539.6L491.7499999999999 537.5A124.95 124.95 0 0 1 707.15 535.6zM301.75 866.5999999999999L398.2000000000001 699.6A225 225 0 0 0 600 825H930.7500000000002A399.6 399.6 0 0 1 600 1000A399 399 0 0 1 301.75 866.55zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"clapperboard-fill":{"path":["M0 0h24v24H0z","M17.998 7l2.31-4h.7c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h3.006l-2.31 4h2.31l2.31-4h3.69l-2.31 4h2.31l2.31-4h3.69l-2.31 4h2.31z"],"unicode":"","glyph":"M899.9000000000001 850L1015.4 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H299.9L184.4 850H299.9L415.4 1050H599.9L484.3999999999999 850H599.9L715.4 1050H899.9000000000001L784.4 850H899.9000000000001z","horizAdvX":"1200"},"clapperboard-line":{"path":["M0 0h24v24H0z","M5.998 7l2.31-4h3.69l-2.31 4h-3.69zm6 0l2.31-4h3.69l-2.31 4h-3.69zm6 0l2.31-4h.7c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h3.006L4 6.46V19h16V7h-2.002z"],"unicode":"","glyph":"M299.9000000000001 850L415.4 1050H599.9L484.3999999999999 850H299.9zM599.9000000000001 850L715.4000000000001 1050H899.9000000000001L784.4 850H599.9000000000001zM899.9000000000001 850L1015.4 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H299.9L200 877V250H1000V850H899.9000000000001z","horizAdvX":"1200"},"clipboard-fill":{"path":["M0 0h24v24H0z","M6 4v4h12V4h2.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H6zm2-2h8v4H8V2z"],"unicode":"","glyph":"M300 1000V800H900V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001A49.7 49.7 0 0 0 1000.35 100.0000000000002H199.65A49.7 49.7 0 0 0 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H300zM400 1100H800V900H400V1100z","horizAdvX":"1200"},"clipboard-line":{"path":["M0 0h24v24H0z","M7 4V2h10v2h3.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H7zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z"],"unicode":"","glyph":"M350 1000V1100H850V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001A49.7 49.7 0 0 0 1000.35 100.0000000000002H199.65A49.7 49.7 0 0 0 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H350zM350 900H250V200H950V900H850V800H350V900zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"clockwise-2-fill":{"path":["M0 0h24v24H0z","M10 4V1l5 4-5 4V6H8a3 3 0 0 0-3 3v4H3V9a5 5 0 0 1 5-5h2zm-1 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H10a1 1 0 0 1-1-1V11z"],"unicode":"","glyph":"M500 1000V1150L750 950L500 750V900H400A150 150 0 0 1 250 750V550H150V750A250 250 0 0 0 400 1000H500zM450 650A50 50 0 0 0 500 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H500A50 50 0 0 0 450 150V650z","horizAdvX":"1200"},"clockwise-2-line":{"path":["M0 0h24v24H0z","M10.586 4L8.757 2.172 10.172.757 14.414 5l-4.242 4.243-1.415-1.415L10.586 6H8a3 3 0 0 0-3 3v4H3V9a5 5 0 0 1 5-5h2.586zM9 11a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H10a1 1 0 0 1-1-1V11zm2 1v8h8v-8h-8z"],"unicode":"","glyph":"M529.3000000000001 1000L437.85 1091.4L508.6 1162.15L720.6999999999999 950L508.6 737.8499999999999L437.8500000000001 808.5999999999999L529.3000000000001 900H400A150 150 0 0 1 250 750V550H150V750A250 250 0 0 0 400 1000H529.3000000000001zM450 650A50 50 0 0 0 500 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H500A50 50 0 0 0 450 150V650zM550 600V200H950V600H550z","horizAdvX":"1200"},"clockwise-fill":{"path":["M0 0h24v24H0z","M20 10h3l-4 5-4-5h3V8a3 3 0 0 0-3-3h-4V3h4a5 5 0 0 1 5 5v2zm-7-1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h10z"],"unicode":"","glyph":"M1000 700H1150L950 450L750 700H900V800A150 150 0 0 1 750 950H550V1050H750A250 250 0 0 0 1000 800V700zM650 750A50 50 0 0 0 700 700V200A50 50 0 0 0 650 150H150A50 50 0 0 0 100 200V700A50 50 0 0 0 150 750H650z","horizAdvX":"1200"},"clockwise-line":{"path":["M0 0h24v24H0z","M20 10.586l1.828-1.829 1.415 1.415L19 14.414l-4.243-4.242 1.415-1.415L18 10.586V8a3 3 0 0 0-3-3h-4V3h4a5 5 0 0 1 5 5v2.586zM13 9a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h10zm-1 2H4v8h8v-8z"],"unicode":"","glyph":"M1000 670.6999999999999L1091.3999999999999 762.1500000000001L1162.1499999999999 691.4L950 479.3000000000001L737.85 691.4L808.6 762.1499999999999L900 670.6999999999999V800A150 150 0 0 1 750 950H550V1050H750A250 250 0 0 0 1000 800V670.6999999999999zM650 750A50 50 0 0 0 700 700V200A50 50 0 0 0 650 150H150A50 50 0 0 0 100 200V700A50 50 0 0 0 150 750H650zM600 650H200V250H600V650z","horizAdvX":"1200"},"close-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 670.6999999999999L458.6 812.1500000000001L387.85 741.4L529.3000000000001 600L387.85 458.6L458.6 387.85L600 529.3000000000001L741.4 387.85L812.15 458.6L670.6999999999999 600L812.15 741.4L741.4 812.15L600 670.6999999999999z","horizAdvX":"1200"},"close-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-9.414l2.828-2.829 1.415 1.415L13.414 12l2.829 2.828-1.415 1.415L12 13.414l-2.828 2.829-1.415-1.415L10.586 12 7.757 9.172l1.415-1.415L12 10.586z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 670.6999999999999L741.4 812.1500000000001L812.15 741.4L670.6999999999999 600L812.15 458.6L741.4 387.85L600 529.3000000000001L458.6 387.85L387.85 458.6L529.3000000000001 600L387.85 741.4L458.6 812.15L600 670.6999999999999z","horizAdvX":"1200"},"close-fill":{"path":["M0 0h24v24H0z","M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"],"unicode":"","glyph":"M600 670.6999999999999L847.5 918.2L918.2 847.5L670.7 600L918.2 352.5L847.5 281.8L600 529.3L352.5 281.8L281.8 352.5L529.3000000000001 600L281.8 847.5L352.5 918.2z","horizAdvX":"1200"},"close-line":{"path":["M0 0h24v24H0z","M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"],"unicode":"","glyph":"M600 670.6999999999999L847.5 918.2L918.2 847.5L670.7 600L918.2 352.5L847.5 281.8L600 529.3L352.5 281.8L281.8 352.5L529.3000000000001 600L281.8 847.5L352.5 918.2z","horizAdvX":"1200"},"closed-captioning-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zM9 8c-2.208 0-4 1.792-4 4s1.792 4 4 4c1.1 0 2.1-.45 2.828-1.172l-1.414-1.414C10.053 13.776 9.553 14 9 14c-1.105 0-2-.895-2-2s.895-2 2-2c.55 0 1.048.22 1.415.587l1.414-1.414C11.105 8.448 10.105 8 9 8zm7 0c-2.208 0-4 1.792-4 4s1.792 4 4 4c1.104 0 2.104-.448 2.828-1.172l-1.414-1.414c-.362.362-.862.586-1.414.586-1.105 0-2-.895-2-2s.895-2 2-2c.553 0 1.053.224 1.415.587l1.414-1.414C18.105 8.448 17.105 8 16 8z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM450 800C339.6 800 250 710.4000000000001 250 600S339.6 400 450 400C505 400 555 422.5 591.4 458.6L520.6999999999999 529.3000000000001C502.65 511.2 477.65 500 450 500C394.75 500 350 544.75 350 600S394.75 700 450 700C477.5000000000001 700 502.4 689 520.75 670.65L591.4499999999999 741.35C555.25 777.5999999999999 505.25 800 450 800zM800 800C689.6 800 600 710.4000000000001 600 600S689.6 400 800 400C855.1999999999999 400 905.2 422.4 941.4 458.6L870.6999999999999 529.3000000000001C852.6 511.2 827.6 500 799.9999999999999 500C744.7499999999999 500 699.9999999999999 544.75 699.9999999999999 600S744.7499999999999 700 799.9999999999999 700C827.6499999999999 700 852.6499999999999 688.8 870.75 670.65L941.45 741.35C905.25 777.5999999999999 855.25 800 800 800z","horizAdvX":"1200"},"closed-captioning-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zm-1 2H4v14h16V5zM9 8c1.105 0 2.105.448 2.829 1.173l-1.414 1.414C10.053 10.224 9.553 10 9 10c-1.105 0-2 .895-2 2s.895 2 2 2c.553 0 1.053-.224 1.414-.586l1.414 1.414C11.104 15.552 10.104 16 9 16c-2.208 0-4-1.792-4-4s1.792-4 4-4zm7 0c1.105 0 2.105.448 2.829 1.173l-1.414 1.414C17.053 10.224 16.553 10 16 10c-1.105 0-2 .895-2 2s.895 2 2 2c.552 0 1.052-.224 1.414-.586l1.414 1.414C18.104 15.552 17.104 16 16 16c-2.208 0-4-1.792-4-4s1.792-4 4-4z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V250H1000V950zM450 800C505.25 800 555.25 777.5999999999999 591.45 741.35L520.75 670.65C502.65 688.8 477.65 700 450 700C394.75 700 350 655.25 350 600S394.75 500 450 500C477.65 500 502.65 511.2 520.6999999999999 529.3000000000001L591.4 458.6C555.1999999999999 422.4 505.1999999999999 400 450 400C339.6 400 250 489.6 250 600S339.6 800 450 800zM800 800C855.25 800 905.25 777.5999999999999 941.45 741.35L870.75 670.65C852.6500000000001 688.8 827.6500000000001 700 800 700C744.75 700 700 655.25 700 600S744.75 500 800 500C827.6 500 852.6 511.2 870.7 529.3000000000001L941.4 458.6C905.2 422.4 855.1999999999999 400 800 400C689.6 400 600 489.6 600 600S689.6 800 800 800z","horizAdvX":"1200"},"cloud-fill":{"path":["M0 0h24v24H0z","M17 7a8.003 8.003 0 0 0-7.493 5.19l1.874.703A6.002 6.002 0 0 1 23 15a6 6 0 0 1-6 6H7A6 6 0 0 1 5.008 9.339a7 7 0 0 1 13.757-2.143A8.027 8.027 0 0 0 17 7z"],"unicode":"","glyph":"M850 850A400.15000000000003 400.15000000000003 0 0 1 475.35 590.4999999999999L569.05 555.3499999999999A300.09999999999997 300.09999999999997 0 0 0 1150 450A300 300 0 0 0 850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 0 0 938.25 840.2A401.34999999999997 401.34999999999997 0 0 1 850 850z","horizAdvX":"1200"},"cloud-line":{"path":["M0 0h24v24H0z","M17 21H7A6 6 0 0 1 5.008 9.339a7 7 0 1 1 13.984 0A6 6 0 0 1 17 21zm0-12a5 5 0 1 0-9.994.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10a4 4 0 1 0-3.796-5.265l-1.898-.633A6.003 6.003 0 0 1 17 9z"],"unicode":"","glyph":"M850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 1 0 949.6 733.05A300 300 0 0 0 850 150zM850 750A250 250 0 1 1 350.3 737.8499999999999L353.8 663.45L283.6 638.75A200.10000000000002 200.10000000000002 0 0 1 350 250H850A200 200 0 1 1 660.2 513.25L565.3000000000001 544.9A300.15000000000003 300.15000000000003 0 0 0 850 750z","horizAdvX":"1200"},"cloud-off-fill":{"path":["M0 0h24v24H0z","M3.515 2.1l19.092 19.092-1.415 1.415-2.014-2.015A5.985 5.985 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339a6.992 6.992 0 0 1 .353-2.563L2.1 3.514 3.515 2.1zM17 9a6.003 6.003 0 0 1 5.204 8.989L14.01 9.796C14.89 9.29 15.91 9 17 9zm-5-7a7.003 7.003 0 0 1 6.765 5.195 8.027 8.027 0 0 0-6.206 1.15L7.694 3.48A6.97 6.97 0 0 1 12 2z"],"unicode":"","glyph":"M175.75 1095L1130.35 140.4000000000001L1059.6 69.6500000000001L958.9 170.4000000000001A299.25 299.25 0 0 0 850 150H350A300 300 0 0 0 250.4 733.05A349.6 349.6 0 0 0 268.05 861.2L105 1024.3L175.75 1095zM850 750A300.15000000000003 300.15000000000003 0 0 0 1110.2 300.55L700.5 710.2C744.5 735.5 795.5 750 850 750zM600 1100A350.15 350.15 0 0 0 938.25 840.25A401.34999999999997 401.34999999999997 0 0 1 627.95 782.75L384.7 1026A348.5 348.5 0 0 0 600 1100z","horizAdvX":"1200"},"cloud-off-line":{"path":["M0 0h24v24H0z","M3.515 2.1l19.092 19.092-1.415 1.415-2.014-2.015A5.985 5.985 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339a6.992 6.992 0 0 1 .353-2.563L2.1 3.514 3.515 2.1zM7 9c0 .081.002.163.006.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10c.186 0 .369-.013.548-.037L7.03 8.445C7.01 8.627 7 8.812 7 9zm5-7a7 7 0 0 1 6.992 7.339 6.003 6.003 0 0 1 3.212 8.65l-1.493-1.493a3.999 3.999 0 0 0-5.207-5.206L14.01 9.795C14.891 9.29 15.911 9 17 9a5 5 0 0 0-7.876-4.09l-1.43-1.43A6.97 6.97 0 0 1 12 2z"],"unicode":"","glyph":"M175.75 1095L1130.35 140.4000000000001L1059.6 69.6500000000001L958.9 170.4000000000001A299.25 299.25 0 0 0 850 150H350A300 300 0 0 0 250.4 733.05A349.6 349.6 0 0 0 268.05 861.2L105 1024.3L175.75 1095zM350 750C350 745.95 350.1 741.8499999999999 350.3 737.8499999999999L353.8 663.45L283.6 638.75A200.10000000000002 200.10000000000002 0 0 1 350 250H850C859.3 250 868.45 250.6500000000001 877.4000000000001 251.8499999999999L351.5 777.75C350.5 768.65 350 759.4000000000001 350 750zM600 1100A350 350 0 0 0 949.6 733.05A300.15000000000003 300.15000000000003 0 0 0 1110.2 300.55L1035.5500000000002 375.2A199.95000000000002 199.95000000000002 0 0 1 775.2 635.4999999999999L700.5 710.25C744.55 735.5 795.55 750 850 750A250 250 0 0 1 456.1999999999999 954.5L384.7 1026A348.5 348.5 0 0 0 600 1100z","horizAdvX":"1200"},"cloud-windy-fill":{"path":["M0 0h24v24H0z","M14 18v-3.993H2.074a8 8 0 0 1 14.383-6.908A5.5 5.5 0 1 1 17.5 18h-3.499zm-8 2h10v2H6v-2zm-4-4h10v2H2v-2z"],"unicode":"","glyph":"M700 300V499.65H103.7A400 400 0 0 0 822.85 845.05A275 275 0 1 0 875 300H700.05zM300 200H800V100H300V200zM100 400H600V300H100V400z","horizAdvX":"1200"},"cloud-windy-line":{"path":["M0 0h24v24H0z","M14 18v-2h3.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-12 0v.007H1V10a8 8 0 0 1 15.458-2.901A5.5 5.5 0 1 1 17.5 18H14zm-8 2h10v2H6v-2zm0-8h8v2H6v-2zm-4 4h10v2H2v-2z"],"unicode":"","glyph":"M700 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 150 700V699.6500000000001H50V700A400 400 0 0 0 822.8999999999999 845.05A275 275 0 1 0 875 300H700zM300 200H800V100H300V200zM300 600H700V500H300V600zM100 400H600V300H100V400z","horizAdvX":"1200"},"cloudy-2-fill":{"path":["M0 0h24v24H0z","M17 21H7A6 6 0 0 1 5.008 9.339a7 7 0 1 1 13.984 0A6 6 0 0 1 17 21z"],"unicode":"","glyph":"M850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 1 0 949.6 733.05A300 300 0 0 0 850 150z","horizAdvX":"1200"},"cloudy-2-line":{"path":["M0 0h24v24H0z","M17 21H7A6 6 0 0 1 5.008 9.339a7 7 0 1 1 13.984 0A6 6 0 0 1 17 21zM7 19h10a4 4 0 1 0-.426-7.978 5 5 0 1 0-9.148 0A4 4 0 1 0 7 19z"],"unicode":"","glyph":"M850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 1 0 949.6 733.05A300 300 0 0 0 850 150zM350 250H850A200 200 0 1 1 828.7 648.9A250 250 0 1 1 371.3000000000001 648.9A200 200 0 1 1 350 250z","horizAdvX":"1200"},"cloudy-fill":{"path":["M0 0h24v24H0z","M9 20.986a8.5 8.5 0 1 1 7.715-12.983A6.5 6.5 0 0 1 17 20.981V21H9v-.014z"],"unicode":"","glyph":"M450 150.7000000000001A424.99999999999994 424.99999999999994 0 1 0 835.75 799.85A325 325 0 0 0 850 150.9499999999998V150H450V150.7000000000001z","horizAdvX":"1200"},"cloudy-line":{"path":["M0 0h24v24H0z","M9.5 6a6.5 6.5 0 0 0 0 13h7a4.5 4.5 0 1 0-.957-8.898A6.502 6.502 0 0 0 9.5 6zm7 15h-7a8.5 8.5 0 1 1 7.215-12.997A6.5 6.5 0 0 1 16.5 21z"],"unicode":"","glyph":"M475 900A325 325 0 0 1 475 250H825A225 225 0 1 1 777.15 694.9A325.1 325.1 0 0 1 475 900zM825 150H475A424.99999999999994 424.99999999999994 0 1 0 835.75 799.85A325 325 0 0 0 825 150z","horizAdvX":"1200"},"code-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13.464 12.536L20 12l-3.536-3.536L15.05 9.88 17.172 12l-2.122 2.121 1.414 1.415zM6.828 12L8.95 9.879 7.536 8.464 4 12l3.536 3.536L8.95 14.12 6.828 12zm4.416 5l3.64-10h-2.128l-3.64 10h2.128z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM823.1999999999999 423.2000000000001L1000 600L823.1999999999999 776.8L752.5 706L858.6 600L752.5 493.9499999999999L823.2000000000002 423.2zM341.4000000000001 600L447.5 706.05L376.8 776.8L200 600L376.8 423.2000000000001L447.5 494L341.4000000000001 600zM562.2 350L744.2 850H637.8L455.8 350H562.2z","horizAdvX":"1200"},"code-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm16 7l-3.536 3.536-1.414-1.415L17.172 12 15.05 9.879l1.414-1.415L20 12zM6.828 12l2.122 2.121-1.414 1.415L4 12l3.536-3.536L8.95 9.88 6.828 12zm4.416 5H9.116l3.64-10h2.128l-3.64 10z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM1000 600L823.1999999999999 423.2000000000001L752.5 493.95L858.6 600L752.5 706.05L823.2000000000002 776.8000000000001L1000 600zM341.4000000000001 600L447.5 493.9499999999999L376.8 423.2L200 600L376.8 776.8L447.5 706L341.4000000000001 600zM562.2 350H455.8L637.8 850H744.2L562.2 350z","horizAdvX":"1200"},"code-fill":{"path":["M0 0h24v24H0z","M23 12l-7.071 7.071-1.414-1.414L20.172 12l-5.657-5.657 1.414-1.414L23 12zM3.828 12l5.657 5.657-1.414 1.414L1 12l7.071-7.071 1.414 1.414L3.828 12z"],"unicode":"","glyph":"M1150 600L796.45 246.4500000000001L725.75 317.1500000000002L1008.6 600L725.75 882.85L796.45 953.55L1150 600zM191.4 600L474.25 317.15L403.55 246.45L50 600L403.55 953.55L474.25 882.85L191.4 600z","horizAdvX":"1200"},"code-line":{"path":["M0 0h24v24H0z","M23 12l-7.071 7.071-1.414-1.414L20.172 12l-5.657-5.657 1.414-1.414L23 12zM3.828 12l5.657 5.657-1.414 1.414L1 12l7.071-7.071 1.414 1.414L3.828 12z"],"unicode":"","glyph":"M1150 600L796.45 246.4500000000001L725.75 317.1500000000002L1008.6 600L725.75 882.85L796.45 953.55L1150 600zM191.4 600L474.25 317.15L403.55 246.45L50 600L403.55 953.55L474.25 882.85L191.4 600z","horizAdvX":"1200"},"code-s-fill":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600z","horizAdvX":"1200"},"code-s-line":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600z","horizAdvX":"1200"},"code-s-slash-fill":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12zm6.96 9H7.66l6.552-18h2.128L9.788 21z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600zM489.4 150H383L710.6 1050H817L489.4 150z","horizAdvX":"1200"},"code-s-slash-line":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12zm6.96 9H7.66l6.552-18h2.128L9.788 21z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600zM489.4 150H383L710.6 1050H817L489.4 150z","horizAdvX":"1200"},"code-view":{"path":["M0 0h24v24H0z","M16.95 8.464l1.414-1.414 4.95 4.95-4.95 4.95-1.414-1.414L20.485 12 16.95 8.464zm-9.9 0L3.515 12l3.535 3.536-1.414 1.414L.686 12l4.95-4.95L7.05 8.464z"],"unicode":"","glyph":"M847.5 776.8L918.2 847.5L1165.7 600L918.2 352.5L847.5 423.2000000000001L1024.25 600L847.5 776.8zM352.5 776.8L175.75 600L352.5000000000001 423.2000000000001L281.8000000000001 352.5L34.3 600L281.8 847.5L352.5 776.8z","horizAdvX":"1200"},"codepen-fill":{"path":["M0 0h24v24H0z","M12 10.202L9.303 12 12 13.798 14.697 12 12 10.202zm4.5.596L19.197 9 13 4.869v3.596l3.5 2.333zm3.5.07L18.303 12 20 13.131V10.87zm-3.5 2.334L13 15.535v3.596L19.197 15 16.5 13.202zM11 8.465V4.869L4.803 9 7.5 10.798 11 8.465zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zm.894-3L4 10.869v2.262L5.697 12zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"],"unicode":"","glyph":"M600 689.9L465.15 600L600 510.1L734.8499999999999 600L600 689.9zM825 660.1L959.85 750L650 956.55V776.75L825 660.1zM1000 656.6L915.15 600L1000 543.45V656.5zM825 539.9L650 423.25V243.4500000000001L959.85 450L825 539.9zM550 776.75V956.55L240.15 750L375 660.1L550 776.75zM240.15 450L550 243.4500000000001V423.25L375 539.9L240.15 450zM284.85 600L200 656.55V543.45L284.85 600zM100 750A50 50 0 0 0 122.25 791.6L572.25 1091.6000000000001A50 50 0 0 0 627.75 1091.6000000000001L1077.75 791.6A50 50 0 0 0 1100 750V450A50 50 0 0 0 1077.75 408.4L627.75 108.3999999999999A50 50 0 0 0 572.25 108.3999999999999L122.25 408.4A50 50 0 0 0 100 450V750z","horizAdvX":"1200"},"codepen-line":{"path":["M0 0h24v24H0z","M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"],"unicode":"","glyph":"M825 539.9L650 423.25V243.4500000000001L959.85 450L825 539.9zM734.8499999999999 600L600 689.9L465.15 600L600 510.1L734.8499999999999 600zM1000 656.55L915.15 600L1000 543.45V656.5zM959.85 750L650 956.55V776.75L825 660.1L959.85 750zM375 660.1L550 776.75V956.55L240.15 750L375 660.1zM240.15 450L550 243.4500000000001V423.25L375 539.9L240.15 450zM200 543.45L284.85 600L200 656.55V543.45zM100 750A50 50 0 0 0 122.25 791.6L572.25 1091.6000000000001A50 50 0 0 0 627.75 1091.6000000000001L1077.75 791.6A50 50 0 0 0 1100 750V450A50 50 0 0 0 1077.75 408.4L627.75 108.3999999999999A50 50 0 0 0 572.25 108.3999999999999L122.25 408.4A50 50 0 0 0 100 450V750z","horizAdvX":"1200"},"coin-fill":{"path":["M0 0h24v24H0z","M23 12v2c0 3.314-4.925 6-11 6-5.967 0-10.824-2.591-10.995-5.823L1 14v-2c0 3.314 4.925 6 11 6s11-2.686 11-6zM12 4c6.075 0 11 2.686 11 6s-4.925 6-11 6-11-2.686-11-6 4.925-6 11-6z"],"unicode":"","glyph":"M1150 600V500C1150 334.3 903.75 200 600 200C301.6500000000001 200 58.8 329.5500000000001 50.25 491.15L50 500V600C50 434.3 296.25 300 600 300S1150 434.3 1150 600zM600 1000C903.75 1000 1150 865.7 1150 700S903.75 400 600 400S50 534.3 50 700S296.25 1000 600 1000z","horizAdvX":"1200"},"coin-line":{"path":["M0 0h24v24H0z","M12 4c6.075 0 11 2.686 11 6v4c0 3.314-4.925 6-11 6-5.967 0-10.824-2.591-10.995-5.823L1 14v-4c0-3.314 4.925-6 11-6zm0 12c-3.72 0-7.01-1.007-9-2.55V14c0 1.882 3.883 4 9 4 5.01 0 8.838-2.03 8.995-3.882L21 14l.001-.55C19.011 14.992 15.721 16 12 16zm0-10c-5.117 0-9 2.118-9 4 0 1.882 3.883 4 9 4s9-2.118 9-4c0-1.882-3.883-4-9-4z"],"unicode":"","glyph":"M600 1000C903.75 1000 1150 865.7 1150 700V500C1150 334.3 903.75 200 600 200C301.6500000000001 200 58.8 329.5500000000001 50.25 491.15L50 500V700C50 865.7 296.25 1000 600 1000zM600 400C414 400 249.5 450.35 150 527.5V500C150 405.9 344.15 300 600 300C850.4999999999999 300 1041.9 401.5 1049.7499999999998 494.1L1050 500L1050.05 527.5C950.55 450.4 786.05 400 600 400zM600 900C344.15 900 150 794.0999999999999 150 700C150 605.9 344.15 500 600 500S1050 605.9 1050 700C1050 794.0999999999999 855.85 900 600 900z","horizAdvX":"1200"},"coins-fill":{"path":["M0 0h24v24H0z","M14 2a8 8 0 0 1 3.292 15.293A8 8 0 1 1 6.706 6.707 8.003 8.003 0 0 1 14 2zm-3 7H9v1a2.5 2.5 0 0 0-.164 4.995L9 15h2l.09.008a.5.5 0 0 1 0 .984L11 16H7v2h2v1h2v-1a2.5 2.5 0 0 0 .164-4.995L11 13H9l-.09-.008a.5.5 0 0 1 0-.984L9 12h4v-2h-2V9zm3-5a5.985 5.985 0 0 0-4.484 2.013 8 8 0 0 1 8.47 8.471A6 6 0 0 0 14 4z"],"unicode":"","glyph":"M700 1100A400 400 0 0 0 864.6000000000001 335.35A400 400 0 1 0 335.3 864.6500000000001A400.15000000000003 400.15000000000003 0 0 0 700 1100zM550 750H450V700A125 125 0 0 1 441.8 450.25L450 450H550L554.5 449.6A25 25 0 0 0 554.5 400.4000000000001L550 400H350V300H450V250H550V300A125 125 0 0 1 558.1999999999999 549.75L550 550H450L445.5 550.4A25 25 0 0 0 445.5 599.5999999999999L450 600H650V700H550V750zM700 1000A299.25 299.25 0 0 1 475.8 899.35A400 400 0 0 0 899.3000000000001 475.8A300 300 0 0 1 700 1000z","horizAdvX":"1200"},"coins-line":{"path":["M0 0h24v24H0z","M14 2a8 8 0 0 1 3.292 15.293A8 8 0 1 1 6.706 6.707 8.003 8.003 0 0 1 14 2zm-4 6a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm1 1v1h2v2H9a.5.5 0 0 0-.09.992L9 13h2a2.5 2.5 0 1 1 0 5v1H9v-1H7v-2h4a.5.5 0 0 0 .09-.992L11 15H9a2.5 2.5 0 1 1 0-5V9h2zm3-5a5.985 5.985 0 0 0-4.484 2.013 8 8 0 0 1 8.47 8.471A6 6 0 0 0 14 4z"],"unicode":"","glyph":"M700 1100A400 400 0 0 0 864.6000000000001 335.35A400 400 0 1 0 335.3 864.6500000000001A400.15000000000003 400.15000000000003 0 0 0 700 1100zM500 800A300 300 0 1 1 500 200A300 300 0 0 1 500 800zM550 750V700H650V600H450A25 25 0 0 1 445.5 550.4L450 550H550A125 125 0 1 0 550 300V250H450V300H350V400H550A25 25 0 0 1 554.5 449.6L550 450H450A125 125 0 1 0 450 700V750H550zM700 1000A299.25 299.25 0 0 1 475.8 899.35A400 400 0 0 0 899.3000000000001 475.8A300 300 0 0 1 700 1000z","horizAdvX":"1200"},"collage-fill":{"path":["M0 0H24V24H0z","M11.189 13.157L12.57 21 4 21c-.552 0-1-.448-1-1v-5.398l8.189-1.445zM20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1h-5.398L11.428 3H20zM9.397 3l1.444 8.188L3 12.57 3 4c0-.552.448-1 1-1h5.397z"],"unicode":"","glyph":"M559.45 542.15L628.5 150L200 150C172.4 150 150 172.4000000000001 150 200V469.9L559.45 542.15zM1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H730.1L571.4000000000001 1050H1000zM469.85 1050L542.0500000000001 640.6L150 571.5L150 1000C150 1027.6 172.4 1050 200 1050H469.85z","horizAdvX":"1200"},"collage-line":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-8.811 10.158L5 14.25V19h7.218l-1.03-5.842zM19 5h-7.219l2.468 14H19V5zM9.75 5H5v7.218l5.842-1.03L9.75 5z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM559.45 542.1L250 487.5V250H610.9L559.4 542.0999999999999zM950 950H589.05L712.4499999999999 250H950V950zM487.5 950H250V589.1L542.0999999999999 640.6L487.5 950z","horizAdvX":"1200"},"command-fill":{"path":["M0 0h24v24H0z","M10 8h4V6.5a3.5 3.5 0 1 1 3.5 3.5H16v4h1.5a3.5 3.5 0 1 1-3.5 3.5V16h-4v1.5A3.5 3.5 0 1 1 6.5 14H8v-4H6.5A3.5 3.5 0 1 1 10 6.5V8zM8 8V6.5A1.5 1.5 0 1 0 6.5 8H8zm0 8H6.5A1.5 1.5 0 1 0 8 17.5V16zm8-8h1.5A1.5 1.5 0 1 0 16 6.5V8zm0 8v1.5a1.5 1.5 0 1 0 1.5-1.5H16zm-6-6v4h4v-4h-4z"],"unicode":"","glyph":"M500 800H700V875A175 175 0 1 0 875 700H800V500H875A175 175 0 1 0 700 325V400H500V325A175 175 0 1 0 325 500H400V700H325A175 175 0 1 0 500 875V800zM400 800V875A75 75 0 1 1 325 800H400zM400 400H325A75 75 0 1 1 400 325V400zM800 800H875A75 75 0 1 1 800 875V800zM800 400V325A75 75 0 1 1 875 400H800zM500 700V500H700V700H500z","horizAdvX":"1200"},"command-line":{"path":["M0 0h24v24H0z","M10 8h4V6.5a3.5 3.5 0 1 1 3.5 3.5H16v4h1.5a3.5 3.5 0 1 1-3.5 3.5V16h-4v1.5A3.5 3.5 0 1 1 6.5 14H8v-4H6.5A3.5 3.5 0 1 1 10 6.5V8zM8 8V6.5A1.5 1.5 0 1 0 6.5 8H8zm0 8H6.5A1.5 1.5 0 1 0 8 17.5V16zm8-8h1.5A1.5 1.5 0 1 0 16 6.5V8zm0 8v1.5a1.5 1.5 0 1 0 1.5-1.5H16zm-6-6v4h4v-4h-4z"],"unicode":"","glyph":"M500 800H700V875A175 175 0 1 0 875 700H800V500H875A175 175 0 1 0 700 325V400H500V325A175 175 0 1 0 325 500H400V700H325A175 175 0 1 0 500 875V800zM400 800V875A75 75 0 1 1 325 800H400zM400 400H325A75 75 0 1 1 400 325V400zM800 800H875A75 75 0 1 1 800 875V800zM800 400V325A75 75 0 1 1 875 400H800zM500 700V500H700V700H500z","horizAdvX":"1200"},"community-fill":{"path":["M0 0h24v24H0z","M9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm12 2H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zm-5-10v2h2v-2h-2zm0 4v2h2v-2h-2zm0-8v2h2V7h-2zm-4 0v2h2V7h-2z"],"unicode":"","glyph":"M450 250H600V552.9L400 727.3L200 552.9V250H350V450H450V250zM1050 150H150A50 50 0 0 0 100 200V575.65A50 50 0 0 0 117.15 613.35L300 772.8V1000A50 50 0 0 0 350 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150zM800 650V550H900V650H800zM800 450V350H900V450H800zM800 850V750H900V850H800zM600 850V750H700V850H600z","horizAdvX":"1200"},"community-line":{"path":["M0 0h24v24H0z","M21 21H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zM9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm5 0h6V5H8v2.127c.234 0 .469.082.657.247l5 4.359a1 1 0 0 1 .343.754V19zm2-8h2v2h-2v-2zm0 4h2v2h-2v-2zm0-8h2v2h-2V7zm-4 0h2v2h-2V7z"],"unicode":"","glyph":"M1050 150H150A50 50 0 0 0 100 200V575.65A50 50 0 0 0 117.15 613.35L300 772.8V1000A50 50 0 0 0 350 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150zM450 250H600V552.9L400 727.3L200 552.9V250H350V450H450V250zM700 250H1000V950H400V843.6500000000001C411.7 843.6500000000001 423.45 839.55 432.85 831.3L682.85 613.35A50 50 0 0 0 700 575.65V250zM800 650H900V550H800V650zM800 450H900V350H800V450zM800 850H900V750H800V850zM600 850H700V750H600V850z","horizAdvX":"1200"},"compass-2-fill":{"path":["M0 0h24v24H0z","M18.328 4.258L10.586 12 12 13.414l7.742-7.742A9.957 9.957 0 0 1 22 12c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2c2.4 0 4.604.847 6.328 2.258z"],"unicode":"","glyph":"M916.4 987.1L529.3000000000001 600L600 529.3000000000001L987.1 916.4A497.8500000000001 497.8500000000001 0 0 0 1100 600C1100 324 876 100 600 100S100 324 100 600S324 1100 600 1100C720 1100 830.1999999999999 1057.65 916.4 987.1z","horizAdvX":"1200"},"compass-2-line":{"path":["M0 0h24v24H0z","M16.625 3.133l-1.5 1.5A7.98 7.98 0 0 0 12 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8a7.98 7.98 0 0 0-.633-3.125l1.5-1.5A9.951 9.951 0 0 1 22 12c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2c1.668 0 3.241.41 4.625 1.133zm1.739 1.089l1.414 1.414L12 13.414 10.586 12l7.778-7.778z"],"unicode":"","glyph":"M831.25 1043.35L756.25 968.35A399 399 0 0 1 600 1000C379 1000 200 821 200 600S379 200 600 200S1000 378.9999999999999 1000 600A399 399 0 0 1 968.35 756.25L1043.3500000000001 831.25A497.55 497.55 0 0 0 1100 600C1100 324 876 100 600 100S100 324 100 600S324 1100 600 1100C683.4 1100 762.05 1079.5 831.25 1043.35zM918.2 988.9L988.9 918.2L600 529.3000000000001L529.3000000000001 600L918.2 988.9z","horizAdvX":"1200"},"compass-3-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.5-14.5L10 10l-2.5 6.5L14 14l2.5-6.5zM12 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM825 825L500 700L375 375L700 500L825 825zM600 550A50 50 0 1 0 600 650A50 50 0 0 0 600 550z","horizAdvX":"1200"},"compass-3-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm4.5-12.5L14 14l-6.5 2.5L10 10l6.5-2.5zM12 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM825 825L700 500L375 375L500 700L825 825zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"compass-4-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm3.446-12.032a4.02 4.02 0 0 0-1.414-1.414l-5.478 5.478a4.02 4.02 0 0 0 1.414 1.414l5.478-5.478z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM772.3 701.6A200.99999999999997 200.99999999999997 0 0 1 701.6 772.3L427.7 498.4A200.99999999999997 200.99999999999997 0 0 1 498.4 427.7000000000001L772.3 701.6z","horizAdvX":"1200"},"compass-4-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm3.446-10.032l-5.478 5.478a4.02 4.02 0 0 1-1.414-1.414l5.478-5.478a4.02 4.02 0 0 1 1.414 1.414z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM772.3 701.6L498.4 427.7000000000001A200.99999999999997 200.99999999999997 0 0 0 427.7 498.4L701.6 772.3A200.99999999999997 200.99999999999997 0 0 0 772.3 701.6z","horizAdvX":"1200"},"compass-discover-fill":{"path":["M0 0h24v24H0z","M13 22C7.477 22 3 17.523 3 12S7.477 2 13 2s10 4.477 10 10-4.477 10-10 10zM8 11.5l4 1.5 1.5 4.002L17 8l-9 3.5z"],"unicode":"","glyph":"M650 100C373.85 100 150 323.85 150 600S373.85 1100 650 1100S1150 876.15 1150 600S926.15 100 650 100zM400 625L600 550L675 349.9000000000001L850 800L400 625z","horizAdvX":"1200"},"compass-discover-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-8.5L16 8l-3.5 9.002L11 13l-4-1.5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 625L800 800L625 349.8999999999999L550 550L350 625z","horizAdvX":"1200"},"compass-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm3.5-13.5l-5 2-2 5 5-2 2-5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM775 775L525 675L425 425L675 525L775 775z","horizAdvX":"1200"},"compass-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm3.5-11.5l-2 5-5 2 2-5 5-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM775 775L675 525L425 425L525 675L775 775z","horizAdvX":"1200"},"compasses-2-fill":{"path":["M0 0h24v24H0z","M16.33 13.5A6.988 6.988 0 0 0 19 8h2a8.987 8.987 0 0 1-3.662 7.246l2.528 4.378a2 2 0 0 1-.732 2.732l-3.527-6.108A8.97 8.97 0 0 1 12 17a8.97 8.97 0 0 1-3.607-.752l-3.527 6.108a2 2 0 0 1-.732-2.732l5.063-8.77A4.002 4.002 0 0 1 11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728L16.33 13.5zM14.6 14.502l-1.528-2.647a4.004 4.004 0 0 1-2.142 0l-1.528 2.647c.804.321 1.68.498 2.599.498.918 0 1.795-.177 2.599-.498zM12 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M816.4999999999999 525A349.40000000000003 349.40000000000003 0 0 1 950 800H1050A449.3500000000001 449.3500000000001 0 0 0 866.9000000000001 437.7L993.3 218.7999999999999A100 100 0 0 0 956.7 82.1999999999998L780.3499999999999 387.5999999999999A448.50000000000006 448.50000000000006 0 0 0 600 350A448.50000000000006 448.50000000000006 0 0 0 419.6500000000001 387.5999999999999L243.3000000000001 82.1999999999998A100 100 0 0 0 206.7 218.7999999999999L459.85 657.2999999999998A200.10000000000002 200.10000000000002 0 0 0 550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L816.4999999999999 525zM730 474.9L653.5999999999999 607.25A200.2 200.2 0 0 0 546.5 607.25L470.1 474.9C510.3 458.85 554.0999999999999 450 600.05 450C645.9499999999999 450 689.8 458.85 730 474.9zM600 750A50 50 0 1 1 600 850A50 50 0 0 1 600 750z","horizAdvX":"1200"},"compasses-2-line":{"path":["M0 0h24v24H0z","M16.33 13.5A6.988 6.988 0 0 0 19 8h2a8.987 8.987 0 0 1-3.662 7.246l2.528 4.378a2 2 0 0 1-.732 2.732l-3.527-6.108A8.97 8.97 0 0 1 12 17a8.97 8.97 0 0 1-3.607-.752l-3.527 6.108a2 2 0 0 1-.732-2.732l5.063-8.77A4.002 4.002 0 0 1 11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728L16.33 13.5zM14.6 14.502l-1.528-2.647a4.004 4.004 0 0 1-2.142 0l-1.528 2.647c.804.321 1.68.498 2.599.498.918 0 1.795-.177 2.599-.498zM12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M816.4999999999999 525A349.40000000000003 349.40000000000003 0 0 1 950 800H1050A449.3500000000001 449.3500000000001 0 0 0 866.9000000000001 437.7L993.3 218.7999999999999A100 100 0 0 0 956.7 82.1999999999998L780.3499999999999 387.5999999999999A448.50000000000006 448.50000000000006 0 0 0 600 350A448.50000000000006 448.50000000000006 0 0 0 419.6500000000001 387.5999999999999L243.3000000000001 82.1999999999998A100 100 0 0 0 206.7 218.7999999999999L459.85 657.2999999999998A200.10000000000002 200.10000000000002 0 0 0 550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L816.4999999999999 525zM730 474.9L653.5999999999999 607.25A200.2 200.2 0 0 0 546.5 607.25L470.1 474.9C510.3 458.85 554.0999999999999 450 600.05 450C645.9499999999999 450 689.8 458.85 730 474.9zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700z","horizAdvX":"1200"},"compasses-fill":{"path":["M0 0h24v24H0z","M11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728l6.063 10.502-1.732 1-6.063-10.501a4.004 4.004 0 0 1-2.142 0L4.866 22.356l-1.732-1 6.063-10.502A4.002 4.002 0 0 1 11 4.126zM12 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L1043.3 132.1999999999998L956.7 82.1999999999998L653.5500000000001 607.2499999999999A200.2 200.2 0 0 0 546.45 607.2499999999999L243.3 82.1999999999998L156.7 132.1999999999998L459.85 657.3A200.10000000000002 200.10000000000002 0 0 0 550 993.7zM600 750A50 50 0 1 1 600 850A50 50 0 0 1 600 750z","horizAdvX":"1200"},"compasses-line":{"path":["M0 0h24v24H0z","M11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728l6.063 10.502-1.732 1-6.063-10.501a4.004 4.004 0 0 1-2.142 0L4.866 22.356l-1.732-1 6.063-10.502A4.002 4.002 0 0 1 11 4.126zM12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L1043.3 132.1999999999998L956.7 82.1999999999998L653.5500000000001 607.2499999999999A200.2 200.2 0 0 0 546.45 607.2499999999999L243.3 82.1999999999998L156.7 132.1999999999998L459.85 657.3A200.10000000000002 200.10000000000002 0 0 0 550 993.7zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700z","horizAdvX":"1200"},"computer-fill":{"path":["M0 0h24v24H0z","M13 18v2h4v2H7v-2h4v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H13z"],"unicode":"","glyph":"M650 300V200H850V100H350V200H550V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H650z","horizAdvX":"1200"},"computer-line":{"path":["M0 0h24v24H0z","M4 16h16V5H4v11zm9 2v2h4v2H7v-2h4v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H13z"],"unicode":"","glyph":"M200 400H1000V950H200V400zM650 300V200H850V100H350V200H550V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H650z","horizAdvX":"1200"},"contacts-book-2-fill":{"path":["M0 0h24v24H0z","M20 22H6a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-2H6a1 1 0 0 0 0 2h13zm-7-10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4h6a3 3 0 0 0-6 0z"],"unicode":"","glyph":"M1000 100H300A150 150 0 0 0 150 250V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V300H300A50 50 0 0 1 300 200H950zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700zM450 500H750A150 150 0 0 1 450 500z","horizAdvX":"1200"},"contacts-book-2-line":{"path":["M0 0h24v24H0z","M20 22H6a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-2H6a1 1 0 0 0 0 2h13zM5 16.17c.313-.11.65-.17 1-.17h13V4H6a1 1 0 0 0-1 1v11.17zM12 10a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-3 4a3 3 0 0 1 6 0H9z"],"unicode":"","glyph":"M1000 100H300A150 150 0 0 0 150 250V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V300H300A50 50 0 0 1 300 200H950zM250 391.4999999999999C265.65 396.9999999999999 282.5 400 300 400H950V1000H300A50 50 0 0 1 250 950V391.4999999999999zM600 700A100 100 0 1 0 600 900A100 100 0 0 0 600 700zM450 500A150 150 0 0 0 750 500H450z","horizAdvX":"1200"},"contacts-book-fill":{"path":["M0 0h24v24H0z","M7 2v20H3V2h4zm2 0h10.005C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H9V2zm13 4h2v4h-2V6zm0 6h2v4h-2v-4zm-7 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4h6a3 3 0 0 0-6 0z"],"unicode":"","glyph":"M350 1100V100H150V1100H350zM450 1100H950.2500000000002C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H450V1100zM1100 900H1200V700H1100V900zM1100 600H1200V400H1100V600zM750 600A100 100 0 1 1 750 800A100 100 0 0 1 750 600zM600 400H900A150 150 0 0 1 600 400z","horizAdvX":"1200"},"contacts-book-line":{"path":["M0 0h24v24H0z","M3 2h16.005C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H3V2zm4 2H5v16h2V4zm2 16h10V4H9v16zm2-4a3 3 0 0 1 6 0h-6zm3-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm8-6h2v4h-2V6zm0 6h2v4h-2v-4z"],"unicode":"","glyph":"M150 1100H950.25C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H150V1100zM350 1000H250V200H350V1000zM450 200H950V1000H450V200zM550 400A150 150 0 0 0 850 400H550zM700 600A100 100 0 1 0 700 800A100 100 0 0 0 700 600zM1100 900H1200V700H1100V900zM1100 600H1200V400H1100V600z","horizAdvX":"1200"},"contacts-book-upload-fill":{"path":["M0 0h24v24H0z","M7 2v20H3V2h4zm12.005 0C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H9V2h10.005zM15 8l-4 4h3v4h2v-4h3l-4-4zm9 4v4h-2v-4h2zm0-6v4h-2V6h2z"],"unicode":"","glyph":"M350 1100V100H150V1100H350zM950.2500000000002 1100C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H450V1100H950.2500000000002zM750 800L550 600H700V400H800V600H950L750 800zM1200 600V400H1100V600H1200zM1200 900V700H1100V900H1200z","horizAdvX":"1200"},"contacts-book-upload-line":{"path":["M0 0h24v24H0z","M19.005 2C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H3V2h16.005zM7 4H5v16h2V4zm12 0H9v16h10V4zm-5 4l4 4h-3v4h-2v-4h-3l4-4zm10 4v4h-2v-4h2zm0-6v4h-2V6h2z"],"unicode":"","glyph":"M950.25 1100C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H150V1100H950.25zM350 1000H250V200H350V1000zM950 1000H450V200H950V1000zM700 800L900 600H750V400H650V600H500L700 800zM1200 600V400H1100V600H1200zM1200 900V700H1100V900H1200z","horizAdvX":"1200"},"contacts-fill":{"path":["M0 0h24v24H0z","M2 22a8 8 0 1 1 16 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm10 4h4v2h-4v-2zm-3-5h7v2h-7v-2zm2-5h5v2h-5V7z"],"unicode":"","glyph":"M100 100A400 400 0 1 0 900 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM1000 350H1200V250H1000V350zM850 600H1200V500H850V600zM950 850H1200V750H950V850z","horizAdvX":"1200"},"contacts-line":{"path":["M0 0h24v24H0z","M19 7h5v2h-5V7zm-2 5h7v2h-7v-2zm3 5h4v2h-4v-2zM2 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"],"unicode":"","glyph":"M950 850H1200V750H950V850zM850 600H1200V500H850V600zM1000 350H1200V250H1000V350zM100 100A400 400 0 1 0 900 100H800A300 300 0 1 1 200 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM500 650C610.5 650 700 739.5 700 850S610.5 1050 500 1050S300 960.5 300 850S389.5 650 500 650z","horizAdvX":"1200"},"contrast-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-6.671-5.575A8 8 0 1 0 16.425 5.328a8.997 8.997 0 0 1-2.304 8.793 8.997 8.997 0 0 1-8.792 2.304z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM266.45 378.75A400 400 0 1 1 821.25 933.6A449.85 449.85 0 0 0 706.0500000000001 493.95A449.85 449.85 0 0 0 266.4500000000001 378.7500000000001z","horizAdvX":"1200"},"contrast-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-4.68a8.965 8.965 0 0 0 5.707-2.613A8.965 8.965 0 0 0 15.32 7 6 6 0 1 1 7 15.32z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 434A448.25 448.25 0 0 1 635.35 564.65A448.25 448.25 0 0 1 766 850A300 300 0 1 0 350 434z","horizAdvX":"1200"},"contrast-drop-2-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0zM12 3.101L7.05 8.05A6.978 6.978 0 0 0 5 13h14a6.978 6.978 0 0 0-2.05-4.95L12 3.1z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2zM600 1044.95L352.5 797.5A348.9 348.9 0 0 1 250 550H950A348.9 348.9 0 0 1 847.5 797.5L600 1045z","horizAdvX":"1200"},"contrast-drop-2-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272zM7 13h10a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4zM350 550H850A250 250 0 0 0 350 550z","horizAdvX":"1200"},"contrast-drop-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0zM7.05 8.05A7 7 0 0 0 12.004 20L12 3.1 7.05 8.05z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2zM352.5 797.5A350 350 0 0 1 600.1999999999999 200L600 1045L352.5 797.5z","horizAdvX":"1200"},"contrast-drop-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272zM12 18V8a5 5 0 0 1 0 10z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4zM600 300V800A250 250 0 0 0 600 300z","horizAdvX":"1200"},"contrast-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2V4a8 8 0 1 0 0 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200V1000A400 400 0 1 1 600 200z","horizAdvX":"1200"},"contrast-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-2V6a6 6 0 1 1 0 12z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 300V900A300 300 0 1 0 600 300z","horizAdvX":"1200"},"copper-coin-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-14.243L7.757 12 12 16.243 16.243 12 12 7.757z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 812.1500000000001L387.85 600L600 387.85L812.15 600L600 812.1500000000001z","horizAdvX":"1200"},"copper-coin-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-12.95L16.95 12 12 16.95 7.05 12 12 7.05zm0 2.829L9.879 12 12 14.121 14.121 12 12 9.879z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 847.5L847.5 600L600 352.5L352.5 600L600 847.5zM600 706.05L493.95 600L600 493.9499999999999L706.0500000000001 600L600 706.05z","horizAdvX":"1200"},"copper-diamond-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM9.5 9L7 11.5l5 5 5-5L14.5 9h-5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM475 750L350 625L600 375L850 625L725 750H475z","horizAdvX":"1200"},"copper-diamond-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM9 8h6l2.5 3.5L12 17l-5.5-5.5L9 8zm1.03 2l-.92 1.29L12 14.18l2.89-2.89-.92-1.29h-3.94z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 800H750L875 625L600 350L325 625L450 800zM501.4999999999999 700L455.5 635.5L600 491L744.5 635.5L698.5 700H501.5000000000001z","horizAdvX":"1200"},"copyleft-fill":{"path":["M0 0H24V24H0z","M12 22C6.48 22 2 17.52 2 12S6.48 2 12 2s10 4.48 10 10-4.48 10-10 10zm0-5c2.76 0 5-2.24 5-5s-2.24-5-5-5c-1.82 0-3.413.973-4.288 2.428l1.715 1.028C9.952 9.583 10.907 9 12 9c1.658 0 3 1.342 3 3s-1.342 3-3 3c-1.093 0-2.05-.584-2.574-1.457l-1.714 1.03C8.587 16.026 10.18 17 12 17z"],"unicode":"","glyph":"M600 100C324 100 100 324 100 600S324 1100 600 1100S1100 876 1100 600S876 100 600 100zM600 350C738 350 850 462 850 600S738 850 600 850C509 850 429.35 801.35 385.6 728.5999999999999L471.35 677.1999999999999C497.6 720.8499999999999 545.35 750 600 750C682.9 750 750 682.9 750 600S682.9 450 600 450C545.35 450 497.4999999999999 479.1999999999999 471.3 522.85L385.6 471.35C429.35 398.7000000000001 509 350 600 350z","horizAdvX":"1200"},"copyleft-line":{"path":["M0 0H24V24H0z","M12 22C6.48 22 2 17.52 2 12S6.48 2 12 2s10 4.48 10 10-4.48 10-10 10zm0-2c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm0-3c-1.82 0-3.413-.973-4.288-2.428l1.714-1.029C9.951 14.416 10.907 15 12 15c1.658 0 3-1.342 3-3s-1.342-3-3-3c-1.093 0-2.048.583-2.573 1.456L7.712 9.428C8.587 7.973 10.18 7 12 7c2.76 0 5 2.24 5 5s-2.24 5-5 5z"],"unicode":"","glyph":"M600 100C324 100 100 324 100 600S324 1100 600 1100S1100 876 1100 600S876 100 600 100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM600 350C509 350 429.35 398.65 385.6 471.4000000000001L471.3 522.85C497.55 479.1999999999999 545.35 450 600 450C682.9 450 750 517.1 750 600S682.9 750 600 750C545.35 750 497.6 720.8499999999999 471.35 677.2L385.6 728.5999999999999C429.35 801.35 509 850 600 850C738 850 850 738 850 600S738 350 600 350z","horizAdvX":"1200"},"copyright-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 5c-2.76 0-5 2.24-5 5s2.24 5 5 5c1.82 0 3.413-.973 4.288-2.428l-1.715-1.028A3 3 0 1 1 12 9c1.093 0 2.05.584 2.574 1.457l1.714-1.03A4.999 4.999 0 0 0 12 7z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 850C462 850 350 738 350 600S462 350 600 350C691 350 770.65 398.65 814.4 471.4000000000001L728.65 522.8000000000001A150 150 0 1 0 600 750C654.65 750 702.5 720.8 728.7 677.15L814.4 728.6499999999999A249.94999999999996 249.94999999999996 0 0 1 600 850z","horizAdvX":"1200"},"copyright-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 3c1.82 0 3.413.973 4.288 2.428l-1.714 1.029A3 3 0 1 0 12 15a2.998 2.998 0 0 0 2.573-1.456l1.715 1.028A4.999 4.999 0 0 1 7 12c0-2.76 2.24-5 5-5z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 1000C379 1000 200 821 200 600S379 200 600 200S1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000zM600 850C691 850 770.65 801.35 814.4 728.5999999999999L728.7 677.15A150 150 0 1 1 600 450A149.90000000000003 149.90000000000003 0 0 1 728.65 522.8L814.4 471.4A249.94999999999996 249.94999999999996 0 0 0 350 600C350 738 462 850 600 850z","horizAdvX":"1200"},"coreos-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.671-9.696c-.04.85.037 1.697.118 2.544.005.06.027.074.08.08.406.054.813.102 1.222.127.964.061 1.928.139 2.896.085.55-.03 1.1-.048 1.648-.095.78-.068 1.56-.155 2.33-.312.958-.194 1.907-.425 2.8-.845.406-.19.79-.415 1.114-.736.238-.235.408-.507.41-.86a8.92 8.92 0 0 0-.045-.94 9.022 9.022 0 0 0-.481-2.18c-.584-1.618-1.51-2.989-2.826-4.07a8.87 8.87 0 0 0-3.851-1.863c-.5-.105-1.006-.144-1.514-.18-.573-.041-1.064.12-1.488.514-.495.457-.837 1.024-1.122 1.633-.667 1.427-.973 2.954-1.166 4.508a15.215 15.215 0 0 0-.125 2.59zm3.57-5.03c.959.03 1.77.324 2.494.856a4.326 4.326 0 0 1 1.714 2.612c.068.304.097.612.103.922.005.209-.11.362-.262.49-.307.258-.67.401-1.05.508-.74.207-1.496.326-2.265.366-.5.026-1 .035-1.5.01-.192-.01-.385-.024-.577-.032-.06-.002-.08-.02-.084-.081-.023-.434-.057-.868-.05-1.302.016-1.026.094-2.045.397-3.034.1-.329.223-.65.42-.936.173-.25.378-.437.66-.38z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM416.4500000000001 584.8C414.4500000000001 542.3 418.3000000000001 499.9499999999999 422.35 457.5999999999999C422.6000000000001 454.5999999999999 423.7 453.9 426.35 453.5999999999999C446.6500000000001 450.9 467.0000000000001 448.5 487.45 447.2499999999999C535.6500000000001 444.2 583.85 440.3 632.25 442.9999999999999C659.75 444.4999999999999 687.25 445.3999999999999 714.65 447.7499999999999C753.65 451.1499999999999 792.65 455.4999999999999 831.1499999999999 463.3499999999999C879.0499999999998 473.05 926.4999999999998 484.5999999999999 971.1499999999997 505.5999999999999C991.4499999999998 515.0999999999999 1010.6499999999997 526.3499999999999 1026.85 542.4C1038.75 554.1499999999999 1047.25 567.7499999999999 1047.35 585.3999999999999A446 446 0 0 1 1045.1 632.3999999999999A451.09999999999997 451.09999999999997 0 0 1 1021.0499999999998 741.3999999999999C991.8499999999998 822.3 945.5499999999998 890.8499999999999 879.7499999999998 944.8999999999997A443.5 443.5 0 0 1 687.1999999999998 1038.05C662.1999999999998 1043.3 636.8999999999997 1045.25 611.4999999999999 1047.05C582.8499999999998 1049.1 558.2999999999998 1041.05 537.0999999999999 1021.35C512.3499999999999 998.4999999999998 495.2499999999999 970.1499999999997 480.9999999999999 939.6999999999998C447.6499999999999 868.3499999999999 432.3499999999999 791.9999999999999 422.6999999999999 714.3A760.75 760.75 0 0 1 416.4499999999999 584.8zM594.95 836.3C642.9 834.8 683.45 820.1 719.6500000000001 793.5A216.29999999999998 216.29999999999998 0 0 0 805.3499999999999 662.9C808.75 647.6999999999999 810.2 632.3 810.5 616.8C810.75 606.3499999999999 805.0000000000001 598.6999999999999 797.4 592.3C782.05 579.3999999999999 763.9 572.2499999999999 744.9 566.8999999999999C707.9 556.5499999999998 670.0999999999999 550.5999999999998 631.65 548.5999999999999C606.65 547.3 581.65 546.8499999999999 556.65 548.0999999999999C547.05 548.5999999999999 537.4 549.2999999999998 527.8 549.6999999999999C524.8 549.8 523.8 550.6999999999999 523.6 553.7499999999999C522.45 575.4499999999998 520.75 597.1499999999999 521.0999999999999 618.8499999999999C521.9 670.1499999999999 525.8 721.0999999999999 540.9499999999999 770.55C545.9499999999999 787 552.1 803.05 561.9499999999999 817.3499999999999C570.5999999999999 829.8499999999999 580.8499999999999 839.1999999999998 594.9499999999999 836.3499999999999z","horizAdvX":"1200"},"coreos-line":{"path":["M0 0h24v24H0z","M9.42 4.4a8 8 0 1 0 10.202 9.91c-3.4 1.46-7.248 1.98-11.545 1.565-.711-4.126-.264-7.95 1.343-11.475zm2.448-.414a16.805 16.805 0 0 0-1.542 3.769 5.98 5.98 0 0 1 4.115 1.756 5.977 5.977 0 0 1 1.745 3.861c1.33-.341 2.589-.82 3.78-1.433a7.994 7.994 0 0 0-8.098-7.953zM4.895 19.057C.99 15.152.99 8.82 4.895 4.915c3.905-3.905 10.237-3.905 14.142 0 3.905 3.905 3.905 10.237 0 14.142-3.905 3.905-10.237 3.905-14.142 0zm5.02-9.293a17.885 17.885 0 0 0-.076 4.229 23.144 23.144 0 0 0 4.36-.22 3.988 3.988 0 0 0-1.172-2.848 3.99 3.99 0 0 0-3.112-1.161z"],"unicode":"","glyph":"M471 980A400 400 0 1 1 981.1 484.5C811.1 411.5 618.6999999999999 385.5 403.85 406.25C368.3 612.5500000000001 390.65 803.75 471 980zM593.4 1000.7A840.2500000000001 840.2500000000001 0 0 1 516.3000000000001 812.25A299.00000000000006 299.00000000000006 0 0 0 722.0500000000001 724.4499999999999A298.85 298.85 0 0 0 809.3 531.3999999999999C875.8 548.4499999999999 938.7499999999998 572.4 998.3 603.05A399.70000000000005 399.70000000000005 0 0 1 593.4 1000.7zM244.75 247.1500000000001C49.5 442.4000000000001 49.5 759 244.75 954.25C440 1149.5 756.6 1149.5 951.85 954.25C1147.1 759 1147.1 442.4 951.85 247.1500000000001C756.6 51.9000000000001 440 51.9000000000001 244.75 247.1500000000001zM495.7499999999999 711.8A894.2500000000001 894.2500000000001 0 0 1 491.9499999999999 500.35A1157.2 1157.2 0 0 1 709.9499999999999 511.3500000000001A199.4 199.4 0 0 1 651.3499999999999 653.7500000000001A199.5 199.5 0 0 1 495.7499999999999 711.8000000000002z","horizAdvX":"1200"},"coupon-2-fill":{"path":["M0 0h24v24H0z","M14 3v18H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h11zm2 0h5a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1h-5V3z"],"unicode":"","glyph":"M700 1050V150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H700zM800 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H800V1050z","horizAdvX":"1200"},"coupon-2-line":{"path":["M0 0h24v24H0z","M2 9.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5zM14 5H4v2.968a4.5 4.5 0 0 1 0 8.064V19h10V5zm2 0v14h4v-2.968a4.5 4.5 0 0 1 0-8.064V5h-4z"],"unicode":"","glyph":"M100 725V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725zM700 950H200V801.6A225 225 0 0 0 200 398.4V250H700V950zM800 950V250H1000V398.4A225 225 0 0 0 1000 801.6V950H800z","horizAdvX":"1200"},"coupon-3-fill":{"path":["M0 0h24v24H0z","M11 21a1.5 1.5 0 0 0-3 0H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a1.5 1.5 0 0 0 3 0h10a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H11zM9.5 10.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm0 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M550 150A75 75 0 0 1 400 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H400A75 75 0 0 1 550 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H550zM475 675A75 75 0 1 1 475 825A75 75 0 0 1 475 675zM475 375A75 75 0 1 1 475 525A75 75 0 0 1 475 375z","horizAdvX":"1200"},"coupon-3-line":{"path":["M0 0h24v24H0z","M2 4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4zm6.085 15a1.5 1.5 0 0 1 2.83 0H20v-2.968a4.5 4.5 0 0 1 0-8.064V5h-9.085a1.5 1.5 0 0 1-2.83 0H4v14h4.085zM9.5 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M100 1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000zM404.2500000000001 250A75 75 0 0 0 545.75 250H1000V398.4A225 225 0 0 0 1000 801.6V950H545.75A75 75 0 0 0 404.25 950H200V250H404.2500000000001zM475 650A75 75 0 1 0 475 800A75 75 0 0 0 475 650zM475 400A75 75 0 1 0 475 550A75 75 0 0 0 475 400z","horizAdvX":"1200"},"coupon-4-fill":{"path":["M0 0h24v24H0z","M10 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7a2 2 0 1 0 4 0h7a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-7a2 2 0 1 0-4 0zM6 8v8h2V8H6zm10 0v8h2V8h-2z"],"unicode":"","glyph":"M500 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H500A100 100 0 1 1 700 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H700A100 100 0 1 1 500 150zM300 800V400H400V800H300zM800 800V400H900V800H800z","horizAdvX":"1200"},"coupon-4-line":{"path":["M0 0h24v24H0z","M10 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7a2 2 0 1 0 4 0h7a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-7a2 2 0 1 0-4 0zm-1.465-2A3.998 3.998 0 0 1 12 17c1.48 0 2.773.804 3.465 2H20V5h-4.535A3.998 3.998 0 0 1 12 7a3.998 3.998 0 0 1-3.465-2H4v14h4.535zM6 8h2v8H6V8zm10 0h2v8h-2V8z"],"unicode":"","glyph":"M500 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H500A100 100 0 1 1 700 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H700A100 100 0 1 1 500 150zM426.75 250A199.90000000000003 199.90000000000003 0 0 0 600 350C674 350 738.65 309.8000000000001 773.25 250H1000V950H773.25A199.90000000000003 199.90000000000003 0 0 0 600 850A199.90000000000003 199.90000000000003 0 0 0 426.75 950H200V250H426.75zM300 800H400V400H300V800zM800 800H900V400H800V800z","horizAdvX":"1200"},"coupon-5-fill":{"path":["M0 0h24v24H0z","M21 14v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a2 2 0 1 0 0-4V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v7a2 2 0 1 0 0 4zM9 6v2h6V6H9zm0 10v2h6v-2H9z"],"unicode":"","glyph":"M1050 500V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V500A100 100 0 1 1 150 700V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V700A100 100 0 1 1 1050 500zM450 900V800H750V900H450zM450 400V300H750V400H450z","horizAdvX":"1200"},"coupon-5-line":{"path":["M0 0h24v24H0z","M21 14v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a2 2 0 1 0 0-4V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v7a2 2 0 1 0 0 4zm-2 1.465A3.998 3.998 0 0 1 17 12c0-1.48.804-2.773 2-3.465V4H5v4.535C6.196 9.227 7 10.52 7 12c0 1.48-.804 2.773-2 3.465V20h14v-4.535zM9 6h6v2H9V6zm0 10h6v2H9v-2z"],"unicode":"","glyph":"M1050 500V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V500A100 100 0 1 1 150 700V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V700A100 100 0 1 1 1050 500zM950 426.75A199.90000000000003 199.90000000000003 0 0 0 850 600C850 674 890.1999999999999 738.65 950 773.25V1000H250V773.25C309.8 738.65 350 674 350 600C350 526 309.8 461.35 250 426.75V200H950V426.75zM450 900H750V800H450V900zM450 400H750V300H450V400z","horizAdvX":"1200"},"coupon-fill":{"path":["M0 0h24v24H0z","M2 9.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5zM9 9v2h6V9H9zm0 4v2h6v-2H9z"],"unicode":"","glyph":"M100 725V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725zM450 750V650H750V750H450zM450 550V450H750V550H450z","horizAdvX":"1200"},"coupon-line":{"path":["M0 0h24v24H0z","M2 9.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5zm2-1.532a4.5 4.5 0 0 1 0 8.064V19h16v-2.968a4.5 4.5 0 0 1 0-8.064V5H4v2.968zM9 9h6v2H9V9zm0 4h6v2H9v-2z"],"unicode":"","glyph":"M100 725V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725zM200 801.6A225 225 0 0 0 200 398.4V250H1000V398.4A225 225 0 0 0 1000 801.6V950H200V801.6zM450 750H750V650H450V750zM450 550H750V450H450V550z","horizAdvX":"1200"},"cpu-fill":{"path":["M0 0h24v24H0z","M14 20h-4v2H8v-2H5a1 1 0 0 1-1-1v-3H2v-2h2v-4H2V8h2V5a1 1 0 0 1 1-1h3V2h2v2h4V2h2v2h3a1 1 0 0 1 1 1v3h2v2h-2v4h2v2h-2v3a1 1 0 0 1-1 1h-3v2h-2v-2zM7 7v4h4V7H7z"],"unicode":"","glyph":"M700 200H500V100H400V200H250A50 50 0 0 0 200 250V400H100V500H200V700H100V800H200V950A50 50 0 0 0 250 1000H400V1100H500V1000H700V1100H800V1000H950A50 50 0 0 0 1000 950V800H1100V700H1000V500H1100V400H1000V250A50 50 0 0 0 950 200H800V100H700V200zM350 850V650H550V850H350z","horizAdvX":"1200"},"cpu-line":{"path":["M0 0h24v24H0z","M6 18h12V6H6v12zm8 2h-4v2H8v-2H5a1 1 0 0 1-1-1v-3H2v-2h2v-4H2V8h2V5a1 1 0 0 1 1-1h3V2h2v2h4V2h2v2h3a1 1 0 0 1 1 1v3h2v2h-2v4h2v2h-2v3a1 1 0 0 1-1 1h-3v2h-2v-2zM8 8h8v8H8V8z"],"unicode":"","glyph":"M300 300H900V900H300V300zM700 200H500V100H400V200H250A50 50 0 0 0 200 250V400H100V500H200V700H100V800H200V950A50 50 0 0 0 250 1000H400V1100H500V1000H700V1100H800V1000H950A50 50 0 0 0 1000 950V800H1100V700H1000V500H1100V400H1000V250A50 50 0 0 0 950 200H800V100H700V200zM400 800H800V400H400V800z","horizAdvX":"1200"},"creative-commons-by-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm2 8h-4a1 1 0 0 0-.993.883L9 11v4h1.5v4h3v-4H15v-4a1 1 0 0 0-.883-.993L14 10zm-2-5a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM700 700H500A50 50 0 0 1 450.35 655.85L450 650V450H525V250H675V450H750V650A50 50 0 0 1 705.85 699.6500000000001L700 700zM600 950A100 100 0 1 1 600 750A100 100 0 0 1 600 950z","horizAdvX":"1200"},"creative-commons-by-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm2 6a1 1 0 0 1 1 1v4h-1.5v4h-3v-4H9v-4a1 1 0 0 1 1-1h4zm-2-5a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM700 700A50 50 0 0 0 750 650V450H675V250H525V450H450V650A50 50 0 0 0 500 700H700zM600 950A100 100 0 1 0 600 750A100 100 0 0 0 600 950z","horizAdvX":"1200"},"creative-commons-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM9 8c-2.208 0-4 1.792-4 4a4.001 4.001 0 0 0 6.669 2.979l.159-.151-1.414-1.414a2 2 0 1 1-.125-2.943l.126.116 1.414-1.414A3.988 3.988 0 0 0 9 8zm7 0c-2.208 0-4 1.792-4 4a4.001 4.001 0 0 0 6.669 2.979l.159-.151-1.414-1.414a2 2 0 1 1-.125-2.943l.126.116 1.414-1.414A3.988 3.988 0 0 0 16 8z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM450 800C339.6 800 250 710.4000000000001 250 600A200.05 200.05 0 0 1 583.45 451.0500000000001L591.4000000000001 458.6L520.7 529.3000000000001A100 100 0 1 0 514.45 676.45L520.75 670.65L591.45 741.35A199.4 199.4 0 0 1 450 800zM800 800C689.6 800 600 710.4000000000001 600 600A200.05 200.05 0 0 1 933.45 451.0500000000001L941.4 458.6L870.6999999999999 529.3000000000001A100 100 0 1 0 864.4499999999999 676.45L870.75 670.65L941.45 741.35A199.4 199.4 0 0 1 800 800z","horizAdvX":"1200"},"creative-commons-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zM9 8c1.105 0 2.105.448 2.829 1.173l-1.414 1.414a2 2 0 1 0-.001 2.828l1.414 1.413A4.001 4.001 0 0 1 5 12c0-2.208 1.792-4 4-4zm7 0c1.105 0 2.105.448 2.829 1.173l-1.414 1.414a2 2 0 1 0-.001 2.828l1.414 1.413A4.001 4.001 0 0 1 12 12c0-2.208 1.792-4 4-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM450 800C505.25 800 555.25 777.5999999999999 591.45 741.35L520.75 670.65A100 100 0 1 1 520.7 529.25L591.4000000000001 458.6A200.05 200.05 0 0 0 250 600C250 710.4000000000001 339.6 800 450 800zM800 800C855.25 800 905.25 777.5999999999999 941.45 741.35L870.75 670.65A100 100 0 1 1 870.6999999999999 529.25L941.4 458.6A200.05 200.05 0 0 0 600 600C600 710.4000000000001 689.6 800 800 800z","horizAdvX":"1200"},"creative-commons-nc-fill":{"path":["M0 0h24v24H0z","M4.256 5.672l3.58 3.577a2.5 2.5 0 0 0 2 3.746L10 13h4l.09.008a.5.5 0 0 1 0 .984L14 14H8.5v2H11v2h2v-2h1c.121 0 .24-.009.357-.025l.173-.031 3.798 3.8A9.959 9.959 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.4.846-4.604 2.256-6.328zM12 2c5.523 0 10 4.477 10 10 0 2.4-.846 4.604-2.256 6.328l-3.579-3.577a2.5 2.5 0 0 0-2-3.745L14 11h-4l-.09-.008a.5.5 0 0 1 0-.984L10 10h5.5V8H13V6h-2v2h-1c-.121 0-.24.009-.356.025l-.173.031-3.799-3.8A9.959 9.959 0 0 1 12 2z"],"unicode":"","glyph":"M212.8 916.4L391.8 737.5500000000001A125 125 0 0 1 491.8 550.25L500 550H700L704.5 549.6A25 25 0 0 0 704.5 500.4000000000001L700 500H425V400H550V300H650V400H700C706.0500000000001 400 712 400.4500000000001 717.8499999999999 401.25L726.5 402.8000000000001L916.4 212.8A497.95000000000005 497.95000000000005 0 0 0 600 100C323.85 100 100 323.85 100 600C100 720 142.3 830.2 212.8 916.4zM600 1100C876.15 1100 1100 876.15 1100 600C1100 480 1057.7 369.8000000000001 987.2 283.6L808.25 462.45A125 125 0 0 1 708.25 649.7L700 650H500L495.5 650.4A25 25 0 0 0 495.5 699.5999999999999L500 700H775V800H650V900H550V800H500C493.95 800 488 799.55 482.2 798.75L473.55 797.1999999999999L283.6 987.2A497.95000000000005 497.95000000000005 0 0 0 600 1100z","horizAdvX":"1200"},"creative-commons-nc-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 2.4-.846 4.604-2.256 6.328l.034.036-1.414 1.414-.036-.034A9.959 9.959 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zM4 12a8 8 0 0 0 12.905 6.32l-2.375-2.376A2.51 2.51 0 0 1 14 16h-1v2h-2v-2H8.5v-2H14a.5.5 0 0 0 .09-.992L14 13h-4a2.5 2.5 0 0 1-2.165-3.75L5.679 7.094A7.965 7.965 0 0 0 4 12zm8-8c-1.848 0-3.55.627-4.905 1.68L9.47 8.055A2.51 2.51 0 0 1 10 8h1V6h2v2h2.5v2H10a.5.5 0 0 0-.09.992L10 11h4a2.5 2.5 0 0 1 2.165 3.75l2.156 2.155A8 8 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 480 1057.7 369.8000000000001 987.2 283.6L988.9 281.8L918.1999999999998 211.0999999999999L916.3999999999997 212.7999999999999A497.95000000000005 497.95000000000005 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM200 600A400 400 0 0 1 845.25 284L726.5 402.8A125.49999999999997 125.49999999999997 0 0 0 700 400H650V300H550V400H425V500H700A25 25 0 0 1 704.5 549.6L700 550H500A125 125 0 0 0 391.75 737.5L283.95 845.3A398.24999999999994 398.24999999999994 0 0 1 200 600zM600 1000C507.6 1000 422.5 968.65 354.75 916L473.5000000000001 797.25A125.49999999999997 125.49999999999997 0 0 0 500 800H550V900H650V800H775V700H500A25 25 0 0 1 495.5 650.4L500 650H700A125 125 0 0 0 808.25 462.5L916.05 354.75A400 400 0 0 1 600 1000z","horizAdvX":"1200"},"creative-commons-nd-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm4 11H8v2h8v-2zm0-4H8v2h8V9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM800 550H400V450H800V550zM800 750H400V650H800V750z","horizAdvX":"1200"},"creative-commons-nd-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm4 9v2H8v-2h8zm0-4v2H8V9h8z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM800 550V450H400V550H800zM800 750V650H400V750H800z","horizAdvX":"1200"},"creative-commons-sa-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 4C9.895 6 8.094 7.56 7.357 9.77l-.073.23H6l2.5 3 2.5-3H9.401C9.92 8.805 10.89 8 12 8c1.657 0 3 1.79 3 4s-1.343 4-3 4c-1.048 0-1.971-.717-2.508-1.803L9.402 14H7.285C7.97 16.33 9.823 18 12 18c2.761 0 5-2.686 5-6s-2.239-6-5-6z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 900C494.75 900 404.7 822 367.85 711.5L364.2 700H300L425 550L550 700H470.05C496 759.75 544.5 800 600 800C682.85 800 750 710.5 750 600S682.85 400 600 400C547.6 400 501.45 435.85 474.6 490.1500000000001L470.1 500H364.25C398.5 383.5000000000001 491.15 300 600 300C738.05 300 850 434.3 850 600S738.05 900 600 900z","horizAdvX":"1200"},"creative-commons-sa-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 2c-4.415 0-8 3.585-8 8s3.585 8 8 8 8-3.585 8-8-3.585-8-8-8zm0 2c2.761 0 5 2.686 5 6s-2.239 6-5 6c-2.177 0-4.029-1.67-4.715-4l2.117.001C9.92 15.196 10.89 16 12 16c1.657 0 3-1.79 3-4s-1.343-4-3-4c-1.11 0-2.08.805-2.599 2H11l-2.5 3L6 10h1.284C7.971 7.67 9.823 6 12 6z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 1000C379.25 1000 200 820.75 200 600S379.25 200 600 200S1000 379.25 1000 600S820.75 1000 600 1000zM600 900C738.05 900 850 765.7 850 600S738.05 300 600 300C491.15 300 398.55 383.5000000000001 364.25 500L470.1 499.95C496 440.2000000000001 544.5 400 600 400C682.85 400 750 489.5 750 600S682.85 800 600 800C544.5 800 496 759.75 470.05 700H550L425 550L300 700H364.2C398.55 816.5 491.15 900 600 900z","horizAdvX":"1200"},"creative-commons-zero-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 4c-2.761 0-5 2.686-5 6s2.239 6 5 6 5-2.686 5-6-2.239-6-5-6zm2.325 3.472c.422.69.675 1.57.675 2.528 0 2.21-1.343 4-3 4-.378 0-.74-.093-1.073-.263l-.164-.092 3.562-6.173zM12 8c.378 0 .74.093 1.073.263l.164.092-3.562 6.173C9.253 13.838 9 12.958 9 12c0-2.21 1.343-4 3-4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 900C461.95 900 350 765.7 350 600S461.95 300 600 300S850 434.3 850 600S738.05 900 600 900zM716.25 726.4000000000001C737.35 691.9000000000001 750 647.9 750 600C750 489.5 682.85 400 600 400C581.1 400 563 404.65 546.35 413.15L538.15 417.75L716.25 726.4000000000001zM600 800C618.9 800 637 795.35 653.65 786.85L661.85 782.25L483.7500000000001 473.6C462.65 508.1 450 552.1 450 600C450 710.5 517.15 800 600 800z","horizAdvX":"1200"},"creative-commons-zero-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 2c-4.415 0-8 3.585-8 8s3.585 8 8 8 8-3.585 8-8-3.585-8-8-8zm0 2c2.761 0 5 2.686 5 6s-2.239 6-5 6-5-2.686-5-6 2.239-6 5-6zm2.325 3.472l-3.562 6.173c.377.228.796.355 1.237.355 1.657 0 3-1.79 3-4 0-.959-.253-1.839-.675-2.528zM12 8c-1.657 0-3 1.79-3 4 0 .959.253 1.839.675 2.528l3.562-6.173A2.377 2.377 0 0 0 12 8z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 1000C379.25 1000 200 820.75 200 600S379.25 200 600 200S1000 379.25 1000 600S820.75 1000 600 1000zM600 900C738.05 900 850 765.7 850 600S738.05 300 600 300S350 434.3 350 600S461.95 900 600 900zM716.25 726.4000000000001L538.15 417.75C557 406.35 577.9499999999999 400 600 400C682.85 400 750 489.5 750 600C750 647.9499999999999 737.35 691.95 716.25 726.4000000000001zM600 800C517.15 800 450 710.5 450 600C450 552.0500000000001 462.65 508.05 483.7500000000001 473.6L661.85 782.25A118.85 118.85 0 0 1 600 800z","horizAdvX":"1200"},"criminal-fill":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 6.894 14.786c1.255.83 2.033 1.89 2.101 3.049L21 20l-9 2-9-2 .005-.165c.067-1.16.846-2.22 2.1-3.05A8.965 8.965 0 0 1 3 11a9 9 0 0 1 9-9zm0 11c-1.38 0-2.5.672-2.5 1.5S10.62 16 12 16s2.5-.672 2.5-1.5S13.38 13 12 13zM9 8c-1.105 0-2 .672-2 1.5S7.895 11 9 11s2-.672 2-1.5S10.105 8 9 8zm6 0c-1.105 0-2 .672-2 1.5s.895 1.5 2 1.5 2-.672 2-1.5S16.105 8 15 8z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 944.7 360.7C1007.4499999999998 319.2000000000001 1046.35 266.2 1049.7499999999998 208.25L1050 200L600 100L150 200L150.25 208.25C153.6 266.25 192.55 319.2499999999999 255.2500000000001 360.75A448.25 448.25 0 0 0 150 650A450 450 0 0 0 600 1100zM600 550C531 550 475 516.4 475 475S531 400 600 400S725 433.6 725 475S669 550 600 550zM450 800C394.75 800 350 766.4 350 725S394.75 650 450 650S550 683.6 550 725S505.25 800 450 800zM750 800C694.75 800 650 766.4 650 725S694.75 650 750 650S850 683.6 850 725S805.25 800 750 800z","horizAdvX":"1200"},"criminal-line":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 6.894 14.786c1.255.83 2.033 1.89 2.101 3.049L21 20l-9 2-9-2 .005-.165c.067-1.16.846-2.22 2.1-3.05A8.965 8.965 0 0 1 3 11a9 9 0 0 1 9-9zm0 2a7 7 0 0 0-7 7c0 1.567.514 3.05 1.445 4.261l.192.239 1.443 1.717-1.962 1.299-.137.097L12 19.951l6.018-1.338-.049-.036-.178-.123-1.871-1.237 1.443-1.718A6.963 6.963 0 0 0 19 11a7 7 0 0 0-7-7zm0 9c1.38 0 2.5.672 2.5 1.5S13.38 16 12 16s-2.5-.672-2.5-1.5S10.62 13 12 13zM9 8c1.105 0 2 .672 2 1.5S10.105 11 9 11s-2-.672-2-1.5S7.895 8 9 8zm6 0c1.105 0 2 .672 2 1.5s-.895 1.5-2 1.5-2-.672-2-1.5.895-1.5 2-1.5z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 944.7 360.7C1007.4499999999998 319.2000000000001 1046.35 266.2 1049.7499999999998 208.25L1050 200L600 100L150 200L150.25 208.25C153.6 266.25 192.55 319.2499999999999 255.2500000000001 360.75A448.25 448.25 0 0 0 150 650A450 450 0 0 0 600 1100zM600 1000A350 350 0 0 1 250 650C250 571.65 275.7 497.5 322.25 436.9500000000001L331.85 425L404 339.1500000000001L305.9000000000001 274.2000000000001L299.05 269.35L600 202.4499999999999L900.9 269.35L898.45 271.1500000000001L889.5500000000001 277.3000000000002L796 339.1500000000001L868.15 425.0500000000001A348.15000000000003 348.15000000000003 0 0 1 950 650A350 350 0 0 1 600 1000zM600 550C669 550 725 516.4 725 475S669 400 600 400S475 433.6 475 475S531 550 600 550zM450 800C505.25 800 550 766.4 550 725S505.25 650 450 650S350 683.6 350 725S394.75 800 450 800zM750 800C805.25 800 850 766.4 850 725S805.25 650 750 650S650 683.6 650 725S694.75 800 750 800z","horizAdvX":"1200"},"crop-2-fill":{"path":["M0 0h24v24H0z","M17.586 5l2.556-2.556 1.414 1.414L19 6.414V17h3v2h-3v3h-2V7H9V5h8.586zM15 17v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v15h8zM9 9h6v6H9V9z"],"unicode":"","glyph":"M879.3 950L1007.1 1077.8L1077.8 1007.1L950 879.3V350H1100V250H950V100H850V850H450V950H879.3zM750 350V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V350H750zM450 750H750V450H450V750z","horizAdvX":"1200"},"crop-2-line":{"path":["M0 0h24v24H0z","M8.414 17H15v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v13.586L15.586 7H9V5h8.586l2.556-2.556 1.414 1.414L19 6.414V17h3v2h-3v3h-2V8.414L8.414 17z"],"unicode":"","glyph":"M420.7 350H750V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V420.7L779.3000000000001 850H450V950H879.3L1007.1 1077.8L1077.8 1007.1L950 879.3V350H1100V250H950V100H850V779.3L420.7 350z","horizAdvX":"1200"},"crop-fill":{"path":["M0 0h24v24H0z","M19 17h3v2h-3v3h-2v-3H6a1 1 0 0 1-1-1V7H2V5h3V2h2v3h11a1 1 0 0 1 1 1v11z"],"unicode":"","glyph":"M950 350H1100V250H950V100H850V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V950H900A50 50 0 0 0 950 900V350z","horizAdvX":"1200"},"crop-line":{"path":["M0 0h24v24H0z","M15 17v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v15h8zm2 5V7H9V5h9a1 1 0 0 1 1 1v11h3v2h-3v3h-2z"],"unicode":"","glyph":"M750 350V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V350H750zM850 100V850H450V950H900A50 50 0 0 0 950 900V350H1100V250H950V100H850z","horizAdvX":"1200"},"css3-fill":{"path":["M0 0h24v24H0z","M5 3l-.65 3.34h13.59L17.5 8.5H3.92l-.66 3.33h13.59l-.76 3.81-5.48 1.81-4.75-1.81.33-1.64H2.85l-.79 4 7.85 3 9.05-3 1.2-6.03.24-1.21L21.94 3z"],"unicode":"","glyph":"M250 1050L217.5 883H896.9999999999999L875 775H196L163 608.5H842.5000000000001L804.5 418L530.5 327.5L293 418.0000000000001L309.5 500.0000000000001H142.5L103 300L495.5 150L948 300L1008 601.5L1019.9999999999998 662.0000000000001L1097 1050z","horizAdvX":"1200"},"css3-line":{"path":["M0 0h24v24H0z","M2.8 14h2.04l-.545 2.725 5.744 2.154 7.227-2.41L18.36 11H3.4l.4-2h14.96l.8-4H4.6L5 3h17l-3 15-9 3-8-3z"],"unicode":"","glyph":"M140 500H242L214.75 363.7499999999999L501.95 256.05L863.3 376.55L918 650H170L190 750H938.0000000000002L978.0000000000002 950H230L250 1050H1100L950 300L500 150L100 300z","horizAdvX":"1200"},"cup-fill":{"path":["M0 0h24v24H0z","M5 3h15a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2h-2v3a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V4a1 1 0 0 1 1-1zm13 2v3h2V5h-2zM2 19h18v2H2v-2z"],"unicode":"","glyph":"M250 1050H1000A100 100 0 0 0 1100 950V800A100 100 0 0 0 1000 700H900V550A200 200 0 0 0 700 350H400A200 200 0 0 0 200 550V1000A50 50 0 0 0 250 1050zM900 950V800H1000V950H900zM100 250H1000V150H100V250z","horizAdvX":"1200"},"cup-line":{"path":["M0 0h24v24H0z","M16 13V5H6v8a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2zM5 3h15a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2h-2v3a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V4a1 1 0 0 1 1-1zm13 2v3h2V5h-2zM2 19h18v2H2v-2z"],"unicode":"","glyph":"M800 550V950H300V550A100 100 0 0 1 400 450H700A100 100 0 0 1 800 550zM250 1050H1000A100 100 0 0 0 1100 950V800A100 100 0 0 0 1000 700H900V550A200 200 0 0 0 700 350H400A200 200 0 0 0 200 550V1000A50 50 0 0 0 250 1050zM900 950V800H1000V950H900zM100 250H1000V150H100V250z","horizAdvX":"1200"},"currency-fill":{"path":["M0 0h24v24H0z","M17 16h2V4H9v2h8v10zm0 2v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3zM7 16v2h2v1h2v-1h.5a2.5 2.5 0 1 0 0-5h-3a.5.5 0 1 1 0-1H13v-2h-2V9H9v1h-.5a2.5 2.5 0 1 0 0 5h3a.5.5 0 1 1 0 1H7z"],"unicode":"","glyph":"M850 400H950V1000H450V900H850V400zM850 300V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850zM350 400V300H450V250H550V300H575A125 125 0 1 1 575 550H425A25 25 0 1 0 425 600H650V700H550V750H450V700H425A125 125 0 1 1 425 450H575A25 25 0 1 0 575 400H350z","horizAdvX":"1200"},"currency-line":{"path":["M0 0h24v24H0z","M17 16h2V4H9v2h8v10zm0 2v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3zM5.003 8L5 20h10V8H5.003zM7 16h4.5a.5.5 0 1 0 0-1h-3a2.5 2.5 0 1 1 0-5H9V9h2v1h2v2H8.5a.5.5 0 1 0 0 1h3a2.5 2.5 0 1 1 0 5H11v1H9v-1H7v-2z"],"unicode":"","glyph":"M850 400H950V1000H450V900H850V400zM850 300V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850zM250.15 800L250 200H750V800H250.15zM350 400H575A25 25 0 1 1 575 450H425A125 125 0 1 0 425 700H450V750H550V700H650V600H425A25 25 0 1 1 425 550H575A125 125 0 1 0 575 300H550V250H450V300H350V400z","horizAdvX":"1200"},"cursor-fill":{"path":["M0 0h24v24H0z","M13.91 12.36L17 20.854l-2.818 1.026-3.092-8.494-4.172 3.156 1.49-14.909 10.726 10.463z"],"unicode":"","glyph":"M695.5 582L850 157.3L709.1 106L554.5 530.7L345.9000000000001 372.9000000000001L420.4 1118.3500000000001L956.7 595.2000000000002z","horizAdvX":"1200"},"cursor-line":{"path":["M0 0h24v24H0z","M15.388 13.498l2.552 7.014-4.698 1.71-2.553-7.014-3.899 2.445L8.41 1.633l11.537 11.232-4.558.633zm-.011 5.818l-2.715-7.46 2.96-.41-5.64-5.49-.79 7.83 2.53-1.587 2.715 7.46.94-.343z"],"unicode":"","glyph":"M769.4 525.1L897.0000000000001 174.4000000000001L662.1 88.8999999999999L534.45 439.5999999999999L339.5 317.3499999999999L420.5 1118.35L997.3500000000003 556.7500000000001L769.4500000000002 525.1000000000001zM768.85 234.2000000000001L633.1 607.2L781.1 627.7L499.1 902.2L459.6 510.7000000000002L586.1 590.0500000000001L721.85 217.0500000000001L768.8499999999999 234.2000000000001z","horizAdvX":"1200"},"customer-service-2-fill":{"path":["M0 0h24v24H0z","M21 8a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-1.062A8.001 8.001 0 0 1 12 23v-2a6 6 0 0 0 6-6V9A6 6 0 1 0 6 9v7H3a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1.062a8.001 8.001 0 0 1 15.876 0H21zM7.76 15.785l1.06-1.696A5.972 5.972 0 0 0 12 15a5.972 5.972 0 0 0 3.18-.911l1.06 1.696A7.963 7.963 0 0 1 12 17a7.963 7.963 0 0 1-4.24-1.215z"],"unicode":"","glyph":"M1050 800A100 100 0 0 0 1150 700V500A100 100 0 0 0 1050 400H996.9A400.04999999999995 400.04999999999995 0 0 0 600 50V150A300 300 0 0 1 900 450V750A300 300 0 1 1 300 750V400H150A100 100 0 0 0 50 500V700A100 100 0 0 0 150 800H203.1A400.04999999999995 400.04999999999995 0 0 0 996.9 800H1050zM388 410.75L441 495.55A298.6 298.6 0 0 1 600 450A298.6 298.6 0 0 1 759 495.55L811.9999999999999 410.75A398.15 398.15 0 0 0 600 350A398.15 398.15 0 0 0 388 410.75z","horizAdvX":"1200"},"customer-service-2-line":{"path":["M0 0h24v24H0z","M19.938 8H21a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-1.062A8.001 8.001 0 0 1 12 23v-2a6 6 0 0 0 6-6V9A6 6 0 1 0 6 9v7H3a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1.062a8.001 8.001 0 0 1 15.876 0zM3 10v4h1v-4H3zm17 0v4h1v-4h-1zM7.76 15.785l1.06-1.696A5.972 5.972 0 0 0 12 15a5.972 5.972 0 0 0 3.18-.911l1.06 1.696A7.963 7.963 0 0 1 12 17a7.963 7.963 0 0 1-4.24-1.215z"],"unicode":"","glyph":"M996.9 800H1050A100 100 0 0 0 1150 700V500A100 100 0 0 0 1050 400H996.9A400.04999999999995 400.04999999999995 0 0 0 600 50V150A300 300 0 0 1 900 450V750A300 300 0 1 1 300 750V400H150A100 100 0 0 0 50 500V700A100 100 0 0 0 150 800H203.1A400.04999999999995 400.04999999999995 0 0 0 996.9 800zM150 700V500H200V700H150zM1000 700V500H1050V700H1000zM388 410.75L441 495.55A298.6 298.6 0 0 1 600 450A298.6 298.6 0 0 1 759 495.55L811.9999999999999 410.75A398.15 398.15 0 0 0 600 350A398.15 398.15 0 0 0 388 410.75z","horizAdvX":"1200"},"customer-service-fill":{"path":["M0 0h24v24H0z","M22 17.002a6.002 6.002 0 0 1-4.713 5.86l-.638-1.914A4.003 4.003 0 0 0 19.465 19H17a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.938a8.001 8.001 0 0 0-15.876 0H7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5C2 6.477 6.477 2 12 2s10 4.477 10 10V17.002z"],"unicode":"","glyph":"M1100 349.9000000000001A300.09999999999997 300.09999999999997 0 0 0 864.3499999999999 56.9000000000001L832.4499999999998 152.6000000000001A200.15 200.15 0 0 1 973.25 250H850A100 100 0 0 0 750 350V550A100 100 0 0 0 850 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H350A100 100 0 0 0 450 550V350A100 100 0 0 0 350 250H200A100 100 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V349.9000000000001z","horizAdvX":"1200"},"customer-service-line":{"path":["M0 0h24v24H0z","M22 17.002a6.002 6.002 0 0 1-4.713 5.86l-.638-1.914A4.003 4.003 0 0 0 19.465 19H17a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.938a8.001 8.001 0 0 0-15.876 0H7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5C2 6.477 6.477 2 12 2s10 4.477 10 10V17.002zM20 17v-4h-3v4h3zM4 13v4h3v-4H4z"],"unicode":"","glyph":"M1100 349.9000000000001A300.09999999999997 300.09999999999997 0 0 0 864.3499999999999 56.9000000000001L832.4499999999998 152.6000000000001A200.15 200.15 0 0 1 973.25 250H850A100 100 0 0 0 750 350V550A100 100 0 0 0 850 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H350A100 100 0 0 0 450 550V350A100 100 0 0 0 350 250H200A100 100 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V349.9000000000001zM1000 350V550H850V350H1000zM200 550V350H350V550H200z","horizAdvX":"1200"},"dashboard-2-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 3c-3.866 0-7 3.134-7 7 0 1.852.72 3.537 1.894 4.789l.156.16 1.414-1.413C7.56 14.63 7 13.38 7 12c0-2.761 2.239-5 5-5 .448 0 .882.059 1.295.17l1.563-1.562C13.985 5.218 13.018 5 12 5zm6.392 4.143l-1.561 1.562c.11.413.169.847.169 1.295 0 1.38-.56 2.63-1.464 3.536l1.414 1.414C18.216 15.683 19 13.933 19 12c0-1.018-.217-1.985-.608-2.857zm-2.15-2.8l-3.725 3.724C12.352 10.023 12.179 10 12 10c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2c0-.179-.023-.352-.067-.517l3.724-3.726-1.414-1.414z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 950C406.7000000000001 950 250 793.3 250 600C250 507.4 286 423.1500000000001 344.7 360.55L352.5 352.55L423.2000000000001 423.2C378 468.5 350 531 350 600C350 738.05 461.95 850 600 850C622.4 850 644.1 847.05 664.75 841.5L742.9 919.6C699.25 939.1 650.9000000000001 950 600 950zM919.6 742.8499999999999L841.55 664.75C847.05 644.1 850 622.4 850 600C850 531 822.0000000000001 468.5 776.8 423.2000000000001L847.5 352.5C910.8 415.85 950 503.35 950 600C950 650.9000000000001 939.15 699.25 919.6 742.8499999999999zM812.1 882.8499999999999L625.85 696.65C617.6 698.85 608.95 700 600 700C544.75 700 500 655.25 500 600S544.75 500 600 500S700 544.75 700 600C700 608.95 698.85 617.6 696.65 625.85L882.85 812.15L812.15 882.8499999999999z","horizAdvX":"1200"},"dashboard-2-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm0 1c1.018 0 1.985.217 2.858.608L13.295 7.17C12.882 7.06 12.448 7 12 7c-2.761 0-5 2.239-5 5 0 1.38.56 2.63 1.464 3.536L7.05 16.95l-.156-.161C5.72 15.537 5 13.852 5 12c0-3.866 3.134-7 7-7zm6.392 4.143c.39.872.608 1.84.608 2.857 0 1.933-.784 3.683-2.05 4.95l-1.414-1.414C16.44 14.63 17 13.38 17 12c0-.448-.059-.882-.17-1.295l1.562-1.562zm-2.15-2.8l1.415 1.414-3.724 3.726c.044.165.067.338.067.517 0 1.105-.895 2-2 2s-2-.895-2-2 .895-2 2-2c.179 0 .352.023.517.067l3.726-3.724z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600S379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000zM600 950C650.9000000000001 950 699.25 939.15 742.9 919.6L664.75 841.5C644.1 847 622.4 850 600 850C461.95 850 350 738.05 350 600C350 531 378 468.5 423.2000000000001 423.2000000000001L352.5 352.5L344.7 360.5500000000001C286 423.15 250 507.4 250 600C250 793.3 406.7000000000001 950 600 950zM919.6 742.8499999999999C939.1 699.25 950 650.85 950 600C950 503.35 910.8 415.85 847.5 352.5L776.8 423.2000000000001C822.0000000000001 468.5 850 531 850 600C850 622.4 847.05 644.1 841.4999999999999 664.75L919.6 742.8499999999999zM812.1 882.8499999999999L882.85 812.15L696.65 625.85C698.85 617.6 700 608.95 700 600C700 544.75 655.25 500 600 500S500 544.75 500 600S544.75 700 600 700C608.95 700 617.6 698.85 625.85 696.65L812.15 882.85z","horizAdvX":"1200"},"dashboard-3-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm4.596 5.404c-.204-.205-.526-.233-.763-.067-2.89 2.028-4.52 3.23-4.894 3.602-.585.586-.585 1.536 0 2.122.586.585 1.536.585 2.122 0 .219-.22 1.418-1.851 3.598-4.897.168-.234.141-.556-.063-.76zM17.5 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-11 0c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm2.318-3.596c-.39-.39-1.024-.39-1.414 0-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0 .39-.39.39-1.024 0-1.414zM12 5.5c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM829.8 829.8C819.6 840.05 803.5 841.45 791.65 833.1500000000001C647.15 731.75 565.65 671.65 546.95 653.05C517.6999999999999 623.75 517.6999999999999 576.25 546.95 546.95C576.25 517.6999999999999 623.75 517.6999999999999 653.05 546.95C664 557.95 723.9499999999999 639.5 832.9499999999999 791.8C841.3499999999999 803.5 839.9999999999999 819.6 829.8 829.8zM875 650C847.4 650 825 627.6 825 600S847.4 550 875 550S925 572.4 925 600S902.6 650 875 650zM325 650C297.4000000000001 650 275 627.6 275 600S297.4000000000001 550 325 550S375 572.4 375 600S352.6 650 325 650zM440.9 829.8C421.4 849.3 389.7 849.3 370.2 829.8C350.7 810.3 350.7 778.6500000000001 370.2 759.1C389.7 739.5999999999999 421.35 739.5999999999999 440.9 759.1C460.4 778.6 460.4 810.3 440.9 829.8zM600 925C572.4 925 550 902.6 550 875S572.4 825 600 825S650 847.4000000000001 650 875S627.6 925 600 925z","horizAdvX":"1200"},"dashboard-3-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm3.833 3.337c.237-.166.559-.138.763.067.204.204.23.526.063.76-2.18 3.046-3.38 4.678-3.598 4.897-.586.585-1.536.585-2.122 0-.585-.586-.585-1.536 0-2.122.374-.373 2.005-1.574 4.894-3.602zM17.5 11c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm-11 0c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm2.318-3.596c.39.39.39 1.023 0 1.414-.39.39-1.024.39-1.414 0-.39-.39-.39-1.024 0-1.414.39-.39 1.023-.39 1.414 0zM12 5.5c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600S379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000zM791.65 833.1500000000001C803.5 841.45 819.6 840.05 829.8 829.8C840 819.6 841.3000000000001 803.5 832.9499999999999 791.8C723.9499999999999 639.5 663.95 557.9000000000001 653.05 546.95C623.75 517.6999999999999 576.25 517.6999999999999 546.95 546.95C517.6999999999999 576.25 517.6999999999999 623.75 546.95 653.05C565.65 671.6999999999999 647.1999999999999 731.75 791.65 833.1500000000001zM875 650C902.6 650 925 627.6 925 600S902.6 550 875 550S825 572.4 825 600S847.4 650 875 650zM325 650C352.6 650 375 627.6 375 600S352.6 550 325 550S275 572.4 275 600S297.4000000000001 650 325 650zM440.9 829.8C460.4 810.3 460.4 778.6500000000001 440.9 759.1C421.4 739.5999999999999 389.7 739.5999999999999 370.2 759.1C350.7 778.6 350.7 810.3 370.2 829.8C389.7 849.3 421.35 849.3 440.9 829.8zM600 925C627.6 925 650 902.6 650 875S627.6 825 600 825S550 847.4000000000001 550 875S572.4 925 600 925z","horizAdvX":"1200"},"dashboard-fill":{"path":["M0 0h24v24H0z","M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"],"unicode":"","glyph":"M150 550H550V1050H150V550zM150 150H550V450H150V150zM650 150H1050V650H650V150zM650 1050V750H1050V1050H650z","horizAdvX":"1200"},"dashboard-line":{"path":["M0 0h24v24H0z","M13 21V11h8v10h-8zM3 13V3h8v10H3zm6-2V5H5v6h4zM3 21v-6h8v6H3zm2-2h4v-2H5v2zm10 0h4v-6h-4v6zM13 3h8v6h-8V3zm2 2v2h4V5h-4z"],"unicode":"","glyph":"M650 150V650H1050V150H650zM150 550V1050H550V550H150zM450 650V950H250V650H450zM150 150V450H550V150H150zM250 250H450V350H250V250zM750 250H950V550H750V250zM650 1050H1050V750H650V1050zM750 950V850H950V950H750z","horizAdvX":"1200"},"database-2-fill":{"path":["M0 0h24v24H0z","M21 9.5v3c0 2.485-4.03 4.5-9 4.5s-9-2.015-9-4.5v-3c0 2.485 4.03 4.5 9 4.5s9-2.015 9-4.5zm-18 5c0 2.485 4.03 4.5 9 4.5s9-2.015 9-4.5v3c0 2.485-4.03 4.5-9 4.5s-9-2.015-9-4.5v-3zm9-2.5c-4.97 0-9-2.015-9-4.5S7.03 3 12 3s9 2.015 9 4.5-4.03 4.5-9 4.5z"],"unicode":"","glyph":"M1050 725V575C1050 450.75 848.5 350 600 350S150 450.75 150 575V725C150 600.75 351.5 500 600 500S1050 600.75 1050 725zM150 475C150 350.75 351.5 250 600 250S1050 350.75 1050 475V325C1050 200.75 848.5 100 600 100S150 200.75 150 325V475zM600 600C351.5 600 150 700.75 150 825S351.5 1050 600 1050S1050 949.25 1050 825S848.5 600 600 600z","horizAdvX":"1200"},"database-2-line":{"path":["M0 0h24v24H0z","M5 12.5c0 .313.461.858 1.53 1.393C7.914 14.585 9.877 15 12 15c2.123 0 4.086-.415 5.47-1.107 1.069-.535 1.53-1.08 1.53-1.393v-2.171C17.35 11.349 14.827 12 12 12s-5.35-.652-7-1.671V12.5zm14 2.829C17.35 16.349 14.827 17 12 17s-5.35-.652-7-1.671V17.5c0 .313.461.858 1.53 1.393C7.914 19.585 9.877 20 12 20c2.123 0 4.086-.415 5.47-1.107 1.069-.535 1.53-1.08 1.53-1.393v-2.171zM3 17.5v-10C3 5.015 7.03 3 12 3s9 2.015 9 4.5v10c0 2.485-4.03 4.5-9 4.5s-9-2.015-9-4.5zm9-7.5c2.123 0 4.086-.415 5.47-1.107C18.539 8.358 19 7.813 19 7.5c0-.313-.461-.858-1.53-1.393C16.086 5.415 14.123 5 12 5c-2.123 0-4.086.415-5.47 1.107C5.461 6.642 5 7.187 5 7.5c0 .313.461.858 1.53 1.393C7.914 9.585 9.877 10 12 10z"],"unicode":"","glyph":"M250 575C250 559.35 273.05 532.1 326.5 505.3499999999999C395.7 470.75 493.85 450 600 450C706.1500000000001 450 804.3 470.75 873.5 505.3499999999999C926.95 532.1 950 559.35 950 575V683.55C867.5000000000001 632.55 741.35 600 600 600S332.5 632.5999999999999 250 683.55V575zM950 433.55C867.5000000000001 382.55 741.35 350 600 350S332.5 382.6 250 433.55V325C250 309.35 273.05 282.1 326.5 255.3499999999999C395.7 220.75 493.85 200 600 200C706.1500000000001 200 804.3 220.75 873.5 255.3499999999999C926.95 282.1 950 309.3499999999999 950 325V433.55zM150 325V825C150 949.25 351.5 1050 600 1050S1050 949.25 1050 825V325C1050 200.75 848.5 100 600 100S150 200.75 150 325zM600 700C706.1500000000001 700 804.3 720.75 873.5 755.3499999999999C926.95 782.0999999999999 950 809.35 950 825C950 840.65 926.95 867.9 873.5 894.65C804.3 929.25 706.15 950 600 950C493.85 950 395.7 929.25 326.5 894.65C273.05 867.9 250 840.65 250 825C250 809.35 273.05 782.0999999999999 326.5 755.3499999999999C395.7 720.75 493.85 700 600 700z","horizAdvX":"1200"},"database-fill":{"path":["M0 0h24v24H0z","M11 7V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h8zm-6 9v2h5v-2H5zm9 0v2h5v-2h-5zm0-3v2h5v-2h-5zm0-3v2h5v-2h-5zm-9 3v2h5v-2H5z"],"unicode":"","glyph":"M550 850V1000A50 50 0 0 0 600 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H550zM250 400V300H500V400H250zM700 400V300H950V400H700zM700 550V450H950V550H700zM700 700V600H950V700H700zM250 550V450H500V550H250z","horizAdvX":"1200"},"database-line":{"path":["M0 0h24v24H0z","M11 19V9H4v10h7zm0-12V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h8zm2-2v14h7V5h-7zM5 16h5v2H5v-2zm9 0h5v2h-5v-2zm0-3h5v2h-5v-2zm0-3h5v2h-5v-2zm-9 3h5v2H5v-2z"],"unicode":"","glyph":"M550 250V750H200V250H550zM550 850V1000A50 50 0 0 0 600 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H550zM650 950V250H1000V950H650zM250 400H500V300H250V400zM700 400H950V300H700V400zM700 550H950V450H700V550zM700 700H950V600H700V700zM250 550H500V450H250V550z","horizAdvX":"1200"},"delete-back-2-fill":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zM13 10.586l-2.828-2.829-1.415 1.415L11.586 12l-2.829 2.828 1.415 1.415L13 13.414l2.828 2.829 1.415-1.415L14.414 12l2.829-2.828-1.415-1.415L13 10.586z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM650 670.6999999999999L508.6 812.1500000000001L437.8500000000001 741.4L579.3000000000001 600L437.85 458.6L508.6 387.85L650 529.3000000000001L791.4 387.85L862.15 458.6L720.6999999999999 600L862.15 741.4L791.4 812.15L650 670.6999999999999z","horizAdvX":"1200"},"delete-back-2-line":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zm.535 2l-4.666 7 4.666 7H20V5H7.07zM13 10.586l2.828-2.829 1.415 1.415L14.414 12l2.829 2.828-1.415 1.415L13 13.414l-2.828 2.829-1.415-1.415L11.586 12 8.757 9.172l1.415-1.415L13 10.586z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM353.5 950L120.2 600L353.5 250H1000V950H353.5zM650 670.6999999999999L791.4 812.1500000000001L862.15 741.4L720.6999999999999 600L862.15 458.6L791.4 387.85L650 529.3000000000001L508.6 387.85L437.8500000000001 458.6L579.3000000000001 600L437.85 741.4L508.6 812.15L650 670.6999999999999z","horizAdvX":"1200"},"delete-back-fill":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zM16 11H9v2h7v-2z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM800 650H450V550H800V650z","horizAdvX":"1200"},"delete-back-line":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zm.535 2l-4.666 7 4.666 7H20V5H7.07zM16 11v2H9v-2h7z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM353.5 950L120.2 600L353.5 250H1000V950H353.5zM800 650V550H450V650H800z","horizAdvX":"1200"},"delete-bin-2-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5zm6.414 8l1.768-1.768-1.414-1.414L12 12.586l-1.768-1.768-1.414 1.414L10.586 14l-1.768 1.768 1.414 1.414L12 15.414l1.768 1.768 1.414-1.414L13.414 14zM9 4v2h6V4H9z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350zM670.6999999999999 500L759.1 588.4000000000001L688.4000000000001 659.1L600 570.6999999999999L511.6 659.1L440.9 588.4000000000001L529.3000000000001 500L440.9 411.5999999999999L511.6 340.8999999999999L600 429.3000000000001L688.4000000000001 340.9000000000001L759.1 411.6L670.6999999999999 500zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-2-line":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-4.586 6l1.768 1.768-1.414 1.414L12 15.414l-1.768 1.768-1.414-1.414L10.586 14l-1.768-1.768 1.414-1.414L12 12.586l1.768-1.768 1.414 1.414L13.414 14zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM900 800H300V200H900V800zM670.6999999999999 500L759.1 411.5999999999999L688.4000000000001 340.8999999999999L600 429.3000000000001L511.6 340.9000000000001L440.9 411.6L529.3000000000001 500L440.9 588.4000000000001L511.6 659.1L600 570.6999999999999L688.4000000000001 659.1L759.1 588.4000000000001L670.6999999999999 500zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-3-fill":{"path":["M0 0h24v24H0z","M20 7v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7H2V5h20v2h-2zm-9 2v2h2V9h-2zm0 3v2h2v-2h-2zm0 3v2h2v-2h-2zM7 2h10v2H7V2z"],"unicode":"","glyph":"M1000 850V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V850H100V950H1100V850H1000zM550 750V650H650V750H550zM550 600V500H650V600H550zM550 450V350H650V450H550zM350 1100H850V1000H350V1100z","horizAdvX":"1200"},"delete-bin-3-line":{"path":["M0 0h24v24H0z","M20 7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7H2V5h20v2h-2zM6 7v13h12V7H6zm5 2h2v2h-2V9zm0 3h2v2h-2v-2zm0 3h2v2h-2v-2zM7 2h10v2H7V2z"],"unicode":"","glyph":"M1000 850V200A100 100 0 0 0 900 100H300A100 100 0 0 0 200 200V850H100V950H1100V850H1000zM300 850V200H900V850H300zM550 750H650V650H550V750zM550 600H650V500H550V600zM550 450H650V350H550V450zM350 1100H850V1000H350V1100z","horizAdvX":"1200"},"delete-bin-4-fill":{"path":["M0 0h24v24H0z","M20 7v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7H2V5h20v2h-2zm-9 3v7h2v-7h-2zM7 2h10v2H7V2z"],"unicode":"","glyph":"M1000 850V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V850H100V950H1100V850H1000zM550 700V350H650V700H550zM350 1100H850V1000H350V1100z","horizAdvX":"1200"},"delete-bin-4-line":{"path":["M0 0h24v24H0z","M20 7v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7H2V5h20v2h-2zM6 7v13h12V7H6zm1-5h10v2H7V2zm4 8h2v7h-2v-7z"],"unicode":"","glyph":"M1000 850V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V850H100V950H1100V850H1000zM300 850V200H900V850H300zM350 1100H850V1000H350V1100zM550 700H650V350H550V700z","horizAdvX":"1200"},"delete-bin-5-fill":{"path":["M0 0h24v24H0z","M4 8h16v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8zm3-3V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h5v2H2V5h5zm2-1v1h6V4H9zm0 8v6h2v-6H9zm4 0v6h2v-6h-2z"],"unicode":"","glyph":"M200 800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800zM350 950V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V950H1100V850H100V950H350zM450 1000V950H750V1000H450zM450 600V300H550V600H450zM650 600V300H750V600H650z","horizAdvX":"1200"},"delete-bin-5-line":{"path":["M0 0h24v24H0z","M4 8h16v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8zm2 2v10h12V10H6zm3 2h2v6H9v-6zm4 0h2v6h-2v-6zM7 5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h5v2H2V5h5zm2-1v1h6V4H9z"],"unicode":"","glyph":"M200 800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800zM300 700V200H900V700H300zM450 600H550V300H450V600zM650 600H750V300H650V600zM350 950V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V950H1100V850H100V950H350zM450 1000V950H750V1000H450z","horizAdvX":"1200"},"delete-bin-6-fill":{"path":["M0 0h24v24H0z","M17 4h5v2h-2v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6H2V4h5V2h10v2zM9 9v8h2V9H9zm4 0v8h2V9h-2z"],"unicode":"","glyph":"M850 1000H1100V900H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V900H100V1000H350V1100H850V1000zM450 750V350H550V750H450zM650 750V350H750V750H650z","horizAdvX":"1200"},"delete-bin-6-line":{"path":["M0 0h24v24H0z","M7 4V2h10v2h5v2h-2v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6H2V4h5zM6 6v14h12V6H6zm3 3h2v8H9V9zm4 0h2v8h-2V9z"],"unicode":"","glyph":"M350 1000V1100H850V1000H1100V900H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V900H100V1000H350zM300 900V200H900V900H300zM450 750H550V350H450V750zM650 750H750V350H650V750z","horizAdvX":"1200"},"delete-bin-7-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5zm2-2v2h6V4H9z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-7-line":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM900 800H300V200H900V800zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-fill":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm-8 5v6h2v-6H9zm4 0v6h2v-6h-2zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM450 650V350H550V650H450zM650 650V350H750V650H650zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-line":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-9 3h2v6H9v-6zm4 0h2v6h-2v-6zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM900 800H300V200H900V800zM450 650H550V350H450V650zM650 650H750V350H650V650zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-column":{"path":["M0 0H24V24H0z","M12 3c.552 0 1 .448 1 1v8c.835-.628 1.874-1 3-1 2.761 0 5 2.239 5 5s-2.239 5-5 5c-1.032 0-1.99-.313-2.787-.848L13 20c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zm-1 2H7v14h4V5zm8 10h-6v2h6v-2z"],"unicode":"","glyph":"M600 1050C627.6 1050 650 1027.6 650 1000V600C691.75 631.4 743.7 650 800 650C938.05 650 1050 538.05 1050 400S938.05 150 800 150C748.4 150 700.5 165.6499999999999 660.6500000000001 192.4L650 200C650 172.4000000000001 627.6 150 600 150H300C272.4000000000001 150 250 172.4000000000001 250 200V1000C250 1027.6 272.4000000000001 1050 300 1050H600zM550 950H350V250H550V950zM950 450H650V350H950V450z","horizAdvX":"1200"},"delete-row":{"path":["M0 0H24V24H0z","M20 5c.552 0 1 .448 1 1v6c0 .552-.448 1-1 1 .628.835 1 1.874 1 3 0 2.761-2.239 5-5 5s-5-2.239-5-5c0-1.126.372-2.165 1-3H4c-.552 0-1-.448-1-1V6c0-.552.448-1 1-1h16zm-7 10v2h6v-2h-6zm6-8H5v4h14V7z"],"unicode":"","glyph":"M1000 950C1027.6 950 1050 927.6 1050 900V600C1050 572.4 1027.6 550 1000 550C1031.4 508.25 1050 456.3 1050 400C1050 261.9500000000001 938.05 150 800 150S550 261.9500000000001 550 400C550 456.3 568.6 508.25 600 550H200C172.4 550 150 572.4 150 600V900C150 927.6 172.4 950 200 950H1000zM650 450V350H950V450H650zM950 850H250V650H950V850z","horizAdvX":"1200"},"device-fill":{"path":["M0 0h24v24H0z","M19 6h-8a1 1 0 0 0-1 1v13H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v3zm-6 2h8a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M950 900H550A50 50 0 0 1 500 850V200H200A50 50 0 0 0 150 250V1050A50 50 0 0 0 200 1100H900A50 50 0 0 0 950 1050V900zM650 800H1050A50 50 0 0 0 1100 750V150A50 50 0 0 0 1050 100H650A50 50 0 0 0 600 150V750A50 50 0 0 0 650 800z","horizAdvX":"1200"},"device-line":{"path":["M0 0h24v24H0z","M19 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5zm-2 0V4H5v14h7V9a1 1 0 0 1 1-1h4zm-3 2v10h6V10h-6z"],"unicode":"","glyph":"M950 800H1050A50 50 0 0 0 1100 750V150A50 50 0 0 0 1050 100H650A50 50 0 0 0 600 150V200H200A50 50 0 0 0 150 250V1050A50 50 0 0 0 200 1100H900A50 50 0 0 0 950 1050V800zM850 800V1000H250V300H600V750A50 50 0 0 0 650 800H850zM700 700V200H1000V700H700z","horizAdvX":"1200"},"device-recover-fill":{"path":["M0 0h24v24H0z","M19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14zm-7 5a5 5 0 1 0 .955 9.909L12 15a3 3 0 0 1 0-6c1.598 0 3 1.34 3 3h-2.5l2.128 4.254A5 5 0 0 0 12 7z"],"unicode":"","glyph":"M950 1100A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950zM600 850A250 250 0 1 1 647.75 354.5500000000001L600 450A150 150 0 0 0 600 750C679.9000000000001 750 750 683 750 600H625L731.4 387.3000000000001A250 250 0 0 1 600 850z","horizAdvX":"1200"},"device-recover-line":{"path":["M0 0h24v24H0z","M19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14zm-1 2H6v16h12V4zm-6 3a5 5 0 0 1 2.628 9.254L12.5 12H15a3 3 0 1 0-3 3l.955 1.909A5 5 0 1 1 12 7z"],"unicode":"","glyph":"M950 1100A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950zM900 1000H300V200H900V1000zM600 850A250 250 0 0 0 731.4 387.3000000000001L625 600H750A150 150 0 1 1 600 450L647.75 354.5500000000001A250 250 0 1 0 600 850z","horizAdvX":"1200"},"dingding-fill":{"path":["M0 0h24v24H0z","M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm4.49 9.04l-.006.014c-.42.898-1.516 2.66-1.516 2.66l-.005-.012-.32.558h1.543l-2.948 3.919.67-2.666h-1.215l.422-1.763c-.341.082-.745.195-1.223.349 0 0-.646.378-1.862-.729 0 0-.82-.722-.344-.902.202-.077.981-.175 1.594-.257.83-.112 1.339-.172 1.339-.172s-2.555.038-3.161-.057c-.606-.095-1.375-1.107-1.539-1.996 0 0-.253-.488.545-.257.798.231 4.101.9 4.101.9S8.27 9.312 7.983 8.99c-.286-.32-.841-1.754-.769-2.634 0 0 .031-.22.257-.16 0 0 3.176 1.45 5.347 2.245 2.172.795 4.06 1.199 3.816 2.228-.02.087-.072.216-.144.37z"],"unicode":"","glyph":"M600 1100C323.85 1100 100 876.15 100 600S323.85 100 600 100S1100 323.85 1100 600S876.15 1100 600 1100zM824.5000000000001 648L824.2 647.3000000000001C803.2 602.4000000000001 748.4000000000001 514.3000000000001 748.4000000000001 514.3000000000001L748.1500000000001 514.9000000000001L732.1500000000001 487.0000000000001H809.3L661.9 291.0500000000001L695.4 424.3500000000002H634.65L655.75 512.5000000000001C638.7 508.4000000000001 618.5 502.7500000000001 594.6 495.0500000000001C594.6 495.0500000000001 562.3 476.1500000000001 501.4999999999999 531.5C501.4999999999999 531.5 460.4999999999999 567.6 484.3 576.6C494.4 580.45 533.35 585.35 564 589.4499999999999C605.5 595.05 630.95 598.0500000000001 630.95 598.0500000000001S503.2 596.15 472.9 600.9000000000001C442.6 605.6500000000001 404.1500000000001 656.25 395.9500000000001 700.7C395.9500000000001 700.7 383.3 725.1 423.2000000000001 713.5500000000001C463.1 702 628.2500000000001 668.5500000000001 628.2500000000001 668.5500000000001S413.5 734.4000000000001 399.15 750.5C384.85 766.5 357.1 838.2 360.7 882.2C360.7 882.2 362.25 893.2 373.55 890.2C373.55 890.2 532.3499999999999 817.7 640.9 777.95C749.5 738.2 843.9 718 831.7 666.5500000000001C830.7 662.2 828.1 655.7500000000001 824.5000000000001 648.0500000000001z","horizAdvX":"1200"},"dingding-line":{"path":["M0 0h24v24H0z","M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm4.49 9.04l-.006.014c-.42.898-1.516 2.66-1.516 2.66l-.005-.012-.32.558h1.543l-2.948 3.919.67-2.666h-1.215l.422-1.763c-.341.082-.745.195-1.223.349 0 0-.646.378-1.862-.729 0 0-.82-.722-.344-.902.202-.077.981-.175 1.594-.257.83-.112 1.339-.172 1.339-.172s-2.555.038-3.161-.057c-.606-.095-1.375-1.107-1.539-1.996 0 0-.253-.488.545-.257.798.231 4.101.9 4.101.9S8.27 9.312 7.983 8.99c-.286-.32-.841-1.754-.769-2.634 0 0 .031-.22.257-.16 0 0 3.176 1.45 5.347 2.245 2.172.795 4.06 1.199 3.816 2.228-.02.087-.072.216-.144.37z"],"unicode":"","glyph":"M600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM824.5000000000001 648L824.2 647.3000000000001C803.2 602.4000000000001 748.4000000000001 514.3000000000001 748.4000000000001 514.3000000000001L748.1500000000001 514.9000000000001L732.1500000000001 487.0000000000001H809.3L661.9 291.0500000000001L695.4 424.3500000000002H634.65L655.75 512.5000000000001C638.7 508.4000000000001 618.5 502.7500000000001 594.6 495.0500000000001C594.6 495.0500000000001 562.3 476.1500000000001 501.4999999999999 531.5C501.4999999999999 531.5 460.4999999999999 567.6 484.3 576.6C494.4 580.45 533.35 585.35 564 589.4499999999999C605.5 595.05 630.95 598.0500000000001 630.95 598.0500000000001S503.2 596.15 472.9 600.9000000000001C442.6 605.6500000000001 404.1500000000001 656.25 395.9500000000001 700.7C395.9500000000001 700.7 383.3 725.1 423.2000000000001 713.5500000000001C463.1 702 628.2500000000001 668.5500000000001 628.2500000000001 668.5500000000001S413.5 734.4000000000001 399.15 750.5C384.85 766.5 357.1 838.2 360.7 882.2C360.7 882.2 362.25 893.2 373.55 890.2C373.55 890.2 532.3499999999999 817.7 640.9 777.95C749.5 738.2 843.9 718 831.7 666.5500000000001C830.7 662.2 828.1 655.7500000000001 824.5000000000001 648.0500000000001z","horizAdvX":"1200"},"direction-fill":{"path":["M0 0h24v24H0z","M9 10a1 1 0 0 0-1 1v4h2v-3h3v2.5l3.5-3.5L13 7.5V10H9zm3.707-8.607l9.9 9.9a1 1 0 0 1 0 1.414l-9.9 9.9a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l9.9-9.9a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M450 700A50 50 0 0 1 400 650V450H500V600H650V475L825 650L650 825V700H450zM635.35 1130.35L1130.35 635.3499999999999A50 50 0 0 0 1130.35 564.65L635.3499999999999 69.6500000000001A50 50 0 0 0 564.65 69.6500000000001L69.65 564.6500000000001A50 50 0 0 0 69.65 635.35L564.65 1130.3500000000001A50 50 0 0 0 635.3499999999999 1130.3500000000001z","horizAdvX":"1200"},"direction-line":{"path":["M0 0h24v24H0z","M12 3.515L3.515 12 12 20.485 20.485 12 12 3.515zm.707-2.122l9.9 9.9a1 1 0 0 1 0 1.414l-9.9 9.9a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l9.9-9.9a1 1 0 0 1 1.414 0zM13 10V7.5l3.5 3.5-3.5 3.5V12h-3v3H8v-4a1 1 0 0 1 1-1h4z"],"unicode":"","glyph":"M600 1024.25L175.75 600L600 175.75L1024.25 600L600 1024.25zM635.35 1130.35L1130.35 635.3499999999999A50 50 0 0 0 1130.35 564.65L635.3499999999999 69.6500000000001A50 50 0 0 0 564.65 69.6500000000001L69.65 564.6500000000001A50 50 0 0 0 69.65 635.35L564.65 1130.3500000000001A50 50 0 0 0 635.3499999999999 1130.3500000000001zM650 700V825L825 650L650 475V600H500V450H400V650A50 50 0 0 0 450 700H650z","horizAdvX":"1200"},"disc-fill":{"path":["M0 0h24v24H0z","M13 9.17A3 3 0 1 0 15 12V2.458c4.057 1.274 7 5.064 7 9.542 0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2c.337 0 .671.017 1 .05v7.12z"],"unicode":"","glyph":"M650 741.5A150 150 0 1 1 750 600V1077.1C952.8500000000003 1013.4 1100 823.9 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100C616.85 1100 633.55 1099.15 650 1097.5V741.5z","horizAdvX":"1200"},"disc-line":{"path":["M0 0h24v24H0z","M15 4.582V12a3 3 0 1 1-2-2.83V2.05c5.053.501 9 4.765 9 9.95 0 5.523-4.477 10-10 10S2 17.523 2 12c0-5.185 3.947-9.449 9-9.95v2.012A8.001 8.001 0 0 0 12 20a8 8 0 0 0 3-15.418z"],"unicode":"","glyph":"M750 970.9V600A150 150 0 1 0 650 741.5V1097.5C902.65 1072.45 1100 859.25 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400 400 0 0 1 750 970.9z","horizAdvX":"1200"},"discord-fill":{"path":["M0 0h24v24H0z","M10.076 11c.6 0 1.086.45 1.075 1 0 .55-.474 1-1.075 1C9.486 13 9 12.55 9 12s.475-1 1.076-1zm3.848 0c.601 0 1.076.45 1.076 1s-.475 1-1.076 1c-.59 0-1.075-.45-1.075-1s.474-1 1.075-1zm4.967-9C20.054 2 21 2.966 21 4.163V23l-2.211-1.995-1.245-1.176-1.317-1.25.546 1.943H5.109C3.946 20.522 3 19.556 3 18.359V4.163C3 2.966 3.946 2 5.109 2H18.89zm-3.97 13.713c2.273-.073 3.148-1.596 3.148-1.596 0-3.381-1.482-6.122-1.482-6.122-1.48-1.133-2.89-1.102-2.89-1.102l-.144.168c1.749.546 2.561 1.334 2.561 1.334a8.263 8.263 0 0 0-3.096-1.008 8.527 8.527 0 0 0-2.077.02c-.062 0-.114.011-.175.021-.36.032-1.235.168-2.335.662-.38.178-.607.305-.607.305s.854-.83 2.705-1.376l-.103-.126s-1.409-.031-2.89 1.103c0 0-1.481 2.74-1.481 6.121 0 0 .864 1.522 3.137 1.596 0 0 .38-.472.69-.871-1.307-.4-1.8-1.24-1.8-1.24s.102.074.287.179c.01.01.02.021.041.031.031.022.062.032.093.053.257.147.514.262.75.357.422.168.926.336 1.513.452a7.06 7.06 0 0 0 2.664.01 6.666 6.666 0 0 0 1.491-.451c.36-.137.761-.337 1.183-.62 0 0-.514.861-1.862 1.25.309.399.68.85.68.85z"],"unicode":"","glyph":"M503.8 650C533.8 650 558.1 627.5 557.55 600C557.55 572.5 533.85 550 503.8 550C474.3 550 450 572.5 450 600S473.75 650 503.8 650zM696.1999999999999 650C726.2499999999999 650 750 627.5 750 600S726.25 550 696.1999999999999 550C666.6999999999999 550 642.45 572.5 642.45 600S666.15 650 696.1999999999999 650zM944.55 1100C1002.7 1100 1050 1051.7 1050 991.85V50L939.45 149.75L877.2 208.55L811.35 271.05L838.65 173.8999999999999H255.45C197.3 173.9000000000001 150 222.1999999999999 150 282.05V991.85C150 1051.7 197.3 1100 255.45 1100H944.5zM746.0499999999998 414.35C859.6999999999999 418.0000000000001 903.45 494.1500000000001 903.45 494.1500000000001C903.45 663.2 829.35 800.25 829.35 800.25C755.3499999999999 856.9000000000001 684.8499999999999 855.3500000000001 684.8499999999999 855.3500000000001L677.65 846.95C765.1 819.6500000000001 805.6999999999998 780.25 805.6999999999998 780.25A413.15 413.15 0 0 1 650.8999999999999 830.6500000000001A426.34999999999997 426.34999999999997 0 0 1 547.0499999999998 829.6500000000001C543.9499999999999 829.6500000000001 541.3499999999998 829.1 538.2999999999998 828.6C520.2999999999998 827 476.5499999999998 820.2 421.5499999999999 795.5C402.5499999999999 786.5999999999999 391.1999999999999 780.25 391.1999999999999 780.25S433.8999999999999 821.75 526.4499999999998 849.05L521.2999999999998 855.35S450.8499999999998 856.9 376.7999999999998 800.2C376.7999999999998 800.2 302.7499999999999 663.1999999999999 302.7499999999999 494.15C302.7499999999999 494.15 345.9499999999998 418.05 459.5999999999999 414.3499999999999C459.5999999999999 414.3499999999999 478.5999999999999 437.95 494.0999999999998 457.9C428.7499999999998 477.9 404.0999999999998 519.9 404.0999999999998 519.9S409.1999999999998 516.2 418.4499999999998 510.9499999999999C418.9499999999998 510.4499999999999 419.4499999999998 509.9 420.4999999999999 509.4C422.0499999999999 508.3 423.5999999999998 507.8 425.1499999999998 506.7499999999999C437.9999999999999 499.3999999999999 450.8499999999998 493.6499999999999 462.6499999999998 488.9C483.7499999999999 480.5 508.9499999999998 472.0999999999999 538.2999999999998 466.3A353 353 0 0 1 671.4999999999998 465.8A333.3 333.3 0 0 1 746.0499999999998 488.35C764.0499999999997 495.2 784.0999999999998 505.1999999999999 805.1999999999998 519.3499999999999C805.1999999999998 519.3499999999999 779.4999999999998 476.3 712.0999999999998 456.8499999999999C727.5499999999997 436.9 746.0999999999998 414.3499999999999 746.0999999999998 414.3499999999999z","horizAdvX":"1200"},"discord-line":{"path":["M0 0h24v24H0z","M13.914 14.58a8.998 8.998 0 0 1-.484.104 7.06 7.06 0 0 1-2.664-.01c-.154-.03-.372-.083-.653-.158l-.921 1.197c-2.273-.073-3.137-1.596-3.137-1.596 0-3.381 1.481-6.122 1.481-6.122 1.481-1.133 2.89-1.102 2.89-1.102l.403.525a1.12 1.12 0 0 1 .112-.01 8.527 8.527 0 0 1 2.314.01l.442-.525s1.41-.031 2.89 1.103c0 0 1.482 2.74 1.482 6.121 0 0-.875 1.522-3.148 1.596l-1.007-1.134zM10.076 11C9.475 11 9 11.45 9 12s.485 1 1.076 1c.6 0 1.075-.45 1.075-1 .01-.55-.474-1-1.075-1zm3.848 0c-.6 0-1.075.45-1.075 1s.485 1 1.075 1c.601 0 1.076-.45 1.076-1s-.475-1-1.076-1zM21 23l-4.99-5H19V4H5v14h11.003l.57 2H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v19z"],"unicode":"","glyph":"M695.6999999999999 471A449.8999999999999 449.8999999999999 0 0 0 671.5 465.8000000000001A353 353 0 0 0 538.3 466.3000000000001C530.6 467.8 519.7 470.45 505.65 474.2L459.6 414.3499999999999C345.9500000000001 418 302.75 494.15 302.75 494.15C302.75 663.1999999999999 376.8 800.25 376.8 800.25C450.85 856.9 521.3 855.3499999999999 521.3 855.3499999999999L541.45 829.0999999999999A56.00000000000001 56.00000000000001 0 0 0 547.0500000000001 829.5999999999999A426.34999999999997 426.34999999999997 0 0 0 662.75 829.0999999999999L684.85 855.3499999999999S755.35 856.9 829.35 800.2C829.35 800.2 903.45 663.1999999999999 903.45 494.15C903.45 494.15 859.6999999999999 418.05 746.05 414.3499999999999L695.6999999999999 471.05zM503.8 650C473.75 650 450 627.5 450 600S474.25 550 503.8 550C533.8 550 557.55 572.5 557.55 600C558.05 627.5 533.85 650 503.8 650zM696.1999999999999 650C666.2 650 642.45 627.5 642.45 600S666.6999999999999 550 696.1999999999999 550C726.2499999999999 550 750 572.5 750 600S726.25 650 696.1999999999999 650zM1050 50L800.4999999999999 300H950V1000H250V300H800.15L828.65 200H250A100 100 0 0 0 150 300V1000A100 100 0 0 0 250 1100H950A100 100 0 0 0 1050 1000V50z","horizAdvX":"1200"},"discuss-fill":{"path":["M0 0h24v24H0z","M16.8 19L14 22.5 11.2 19H6a1 1 0 0 1-1-1V7.103a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1V18a1 1 0 0 1-1 1h-5.2zM2 2h17v2H3v11H1V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M840 250L700 75L560 250H300A50 50 0 0 0 250 300V844.85A50 50 0 0 0 300 894.85H1100A50 50 0 0 0 1150 844.85V300A50 50 0 0 0 1100 250H840zM100 1100H950V1000H150V450H50V1050A50 50 0 0 0 100 1100z","horizAdvX":"1200"},"discuss-line":{"path":["M0 0h24v24H0z","M14 22.5L11.2 19H6a1 1 0 0 1-1-1V7.103a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1V18a1 1 0 0 1-1 1h-5.2L14 22.5zm1.839-5.5H21V8.103H7V17H12.161L14 19.298 15.839 17zM2 2h17v2H3v11H1V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M700 75L560 250H300A50 50 0 0 0 250 300V844.85A50 50 0 0 0 300 894.85H1100A50 50 0 0 0 1150 844.85V300A50 50 0 0 0 1100 250H840L700 75zM791.95 350H1050V794.85H350V350H608.05L700 235.1000000000002L791.95 350zM100 1100H950V1000H150V450H50V1050A50 50 0 0 0 100 1100z","horizAdvX":"1200"},"dislike-fill":{"path":["M0 0H24V24H0z","M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm17.435 3.364c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636L7.26 3.046c1.67-.207 3.408.288 4.741 1.483 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M140.4 1130.35L1059.6 211.0999999999999L988.9 140.3999999999999L801.55 327.7499999999998L600 125.75L176 550.35C74 664.5500000000001 74.6 838 177.7 951.5L69.65 1059.6L140.4 1130.35zM1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.35L942.2 468.5500000000001L363 1047.7C446.5 1058.05 533.4 1033.3 600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15z","horizAdvX":"1200"},"dislike-line":{"path":["M0 0H24V24H0z","M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm2.172 10.23L12 18.654l2.617-2.623-9.645-9.645c-1.294 1.497-1.3 3.735.008 5.237zm15.263-6.866c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636-1.414-1.414 1.59-1.592c1.374-1.576 1.299-3.958-.193-5.453-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-.35-.314-.741-.555-1.155-.723l-2.25-2.25c1.668-.206 3.407.289 4.74 1.484 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M140.4 1130.35L1059.6 211.0999999999999L988.9 140.3999999999999L801.55 327.7499999999998L600 125.75L176 550.35C74 664.5500000000001 74.6 838 177.7 951.5L69.65 1059.6L140.4 1130.35zM249.0000000000001 618.8499999999999L600 267.3L730.85 398.4500000000001L248.6000000000001 880.7C183.9000000000001 805.85 183.6000000000001 693.95 249.0000000000001 618.85zM1012.15 962.1499999999997C1125.2500000000002 848.75 1129.15 668.15 1023.9500000000002 550.3499999999999L942.2 468.55L871.5 539.2499999999999L951 618.8499999999999C1019.7 697.65 1015.95 816.75 941.35 891.5C866.3499999999999 966.6 745.3499999999999 969.65 666.8499999999999 899.1499999999999L600.0999999999999 839.25L533.3 899.0999999999999C515.8 914.8 496.2499999999999 926.85 475.55 935.2499999999998L363.05 1047.75C446.45 1058.05 533.4 1033.3 600.05 973.55C717.5 1079 899 1075.5 1012.15 962.1499999999997z","horizAdvX":"1200"},"disqus-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-2.53 0-4.84-.94-6.601-2.488L1.5 20l1.424-3.797C2.33 14.925 2 13.501 2 12 2 6.477 6.477 2 12 2zM8 7v10h3.733l.263-.004c3.375-.103 5.337-2.211 5.337-5.025v-.027l-.003-.215C17.23 8.956 15.21 7 11.79 7H8zm3.831 2.458c1.628 0 2.709.928 2.709 2.529v.028l-.005.183c-.079 1.5-1.138 2.345-2.704 2.345h-1.108V9.458h1.108z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C473.5000000000001 100 358 147 269.95 224.4L75 200L146.2 389.85C116.5 453.75 100 524.95 100 600C100 876.15 323.85 1100 600 1100zM400 850V350H586.65L599.8000000000001 350.2000000000001C768.5500000000001 355.3500000000002 866.6499999999999 460.7500000000001 866.6499999999999 601.45V602.8000000000001L866.4999999999999 613.5500000000001C861.5 752.2 760.5 850 589.5 850H400zM591.55 727.0999999999999C672.9499999999999 727.0999999999999 727 680.6999999999999 727 600.65V599.25L726.7499999999999 590.1C722.7999999999998 515.1 669.8499999999999 472.8499999999999 591.5499999999998 472.8499999999999H536.1499999999999V727.0999999999999H591.5499999999998z","horizAdvX":"1200"},"disqus-line":{"path":["M0 0H24V24H0z","M11.95 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-2.306 0-4.492-.784-6.249-2.192l-4.718.59 1.72-4.586C2.207 14.614 1.95 13.324 1.95 12c0-5.523 4.477-10 10-10zm0 2c-4.418 0-8 3.582-8 8 0 1.178.254 2.318.738 3.362l.176.38-.847 2.26 2.315-.289.338.297C8.12 19.286 9.978 20 11.95 20c4.418 0 8-3.582 8-8s-3.582-8-8-8zM8 7h3.79c3.42 0 5.44 1.956 5.54 4.729l.003.215v.027c0 2.814-1.962 4.922-5.337 5.025l-.263.004H8V7h3.79H8zm3.831 2.458h-1.108v5.085h1.108c1.566 0 2.625-.845 2.704-2.345l.005-.183v-.028c0-1.6-1.08-2.53-2.709-2.53z"],"unicode":"","glyph":"M597.5 1100C873.65 1100 1097.5 876.15 1097.5 600S873.65 100 597.5 100C482.1999999999999 100 372.9 139.2000000000001 285.05 209.6L49.15 180.1L135.15 409.4C110.35 469.3 97.5 533.8 97.5 600C97.5 876.15 321.35 1100 597.5 1100zM597.5 1000C376.6 1000 197.5 820.9000000000001 197.5 600C197.5 541.0999999999999 210.1999999999999 484.1 234.4 431.9L243.2 412.9L200.85 299.8999999999999L316.6 314.3499999999999L333.5 299.4999999999999C406 235.7 498.9 200 597.5 200C818.4 200 997.5 379.1 997.5 600S818.4 1000 597.5 1000zM400 850H589.5C760.5 850 861.5 752.2 866.4999999999999 613.5500000000001L866.6499999999999 602.8000000000001V601.45C866.6499999999999 460.7500000000001 768.55 355.3500000000002 599.8 350.2000000000001L586.65 350H400V850H589.5H400zM591.55 727.0999999999999H536.15V472.85H591.55C669.85 472.85 722.8 515.1 726.75 590.1L727 599.2500000000001V600.6500000000001C727 680.6500000000001 673 727.1500000000001 591.5500000000001 727.1500000000001z","horizAdvX":"1200"},"divide-fill":{"path":["M0 0h24v24H0z","M5 11h14v2H5v-2zm7-3a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 650H950V550H250V650zM600 800A75 75 0 1 0 600 950A75 75 0 0 0 600 800zM600 250A75 75 0 1 0 600 400A75 75 0 0 0 600 250z","horizAdvX":"1200"},"divide-line":{"path":["M0 0h24v24H0z","M5 11h14v2H5v-2zm7-3a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 650H950V550H250V650zM600 800A75 75 0 1 0 600 950A75 75 0 0 0 600 800zM600 250A75 75 0 1 0 600 400A75 75 0 0 0 600 250z","horizAdvX":"1200"},"donut-chart-fill":{"path":["M0 0H24V24H0z","M11 2.05v3.02C7.608 5.557 5 8.475 5 12c0 3.866 3.134 7 7 7 1.572 0 3.024-.518 4.192-1.394l2.137 2.137C16.605 21.153 14.4 22 12 22 6.477 22 2 17.523 2 12c0-5.185 3.947-9.449 9-9.95zM21.95 13c-.2 2.011-.994 3.847-2.207 5.328l-2.137-2.136c.687-.916 1.153-2.006 1.323-3.192h3.022zM13.002 2.05c4.724.469 8.48 4.226 8.95 8.95h-3.022c-.438-3.065-2.863-5.49-5.928-5.929V2.049z"],"unicode":"","glyph":"M550 1097.5V946.5C380.4 922.15 250 776.25 250 600C250 406.7000000000001 406.7000000000001 250 600 250C678.5999999999999 250 751.2 275.9000000000001 809.6 319.7L916.45 212.8499999999999C830.25 142.3500000000001 720 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM1097.5 550C1087.5 449.4500000000001 1047.8 357.65 987.15 283.6L880.3 390.4C914.65 436.2000000000001 937.9499999999998 490.7 946.45 550H1097.55zM650.1 1097.5C886.3 1074.05 1074.1 886.2 1097.6 650H946.5C924.6 803.25 803.35 924.5 650.0999999999999 946.45V1097.55z","horizAdvX":"1200"},"donut-chart-line":{"path":["M0 0H24V24H0z","M11 2.05v2.012C7.054 4.554 4 7.92 4 12c0 4.418 3.582 8 8 8 1.849 0 3.55-.627 4.906-1.68l1.423 1.423C16.605 21.153 14.4 22 12 22 6.477 22 2 17.523 2 12c0-5.185 3.947-9.449 9-9.95zM21.95 13c-.2 2.011-.994 3.847-2.207 5.328l-1.423-1.422c.86-1.107 1.436-2.445 1.618-3.906h2.013zM13.002 2.05c4.724.469 8.48 4.226 8.95 8.95h-2.013c-.451-3.618-3.319-6.486-6.937-6.938V2.049z"],"unicode":"","glyph":"M550 1097.5V996.9C352.7 972.3 200 804 200 600C200 379.1 379.1 200 600 200C692.45 200 777.5 231.3499999999999 845.3 284L916.45 212.8499999999999C830.25 142.3500000000001 720 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM1097.5 550C1087.5 449.4500000000001 1047.8 357.65 987.15 283.6L916 354.7000000000001C959 410.0500000000001 987.8 476.95 996.9 550.0000000000001H1097.55zM650.1 1097.5C886.3 1074.05 1074.1 886.2 1097.6 650H996.95C974.4 830.9000000000001 831 974.3 650.0999999999999 996.9V1097.55z","horizAdvX":"1200"},"door-closed-fill":{"path":["M0 0H24V24H0z","M3 21v-2h2V4c0-.552.448-1 1-1h12c.552 0 1 .448 1 1v15h2v2H3zm12-10h-2v2h2v-2z"],"unicode":"","glyph":"M150 150V250H250V1000C250 1027.6 272.4000000000001 1050 300 1050H900C927.6 1050 950 1027.6 950 1000V250H1050V150H150zM750 650H650V550H750V650z","horizAdvX":"1200"},"door-closed-line":{"path":["M0 0H24V24H0z","M3 21v-2h2V4c0-.552.448-1 1-1h12c.552 0 1 .448 1 1v15h2v2H3zM17 5H7v14h10V5zm-2 6v2h-2v-2h2z"],"unicode":"","glyph":"M150 150V250H250V1000C250 1027.6 272.4000000000001 1050 300 1050H900C927.6 1050 950 1027.6 950 1000V250H1050V150H150zM850 950H350V250H850V950zM750 650V550H650V650H750z","horizAdvX":"1200"},"door-fill":{"path":["M0 0H24V24H0z","M18 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h12zm-4 8c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M900 1050C927.6 1050 950 1027.6 950 1000V200C950 172.4000000000001 927.6 150 900 150H300C272.4000000000001 150 250 172.4000000000001 250 200V1000C250 1027.6 272.4000000000001 1050 300 1050H900zM700 650C672.4 650 650 627.6 650 600S672.4 550 700 550S750 572.4 750 600S727.6 650 700 650z","horizAdvX":"1200"},"door-line":{"path":["M0 0H24V24H0z","M18 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h12zm-1 2H7v14h10V5zm-2 6v2h-2v-2h2z"],"unicode":"","glyph":"M900 1050C927.6 1050 950 1027.6 950 1000V200C950 172.4000000000001 927.6 150 900 150H300C272.4000000000001 150 250 172.4000000000001 250 200V1000C250 1027.6 272.4000000000001 1050 300 1050H900zM850 950H350V250H850V950zM750 650V550H650V650H750z","horizAdvX":"1200"},"door-lock-box-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7 9.792V16h2v-3.208a2.5 2.5 0 1 0-2 0z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550 560.4V400H650V560.4A125 125 0 1 1 550 560.4z","horizAdvX":"1200"},"door-lock-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6 7.792a2.5 2.5 0 1 1 2 0V16h-2v-3.208z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM550 560.4A125 125 0 1 0 650 560.4V400H550V560.4z","horizAdvX":"1200"},"door-lock-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-9.208V16h2v-3.208a2.5 2.5 0 1 0-2 0z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 560.4V400H650V560.4A125 125 0 1 1 550 560.4z","horizAdvX":"1200"},"door-lock-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-7.208a2.5 2.5 0 1 1 2 0V16h-2v-3.208z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 560.4A125 125 0 1 0 650 560.4V400H550V560.4z","horizAdvX":"1200"},"door-open-fill":{"path":["M0 0H24V24H0z","M2 21v-2h2V4.835c0-.484.346-.898.821-.984l9.472-1.722c.326-.06.638.157.697.483.007.035.01.07.01.107v1.28L19 4c.552 0 1 .448 1 1v14h2v2h-4V6h-3v15H2zm10-10h-2v2h2v-2z"],"unicode":"","glyph":"M100 150V250H200V958.25C200 982.45 217.3 1003.15 241.05 1007.45L714.65 1093.55C730.95 1096.55 746.55 1085.7 749.4999999999999 1069.4C749.8499999999999 1067.65 749.9999999999999 1065.9 749.9999999999999 1064.05V1000.05L950 1000C977.6 1000 1000 977.6 1000 950V250H1100V150H900V900H750V150H100zM600 650H500V550H600V650z","horizAdvX":"1200"},"door-open-line":{"path":["M0 0H24V24H0z","M2 21v-2h2V4.835c0-.484.346-.898.821-.984l9.472-1.722c.326-.06.638.157.697.483.007.035.01.07.01.107v1.28L19 4c.552 0 1 .448 1 1v14h2v2h-4V6h-3v15H2zM13 4.396L6 5.67V19h7V4.396zM12 11v2h-2v-2h2z"],"unicode":"","glyph":"M100 150V250H200V958.25C200 982.45 217.3 1003.15 241.05 1007.45L714.65 1093.55C730.95 1096.55 746.55 1085.7 749.4999999999999 1069.4C749.8499999999999 1067.65 749.9999999999999 1065.9 749.9999999999999 1064.05V1000.05L950 1000C977.6 1000 1000 977.6 1000 950V250H1100V150H900V900H750V150H100zM650 980.2L300 916.5V250H650V980.2zM600 650V550H500V650H600z","horizAdvX":"1200"},"dossier-fill":{"path":["M0 0H24V24H0z","M17 2v2h3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h3V2h10zm-4 9h-2v2H9v2h1.999L11 17h2l-.001-2H15v-2h-2v-2zm2-7H9v2h6V4z"],"unicode":"","glyph":"M850 1100V1000H1000C1027.6 1000 1050 977.6 1050 950V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V950C150 977.6 172.4 1000 200 1000H350V1100H850zM650 650H550V550H450V450H549.95L550 350H650L649.95 450H750V550H650V650zM750 1000H450V900H750V1000z","horizAdvX":"1200"},"dossier-line":{"path":["M0 0H24V24H0z","M17 2v2h3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h3V2h10zM7 6H5v14h14V6h-2v2H7V6zm6 5v2h2v2h-2.001L13 17h-2l-.001-2H9v-2h2v-2h2zm2-7H9v2h6V4z"],"unicode":"","glyph":"M850 1100V1000H1000C1027.6 1000 1050 977.6 1050 950V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V950C150 977.6 172.4 1000 200 1000H350V1100H850zM350 900H250V200H950V900H850V800H350V900zM650 650V550H750V450H649.95L650 350H550L549.95 450H450V550H550V650H650zM750 1000H450V900H750V1000z","horizAdvX":"1200"},"douban-fill":{"path":["M0 0h24v24H0z","M16.314 19.138h4.065a.62.62 0 0 1 .621.62v.621a.62.62 0 0 1-.62.621H3.62a.62.62 0 0 1-.62-.62v-.621a.62.62 0 0 1 .62-.621h3.754l-.96-3.104h2.19a.62.62 0 0 1 .59.425l.892 2.679H13.6l1.225-4.035H5.172a.62.62 0 0 1-.62-.62V7.345a.62.62 0 0 1 .62-.62h13.656a.62.62 0 0 1 .62.62v7.138a.62.62 0 0 1-.62.62h-1.289l-1.225 4.035zM3.931 3h16.138a.62.62 0 0 1 .62.62v.621a.62.62 0 0 1-.62.621H3.931a.62.62 0 0 1-.62-.62V3.62A.62.62 0 0 1 3.93 3zM7.19 8.586a.155.155 0 0 0-.156.155v4.035c0 .086.07.155.156.155h9.62c.086 0 .156-.07.156-.155V8.74a.155.155 0 0 0-.156-.155H7.19z"],"unicode":"","glyph":"M815.7 243.0999999999999H1018.95A31 31 0 0 0 1050 212.0999999999999V181.05A31 31 0 0 0 1019 150H181A31 31 0 0 0 150 181V212.05A31 31 0 0 0 181 243.0999999999999H368.7000000000001L320.7000000000001 398.2999999999999H430.2000000000001A31 31 0 0 0 459.7 377.0499999999999L504.3 243.0999999999999H680L741.25 444.8499999999999H258.6A31 31 0 0 0 227.6 475.8499999999999V832.75A31 31 0 0 0 258.6 863.75H941.4A31 31 0 0 0 972.4 832.75V475.85A31 31 0 0 0 941.4 444.85H876.9499999999999L815.6999999999998 243.1000000000002zM196.55 1050H1003.4500000000002A31 31 0 0 0 1034.4500000000003 1019V987.95A31 31 0 0 0 1003.4500000000002 956.9H196.55A31 31 0 0 0 165.55 987.9V1019A31 31 0 0 0 196.5 1050zM359.5 770.7A7.75 7.75 0 0 1 351.7000000000001 762.95V561.2C351.7000000000001 556.9 355.2000000000001 553.45 359.5 553.45H840.4999999999999C844.7999999999998 553.45 848.2999999999998 556.95 848.2999999999998 561.2V763A7.75 7.75 0 0 1 840.4999999999999 770.75H359.5z","horizAdvX":"1200"},"douban-line":{"path":["M0 0h24v24H0z","M15.273 15H5V7h14v8h-1.624l-1.3 4H21v2H3v-2h4.612L6.8 16.5l1.902-.618L9.715 19h4.259l1.3-4zM3.5 3h17v2h-17V3zM7 9v4h10V9H7z"],"unicode":"","glyph":"M763.65 450H250V850H950V450H868.8000000000001L803.8000000000001 250H1050V150H150V250H380.6L340 375L435.1 405.9L485.75 250H698.7L763.7 450zM175 1050H1025V950H175V1050zM350 750V550H850V750H350z","horizAdvX":"1200"},"double-quotes-l":{"path":["M0 0h24v24H0z","M4.583 17.321C3.553 16.227 3 15 3 13.011c0-3.5 2.457-6.637 6.03-8.188l.893 1.378c-3.335 1.804-3.987 4.145-4.247 5.621.537-.278 1.24-.375 1.929-.311 1.804.167 3.226 1.648 3.226 3.489a3.5 3.5 0 0 1-3.5 3.5c-1.073 0-2.099-.49-2.748-1.179zm10 0C13.553 16.227 13 15 13 13.011c0-3.5 2.457-6.637 6.03-8.188l.893 1.378c-3.335 1.804-3.987 4.145-4.247 5.621.537-.278 1.24-.375 1.929-.311 1.804.167 3.226 1.648 3.226 3.489a3.5 3.5 0 0 1-3.5 3.5c-1.073 0-2.099-.49-2.748-1.179z"],"unicode":"","glyph":"M229.15 333.95C177.65 388.65 150 450 150 549.45C150 724.45 272.85 881.3 451.5000000000001 958.8500000000003L496.1500000000001 889.95C329.4000000000001 799.75 296.8000000000001 682.7 283.8000000000001 608.9000000000001C310.6500000000001 622.8000000000001 345.8000000000002 627.6500000000001 380.2500000000001 624.45C470.4500000000001 616.1 541.5500000000002 542.0500000000001 541.5500000000002 450A175 175 0 0 0 366.5500000000002 275C312.9000000000002 275 261.6000000000002 299.4999999999999 229.1500000000002 333.95zM729.15 333.95C677.6500000000001 388.65 650 450 650 549.45C650 724.45 772.85 881.3 951.5 958.8500000000003L996.15 889.95C829.4000000000001 799.75 796.8000000000001 682.7 783.8000000000001 608.9000000000001C810.6500000000001 622.8000000000001 845.8000000000001 627.6500000000001 880.25 624.45C970.45 616.1 1041.55 542.0500000000001 1041.55 450A175 175 0 0 0 866.55 275C812.9 275 761.5999999999999 299.4999999999999 729.1499999999999 333.95z","horizAdvX":"1200"},"double-quotes-r":{"path":["M0 0h24v24H0z","M19.417 6.679C20.447 7.773 21 9 21 10.989c0 3.5-2.457 6.637-6.03 8.188l-.893-1.378c3.335-1.804 3.987-4.145 4.247-5.621-.537.278-1.24.375-1.929.311-1.804-.167-3.226-1.648-3.226-3.489a3.5 3.5 0 0 1 3.5-3.5c1.073 0 2.099.49 2.748 1.179zm-10 0C10.447 7.773 11 9 11 10.989c0 3.5-2.457 6.637-6.03 8.188l-.893-1.378c3.335-1.804 3.987-4.145 4.247-5.621-.537.278-1.24.375-1.929.311C4.591 12.322 3.17 10.841 3.17 9a3.5 3.5 0 0 1 3.5-3.5c1.073 0 2.099.49 2.748 1.179z"],"unicode":"","glyph":"M970.8500000000003 866.05C1022.35 811.35 1050 750 1050 650.55C1050 475.55 927.15 318.7 748.5 241.15L703.8499999999999 310.0500000000001C870.5999999999999 400.25 903.2 517.3 916.2 591.1C889.3499999999999 577.2 854.1999999999999 572.35 819.75 575.5500000000001C729.55 583.9000000000001 658.45 657.95 658.45 750A175 175 0 0 0 833.45 925C887.1 925 938.4 900.5 970.8500000000003 866.05zM470.8500000000001 866.05C522.3499999999999 811.35 550 750 550 650.55C550 475.55 427.15 318.7 248.5 241.15L203.85 310.0500000000001C370.6 400.25 403.2 517.3 416.2 591.1C389.35 577.2 354.2 572.35 319.75 575.5500000000001C229.55 583.9000000000001 158.5 657.95 158.5 750A175 175 0 0 0 333.5 925C387.1500000000001 925 438.45 900.5 470.9 866.05z","horizAdvX":"1200"},"download-2-fill":{"path":["M0 0h24v24H0z","M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7zM14 9h5l-7 7-7-7h5V3h4v6z"],"unicode":"","glyph":"M200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250zM700 750H950L600 400L250 750H500V1050H700V750z","horizAdvX":"1200"},"download-2-line":{"path":["M0 0h24v24H0z","M13 10h5l-6 6-6-6h5V3h2v7zm-9 9h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7z"],"unicode":"","glyph":"M650 700H900L600 400L300 700H550V1050H650V700zM200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250z","horizAdvX":"1200"},"download-cloud-2-fill":{"path":["M0 0h24v24H0z","M13 13v5.585l1.828-1.828 1.415 1.415L12 22.414l-4.243-4.242 1.415-1.415L11 18.585V13h2zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784L18 17a6 6 0 0 0-11.996-.225L6 17v1.978a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M650 550V270.75L741.4 362.15L812.15 291.4L600 79.3L387.85 291.4L458.6 362.15L550 270.75V550H650zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999L900 350A300 300 0 0 1 300.2 361.2500000000001L300 350V251.0999999999999A275 275 0 0 0 252.3 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"download-cloud-2-line":{"path":["M0 0h24v24H0z","M13 13v5.585l1.828-1.828 1.415 1.415L12 22.414l-4.243-4.242 1.415-1.415L11 18.585V13h2zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784v-2.014a3.5 3.5 0 1 0-1.112-6.91 5 5 0 1 0-9.777 0 3.5 3.5 0 0 0-1.292 6.88l.18.03v2.014a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M650 550V270.75L741.4 362.15L812.15 291.4L600 79.3L387.85 291.4L458.6 362.15L550 270.75V550H650zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999V351.7999999999999A175 175 0 1 1 844.4500000000002 697.3A250 250 0 1 1 355.6000000000002 697.3A175 175 0 0 1 291.0000000000002 353.3L300.0000000000002 351.7999999999999V251.0999999999999A275 275 0 0 0 252.3000000000002 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"download-cloud-fill":{"path":["M0 0h24v24H0z","M7 20.981a6.5 6.5 0 0 1-2.936-12 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12V21H7v-.019zM13 12V8h-2v4H8l4 5 4-5h-3z"],"unicode":"","glyph":"M350 150.9499999999998A325 325 0 0 0 203.2 750.9499999999999A400.04999999999995 400.04999999999995 0 0 0 996.8 750.9499999999999A325 325 0 0 0 850 150.9499999999998V150H350V150.9499999999998zM650 600V800H550V600H400L600 350L800 600H650z","horizAdvX":"1200"},"download-cloud-line":{"path":["M0 0h24v24H0z","M1 14.5a6.496 6.496 0 0 1 3.064-5.519 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12L7 21c-3.356-.274-6-3.078-6-6.5zm15.848 4.487a4.5 4.5 0 0 0 2.03-8.309l-.807-.503-.12-.942a6.001 6.001 0 0 0-11.903 0l-.12.942-.805.503a4.5 4.5 0 0 0 2.029 8.309l.173.013h9.35l.173-.013zM13 12h3l-4 5-4-5h3V8h2v4z"],"unicode":"","glyph":"M50 475A324.8 324.8 0 0 0 203.2 750.95A400.04999999999995 400.04999999999995 0 0 0 996.8 750.95A325 325 0 0 0 850 150.9499999999998L350 150C182.2 163.7000000000001 50 303.9 50 475zM842.4 250.6499999999999A225 225 0 0 1 943.9 666.0999999999999L903.55 691.2499999999999L897.5500000000001 738.3499999999999A300.05 300.05 0 0 1 302.4 738.3499999999999L296.4 691.2499999999999L256.1500000000001 666.0999999999999A225 225 0 0 1 357.6 250.6499999999999L366.25 249.9999999999998H833.75L842.4 250.6499999999999zM650 600H800L600 350L400 600H550V800H650V600z","horizAdvX":"1200"},"download-fill":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zM13 9h7l-8 8-8-8h7V1h2v8z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 750H1000L600 350L200 750H550V1150H650V750z","horizAdvX":"1200"},"download-line":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zm10-5.828L19.071 7.1l1.414 1.414L12 17 3.515 8.515 4.929 7.1 11 13.17V2h2v11.172z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 541.4L953.55 845L1024.2500000000002 774.3L600 350L175.75 774.25L246.45 845L550 541.5V1100H650V541.4z","horizAdvX":"1200"},"draft-fill":{"path":["M0 0L24 0 24 24 0 24z","M20 2c.552 0 1 .448 1 1v3.757l-8.999 9-.006 4.238 4.246.006L21 15.242V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1h16zm1.778 6.808l1.414 1.414L15.414 18l-1.416-.002.002-1.412 7.778-7.778zM12 12H7v2h5v-2zm3-4H7v2h8V8z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V862.1500000000001L600.05 412.15L599.75 200.25L812.05 199.9499999999999L1050 437.9V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V1050C150 1077.6 172.4 1100 200 1100H1000zM1088.8999999999999 759.6L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999zM600 600H350V500H600V600zM750 800H350V700H750V800z","horizAdvX":"1200"},"draft-line":{"path":["M0 0L24 0 24 24 0 24z","M20 2c.552 0 1 .448 1 1v3.757l-2 2V4H5v16h14v-2.758l2-2V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1h16zm1.778 6.808l1.414 1.414L15.414 18l-1.416-.002.002-1.412 7.778-7.778zM13 12v2H8v-2h5zm3-4v2H8V8h8z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V862.1500000000001L950 762.1500000000001V1000H250V200H950V337.9L1050 437.9V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V1050C150 1077.6 172.4 1100 200 1100H1000zM1088.8999999999999 759.6L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999zM650 600V500H400V600H650zM800 800V700H400V800H800z","horizAdvX":"1200"},"drag-drop-fill":{"path":["M0 0h24v24H0z","M14 6h2v2h5a1 1 0 0 1 1 1v7.5L16 13l.036 8.062 2.223-2.15L20.041 22H9a1 1 0 0 1-1-1v-5H6v-2h2V9a1 1 0 0 1 1-1h5V6zm8 11.338V21a1 1 0 0 1-.048.307l-1.96-3.394L22 17.338zM4 14v2H2v-2h2zm0-4v2H2v-2h2zm0-4v2H2V6h2zm0-4v2H2V2h2zm4 0v2H6V2h2zm4 0v2h-2V2h2zm4 0v2h-2V2h2z"],"unicode":"","glyph":"M700 900H800V800H1050A50 50 0 0 0 1100 750V375L800 550L801.8000000000001 146.9000000000001L912.95 254.4000000000001L1002.05 100H450A50 50 0 0 0 400 150V400H300V500H400V750A50 50 0 0 0 450 800H700V900zM1100 333.0999999999999V150A50 50 0 0 0 1097.6000000000001 134.6500000000001L999.6 304.3500000000002L1100 333.0999999999999zM200 500V400H100V500H200zM200 700V600H100V700H200zM200 900V800H100V900H200zM200 1100V1000H100V1100H200zM400 1100V1000H300V1100H400zM600 1100V1000H500V1100H600zM800 1100V1000H700V1100H800z","horizAdvX":"1200"},"drag-drop-line":{"path":["M0 0h24v24H0z","M16 13l6.964 4.062-2.973.85 2.125 3.681-1.732 1-2.125-3.68-2.223 2.15L16 13zm-2-7h2v2h5a1 1 0 0 1 1 1v4h-2v-3H10v10h4v2H9a1 1 0 0 1-1-1v-5H6v-2h2V9a1 1 0 0 1 1-1h5V6zM4 14v2H2v-2h2zm0-4v2H2v-2h2zm0-4v2H2V6h2zm0-4v2H2V2h2zm4 0v2H6V2h2zm4 0v2h-2V2h2zm4 0v2h-2V2h2z"],"unicode":"","glyph":"M800 550L1148.1999999999998 346.9L999.55 304.3999999999999L1105.8 120.3499999999999L1019.2 70.3499999999999L912.95 254.3499999999998L801.8000000000001 146.8499999999999L800 550zM700 900H800V800H1050A50 50 0 0 0 1100 750V550H1000V700H500V200H700V100H450A50 50 0 0 0 400 150V400H300V500H400V750A50 50 0 0 0 450 800H700V900zM200 500V400H100V500H200zM200 700V600H100V700H200zM200 900V800H100V900H200zM200 1100V1000H100V1100H200zM400 1100V1000H300V1100H400zM600 1100V1000H500V1100H600zM800 1100V1000H700V1100H800z","horizAdvX":"1200"},"drag-move-2-fill":{"path":["M0 0h24v24H0z","M18 11V8l4 4-4 4v-3h-5v5h3l-4 4-4-4h3v-5H6v3l-4-4 4-4v3h5V6H8l4-4 4 4h-3v5z"],"unicode":"","glyph":"M900 650V800L1100 600L900 400V550H650V300H800L600 100L400 300H550V550H300V400L100 600L300 800V650H550V900H400L600 1100L800 900H650V650z","horizAdvX":"1200"},"drag-move-2-line":{"path":["M0 0h24v24H0z","M11 11V5.828L9.172 7.657 7.757 6.243 12 2l4.243 4.243-1.415 1.414L13 5.828V11h5.172l-1.829-1.828 1.414-1.415L22 12l-4.243 4.243-1.414-1.415L18.172 13H13v5.172l1.828-1.829 1.415 1.414L12 22l-4.243-4.243 1.415-1.414L11 18.172V13H5.828l1.829 1.828-1.414 1.415L2 12l4.243-4.243 1.414 1.415L5.828 11z"],"unicode":"","glyph":"M550 650V908.6L458.6 817.15L387.85 887.8499999999999L600 1100L812.1500000000001 887.8499999999999L741.4000000000001 817.15L650 908.6V650H908.6L817.15 741.4L887.85 812.15L1100 600L887.8499999999999 387.8499999999999L817.1499999999999 458.5999999999999L908.6 550H650V291.4L741.4 382.85L812.15 312.15L600 100L387.85 312.1500000000001L458.6 382.8500000000002L550 291.4V550H291.4000000000001L382.85 458.6L312.1500000000001 387.85L100 600L312.1500000000001 812.1500000000001L382.85 741.4L291.4000000000001 650z","horizAdvX":"1200"},"drag-move-fill":{"path":["M0 0h24v24H0z","M12 22l-4-4h8l-4 4zm0-20l4 4H8l4-4zm0 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zM2 12l4-4v8l-4-4zm20 0l-4 4V8l4 4z"],"unicode":"","glyph":"M600 100L400 300H800L600 100zM600 1100L800 900H400L600 1100zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500zM100 600L300 800V400L100 600zM1100 600L900 400V800L1100 600z","horizAdvX":"1200"},"drag-move-line":{"path":["M0 0h24v24H0z","M12 2l4.243 4.243-1.415 1.414L12 4.828 9.172 7.657 7.757 6.243 12 2zM2 12l4.243-4.243 1.414 1.415L4.828 12l2.829 2.828-1.414 1.415L2 12zm20 0l-4.243 4.243-1.414-1.415L19.172 12l-2.829-2.828 1.414-1.415L22 12zm-10 2a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 8l-4.243-4.243 1.415-1.414L12 19.172l2.828-2.829 1.415 1.414L12 22z"],"unicode":"","glyph":"M600 1100L812.1500000000001 887.8499999999999L741.4000000000001 817.15L600 958.6L458.6 817.15L387.85 887.8499999999999L600 1100zM100 600L312.1500000000001 812.1500000000001L382.85 741.4L241.4 600L382.85 458.6L312.1500000000001 387.85L100 600zM1100 600L887.8499999999999 387.8499999999999L817.1499999999999 458.5999999999999L958.6 600L817.15 741.4L887.85 812.15L1100 600zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500zM600 100L387.85 312.1500000000001L458.6 382.8500000000002L600 241.4L741.4 382.85L812.15 312.15L600 100z","horizAdvX":"1200"},"dribbble-fill":{"path":["M0 0h24v24H0z","M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c5.51 0 10-4.48 10-10S17.51 2 12 2zm6.605 4.61a8.502 8.502 0 0 1 1.93 5.314c-.281-.054-3.101-.629-5.943-.271-.065-.141-.12-.293-.184-.445a25.424 25.424 0 0 0-.564-1.236c3.145-1.28 4.577-3.124 4.761-3.362zM12 3.475c2.17 0 4.154.814 5.662 2.148-.152.216-1.443 1.941-4.48 3.08-1.399-2.57-2.95-4.675-3.189-5A8.686 8.686 0 0 1 12 3.475zm-3.633.803a53.903 53.903 0 0 1 3.167 4.935c-3.992 1.063-7.517 1.04-7.896 1.04a8.581 8.581 0 0 1 4.729-5.975zM3.453 12.01v-.26c.37.01 4.512.065 8.775-1.215.25.477.477.965.694 1.453-.109.033-.228.065-.336.098-4.404 1.42-6.747 5.303-6.942 5.629a8.522 8.522 0 0 1-2.19-5.705zM12 20.547a8.482 8.482 0 0 1-5.239-1.8c.152-.315 1.888-3.656 6.703-5.337.022-.01.033-.01.054-.022a35.309 35.309 0 0 1 1.823 6.475 8.4 8.4 0 0 1-3.341.684zm4.761-1.465c-.086-.52-.542-3.015-1.66-6.084 2.68-.423 5.023.271 5.315.369a8.468 8.468 0 0 1-3.655 5.715z"],"unicode":"","glyph":"M600 1100C324 1100 100 876 100 600S324 100 600 100C875.4999999999999 100 1100 324 1100 600S875.5000000000001 1100 600 1100zM930.25 869.5A425.09999999999997 425.09999999999997 0 0 0 1026.75 603.8000000000001C1012.7 606.5 871.7 635.25 729.6 617.35C726.35 624.4000000000001 723.6 632 720.4000000000001 639.6000000000001A1271.2 1271.2 0 0 1 692.2 701.4000000000001C849.45 765.4000000000001 921.05 857.6000000000001 930.25 869.5000000000001zM600 1026.25C708.5 1026.25 807.7 985.55 883.0999999999999 918.85C875.4999999999999 908.05 810.9499999999999 821.8 659.0999999999999 764.85C589.1499999999999 893.35 511.6 998.6 499.6499999999999 1014.85A434.3 434.3 0 0 0 600 1026.25zM418.35 986.1A2695.1499999999996 2695.1499999999996 0 0 0 576.7 739.3499999999999C377.1 686.1999999999999 200.85 687.35 181.9 687.35A429.04999999999995 429.04999999999995 0 0 0 418.35 986.1zM172.65 599.5V612.5C191.15 612 398.25 609.25 611.4 673.25C623.9 649.4 635.25 625 646.1 600.6C640.65 598.95 634.7 597.35 629.3000000000001 595.6999999999999C409.1 524.7 291.9500000000001 330.5500000000001 282.2 314.25A426.09999999999997 426.09999999999997 0 0 0 172.7 599.5zM600 172.6499999999999A424.09999999999997 424.09999999999997 0 0 0 338.05 262.65C345.6500000000001 278.4000000000001 432.4500000000001 445.4500000000001 673.2 529.5C674.3000000000001 530 674.85 530 675.9000000000001 530.6A1765.4499999999996 1765.4499999999996 0 0 0 767.0500000000001 206.85A420 420 0 0 0 600 172.6499999999999zM838.05 245.9C833.75 271.9 810.9499999999999 396.65 755.05 550.0999999999999C889.05 571.25 1006.2 536.55 1020.8 531.65A423.4 423.4 0 0 0 838.05 245.9z","horizAdvX":"1200"},"dribbble-line":{"path":["M0 0h24v24H0z","M19.989 11.572a7.96 7.96 0 0 0-1.573-4.351 9.749 9.749 0 0 1-.92.87 13.157 13.157 0 0 1-3.313 2.01c.167.35.32.689.455 1.009v.003a9.186 9.186 0 0 1 .11.27c1.514-.17 3.11-.108 4.657.101.206.028.4.058.584.088zm-9.385-7.45a46.164 46.164 0 0 1 2.692 4.27c1.223-.482 2.234-1.09 3.048-1.767a7.88 7.88 0 0 0 .796-.755A7.968 7.968 0 0 0 12 4a8.05 8.05 0 0 0-1.396.121zM4.253 9.997a29.21 29.21 0 0 0 2.04-.123 31.53 31.53 0 0 0 4.862-.822 54.365 54.365 0 0 0-2.7-4.227 8.018 8.018 0 0 0-4.202 5.172zm1.53 7.038c.388-.567.898-1.205 1.575-1.899 1.454-1.49 3.17-2.65 5.156-3.29l.062-.018c-.165-.364-.32-.689-.476-.995-1.836.535-3.77.869-5.697 1.042-.94.085-1.783.122-2.403.128a7.967 7.967 0 0 0 1.784 5.032zm9.222 2.38a35.947 35.947 0 0 0-1.632-5.709c-2.002.727-3.597 1.79-4.83 3.058a9.77 9.77 0 0 0-1.317 1.655A7.964 7.964 0 0 0 12 20a7.977 7.977 0 0 0 3.005-.583zm1.873-1.075a7.998 7.998 0 0 0 2.987-4.87c-.34-.085-.771-.17-1.245-.236a12.023 12.023 0 0 0-3.18-.033 39.368 39.368 0 0 1 1.438 5.14zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M999.45 621.4000000000001A398.00000000000006 398.00000000000006 0 0 1 920.8 838.95A487.45000000000005 487.45000000000005 0 0 0 874.8 795.45A657.85 657.85 0 0 0 709.1499999999999 694.95C717.4999999999999 677.45 725.1499999999999 660.5 731.8999999999999 644.5V644.35A459.29999999999995 459.29999999999995 0 0 0 737.3999999999999 630.85C813.0999999999998 639.35 892.8999999999999 636.2500000000001 970.2499999999998 625.8C980.5499999999998 624.4 990.2499999999998 622.9 999.4499999999998 621.4000000000001zM530.2 993.9A2308.2 2308.2 0 0 0 664.8000000000001 780.4000000000001C725.95 804.5 776.5 834.9000000000001 817.2 868.75A394 394 0 0 1 857 906.5A398.40000000000003 398.40000000000003 0 0 1 600 1000A402.50000000000006 402.50000000000006 0 0 1 530.1999999999999 993.95zM212.65 700.15A1460.5000000000002 1460.5000000000002 0 0 1 314.6500000000001 706.3A1576.5000000000002 1576.5000000000002 0 0 1 557.75 747.3999999999999A2718.25 2718.25 0 0 1 422.7500000000001 958.75A400.90000000000003 400.90000000000003 0 0 1 212.6500000000001 700.15zM289.1500000000001 348.25C308.55 376.6 334.05 408.5 367.9000000000001 443.2000000000001C440.6000000000001 517.7 526.4 575.7 625.6999999999999 607.7L628.8 608.6C620.55 626.8000000000001 612.8 643.0500000000001 604.9999999999999 658.35C513.1999999999999 631.6 416.4999999999999 614.9 320.1499999999999 606.25C273.1499999999999 602 230.9999999999999 600.15 199.9999999999999 599.85A398.34999999999997 398.34999999999997 0 0 1 289.1999999999999 348.25zM750.25 229.25A1797.3500000000001 1797.3500000000001 0 0 1 668.65 514.7C568.55 478.35 488.8 425.2000000000001 427.15 361.8000000000001A488.49999999999994 488.49999999999994 0 0 1 361.3 279.05A398.20000000000005 398.20000000000005 0 0 1 600 200A398.84999999999997 398.84999999999997 0 0 1 750.25 229.1499999999999zM843.9 283A399.90000000000003 399.90000000000003 0 0 1 993.2500000000002 526.5C976.2500000000002 530.7500000000001 954.7 535 931 538.3000000000001A601.15 601.15 0 0 1 772.0000000000001 539.95A1968.4 1968.4 0 0 0 843.9 282.9500000000002zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"drive-fill":{"path":["M0 0h24v24H0z","M7.94 4.146l3.482 6.03-5.94 10.293L2 14.44 7.94 4.146zm2.176 10.294H22l-3.482 6.029H6.635l3.481-6.029zm4.343-1L8.518 3.145h6.964l5.94 10.295H14.46z"],"unicode":"","glyph":"M397 992.7L571.1 691.2L274.1 176.55L100 478L397 992.7zM505.8 477.9999999999999H1100L925.9 176.55H331.75L505.8 477.9999999999999zM722.9499999999999 527.9999999999999L425.9000000000001 1042.75H774.1L1071.1000000000001 528H723z","horizAdvX":"1200"},"drive-line":{"path":["M0 0h24v24H0z","M9.097 6.15L4.31 14.443l1.755 3.032 4.785-8.29L9.097 6.15zm-1.3 12.324h9.568l1.751-3.034H9.55l-1.752 3.034zm11.314-5.034l-4.786-8.29H10.83l4.787 8.29h3.495zM8.52 3.15h6.96L22 14.444l-3.48 6.03H5.49L2 14.444 8.52 3.15zm3.485 8.036l-1.302 2.254h2.603l-1.301-2.254z"],"unicode":"","glyph":"M454.85 892.5L215.5 477.85L303.25 326.2499999999999L542.5 740.7499999999999L454.85 892.5zM389.85 276.3H868.2499999999999L955.8 427.9999999999999H477.5000000000001L389.9000000000001 276.3zM955.55 527.9999999999999L716.25 942.4999999999998H541.5L780.85 527.9999999999999H955.6000000000003zM426 1042.5H774L1100 477.8L926 176.3H274.5L100 477.8L426 1042.5zM600.25 640.7L535.15 528H665.3L600.25 640.7z","horizAdvX":"1200"},"drizzle-fill":{"path":["M0 0h24v24H0z","M11 18v3H9v-3a8 8 0 1 1 7.458-10.901A5.5 5.5 0 1 1 17.5 18H11zm2 2h2v3h-2v-3z"],"unicode":"","glyph":"M550 300V150H450V300A400 400 0 1 0 822.8999999999999 845.05A275 275 0 1 0 875 300H550zM650 200H750V50H650V200z","horizAdvX":"1200"},"drizzle-line":{"path":["M0 0h24v24H0z","M17 18v-2h.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-8 5.659v2.089a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001zm-8-2h2v4H9v-4zm4 3h2v4h-2v-4z"],"unicode":"","glyph":"M850 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 350 417.0500000000001V312.6000000000002A400 400 0 1 0 822.8999999999999 845.1000000000001A275 275 0 1 0 875 300L850 299.95zM450 400H550V200H450V400zM650 250H750V50H650V250z","horizAdvX":"1200"},"drop-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2z","horizAdvX":"1200"},"drop-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4z","horizAdvX":"1200"},"dropbox-fill":{"path":["M0 0h24v24H0z","M17.285 10.668l5.215 3.323-5.252 3.346L12 13.993l-5.248 3.344L1.5 13.99l5.215-3.323L1.5 7.346 6.752 4 12 7.343 17.248 4 22.5 7.346l-5.215 3.322zm-.074 0L12 7.348l-5.211 3.32L12 13.988l5.211-3.32zM6.786 18.446l5.252-3.346 5.252 3.346-5.252 3.346-5.252-3.346z"],"unicode":"","glyph":"M864.25 666.6L1125 500.45L862.4000000000001 333.15L600 500.35L337.6 333.15L75 500.5L335.75 666.65L75 832.7L337.6 1000L600 832.85L862.4000000000001 1000L1125 832.7L864.25 666.6zM860.55 666.6L600 832.6L339.45 666.6L600 500.6L860.55 666.6zM339.3 277.7L601.9 444.9999999999999L864.5 277.7L601.9 110.3999999999999L339.3 277.7z","horizAdvX":"1200"},"dropbox-line":{"path":["M0 0h24v24H0z","M8.646 17.26l3.392 2.162 3.392-2.161 1.86 1.185-5.252 3.346-5.252-3.346 1.86-1.185zm-.877-8.28l2.393-1.553-2.425-1.574L5.28 7.37 7.77 8.98zm1.84 1.19L12 11.719l2.39-1.547L12 8.619l-2.391 1.552zm4.231 2.74l2.424 1.568 2.45-1.502-2.485-1.612-2.389 1.545zM12 6.234l4.237-2.748L22.46 7.33l-4.392 2.843 4.393 2.85-6.226 3.819L12 14.1l-4.235 2.74-6.23-3.817 4.396-2.851L1.539 7.33l6.224-3.843L12 6.235zm1.837 1.192L16.23 8.98l2.489-1.61-2.456-1.517-2.426 1.574zM10.16 12.91l-2.39-1.546-2.486 1.613 2.451 1.502 2.425-1.569z"],"unicode":"","glyph":"M432.3000000000001 336.9999999999999L601.9 228.9L771.5 336.9500000000001L864.5 277.7000000000001L601.9 110.4000000000001L339.3 277.7000000000001L432.3000000000001 336.9500000000001zM388.4500000000001 750.9999999999999L508.1 828.6499999999999L386.85 907.35L264 831.5L388.5 751zM480.4500000000001 691.4999999999999L600 614.0500000000001L719.5 691.4000000000001L600 769.05L480.45 691.45zM692.0000000000001 554.4999999999999L813.2000000000002 476.0999999999999L935.7000000000002 551.1999999999999L811.4500000000002 631.8L692.0000000000002 554.55zM600 888.3L811.8500000000001 1025.7L1123 833.5L903.4 691.35L1123.0500000000002 548.85L811.7500000000001 357.9000000000001L600 495L388.25 358L76.75 548.85L296.55 691.4L76.95 833.5L388.15 1025.65L600 888.25zM691.85 828.7L811.5 751L935.95 831.5L813.1500000000001 907.35L691.85 828.6500000000001zM508 554.5L388.5 631.8L264.2 551.15L386.75 476.05L508 554.5z","horizAdvX":"1200"},"dual-sim-1-fill":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-2 6h-3v2h1v6h2V8z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM650 800H500V700H550V400H650V800z","horizAdvX":"1200"},"dual-sim-1-line":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-.829 2H6v16h12V7.829L14.171 4zM13 16h-2v-6h-1V8h3v8z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM708.55 1000H300V200H900V808.55L708.55 1000zM650 400H550V700H500V800H650V400z","horizAdvX":"1200"},"dual-sim-2-fill":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-3 5.5a3 3 0 0 0-2.995 2.824L9 10.5h2a1 1 0 1 1 1.751.66l-.082.083L9 14.547 9 16h6v-2h-2.405l1.412-1.27-.006-.01.008.008A3 3 0 0 0 12 7.5z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM600 825A150 150 0 0 1 450.25 683.8L450 675H550A50 50 0 1 0 637.55 642L633.4499999999999 637.85L450 472.65L450 400H750V500H629.75L700.35 563.5L700.0500000000001 564L700.45 563.6A150 150 0 0 1 600 825z","horizAdvX":"1200"},"dual-sim-2-line":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-.829 2H6v16h12V7.829L14.171 4zM12 7.5a3 3 0 0 1 2.009 5.228l-.008-.008.006.01L12.595 14H15v2H9v-1.453l3.67-3.304A1 1 0 1 0 11 10.5H9a3 3 0 0 1 3-3z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM708.55 1000H300V200H900V808.55L708.55 1000zM600 825A150 150 0 0 0 700.45 563.6L700.0500000000001 564L700.35 563.5L629.75 500H750V400H450V472.65L633.5 637.85A50 50 0 1 1 550 675H450A150 150 0 0 0 600 825z","horizAdvX":"1200"},"dv-fill":{"path":["M0 0h24v24H0z","M4 14.745a7 7 0 1 1 8 0V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6.255zM8 14A5 5 0 1 0 8 4a5 5 0 0 0 0 10zm-1 4v2h2v-2H7zm1-6a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm6 5v-1.292A8.978 8.978 0 0 0 17 9a8.966 8.966 0 0 0-2.292-6H21a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-7zm4-10v2h2V7h-2z"],"unicode":"","glyph":"M200 462.75A350 350 0 1 0 600 462.75V150A50 50 0 0 0 550 100H250A50 50 0 0 0 200 150V462.75zM400 500A250 250 0 1 1 400 1000A250 250 0 0 1 400 500zM350 300V200H450V300H350zM400 600A150 150 0 1 0 400 900A150 150 0 0 0 400 600zM700 350V414.6A448.9 448.9 0 0 1 850 750A448.3 448.3 0 0 1 735.4 1050H1050A50 50 0 0 0 1100 1000V400A50 50 0 0 0 1050 350H700zM900 850V750H1000V850H900z","horizAdvX":"1200"},"dv-line":{"path":["M0 0h24v24H0z","M11.608 3H21a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-7v-2h6V5h-6.255A6.968 6.968 0 0 1 15 9a6.992 6.992 0 0 1-3 5.745V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6.255A7 7 0 1 1 11.608 3zM6 13.584V20h4v-6.416a5.001 5.001 0 1 0-4 0zM8 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm9-3h2v2h-2V7zM7 17h2v2H7v-2z"],"unicode":"","glyph":"M580.4 1050H1050A50 50 0 0 0 1100 1000V400A50 50 0 0 0 1050 350H700V450H1000V950H687.25A348.4 348.4 0 0 0 750 750A349.6 349.6 0 0 0 600 462.75V150A50 50 0 0 0 550 100H250A50 50 0 0 0 200 150V462.75A350 350 0 1 0 580.4 1050zM300 520.8000000000001V200H500V520.8000000000001A250.05000000000004 250.05000000000004 0 1 1 300 520.8000000000001zM400 600A150 150 0 1 0 400 900A150 150 0 0 0 400 600zM400 700A50 50 0 1 1 400 800A50 50 0 0 1 400 700zM850 850H950V750H850V850zM350 350H450V250H350V350z","horizAdvX":"1200"},"dvd-fill":{"path":["M0 0h24v24H0z","M13 11V6l-5 7h3v5l5-7h-3zm-1 11C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M650 650V900L400 550H550V300L800 650H650zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"dvd-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-9h3l-5 7v-5H8l5-7v5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 650H800L550 300V550H400L650 900V650z","horizAdvX":"1200"},"e-bike-2-fill":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,3 L22,3 L22,9 L19.980979,9 L22.7270773,16.5448432 C22.9032836,16.9958219 23,17.4866163 23,18 C23,20.209139 21.209139,22 19,22 C17.1361606,22 15.5700603,20.7252272 15.1260175,19 L10.8739825,19 C10.4299397,20.7252272 8.86383943,22 7,22 C5.05550552,22 3.43507622,20.612512 3.0747418,18.7735658 C2.43596423,18.4396361 2,17.7707305 2,17 L2,7 C2,6.44771525 2.44771525,6 3,6 L10,6 C10.5522847,6 11,6.44771525 11,7 L11,12 C11,12.5522847 11.4477153,13 12,13 L14,13 C14.5522847,13 15,12.5522847 15,12 L15,3 L12,3 L12,1 L16,1 Z M19,16 C17.8954305,16 17,16.8954305 17,18 C17,19.1045695 17.8954305,20 19,20 C20.1045695,20 21,19.1045695 21,18 C21,17.7596672 20.9576092,17.5292353 20.8798967,17.3157736 L20.8635387,17.2724216 C20.5725256,16.5276089 19.8478776,16 19,16 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M9,8 L4,8 L4,10 L9,10 L9,8 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050L1100 1050L1100 750L999.0489500000002 750L1136.353865 372.7578400000001C1145.16418 350.2089050000001 1150 325.669185 1150 300C1150 189.54305 1060.45695 100 950 100C856.80803 100 778.503015 163.73864 756.300875 250L543.699125 250C521.496985 163.73864 443.1919715 100 350 100C252.775276 100 171.753811 169.3744000000002 153.73709 261.32171C121.7982115 278.0181949999999 100 311.463475 100 350L100 850C100 877.6142375 122.3857625 900 150 900L500 900C527.614235 900 550 877.6142375 550 850L550 600C550 572.385765 572.385765 550 600 550L700 550C727.614235 550 750 572.385765 750 600L750 1050L600 1050L600 1150L800 1150zM950 400C894.771525 400 850 355.228475 850 300C850 244.771525 894.771525 200 950 200C1005.228475 200 1050 244.771525 1050 300C1050 312.0166400000001 1047.88046 323.538235 1043.994835 334.21132L1043.176935 336.3789199999999C1028.62628 373.619555 992.39388 400 950 400zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM450 800L200 800L200 700L450 700L450 800zM1000 950L850 950L850 850L1000 850L1000 950z","horizAdvX":"1200"},"e-bike-2-line":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,3 L22,3 L22,9 L19.9813388,9 L22.7270773,16.5438545 C22.9032836,16.9948332 23,17.4856276 23,17.9990113 C23,20.2081503 21.209139,21.9990113 19,21.9990113 C17.1365166,21.9990113 15.5706587,20.7247255 15.1262721,19 L10.8739825,19 C10.4299397,20.7252272 8.86383943,22 7,22 C5.05550552,22 3.43507622,20.612512 3.0747418,18.7735658 C2.43596423,18.4396361 2,17.7707305 2,17 L2,7 C2,6.44771525 2.44771525,6 3,6 L10,6 C10.5522847,6 11,6.44771525 11,7 L11,12 C11,12.5522847 11.4477153,13 12,13 L14,13 C14.5522847,13 15,12.5522847 15,12 L15,3 L12,3 L12,1 L16,1 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M19,15.9990113 C17.8954305,15.9990113 17,16.8944418 17,17.9990113 C17,19.1035808 17.8954305,19.9990113 19,19.9990113 C20.1045695,19.9990113 21,19.1035808 21,17.9990113 C21,17.7586785 20.9576092,17.5282466 20.8798967,17.3147849 L20.8635387,17.2714329 C20.5725256,16.5266202 19.8478776,15.9990113 19,15.9990113 Z M17.8529833,9 L16.9999998,9 L16.9999998,12 C16.9999998,13.6568542 15.6568542,15 13.9999998,15 L11.9999998,15 C10.3431458,15 8.99999976,13.6568542 8.99999976,12 L3.99999976,12 L3.99999976,15.3541759 C4.73294422,14.523755 5.80530734,14 6.99999976,14 C8.86383943,14 10.4299397,15.2747728 10.8739825,17 L15.1257631,17 C15.569462,15.2742711 17.1358045,13.9990113 18.9999998,13.9990113 C19.2368134,13.9990113 19.4688203,14.0195905 19.6943299,14.0590581 L17.8529833,9 Z M8.99999976,8 L3.99999976,8 L3.99999976,10 L8.99999976,10 L8.99999976,8 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050L1100 1050L1100 750L999.06694 750L1136.353865 372.8072750000001C1145.16418 350.2583400000001 1150 325.71862 1150 300.049435C1150 189.592485 1060.45695 100.0494350000001 950 100.0494350000001C856.82583 100.0494350000001 778.532935 163.763725 756.3136049999999 250L543.699125 250C521.496985 163.73864 443.1919715 100 350 100C252.775276 100 171.753811 169.3744000000002 153.73709 261.32171C121.7982115 278.0181949999999 100 311.463475 100 350L100 850C100 877.6142375 122.3857625 900 150 900L500 900C527.614235 900 550 877.6142375 550 850L550 600C550 572.385765 572.385765 550 600 550L700 550C727.614235 550 750 572.385765 750 600L750 1050L600 1050L600 1150L800 1150zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM950 400.049435C894.771525 400.049435 850 355.27791 850 300.049435C850 244.82096 894.771525 200.049435 950 200.049435C1005.228475 200.049435 1050 244.82096 1050 300.049435C1050 312.0660750000001 1047.88046 323.58767 1043.994835 334.260755L1043.176935 336.428355C1028.62628 373.66899 992.39388 400.049435 950 400.049435zM892.649165 750L849.99999 750L849.99999 600C849.99999 517.15729 782.84271 450 699.99999 450L599.99999 450C517.15729 450 449.999988 517.15729 449.999988 600L199.999988 600L199.999988 432.291205C236.6472110000001 473.8122500000001 290.265367 500 349.999988 500C443.1919715 500 521.496985 436.2613600000001 543.699125 350L756.288155 350C778.4730999999999 436.286445 856.790225 500.049435 949.99999 500.049435C961.84067 500.049435 973.441015 499.020475 984.716495 497.047095L892.649165 750zM449.999988 800L199.999988 800L199.999988 700L449.999988 700L449.999988 800zM1000 950L850 950L850 850L1000 850L1000 950z","horizAdvX":"1200"},"e-bike-fill":{"path":["M0 0h24v24H0z","M15.5 6.937A6.997 6.997 0 0 1 19 13v8h-4.17a3.001 3.001 0 0 1-5.66 0H5v-8a6.997 6.997 0 0 1 3.5-6.063A3.974 3.974 0 0 1 8.125 6H5V4h3.126a4.002 4.002 0 0 1 7.748 0H19v2h-3.126c-.085.33-.212.645-.373.937zM12 14a1 1 0 0 0-1 1v5a1 1 0 0 0 2 0v-5a1 1 0 0 0-1-1zm0-7a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M775 853.15A349.85 349.85 0 0 0 950 550V150H741.5A150.04999999999998 150.04999999999998 0 0 0 458.5 150H250V550A349.85 349.85 0 0 0 425 853.15A198.70000000000002 198.70000000000002 0 0 0 406.25 900H250V1000H406.3A200.10000000000002 200.10000000000002 0 0 0 793.6999999999999 1000H950V900H793.7C789.4499999999999 883.5 783.1 867.75 775.0500000000001 853.15zM600 500A50 50 0 0 1 550 450V200A50 50 0 0 1 650 200V450A50 50 0 0 1 600 500zM600 850A100 100 0 1 1 600 1050A100 100 0 0 1 600 850z","horizAdvX":"1200"},"e-bike-line":{"path":["M0 0h24v24H0z","M15.5 6.937A6.997 6.997 0 0 1 19 13v8h-4.17a3.001 3.001 0 0 1-5.66 0H5v-8a6.997 6.997 0 0 1 3.5-6.063A3.974 3.974 0 0 1 8.125 6H5V4h3.126a4.002 4.002 0 0 1 7.748 0H19v2h-3.126c-.085.33-.212.645-.373.937zm-1.453 1.5C13.448 8.795 12.748 9 12 9a3.981 3.981 0 0 1-2.047-.563A5.001 5.001 0 0 0 7 13v6h2v-4a3 3 0 0 1 6 0v4h2v-6a5.001 5.001 0 0 0-2.953-4.563zM12 14a1 1 0 0 0-1 1v5a1 1 0 0 0 2 0v-5a1 1 0 0 0-1-1zm0-7a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M775 853.15A349.85 349.85 0 0 0 950 550V150H741.5A150.04999999999998 150.04999999999998 0 0 0 458.5 150H250V550A349.85 349.85 0 0 0 425 853.15A198.70000000000002 198.70000000000002 0 0 0 406.25 900H250V1000H406.3A200.10000000000002 200.10000000000002 0 0 0 793.6999999999999 1000H950V900H793.7C789.4499999999999 883.5 783.1 867.75 775.0500000000001 853.15zM702.35 778.1499999999999C672.4 760.25 637.4 750 600 750A199.05 199.05 0 0 0 497.65 778.1500000000001A250.05000000000004 250.05000000000004 0 0 1 350 550V250H450V450A150 150 0 0 0 750 450V250H850V550A250.05000000000004 250.05000000000004 0 0 1 702.35 778.1499999999999zM600 500A50 50 0 0 1 550 450V200A50 50 0 0 1 650 200V450A50 50 0 0 1 600 500zM600 850A100 100 0 1 1 600 1050A100 100 0 0 1 600 850z","horizAdvX":"1200"},"earth-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm6.355-6.048v-.105c0-.922 0-1.343-.652-1.716a7.374 7.374 0 0 0-.645-.325c-.367-.167-.61-.276-.938-.756a12.014 12.014 0 0 1-.116-.172c-.345-.525-.594-.903-1.542-.753-1.865.296-2.003.624-2.085 1.178l-.013.091c-.121.81-.143 1.082.195 1.437 1.265 1.327 2.023 2.284 2.253 2.844.112.273.4 1.1.202 1.918a8.185 8.185 0 0 0 3.151-2.237c.11-.374.19-.84.19-1.404zM12 3.833c-2.317 0-4.41.966-5.896 2.516.177.123.331.296.437.534.204.457.204.928.204 1.345 0 .328 0 .64.105.865.144.308.766.44 1.315.554.197.042.399.084.583.135.506.14.898.595 1.211.96.13.151.323.374.42.43.05-.036.211-.211.29-.498.062-.22.044-.414-.045-.52-.56-.66-.529-1.93-.356-2.399.272-.739 1.122-.684 1.744-.644.232.015.45.03.614.009.622-.078.814-1.025.949-1.21.292-.4 1.186-1.003 1.74-1.375A8.138 8.138 0 0 0 12 3.833z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM917.75 402.4V407.65C917.75 453.75 917.75 474.8000000000001 885.15 493.45A368.7 368.7 0 0 1 852.9 509.6999999999999C834.55 518.05 822.4 523.5 806 547.5A600.7 600.7 0 0 0 800.2 556.1C782.95 582.35 770.5000000000001 601.25 723.1 593.75C629.85 578.95 622.95 562.55 618.8500000000001 534.8499999999999L618.2000000000002 530.3C612.1500000000001 489.8 611.0500000000001 476.1999999999999 627.9500000000002 458.45C691.2000000000002 392.0999999999999 729.1000000000001 344.2500000000001 740.6000000000001 316.25C746.2000000000002 302.6 760.6000000000001 261.2499999999999 750.7000000000002 220.35A409.25000000000006 409.25000000000006 0 0 1 908.2500000000002 332.2C913.7500000000002 350.8999999999999 917.7500000000002 374.2 917.7500000000002 402.3999999999999zM600 1008.35C484.15 1008.35 379.5 960.05 305.2 882.55C314.05 876.4 321.75 867.75 327.05 855.85C337.25 833 337.25 809.45 337.25 788.6C337.25 772.2 337.25 756.5999999999999 342.5 745.35C349.7000000000001 729.95 380.8 723.35 408.2500000000001 717.65C418.1 715.55 428.2 713.45 437.4000000000001 710.9C462.7 703.9 482.3000000000001 681.15 497.95 662.9C504.4500000000001 655.3499999999999 514.1000000000001 644.1999999999999 518.95 641.4C521.45 643.1999999999999 529.5000000000001 651.9499999999999 533.45 666.3C536.55 677.3 535.6500000000001 686.9999999999999 531.2 692.3C503.2 725.3 504.7500000000001 788.8 513.4000000000001 812.25C527 849.1999999999999 569.5 846.4499999999999 600.6 844.4499999999999C612.2 843.6999999999999 623.1 842.9499999999999 631.3000000000001 843.9999999999999C662.4000000000001 847.8999999999999 672.0000000000001 895.2499999999999 678.75 904.4999999999998C693.35 924.5 738.0500000000001 954.6499999999997 765.7500000000001 973.2499999999998A406.9 406.9 0 0 1 600 1008.35z","horizAdvX":"1200"},"earth-line":{"path":["M0 0h24v24H0z","M6.235 6.453a8 8 0 0 0 8.817 12.944c.115-.75-.137-1.47-.24-1.722-.23-.56-.988-1.517-2.253-2.844-.338-.355-.316-.628-.195-1.437l.013-.091c.082-.554.22-.882 2.085-1.178.948-.15 1.197.228 1.542.753l.116.172c.328.48.571.59.938.756.165.075.37.17.645.325.652.373.652.794.652 1.716v.105c0 .391-.038.735-.098 1.034a8.002 8.002 0 0 0-3.105-12.341c-.553.373-1.312.902-1.577 1.265-.135.185-.327 1.132-.95 1.21-.162.02-.381.006-.613-.009-.622-.04-1.472-.095-1.744.644-.173.468-.203 1.74.356 2.4.09.105.107.3.046.519-.08.287-.241.462-.292.498-.096-.056-.288-.279-.419-.43-.313-.365-.705-.82-1.211-.96-.184-.051-.386-.093-.583-.135-.549-.115-1.17-.246-1.315-.554-.106-.226-.105-.537-.105-.865 0-.417 0-.888-.204-1.345a1.276 1.276 0 0 0-.306-.43zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M311.75 877.3499999999999A400 400 0 0 1 752.6 230.1499999999999C758.35 267.6499999999999 745.75 303.6499999999999 740.6 316.25C729.0999999999999 344.2499999999999 691.2 392.0999999999999 627.9499999999999 458.4499999999999C611.05 476.1999999999999 612.15 489.8499999999999 618.1999999999999 530.3L618.8499999999999 534.8499999999999C622.9499999999999 562.5499999999998 629.85 578.9499999999998 723.1 593.7499999999998C770.5 601.2499999999999 782.9499999999999 582.3499999999998 800.2 556.0999999999998L806 547.4999999999998C822.4 523.4999999999998 834.5500000000002 517.9999999999998 852.9 509.6999999999998C861.15 505.9499999999998 871.4000000000001 501.1999999999998 885.15 493.4499999999998C917.75 474.7999999999998 917.75 453.7499999999998 917.75 407.6499999999999V402.3999999999999C917.75 382.8499999999998 915.85 365.6499999999998 912.85 350.6999999999998A400.1 400.1 0 0 1 757.6 967.7499999999998C729.95 949.0999999999996 692.0000000000001 922.6499999999997 678.75 904.4999999999998C672.0000000000001 895.2499999999998 662.4000000000001 847.8999999999999 631.2500000000001 843.9999999999998C623.1500000000001 842.9999999999998 612.2 843.6999999999998 600.6000000000001 844.4499999999998C569.5000000000001 846.4499999999998 527.0000000000001 849.1999999999998 513.4000000000001 812.2499999999998C504.7500000000001 788.8499999999998 503.2500000000002 725.2499999999998 531.2000000000002 692.2499999999998C535.7000000000002 686.9999999999998 536.5500000000001 677.2499999999998 533.5000000000001 666.2999999999997C529.5000000000001 651.9499999999997 521.45 643.1999999999998 518.9000000000001 641.3999999999997C514.1000000000001 644.1999999999997 504.5000000000001 655.3499999999998 497.95 662.8999999999997C482.3000000000001 681.1499999999997 462.7 703.8999999999999 437.4000000000001 710.8999999999999C428.2000000000001 713.4499999999998 418.1000000000001 715.5499999999998 408.2500000000001 717.6499999999999C380.8 723.3999999999999 349.7500000000001 729.9499999999998 342.5000000000001 745.3499999999998C337.2000000000001 756.6499999999999 337.2500000000001 772.1999999999998 337.2500000000001 788.5999999999999C337.2500000000001 809.4499999999998 337.2500000000001 832.9999999999998 327.0500000000001 855.8499999999998A63.8 63.8 0 0 1 311.7500000000001 877.3499999999998zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"earthquake-fill":{"path":["M0 0h24v24H0z","M11.327 1.612a1 1 0 0 1 1.246-.08l.1.08L23 11h-3v9a1 1 0 0 1-.883.993L19 21h-6.5l2.5-4-3.5-3 4-3L13 9l.5-3-3 3 2.5 2-5 3 3.75 3.5L8.5 21H5a1 1 0 0 1-.993-.883L4 20v-9H1l10.327-9.388z"],"unicode":"","glyph":"M566.35 1119.4A50 50 0 0 0 628.65 1123.4L633.65 1119.4L1150 650H1000V200A50 50 0 0 0 955.85 150.3500000000001L950 150H625L750 350L575 500L775 650L650 750L675 900L525 750L650 650L400 500L587.5 325L425 150H250A50 50 0 0 0 200.35 194.15L200 200V650H50L566.35 1119.4z","horizAdvX":"1200"},"earthquake-line":{"path":["M0 0h24v24H0z","M5 21a1 1 0 0 1-.993-.883L4 20v-9H1l10.327-9.388a1 1 0 0 1 1.246-.08l.1.08L23 11h-3v9a1 1 0 0 1-.883.993L19 21H5zm7-17.298L6 9.156V19h4.357l1.393-1.5L8 14l5-3-2.5-2 3-3-.5 3 2.5 2-4 3 3.5 3-1.25 2H18V9.157l-6-5.455z"],"unicode":"","glyph":"M250 150A50 50 0 0 0 200.35 194.15L200 200V650H50L566.35 1119.4A50 50 0 0 0 628.65 1123.4L633.65 1119.4L1150 650H1000V200A50 50 0 0 0 955.85 150.3500000000001L950 150H250zM600 1014.8999999999997L300 742.2V250H517.8499999999999L587.5 325L400 500L650 650L525 750L675 900L650 750L775 650L575 500L750 350L687.5 250H900V742.15L600 1014.9z","horizAdvX":"1200"},"edge-fill":{"path":["M0 0h24v24H0z","M20.644 8.586c-.17-.711-.441-1.448-.774-2.021-.771-1.329-1.464-2.237-3.177-3.32C14.98 2.162 13.076 2 12.17 2c-2.415 0-4.211.86-5.525 1.887C3.344 6.47 3 11 3 11s1.221-2.045 3.54-3.526C7.943 6.579 9.941 6 11.568 6 15.885 6 16 10 16 10H9c0-2 1-3 1-3s-5 2-5 7.044c0 .487-.003 1.372.248 2.283.232.843.7 1.705 1.132 2.353 1.221 1.832 3.045 2.614 3.916 2.904.996.332 2.029.416 3.01.416 2.72 0 4.877-.886 5.694-1.275v-4.172c-.758.454-2.679 1.447-5 1.447-5 0-5-4-5-4h12v-2.49s-.039-1.593-.356-2.924z"],"unicode":"","glyph":"M1032.1999999999998 770.7C1023.6999999999998 806.25 1010.15 843.1 993.4999999999998 871.75C954.9499999999998 938.2 920.3 983.6 834.6499999999999 1037.75C749 1091.9 653.8000000000001 1100 608.5 1100C487.7499999999999 1100 397.95 1057 332.25 1005.65C167.2 876.5 150 650 150 650S211.05 752.25 327 826.3C397.15 871.05 497.05 900 578.4 900C794.25 900 800 700 800 700H450C450 800 500 850 500 850S250 750 250 497.8C250 473.4499999999999 249.85 429.2 262.4000000000001 383.6499999999999C274 341.4999999999999 297.4000000000001 298.3999999999999 319 265.9999999999999C380.05 174.3999999999999 471.2500000000001 135.2999999999997 514.8 120.7999999999997C564.6 104.1999999999998 616.25 99.9999999999998 665.3 99.9999999999998C801.3 99.9999999999998 909.15 144.2999999999997 950 163.7499999999998V372.3499999999998C912.1 349.6499999999998 816.0500000000001 299.9999999999998 700 299.9999999999998C450 299.9999999999998 450 499.9999999999998 450 499.9999999999998H1050V624.4999999999999S1048.05 704.1499999999999 1032.1999999999998 770.6999999999998z","horizAdvX":"1200"},"edge-line":{"path":["M0 0h24v24H0z","M8.007 14.001A4.559 4.559 0 0 0 8 14.25C8 16.632 9.753 19 13 19c2.373 0 4.528-.655 6-1.553v3.35C17.211 21.564 15.113 22 13 22c-5.502 0-8-3.47-8-7.75 0-3.231 2.041-6 4.943-7.164C8.539 8.663 8 10.341 8 10.996L18 11c0-3.406-2.548-6-6-6-5 0-8.001 3.988-9 5.999C3.29 6.237 7.01 2 12 2c5.2 0 9 4.03 9 9v3H8l.007.001z"],"unicode":"","glyph":"M400.35 499.95A227.95 227.95 0 0 1 400 487.5C400 368.4 487.65 250 650 250C768.6500000000001 250 876.4 282.75 950 327.6500000000001V160.1499999999999C860.55 121.8 755.65 100 650 100C374.9000000000001 100 250 273.5 250 487.5C250 649.05 352.05 787.5 497.15 845.7C426.95 766.8499999999999 400 682.95 400 650.1999999999999L900 650C900 820.3 772.6 950 600 950C350 950 199.95 750.6 150 650.0500000000001C164.5 888.15 350.5 1100 600 1100C860 1100 1050 898.5 1050 650V500H400L400.35 499.95z","horizAdvX":"1200"},"edit-2-fill":{"path":["M0 0h24v24H0z","M9.243 19H21v2H3v-4.243l9.9-9.9 4.242 4.244L9.242 19zm5.07-13.556l2.122-2.122a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414l-2.122 2.121-4.242-4.242z"],"unicode":"","glyph":"M462.15 250H1050V150H150V362.1500000000001L645 857.1500000000001L857.1 644.9500000000002L462.1 250zM715.65 927.8L821.7500000000001 1033.8999999999999A50 50 0 0 0 892.4500000000002 1033.8999999999999L1033.9000000000003 892.4499999999999A50 50 0 0 0 1033.9000000000003 821.75L927.8000000000002 715.6999999999999L715.7000000000002 927.8z","horizAdvX":"1200"},"edit-2-line":{"path":["M0 0h24v24H0z","M5 19h1.414l9.314-9.314-1.414-1.414L5 17.586V19zm16 2H3v-4.243L16.435 3.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L9.243 19H21v2zM15.728 6.858l1.414 1.414 1.414-1.414-1.414-1.414-1.414 1.414z"],"unicode":"","glyph":"M250 250H320.7L786.4 715.7L715.7 786.4L250 320.7000000000001V250zM1050 150H150V362.1500000000001L821.7499999999999 1033.9A50 50 0 0 0 892.45 1033.9L1033.9 892.45A50 50 0 0 0 1033.9 821.75L462.15 250H1050V150zM786.4 857.1L857.1 786.4L927.8 857.0999999999999L857.1 927.8L786.4 857.0999999999999z","horizAdvX":"1200"},"edit-box-fill":{"path":["M0 0h24v24H0z","M16.757 3l-7.466 7.466.008 4.247 4.238-.007L21 7.243V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12.757zm3.728-.9L21.9 3.516l-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M837.85 1050L464.55 676.6999999999999L464.95 464.3499999999999L676.8499999999999 464.6999999999999L1050 837.8499999999999V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H837.8499999999999zM1024.2500000000002 1095L1095 1024.2L635.3999999999999 564.6L564.8 564.4499999999999L564.6999999999999 635.3L1024.25 1095z","horizAdvX":"1200"},"edit-box-line":{"path":["M0 0h24v24H0z","M16.757 3l-2 2H5v14h14V9.243l2-2V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12.757zm3.728-.9L21.9 3.516l-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M837.85 1050L737.85 950H250V250H950V737.8499999999999L1050 837.8499999999999V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H837.8499999999999zM1024.2500000000002 1095L1095 1024.2L635.3999999999999 564.6L564.8 564.4499999999999L564.6999999999999 635.3L1024.25 1095z","horizAdvX":"1200"},"edit-circle-fill":{"path":["M0 0h24v24H0z","M16.626 3.132L9.29 10.466l.008 4.247 4.238-.007 7.331-7.332A9.957 9.957 0 0 1 22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2c1.669 0 3.242.409 4.626 1.132zm3.86-1.031l1.413 1.414-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M831.3000000000001 1043.4L464.4999999999999 676.7L464.8999999999999 464.35L676.7999999999998 464.7L1043.35 831.3A497.8500000000001 497.8500000000001 0 0 0 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100C683.45 1100 762.1 1079.55 831.3000000000001 1043.4zM1024.3 1094.95L1094.95 1024.25L635.35 564.65L564.7500000000001 564.5L564.6500000000001 635.3499999999999L1024.25 1095z","horizAdvX":"1200"},"edit-circle-line":{"path":["M0 0h24v24H0z","M12.684 4.029a8 8 0 1 0 7.287 7.287 7.936 7.936 0 0 0-.603-2.44l1.5-1.502A9.933 9.933 0 0 1 22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2a9.982 9.982 0 0 1 4.626 1.132l-1.501 1.5a7.941 7.941 0 0 0-2.44-.603zM20.485 2.1L21.9 3.515l-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M634.1999999999999 998.55A400 400 0 1 1 998.55 634.2A396.79999999999995 396.79999999999995 0 0 1 968.4 756.2L1043.3999999999999 831.3A496.65 496.65 0 0 0 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100A499.09999999999997 499.09999999999997 0 0 0 831.3000000000001 1043.4L756.2500000000001 968.4A397.04999999999995 397.04999999999995 0 0 1 634.2500000000001 998.55zM1024.25 1095L1095 1024.25L635.3999999999999 564.65L564.8 564.5L564.6999999999999 635.3499999999999L1024.25 1095z","horizAdvX":"1200"},"edit-fill":{"path":["M0 0h24v24H0z","M7.243 18H3v-4.243L14.435 2.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 18zM3 20h18v2H3v-2z"],"unicode":"","glyph":"M362.1500000000001 300H150V512.15L721.75 1083.9A50 50 0 0 0 792.45 1083.9L933.9 942.45A50 50 0 0 0 933.9 871.75L362.1500000000001 300zM150 200H1050V100H150V200z","horizAdvX":"1200"},"edit-line":{"path":["M0 0h24v24H0z","M6.414 16L16.556 5.858l-1.414-1.414L5 14.586V16h1.414zm.829 2H3v-4.243L14.435 2.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 18zM3 20h18v2H3v-2z"],"unicode":"","glyph":"M320.7 400L827.8000000000001 907.1L757.1 977.8L250 470.6999999999999V400H320.7zM362.15 300H150V512.15L721.75 1083.9A50 50 0 0 0 792.45 1083.9L933.9 942.45A50 50 0 0 0 933.9 871.75L362.1500000000001 300zM150 200H1050V100H150V200z","horizAdvX":"1200"},"eject-fill":{"path":["M0 0h24v24H0z","M12.416 3.624l7.066 10.599a.5.5 0 0 1-.416.777H4.934a.5.5 0 0 1-.416-.777l7.066-10.599a.5.5 0 0 1 .832 0zM5 17h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2z"],"unicode":"","glyph":"M620.8000000000001 1018.8L974.1 488.8499999999999A25 25 0 0 0 953.3 450H246.7A25 25 0 0 0 225.9 488.8499999999999L579.1999999999999 1018.8A25 25 0 0 0 620.8000000000001 1018.8zM250 350H950A50 50 0 0 0 950 250H250A50 50 0 0 0 250 350z","horizAdvX":"1200"},"eject-line":{"path":["M0 0h24v24H0z","M7.737 13h8.526L12 6.606 7.737 13zm4.679-9.376l7.066 10.599a.5.5 0 0 1-.416.777H4.934a.5.5 0 0 1-.416-.777l7.066-10.599a.5.5 0 0 1 .832 0zM5 17h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2z"],"unicode":"","glyph":"M386.85 550H813.1499999999999L600 869.7L386.85 550zM620.8000000000001 1018.8L974.1 488.8499999999999A25 25 0 0 0 953.3 450H246.7A25 25 0 0 0 225.9 488.8499999999999L579.1999999999999 1018.8A25 25 0 0 0 620.8000000000001 1018.8zM250 350H950A50 50 0 0 0 950 250H250A50 50 0 0 0 250 350z","horizAdvX":"1200"},"emotion-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4-9a4 4 0 1 0 8 0H8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM400 550A200 200 0 1 1 800 550H400z","horizAdvX":"1200"},"emotion-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-4-7h8a4 4 0 1 1-8 0z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM400 550H800A200 200 0 1 0 400 550z","horizAdvX":"1200"},"emotion-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4-9a4 4 0 1 0 8 0H8zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM400 550A200 200 0 1 1 800 550H400zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-happy-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-5-9a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7zm1-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 550A250 250 0 0 1 850 550H750A150 150 0 0 0 450 550H350zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-happy-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-7h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0zm1-2a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 550H450A150 150 0 0 1 750 550H850A250 250 0 0 0 350 550zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"emotion-laugh-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 9c-2 0-3.667.333-5 1a5 5 0 0 0 10 0c-1.333-.667-3-1-5-1zM8.5 7c-1.152 0-2.122.78-2.412 1.84L6.05 9h4.9A2.5 2.5 0 0 0 8.5 7zm7 0c-1.152 0-2.122.78-2.412 1.84L13.05 9h4.9a2.5 2.5 0 0 0-2.45-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 650C500 650 416.6500000000001 633.35 350 600A250 250 0 0 1 850 600C783.35 633.35 700 650 600 650zM425 850C367.4 850 318.9 811 304.4 758L302.5 750H547.5A125 125 0 0 1 425 850zM775 850C717.4000000000001 850 668.9 811 654.4000000000001 758L652.5 750H897.5000000000001A125 125 0 0 1 775.0000000000002 850z","horizAdvX":"1200"},"emotion-laugh-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 7c2 0 3.667.333 5 1a5 5 0 0 1-10 0c1.333-.667 3-1 5-1zM8.5 7a2.5 2.5 0 0 1 2.45 2h-4.9A2.5 2.5 0 0 1 8.5 7zm7 0a2.5 2.5 0 0 1 2.45 2h-4.9a2.5 2.5 0 0 1 2.45-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 650C700 650 783.35 633.35 850 600A250 250 0 0 0 350 600C416.6500000000001 633.35 500 650 600 650zM425 850A125 125 0 0 0 547.5 750H302.5A125 125 0 0 0 425 850zM775 850A125 125 0 0 0 897.5 750H652.5A125 125 0 0 0 775 850z","horizAdvX":"1200"},"emotion-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-4-7h8a4 4 0 1 1-8 0zm0-2a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM400 550H800A200 200 0 1 0 400 550zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"emotion-normal-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4-8v2h8v-2H8zm0-3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM400 500V400H800V500H400zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-normal-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-4-6h8v2H8v-2zm0-3a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM400 500H800V400H400V500zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"emotion-sad-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10a9.958 9.958 0 0 1-1.065 4.496 1.977 1.977 0 0 0-.398-.775l-.123-.135L19 14.172l-1.414 1.414-.117.127a2 2 0 0 0 1.679 3.282A9.974 9.974 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 13c-1.38 0-2.63.56-3.534 1.463l-.166.174.945.86C10.035 17.182 10.982 17 12 17c.905 0 1.754.144 2.486.396l.269.1.945-.86A4.987 4.987 0 0 0 12 15zm-3.5-5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm7 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600A497.90000000000003 497.90000000000003 0 0 0 1046.75 375.2A98.85000000000001 98.85000000000001 0 0 1 1026.85 413.95L1020.7 420.7L950 491.4L879.3 420.7L873.4499999999999 414.3499999999999A100 100 0 0 1 957.3999999999997 250.25A498.69999999999993 498.69999999999993 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 450C531 450 468.5000000000001 422 423.3000000000001 376.8499999999999L415.0000000000001 368.15L462.2500000000001 325.15C501.75 340.9000000000001 549.0999999999999 350 600 350C645.25 350 687.6999999999999 342.8000000000001 724.3000000000001 330.2L737.75 325.2L785 368.1999999999998A249.34999999999997 249.34999999999997 0 0 1 600 450zM425 700A75 75 0 1 1 425 550A75 75 0 0 1 425 700zM775 700A75 75 0 1 1 775 550A75 75 0 0 1 775 700z","horizAdvX":"1200"},"emotion-sad-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 .727-.077 1.435-.225 2.118l-1.782-1.783a8 8 0 1 0-4.375 6.801 3.997 3.997 0 0 0 1.555 1.423A9.956 9.956 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm7 12.172l1.414 1.414a2 2 0 1 1-2.93.11l.102-.11L19 14.172zM12 15c1.466 0 2.785.631 3.7 1.637l-.945.86C13.965 17.182 13.018 17 12 17c-1.018 0-1.965.183-2.755.496l-.945-.86A4.987 4.987 0 0 1 12 15zm-3.5-5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm7 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 563.65 1096.1499999999999 528.25 1088.75 494.1L999.65 583.25A400 400 0 1 1 780.9 243.1999999999998A199.85000000000002 199.85000000000002 0 0 1 858.6499999999999 172.0499999999997A497.8 497.8 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM950 491.4L1020.7 420.7A100 100 0 1 0 874.2 415.2000000000001L879.3000000000001 420.7L950 491.4zM600 450C673.3 450 739.25 418.4500000000001 785 368.15L737.75 325.15C698.25 340.9000000000001 650.9000000000001 350 600 350C549.0999999999999 350 501.75 340.85 462.2500000000001 325.2000000000001L415.0000000000001 368.2000000000001A249.34999999999997 249.34999999999997 0 0 0 600 450zM425 700A75 75 0 1 0 425 550A75 75 0 0 0 425 700zM775 700A75 75 0 1 0 775 550A75 75 0 0 0 775 700z","horizAdvX":"1200"},"emotion-unhappy-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-5-5h2a3 3 0 0 1 6 0h2a5 5 0 0 0-10 0zm1-6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 350H450A150 150 0 0 0 750 350H850A250 250 0 0 1 350 350zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-unhappy-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-3a5 5 0 0 1 10 0h-2a3 3 0 0 0-6 0H7zm1-6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 350A250 250 0 0 0 850 350H750A150 150 0 0 1 450 350H350zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"empathize-fill":{"path":["M0 0H24V24H0z","M18.364 10.98c1.562 1.561 1.562 4.094 0 5.656l-5.657 5.657c-.39.39-1.024.39-1.414 0l-5.657-5.657c-1.562-1.562-1.562-4.095 0-5.657 1.562-1.562 4.095-1.562 5.657 0l.706.707.708-.707c1.562-1.562 4.095-1.562 5.657 0zM12 1c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4z"],"unicode":"","glyph":"M918.2 651C996.3 572.9499999999999 996.3 446.3 918.2 368.2000000000001L635.35 85.3500000000001C615.85 65.8499999999999 584.15 65.8499999999999 564.6500000000001 85.3500000000001L281.8000000000001 368.2000000000001C203.7000000000001 446.3 203.7000000000001 572.9499999999999 281.8000000000001 651.0500000000001C359.9000000000001 729.1500000000001 486.5500000000001 729.1500000000001 564.6500000000001 651.0500000000001L599.95 615.7L635.35 651.0500000000001C713.45 729.1500000000001 840.1 729.1500000000001 918.2 651.0500000000001zM600 1150C710.5 1150 800 1060.5 800 950S710.5 750 600 750S400 839.5 400 950S489.4999999999999 1150 600 1150z","horizAdvX":"1200"},"empathize-line":{"path":["M0 0H24V24H0z","M18.364 10.98c1.562 1.561 1.562 4.094 0 5.656l-5.657 5.657c-.39.39-1.024.39-1.414 0l-5.657-5.657c-1.562-1.562-1.562-4.095 0-5.657 1.562-1.562 4.095-1.562 5.657 0l.706.707.708-.707c1.562-1.562 4.095-1.562 5.657 0zM7.05 12.392c-.78.781-.78 2.048 0 2.829l4.95 4.95 4.95-4.95c.78-.781.78-2.048 0-2.829-.781-.78-2.048-.78-2.83.002l-2.122 2.118-2.12-2.12c-.78-.78-2.047-.78-2.828 0zM12 1c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 2c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2z"],"unicode":"","glyph":"M918.2 651C996.3 572.9499999999999 996.3 446.3 918.2 368.2000000000001L635.35 85.3500000000001C615.85 65.8499999999999 584.15 65.8499999999999 564.6500000000001 85.3500000000001L281.8000000000001 368.2000000000001C203.7000000000001 446.3 203.7000000000001 572.9499999999999 281.8000000000001 651.0500000000001C359.9000000000001 729.1500000000001 486.5500000000001 729.1500000000001 564.6500000000001 651.0500000000001L599.95 615.7L635.35 651.0500000000001C713.45 729.1500000000001 840.1 729.1500000000001 918.2 651.0500000000001zM352.5 580.4C313.5 541.35 313.5 478 352.5 438.9500000000001L600 191.4500000000001L847.5 438.9500000000001C886.5 478 886.5 541.35 847.5 580.4C808.45 619.4 745.0999999999999 619.4 706 580.3L599.9 474.4L493.9 580.4C454.9 619.4 391.55 619.4 352.5000000000001 580.4zM600 1150C710.5 1150 800 1060.5 800 950S710.5 750 600 750S400 839.5 400 950S489.4999999999999 1150 600 1150zM600 1050C544.75 1050 500 1005.25 500 950S544.75 850 600 850S700 894.75 700 950S655.25 1050 600 1050z","horizAdvX":"1200"},"emphasis-cn":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-5.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm11 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM13 2v2h6v2h-1.968a18.222 18.222 0 0 1-3.621 6.302 14.685 14.685 0 0 0 5.327 3.042l-.536 1.93A16.685 16.685 0 0 1 12 13.726a16.696 16.696 0 0 1-6.202 3.547l-.536-1.929a14.7 14.7 0 0 0 5.327-3.042 18.077 18.077 0 0 1-2.822-4.3h2.24A16.031 16.031 0 0 0 12 10.876a16.168 16.168 0 0 0 2.91-4.876L5 6V4h6V2h2z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM325 250A75 75 0 1 0 325 100A75 75 0 0 0 325 250zM875 250A75 75 0 1 0 875 100A75 75 0 0 0 875 250zM650 1100V1000H950V900H851.6A911.1000000000001 911.1000000000001 0 0 0 670.55 584.9A734.2499999999999 734.2499999999999 0 0 1 936.9 432.8000000000001L910.1 336.3A834.2499999999999 834.2499999999999 0 0 0 600 513.6999999999999A834.8000000000001 834.8000000000001 0 0 0 289.9 336.35L263.1 432.8000000000001A735 735 0 0 1 529.45 584.9A903.8500000000001 903.8500000000001 0 0 0 388.35 799.9000000000001H500.3500000000001A801.5500000000001 801.5500000000001 0 0 1 600 656.2A808.4 808.4 0 0 1 745.5 900L250 900V1000H550V1100H650z","horizAdvX":"1200"},"emphasis":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-5.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm11 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM18 3v2H8v4h9v2H8v4h10v2H6V3h12z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM325 250A75 75 0 1 0 325 100A75 75 0 0 0 325 250zM875 250A75 75 0 1 0 875 100A75 75 0 0 0 875 250zM900 1050V950H400V750H850V650H400V450H900V350H300V1050H900z","horizAdvX":"1200"},"english-input":{"path":["M0 0h24v24H0z","M14 10h2v.757a4.5 4.5 0 0 1 7 3.743V20h-2v-5.5c0-1.43-1.175-2.5-2.5-2.5S16 13.07 16 14.5V20h-2V10zm-2-6v2H4v5h8v2H4v5h8v2H2V4h10z"],"unicode":"","glyph":"M700 700H800V662.15A225 225 0 0 0 1150 475V200H1050V475C1050 546.5 991.25 600 925 600S800 546.5 800 475V200H700V700zM600 1000V900H200V650H600V550H200V300H600V200H100V1000H600z","horizAdvX":"1200"},"equalizer-fill":{"path":["M0 0h24v24H0z","M6.17 18a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2v-2h4.17zm6-7a3.001 3.001 0 0 1 5.66 0H22v2h-4.17a3.001 3.001 0 0 1-5.66 0H2v-2h10.17zm-6-7a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2V4h4.17z"],"unicode":"","glyph":"M308.5 300A150.04999999999998 150.04999999999998 0 0 0 591.5 300H1100V200H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 200H100V300H308.5zM608.5 650A150.04999999999998 150.04999999999998 0 0 0 891.4999999999999 650H1100V550H891.4999999999999A150.04999999999998 150.04999999999998 0 0 0 608.4999999999999 550H100V650H608.5zM308.5 1000A150.04999999999998 150.04999999999998 0 0 0 591.5 1000H1100V900H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 900H100V1000H308.5z","horizAdvX":"1200"},"equalizer-line":{"path":["M0 0h24v24H0z","M6.17 18a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2v-2h4.17zm6-7a3.001 3.001 0 0 1 5.66 0H22v2h-4.17a3.001 3.001 0 0 1-5.66 0H2v-2h10.17zm-6-7a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2V4h4.17zM9 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M308.5 300A150.04999999999998 150.04999999999998 0 0 0 591.5 300H1100V200H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 200H100V300H308.5zM608.5 650A150.04999999999998 150.04999999999998 0 0 0 891.4999999999999 650H1100V550H891.4999999999999A150.04999999999998 150.04999999999998 0 0 0 608.4999999999999 550H100V650H608.5zM308.5 1000A150.04999999999998 150.04999999999998 0 0 0 591.5 1000H1100V900H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 900H100V1000H308.5zM450 900A50 50 0 1 1 450 1000A50 50 0 0 1 450 900zM750 550A50 50 0 1 1 750 650A50 50 0 0 1 750 550zM450 200A50 50 0 1 1 450 300A50 50 0 0 1 450 200z","horizAdvX":"1200"},"eraser-fill":{"path":["M0 0h24v24H0z","M14 19h7v2h-9l-3.998.002-6.487-6.487a1 1 0 0 1 0-1.414L12.12 2.494a1 1 0 0 1 1.415 0l7.778 7.778a1 1 0 0 1 0 1.414L14 19zm1.657-4.485l3.535-3.536-6.364-6.364-3.535 3.536 6.364 6.364z"],"unicode":"","glyph":"M700 250H1050V150H600L400.1 149.9000000000001L75.7499999999999 474.2500000000001A50 50 0 0 0 75.7499999999999 544.95L606 1075.3A50 50 0 0 0 676.75 1075.3L1065.6499999999999 686.4A50 50 0 0 0 1065.6499999999999 615.7L700 250zM782.85 474.25L959.6 651.05L641.4 969.25L464.65 792.4499999999999L782.85 474.25z","horizAdvX":"1200"},"eraser-line":{"path":["M0 0h24v24H0z","M8.586 8.858l-4.95 4.95 5.194 5.194H10V19h1.172l3.778-3.778-6.364-6.364zM10 7.444l6.364 6.364 2.828-2.829-6.364-6.364L10 7.444zM14 19h7v2h-9l-3.998.002-6.487-6.487a1 1 0 0 1 0-1.414L12.12 2.494a1 1 0 0 1 1.415 0l7.778 7.778a1 1 0 0 1 0 1.414L14 19z"],"unicode":"","glyph":"M429.3 757.0999999999999L181.8 509.6L441.5 249.9000000000001H500V250H558.6L747.5 438.9L429.3000000000002 757.0999999999999zM500 827.8L818.2 509.6L959.6 651.0500000000001L641.4 969.25L500 827.8zM700 250H1050V150H600L400.1 149.9000000000001L75.7499999999999 474.2500000000001A50 50 0 0 0 75.7499999999999 544.95L606 1075.3A50 50 0 0 0 676.75 1075.3L1065.6499999999999 686.4A50 50 0 0 0 1065.6499999999999 615.7L700 250z","horizAdvX":"1200"},"error-warning-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"error-warning-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-5h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"evernote-fill":{"path":["M0 0h24v24H0z","M8.63 7.754c-.216.201-.546.217-.743.217h-2.11c-.61 0-.974 0-1.22.033-.134.017-.298.084-.381.117-.033.016-.033 0-.017-.016l4.816-4.94c.017-.017.033-.017.017.017a1.734 1.734 0 0 0-.116.382c-.033.249-.033.615-.033 1.23v2.212c0 .2-.017.533-.214.748zm4.682 14.184c-.56-.366-.857-.848-.973-1.147a2.443 2.443 0 0 1-.181-.915 2.513 2.513 0 0 1 2.507-2.51c.412 0 .742.332.742.748a.735.735 0 0 1-.38.648.946.946 0 0 1-.28.1c-.082.017-.396.05-.543.183a.776.776 0 0 0-.298.582.92.92 0 0 0 .264.649c.297.299.693.465 1.122.465a2.036 2.036 0 0 0 2.028-2.045c0-1.014-.676-1.913-1.567-2.311-.132-.067-.346-.117-.544-.167a6.719 6.719 0 0 0-.495-.083c-.693-.084-2.424-.632-2.54-2.178 0 0-.51 2.328-1.534 2.96-.098.05-.23.1-.379.133-.148.033-.312.05-.363.05-1.665.1-3.43-.433-4.65-1.696 0 0-.825-.682-1.253-2.594-.099-.466-.297-1.298-.412-2.08-.05-.281-.067-.498-.083-.698 0-.814.495-1.363 1.121-1.445h3.365c.576 0 .907-.15 1.121-.35.28-.266.347-.649.347-1.098V3.631c.08-.615.627-1.131 1.434-1.131h.396c.165 0 .363.017.544.033.132.017.247.05.445.1 1.006.25 1.22 1.28 1.22 1.28l2.854.5c.907.166 3.15.316 3.578 2.594 1.006 5.42.396 10.675.347 10.675-.71 5.121-4.931 4.871-4.931 4.871a3.426 3.426 0 0 1-2.029-.615zm2.622-10.309c-.033.084-.066.183-.05.233.018.05.051.066.084.083.198.1.527.15 1.006.2.478.05.808.083 1.022.05.033 0 .067-.017.1-.067s.016-.15.016-.233c-.05-.449-.462-.781-1.006-.848-.545-.05-1.006.167-1.172.582z"],"unicode":"","glyph":"M431.5000000000001 812.3C420.7000000000001 802.25 404.2000000000001 801.45 394.35 801.45H288.85C258.35 801.45 240.1500000000001 801.45 227.8500000000001 799.8C221.15 798.95 212.9500000000001 795.6 208.8000000000001 793.95C207.15 793.15 207.15 793.95 207.9500000000001 794.75L448.7500000000001 1041.75C449.6 1042.6 450.4 1042.6 449.6 1040.9A86.69999999999999 86.69999999999999 0 0 1 443.8000000000001 1021.8C442.1500000000001 1009.35 442.1500000000001 991.05 442.1500000000001 960.3V849.7C442.1500000000001 839.7 441.3000000000002 823.05 431.4500000000001 812.3zM665.6 103.1000000000001C637.6 121.4000000000001 622.7500000000001 145.5 616.95 160.4500000000001A122.14999999999999 122.14999999999999 0 0 0 607.9000000000001 206.1999999999999A125.64999999999999 125.64999999999999 0 0 0 733.25 331.7000000000001C753.8500000000001 331.7000000000001 770.35 315.1 770.35 294.3A36.74999999999999 36.74999999999999 0 0 0 751.3499999999999 261.9A47.3 47.3 0 0 0 737.35 256.8999999999999C733.25 256.05 717.55 254.3999999999999 710.2 247.7499999999999A38.8 38.8 0 0 1 695.3000000000001 218.6499999999999A46 46 0 0 1 708.5 186.1999999999998C723.35 171.2499999999998 743.15 162.9499999999998 764.6 162.9499999999998A101.8 101.8 0 0 1 866 265.1999999999997C866 315.8999999999998 832.2 360.8499999999998 787.65 380.7499999999998C781.0500000000001 384.0999999999998 770.35 386.5999999999998 760.4499999999999 389.0999999999998A335.95 335.95 0 0 1 735.7 393.2499999999998C701.0500000000001 397.4499999999997 614.5 424.8499999999997 608.6999999999999 502.1499999999997C608.6999999999999 502.1499999999997 583.1999999999999 385.7499999999998 531.9999999999999 354.1499999999998C527.0999999999999 351.6499999999998 520.4999999999999 349.1499999999997 513.05 347.4999999999998C505.65 345.8499999999997 497.45 344.9999999999998 494.9 344.9999999999998C411.6500000000001 339.9999999999997 323.4 366.6499999999998 262.4 429.7999999999998C262.4 429.7999999999998 221.15 463.8999999999997 199.75 559.4999999999997C194.8 582.7999999999997 184.9 624.3999999999997 179.15 663.4999999999997C176.65 677.5499999999997 175.8 688.3999999999996 175 698.3999999999997C175 739.0999999999997 199.75 766.5499999999997 231.05 770.6499999999997H399.3C428.1 770.6499999999997 444.6499999999999 778.1499999999997 455.35 788.1499999999997C469.3499999999999 801.4499999999997 472.6999999999999 820.5999999999997 472.6999999999999 843.0499999999997V1018.45C476.6999999999999 1049.2 504.05 1075 544.3999999999999 1075H564.1999999999999C572.4499999999999 1075 582.3499999999999 1074.15 591.4 1073.35C598 1072.5 603.75 1070.85 613.65 1068.35C663.95 1055.85 674.65 1004.35 674.65 1004.35L817.35 979.35C862.7 971.05 974.85 963.55 996.25 849.6500000000001C1046.55 578.65 1016.05 315.8999999999999 1013.6000000000003 315.8999999999999C978.1 59.8499999999997 767.0500000000001 72.3499999999997 767.0500000000001 72.3499999999997A171.3 171.3 0 0 0 665.6 103.0999999999997zM796.7 618.5500000000001C795.0500000000001 614.35 793.4 609.4 794.2 606.9C795.1 604.4 796.75 603.5999999999999 798.4 602.75C808.3000000000001 597.75 824.75 595.25 848.7 592.75C872.6000000000001 590.25 889.1 588.6 899.8 590.25C901.45 590.25 903.15 591.0999999999999 904.8 593.6S905.6 601.1 905.6 605.25C903.1 627.7 882.4999999999999 644.3000000000001 855.3 647.6500000000001C828.0499999999998 650.1500000000001 804.9999999999999 639.3000000000001 796.6999999999998 618.5500000000001z","horizAdvX":"1200"},"evernote-line":{"path":["M0 0h24v24H0z","M10.5 8.5a1 1 0 0 1-1 1H6.001c-.336 0-.501.261-.501.532 0 1.32.254 2.372.664 3.193.216.433.399.67.523.79.735.76 1.886 1.16 3.092 1.089.095-.006.199-.064.332-.208a1.51 1.51 0 0 0 .214-.293 2 2 0 0 1 2.531-1.073c.693.258 1.277.434 1.813.56.196.046.375.083.586.122-.077-.014.402.074.518.098.34.07.598.146.883.29a5.087 5.087 0 0 1 1.775 1.475c.045-.591.077-1.268.087-2.026a34.182 34.182 0 0 0-.559-6.673c-.074-.398-.236-.562-.663-.718a3.847 3.847 0 0 0-.587-.155c-.147-.028-.65-.11-.693-.118a1273 1273 0 0 1-2.34-.409l-.528-.092a2 2 0 0 1-1.524-1.26 11.467 11.467 0 0 0-.034-.088 5.595 5.595 0 0 0-.702-.036c-.271 0-.388.124-.388.463V8.5zm6.23 11.639c.352-.356.56-.829.587-1.327.054-1.036-.824-2.48-2.317-2.634-.617-.063-1.586-.306-2.842-.774 0 0-.7 1.603-2.26 1.696-1.665.1-3.43-.433-4.65-1.696 0 0-1.748-1.64-1.748-5.372 0-.814.29-1.422.648-1.904.96-1.292 2.505-2.78 4.133-4.304C9 3.15 9.701 2.5 10.888 2.5c2.04 0 2.32.664 2.605 1.414l2.854.499c.907.166 3.15.316 3.578 2.594 1.006 5.42.458 9.87.347 10.675-.71 5.121-4.772 4.871-4.931 4.871-2.059 0-3.178-1.373-3.183-2.677a2.494 2.494 0 0 1 1.038-2.034 2.586 2.586 0 0 1 1.527-.478c.305 0 .687.318.687.753 0 .37-.255.575-.382.645-.223.124-1.122.174-1.122.865 0 .317.35 1.114 1.386 1.114.588 0 1.094-.256 1.437-.602zm-1.796-9.51c.166-.415.627-.632 1.172-.582.544.067.956.4 1.006.848 0 .083.017.183-.017.233-.032.05-.066.067-.1.067-.213.033-.543 0-1.021-.05-.48-.05-.808-.1-1.006-.2-.033-.017-.066-.033-.083-.083s.016-.15.05-.233z"],"unicode":"","glyph":"M525 775A50 50 0 0 0 475 725H300.05C283.25 725 275 711.95 275 698.4C275 632.4 287.7 579.8 308.2 538.75C319 517.1 328.15 505.25 334.35 499.25C371.1 461.25 428.6499999999999 441.25 488.95 444.8C493.7 445.0999999999999 498.9 448 505.55 455.1999999999999A75.49999999999999 75.49999999999999 0 0 1 516.25 469.8499999999999A100 100 0 0 0 642.8000000000001 523.5C677.45 510.6 706.6500000000001 501.8 733.4500000000002 495.4999999999999C743.2500000000001 493.1999999999999 752.2000000000002 491.3499999999999 762.7500000000001 489.4C758.9000000000001 490.0999999999999 782.8500000000001 485.6999999999999 788.6500000000002 484.4999999999999C805.6500000000002 480.9999999999999 818.5500000000001 477.1999999999998 832.8000000000001 469.9999999999999A254.35 254.35 0 0 0 921.55 396.2499999999999C923.8000000000002 425.7999999999999 925.4 459.6499999999999 925.9 497.5499999999998A1709.1000000000001 1709.1000000000001 0 0 1 897.9499999999999 831.1999999999998C894.2499999999999 851.0999999999999 886.15 859.2999999999998 864.8 867.0999999999999A192.34999999999997 192.34999999999997 0 0 1 835.4499999999999 874.8499999999999C828.1 876.2499999999998 802.95 880.3499999999999 800.8 880.7499999999999A63650 63650 0 0 0 683.8 901.1999999999998L657.3999999999999 905.7999999999998A100 100 0 0 0 581.1999999999999 968.7999999999998A573.35 573.35 0 0 1 579.4999999999999 973.1999999999998A279.75 279.75 0 0 1 544.3999999999999 974.9999999999998C530.8499999999999 974.9999999999998 524.9999999999999 968.7999999999998 524.9999999999999 951.8499999999998V775zM836.5 193.0500000000001C854.1 210.8500000000001 864.5 234.5000000000001 865.85 259.4000000000001C868.55 311.2000000000002 824.65 383.4000000000001 750 391.1000000000002C719.15 394.2500000000001 670.6999999999999 406.4000000000001 607.9 429.8000000000002C607.9 429.8000000000002 572.9 349.6500000000001 494.9 345.0000000000001C411.6500000000001 340 323.4 366.6500000000001 262.4 429.8000000000001C262.4 429.8000000000001 175 511.8000000000001 175 698.4000000000001C175 739.1000000000001 189.5 769.5000000000001 207.4 793.6000000000001C255.4 858.2 332.6499999999999 932.6 414.05 1008.8C450 1042.5 485.05 1075 544.4 1075C646.4000000000001 1075 660.4 1041.8 674.65 1004.3L817.35 979.35C862.7 971.05 974.85 963.55 996.25 849.6500000000001C1046.55 578.65 1019.15 356.1500000000001 1013.6000000000003 315.8999999999999C978.1 59.8499999999997 775.0000000000001 72.3499999999997 767.0500000000001 72.3499999999997C664.1 72.3499999999997 608.15 140.9999999999998 607.9000000000001 206.1999999999998A124.70000000000002 124.70000000000002 0 0 0 659.8000000000001 307.8999999999998A129.3 129.3 0 0 0 736.1500000000001 331.7999999999998C751.4 331.7999999999998 770.5 315.8999999999998 770.5 294.1499999999998C770.5 275.6499999999998 757.75 265.3999999999999 751.4 261.8999999999998C740.25 255.6999999999998 695.3000000000001 253.1999999999998 695.3000000000001 218.6499999999999C695.3000000000001 202.7999999999999 712.8 162.9499999999998 764.6 162.9499999999998C794 162.9499999999998 819.3 175.7499999999998 836.4499999999999 193.0499999999999zM746.7 668.5500000000001C755.0000000000001 689.3 778.0500000000001 700.15 805.3000000000001 697.6500000000001C832.5000000000001 694.3000000000001 853.1 677.6500000000001 855.6000000000001 655.25C855.6000000000001 651.1 856.45 646.1 854.7500000000001 643.6C853.1500000000001 641.0999999999999 851.4500000000002 640.25 849.75 640.25C839.1 638.6 822.6000000000001 640.25 798.7 642.75C774.7 645.25 758.3000000000001 647.75 748.4 652.75C746.75 653.5999999999999 745.0999999999999 654.4 744.25 656.9S745.05 664.4 746.75 668.5500000000001z","horizAdvX":"1200"},"exchange-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 6H8v2h9l-5-5v3zm-5 4l5 5v-3h4v-2H7z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM600 750H400V650H850L600 900V750zM350 550L600 300V450H800V550H350z","horizAdvX":"1200"},"exchange-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 6V6l5 5H8V9h4zm-5 4h9v2h-4v3l-5-5z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM600 750V900L850 650H400V750H600zM350 550H800V450H600V300L350 550z","horizAdvX":"1200"},"exchange-cny-fill":{"path":["M0 0h24v24H0z","M5.373 4.51A9.962 9.962 0 0 1 12 2c5.523 0 10 4.477 10 10a9.954 9.954 0 0 1-1.793 5.715L17.5 12H20A8 8 0 0 0 6.274 6.413l-.9-1.902zm13.254 14.98A9.962 9.962 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.125.663-4.095 1.793-5.715L6.5 12H4a8 8 0 0 0 13.726 5.587l.9 1.902zM13 13.535h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 8.414 9.88 7 12 9.121 14.121 7l1.415 1.414-2.122 2.122H16v2h-3v1z"],"unicode":"","glyph":"M268.6500000000001 974.5A498.1 498.1 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600A497.7000000000001 497.7000000000001 0 0 0 1010.35 314.25L875 600H1000A400 400 0 0 1 313.7 879.3499999999999L268.7 974.45zM931.35 225.4999999999999A498.1 498.1 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.25 133.15 804.75 189.65 885.75L325 600H200A400 400 0 0 1 886.3 320.65L931.2999999999998 225.55zM650 523.25H800V423.25H650V323.25H550V423.25H400V523.25H550V573.25H400V673.25H529.3000000000001L423.2000000000001 779.3L494.0000000000001 850L600 743.95L706.0500000000001 850L776.8000000000001 779.3L670.7 673.2H800V573.2H650V523.2z","horizAdvX":"1200"},"exchange-cny-line":{"path":["M0 0h24v24H0z","M19.375 15.103A8.001 8.001 0 0 0 8.03 5.053l-.992-1.737A9.996 9.996 0 0 1 17 3.34c4.49 2.592 6.21 8.142 4.117 12.77l1.342.774-4.165 2.214-.165-4.714 1.246.719zM4.625 8.897a8.001 8.001 0 0 0 11.345 10.05l.992 1.737A9.996 9.996 0 0 1 7 20.66C2.51 18.068.79 12.518 2.883 7.89L1.54 7.117l4.165-2.214.165 4.714-1.246-.719zM13 13.536h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 8.414 9.88 7 12 9.121 14.121 7l1.415 1.414-2.122 2.122H16v2h-3v1z"],"unicode":"","glyph":"M968.75 444.85A400.04999999999995 400.04999999999995 0 0 1 401.5 947.35L351.9 1034.2A499.8 499.8 0 0 0 850 1033C1074.5 903.4 1160.5 625.9000000000001 1055.8500000000001 394.5L1122.95 355.8L914.7 245.1L906.45 480.8000000000001L968.75 444.8500000000002zM231.25 755.15A400.04999999999995 400.04999999999995 0 0 1 798.5 252.6499999999999L848.1 165.7999999999997A499.8 499.8 0 0 0 350 167C125.5 296.5999999999999 39.5 574.0999999999999 144.15 805.5L77 844.15L285.25 954.85L293.5 719.15L231.2 755.0999999999999zM650 523.2H800V423.2000000000001H650V323.2H550V423.2H400V523.1999999999999H550V573.1999999999999H400V673.1999999999999H529.3000000000001L423.2000000000001 779.3L494.0000000000001 850L600 743.95L706.0500000000001 850L776.8000000000001 779.3L670.7 673.2H800V573.2H650V523.2z","horizAdvX":"1200"},"exchange-dollar-fill":{"path":["M0 0h24v24H0z","M5.373 4.51A9.962 9.962 0 0 1 12 2c5.523 0 10 4.477 10 10a9.954 9.954 0 0 1-1.793 5.715L17.5 12H20A8 8 0 0 0 6.274 6.413l-.9-1.902zm13.254 14.98A9.962 9.962 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.125.663-4.095 1.793-5.715L6.5 12H4a8 8 0 0 0 13.726 5.587l.9 1.902zM8.5 14H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V7h2v1h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v1h-2v-1H8.5v-2z"],"unicode":"","glyph":"M268.6500000000001 974.5A498.1 498.1 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600A497.7000000000001 497.7000000000001 0 0 0 1010.35 314.25L875 600H1000A400 400 0 0 1 313.7 879.3499999999999L268.7 974.45zM931.35 225.4999999999999A498.1 498.1 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.25 133.15 804.75 189.65 885.75L325 600H200A400 400 0 0 1 886.3 320.65L931.2999999999998 225.55zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V850H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V350H550V400H425V500z","horizAdvX":"1200"},"exchange-dollar-line":{"path":["M0 0h24v24H0z","M19.375 15.103A8.001 8.001 0 0 0 8.03 5.053l-.992-1.737A9.996 9.996 0 0 1 17 3.34c4.49 2.592 6.21 8.142 4.117 12.77l1.342.774-4.165 2.214-.165-4.714 1.246.719zM4.625 8.897a8.001 8.001 0 0 0 11.345 10.05l.992 1.737A9.996 9.996 0 0 1 7 20.66C2.51 18.068.79 12.518 2.883 7.89L1.54 7.117l4.165-2.214.165 4.714-1.246-.719zM8.5 14H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V7h2v1h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v1h-2v-1H8.5v-2z"],"unicode":"","glyph":"M968.75 444.85A400.04999999999995 400.04999999999995 0 0 1 401.5 947.35L351.9 1034.2A499.8 499.8 0 0 0 850 1033C1074.5 903.4 1160.5 625.9000000000001 1055.8500000000001 394.5L1122.95 355.8L914.7 245.1L906.45 480.8000000000001L968.75 444.8500000000002zM231.25 755.15A400.04999999999995 400.04999999999995 0 0 1 798.5 252.6499999999999L848.1 165.7999999999997A499.8 499.8 0 0 0 350 167C125.5 296.5999999999999 39.5 574.0999999999999 144.15 805.5L77 844.15L285.25 954.85L293.5 719.15L231.2 755.0999999999999zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V850H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V350H550V400H425V500z","horizAdvX":"1200"},"exchange-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-13H8v2h9l-5-5v3zm-5 4l5 5v-3h4v-2H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 750H400V650H850L600 900V750zM350 550L600 300V450H800V550H350z","horizAdvX":"1200"},"exchange-funds-fill":{"path":["M0 0h24v24H0z","M5.373 4.51A9.962 9.962 0 0 1 12 2c5.523 0 10 4.477 10 10a9.954 9.954 0 0 1-1.793 5.715L17.5 12H20A8 8 0 0 0 6.274 6.413l-.9-1.902zm13.254 14.98A9.962 9.962 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.125.663-4.095 1.793-5.715L6.5 12H4a8 8 0 0 0 13.726 5.587l.9 1.902zm-5.213-4.662L10.586 12l-2.829 2.828-1.414-1.414 4.243-4.242L13.414 12l2.829-2.828 1.414 1.414-4.243 4.242z"],"unicode":"","glyph":"M268.6500000000001 974.5A498.1 498.1 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600A497.7000000000001 497.7000000000001 0 0 0 1010.35 314.25L875 600H1000A400 400 0 0 1 313.7 879.3499999999999L268.7 974.45zM931.35 225.4999999999999A498.1 498.1 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.25 133.15 804.75 189.65 885.75L325 600H200A400 400 0 0 1 886.3 320.65L931.2999999999998 225.55zM670.6999999999999 458.5999999999999L529.3000000000001 600L387.85 458.6L317.15 529.3000000000001L529.3000000000001 741.4L670.6999999999999 600L812.15 741.4L882.85 670.6999999999999L670.6999999999999 458.6z","horizAdvX":"1200"},"exchange-funds-line":{"path":["M0 0h24v24H0z","M19.375 15.103A8.001 8.001 0 0 0 8.03 5.053l-.992-1.737A9.996 9.996 0 0 1 17 3.34c4.49 2.592 6.21 8.142 4.117 12.77l1.342.774-4.165 2.214-.165-4.714 1.246.719zM4.625 8.897a8.001 8.001 0 0 0 11.345 10.05l.992 1.737A9.996 9.996 0 0 1 7 20.66C2.51 18.068.79 12.518 2.883 7.89L1.54 7.117l4.165-2.214.165 4.714-1.246-.719zm8.79 5.931L10.584 12l-2.828 2.828-1.414-1.414 4.243-4.242L13.414 12l2.829-2.828 1.414 1.414-4.243 4.242z"],"unicode":"","glyph":"M968.75 444.85A400.04999999999995 400.04999999999995 0 0 1 401.5 947.35L351.9 1034.2A499.8 499.8 0 0 0 850 1033C1074.5 903.4 1160.5 625.9000000000001 1055.8500000000001 394.5L1122.95 355.8L914.7 245.1L906.45 480.8000000000001L968.75 444.8500000000002zM231.25 755.15A400.04999999999995 400.04999999999995 0 0 1 798.5 252.6499999999999L848.1 165.7999999999997A499.8 499.8 0 0 0 350 167C125.5 296.5999999999999 39.5 574.0999999999999 144.15 805.5L77 844.15L285.25 954.85L293.5 719.15L231.2 755.0999999999999zM670.75 458.6L529.1999999999999 600L387.8 458.6L317.1 529.3000000000001L529.25 741.4L670.6999999999999 600L812.15 741.4L882.85 670.6999999999999L670.6999999999999 458.6z","horizAdvX":"1200"},"exchange-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-7h9v2h-4v3l-5-5zm5-4V6l5 5H8V9h4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 550H800V450H600V300L350 550zM600 750V900L850 650H400V750H600z","horizAdvX":"1200"},"external-link-fill":{"path":["M0 0h24v24H0z","M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h6zm11-3v9l-3.794-3.793-5.999 6-1.414-1.414 5.999-6L12 3h9z"],"unicode":"","glyph":"M500 900V800H250V250H800V500H900V200A50 50 0 0 0 850 150H200A50 50 0 0 0 150 200V850A50 50 0 0 0 200 900H500zM1050 1050V600L860.3 789.65L560.35 489.65L489.65 560.3499999999999L789.6000000000001 860.3499999999999L600 1050H1050z","horizAdvX":"1200"},"external-link-line":{"path":["M0 0h24v24H0z","M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h6zm11-3v8h-2V6.413l-7.793 7.794-1.414-1.414L17.585 5H13V3h8z"],"unicode":"","glyph":"M500 900V800H250V250H800V500H900V200A50 50 0 0 0 850 150H200A50 50 0 0 0 150 200V850A50 50 0 0 0 200 900H500zM1050 1050V650H950V879.3499999999999L560.35 489.65L489.65 560.3499999999999L879.25 950H650V1050H1050z","horizAdvX":"1200"},"eye-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 5c-.513 0-1.007.077-1.473.22a2.5 2.5 0 1 1-3.306 3.307A5 5 0 1 0 12 7z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 850C574.35 850 549.65 846.15 526.3499999999999 839A125 125 0 1 0 361.05 673.6500000000001A250 250 0 1 1 600 850z","horizAdvX":"1200"},"eye-2-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 3a5 5 0 1 1-4.78 3.527A2.499 2.499 0 0 0 12 9.5a2.5 2.5 0 0 0-1.473-2.28c.466-.143.96-.22 1.473-.22z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 850A250 250 0 1 0 361 673.65A124.95 124.95 0 0 1 600 725A125 125 0 0 1 526.3499999999999 839C549.65 846.15 574.3499999999999 850 600 850z","horizAdvX":"1200"},"eye-close-fill":{"path":["M0 0h24v24H0z","M10.13 15.842l-.788 2.94-1.931-.518.787-2.939a10.988 10.988 0 0 1-3.237-1.872l-2.153 2.154-1.415-1.415 2.154-2.153a10.957 10.957 0 0 1-2.371-5.07l.9-.165A16.923 16.923 0 0 0 12 10c3.704 0 7.131-1.185 9.924-3.196l.9.164a10.957 10.957 0 0 1-2.37 5.071l2.153 2.153-1.415 1.415-2.153-2.154a10.988 10.988 0 0 1-3.237 1.872l.787 2.94-1.931.517-.788-2.94a11.072 11.072 0 0 1-3.74 0z"],"unicode":"","glyph":"M506.5000000000001 407.9L467.1 260.9L370.55 286.8000000000001L409.9000000000001 433.75A549.4000000000001 549.4000000000001 0 0 0 248.05 527.35L140.4 419.6500000000001L69.65 490.4L177.35 598.0500000000001A547.85 547.85 0 0 0 58.8 851.55L103.8 859.8A846.15 846.15 0 0 1 600 700C785.2 700 956.55 759.25 1096.2 859.8L1141.1999999999998 851.6A547.85 547.85 0 0 0 1022.6999999999998 598.0500000000001L1130.3499999999997 490.4L1059.6 419.6500000000001L951.95 527.35A549.4000000000001 549.4000000000001 0 0 0 790.0999999999999 433.75L829.4499999999999 286.75L732.8999999999999 260.9L693.4999999999999 407.9A553.6 553.6 0 0 0 506.4999999999999 407.9z","horizAdvX":"1200"},"eye-close-line":{"path":["M0 0h24v24H0z","M9.342 18.782l-1.931-.518.787-2.939a10.988 10.988 0 0 1-3.237-1.872l-2.153 2.154-1.415-1.415 2.154-2.153a10.957 10.957 0 0 1-2.371-5.07l1.968-.359C3.903 10.812 7.579 14 12 14c4.42 0 8.097-3.188 8.856-7.39l1.968.358a10.957 10.957 0 0 1-2.37 5.071l2.153 2.153-1.415 1.415-2.153-2.154a10.988 10.988 0 0 1-3.237 1.872l.787 2.94-1.931.517-.788-2.94a11.072 11.072 0 0 1-3.74 0l-.788 2.94z"],"unicode":"","glyph":"M467.1 260.9L370.55 286.8000000000001L409.9000000000001 433.75A549.4000000000001 549.4000000000001 0 0 0 248.05 527.35L140.4 419.6500000000001L69.65 490.4L177.35 598.0500000000001A547.85 547.85 0 0 0 58.8 851.55L157.2 869.5C195.15 659.4 378.95 500 600 500C821.0000000000001 500 1004.85 659.4 1042.8000000000002 869.5L1141.2 851.6A547.85 547.85 0 0 0 1022.7 598.0500000000001L1130.35 490.4L1059.6 419.6500000000001L951.95 527.35A549.4000000000001 549.4000000000001 0 0 0 790.1 433.75L829.4500000000002 286.75L732.9000000000001 260.9L693.5 407.9A553.6 553.6 0 0 0 506.5000000000001 407.9L467.1 260.9z","horizAdvX":"1200"},"eye-fill":{"path":["M0 0h24v24H0z","M1.181 12C2.121 6.88 6.608 3 12 3c5.392 0 9.878 3.88 10.819 9-.94 5.12-5.427 9-10.819 9-5.392 0-9.878-3.88-10.819-9zM12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0-2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M59.05 600C106.05 856 330.4 1050 600 1050C869.6 1050 1093.9 856 1140.95 600C1093.95 344 869.6000000000001 150 600.0000000000001 150C330.4000000000001 150 106.1000000000001 344 59.0500000000001 600zM600 350A250 250 0 1 1 600 850A250 250 0 0 1 600 350zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450z","horizAdvX":"1200"},"eye-line":{"path":["M0 0h24v24H0z","M12 3c5.392 0 9.878 3.88 10.819 9-.94 5.12-5.427 9-10.819 9-5.392 0-9.878-3.88-10.819-9C2.121 6.88 6.608 3 12 3zm0 16a9.005 9.005 0 0 0 8.777-7 9.005 9.005 0 0 0-17.554 0A9.005 9.005 0 0 0 12 19zm0-2.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M600 1050C869.6 1050 1093.9 856 1140.95 600C1093.95 344 869.6000000000001 150 600.0000000000001 150C330.4000000000001 150 106.1000000000001 344 59.0500000000001 600C106.05 856 330.4 1050 600 1050zM600 250A450.25000000000006 450.25000000000006 0 0 1 1038.8500000000001 600A450.25000000000006 450.25000000000006 0 0 1 161.1500000000001 600A450.25000000000006 450.25000000000006 0 0 1 600 250zM600 375A225 225 0 1 0 600 825A225 225 0 0 0 600 375zM600 475A125 125 0 1 1 600 725A125 125 0 0 1 600 475z","horizAdvX":"1200"},"eye-off-fill":{"path":["M0 0h24v24H0z","M4.52 5.934L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.31-3.31A10.949 10.949 0 0 1 12 21c-5.392 0-9.878-3.88-10.819-9a10.982 10.982 0 0 1 3.34-6.066zm10.237 10.238l-1.464-1.464a3 3 0 0 1-4.001-4.001L7.828 9.243a5 5 0 0 0 6.929 6.929zM7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.947 10.947 0 0 1-2.012 4.592l-3.86-3.86a5 5 0 0 0-5.68-5.68L7.974 3.761z"],"unicode":"","glyph":"M226 903.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L894.1 235.1499999999998A547.4499999999999 547.4499999999999 0 0 0 600 150C330.4 150 106.1 344 59.05 600A549.1 549.1 0 0 0 226.05 903.3zM737.85 391.4L664.65 464.6A150 150 0 0 0 464.5999999999999 664.65L391.4000000000001 737.8499999999999A250 250 0 0 1 737.85 391.4zM398.7 1012C461.05 1036.5 529 1050 600 1050C869.6 1050 1093.9 856 1140.95 600A547.35 547.35 0 0 0 1040.3500000000001 370.4000000000001L847.3500000000001 563.4000000000001A250 250 0 0 1 563.3500000000001 847.4000000000001L398.7 1011.95z","horizAdvX":"1200"},"eye-off-line":{"path":["M0 0h24v24H0z","M17.882 19.297A10.949 10.949 0 0 1 12 21c-5.392 0-9.878-3.88-10.819-9a10.982 10.982 0 0 1 3.34-6.066L1.392 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.31-3.31zM5.935 7.35A8.965 8.965 0 0 0 3.223 12a9.005 9.005 0 0 0 13.201 5.838l-2.028-2.028A4.5 4.5 0 0 1 8.19 9.604L5.935 7.35zm6.979 6.978l-3.242-3.242a2.5 2.5 0 0 0 3.241 3.241zm7.893 2.264l-1.431-1.43A8.935 8.935 0 0 0 20.777 12 9.005 9.005 0 0 0 9.552 5.338L7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.947 10.947 0 0 1-2.012 4.592zm-9.084-9.084a4.5 4.5 0 0 1 4.769 4.769l-4.77-4.769z"],"unicode":"","glyph":"M894.1 235.15A547.4499999999999 547.4499999999999 0 0 0 600 150C330.4 150 106.1 344 59.05 600A549.1 549.1 0 0 0 226.05 903.3L69.6 1059.6L140.35 1130.35L1130.3 140.3499999999999L1059.55 69.6499999999999L894.05 235.1499999999998zM296.75 832.5A448.25 448.25 0 0 1 161.15 600A450.25000000000006 450.25000000000006 0 0 1 821.1999999999999 308.0999999999999L719.8 409.5A225 225 0 0 0 409.5 719.8000000000001L296.75 832.5zM645.6999999999999 483.6L483.6 645.7A125 125 0 0 1 645.65 483.6500000000001zM1040.35 370.4000000000001L968.7999999999998 441.9000000000001A446.75 446.75 0 0 1 1038.8500000000001 600A450.25000000000006 450.25000000000006 0 0 1 477.6 933.1L398.7 1012C461.05 1036.5 529 1050 600 1050C869.6 1050 1093.9 856 1140.95 600A547.35 547.35 0 0 0 1040.3500000000001 370.4000000000001zM586.15 824.6A225 225 0 0 0 824.5999999999999 586.1500000000001L586.0999999999999 824.6z","horizAdvX":"1200"},"facebook-box-fill":{"path":["M0 0h24v24H0z","M15.402 21v-6.966h2.333l.349-2.708h-2.682V9.598c0-.784.218-1.319 1.342-1.319h1.434V5.857a19.19 19.19 0 0 0-2.09-.107c-2.067 0-3.482 1.262-3.482 3.58v1.996h-2.338v2.708h2.338V21H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4.598z"],"unicode":"","glyph":"M770.0999999999999 150V498.3000000000001H886.75L904.2 633.7H770.0999999999999V720.0999999999999C770.0999999999999 759.3 781 786.05 837.2 786.05H908.9V907.15A959.5000000000002 959.5000000000002 0 0 1 804.4000000000001 912.5C701.0500000000001 912.5 630.3000000000001 849.4 630.3000000000001 733.5V633.6999999999999H513.4000000000001V498.3H630.3000000000001V150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H770.1z","horizAdvX":"1200"},"facebook-box-line":{"path":["M0 0h24v24H0z","M14 19h5V5H5v14h7v-5h-2v-2h2v-1.654c0-1.337.14-1.822.4-2.311A2.726 2.726 0 0 1 13.536 6.9c.382-.205.857-.328 1.687-.381.329-.021.755.005 1.278.08v1.9H16c-.917 0-1.296.043-1.522.164a.727.727 0 0 0-.314.314c-.12.226-.164.45-.164 1.368V12h2.5l-.5 2h-2v5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M700 250H950V950H250V250H600V500H500V600H600V682.7C600 749.55 607 773.8 620 798.25A136.29999999999998 136.29999999999998 0 0 0 676.8 855C695.9 865.25 719.65 871.4 761.15 874.05C777.6 875.0999999999999 798.9 873.8 825.0499999999998 870.05V775.05H800C754.15 775.05 735.2 772.9000000000001 723.9 766.8499999999999A36.35 36.35 0 0 1 708.1999999999999 751.15C702.2 739.8499999999999 700 728.6500000000001 700 682.75V600H825L800 500H700V250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"facebook-circle-fill":{"path":["M0 0h24v24H0z","M12 2C6.477 2 2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.879V14.89h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.989C18.343 21.129 22 16.99 22 12c0-5.523-4.477-10-10-10z"],"unicode":"","glyph":"M600 1100C323.85 1100 100 876.15 100 600C100 350.4500000000001 282.85 143.5999999999999 521.9 106.0500000000002V455.5H394.9000000000001V600H521.9V710.15C521.9 835.45 596.5 904.65 710.75 904.65C765.4499999999999 904.65 822.65 894.9 822.65 894.9V771.8999999999999H759.65C697.5 771.8999999999999 678.15 733.3499999999999 678.15 693.8V600H816.8L794.65 455.5H678.15V106.05C917.15 143.55 1100 350.5000000000001 1100 600C1100 876.15 876.15 1100 600 1100z","horizAdvX":"1200"},"facebook-circle-line":{"path":["M0 0h24v24H0z","M13 19.938A8.001 8.001 0 0 0 12 4a8 8 0 0 0-1 15.938V14H9v-2h2v-1.654c0-1.337.14-1.822.4-2.311A2.726 2.726 0 0 1 12.536 6.9c.382-.205.857-.328 1.687-.381.329-.021.755.005 1.278.08v1.9H15c-.917 0-1.296.043-1.522.164a.727.727 0 0 0-.314.314c-.12.226-.164.45-.164 1.368V12h2.5l-.5 2h-2v5.938zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M650 203.1A400.04999999999995 400.04999999999995 0 0 1 600 1000A400 400 0 0 1 550 203.0999999999999V500H450V600H550V682.7C550 749.55 557 773.8 570 798.25A136.29999999999998 136.29999999999998 0 0 0 626.8 855C645.9 865.25 669.65 871.4 711.15 874.05C727.6 875.0999999999999 748.9 873.8 775.05 870.05V775.05H750C704.15 775.05 685.2 772.9000000000001 673.9 766.8499999999999A36.35 36.35 0 0 1 658.1999999999999 751.15C652.2 739.8499999999999 650 728.6500000000001 650 682.75V600H775L750 500H650V203.1zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"facebook-fill":{"path":["M0 0h24v24H0z","M14 13.5h2.5l1-4H14v-2c0-1.03 0-2 2-2h1.5V2.14c-.326-.043-1.557-.14-2.857-.14C11.928 2 10 3.657 10 6.7v2.8H7v4h3V22h4v-8.5z"],"unicode":"","glyph":"M700 525H825L875 725H700V825C700 876.5 700 925 800 925H875V1093C858.6999999999999 1095.15 797.15 1100 732.1500000000001 1100C596.4000000000001 1100 500 1017.15 500 865V725H350V525H500V100H700V525z","horizAdvX":"1200"},"facebook-line":{"path":["M0 0h24v24H0z","M13 9h4.5l-.5 2h-4v9h-2v-9H7V9h4V7.128c0-1.783.186-2.43.534-3.082a3.635 3.635 0 0 1 1.512-1.512C13.698 2.186 14.345 2 16.128 2c.522 0 .98.05 1.372.15V4h-1.372c-1.324 0-1.727.078-2.138.298-.304.162-.53.388-.692.692-.22.411-.298.814-.298 2.138V9z"],"unicode":"","glyph":"M650 750H875L850 650H650V200H550V650H350V750H550V843.6C550 932.75 559.3 965.1 576.7 997.7A181.74999999999997 181.74999999999997 0 0 0 652.3000000000001 1073.3C684.9 1090.7 717.25 1100 806.4 1100C832.4999999999999 1100 855.4 1097.5 875 1092.5V1000H806.4C740.2 1000 720.05 996.1 699.5 985.1C684.3 977 673 965.7 664.9 950.5C653.9 929.95 650 909.8 650 843.6V750z","horizAdvX":"1200"},"fahrenheit-fill":{"path":["M0 0h24v24H0z","M12 12h7v2h-7v7h-2V8a4 4 0 0 1 4-4h7v2h-7a2 2 0 0 0-2 2v4zm-7.5-2a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 600H950V500H600V150H500V800A200 200 0 0 0 700 1000H1050V900H700A100 100 0 0 1 600 800V600zM225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800z","horizAdvX":"1200"},"fahrenheit-line":{"path":["M0 0h24v24H0z","M12 12h7v2h-7v7h-2V8a4 4 0 0 1 4-4h7v2h-7a2 2 0 0 0-2 2v4zm-7.5-2a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 600H950V500H600V150H500V800A200 200 0 0 0 700 1000H1050V900H700A100 100 0 0 1 600 800V600zM225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800z","horizAdvX":"1200"},"feedback-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 13v2h2v-2h-2zm0-6v5h2V7h-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 550V450H650V550H550zM550 850V600H650V850H550z","horizAdvX":"1200"},"feedback-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM550 550H650V450H550V550zM550 850H650V600H550V850z","horizAdvX":"1200"},"file-2-fill":{"path":["M0 0h24v24H0z","M3 9h6a1 1 0 0 0 1-1V2h10.002c.551 0 .998.455.998.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V9zm0-2l5-4.997V7H3z"],"unicode":"","glyph":"M150 750H450A50 50 0 0 1 500 800V1100H1000.1000000000003C1027.65 1100 1050.0000000000002 1077.25 1050.0000000000002 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.3500000000003 100H199.65A50 50 0 0 0 150 150.3500000000001V750zM150 850L400 1099.85V850H150z","horizAdvX":"1200"},"file-2-line":{"path":["M0 0h24v24H0z","M3 8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8zm7-4v5H5v11h14V4h-9z"],"unicode":"","glyph":"M150 800L450.15 1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800zM500 1000V750H250V200H950V1000H500z","horizAdvX":"1200"},"file-3-fill":{"path":["M0 0h24v24H0z","M21 9v11.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2H14v6a1 1 0 0 0 1 1h6zm0-2h-5V2.003L21 7z"],"unicode":"","glyph":"M1050 750V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H700V800A50 50 0 0 1 750 750H1050zM1050 850H800V1099.85L1050 850z","horizAdvX":"1200"},"file-3-line":{"path":["M0 0h24v24H0z","M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8zm-2 1h-5V4H5v16h14V9z"],"unicode":"","glyph":"M1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800zM950 750H700V1000H250V200H950V750z","horizAdvX":"1200"},"file-4-fill":{"path":["M0 0h24v24H0z","M21 15h-7v7H3.998C3.447 22 3 21.545 3 21.008V2.992C3 2.444 3.445 2 3.993 2h16.014A1 1 0 0 1 21 3.007V15zm0 2l-5 4.997V17h5z"],"unicode":"","glyph":"M1050 450H700V100H199.9C172.35 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H1000.35A50 50 0 0 0 1050 1049.65V450zM1050 350L800 100.1500000000001V350H1050z","horizAdvX":"1200"},"file-4-line":{"path":["M0 0h24v24H0z","M21 16l-6.003 6H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v13zm-2-1V4H5v16h9v-5h5z"],"unicode":"","glyph":"M1050 400L749.85 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V400zM950 450V1000H250V200H700V450H950z","horizAdvX":"1200"},"file-add-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 9H8v2h3v3h2v-3h3v-2h-3V8h-2v3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 650H400V550H550V400H650V550H800V650H650V800H550V650z","horizAdvX":"1200"},"file-add-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM11 11V8h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM550 650V800H650V650H800V550H650V400H550V550H400V650H550z","horizAdvX":"1200"},"file-chart-2-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 6a4 4 0 1 0 4 4h-4V8z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 800A200 200 0 1 1 800 600H600V800z","horizAdvX":"1200"},"file-chart-2-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM12 8v4h4a4 4 0 1 1-4-4z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM600 800V600H800A200 200 0 1 0 600 800z","horizAdvX":"1200"},"file-chart-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 5v10h2V7h-2zm4 4v6h2v-6h-2zm-8 2v4h2v-4H7z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 850V350H650V850H550zM750 650V350H850V650H750zM350 550V350H450V550H350z","horizAdvX":"1200"},"file-chart-line":{"path":["M0 0h24v24H0z","M11 7h2v10h-2V7zm4 4h2v6h-2v-6zm-8 2h2v4H7v-4zm8-9H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M550 850H650V350H550V850zM750 650H850V350H750V650zM350 550H450V350H350V550zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-cloud-fill":{"path":["M0 0h24v24H0z","M14.997 2L21 8l.001 4.26A5.466 5.466 0 0 0 17.5 11l-.221.004a5.503 5.503 0 0 0-5.127 4.205l-.016.074-.03.02A4.75 4.75 0 0 0 10.878 22L3.993 22a.993.993 0 0 1-.986-.876L3 21.008V2.992c0-.498.387-.927.885-.985L4.002 2h10.995zM17.5 13a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5z"],"unicode":"","glyph":"M749.85 1100L1050 800L1050.05 587A273.29999999999995 273.29999999999995 0 0 1 875 650L863.95 649.8000000000001A275.15 275.15 0 0 1 607.6 439.5500000000001L606.8000000000001 435.85L605.3000000000001 434.85A237.49999999999997 237.49999999999997 0 0 1 543.9 100L199.65 100A49.65 49.65 0 0 0 150.35 143.8L150 149.6000000000001V1050.4C150 1075.3 169.35 1096.75 194.25 1099.65L200.1 1100H749.85zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550z","horizAdvX":"1200"},"file-cloud-line":{"path":["M0 0h24v24H0z","M14.997 2L21 8l.001 4.26a5.471 5.471 0 0 0-2-1.053L19 9h-5V4H5v16h5.06a4.73 4.73 0 0 0 .817 2H3.993a.993.993 0 0 1-.986-.876L3 21.008V2.992c0-.498.387-.927.885-.985L4.002 2h10.995zM17.5 13a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5zm0 2a1.5 1.5 0 0 0-1.473 1.215l-.02.14L16 16.5v1.62l-1.444.406a.75.75 0 0 0 .08 1.466l.109.008h5.51a.75.75 0 0 0 .19-1.474l-1.013-.283L19 18.12V16.5l-.007-.144A1.5 1.5 0 0 0 17.5 15z"],"unicode":"","glyph":"M749.85 1100L1050 800L1050.05 587A273.55 273.55 0 0 1 950.05 639.65L950 750H700V1000H250V200H502.9999999999999A236.50000000000003 236.50000000000003 0 0 1 543.8499999999999 100H199.65A49.65 49.65 0 0 0 150.35 143.8L150 149.6000000000001V1050.4C150 1075.3 169.35 1096.75 194.25 1099.65L200.1 1100H749.85zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550zM875 450A75 75 0 0 1 801.35 389.25L800.35 382.25L800 375V294L727.8000000000001 273.7000000000001A37.5 37.5 0 0 1 731.8000000000001 200.4L737.25 200H1012.7500000000002A37.5 37.5 0 0 1 1022.2500000000002 273.7000000000001L971.6000000000003 287.85L950 294V375L949.65 382.2A75 75 0 0 1 875 450z","horizAdvX":"1200"},"file-code-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm1.657 10L14.12 8.464 12.707 9.88 14.828 12l-2.12 2.121 1.413 1.415L17.657 12zM6.343 12l3.536 3.536 1.414-1.415L9.172 12l2.12-2.121L9.88 8.464 6.343 12z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM882.85 600L706 776.8L635.35 706L741.4 600L635.3999999999999 493.9499999999999L706.05 423.2L882.85 600zM317.15 600L493.95 423.2000000000001L564.65 493.95L458.6 600L564.6000000000001 706.05L494.0000000000001 776.8L317.15 600z","horizAdvX":"1200"},"file-code-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM17.657 12l-3.536 3.536-1.414-1.415L14.828 12l-2.12-2.121 1.413-1.415L17.657 12zM6.343 12L9.88 8.464l1.414 1.415L9.172 12l2.12 2.121-1.413 1.415L6.343 12z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM882.85 600L706.0500000000001 423.2000000000001L635.35 493.95L741.4 600L635.3999999999999 706.05L706.05 776.8000000000001L882.85 600zM317.15 600L494.0000000000001 776.8L564.7 706.05L458.6 600L564.6000000000001 493.9499999999999L493.95 423.2L317.15 600z","horizAdvX":"1200"},"file-copy-2-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7zm2 0h8v10h2V4H9v2zm-2 5v2h6v-2H7zm0 4v2h6v-2H7z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350zM450 900H850V400H950V1000H450V900zM350 650V550H650V650H350zM350 450V350H650V450H350z","horizAdvX":"1200"},"file-copy-2-line":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.006-1H7zM5.002 8L5 20h10V8H5.002zM9 6h8v10h2V4H9v2zm-2 5h6v2H7v-2zm0 4h6v2H7v-2z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.45 900H350zM250.1 800L250 200H750V800H250.1zM450 900H850V400H950V1000H450V900zM350 650H650V550H350V650zM350 450H650V350H350V450z","horizAdvX":"1200"},"file-copy-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7zm2 0h8v10h2V4H9v2z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350zM450 900H850V400H950V1000H450V900z","horizAdvX":"1200"},"file-copy-line":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7zM5.003 8L5 20h10V8H5.003zM9 6h8v10h2V4H9v2z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350zM250.15 800L250 200H750V800H250.15zM450 900H850V400H950V1000H450V900z","horizAdvX":"1200"},"file-damage-fill":{"path":["M0 0h24v24H0z","M3 14l4 2.5 3-3.5 3 4 2-2.5 3 .5-3-3-2 2.5-3-5-3.5 3.75L3 10V2.992C3 2.455 3.447 2 3.998 2H14v6a1 1 0 0 0 1 1h6v11.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V14zm18-7h-5V2.003L21 7z"],"unicode":"","glyph":"M150 500L350 375L500 550L650 350L750 475L900 450L750 600L650 475L500 725L325 537.5L150 700V1050.4C150 1077.25 172.35 1100 199.9 1100H700V800A50 50 0 0 1 750 750H1050V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V500zM1050 850H800V1099.85L1050 850z","horizAdvX":"1200"},"file-damage-line":{"path":["M0 0h24v24H0z","M19 9h-5V4H5v7.857l1.5 1.393L10 9.5l3 5 2-2.5 3 3-3-.5-2 2.5-3-4-3 3.5-2-1.25V20h14V9zm2-1v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8z"],"unicode":"","glyph":"M950 750H700V1000H250V607.1500000000001L325 537.5L500 725L650 475L750 600L900 450L750 475L650 350L500 550L350 375L250 437.5V200H950V750zM1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800z","horizAdvX":"1200"},"file-download-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-3 10V8h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM650 600V800H550V600H400L600 400L800 600H650z","horizAdvX":"1200"},"file-download-line":{"path":["M0 0h24v24H0z","M13 12h3l-4 4-4-4h3V8h2v4zm2-8H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M650 600H800L600 400L400 600H550V800H650V600zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-edit-fill":{"path":["M0 0h24v24H0z","M21 15.243v5.765a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V9h6a1 1 0 0 0 1-1V2h10.002c.551 0 .998.455.998.992v3.765l-8.999 9-.006 4.238 4.246.006L21 15.243zm.778-6.435l1.414 1.414L15.414 18l-1.416-.002.002-1.412 7.778-7.778zM3 7l5-4.997V7H3z"],"unicode":"","glyph":"M1050 437.85V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V750H450A50 50 0 0 1 500 800V1100H1000.1000000000003C1027.65 1100 1050.0000000000002 1077.25 1050.0000000000002 1050.4V862.1500000000001L600.0500000000002 412.15L599.7500000000001 200.25L812.0500000000002 199.9499999999999L1050 437.85zM1088.8999999999999 759.6L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999zM150 850L400 1099.85V850H150z","horizAdvX":"1200"},"file-edit-line":{"path":["M0 0h24v24H0z","M21 6.757l-2 2V4h-9v5H5v11h14v-2.757l2-2v5.765a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v3.765zm.778 2.05l1.414 1.415L15.414 18l-1.416-.002.002-1.412 7.778-7.778z"],"unicode":"","glyph":"M1050 862.1500000000001L950 762.1500000000001V1000H500V750H250V200H950V337.85L1050 437.85V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800L450.15 1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V862.1500000000001zM1088.8999999999999 759.6500000000001L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999z","horizAdvX":"1200"},"file-excel-2-fill":{"path":["M0 0h24v24H0z","M2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3zm-6.8 9L13 8h-2.4L9 10.286 7.4 8H5l2.8 4L5 16h2.4L9 13.714 10.6 16H13l-2.8-4z"],"unicode":"","glyph":"M142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050zM509.9999999999999 600L650 800H530L450 685.7L370 800H250L390 600L250 400H370L450 514.3L530 400H650L509.9999999999999 600z","horizAdvX":"1200"},"file-excel-2-line":{"path":["M0 0h24v24H0z","M2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM4 4.735v14.53l10 1.429V3.306L4 4.735zM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2zm-6.8-7l2.8 4h-2.4L9 13.714 7.4 16H5l2.8-4L5 8h2.4L9 10.286 10.6 8H13l-2.8 4z"],"unicode":"","glyph":"M142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM200 963.25V236.75L700 165.3V1034.7L200 963.25zM850 250H1000V950H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V250zM509.9999999999999 600L650 400H530L450 514.3L370 400H250L390 600L250 800H370L450 685.7L530 800H650L509.9999999999999 600z","horizAdvX":"1200"},"file-excel-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-2.8 10L16 8h-2.4L12 10.286 10.4 8H8l2.8 4L8 16h2.4l1.6-2.286L13.6 16H16l-2.8-4z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM660 600L800 800H680L600 685.7L520 800H400L540 600L400 400H520L600 514.3L680 400H800L660 600z","horizAdvX":"1200"},"file-excel-line":{"path":["M0 0h24v24H0z","M13.2 12l2.8 4h-2.4L12 13.714 10.4 16H8l2.8-4L8 8h2.4l1.6 2.286L13.6 8H15V4H5v16h14V8h-3l-2.8 4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M660 600L800 400H680L600 514.3L520 400H400L540 600L400 800H520L600 685.7L680 800H750V1000H250V200H950V800H800L660 600zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-fill":{"path":["M0 0h24v24H0z","M3 8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8zm7-4.5L4.5 9H10V3.5z"],"unicode":"","glyph":"M150 800L450.15 1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800zM500 1025L225 750H500V1025z","horizAdvX":"1200"},"file-forbid-fill":{"path":["M0 0h24v24H0z","M21 11.674A7 7 0 0 0 12.255 22H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16l5 5v4.674zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M1050 616.3000000000001A350 350 0 0 1 612.75 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800L1050 850V616.3000000000001zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50zM835.35 164.6000000000001A150 150 0 0 1 1035.4 364.6500000000001L835.35 164.6500000000001zM764.6000000000001 235.35L964.65 435.35A150 150 0 0 1 764.6000000000001 235.3z","horizAdvX":"1200"},"file-forbid-line":{"path":["M0 0h24v24H0z","M11.29 20c.215.722.543 1.396.965 2H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16l5 5v4.674a6.95 6.95 0 0 0-2-.603V8h-4V4H5v16h6.29zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M564.5 200C575.25 163.8999999999999 591.6499999999999 130.2000000000001 612.75 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V616.3000000000001A347.5 347.5 0 0 1 950 646.45V800H750V1000H250V200H564.5zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50zM835.35 164.6000000000001A150 150 0 0 1 1035.4 364.6500000000001L835.35 164.6500000000001zM764.6000000000001 235.35L964.65 435.35A150 150 0 0 1 764.6000000000001 235.3z","horizAdvX":"1200"},"file-gif-fill":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 5v13.993c0 .556-.445 1.007-.993 1.007H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm-3 8h-1v5h1v-5zm-2 0H9c-1.105 0-2 .895-2 2v1c0 1.105.895 2 2 2h1c.552 0 1-.448 1-1v-2H9v1h1v1H9c-.552 0-1-.448-1-1v-1c0-.552.448-1 1-1h2v-1zm6 0h-3v5h1v-2h2v-1h-2v-1h2v-1z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999C1050 122.55 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM650 700H600V450H650V700zM550 700H450C394.75 700 350 655.25 350 600V550C350 494.75 394.75 450 450 450H500C527.6 450 550 472.4 550 500V600H450V550H500V500H450C422.4000000000001 500 400 522.4 400 550V600C400 627.6 422.4000000000001 650 450 650H550V700zM850 700H700V450H750V550H850V600H750V650H850V700z","horizAdvX":"1200"},"file-gif-line":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 5v13.993c0 .556-.445 1.007-.993 1.007H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm-1 2H5v16h14V8h-4V4zm-2 6v5h-1v-5h1zm-2 0v1H9c-.552 0-1 .448-1 1v1c0 .552.448 1 1 1h1v-1H9v-1h2v2c0 .552-.448 1-1 1H9c-1.105 0-2-.895-2-2v-1c0-1.105.895-2 2-2h2zm6 0v1h-2v1h2v1h-2v2h-1v-5h3z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999C1050 122.55 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM750 1000H250V200H950V800H750V1000zM650 700V450H600V700H650zM550 700V650H450C422.4000000000001 650 400 627.6 400 600V550C400 522.4 422.4000000000001 500 450 500H500V550H450V600H550V500C550 472.4 527.6 450 500 450H450C394.75 450 350 494.75 350 550V600C350 655.25 394.75 700 450 700H550zM850 700V650H750V600H850V550H750V450H700V700H850z","horizAdvX":"1200"},"file-history-fill":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 4.999v14.01c0 .547-.445.991-.993.991H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-3 7h-2v6h5v-2h-3V9z"],"unicode":"","glyph":"M800 1100L1050 850.05V149.55C1050 122.2000000000001 1027.75 100 1000.35 100H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM650 750H550V450H800V550H650V750z","horizAdvX":"1200"},"file-history-line":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 5v13.993c0 .556-.445 1.007-.993 1.007H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm-1 2H5v16h14V8h-4V4zm-2 5v4h3v2h-5V9h2z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999C1050 122.55 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM750 1000H250V200H950V800H750V1000zM650 750V550H800V450H550V750H650z","horizAdvX":"1200"},"file-hwp-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zM9.333 14.667H8V18h8v-1.333l-6.667-.001v-2zM12 14.333a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM12 9a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zm0 1.333a1.167 1.167 0 1 1 0 2.334 1.167 1.167 0 0 1 0-2.334zM12.667 6h-1.334v1.333H8v1.334h8V7.333h-3.334V6z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM466.65 466.65H400V300H800V366.6499999999999L466.65 366.7V466.6999999999999zM600 483.35A50 50 0 1 1 600 383.3500000000002A50 50 0 0 1 600 483.3500000000001zM600 750A125 125 0 1 1 600 500A125 125 0 0 1 600 750zM600 683.35A58.35 58.35 0 1 0 600 566.65A58.35 58.35 0 0 0 600 683.35zM633.35 900H566.65V833.3499999999999H400V766.6500000000001H800V833.3499999999999H633.3000000000001V900z","horizAdvX":"1200"},"file-hwp-line":{"path":["M0 0h24v24H0z","M16 2l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm0 6.667H8V7.333h3.333V6h1.334l-.001 1.333h2.333L15 4H5v16h14V8l-3-.001v.668zm-6.667 6v1.999H16V18H8v-3.333h1.333zM12 14.333a1 1 0 1 1 0 2 1 1 0 0 1 0-2zM12 9a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm0 1.333a1.167 1.167 0 1 0 0 2.334 1.167 1.167 0 0 0 0-2.334z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM800 766.6500000000001H400V833.3499999999999H566.65V900H633.35L633.3000000000001 833.3499999999999H749.95L750 1000H250V200H950V800L800 800.05V766.6500000000001zM466.65 466.65V366.7H800V300H400V466.65H466.65zM600 483.35A50 50 0 1 0 600 383.3500000000002A50 50 0 0 0 600 483.3500000000001zM600 750A125 125 0 1 0 600 500A125 125 0 0 0 600 750zM600 683.35A58.35 58.35 0 1 1 600 566.65A58.35 58.35 0 0 1 600 683.35z","horizAdvX":"1200"},"file-info-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 5v2h2V7h-2zm0 4v6h2v-6h-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 850V750H650V850H550zM550 650V350H650V650H550z","horizAdvX":"1200"},"file-info-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM11 11h2v6h-2v-6zm0-4h2v2h-2V7z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM550 650H650V350H550V650zM550 850H650V750H550V850z","horizAdvX":"1200"},"file-line":{"path":["M0 0h24v24H0z","M9 2.003V2h10.998C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6-5.997zM5.83 8H9V4.83L5.83 8zM11 4v5a1 1 0 0 1-1 1H5v10h14V4h-8z"],"unicode":"","glyph":"M450 1099.85V1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800L450 1099.85zM291.5 800H450V958.5L291.5 800zM550 1000V750A50 50 0 0 0 500 700H250V200H950V1000H550z","horizAdvX":"1200"},"file-list-2-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM8 7v2h8V7H8zm0 4v2h8v-2H8zm0 4v2h5v-2H8z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM400 850V750H800V850H400zM400 650V550H800V650H400zM400 450V350H650V450H400z","horizAdvX":"1200"},"file-list-2-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM8 7h8v2H8V7zm0 4h8v2H8v-2zm0 4h5v2H8v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM400 850H800V750H400V850zM400 650H800V550H400V650zM400 450H650V350H400V450z","horizAdvX":"1200"},"file-list-3-fill":{"path":["M0 0h24v24H0z","M19 22H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v12h4v4a3 3 0 0 1-3 3zm-1-5v2a1 1 0 0 0 2 0v-2h-2zM6 7v2h8V7H6zm0 4v2h8v-2H6zm0 4v2h5v-2H6z"],"unicode":"","glyph":"M950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V450H1100V250A150 150 0 0 0 950 100zM900 350V250A50 50 0 0 1 1000 250V350H900zM300 850V750H700V850H300zM300 650V550H700V650H300zM300 450V350H550V450H300z","horizAdvX":"1200"},"file-list-3-line":{"path":["M0 0h24v24H0z","M19 22H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v12h4v4a3 3 0 0 1-3 3zm-1-5v2a1 1 0 0 0 2 0v-2h-2zm-2 3V4H4v15a1 1 0 0 0 1 1h11zM6 7h8v2H6V7zm0 4h8v2H6v-2zm0 4h5v2H6v-2z"],"unicode":"","glyph":"M950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V450H1100V250A150 150 0 0 0 950 100zM900 350V250A50 50 0 0 1 1000 250V350H900zM800 200V1000H200V250A50 50 0 0 1 250 200H800zM300 850H700V750H300V850zM300 650H700V550H300V650zM300 450H550V350H300V450z","horizAdvX":"1200"},"file-list-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM8 7v2h8V7H8zm0 4v2h8v-2H8zm0 4v2h8v-2H8z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM400 850V750H800V850H400zM400 650V550H800V650H400zM400 450V350H800V450H400z","horizAdvX":"1200"},"file-list-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM8 7h8v2H8V7zm0 4h8v2H8v-2zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM400 850H800V750H400V850zM400 650H800V550H400V650zM400 450H800V350H400V450z","horizAdvX":"1200"},"file-lock-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-1 9v-1a3 3 0 0 0-6 0v1H8v5h8v-5h-1zm-2 0h-2v-1a1 1 0 0 1 2 0v1z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM750 650V700A150 150 0 0 1 450 700V650H400V400H800V650H750zM650 650H550V700A50 50 0 0 0 650 700V650z","horizAdvX":"1200"},"file-lock-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM15 11h1v5H8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM750 650H800V400H400V650H450V700A150 150 0 0 0 750 700V650zM650 650V700A50 50 0 0 1 550 700V650H650z","horizAdvX":"1200"},"file-mark-fill":{"path":["M0 0h24v24H0z","M21 2.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.014c.548 0 .993.444.993.992zM7 4v9l3.5-2 3.5 2V4H7z"],"unicode":"","glyph":"M1050 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4zM350 1000V550L525 650L700 550V1000H350z","horizAdvX":"1200"},"file-mark-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM7 4H5v16h14V4h-5v9l-3.5-2L7 13V4z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM350 1000H250V200H950V1000H700V550L525 650L350 550V1000z","horizAdvX":"1200"},"file-music-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 10.05a2.5 2.5 0 1 0 2 2.45V10h3V8h-5v4.05z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 597.5A125 125 0 1 1 650 475V700H800V800H550V597.5z","horizAdvX":"1200"},"file-music-line":{"path":["M0 0h24v24H0z","M16 8v2h-3v4.5a2.5 2.5 0 1 1-2-2.45V8h4V4H5v16h14V8h-3zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M800 800V700H650V475A125 125 0 1 0 550 597.5V800H750V1000H250V200H950V800H800zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-paper-2-fill":{"path":["M0 0h24v24H0z","M20 2a3 3 0 0 1 3 3v2h-2v12a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16v2a1 1 0 0 0 .883.993L18 20a1 1 0 0 0 .993-.883L19 19v-4H3V5a3 3 0 0 1 3-3h14z"],"unicode":"","glyph":"M1000 1100A150 150 0 0 0 1150 950V850H1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850V250A50 50 0 0 1 894.15 200.35L900 200A50 50 0 0 1 949.65 244.15L950 250V450H150V950A150 150 0 0 0 300 1100H1000z","horizAdvX":"1200"},"file-paper-2-line":{"path":["M0 0h24v24H0z","M20 2a3 3 0 0 1 3 3v2h-2v12a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16v2a1 1 0 0 0 .883.993L18 20a1 1 0 0 0 .993-.883L19 19V4H6a1 1 0 0 0-.993.883L5 5v10H3V5a3 3 0 0 1 3-3h14z"],"unicode":"","glyph":"M1000 1100A150 150 0 0 0 1150 950V850H1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850V250A50 50 0 0 1 894.15 200.35L900 200A50 50 0 0 1 949.65 244.15L950 250V1000H300A50 50 0 0 1 250.35 955.85L250 950V450H150V950A150 150 0 0 0 300 1100H1000z","horizAdvX":"1200"},"file-paper-fill":{"path":["M0 0h24v24H0z","M3 15V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16v2a1 1 0 0 0 2 0v-4H3z"],"unicode":"","glyph":"M150 450V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850V250A50 50 0 0 1 950 250V450H150z","horizAdvX":"1200"},"file-paper-line":{"path":["M0 0h24v24H0z","M17 17v2a1 1 0 0 0 2 0V4H5v11H3V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16z"],"unicode":"","glyph":"M850 350V250A50 50 0 0 1 950 250V1000H250V450H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850z","horizAdvX":"1200"},"file-pdf-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 14a4 4 0 1 0 0-8H8v8h4zm-2-6h2a2 2 0 1 1 0 4h-2v-4z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 400A200 200 0 1 1 600 800H400V400H600zM500 700H600A100 100 0 1 0 600 500H500V700z","horizAdvX":"1200"},"file-pdf-line":{"path":["M0 0h24v24H0z","M12 16H8V8h4a4 4 0 1 1 0 8zm-2-6v4h2a2 2 0 1 0 0-4h-2zm5-6H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M600 400H400V800H600A200 200 0 1 0 600 400zM500 700V500H600A100 100 0 1 1 600 700H500zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-ppt-2-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3zM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM5 8v8h2v-2h6V8H5zm2 2h4v2H7v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050zM142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM250 800V400H350V500H650V800H250zM350 700H550V600H350V700z","horizAdvX":"1200"},"file-ppt-2-line":{"path":["M0 0h24v24H0z","M2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM4 4.735v14.53l10 1.429V3.306L4 4.735zM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2zM5 8h8v6H7v2H5V8zm2 2v2h4v-2H7z"],"unicode":"","glyph":"M142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM200 963.25V236.75L700 165.3V1034.7L200 963.25zM850 250H1000V950H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V250zM250 800H650V500H350V400H250V800zM350 700V600H550V700H350z","horizAdvX":"1200"},"file-ppt-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zM8 8v8h2v-2h6V8H8zm2 2h4v2h-4v-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM400 800V400H500V500H800V800H400zM500 700H700V600H500V700z","horizAdvX":"1200"},"file-ppt-line":{"path":["M0 0h24v24H0z","M3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM5 4v16h14V8h-3v6h-6v2H8V8h7V4H5zm5 6v2h4v-2h-4z"],"unicode":"","glyph":"M150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM250 1000V200H950V800H800V500H500V400H400V800H750V1000H250zM500 700V600H700V700H500z","horizAdvX":"1200"},"file-reduce-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-8 9v2h8v-2H8z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM400 650V550H800V650H400z","horizAdvX":"1200"},"file-reduce-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM16 11v2H8v-2h8z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM800 650V550H400V650H800z","horizAdvX":"1200"},"file-search-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-2.471 12.446l2.21 2.21 1.415-1.413-2.21-2.21a4.002 4.002 0 0 0-6.276-4.861 4 4 0 0 0 4.861 6.274zm-.618-2.032a2 2 0 1 1-2.828-2.828 2 2 0 0 1 2.828 2.828z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM676.45 477.7L786.95 367.2000000000001L857.7 437.85L747.1999999999999 548.3500000000001A200.10000000000002 200.10000000000002 0 0 1 433.4 791.4000000000001A200 200 0 0 1 676.45 477.7zM645.55 579.3000000000001A100 100 0 1 0 504.15 720.7A100 100 0 0 0 645.55 579.3000000000001z","horizAdvX":"1200"},"file-search-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zm10.529 11.454a4.002 4.002 0 0 1-4.86-6.274 4 4 0 0 1 6.274 4.86l2.21 2.21-1.414 1.415-2.21-2.21zm-.618-2.032a2 2 0 1 0-2.828-2.828 2 2 0 0 0 2.828 2.828z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM676.45 477.6999999999999A200.10000000000002 200.10000000000002 0 0 0 433.4500000000001 791.4A200 200 0 0 0 747.1500000000001 548.4L857.6500000000001 437.9L786.9500000000002 367.15L676.4500000000002 477.6500000000001zM645.55 579.3A100 100 0 1 1 504.15 720.6999999999998A100 100 0 0 1 645.55 579.3z","horizAdvX":"1200"},"file-settings-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zM8.595 12.812l-.992.572 1 1.732.992-.573c.393.372.873.654 1.405.812V16.5h2v-1.145a3.496 3.496 0 0 0 1.405-.812l.992.573 1-1.732-.992-.573a3.51 3.51 0 0 0 0-1.622l.992-.573-1-1.732-.992.573A3.496 3.496 0 0 0 13 8.645V7.5h-2v1.145a3.496 3.496 0 0 0-1.405.812l-.992-.573-1 1.732.992.573a3.51 3.51 0 0 0 0 1.623zM12 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM429.7500000000001 559.4L380.1500000000001 530.8000000000001L430.1500000000001 444.2000000000002L479.7500000000001 472.8500000000001C499.4000000000001 454.2500000000001 523.4000000000001 440.1500000000001 550.0000000000001 432.2500000000001V375H650.0000000000001V432.25A174.8 174.8 0 0 1 720.25 472.8499999999999L769.8500000000001 444.2L819.8500000000001 530.7999999999998L770.25 559.4499999999999A175.49999999999997 175.49999999999997 0 0 1 770.25 640.55L819.8500000000001 669.1999999999999L769.8500000000001 755.8L720.25 727.1499999999999A174.8 174.8 0 0 1 650 767.75V825H550V767.75A174.8 174.8 0 0 1 479.7500000000001 727.1500000000001L430.1500000000001 755.8000000000001L380.1500000000001 669.2000000000002L429.7500000000001 640.5500000000001A175.49999999999997 175.49999999999997 0 0 1 429.7500000000001 559.4000000000001zM600 525A75 75 0 1 0 600 675A75 75 0 0 0 600 525z","horizAdvX":"1200"},"file-settings-line":{"path":["M0 0h24v24H0z","M8.595 12.812a3.51 3.51 0 0 1 0-1.623l-.992-.573 1-1.732.992.573A3.496 3.496 0 0 1 11 8.645V7.5h2v1.145c.532.158 1.012.44 1.405.812l.992-.573 1 1.732-.992.573a3.51 3.51 0 0 1 0 1.622l.992.573-1 1.732-.992-.573a3.496 3.496 0 0 1-1.405.812V16.5h-2v-1.145a3.496 3.496 0 0 1-1.405-.812l-.992.573-1-1.732.992-.572zM12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M429.7500000000001 559.4A175.49999999999997 175.49999999999997 0 0 0 429.7500000000001 640.55L380.1500000000001 669.2L430.1500000000001 755.8L479.7500000000001 727.15A174.8 174.8 0 0 0 550 767.75V825H650V767.75C676.6 759.85 700.6 745.75 720.25 727.1500000000001L769.8499999999999 755.8000000000001L819.8499999999999 669.2000000000002L770.2499999999999 640.5500000000001A175.49999999999997 175.49999999999997 0 0 0 770.2499999999999 559.45L819.8499999999999 530.8000000000001L769.8499999999999 444.2000000000002L720.2499999999999 472.8500000000001A174.8 174.8 0 0 0 649.9999999999999 432.2500000000001V375H549.9999999999999V432.25A174.8 174.8 0 0 0 479.7499999999999 472.8499999999999L430.1499999999999 444.2L380.1499999999999 530.7999999999998L429.75 559.3999999999999zM600 525A75 75 0 1 1 600 675A75 75 0 0 1 600 525zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-shield-2-fill":{"path":["M0 0h24v24H0z","M21 10H11v7.382c0 1.563.777 3.023 2.074 3.892l1.083.726H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2h11.999L21 7v3zm-8 2h8v5.382c0 .897-.446 1.734-1.187 2.23L17 21.499l-2.813-1.885A2.685 2.685 0 0 1 13 17.383V12z"],"unicode":"","glyph":"M1050 700H550V330.9000000000001C550 252.7500000000001 588.8499999999999 179.7500000000001 653.7 136.3000000000002L707.85 100.0000000000002H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H799.85L1050 850V700zM650 600H1050V330.9000000000001C1050 286.0500000000002 1027.6999999999998 244.2000000000001 990.65 219.4000000000001L850 125.05L709.35 219.3000000000002A134.25 134.25 0 0 0 650 330.85V600z","horizAdvX":"1200"},"file-shield-2-line":{"path":["M0 0h24v24H0z","M14 9V4H5v16h6.056c.328.417.724.785 1.18 1.085l1.39.915H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8v1h-7zm-2 2h9v5.949c0 .99-.501 1.916-1.336 2.465L16.5 21.498l-3.164-2.084A2.953 2.953 0 0 1 12 16.95V11zm2 5.949c0 .316.162.614.436.795l2.064 1.36 2.064-1.36a.954.954 0 0 0 .436-.795V13h-5v3.949z"],"unicode":"","glyph":"M700 750V1000H250V200H552.8000000000001C569.2 179.1499999999999 589 160.75 611.8000000000001 145.75L681.3000000000001 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800V750H700zM600 650H1050V352.5500000000001C1050 303.0500000000002 1024.95 256.7500000000001 983.2 229.3000000000001L825 125.0999999999999L666.8000000000001 229.3A147.64999999999998 147.64999999999998 0 0 0 600 352.5V650zM700 352.5500000000001C700 336.7500000000001 708.1 321.85 721.8 312.8L825 244.8000000000001L928.2 312.8A47.699999999999996 47.699999999999996 0 0 1 950 352.5500000000001V550H700V352.5500000000001z","horizAdvX":"1200"},"file-shield-fill":{"path":["M0 0h24v24H0z","M21 7v13.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2h11.999L21 7zM8 8v5.6c0 .85.446 1.643 1.187 2.114L12 17.5l2.813-1.786A2.51 2.51 0 0 0 16 13.6V8H8zm2 2h4v3.6c0 .158-.09.318-.26.426L12 15.13l-1.74-1.105c-.17-.108-.26-.268-.26-.426V10z"],"unicode":"","glyph":"M1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H799.85L1050 850zM400 800V520C400 477.5 422.3 437.85 459.35 414.3000000000001L600 325L740.65 414.3A125.49999999999997 125.49999999999997 0 0 1 800 520V800H400zM500 700H700V520C700 512.1 695.5 504.1 687 498.7L600 443.5L513 498.75C504.5 504.15 500 512.15 500 520.05V700z","horizAdvX":"1200"},"file-shield-line":{"path":["M0 0h24v24H0z","M14 8V4H5v16h14V9h-3v4.62c0 .844-.446 1.633-1.187 2.101L12 17.498 9.187 15.72C8.446 15.253 8 14.464 8 13.62V8h6zm7 0v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8zm-11 5.62c0 .15.087.304.255.41L12 15.132l1.745-1.102c.168-.106.255-.26.255-.41V10h-4v3.62z"],"unicode":"","glyph":"M700 800V1000H250V200H950V750H800V519C800 476.8 777.7 437.35 740.65 413.9500000000001L600 325.0999999999999L459.35 414C422.3 437.35 400 476.8 400 519V800H700zM1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800zM500 519C500 511.4999999999999 504.35 503.8 512.75 498.5L600 443.4L687.25 498.5C695.65 503.8000000000001 700.0000000000001 511.5 700.0000000000001 519V700H500.0000000000001V519z","horizAdvX":"1200"},"file-shred-fill":{"path":["M0 0h24v24H0z","M22 12v2H2v-2h2V2.995c0-.55.445-.995.996-.995H15l5 5v5h2zM3 16h2v6H3v-6zm16 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6H7v-6z"],"unicode":"","glyph":"M1100 600V500H100V600H200V1050.25C200 1077.75 222.25 1100 249.8 1100H750L1000 850V600H1100zM150 400H250V100H150V400zM950 400H1050V100H950V400zM750 400H850V100H750V400zM550 400H650V100H550V400zM350 400H450V100H350V400z","horizAdvX":"1200"},"file-shred-line":{"path":["M0 0h24v24H0z","M6 12h12V8h-4V4H6v8zm-2 0V2.995c0-.55.445-.995.996-.995H15l5 5v5h2v2H2v-2h2zm-1 4h2v6H3v-6zm16 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6H7v-6z"],"unicode":"","glyph":"M300 600H900V800H700V1000H300V600zM200 600V1050.25C200 1077.75 222.25 1100 249.8 1100H750L1000 850V600H1100V500H100V600H200zM150 400H250V100H150V400zM950 400H1050V100H950V400zM750 400H850V100H750V400zM550 400H650V100H550V400zM350 400H450V100H350V400z","horizAdvX":"1200"},"file-text-fill":{"path":["M0 0h24v24H0z","M21 9v11.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2H14v6a1 1 0 0 0 1 1h6zm0-2h-5V2.003L21 7zM8 7v2h3V7H8zm0 4v2h8v-2H8zm0 4v2h8v-2H8z"],"unicode":"","glyph":"M1050 750V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H700V800A50 50 0 0 1 750 750H1050zM1050 850H800V1099.85L1050 850zM400 850V750H550V850H400zM400 650V550H800V650H400zM400 450V350H800V450H400z","horizAdvX":"1200"},"file-text-line":{"path":["M0 0h24v24H0z","M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8zm-2 1h-5V4H5v16h14V9zM8 7h3v2H8V7zm0 4h8v2H8v-2zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800zM950 750H700V1000H250V200H950V750zM400 850H550V750H400V850zM400 650H800V550H400V650zM400 450H800V350H400V450z","horizAdvX":"1200"},"file-transfer-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 9H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 650H400V550H600V400L800 600L600 800V650z","horizAdvX":"1200"},"file-transfer-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM12 11V8l4 4-4 4v-3H8v-2h4z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM600 650V800L800 600L600 400V550H400V650H600z","horizAdvX":"1200"},"file-unknow-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 13v2h2v-2h-2zm2-1.645A3.502 3.502 0 0 0 12 6.5a3.501 3.501 0 0 0-3.433 2.813l1.962.393A1.5 1.5 0 1 1 12 11.5a1 1 0 0 0-1 1V14h2v-.645z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 450V350H650V450H550zM650 532.25A175.1 175.1 0 0 1 600 875A175.04999999999998 175.04999999999998 0 0 1 428.35 734.3499999999999L526.45 714.6999999999999A75 75 0 1 0 600 625A50 50 0 0 1 550 575V500H650V532.25z","horizAdvX":"1200"},"file-unknow-line":{"path":["M0 0h24v24H0z","M11 15h2v2h-2v-2zm2-1.645V14h-2v-1.5a1 1 0 0 1 1-1 1.5 1.5 0 1 0-1.471-1.794l-1.962-.393A3.501 3.501 0 1 1 13 13.355zM15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M550 450H650V350H550V450zM650 532.25V500H550V575A50 50 0 0 0 600 625A75 75 0 1 1 526.45 714.7L428.35 734.3500000000001A175.04999999999998 175.04999999999998 0 1 0 650 532.25zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-upload-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-3 10h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM650 600H800L600 800L400 600H550V400H650V600z","horizAdvX":"1200"},"file-upload-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM13 12v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM650 600V400H550V600H400L600 800L800 600H650z","horizAdvX":"1200"},"file-user-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 9.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM7.527 17h8.946a4.5 4.5 0 0 0-8.946 0z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 625A125 125 0 1 1 600 875A125 125 0 0 1 600 625zM376.35 350H823.65A225 225 0 0 1 376.35 350z","horizAdvX":"1200"},"file-user-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zm9 8.508a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM7.527 17a4.5 4.5 0 0 1 8.946 0H7.527z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM600 625A125 125 0 1 0 600 875A125 125 0 0 0 600 625zM376.35 350A225 225 0 0 0 823.65 350H376.35z","horizAdvX":"1200"},"file-warning-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 13v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"file-warning-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM11 15h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"file-word-2-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3zM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM11 8v4.989L9 11l-1.99 2L7 8H5v8h2l2-2 2 2h2V8h-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050zM142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM550 800V550.55L450 650L350.5 550L350 800H250V400H350L450 500L550 400H650V800H550z","horizAdvX":"1200"},"file-word-2-line":{"path":["M0 0h24v24H0z","M17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2zM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM4 4.735v14.53l10 1.429V3.306L4 4.735zM11 8h2v8h-2l-2-2-2 2H5V8h2l.01 5L9 11l2 1.989V8z"],"unicode":"","glyph":"M850 250H1000V950H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V250zM142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM200 963.25V236.75L700 165.3V1034.7L200 963.25zM550 800H650V400H550L450 500L350 400H250V800H350L350.5 550L450 650L550 550.55V800z","horizAdvX":"1200"},"file-word-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-2 6v4.989L12 11l-1.99 2L10 8H8v8h2l2-2 2 2h2V8h-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM700 800V550.55L600 650L500.5 550L500 800H400V400H500L600 500L700 400H800V800H700z","horizAdvX":"1200"},"file-word-line":{"path":["M0 0h24v24H0z","M16 8v8h-2l-2-2-2 2H8V8h2v5l2-2 2 2V8h1V4H5v16h14V8h-3zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M800 800V400H700L600 500L500 400H400V800H500V550L600 650L700 550V800H750V1000H250V200H950V800H800zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-zip-fill":{"path":["M0 0h24v24H0z","M10 2v2h2V2h8.007c.548 0 .993.444.993.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2H10zm2 2v2h2V4h-2zm-2 2v2h2V6h-2zm2 2v2h2V8h-2zm-2 2v2h2v-2h-2zm2 2v2h-2v3h4v-5h-2z"],"unicode":"","glyph":"M500 1100V1000H600V1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H500zM600 1000V900H700V1000H600zM500 900V800H600V900H500zM600 800V700H700V800H600zM500 700V600H600V700H500zM600 600V500H500V350H700V600H600z","horizAdvX":"1200"},"file-zip-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zm-5-8v5h-4v-3h2v-2h2zm-2-8h2v2h-2V4zm-2 2h2v2h-2V6zm2 2h2v2h-2V8zm-2 2h2v2h-2v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM700 600V350H500V500H600V600H700zM600 1000H700V900H600V1000zM500 900H600V800H500V900zM600 800H700V700H600V800zM500 700H600V600H500V700z","horizAdvX":"1200"},"film-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v2h2V5H4zm14 0v2h2V5h-2zM4 9v2h2V9H4zm14 0v2h2V9h-2zM4 13v2h2v-2H4zm14 0v2h2v-2h-2zM4 17v2h2v-2H4zm14 0v2h2v-2h-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V850H300V950H200zM900 950V850H1000V950H900zM200 750V650H300V750H200zM900 750V650H1000V750H900zM200 550V450H300V550H200zM900 550V450H1000V550H900zM200 350V250H300V350H200zM900 350V250H1000V350H900z","horizAdvX":"1200"},"film-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM8 5v14h8V5H8zM4 5v2h2V5H4zm14 0v2h2V5h-2zM4 9v2h2V9H4zm14 0v2h2V9h-2zM4 13v2h2v-2H4zm14 0v2h2v-2h-2zM4 17v2h2v-2H4zm14 0v2h2v-2h-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM400 950V250H800V950H400zM200 950V850H300V950H200zM900 950V850H1000V950H900zM200 750V650H300V750H200zM900 750V650H1000V750H900zM200 550V450H300V550H200zM900 550V450H1000V550H900zM200 350V250H300V350H200zM900 350V250H1000V350H900z","horizAdvX":"1200"},"filter-2-fill":{"path":["M0 0h24v24H0z","M10 14L4 5V3h16v2l-6 9v6l-4 2z"],"unicode":"","glyph":"M500 500L200 950V1050H1000V950L700 500V200L500 100z","horizAdvX":"1200"},"filter-2-line":{"path":["M0 0h24v24H0z","M14 14v6l-4 2v-8L4 5V3h16v2l-6 9zM6.404 5L12 13.394 17.596 5H6.404z"],"unicode":"","glyph":"M700 500V200L500 100V500L200 950V1050H1000V950L700 500zM320.2 950L600 530.3L879.8 950H320.2z","horizAdvX":"1200"},"filter-3-fill":{"path":["M0 0h24v24H0z","M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"],"unicode":"","glyph":"M500 300H700V400H500V300zM150 900V800H1050V900H150zM300 550H900V650H300V550z","horizAdvX":"1200"},"filter-3-line":{"path":["M0 0h24v24H0z","M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"],"unicode":"","glyph":"M500 300H700V400H500V300zM150 900V800H1050V900H150zM300 550H900V650H300V550z","horizAdvX":"1200"},"filter-fill":{"path":["M0 0H24V24H0z","M21 4L21 6 20 6 14 15 14 22 10 22 10 15 4 6 3 6 3 4z"],"unicode":"","glyph":"M1050 1000L1050 900L1000 900L700 450L700 100L500 100L500 450L200 900L150 900L150 1000z","horizAdvX":"1200"},"filter-line":{"path":["M0 0H24V24H0z","M21 4v2h-1l-5 7.5V22H9v-8.5L4 6H3V4h18zM6.404 6L11 12.894V20h2v-7.106L17.596 6H6.404z"],"unicode":"","glyph":"M1050 1000V900H1000L750 525V100H450V525L200 900H150V1000H1050zM320.2 900L550 555.3V200H650V555.3L879.8 900H320.2z","horizAdvX":"1200"},"filter-off-fill":{"path":["M0 0H24V24H0z","M6.929.515L21.07 14.657l-1.414 1.414-3.823-3.822L14 15v7h-4v-7L4 6H3V4h4.585l-2.07-2.071L6.929.515zM21 4v2h-1l-1.915 2.872L13.213 4H21z"],"unicode":"","glyph":"M346.45 1174.25L1053.5 467.15L982.8 396.45L791.6499999999999 587.5499999999998L700 450V100H500V450L200 900H150V1000H379.25L275.75 1103.55L346.45 1174.25zM1050 1000V900H1000L904.25 756.4L660.65 1000H1050z","horizAdvX":"1200"},"filter-off-line":{"path":["M0 0H24V24H0z","M6.929.515L21.07 14.657l-1.414 1.414-3.823-3.822L15 13.5V22H9v-8.5L4 6H3V4h4.585l-2.07-2.071L6.929.515zM9.585 6H6.404L11 12.894V20h2v-7.106l1.392-2.087L9.585 6zM21 4v2h-1l-1.915 2.872-1.442-1.443L17.596 6h-2.383l-2-2H21z"],"unicode":"","glyph":"M346.45 1174.25L1053.5 467.15L982.8 396.45L791.6499999999999 587.5499999999998L750 525V100H450V525L200 900H150V1000H379.25L275.75 1103.55L346.45 1174.25zM479.2500000000001 900H320.2L550 555.3V200H650V555.3L719.6 659.65L479.2500000000001 900zM1050 1000V900H1000L904.25 756.4L832.1500000000001 828.55L879.8 900H760.6500000000001L660.6500000000001 1000H1050z","horizAdvX":"1200"},"find-replace-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zM16.659 9A6 6 0 0 0 11 5c-3.315 0-6 2.685-6 6h2a4.001 4.001 0 0 1 5.91-3.515L12 9h4.659zM17 11h-2a4.001 4.001 0 0 1-5.91 3.515L10 13H5.341A6 6 0 0 0 11 17c3.315 0 6-2.685 6-6z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM832.9499999999999 750A300 300 0 0 1 550 950C384.25 950 250 815.75 250 650H350A200.05 200.05 0 0 0 645.5 825.75L600 750H832.9499999999999zM850 650H750A200.05 200.05 0 0 0 454.5 474.25L500 550H267.05A300 300 0 0 1 550 350C715.75 350 850 484.25 850 650z","horizAdvX":"1200"},"find-replace-line":{"path":["M0 0h24v24H0z","M18.033 16.618l4.28 4.281-1.414 1.415-4.28-4.281A8.963 8.963 0 0 1 11 20a8.998 8.998 0 0 1-8.065-5H9l-1.304 2.173A6.972 6.972 0 0 0 11 18a6.977 6.977 0 0 0 4.875-1.975l.15-.15A6.977 6.977 0 0 0 18 11c0-.695-.101-1.366-.29-2h2.067c.146.643.223 1.313.223 2a8.963 8.963 0 0 1-1.967 5.618zM19.065 7H13l1.304-2.173A6.972 6.972 0 0 0 11 4c-3.868 0-7 3.132-7 7 0 .695.101 1.366.29 2H2.223A9.038 9.038 0 0 1 2 11c0-4.973 4.027-9 9-9a8.998 8.998 0 0 1 8.065 5z"],"unicode":"","glyph":"M901.65 369.1L1115.65 155.0500000000002L1044.95 84.3000000000002L830.95 298.3500000000002A448.1499999999999 448.1499999999999 0 0 0 550 200A449.8999999999999 449.8999999999999 0 0 0 146.75 450H450L384.8 341.3499999999999A348.6 348.6 0 0 1 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001A348.84999999999997 348.84999999999997 0 0 1 900 650C900 684.75 894.95 718.3 885.5 750H988.85C996.15 717.8499999999999 1000 684.35 1000 650A448.1499999999999 448.1499999999999 0 0 0 901.65 369.0999999999999zM953.2500000000002 850H650L715.2 958.65A348.6 348.6 0 0 1 550 1000C356.6 1000 200 843.4000000000001 200 650C200 615.25 205.05 581.7 214.5 550H111.15A451.9 451.9 0 0 0 100 650C100 898.65 301.35 1100 550 1100A449.8999999999999 449.8999999999999 0 0 0 953.2499999999998 850z","horizAdvX":"1200"},"finder-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zm-1 2h-8.465c-.69 1.977-1.035 4.644-1.035 8h3c-.115.92-.15 1.878-.107 2.877 1.226-.211 2.704-.777 4.027-1.71l1.135 1.665c-1.642 1.095-3.303 1.779-4.976 2.043.052.37.113.745.184 1.125H20V5zM6.555 14.168l-1.11 1.664C7.602 17.27 9.792 18 12 18v-2c-1.792 0-3.602-.603-5.445-1.832zM17 7c.552 0 1 .448 1 1v1c0 .552-.448 1-1 1s-1-.448-1-1V8c0-.552.448-1 1-1zM7 7c-.552 0-1 .452-1 1v1c0 .552.448 1 1 1s1-.45 1-1V8c0-.552-.448-1-1-1z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H576.75C542.25 851.15 525 717.8 525 550H675C669.25 504 667.5 456.1 669.6500000000001 406.1500000000001C730.95 416.7000000000001 804.85 445 871.0000000000001 491.6500000000001L927.7500000000002 408.4000000000001C845.6500000000002 353.6500000000002 762.6000000000001 319.4500000000002 678.9500000000002 306.2500000000003C681.5500000000002 287.7500000000001 684.6000000000001 269.0000000000001 688.1500000000002 250.0000000000003H1000V950zM327.75 491.6L272.25 408.4000000000001C380.1 336.5 489.6 300 600 300V400C510.4 400 419.9 430.15 327.75 491.6zM850 850C877.6 850 900 827.5999999999999 900 800V750C900 722.4000000000001 877.6 700 850 700S800 722.4000000000001 800 750V800C800 827.5999999999999 822.4 850 850 850zM350 850C322.4000000000001 850 300 827.4 300 800V750C300 722.4000000000001 322.4000000000001 700 350 700S400 722.5 400 750V800C400 827.5999999999999 377.6 850 350 850z","horizAdvX":"1200"},"finder-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zM10.48 4.999L4 5v14h8.746c-.062-.344-.116-.684-.163-1.02-.297.013-.491.02-.583.02-2.208 0-4.398-.73-6.555-2.168l1.11-1.664C8.398 15.397 10.208 16 12 16c.133 0 .265-.003.398-.01-.024-.497-.024-1.41.007-1.99H9.5v-1c0-3.275.32-5.94.98-8.001zm2.12 0C11.935 6.582 11.556 9.41 11.51 12h3.123l-.14 1.124c-.101.805-.137 1.645-.108 2.52 1.013-.3 2.031-.79 3.06-1.476l1.11 1.664c-1.32.88-2.652 1.495-3.993 1.84.057.433.13.876.219 1.327L20 19V5l-7.4-.001zM7 7c.552 0 1 .448 1 1v1c0 .552-.448 1-1 1s-1-.448-1-1V8c0-.552.448-1 1-1zm10 0c.552 0 1 .448 1 1v1c0 .552-.448 1-1 1s-1-.448-1-1V8c0-.552.448-1 1-1z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM524 950.05L200 950V250H637.3000000000001C634.2 267.2000000000001 631.5 284.2000000000001 629.15 301C614.3 300.3499999999999 604.6 300 600 300C489.6 300 380.1 336.5 272.25 408.4L327.7500000000001 491.5999999999999C419.9 430.15 510.4 400 600 400C606.65 400 613.25 400.15 619.9 400.5C618.7 425.35 618.7 471 620.25 500H475V550C475 713.75 491 847 524 950.05zM630.0000000000001 950.05C596.75 870.9000000000001 577.8 729.5 575.5 600H731.65L724.65 543.8C719.5999999999999 503.55 717.8 461.55 719.2499999999999 417.8C769.8999999999999 432.8000000000001 820.7999999999998 457.3000000000001 872.2499999999999 491.6L927.7499999999998 408.4000000000001C861.7499999999998 364.4 795.1499999999997 333.6500000000001 728.0999999999998 316.4C730.9499999999998 294.75 734.5999999999998 272.5999999999999 739.0499999999997 250.0499999999999L1000 250V950L630 950.05zM350 850C377.6 850 400 827.5999999999999 400 800V750C400 722.4000000000001 377.6 700 350 700S300 722.4000000000001 300 750V800C300 827.5999999999999 322.4000000000001 850 350 850zM850 850C877.6 850 900 827.5999999999999 900 800V750C900 722.4000000000001 877.6 700 850 700S800 722.4000000000001 800 750V800C800 827.5999999999999 822.4 850 850 850z","horizAdvX":"1200"},"fingerprint-2-fill":{"path":["M0 0h24v24H0z","M12 1a9 9 0 0 1 9 9v4a8.99 8.99 0 0 1-3.81 7.354c.474-1.522.75-3.131.802-4.797L18 16v-2.001h-2V16l-.003.315a15.932 15.932 0 0 1-1.431 6.315 9.045 9.045 0 0 1-3.574.314 12.935 12.935 0 0 0 2.001-6.52L13 16V9h-2v7l-.004.288a10.95 10.95 0 0 1-2.087 6.167 8.98 8.98 0 0 1-2.626-1.504 7.959 7.959 0 0 0 1.71-4.623L8 16v-6l.005-.2a3.978 3.978 0 0 1 .435-1.625l.114-.207-1.445-1.445a5.969 5.969 0 0 0-1.102 3.18L6 10v6l-.004.225a5.968 5.968 0 0 1-1.121 3.273A8.958 8.958 0 0 1 3 14v-4a9 9 0 0 1 9-9zm0 3c-1.196 0-2.31.35-3.246.953l-.23.156 1.444 1.445a3.977 3.977 0 0 1 1.787-.547L12 6l.2.005a4 4 0 0 1 3.795 3.789L16 10v2h2v-2a6 6 0 0 0-6-6z"],"unicode":"","glyph":"M600 1150A450 450 0 0 0 1050 700V500A449.5 449.5 0 0 0 859.5000000000001 132.3C883.2 208.4 897.0000000000001 288.85 899.6 372.1500000000001L900 400V500.05H800V400L799.85 384.2499999999999A796.5999999999999 796.5999999999999 0 0 0 728.3 68.4999999999998A452.25 452.25 0 0 0 549.5999999999999 52.8A646.7500000000001 646.7500000000001 0 0 1 649.65 378.7999999999999L650 400V750H550V400L549.8000000000001 385.6A547.5 547.5 0 0 0 445.4500000000001 77.25A449 449 0 0 0 314.1500000000001 152.4500000000001A397.95 397.95 0 0 1 399.6500000000001 383.6000000000003L400 400V700L400.2500000000001 710A198.90000000000003 198.90000000000003 0 0 0 422.0000000000001 791.25L427.7000000000001 801.5999999999999L355.4500000000001 873.8499999999999A298.45000000000005 298.45000000000005 0 0 1 300.3500000000001 714.8499999999999L300 700V400L299.8 388.7499999999999A298.40000000000003 298.40000000000003 0 0 0 243.75 225.0999999999999A447.90000000000003 447.90000000000003 0 0 0 150 500V700A450 450 0 0 0 600 1150zM600 1000C540.2 1000 484.5 982.5 437.7 952.35L426.2 944.55L498.4 872.3A198.85 198.85 0 0 0 587.75 899.65L600 900L610 899.75A200 200 0 0 0 799.75 710.3L800 700V600H900V700A300 300 0 0 1 600 1000z","horizAdvX":"1200"},"fingerprint-2-line":{"path":["M0 0h24v24H0z","M12 1a9 9 0 0 1 9 9v4a9 9 0 0 1-12.092 8.455c.128-.177.251-.357.369-.542l.17-.28a10.918 10.918 0 0 0 1.55-5.345L11 16V9h2v7a12.96 12.96 0 0 1-.997 5.001 7.026 7.026 0 0 0 2.27-.378c.442-1.361.693-2.808.724-4.31L15 16v-3.001h2V16c0 1.088-.102 2.153-.298 3.185a6.978 6.978 0 0 0 2.294-4.944L19 14v-4A7 7 0 0 0 7.808 4.394L6.383 2.968A8.962 8.962 0 0 1 12 1zm-5 9a5 5 0 1 1 10 0v1h-2v-1a3 3 0 0 0-5.995-.176L9 10v6c0 1.567-.4 3.04-1.104 4.323l-.024.04c-.23.414-.491.808-.782 1.179a9.03 9.03 0 0 1-1.237-.97l-.309-.3A8.97 8.97 0 0 1 3 14v-4c0-2.125.736-4.078 1.968-5.617l1.426 1.425a6.966 6.966 0 0 0-1.39 3.951L5 10v4c0 1.675.588 3.212 1.57 4.417a6.91 6.91 0 0 0 .426-2.176L7 16v-6z"],"unicode":"","glyph":"M600 1150A450 450 0 0 0 1050 700V500A450 450 0 0 0 445.4 77.25C451.8 86.1000000000001 457.9499999999999 95.1000000000001 463.85 104.3500000000001L472.35 118.3500000000001A545.9 545.9 0 0 1 549.85 385.6000000000002L550 400V750H650V400A648 648 0 0 0 600.15 149.9500000000001A351.3 351.3 0 0 1 713.65 168.8499999999999C735.75 236.9 748.3 309.2499999999999 749.85 384.3499999999999L750 400V550.05H850V400C850 345.5999999999999 844.9 292.35 835.1000000000001 240.7500000000001A348.9 348.9 0 0 1 949.8 487.95L950 500V700A350 350 0 0 1 390.4 980.3L319.15 1051.6A448.1 448.1 0 0 0 600 1150zM350 700A250 250 0 1 0 850 700V650H750V700A150 150 0 0 1 450.25 708.8L450 700V400C450 321.65 430 248 394.8 183.85L393.6 181.85C382.1 161.1499999999999 369.05 141.4500000000001 354.5 122.9000000000001A451.49999999999994 451.49999999999994 0 0 0 292.65 171.4000000000001L277.2 186.4000000000001A448.50000000000006 448.50000000000006 0 0 0 150 500V700C150 806.25 186.8 903.9 248.4 980.85L319.7 909.6A348.3 348.3 0 0 1 250.2 712.05L250 700V500C250 416.25 279.4 339.4 328.5 279.1499999999999A345.5 345.5 0 0 1 349.8 387.9500000000001L350 400V700z","horizAdvX":"1200"},"fingerprint-fill":{"path":["M0 0h24v24H0z","M17 13v1c0 2.77-.664 5.445-1.915 7.846l-.227.42-1.747-.974c1.16-2.08 1.81-4.41 1.882-6.836L15 14v-1h2zm-6-3h2v4l-.005.379a12.941 12.941 0 0 1-2.691 7.549l-.231.29-1.55-1.264a10.944 10.944 0 0 0 2.471-6.588L11 14v-4zm1-4a5 5 0 0 1 5 5h-2a3 3 0 0 0-6 0v3c0 2.235-.82 4.344-2.271 5.977l-.212.23-1.448-1.38a6.969 6.969 0 0 0 1.925-4.524L7 14v-3a5 5 0 0 1 5-5zm0-4a9 9 0 0 1 9 9v3c0 1.698-.202 3.37-.597 4.99l-.139.539-1.93-.526c.392-1.437.613-2.922.658-4.435L19 14v-3A7 7 0 0 0 7.808 5.394L6.383 3.968A8.962 8.962 0 0 1 12 2zM4.968 5.383l1.426 1.425a6.966 6.966 0 0 0-1.39 3.951L5 11 5.004 13c0 1.12-.264 2.203-.762 3.177l-.156.29-1.737-.992c.38-.665.602-1.407.646-2.183L3.004 13v-2a8.94 8.94 0 0 1 1.964-5.617z"],"unicode":"","glyph":"M850 550V500C850 361.5 816.8 227.75 754.25 107.7000000000001L742.9 86.6999999999998L655.5500000000001 135.3999999999999C713.5500000000001 239.3999999999999 746.0500000000001 355.9 749.65 477.1999999999999L750 500V550H850zM550 700H650V500L649.75 481.0500000000001A647.0500000000001 647.0500000000001 0 0 0 515.1999999999999 103.5999999999999L503.6499999999999 89.0999999999999L426.1499999999999 152.3A547.2 547.2 0 0 1 549.6999999999999 481.7L550 500V700zM600 900A250 250 0 0 0 850 650H750A150 150 0 0 1 450 650V500C450 388.25 409 282.8 336.45 201.15L325.85 189.65L253.4500000000001 258.6499999999999A348.45 348.45 0 0 1 349.7000000000001 484.8499999999999L350 500V650A250 250 0 0 0 600 900zM600 1100A450 450 0 0 0 1050 650V500C1050 415.1 1039.8999999999999 331.5 1020.15 250.4999999999999L1013.2 223.5499999999999L916.7 249.8499999999998C936.3 321.6999999999998 947.35 395.9499999999998 949.6 471.5999999999998L950 500V650A350 350 0 0 1 390.4 930.3L319.15 1001.6A448.1 448.1 0 0 0 600 1100zM248.4 930.85L319.7 859.6A348.3 348.3 0 0 1 250.2 662.05L250 650L250.2 550C250.2 494 237 439.85 212.1 391.15L204.3 376.6500000000001L117.45 426.2500000000001C136.45 459.5000000000001 147.55 496.6000000000001 149.75 535.4000000000001L150.2 550V650A447 447 0 0 0 248.4 930.85z","horizAdvX":"1200"},"fingerprint-line":{"path":["M0 0h24v24H0z","M17 13v1c0 2.77-.664 5.445-1.915 7.846l-.227.42-1.747-.974c1.16-2.08 1.81-4.41 1.882-6.836L15 14v-1h2zm-6-3h2v4l-.005.379a12.941 12.941 0 0 1-2.691 7.549l-.231.29-1.55-1.264a10.944 10.944 0 0 0 2.471-6.588L11 14v-4zm1-4a5 5 0 0 1 5 5h-2a3 3 0 0 0-6 0v3c0 2.235-.82 4.344-2.271 5.977l-.212.23-1.448-1.38a6.969 6.969 0 0 0 1.925-4.524L7 14v-3a5 5 0 0 1 5-5zm0-4a9 9 0 0 1 9 9v3c0 1.698-.202 3.37-.597 4.99l-.139.539-1.93-.526c.392-1.437.613-2.922.658-4.435L19 14v-3A7 7 0 0 0 7.808 5.394L6.383 3.968A8.962 8.962 0 0 1 12 2zM4.968 5.383l1.426 1.425a6.966 6.966 0 0 0-1.39 3.951L5 11 5.004 13c0 1.12-.264 2.203-.762 3.177l-.156.29-1.737-.992c.38-.665.602-1.407.646-2.183L3.004 13v-2a8.94 8.94 0 0 1 1.964-5.617z"],"unicode":"","glyph":"M850 550V500C850 361.5 816.8 227.75 754.25 107.7000000000001L742.9 86.6999999999998L655.5500000000001 135.3999999999999C713.5500000000001 239.3999999999999 746.0500000000001 355.9 749.65 477.1999999999999L750 500V550H850zM550 700H650V500L649.75 481.0500000000001A647.0500000000001 647.0500000000001 0 0 0 515.1999999999999 103.5999999999999L503.6499999999999 89.0999999999999L426.1499999999999 152.3A547.2 547.2 0 0 1 549.6999999999999 481.7L550 500V700zM600 900A250 250 0 0 0 850 650H750A150 150 0 0 1 450 650V500C450 388.25 409 282.8 336.45 201.15L325.85 189.65L253.4500000000001 258.6499999999999A348.45 348.45 0 0 1 349.7000000000001 484.8499999999999L350 500V650A250 250 0 0 0 600 900zM600 1100A450 450 0 0 0 1050 650V500C1050 415.1 1039.8999999999999 331.5 1020.15 250.4999999999999L1013.2 223.5499999999999L916.7 249.8499999999998C936.3 321.6999999999998 947.35 395.9499999999998 949.6 471.5999999999998L950 500V650A350 350 0 0 1 390.4 930.3L319.15 1001.6A448.1 448.1 0 0 0 600 1100zM248.4 930.85L319.7 859.6A348.3 348.3 0 0 1 250.2 662.05L250 650L250.2 550C250.2 494 237 439.85 212.1 391.15L204.3 376.6500000000001L117.45 426.2500000000001C136.45 459.5000000000001 147.55 496.6000000000001 149.75 535.4000000000001L150.2 550V650A447 447 0 0 0 248.4 930.85z","horizAdvX":"1200"},"fire-fill":{"path":["M0 0h24v24H0z","M12 23a7.5 7.5 0 0 1-5.138-12.963C8.204 8.774 11.5 6.5 11 1.5c6 4 9 8 3 14 1 0 2.5 0 5-2.47.27.773.5 1.604.5 2.47A7.5 7.5 0 0 1 12 23z"],"unicode":"","glyph":"M600 50A375 375 0 0 0 343.1 698.15C410.2000000000001 761.3000000000001 575 875 550 1125C850 925 1000 725 700 425C750 425 825 425 950 548.5C963.5 509.85 975 468.3 975 425A375 375 0 0 0 600 50z","horizAdvX":"1200"},"fire-line":{"path":["M0 0h24v24H0z","M12 23a7.5 7.5 0 0 0 7.5-7.5c0-.866-.23-1.697-.5-2.47-1.667 1.647-2.933 2.47-3.8 2.47 3.995-7 1.8-10-4.2-14 .5 5-2.796 7.274-4.138 8.537A7.5 7.5 0 0 0 12 23zm.71-17.765c3.241 2.75 3.257 4.887.753 9.274-.761 1.333.202 2.991 1.737 2.991.688 0 1.384-.2 2.119-.595a5.5 5.5 0 1 1-9.087-5.412c.126-.118.765-.685.793-.71.424-.38.773-.717 1.118-1.086 1.23-1.318 2.114-2.78 2.566-4.462z"],"unicode":"","glyph":"M600 50A375 375 0 0 1 975 425C975 468.3 963.5 509.8499999999999 950 548.5C866.6499999999999 466.15 803.35 425 760 425C959.75 775 850 925 550 1125C575 875 410.2000000000001 761.3 343.1 698.15A375 375 0 0 1 600 50zM635.5 938.25C797.5500000000001 800.75 798.35 693.9 673.1500000000001 474.5500000000001C635.1000000000001 407.9000000000001 683.25 325 760 325C794.4000000000001 325 829.1999999999999 335 865.9500000000002 354.75A275 275 0 1 0 411.6000000000002 625.3499999999999C417.9000000000001 631.2499999999999 449.8500000000002 659.5999999999999 451.2500000000001 660.8499999999999C472.4500000000001 679.85 489.9000000000001 696.7 507.1500000000001 715.15C568.6500000000001 781.05 612.85 854.1499999999999 635.4500000000002 938.25z","horizAdvX":"1200"},"firefox-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-1.464.314-2.854.88-4.106.466-.939 1.233-1.874 1.85-2.194-.653 1.283-.973 2.54-1.04 3.383.454-1.5 1.315-2.757 2.52-3.644 2.066-1.519 4.848-1.587 5.956-.62-2.056.707-4.296 3.548-3.803 6.876.08.55.245 1.084.489 1.582-.384-1.01-.418-2.433.202-3.358.692-1.03 1.678-1.248 2.206-1.136-.208-.044-.668.836-.736.991-.173.394-.259.82-.251 1.25a3.395 3.395 0 0 0 1.03 2.38c1.922 1.871 5.023 1.135 6.412-1.002.953-1.471 1.069-3.968-.155-5.952a6.915 6.915 0 0 0-1.084-1.32c-1.85-1.766-4.48-2.57-6.982-2.205-1.106.177-2.047.496-2.824.956C7.755 2.798 9.91 2 12 2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 673.2 115.7 742.6999999999999 144 805.3C167.3 852.25 205.65 899 236.5000000000001 915C203.85 850.8499999999999 187.85 788 184.5 745.8499999999999C207.2 820.8499999999999 250.2500000000001 883.7 310.5000000000001 928.05C413.8 1004 552.9 1007.4 608.3000000000001 959.05C505.5 923.7 393.5 781.65 418.15 615.25C422.15 587.75 430.3999999999999 561.05 442.6 536.15C423.4 586.65 421.7000000000001 657.8 452.7 704.05C487.3 755.55 536.5999999999999 766.4499999999999 563 760.8499999999999C552.6 763.05 529.6 719.05 526.1999999999999 711.3C517.55 691.5999999999999 513.2499999999999 670.3 513.65 648.8A169.75 169.75 0 0 1 565.15 529.8C661.25 436.25 816.3000000000001 473.0500000000001 885.75 579.9000000000001C933.4 653.45 939.2 778.3 877.9999999999999 877.5A345.75 345.75 0 0 1 823.8 943.5C731.3 1031.8 599.8 1072 474.7 1053.75C419.4 1044.9 372.35 1028.95 333.5 1005.95C387.75 1060.1 495.5 1100 600 1100z","horizAdvX":"1200"},"firefox-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-1.464.314-2.854.88-4.106.466-.939 1.233-1.874 1.85-2.194-.653 1.283-.973 2.54-1.04 3.383.454-1.5 1.315-2.757 2.52-3.644 2.066-1.519 4.848-1.587 5.956-.62-2.056.707-4.296 3.548-3.803 6.876.08.55.245 1.084.489 1.582-.384-1.01-.418-2.433.202-3.358.692-1.03 1.678-1.248 2.206-1.136-.208-.044-.668.836-.736.991-.173.394-.259.82-.251 1.25a3.395 3.395 0 0 0 1.03 2.38c1.922 1.871 5.023 1.135 6.412-1.002.953-1.471 1.069-3.968-.155-5.952a6.915 6.915 0 0 0-1.084-1.32c-1.85-1.766-4.48-2.57-6.982-2.205-1.106.177-2.047.496-2.824.956C7.755 2.798 9.91 2 12 2zM6.875 7.705c-2.253.781-3.501 3.17-2.579 6.46a8.004 8.004 0 0 0 7.455 5.831L12 20a8 8 0 0 0 7.985-7.504l.009-.212c-.13.349-.283.674-.463.98l-.14.227c-2.104 3.239-6.681 4.075-9.48 1.348a5.392 5.392 0 0 1-.962-1.257l-.106-.201c-1.736-.387-2.584-1.326-2.543-2.817.027-.991.23-1.96.575-2.86z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 673.2 115.7 742.6999999999999 144 805.3C167.3 852.25 205.65 899 236.5000000000001 915C203.85 850.8499999999999 187.85 788 184.5 745.8499999999999C207.2 820.8499999999999 250.2500000000001 883.7 310.5000000000001 928.05C413.8 1004 552.9 1007.4 608.3000000000001 959.05C505.5 923.7 393.5 781.65 418.15 615.25C422.15 587.75 430.3999999999999 561.05 442.6 536.15C423.4 586.65 421.7000000000001 657.8 452.7 704.05C487.3 755.55 536.5999999999999 766.4499999999999 563 760.8499999999999C552.6 763.05 529.6 719.05 526.1999999999999 711.3C517.55 691.5999999999999 513.2499999999999 670.3 513.65 648.8A169.75 169.75 0 0 1 565.15 529.8C661.25 436.25 816.3000000000001 473.0500000000001 885.75 579.9000000000001C933.4 653.45 939.2 778.3 877.9999999999999 877.5A345.75 345.75 0 0 1 823.8 943.5C731.3 1031.8 599.8 1072 474.7 1053.75C419.4 1044.9 372.35 1028.95 333.5 1005.95C387.75 1060.1 495.5 1100 600 1100zM343.75 814.75C231.1 775.7 168.7 656.25 214.8 491.75A400.20000000000005 400.20000000000005 0 0 1 587.55 200.2000000000001L600 200A400 400 0 0 1 999.25 575.1999999999999L999.7 585.8C993.2 568.3499999999999 985.55 552.1 976.55 536.8L969.55 525.4499999999999C864.3499999999999 363.5 635.4999999999999 321.6999999999998 495.5499999999999 458.0499999999998A269.6 269.6 0 0 0 447.45 520.8999999999999L442.1499999999999 530.9499999999999C355.3499999999999 550.3 312.95 597.2499999999999 314.9999999999999 671.8C316.3499999999999 721.3499999999999 326.5 769.7999999999998 343.7499999999999 814.8z","horizAdvX":"1200"},"first-aid-kit-fill":{"path":["M0 0H24V24H0z","M16 1c.552 0 1 .448 1 1v3h4c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V6c0-.552.448-1 1-1h4V2c0-.552.448-1 1-1h8zm-3 8h-2v3H8v2h2.999L11 17h2l-.001-3H16v-2h-3V9zm2-6H9v2h6V3z"],"unicode":"","glyph":"M800 1150C827.6 1150 850 1127.6 850 1100V950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V900C100 927.6 122.4 950 150 950H350V1100C350 1127.6 372.4000000000001 1150 400 1150H800zM650 750H550V600H400V500H549.95L550 350H650L649.95 500H800V600H650V750zM750 1050H450V950H750V1050z","horizAdvX":"1200"},"first-aid-kit-line":{"path":["M0 0H24V24H0z","M16 1c.552 0 1 .448 1 1v3h4c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V6c0-.552.448-1 1-1h4V2c0-.552.448-1 1-1h8zm4 6H4v12h16V7zm-7 2v3h3v2h-3.001L13 17h-2l-.001-3H8v-2h3V9h2zm2-6H9v2h6V3z"],"unicode":"","glyph":"M800 1150C827.6 1150 850 1127.6 850 1100V950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V900C100 927.6 122.4 950 150 950H350V1100C350 1127.6 372.4000000000001 1150 400 1150H800zM1000 850H200V250H1000V850zM650 750V600H800V500H649.95L650 350H550L549.95 500H400V600H550V750H650zM750 1050H450V950H750V1050z","horizAdvX":"1200"},"flag-2-fill":{"path":["M0 0h24v24H0z","M2 3h19.138a.5.5 0 0 1 .435.748L18 10l3.573 6.252a.5.5 0 0 1-.435.748H4v5H2V3z"],"unicode":"","glyph":"M100 1050H1056.9A25 25 0 0 0 1078.65 1012.6L900 700L1078.65 387.4000000000001A25 25 0 0 0 1056.9 350H200V100H100V1050z","horizAdvX":"1200"},"flag-2-line":{"path":["M0 0h24v24H0z","M4 17v5H2V3h19.138a.5.5 0 0 1 .435.748L18 10l3.573 6.252a.5.5 0 0 1-.435.748H4zM4 5v10h14.554l-2.858-5 2.858-5H4z"],"unicode":"","glyph":"M200 350V100H100V1050H1056.9A25 25 0 0 0 1078.65 1012.6L900 700L1078.65 387.4000000000001A25 25 0 0 0 1056.9 350H200zM200 950V450H927.7L784.8000000000001 700L927.7 950H200z","horizAdvX":"1200"},"flag-fill":{"path":["M0 0h24v24H0z","M3 3h9.382a1 1 0 0 1 .894.553L14 5h6a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-6.382a1 1 0 0 1-.894-.553L12 16H5v6H3V3z"],"unicode":"","glyph":"M150 1050H619.1A50 50 0 0 0 663.8 1022.35L700 950H1000A50 50 0 0 0 1050 900V350A50 50 0 0 0 1000 300H680.9A50 50 0 0 0 636.2 327.6500000000001L600 400H250V100H150V1050z","horizAdvX":"1200"},"flag-line":{"path":["M0 0h24v24H0z","M5 16v6H3V3h9.382a1 1 0 0 1 .894.553L14 5h6a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-6.382a1 1 0 0 1-.894-.553L12 16H5zM5 5v9h8.236l1 2H19V7h-6.236l-1-2H5z"],"unicode":"","glyph":"M250 400V100H150V1050H619.1A50 50 0 0 0 663.8 1022.35L700 950H1000A50 50 0 0 0 1050 900V350A50 50 0 0 0 1000 300H680.9A50 50 0 0 0 636.2 327.6500000000001L600 400H250zM250 950V500H661.8000000000001L711.8000000000001 400H950V850H638.1999999999999L588.1999999999999 950H250z","horizAdvX":"1200"},"flashlight-fill":{"path":["M0 0h24v24H0z","M13 10h7l-9 13v-9H4l9-13z"],"unicode":"","glyph":"M650 700H1000L550 50V500H200L650 1150z","horizAdvX":"1200"},"flashlight-line":{"path":["M0 0h24v24H0z","M13 9h8L11 24v-9H4l9-15v9zm-2 2V7.22L7.532 13H13v4.394L17.263 11H11z"],"unicode":"","glyph":"M650 750H1050L550 0V450H200L650 1200V750zM550 650V839L376.6 550H650V330.3000000000001L863.1500000000001 650H550z","horizAdvX":"1200"},"flask-fill":{"path":["M0 0H24V24H0z","M16 2v2h-1v3.243c0 1.158.251 2.301.736 3.352l4.282 9.276c.347.753.018 1.644-.734 1.99-.197.092-.411.139-.628.139H5.344c-.828 0-1.5-.672-1.5-1.5 0-.217.047-.432.138-.629l4.282-9.276C8.749 9.545 9 8.401 9 7.243V4H8V2h8zm-3 2h-2v4h2V4z"],"unicode":"","glyph":"M800 1100V1000H750V837.8499999999999C750 779.95 762.55 722.8 786.8000000000001 670.25L1000.9 206.4499999999999C1018.2500000000002 168.8 1001.8 124.25 964.2 106.9500000000001C954.35 102.3500000000001 943.6499999999997 100 932.8 100H267.2C225.8 100 192.2 133.6000000000001 192.2 175C192.2 185.8499999999999 194.55 196.5999999999999 199.1 206.4500000000001L413.2 670.25C437.4500000000001 722.75 450 779.95 450 837.8499999999999V1000H400V1100H800zM650 1000H550V800H650V1000z","horizAdvX":"1200"},"flask-line":{"path":["M0 0H24V24H0z","M16 2v2h-1v3.243c0 1.158.251 2.301.736 3.352l4.282 9.276c.347.753.018 1.644-.734 1.99-.197.092-.411.139-.628.139H5.344c-.828 0-1.5-.672-1.5-1.5 0-.217.047-.432.138-.629l4.282-9.276C8.749 9.545 9 8.401 9 7.243V4H8V2h8zm-2.612 8.001h-2.776c-.104.363-.23.721-.374 1.071l-.158.361L6.125 20h11.749l-3.954-8.567c-.214-.464-.392-.943-.532-1.432zM11 7.243c0 .253-.01.506-.029.758h2.058c-.01-.121-.016-.242-.021-.364L13 7.243V4h-2v3.243z"],"unicode":"","glyph":"M800 1100V1000H750V837.8499999999999C750 779.95 762.55 722.8 786.8000000000001 670.25L1000.9 206.4499999999999C1018.2500000000002 168.8 1001.8 124.25 964.2 106.9500000000001C954.35 102.3500000000001 943.6499999999997 100 932.8 100H267.2C225.8 100 192.2 133.6000000000001 192.2 175C192.2 185.8499999999999 194.55 196.5999999999999 199.1 206.4500000000001L413.2 670.25C437.4500000000001 722.75 450 779.95 450 837.8499999999999V1000H400V1100H800zM669.4 699.95H530.6C525.4000000000001 681.8000000000001 519.1 663.9 511.9 646.4000000000001L504 628.35L306.25 200H893.7000000000002L696.0000000000001 628.35C685.3000000000001 651.5500000000001 676.4000000000001 675.5 669.4000000000001 699.95zM550 837.8499999999999C550 825.2 549.5 812.55 548.55 799.9499999999999H651.45C650.95 806 650.65 812.05 650.4 818.1499999999999L650 837.8499999999999V1000H550V837.8499999999999z","horizAdvX":"1200"},"flight-land-fill":{"path":["M0 0h24v24H0z","M10.254 10.47l-.37-8.382 1.933.518 2.81 9.035 5.261 1.41a1.5 1.5 0 1 1-.776 2.898L4.14 11.937l.776-2.898.242.065.914 3.35-2.627-.703a1 1 0 0 1-.74-.983l.09-5.403 1.449.388.914 3.351 5.096 1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M512.6999999999999 676.5L494.2 1095.6L590.85 1069.7L731.35 617.9499999999999L994.4 547.4499999999999A75 75 0 1 0 955.6000000000003 402.55L207 603.15L245.8 748.05L257.9 744.8000000000001L303.6 577.3000000000001L172.25 612.45A50 50 0 0 0 135.25 661.6L139.75 931.75L212.1999999999999 912.35L257.8999999999999 744.8000000000001L512.6999999999999 676.5zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flight-land-line":{"path":["M0 0h24v24H0z","M10.254 10.47l-.37-8.382 1.933.518 2.81 9.035 5.261 1.41a1.5 1.5 0 1 1-.776 2.898L4.14 11.937l.776-2.898.242.065.914 3.35-2.627-.703a1 1 0 0 1-.74-.983l.09-5.403 1.449.388.914 3.351 5.096 1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M512.6999999999999 676.5L494.2 1095.6L590.85 1069.7L731.35 617.9499999999999L994.4 547.4499999999999A75 75 0 1 0 955.6000000000003 402.55L207 603.15L245.8 748.05L257.9 744.8000000000001L303.6 577.3000000000001L172.25 612.45A50 50 0 0 0 135.25 661.6L139.75 931.75L212.1999999999999 912.35L257.8999999999999 744.8000000000001L512.6999999999999 676.5zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flight-takeoff-fill":{"path":["M0 0h24v24H0z","M10.478 11.632L5.968 4.56l1.931-.518 6.951 6.42 5.262-1.41a1.5 1.5 0 0 1 .776 2.898L5.916 15.96l-.776-2.898.241-.065 2.467 2.445-2.626.704a1 1 0 0 1-1.133-.48L1.466 10.94l1.449-.388 2.466 2.445 5.097-1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M523.9 618.4L298.4 972L394.95 997.9L742.5 676.9L1005.6 747.4000000000001A75 75 0 0 0 1044.3999999999999 602.5L295.8 402L257 546.9L269.05 550.1499999999999L392.4000000000001 427.8999999999999L261.1000000000001 392.7A50 50 0 0 0 204.4500000000001 416.7L73.3 653L145.75 672.4L269.05 550.15L523.9000000000001 618.45zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flight-takeoff-line":{"path":["M0 0h24v24H0z","M10.478 11.632L5.968 4.56l1.931-.518 6.951 6.42 5.262-1.41a1.5 1.5 0 0 1 .776 2.898L5.916 15.96l-.776-2.898.241-.065 2.467 2.445-2.626.704a1 1 0 0 1-1.133-.48L1.466 10.94l1.449-.388 2.466 2.445 5.097-1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M523.9 618.4L298.4 972L394.95 997.9L742.5 676.9L1005.6 747.4000000000001A75 75 0 0 0 1044.3999999999999 602.5L295.8 402L257 546.9L269.05 550.1499999999999L392.4000000000001 427.8999999999999L261.1000000000001 392.7A50 50 0 0 0 204.4500000000001 416.7L73.3 653L145.75 672.4L269.05 550.15L523.9000000000001 618.45zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flood-fill":{"path":["M0 0h24v24H0z","M16 17.472A5.978 5.978 0 0 0 20 19h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 12 21a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 4 21H2v-2h2c1.537 0 2.94-.578 4-1.528A5.978 5.978 0 0 0 12 19c1.537 0 2.94-.578 4-1.528zm-3.427-15.94l.1.08L23 11h-3v6a4.992 4.992 0 0 1-4-2 4.99 4.99 0 0 1-4 2 4.992 4.992 0 0 1-4-2 4.99 4.99 0 0 1-4 2l-.001-6H1l10.327-9.388a1 1 0 0 1 1.14-.145l.106.065z"],"unicode":"","glyph":"M800 326.4A298.9 298.9 0 0 1 1000 250H1100V150H1000A398.15 398.15 0 0 0 800 203.5A398.00000000000006 398.00000000000006 0 0 0 600 150A398.15 398.15 0 0 0 400 203.5A398.00000000000006 398.00000000000006 0 0 0 200 150H100V250H200C276.85 250 347 278.9 400 326.4A298.9 298.9 0 0 1 600 250C676.8499999999999 250 747 278.9 800 326.4zM628.65 1123.3999999999999L633.65 1119.3999999999999L1150 650H1000V350A249.60000000000002 249.60000000000002 0 0 0 800 450A249.5 249.5 0 0 0 600 350A249.60000000000002 249.60000000000002 0 0 0 400 450A249.5 249.5 0 0 0 200 350L199.95 650H50L566.35 1119.4A50 50 0 0 0 623.35 1126.65L628.65 1123.4z","horizAdvX":"1200"},"flood-line":{"path":["M0 0h24v24H0z","M16 17.472A5.978 5.978 0 0 0 20 19h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 12 21a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 4 21H2v-2h2c1.537 0 2.94-.578 4-1.528A5.978 5.978 0 0 0 12 19c1.537 0 2.94-.578 4-1.528zm-3.427-15.94l.1.08L23 11h-3v6a5.99 5.99 0 0 1-2-.341V9.157l-6-5.455-6 5.454.001 7.502a5.978 5.978 0 0 1-1.702.335L4 17v-6H1l10.327-9.388a1 1 0 0 1 1.246-.08z"],"unicode":"","glyph":"M800 326.4A298.9 298.9 0 0 1 1000 250H1100V150H1000A398.15 398.15 0 0 0 800 203.5A398.00000000000006 398.00000000000006 0 0 0 600 150A398.15 398.15 0 0 0 400 203.5A398.00000000000006 398.00000000000006 0 0 0 200 150H100V250H200C276.85 250 347 278.9 400 326.4A298.9 298.9 0 0 1 600 250C676.8499999999999 250 747 278.9 800 326.4zM628.65 1123.3999999999999L633.65 1119.3999999999999L1150 650H1000V350A299.50000000000006 299.50000000000006 0 0 0 900 367.0500000000001V742.15L600 1014.9L300 742.2L300.05 367.1000000000002A298.9 298.9 0 0 0 214.95 350.35L200 350V650H50L566.35 1119.4A50 50 0 0 0 628.65 1123.4z","horizAdvX":"1200"},"flow-chart":{"path":["M0 0H24V24H0z","M6 21.5c-1.933 0-3.5-1.567-3.5-3.5s1.567-3.5 3.5-3.5c1.585 0 2.924 1.054 3.355 2.5H15v-2h2V9.242L14.757 7H9V9H3V3h6v2h5.757L18 1.756 22.243 6 19 9.241V15L21 15v6h-6v-2H9.355c-.43 1.446-1.77 2.5-3.355 2.5zm0-5c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm13 .5h-2v2h2v-2zM18 4.586L16.586 6 18 7.414 19.414 6 18 4.586zM7 5H5v2h2V5z"],"unicode":"","glyph":"M300 125C203.35 125 125 203.35 125 300S203.35 475 300 475C379.25 475 446.2 422.3 467.75 350H750V450H850V737.9L737.85 850H450V750H150V1050H450V950H737.85L900 1112.2L1112.1499999999999 900L950 737.95V450L1050 450V150H750V250H467.75C446.2500000000001 177.6999999999999 379.2500000000001 125 300 125zM300 375C258.6 375 225 341.4 225 300S258.6 225 300 225S375 258.6 375 300S341.4000000000001 375 300 375zM950 350H850V250H950V350zM900 970.7L829.3 900L900 829.3L970.7 900L900 970.7zM350 950H250V850H350V950z","horizAdvX":"1200"},"flutter-fill":{"path":["M0 0h24v24H0z","M13.503 2.001l-10 10 3.083 3.083 13.08-13.083h-6.163zm-.006 9.198L8.122 16.62 13.494 22h6.189l-5.387-5.4 5.389-5.4h-6.188z"],"unicode":"","glyph":"M675.15 1099.95L175.15 599.95L329.3 445.8000000000001L983.3 1099.95H675.15zM674.85 640.05L406.1 369L674.7 100H984.15L714.8 369.9999999999999L984.2499999999998 640H674.85z","horizAdvX":"1200"},"flutter-line":{"path":["M0 0h24v24H0z","M14.597 10.684h2.828l-5.657 5.658 5.657 5.656h-2.828L8.94 16.34l5.657-5.657zm-.194-8.68h2.829L5.918 13.318l-1.414-1.414 9.9-9.9z"],"unicode":"","glyph":"M729.85 665.8000000000001H871.25L588.4000000000001 382.9000000000001L871.25 100.1000000000001H729.85L447 383L729.85 665.85zM720.15 1099.8H861.5999999999999L295.9000000000001 534.1L225.2 604.8L720.2 1099.8z","horizAdvX":"1200"},"focus-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.427 0 8-3.573 8-8s-3.573-8-8-8a7.99 7.99 0 0 0-8 8c0 4.427 3.573 8 8 8zm0-2c-3.32 0-6-2.68-6-6s2.68-6 6-6 6 2.68 6 6-2.68 6-6 6zm0-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.35 200 1000 378.65 1000 600S821.35 1000 600 1000A399.5 399.5 0 0 1 200 600C200 378.65 378.6500000000001 200 600 200zM600 300C434 300 300 434 300 600S434 900 600 900S900 766 900 600S766 300 600 300zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"focus-2-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-6a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400zM600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500z","horizAdvX":"1200"},"focus-3-fill":{"path":["M0 0h24v24H0z","M13 1l.001 3.062A8.004 8.004 0 0 1 19.938 11H23v2l-3.062.001a8.004 8.004 0 0 1-6.937 6.937L13 23h-2v-3.062a8.004 8.004 0 0 1-6.938-6.937L1 13v-2h3.062A8.004 8.004 0 0 1 11 4.062V1h2zm-1 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M650 1150L650.05 996.9A400.20000000000005 400.20000000000005 0 0 0 996.9 650H1150V550L996.9 549.95A400.20000000000005 400.20000000000005 0 0 0 650.0499999999998 203.1L650 50H550V203.1A400.20000000000005 400.20000000000005 0 0 0 203.1 549.9500000000002L50 550V650H203.1A400.20000000000005 400.20000000000005 0 0 0 550 996.9V1150H650zM600 700A100 100 0 1 1 600 500A100 100 0 0 1 600 700z","horizAdvX":"1200"},"focus-3-line":{"path":["M0 0h24v24H0z","M13 1l.001 3.062A8.004 8.004 0 0 1 19.938 11H23v2l-3.062.001a8.004 8.004 0 0 1-6.937 6.937L13 23h-2v-3.062a8.004 8.004 0 0 1-6.938-6.937L1 13v-2h3.062A8.004 8.004 0 0 1 11 4.062V1h2zm-1 5a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M650 1150L650.05 996.9A400.20000000000005 400.20000000000005 0 0 0 996.9 650H1150V550L996.9 549.95A400.20000000000005 400.20000000000005 0 0 0 650.0499999999998 203.1L650 50H550V203.1A400.20000000000005 400.20000000000005 0 0 0 203.1 549.9500000000002L50 550V650H203.1A400.20000000000005 400.20000000000005 0 0 0 550 996.9V1150H650zM600 900A300 300 0 1 1 600 300A300 300 0 0 1 600 900zM600 700A100 100 0 1 0 600 500A100 100 0 0 0 600 700z","horizAdvX":"1200"},"focus-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"focus-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-8a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500z","horizAdvX":"1200"},"foggy-fill":{"path":["M0 0h24v24H0z","M1.584 13.007a8 8 0 0 1 14.873-5.908 5.5 5.5 0 0 1 6.52 5.908H1.584zM4 19h17v2H4v-2zm-2-4h21v2H2v-2z"],"unicode":"","glyph":"M79.2 549.65A400 400 0 0 0 822.85 845.05A275 275 0 0 0 1148.85 549.65H79.2zM200 250H1050V150H200V250zM100 450H1150V350H100V450z","horizAdvX":"1200"},"foggy-line":{"path":["M0 0h24v24H0z","M1.584 13.007a8 8 0 0 1 14.873-5.908 5.5 5.5 0 0 1 6.52 5.908h-2.013A3.5 3.5 0 0 0 15 10.05V10a6 6 0 1 0-11.193 3.007H1.584zM4 19h17v2H4v-2zm-2-4h21v2H2v-2z"],"unicode":"","glyph":"M79.2 549.65A400 400 0 0 0 822.85 845.05A275 275 0 0 0 1148.85 549.65H1048.1999999999998A175 175 0 0 1 750 697.5V700A300 300 0 1 1 190.35 549.65H79.2zM200 250H1050V150H200V250zM100 450H1150V350H100V450z","horizAdvX":"1200"},"folder-2-fill":{"path":["M0 0h24v24H0z","M22 11v9a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9h20zm0-2H2V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v3z"],"unicode":"","glyph":"M1100 650V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V650H1100zM1100 750H100V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V750z","horizAdvX":"1200"},"folder-2-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM20 11H4v8h16v-8zm0-2V7h-8.414l-2-2H4v4h16z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM1000 650H200V250H1000V650zM1000 750V850H579.3000000000001L479.3 950H200V750H1000z","horizAdvX":"1200"},"folder-3-fill":{"path":["M0 0h24v24H0z","M22 8v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7h19a1 1 0 0 1 1 1zm-9.586-3H2V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M1100 800V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V850H1050A50 50 0 0 0 1100 800zM620.6999999999999 950H100V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950z","horizAdvX":"1200"},"folder-3-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 7v12h16V7H4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 850V250H1000V850H200z","horizAdvX":"1200"},"folder-4-fill":{"path":["M0 0h24v24H0z","M8 21V11h14v9a1 1 0 0 1-1 1H8zm-2 0H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v3H7a1 1 0 0 0-1 1v11z"],"unicode":"","glyph":"M400 150V650H1100V200A50 50 0 0 0 1050 150H400zM300 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V750H350A50 50 0 0 1 300 700V150z","horizAdvX":"1200"},"folder-4-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM8 19h12v-8H8v8zm-2 0v-9a1 1 0 0 1 1-1h13V7h-8.414l-2-2H4v14h2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM400 250H1000V650H400V250zM300 250V700A50 50 0 0 0 350 750H1000V850H579.3000000000001L479.3 950H200V250H300z","horizAdvX":"1200"},"folder-5-fill":{"path":["M0 0h24v24H0z","M13.414 5H20a1 1 0 0 1 1 1v1H3V4a1 1 0 0 1 1-1h7.414l2 2zM3.087 9h17.826a1 1 0 0 1 .997 1.083l-.834 10a1 1 0 0 1-.996.917H3.92a1 1 0 0 1-.996-.917l-.834-10A1 1 0 0 1 3.087 9z"],"unicode":"","glyph":"M670.6999999999999 950H1000A50 50 0 0 0 1050 900V850H150V1000A50 50 0 0 0 200 1050H570.6999999999999L670.6999999999999 950zM154.35 750H1045.65A50 50 0 0 0 1095.5 695.8499999999999L1053.8 195.8500000000001A50 50 0 0 0 1004.0000000000002 150H196A50 50 0 0 0 146.2 195.8500000000001L104.5 695.8500000000001A50 50 0 0 0 154.35 750z","horizAdvX":"1200"},"folder-5-line":{"path":["M0 0h24v24H0z","M3.087 9h17.826a1 1 0 0 1 .997 1.083l-.834 10a1 1 0 0 1-.996.917H3.92a1 1 0 0 1-.996-.917l-.834-10A1 1 0 0 1 3.087 9zM4.84 19h14.32l.666-8H4.174l.666 8zm8.574-14H20a1 1 0 0 1 1 1v1H3V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M154.35 750H1045.65A50 50 0 0 0 1095.5 695.8499999999999L1053.8 195.8500000000001A50 50 0 0 0 1004.0000000000002 150H196A50 50 0 0 0 146.2 195.8500000000001L104.5 695.8500000000001A50 50 0 0 0 154.35 750zM242 250H958L991.3 650H208.7L242.0000000000001 250zM670.6999999999999 950H1000A50 50 0 0 0 1050 900V850H150V1000A50 50 0 0 0 200 1050H570.6999999999999L670.6999999999999 950z","horizAdvX":"1200"},"folder-add-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 12H8v2h3v3h2v-3h3v-2h-3V9h-2v3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 600H400V500H550V350H650V500H800V600H650V750H550V600z","horizAdvX":"1200"},"folder-add-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 7V9h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 600V750H650V600H800V500H650V350H550V500H400V600H550z","horizAdvX":"1200"},"folder-chart-2-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM12 9a4 4 0 1 0 4 4h-4V9z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM600 750A200 200 0 1 1 800 550H600V750z","horizAdvX":"1200"},"folder-chart-2-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm8 4v4h4a4 4 0 1 1-4-4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM600 750V550H800A200 200 0 1 0 600 750z","horizAdvX":"1200"},"folder-chart-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 9v8h2V9h-2zm4 3v5h2v-5h-2zm-8 2v3h2v-3H7z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 750V350H650V750H550zM750 600V350H850V600H750zM350 500V350H450V500H350z","horizAdvX":"1200"},"folder-chart-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 4h2v8h-2V9zm4 3h2v5h-2v-5zm-8 2h2v3H7v-3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 750H650V350H550V750zM750 600H850V350H750V600zM350 500H450V350H350V500z","horizAdvX":"1200"},"folder-download-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM13 13V9h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM650 550V750H550V550H400L600 350L800 550H650z","horizAdvX":"1200"},"folder-download-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm9 8h3l-4 4-4-4h3V9h2v4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM650 550H800L600 350L400 550H550V750H650V550z","horizAdvX":"1200"},"folder-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950z","horizAdvX":"1200"},"folder-forbid-fill":{"path":["M0 0h24v24H0z","M22 11.255A7 7 0 0 0 12.255 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v5.255zM18 22a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M1100 637.25A350 350 0 0 1 612.75 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V637.25zM900 100A250 250 0 1 0 900 600A250 250 0 0 0 900 100zM835.35 214.6000000000001A150 150 0 0 1 1035.4 414.6500000000001L835.35 214.6500000000001zM764.6000000000001 285.35L964.65 485.35A150 150 0 0 1 764.6000000000001 285.3z","horizAdvX":"1200"},"folder-forbid-line":{"path":["M0 0h24v24H0z","M22 11.255a6.972 6.972 0 0 0-2-.965V7h-8.414l-2-2H4v14h7.29c.215.722.543 1.396.965 2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v5.255zM18 22a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M1100 637.25A348.6 348.6 0 0 1 1000 685.5V850H579.3000000000001L479.3 950H200V250H564.5C575.25 213.9 591.6499999999999 180.1999999999999 612.75 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V637.25zM900 100A250 250 0 1 0 900 600A250 250 0 0 0 900 100zM835.35 214.6000000000001A150 150 0 0 1 1035.4 414.6500000000001L835.35 214.6500000000001zM764.6000000000001 285.35L964.65 485.35A150 150 0 0 1 764.6000000000001 285.3z","horizAdvX":"1200"},"folder-history-fill":{"path":["M0 0L24 0 24 24 0 24z","M10.414 3l2 2H21c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7.414zM13 9h-2v6h5v-2h-3V9z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H520.6999999999999zM650 750H550V450H800V550H650V750z","horizAdvX":"1200"},"folder-history-line":{"path":["M0 0L24 0 24 24 0 24z","M10.414 3l2 2H21c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7.414zm-.828 2H4v14h16V7h-8.414l-2-2zM13 9v4h3v2h-5V9h2z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H520.6999999999999zM479.3 950H200V250H1000V850H579.3000000000001L479.3 950zM650 750V550H800V450H550V750H650z","horizAdvX":"1200"},"folder-info-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 9v2h2V9h-2zm0 3v5h2v-5h-2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 750V650H650V750H550zM550 600V350H650V600H550z","horizAdvX":"1200"},"folder-info-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 7h2v5h-2v-5zm0-3h2v2h-2V9z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 600H650V350H550V600zM550 750H650V650H550V750z","horizAdvX":"1200"},"folder-keyhole-fill":{"path":["M0 0h24v24H0z","M10.414 3l2 2H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414zM12 9a2 2 0 0 0-1 3.732V17h2l.001-4.268A2 2 0 0 0 12 9z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999zM600 750A100 100 0 0 1 550 563.4000000000001V350H650L650.05 563.4000000000001A100 100 0 0 1 600 750z","horizAdvX":"1200"},"folder-keyhole-line":{"path":["M0 0h24v24H0z","M10.414 3l2 2H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414zm-.828 2H4v14h16V7h-8.414l-2-2zM12 9a2 2 0 0 1 1.001 3.732L13 17h-2v-4.268A2 2 0 0 1 12 9z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999zM479.3 950H200V250H1000V850H579.3000000000001L479.3 950zM600 750A100 100 0 0 0 650.05 563.4000000000001L650 350H550V563.4000000000001A100 100 0 0 0 600 750z","horizAdvX":"1200"},"folder-line":{"path":["M0 0h24v24H0z","M4 5v14h16V7h-8.414l-2-2H4zm8.414 0H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M200 950V250H1000V850H579.3000000000001L479.3 950H200zM620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950z","horizAdvX":"1200"},"folder-lock-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM15 13v-1a3 3 0 0 0-6 0v1H8v4h8v-4h-1zm-2 0h-2v-1a1 1 0 0 1 2 0v1z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM750 550V600A150 150 0 0 1 450 600V550H400V350H800V550H750zM650 550H550V600A50 50 0 0 0 650 600V550z","horizAdvX":"1200"},"folder-lock-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm11 8h1v4H8v-4h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM750 550H800V350H400V550H450V600A150 150 0 0 0 750 600V550zM650 550V600A50 50 0 0 1 550 600V550H650z","horizAdvX":"1200"},"folder-music-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 13.05a2.5 2.5 0 1 0 2 2.45V11h3V9h-5v4.05z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 547.5A125 125 0 1 1 650 425V650H800V750H550V547.5z","horizAdvX":"1200"},"folder-music-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 8.05V9h5v2h-3v4.5a2.5 2.5 0 1 1-2-2.45z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 547.5V750H800V650H650V425A125 125 0 1 0 550 547.5z","horizAdvX":"1200"},"folder-open-fill":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H20a1 1 0 0 1 1 1v3H4v9.996L6 11h16.5l-2.31 9.243a1 1 0 0 1-.97.757H3z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1000A50 50 0 0 0 1050 900V750H200V250.2L300 650H1125L1009.5000000000002 187.8499999999999A50 50 0 0 0 961.0000000000002 149.9999999999998H150z","horizAdvX":"1200"},"folder-open-line":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H20a1 1 0 0 1 1 1v3h-2V7h-7.414l-2-2H4v11.998L5.5 11h17l-2.31 9.243a1 1 0 0 1-.97.757H3zm16.938-8H7.062l-1.5 6h12.876l1.5-6z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1000A50 50 0 0 0 1050 900V750H950V850H579.3000000000001L479.3 950H200V350.1000000000002L275 650H1125L1009.5000000000002 187.8499999999999A50 50 0 0 0 961.0000000000002 149.9999999999998H150zM996.9 550H353.1L278.1 250H921.9L996.9 550z","horizAdvX":"1200"},"folder-received-fill":{"path":["M0 0h24v24H0z","M22 13.126A6 6 0 0 0 13.303 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7.126zM20 17h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M1100 543.7A300 300 0 0 1 665.1500000000001 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V543.6999999999999zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"folder-received-line":{"path":["M0 0h24v24H0z","M22 13h-2V7h-8.414l-2-2H4v14h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7zm-2 4h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M1100 550H1000V850H579.3000000000001L479.3 950H200V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V550zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"folder-reduce-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM8 12v2h8v-2H8z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM400 600V500H800V600H400z","horizAdvX":"1200"},"folder-reduce-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4 7h8v2H8v-2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM400 600H800V500H400V600z","horizAdvX":"1200"},"folder-settings-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zm-3.823 8.809l-.991.572 1 1.731.991-.572c.393.371.872.653 1.405.811v1.145h1.999V16.35a3.495 3.495 0 0 0 1.404-.811l.991.572 1-1.73-.991-.573a3.508 3.508 0 0 0 0-1.622l.99-.573-.999-1.73-.992.572a3.495 3.495 0 0 0-1.404-.812V8.5h-1.999v1.144a3.495 3.495 0 0 0-1.404.812L8.6 9.883 7.6 11.615l.991.572a3.508 3.508 0 0 0 0 1.622zm3.404.688a1.5 1.5 0 1 1 0-2.998 1.5 1.5 0 0 1 0 2.998z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM429.55 509.5500000000001L380 480.95L430 394.4000000000001L479.55 423C499.2 404.4500000000001 523.15 390.3500000000002 549.8 382.4500000000001V325.2000000000001H649.75V382.4999999999999A174.75000000000003 174.75000000000003 0 0 1 719.9499999999999 423.05L769.4999999999999 394.45L819.5 480.95L769.95 509.6A175.4 175.4 0 0 1 769.95 590.7L819.4499999999999 619.35L769.4999999999999 705.85L719.9 677.2500000000001A174.75000000000003 174.75000000000003 0 0 1 649.7 717.8500000000001V775H549.75V717.8A174.75000000000003 174.75000000000003 0 0 1 479.55 677.2L430 705.85L380 619.25L429.55 590.65A175.4 175.4 0 0 1 429.55 509.5500000000001zM599.75 475.15A75 75 0 1 0 599.75 625.0500000000001A75 75 0 0 0 599.75 475.15z","horizAdvX":"1200"},"folder-settings-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4.591 8.809a3.508 3.508 0 0 1 0-1.622l-.991-.572 1-1.732.991.573a3.495 3.495 0 0 1 1.404-.812V8.5h2v1.144c.532.159 1.01.44 1.403.812l.992-.573 1 1.731-.991.573a3.508 3.508 0 0 1 0 1.622l.991.572-1 1.731-.991-.572a3.495 3.495 0 0 1-1.404.811v1.145h-2V16.35a3.495 3.495 0 0 1-1.404-.811l-.991.572-1-1.73.991-.573zm3.404.688a1.5 1.5 0 1 0 0-2.998 1.5 1.5 0 0 0 0 2.998z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM429.5500000000001 509.5500000000001A175.4 175.4 0 0 0 429.5500000000001 590.65L380.0000000000001 619.25L430.0000000000001 705.8499999999999L479.5500000000001 677.1999999999999A174.75000000000003 174.75000000000003 0 0 0 549.75 717.8V775H649.75V717.8C676.35 709.8499999999999 700.25 695.8 719.9000000000001 677.2L769.5 705.85L819.5 619.3000000000001L769.95 590.65A175.4 175.4 0 0 0 769.95 509.5500000000001L819.5 480.95L769.5 394.4000000000001L719.95 423A174.75000000000003 174.75000000000003 0 0 0 649.75 382.4500000000001V325.2000000000001H549.75V382.4999999999999A174.75000000000003 174.75000000000003 0 0 0 479.5500000000001 423.05L430.0000000000001 394.45L380.0000000000001 480.95L429.5500000000001 509.6zM599.75 475.15A75 75 0 1 1 599.75 625.0500000000001A75 75 0 0 1 599.75 475.15z","horizAdvX":"1200"},"folder-shared-fill":{"path":["M0 0h24v24H0z","M22 13.126A6 6 0 0 0 13.303 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7.126zM18 17v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M1100 543.7A300 300 0 0 1 665.1500000000001 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V543.6999999999999zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"folder-shared-line":{"path":["M0 0h24v24H0z","M22 13h-2V7h-8.414l-2-2H4v14h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7zm-4 4v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M1100 550H1000V850H579.3000000000001L479.3 950H200V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V550zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"folder-shield-2-fill":{"path":["M0 0h24v24H0z","M22 10H12v7.382c0 1.409.632 2.734 1.705 3.618H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v4zm-8 2h8v5.382c0 .897-.446 1.734-1.187 2.23L18 21.499l-2.813-1.885A2.685 2.685 0 0 1 14 17.383V12z"],"unicode":"","glyph":"M1100 700H600V330.9000000000001C600 260.4500000000002 631.6 194.2000000000001 685.25 150.0000000000002H150A50 50 0 0 0 100 200.0000000000002V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V700zM700 600H1100V330.9000000000001C1100 286.0500000000002 1077.6999999999998 244.2000000000001 1040.6499999999999 219.4000000000001L900 125.05L759.35 219.3000000000002A134.25 134.25 0 0 0 700 330.85V600z","horizAdvX":"1200"},"folder-shield-2-line":{"path":["M0 0h24v24H0z","M22 9h-2V7h-8.414l-2-2H4v14h7.447a4.97 4.97 0 0 0 1.664 2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v3zm-9 2h9v5.949c0 .99-.501 1.916-1.336 2.465L17.5 21.498l-3.164-2.084A2.953 2.953 0 0 1 13 16.95V11zm2 5.949c0 .316.162.614.436.795l2.064 1.36 2.064-1.36a.954.954 0 0 0 .436-.795V13h-5v3.949z"],"unicode":"","glyph":"M1100 750H1000V850H579.3000000000001L479.3 950H200V250H572.3499999999999A248.49999999999997 248.49999999999997 0 0 1 655.55 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V750zM650 650H1100V352.5500000000001C1100 303.0500000000002 1074.95 256.7500000000001 1033.2 229.3000000000001L875 125.0999999999999L716.8000000000001 229.3A147.64999999999998 147.64999999999998 0 0 0 650 352.5V650zM750 352.5500000000001C750 336.7500000000001 758.1 321.85 771.8 312.8L875 244.8000000000001L978.2 312.8A47.699999999999996 47.699999999999996 0 0 1 1000 352.5500000000001V550H750V352.5500000000001z","horizAdvX":"1200"},"folder-shield-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM8 9v4.904c0 .892.446 1.724 1.187 2.219L12 17.998l2.813-1.875A2.667 2.667 0 0 0 16 13.904V9H8zm2 4.904V11h4v2.904a.667.667 0 0 1-.297.555L12 15.594l-1.703-1.135a.667.667 0 0 1-.297-.555z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM400 750V504.8C400 460.2 422.3 418.6 459.35 393.8499999999999L600 300.0999999999999L740.65 393.8499999999999A133.35 133.35 0 0 1 800 504.8V750H400zM500 504.8V650H700V504.8A33.349999999999994 33.349999999999994 0 0 0 685.15 477.0500000000001L600 420.3000000000001L514.85 477.0500000000001A33.349999999999994 33.349999999999994 0 0 0 500 504.8z","horizAdvX":"1200"},"folder-shield-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4 4h8v4.904c0 .892-.446 1.724-1.187 2.219L12 17.998l-2.813-1.875A2.667 2.667 0 0 1 8 13.904V9zm2 4.904c0 .223.111.431.297.555L12 15.594l1.703-1.135a.667.667 0 0 0 .297-.555V11h-4v2.904z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM400 750H800V504.8C800 460.2 777.7 418.6 740.65 393.8499999999999L600 300.0999999999999L459.35 393.8499999999999A133.35 133.35 0 0 0 400 504.8V750zM500 504.8C500 493.65 505.55 483.25 514.85 477.0500000000001L600 420.3000000000001L685.15 477.0500000000001A33.349999999999994 33.349999999999994 0 0 1 700 504.8V650H500V504.8z","horizAdvX":"1200"},"folder-transfer-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM12 12H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM600 600H400V500H600V350L800 550L600 750V600z","horizAdvX":"1200"},"folder-transfer-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm8 7V9l4 4-4 4v-3H8v-2h4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM600 600V750L800 550L600 350V500H400V600H600z","horizAdvX":"1200"},"folder-unknow-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 16v2h2v-2h-2zm-2.433-5.187l1.962.393A1.5 1.5 0 1 1 12 13h-1v2h1a3.5 3.5 0 1 0-3.433-4.187z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 400V300H650V400H550zM428.35 659.35L526.45 639.7A75 75 0 1 0 600 550H550V450H600A175 175 0 1 1 428.35 659.35z","horizAdvX":"1200"},"folder-unknow-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 11h2v2h-2v-2zm-2.433-5.187A3.501 3.501 0 1 1 12 15h-1v-2h1a1.5 1.5 0 1 0-1.471-1.794l-1.962-.393z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 400H650V300H550V400zM428.35 659.35A175.04999999999998 175.04999999999998 0 1 0 600 450H550V550H600A75 75 0 1 1 526.45 639.7L428.35 659.35z","horizAdvX":"1200"},"folder-upload-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM13 13h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM650 550H800L600 750L400 550H550V350H650V550z","horizAdvX":"1200"},"folder-upload-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm9 8v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM650 550V350H550V550H400L600 750L800 550H650z","horizAdvX":"1200"},"folder-user-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM12 13a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm-4 5h8a4 4 0 1 0-8 0z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM600 550A125 125 0 1 1 600 800A125 125 0 0 1 600 550zM400 300H800A200 200 0 1 1 400 300z","horizAdvX":"1200"},"folder-user-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4 13a4 4 0 1 1 8 0H8zm4-5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM400 300A200 200 0 1 0 800 300H400zM600 550A125 125 0 1 0 600 800A125 125 0 0 0 600 550z","horizAdvX":"1200"},"folder-warning-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 9v5h2V9h-2zm0 6v2h2v-2h-2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 750V500H650V750H550zM550 450V350H650V450H550z","horizAdvX":"1200"},"folder-warning-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 10h2v2h-2v-2zm0-6h2v5h-2V9z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 450H650V350H550V450zM550 750H650V500H550V750z","horizAdvX":"1200"},"folder-zip-fill":{"path":["M0 0h24v24H0z","M21 5a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H16v2h2V5h3zm-3 8h-2v2h-2v3h4v-5zm-2-2h-2v2h2v-2zm2-2h-2v2h2V9zm-2-2h-2v2h2V7z"],"unicode":"","glyph":"M1050 950A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H800V850H900V950H1050zM900 550H800V450H700V300H900V550zM800 650H700V550H800V650zM900 750H800V650H900V750zM800 850H700V750H800V850z","horizAdvX":"1200"},"folder-zip-line":{"path":["M0 0h24v24H0z","M10.414 3l2 2H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414zM18 18h-4v-3h2v-2h-2v-2h2V9h-2V7h-2.414l-2-2H4v14h16V7h-4v2h2v2h-2v2h2v5z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999zM900 300H700V450H800V550H700V650H800V750H700V850H579.3000000000001L479.3 950H200V250H1000V850H800V750H900V650H800V550H900V300z","horizAdvX":"1200"},"folders-fill":{"path":["M0 0h24v24H0z","M6 7V4a1 1 0 0 1 1-1h6.414l2 2H21a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3zm0 2H4v10h12v-2H6V9z"],"unicode":"","glyph":"M300 850V1000A50 50 0 0 0 350 1050H670.6999999999999L770.6999999999999 950H1050A50 50 0 0 0 1100 900V400A50 50 0 0 0 1050 350H900V200A50 50 0 0 0 850 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H300zM300 750H200V250H800V350H300V750z","horizAdvX":"1200"},"folders-line":{"path":["M0 0h24v24H0z","M6 7V4a1 1 0 0 1 1-1h6.414l2 2H21a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3zm0 2H4v10h12v-2H6V9zm2-4v10h12V7h-5.414l-2-2H8z"],"unicode":"","glyph":"M300 850V1000A50 50 0 0 0 350 1050H670.6999999999999L770.6999999999999 950H1050A50 50 0 0 0 1100 900V400A50 50 0 0 0 1050 350H900V200A50 50 0 0 0 850 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H300zM300 750H200V250H800V350H300V750zM400 950V450H1000V850H729.3000000000001L629.3000000000001 950H400z","horizAdvX":"1200"},"font-color":{"path":["M0 0h24v24H0z","M15.246 14H8.754l-1.6 4H5l6-15h2l6 15h-2.154l-1.6-4zm-.8-2L12 5.885 9.554 12h4.892zM3 20h18v2H3v-2z"],"unicode":"","glyph":"M762.3000000000001 500H437.7L357.7 300H250L550 1050H650L950 300H842.3L762.3000000000001 500zM722.3 600L600 905.75L477.7 600H722.3000000000001zM150 200H1050V100H150V200z","horizAdvX":"1200"},"font-size-2":{"path":["M0 0h24v24H0z","M10 6v15H8V6H2V4h14v2h-6zm8 8v7h-2v-7h-3v-2h8v2h-3z"],"unicode":"","glyph":"M500 900V150H400V900H100V1000H800V900H500zM900 500V150H800V500H650V600H1050V500H900z","horizAdvX":"1200"},"font-size":{"path":["M0 0h24v24H0z","M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M562.3000000000001 450H237.7L137.7 200H30L350 1000H450L770 200H662.3000000000001L562.3000000000001 450zM522.3 550L400 855.75L277.7 550H522.3000000000001zM1050 573.25V600H1150V200H1050V226.75A200 200 0 1 0 1050 573.25zM950 300A100 100 0 1 1 950 500A100 100 0 0 1 950 300z","horizAdvX":"1200"},"football-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm1.67 14h-3.34l-1.38 1.897.554 1.706A7.993 7.993 0 0 0 12 20c.871 0 1.71-.14 2.496-.397l.553-1.706L13.669 16zm-8.376-5.128l-1.292.937L4 12c0 1.73.549 3.331 1.482 4.64h1.91l1.323-1.82-1.028-3.17-2.393-.778zm13.412 0l-2.393.778-1.028 3.17 1.322 1.82h1.91A7.964 7.964 0 0 0 20 12l-.003-.191-1.291-.937zM14.29 4.333L13 5.273V7.79l2.694 1.957 2.239-.727.554-1.703a8.014 8.014 0 0 0-4.196-2.984zm-4.582 0a8.014 8.014 0 0 0-4.196 2.985l.554 1.702 2.239.727L11 7.79V5.273l-1.291-.94z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM683.5 400H516.5L447.5 305.1500000000001L475.2 219.8500000000001A399.65000000000003 399.65000000000003 0 0 1 600 200C643.5500000000001 200 685.5 207 724.8000000000001 219.8499999999999L752.45 305.1499999999999L683.45 400zM264.7000000000001 656.4L200.1 609.5500000000001L200 600C200 513.5 227.45 433.4500000000001 274.1 368H369.6L435.75 459L384.35 617.5L264.7 656.4zM935.3000000000002 656.4L815.6500000000001 617.5L764.2500000000001 459L830.3500000000001 368H925.8500000000003A398.20000000000005 398.20000000000005 0 0 1 1000 600L999.85 609.5500000000001L935.3 656.4zM714.5 983.35L650 936.35V810.5L784.6999999999999 712.65L896.65 749L924.35 834.1500000000001A400.69999999999993 400.69999999999993 0 0 1 714.55 983.35zM485.3999999999999 983.35A400.69999999999993 400.69999999999993 0 0 1 275.5999999999999 834.1L303.3 749L415.25 712.65L550 810.5V936.35L485.45 983.35z","horizAdvX":"1200"},"football-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm1.67 14h-3.34l-1.38 1.897.554 1.706A7.993 7.993 0 0 0 12 20c.871 0 1.71-.14 2.496-.397l.553-1.706L13.669 16zm-8.376-5.128l-1.292.937L4 12c0 1.73.549 3.331 1.482 4.64h1.91l1.323-1.82-1.028-3.17-2.393-.778zm13.412 0l-2.393.778-1.028 3.17 1.322 1.82h1.91A7.964 7.964 0 0 0 20 12l-.003-.19-1.291-.938zM12 9.536l-2.344 1.702.896 2.762h2.895l.896-2.762L12 9.536zm2.291-5.203L13 5.273V7.79l2.694 1.957 2.239-.727.554-1.703a8.014 8.014 0 0 0-4.196-2.984zm-4.583 0a8.014 8.014 0 0 0-4.195 2.985l.554 1.702 2.239.727L11 7.79V5.273l-1.292-.94z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM683.5 400H516.5L447.5 305.1500000000001L475.2 219.8500000000001A399.65000000000003 399.65000000000003 0 0 1 600 200C643.5500000000001 200 685.5 207 724.8000000000001 219.8499999999999L752.45 305.1499999999999L683.45 400zM264.7000000000001 656.4L200.1 609.5500000000001L200 600C200 513.5 227.45 433.4500000000001 274.1 368H369.6L435.75 459L384.35 617.5L264.7 656.4zM935.3000000000002 656.4L815.6500000000001 617.5L764.2500000000001 459L830.3500000000001 368H925.8500000000003A398.20000000000005 398.20000000000005 0 0 1 1000 600L999.85 609.5L935.3 656.4zM600 723.2L482.8 638.1L527.6 500H672.35L717.1500000000001 638.1L600 723.2zM714.5500000000001 983.35L650 936.35V810.5L784.6999999999999 712.65L896.65 749L924.35 834.1500000000001A400.69999999999993 400.69999999999993 0 0 1 714.55 983.35zM485.4 983.35A400.69999999999993 400.69999999999993 0 0 1 275.65 834.1L303.35 749L415.3000000000001 712.65L550 810.5V936.35L485.4 983.35z","horizAdvX":"1200"},"footprint-fill":{"path":["M0 0h24v24H0z","M4 18h5.5v1.25a2.75 2.75 0 1 1-5.5 0V18zM8 6.12c2 0 3 2.88 3 4.88 0 1-.5 2-1 3.5L9.5 16H4c0-1-.5-2.5-.5-5S5.498 6.12 8 6.12zm12.054 7.978l-.217 1.231a2.75 2.75 0 0 1-5.417-.955l.218-1.23 5.416.954zM18.178 1.705c2.464.434 4.018 3.124 3.584 5.586-.434 2.463-1.187 3.853-1.36 4.838l-5.417-.955-.232-1.564c-.232-1.564-.55-2.636-.377-3.62.347-1.97 1.832-4.632 3.802-4.285z"],"unicode":"","glyph":"M200 300H475V237.5A137.5 137.5 0 1 0 200 237.5V300zM400 894C500 894 550 750 550 650C550 600 525 550 500 475L475 400H200C200 450 175 525 175 650S274.9000000000001 894 400 894zM1002.7 495.1L991.8500000000003 433.5500000000001A137.5 137.5 0 0 0 721.0000000000002 481.3000000000001L731.9000000000002 542.8000000000001L1002.7 495.1zM908.9 1114.75C1032.1 1093.05 1109.8000000000002 958.55 1088.1 835.45C1066.3999999999999 712.3 1028.75 642.8 1020.1 593.55L749.2500000000001 641.3L737.6500000000001 719.5C726.0500000000002 797.6999999999999 710.1500000000001 851.3 718.8000000000001 900.5C736.1500000000001 999 810.4000000000001 1132.1 908.9 1114.75z","horizAdvX":"1200"},"footprint-line":{"path":["M0 0h24v24H0z","M4 18h5.5v1.25a2.75 2.75 0 1 1-5.5 0V18zm4.058-4l.045-.132C8.87 11.762 9 11.37 9 11c0-.75-.203-1.643-.528-2.273C8.23 8.257 8.06 8.12 8 8.12 6.72 8.12 5.5 9.484 5.5 11c0 .959.075 1.773.227 2.758l.038.242h2.293zM8 6.12c2 0 3 2.88 3 4.88 0 1-.5 2-1 3.5L9.5 16H4c0-1-.5-2.5-.5-5S5.498 6.12 8 6.12zm12.054 7.978l-.217 1.231a2.75 2.75 0 0 1-5.417-.955l.218-1.23 5.416.954zm-1.05-4.246c.165-.5.301-.895.303-.9.202-.658.361-1.303.485-2.008.263-1.492-.702-3.047-1.962-3.27-.059-.01-.25.095-.57.515-.43.565-.784 1.41-.915 2.147-.058.33-.049.405.27 2.263.045.256.082.486.116.717l.02.138 2.254.398zm-.826-8.147c2.464.434 4.018 3.124 3.584 5.586-.434 2.463-1.187 3.853-1.36 4.838l-5.417-.955-.232-1.564c-.232-1.564-.55-2.636-.377-3.62.347-1.97 1.832-4.632 3.802-4.285z"],"unicode":"","glyph":"M200 300H475V237.5A137.5 137.5 0 1 0 200 237.5V300zM402.9 500L405.15 506.6C443.5 611.9 450 631.5 450 650C450 687.5 439.85 732.1500000000001 423.6 763.65C411.5 787.1500000000001 403 794 400 794C336 794 275 725.8 275 650C275 602.0500000000001 278.75 561.35 286.35 512.1L288.25 500H402.9zM400 894C500 894 550 750 550 650C550 600 525 550 500 475L475 400H200C200 450 175 525 175 650S274.9000000000001 894 400 894zM1002.7 495.1L991.8500000000003 433.5500000000001A137.5 137.5 0 0 0 721.0000000000002 481.3000000000001L731.9000000000002 542.8000000000001L1002.7 495.1zM950.2 707.4000000000001C958.45 732.4000000000001 965.25 752.1500000000001 965.3500000000003 752.4000000000001C975.4500000000002 785.3000000000001 983.4 817.5500000000001 989.6000000000003 852.8000000000001C1002.7500000000002 927.4 954.5000000000002 1005.15 891.5000000000001 1016.3C888.5500000000001 1016.8 879.0000000000001 1011.55 863.0000000000001 990.55C841.5000000000001 962.3000000000002 823.8000000000002 920.05 817.2500000000001 883.2C814.3500000000001 866.7 814.8000000000002 862.95 830.7500000000001 770.0500000000001C833.0000000000002 757.25 834.8500000000001 745.75 836.5500000000001 734.2L837.5500000000001 727.3000000000001L950.2500000000002 707.4000000000001zM908.9 1114.75C1032.1 1093.0500000000002 1109.8000000000002 958.55 1088.1 835.45C1066.3999999999999 712.3000000000002 1028.75 642.8000000000001 1020.1 593.5500000000001L749.2500000000001 641.3000000000001L737.6500000000001 719.5000000000001C726.0500000000002 797.7 710.1500000000001 851.3000000000002 718.8000000000001 900.5000000000001C736.1500000000001 999.0000000000002 810.4000000000001 1132.1000000000001 908.9 1114.7500000000002z","horizAdvX":"1200"},"forbid-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.891-13.477a6.04 6.04 0 0 0-1.414-1.414l-8.368 8.368a6.04 6.04 0 0 0 1.414 1.414l8.368-8.368z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM844.55 773.85A301.99999999999994 301.99999999999994 0 0 1 773.8499999999999 844.55L355.45 426.15A301.99999999999994 301.99999999999994 0 0 1 426.1499999999999 355.45L844.55 773.8499999999999z","horizAdvX":"1200"},"forbid-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm4.891-11.477l-8.368 8.368a6.04 6.04 0 0 1-1.414-1.414l8.368-8.368a6.04 6.04 0 0 1 1.414 1.414z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM844.55 773.85L426.1499999999999 355.4500000000001A301.99999999999994 301.99999999999994 0 0 0 355.45 426.1500000000001L773.8499999999999 844.5500000000001A301.99999999999994 301.99999999999994 0 0 0 844.55 773.8500000000001z","horizAdvX":"1200"},"forbid-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM8.523 7.109A6.04 6.04 0 0 0 7.11 8.523l8.368 8.368a6.04 6.04 0 0 0 1.414-1.414L8.523 7.109z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM426.15 844.55A301.99999999999994 301.99999999999994 0 0 1 355.5 773.85L773.9000000000001 355.4500000000001A301.99999999999994 301.99999999999994 0 0 1 844.6000000000001 426.1500000000001L426.15 844.55z","horizAdvX":"1200"},"forbid-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM8.523 7.109l8.368 8.368a6.04 6.04 0 0 1-1.414 1.414L7.109 8.523A6.04 6.04 0 0 1 8.523 7.11z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM426.15 844.55L844.55 426.15A301.99999999999994 301.99999999999994 0 0 0 773.8499999999999 355.45L355.45 773.85A301.99999999999994 301.99999999999994 0 0 0 426.15 844.5z","horizAdvX":"1200"},"format-clear":{"path":["M0 0h24v24H0z","M12.651 14.065L11.605 20H9.574l1.35-7.661-7.41-7.41L4.93 3.515 20.485 19.07l-1.414 1.414-6.42-6.42zm-.878-6.535l.27-1.53h-1.8l-2-2H20v2h-5.927L13.5 9.257 11.773 7.53z"],"unicode":"","glyph":"M632.55 496.75L580.25 200H478.7L546.1999999999999 583.05L175.7 953.55L246.5 1024.25L1024.25 246.5L953.55 175.8L632.55 496.8zM588.65 823.5L602.15 900H512.15L412.1499999999999 1000H1000V900H703.65L675 737.1500000000001L588.65 823.5z","horizAdvX":"1200"},"fridge-fill":{"path":["M0 0H24V24H0z","M20 12v10c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V12h16zM9 14H7v5h2v-5zM19 1c.552 0 1 .448 1 1v8H4V2c0-.552.448-1 1-1h14zM9 4H7v4h2V4z"],"unicode":"","glyph":"M1000 600V100C1000 72.4000000000001 977.6 50 950 50H250C222.4 50 200 72.4000000000001 200 100V600H1000zM450 500H350V250H450V500zM950 1150C977.6 1150 1000 1127.6 1000 1100V700H200V1100C200 1127.6 222.4 1150 250 1150H950zM450 1000H350V800H450V1000z","horizAdvX":"1200"},"fridge-line":{"path":["M0 0H24V24H0z","M19 1c.552 0 1 .448 1 1v20c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V2c0-.552.448-1 1-1h14zm-1 11H6v9h12v-9zm-8 2v4H8v-4h2zm8-11H6v7h12V3zm-8 2v3H8V5h2z"],"unicode":"","glyph":"M950 1150C977.6 1150 1000 1127.6 1000 1100V100C1000 72.4000000000001 977.6 50 950 50H250C222.4 50 200 72.4000000000001 200 100V1100C200 1127.6 222.4 1150 250 1150H950zM900 600H300V150H900V600zM500 500V300H400V500H500zM900 1050H300V700H900V1050zM500 950V800H400V950H500z","horizAdvX":"1200"},"fullscreen-exit-fill":{"path":["M0 0h24v24H0z","M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"],"unicode":"","glyph":"M900 850H1100V750H800V1050H900V850zM400 750H100V850H300V1050H400V750zM900 350V150H800V450H1100V350H900zM400 450V150H300V350H100V450H400z","horizAdvX":"1200"},"fullscreen-exit-line":{"path":["M0 0h24v24H0z","M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"],"unicode":"","glyph":"M900 850H1100V750H800V1050H900V850zM400 750H100V850H300V1050H400V750zM900 350V150H800V450H1100V350H900zM400 450V150H300V350H100V450H400z","horizAdvX":"1200"},"fullscreen-fill":{"path":["M0 0h24v24H0z","M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"],"unicode":"","glyph":"M800 1050H1100V750H1000V950H800V1050zM100 1050H400V950H200V750H100V1050zM1000 250V450H1100V150H800V250H1000zM200 250H400V150H100V450H200V250z","horizAdvX":"1200"},"fullscreen-line":{"path":["M0 0h24v24H0z","M20 3h2v6h-2V5h-4V3h4zM4 3h4v2H4v4H2V3h2zm16 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"],"unicode":"","glyph":"M1000 1050H1100V750H1000V950H800V1050H1000zM200 1050H400V950H200V750H100V1050H200zM1000 250V450H1100V150H800V250H1000zM200 250H400V150H100V450H200V250z","horizAdvX":"1200"},"function-fill":{"path":["M0 0h24v24H0z","M3 3h8v8H3V3zm0 10h8v8H3v-8zM13 3h8v8h-8V3zm0 10h8v8h-8v-8z"],"unicode":"","glyph":"M150 1050H550V650H150V1050zM150 550H550V150H150V550zM650 1050H1050V650H650V1050zM650 550H1050V150H650V550z","horizAdvX":"1200"},"function-line":{"path":["M0 0h24v24H0z","M3 3h8v8H3V3zm0 10h8v8H3v-8zM13 3h8v8h-8V3zm0 10h8v8h-8v-8zm2-8v4h4V5h-4zm0 10v4h4v-4h-4zM5 5v4h4V5H5zm0 10v4h4v-4H5z"],"unicode":"","glyph":"M150 1050H550V650H150V1050zM150 550H550V150H150V550zM650 1050H1050V650H650V1050zM650 550H1050V150H650V550zM750 950V750H950V950H750zM750 450V250H950V450H750zM250 950V750H450V950H250zM250 450V250H450V450H250z","horizAdvX":"1200"},"functions":{"path":["M0 0h24v24H0z","M5 18l7.68-6L5 6V4h14v2H8.263L16 12l-7.737 6H19v2H5v-2z"],"unicode":"","glyph":"M250 300L634 600L250 900V1000H950V900H413.15L800 600L413.15 300H950V200H250V300z","horizAdvX":"1200"},"funds-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.793 6.793l-2.45 2.45-2.121-2.122-4.243 4.243 1.414 1.414 2.829-2.828 2.121 2.121 3.864-3.864L18 13V8h-5l1.793 1.793z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM739.65 710.35L617.15 587.85L511.1 693.95L298.95 481.8000000000001L369.6499999999999 411.1L511.1 552.5L617.15 446.4500000000001L810.35 639.65L900 550V800H650L739.65 710.35z","horizAdvX":"1200"},"funds-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.793 6.793L13 8h5v5l-1.793-1.793-3.864 3.864-2.121-2.121-2.829 2.828-1.414-1.414 4.243-4.243 2.121 2.122 2.45-2.45z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM739.65 710.35L650 800H900V550L810.35 639.65L617.15 446.45L511.1 552.5L369.6499999999999 411.1L298.95 481.8L511.1 693.95L617.15 587.85L739.65 710.35z","horizAdvX":"1200"},"funds-fill":{"path":["M0 0h24v24H0z","M3.897 17.86l3.91-3.91 2.829 2.828 4.571-4.57L17 14V9h-5l1.793 1.793-3.157 3.157-2.828-2.829-4.946 4.946A9.965 9.965 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.987 9.987 0 0 1-8.103-4.14z"],"unicode":"","glyph":"M194.85 307L390.35 502.5L531.8000000000001 361.1L760.35 589.6000000000001L850 500V750H600L689.65 660.35L531.8 502.5L390.4 643.95L143.1 396.65A498.24999999999994 498.24999999999994 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A499.3500000000001 499.3500000000001 0 0 0 194.85 307z","horizAdvX":"1200"},"funds-line":{"path":["M0 0h24v24H0z","M4.406 14.523l3.402-3.402 2.828 2.829 3.157-3.157L12 9h5v5l-1.793-1.793-4.571 4.571-2.828-2.828-2.475 2.474a8 8 0 1 0-.927-1.9zm-1.538 1.558l-.01-.01.004-.004A9.965 9.965 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10c-4.07 0-7.57-2.43-9.132-5.919z"],"unicode":"","glyph":"M220.3 473.85L390.4 643.95L531.8 502.5L689.65 660.35L600 750H850V500L760.35 589.65L531.8000000000001 361.1L390.4000000000001 502.5L266.6500000000001 378.8000000000001A400 400 0 1 1 220.3000000000001 473.8000000000001zM143.4 395.9500000000001L142.9 396.4500000000001L143.1 396.6500000000002A498.24999999999994 498.24999999999994 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100C396.5 100 221.5 221.5 143.4 395.9500000000001z","horizAdvX":"1200"},"gallery-fill":{"path":["M0 0h24v24H0z","M17.409 19c-.776-2.399-2.277-3.885-4.266-5.602A10.954 10.954 0 0 1 20 11V3h1.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2v4H4v7c5.22 0 9.662 2.462 11.313 7h2.096zM18 1v4h-8V3h6V1h2zm-1.5 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M870.4499999999999 250C831.65 369.9500000000001 756.5999999999999 444.25 657.15 530.1A547.7 547.7 0 0 0 1000 650V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400V950H200V600C460.9999999999999 600 683.1 476.9 765.65 250H870.4499999999999zM900 1150V950H500V1050H800V1150H900zM825 700A75 75 0 1 0 825 850A75 75 0 0 0 825 700z","horizAdvX":"1200"},"gallery-line":{"path":["M0 0h24v24H0z","M20 13c-1.678 0-3.249.46-4.593 1.259A14.984 14.984 0 0 1 18.147 19H20v-6zm-3.996 6C14.044 14.302 9.408 11 4 11v8h12.004zM4 9c3.83 0 7.323 1.435 9.974 3.796A10.949 10.949 0 0 1 20 11V3h1.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2v4H4v4zm14-8v4h-8V3h6V1h2zm-1.5 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M1000 550C916.1 550 837.5500000000001 527 770.35 487.05A749.2 749.2 0 0 0 907.35 250H1000V550zM800.2 250C702.2 484.9 470.4 650 200 650V250H800.1999999999999zM200 750C391.5 750 566.15 678.25 698.7 560.2A547.4499999999999 547.4499999999999 0 0 0 1000 650V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400V950H200V750zM900 1150V950H500V1050H800V1150H900zM825 700A75 75 0 1 0 825 850A75 75 0 0 0 825 700z","horizAdvX":"1200"},"gallery-upload-fill":{"path":["M0 0h24v24H0z","M8 1v2h8V1h2v2h3.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2zm4 7l-4 4h3v4h2v-4h3l-4-4z"],"unicode":"","glyph":"M400 1150V1050H800V1150H900V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400zM600 800L400 600H550V400H650V600H800L600 800z","horizAdvX":"1200"},"gallery-upload-line":{"path":["M0 0h24v24H0z","M8 1v4H4v14h16V3h1.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2zm4 7l4 4h-3v4h-2v-4H8l4-4zm6-7v4h-8V3h6V1h2z"],"unicode":"","glyph":"M400 1150V950H200V250H1000V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400zM600 800L800 600H650V400H550V600H400L600 800zM900 1150V950H500V1050H800V1150H900z","horizAdvX":"1200"},"game-fill":{"path":["M0 0h24v24H0z","M12 2a9.98 9.98 0 0 1 7.743 3.671L13.414 12l6.329 6.329A9.98 9.98 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 3a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100A499 499 0 0 0 987.15 916.45L670.6999999999999 600L987.15 283.55A499 499 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 950A75 75 0 1 1 600 800A75 75 0 0 1 600 950z","horizAdvX":"1200"},"game-line":{"path":["M0 0h24v24H0z","M12 2a9.98 9.98 0 0 1 7.743 3.671L13.414 12l6.329 6.329A9.98 9.98 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 2a8 8 0 1 0 4.697 14.477l.208-.157-6.32-6.32 6.32-6.321-.208-.156a7.964 7.964 0 0 0-4.394-1.517L12 4zm0 1a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100A499 499 0 0 0 987.15 916.45L670.6999999999999 600L987.15 283.55A499 499 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 834.8499999999999 276.15L845.2499999999999 284L529.2499999999999 600L845.2499999999999 916.05L834.8499999999999 923.85A398.20000000000005 398.20000000000005 0 0 1 615.15 999.7L600 1000zM600 950A75 75 0 1 0 600 800A75 75 0 0 0 600 950z","horizAdvX":"1200"},"gamepad-fill":{"path":["M0 0h24v24H0z","M17 4a6 6 0 0 1 6 6v4a6 6 0 0 1-6 6H7a6 6 0 0 1-6-6v-4a6 6 0 0 1 6-6h10zm-7 5H8v2H6v2h1.999L8 15h2l-.001-2H12v-2h-2V9zm8 4h-2v2h2v-2zm-2-4h-2v2h2V9z"],"unicode":"","glyph":"M850 1000A300 300 0 0 0 1150 700V500A300 300 0 0 0 850 200H350A300 300 0 0 0 50 500V700A300 300 0 0 0 350 1000H850zM500 750H400V650H300V550H399.9500000000001L400 450H500L499.95 550H600V650H500V750zM900 550H800V450H900V550zM800 750H700V650H800V750z","horizAdvX":"1200"},"gamepad-line":{"path":["M0 0h24v24H0z","M17 4a6 6 0 0 1 6 6v4a6 6 0 0 1-6 6H7a6 6 0 0 1-6-6v-4a6 6 0 0 1 6-6h10zm0 2H7a4 4 0 0 0-3.995 3.8L3 10v4a4 4 0 0 0 3.8 3.995L7 18h10a4 4 0 0 0 3.995-3.8L21 14v-4a4 4 0 0 0-3.8-3.995L17 6zm-7 3v2h2v2H9.999L10 15H8l-.001-2H6v-2h2V9h2zm8 4v2h-2v-2h2zm-2-4v2h-2V9h2z"],"unicode":"","glyph":"M850 1000A300 300 0 0 0 1150 700V500A300 300 0 0 0 850 200H350A300 300 0 0 0 50 500V700A300 300 0 0 0 350 1000H850zM850 900H350A200 200 0 0 1 150.25 710L150 700V500A200 200 0 0 1 340 300.25L350 300H850A200 200 0 0 1 1049.75 490L1050 500V700A200 200 0 0 1 860 899.75L850 900zM500 750V650H600V550H499.95L500 450H400L399.95 550H300V650H400V750H500zM900 550V450H800V550H900zM800 750V650H700V750H800z","horizAdvX":"1200"},"gas-station-fill":{"path":["M0 0h24v24H0z","M3 19V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1zM5 5v6h7V5H5z"],"unicode":"","glyph":"M150 250V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150zM250 950V650H600V950H250z","horizAdvX":"1200"},"gas-station-line":{"path":["M0 0h24v24H0z","M14 19h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5zm-9 0h7v-6H5v6zM5 5v6h7V5H5z"],"unicode":"","glyph":"M700 250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250zM250 250H600V550H250V250zM250 950V650H600V950H250z","horizAdvX":"1200"},"gatsby-fill":{"path":["M0 0h24v24H0z","M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM6.429 17.571c-1.5-1.5-2.286-3.5-2.286-5.428l7.786 7.714c-2-.071-4-.786-5.5-2.286zm7.285 2.072l-9.357-9.357c.786-3.5 3.929-6.143 7.643-6.143 2.643 0 4.929 1.286 6.357 3.214l-1.071.929C16.07 6.643 14.143 5.57 12 5.57c-2.786 0-5.143 1.786-6.071 4.286l8.214 8.214c2.071-.714 3.643-2.5 4.143-4.642h-3.429V12h5c0 3.714-2.643 6.857-6.143 7.643z"],"unicode":"","glyph":"M600 1100C325 1100 100 875 100 600S325 100 600 100S1100 325 1100 600S875 1100 600 1100zM321.45 321.45C246.45 396.45 207.15 496.4499999999999 207.15 592.8499999999999L596.45 207.1500000000001C496.45 210.7000000000002 396.45 246.4500000000001 321.45 321.4500000000001zM685.7 217.8499999999999L217.8500000000001 685.6999999999999C257.1500000000001 860.6999999999999 414.3000000000001 992.85 600 992.85C732.1500000000001 992.85 846.45 928.55 917.85 832.1499999999999L864.2999999999998 785.6999999999999C803.5 867.85 707.1500000000001 921.5 600 921.5C460.7 921.5 342.85 832.2 296.45 707.2L707.1500000000001 296.5C810.7000000000002 332.2 889.3000000000001 421.5 914.3 528.5999999999999H742.85V600H992.85C992.85 414.3 860.6999999999999 257.1500000000001 685.6999999999999 217.8499999999999z","horizAdvX":"1200"},"gatsby-line":{"path":["M0 0h24v24H0z","M11.751 21.997c-5.221-.128-9.45-4.257-9.736-9.438l-.012-.313 9.748 9.751zM12 2a9.988 9.988 0 0 1 8.193 4.265l-1.638 1.148A8.003 8.003 0 0 0 4.534 9.12L14.88 19.466A8.018 8.018 0 0 0 19.748 14H15.5v-2H22c0 4.726-3.279 8.686-7.685 9.73L2.269 9.686C3.314 5.28 7.274 2 12 2z"],"unicode":"","glyph":"M587.55 100.1500000000001C326.5 106.55 115.05 312.9999999999999 100.7499999999999 572.0500000000001L100.1499999999999 587.7L587.5499999999998 100.1500000000001zM600 1100A499.4 499.4 0 0 0 1009.6499999999997 886.75L927.75 829.35A400.15000000000003 400.15000000000003 0 0 1 226.7 744L744 226.7A400.90000000000003 400.90000000000003 0 0 1 987.4 500H775V600H1100C1100 363.7000000000001 936.05 165.7000000000001 715.7500000000001 113.5L113.45 715.7C165.7 936 363.7 1100 600 1100z","horizAdvX":"1200"},"genderless-fill":{"path":["M0 0h24v24H0z","M11 7.066V1h2v6.066A7.501 7.501 0 0 1 12 22a7.5 7.5 0 0 1-1-14.934z"],"unicode":"","glyph":"M550 846.7V1150H650V846.7A375.04999999999995 375.04999999999995 0 0 0 600 100A375 375 0 0 0 550 846.7z","horizAdvX":"1200"},"genderless-line":{"path":["M0 0h24v24H0z","M13 7.066A7.501 7.501 0 0 1 12 22a7.5 7.5 0 0 1-1-14.934V1h2v6.066zM12 20a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M650 846.7A375.04999999999995 375.04999999999995 0 0 0 600 100A375 375 0 0 0 550 846.7V1150H650V846.7zM600 200A275 275 0 1 1 600 750A275 275 0 0 1 600 200z","horizAdvX":"1200"},"ghost-2-fill":{"path":["M0 0h24v24H0z","M12 2c3.5 0 6 3 7 6 3 1 4 3.73 4 6l-2.775.793a1 1 0 0 0-.725.961v1.496A1.75 1.75 0 0 1 17.75 19h-.596a2 2 0 0 0-1.668.896C14.558 21.3 13.396 22 12 22c-1.396 0-2.558-.701-3.486-2.104A2 2 0 0 0 6.846 19H6.25a1.75 1.75 0 0 1-1.75-1.75v-1.496a1 1 0 0 0-.725-.961L1 14c0-2.266 1-5 4-6 1-3 3.5-6 7-6zm0 10c-.828 0-1.5 1.12-1.5 2.5S11.172 17 12 17s1.5-1.12 1.5-2.5S12.828 12 12 12zM9.5 8a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100C775 1100 900 950 950 800C1100 750 1150 613.5 1150 500L1011.2500000000002 460.35A50 50 0 0 1 975 412.3000000000001V337.5A87.5 87.5 0 0 0 887.5 250H857.7A100 100 0 0 1 774.3000000000001 205.1999999999999C727.9 135 669.8000000000001 100 600 100C530.1999999999999 100 472.1 135.05 425.7 205.1999999999999A100 100 0 0 1 342.3 250H312.5A87.5 87.5 0 0 0 225 337.5V412.3000000000001A50 50 0 0 1 188.75 460.35L50 500C50 613.3 100 750 250 800C300 950 425 1100 600 1100zM600 600C558.6 600 525 544 525 475S558.6 350 600 350S675 406 675 475S641.4 600 600 600zM475 800A75 75 0 1 1 475 650A75 75 0 0 1 475 800zM725 800A75 75 0 1 1 725 650A75 75 0 0 1 725 800z","horizAdvX":"1200"},"ghost-2-line":{"path":["M0 0h24v24H0z","M12 2c3.5 0 6 3 7 6 3 1 4 3.73 4 6l-2.775.793a1 1 0 0 0-.725.961v1.496A1.75 1.75 0 0 1 17.75 19h-.596a2 2 0 0 0-1.668.896C14.558 21.3 13.396 22 12 22c-1.396 0-2.558-.701-3.486-2.104A2 2 0 0 0 6.846 19H6.25a1.75 1.75 0 0 1-1.75-1.75v-1.496a1 1 0 0 0-.725-.961L1 14c0-2.266 1-5 4-6 1-3 3.5-6 7-6zm0 2C9.89 4 7.935 5.788 6.989 8.371l-.092.261-.316.95-.949.315c-1.255.419-2.067 1.341-2.424 2.56l-.023.086 1.14.327a3 3 0 0 1 2.17 2.703l.005.181V17h.346a4 4 0 0 1 3.2 1.6l.136.192C10.758 19.663 11.316 20 12 20c.638 0 1.167-.293 1.703-1.04l.115-.168a4 4 0 0 1 3.1-1.785l.236-.007h.346v-1.246a3 3 0 0 1 2.003-2.83l.173-.054 1.139-.327-.023-.087c-.337-1.151-1.08-2.037-2.22-2.484l-.204-.075-.95-.316-.315-.949C16.195 5.91 14.18 4 12 4zm0 8c.828 0 1.5 1.12 1.5 2.5S12.828 17 12 17s-1.5-1.12-1.5-2.5.672-2.5 1.5-2.5zM9.5 8a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100C775 1100 900 950 950 800C1100 750 1150 613.5 1150 500L1011.2500000000002 460.35A50 50 0 0 1 975 412.3000000000001V337.5A87.5 87.5 0 0 0 887.5 250H857.7A100 100 0 0 1 774.3000000000001 205.1999999999999C727.9 135 669.8000000000001 100 600 100C530.1999999999999 100 472.1 135.05 425.7 205.1999999999999A100 100 0 0 1 342.3 250H312.5A87.5 87.5 0 0 0 225 337.5V412.3000000000001A50 50 0 0 1 188.75 460.35L50 500C50 613.3 100 750 250 800C300 950 425 1100 600 1100zM600 1000C494.5 1000 396.75 910.6 349.45 781.45L344.85 768.4000000000001L329.05 720.9000000000001L281.6 705.1500000000001C218.85 684.2 178.25 638.1000000000001 160.4 577.1500000000001L159.25 572.85L216.25 556.5A150 150 0 0 0 324.75 421.35L325 412.3000000000001V350H342.3A200 200 0 0 0 502.3 269.9999999999999L509.0999999999999 260.3999999999999C537.9 216.85 565.8000000000001 200 600 200C631.9 200 658.35 214.65 685.15 252L690.9 260.3999999999999A200 200 0 0 0 845.9 349.65L857.7 350H875V412.3000000000001A150 150 0 0 0 975.15 553.8000000000001L983.8 556.5L1040.75 572.85L1039.6 577.2C1022.7499999999998 634.75 985.5999999999998 679.05 928.6 701.4000000000001L918.4 705.15L870.9 720.95L855.1499999999999 768.4000000000001C809.75 904.5 709 1000 600 1000zM600 600C641.4 600 675 544 675 475S641.4 350 600 350S525 406 525 475S558.6 600 600 600zM475 800A75 75 0 1 0 475 650A75 75 0 0 0 475 800zM725 800A75 75 0 1 0 725 650A75 75 0 0 0 725 800z","horizAdvX":"1200"},"ghost-fill":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm0 10c-1.105 0-2 1.12-2 2.5s.895 2.5 2 2.5 2-1.12 2-2.5-.895-2.5-2-2.5zM9.5 8a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM600 600C544.75 600 500 544 500 475S544.75 350 600 350S700 406 700 475S655.25 600 600 600zM475 800A75 75 0 1 1 475 650A75 75 0 0 1 475 800zM725 800A75 75 0 1 1 725 650A75 75 0 0 1 725 800z","horizAdvX":"1200"},"ghost-line":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm0 2a7 7 0 0 0-6.996 6.76L5 11v7.446l.002.138a1.5 1.5 0 0 0 2.645.88l.088-.116a2 2 0 0 1 3.393.142.999.999 0 0 0 1.74.003 2 2 0 0 1 3.296-.278l.097.13a1.5 1.5 0 0 0 2.733-.701L19 18.5V11a7 7 0 0 0-7-7zm0 8c1.105 0 2 1.12 2 2.5s-.895 2.5-2 2.5-2-1.12-2-2.5.895-2.5 2-2.5zM9.5 8a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM600 1000A350 350 0 0 1 250.2 662L250 650V277.7000000000001L250.1 270.8000000000001A75 75 0 0 1 382.35 226.8000000000001L386.75 232.6A100 100 0 0 0 556.4 225.5000000000001A49.95 49.95 0 0 1 643.4 225.35A100 100 0 0 0 808.2 239.25L813.0500000000002 232.75A75 75 0 0 1 949.7000000000002 267.8000000000001L950 275V650A350 350 0 0 1 600 1000zM600 600C655.25 600 700 544 700 475S655.25 350 600 350S500 406 500 475S544.75 600 600 600zM475 800A75 75 0 1 0 475 650A75 75 0 0 0 475 800zM725 800A75 75 0 1 0 725 650A75 75 0 0 0 725 800z","horizAdvX":"1200"},"ghost-smile-fill":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm4 11h-2a2 2 0 0 1-3.995.15L10 13H8l.005.2a4 4 0 0 0 7.99 0L16 13zm-4-6a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM800 550H700A100 100 0 0 0 500.2499999999999 542.5L500 550H400L400.2500000000001 540A200 200 0 0 1 799.75 540L800 550zM600 850A100 100 0 1 1 600 650A100 100 0 0 1 600 850z","horizAdvX":"1200"},"ghost-smile-line":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm0 2a7 7 0 0 0-6.996 6.76L5 11v7.446l.002.138a1.5 1.5 0 0 0 2.645.88l.088-.116a2 2 0 0 1 3.393.142.999.999 0 0 0 1.74.003 2 2 0 0 1 3.296-.278l.097.13a1.5 1.5 0 0 0 2.733-.701L19 18.5V11a7 7 0 0 0-7-7zm4 9a4 4 0 0 1-7.995.2L8 13h2a2 2 0 1 0 4 0h2zm-4-6a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM600 1000A350 350 0 0 1 250.2 662L250 650V277.7000000000001L250.1 270.8000000000001A75 75 0 0 1 382.35 226.8000000000001L386.75 232.6A100 100 0 0 0 556.4 225.5000000000001A49.95 49.95 0 0 1 643.4 225.35A100 100 0 0 0 808.2 239.25L813.0500000000002 232.75A75 75 0 0 1 949.7000000000002 267.8000000000001L950 275V650A350 350 0 0 1 600 1000zM800 550A200 200 0 0 0 400.25 540L400 550H500A100 100 0 1 1 700 550H800zM600 850A100 100 0 1 0 600 650A100 100 0 0 0 600 850z","horizAdvX":"1200"},"gift-2-fill":{"path":["M0 0h24v24H0z","M20 13v7a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-7h16zM14.5 2a3.5 3.5 0 0 1 3.163 5.001L21 7a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1l3.337.001a3.5 3.5 0 0 1 5.664-3.95A3.48 3.48 0 0 1 14.5 2zm-5 2a1.5 1.5 0 0 0-.144 2.993L9.5 7H11V5.5a1.5 1.5 0 0 0-1.356-1.493L9.5 4zm5 0l-.144.007a1.5 1.5 0 0 0-1.35 1.349L13 5.5V7h1.5l.144-.007a1.5 1.5 0 0 0 0-2.986L14.5 4z"],"unicode":"","glyph":"M1000 550V200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V550H1000zM725 1100A175 175 0 0 0 883.15 849.95L1050 850A50 50 0 0 0 1100 800V650A50 50 0 0 0 1050 600H150A50 50 0 0 0 100 650V800A50 50 0 0 0 150 850L316.85 849.95A175 175 0 0 0 600.05 1047.45A174 174 0 0 0 725 1100zM475 1000A75 75 0 0 1 467.8 850.3499999999999L475 850H550V925A75 75 0 0 1 482.2 999.65L475 1000zM725 1000L717.8 999.65A75 75 0 0 1 650.3 932.2L650 925V850H725L732.2 850.3499999999999A75 75 0 0 1 732.2 999.65L725 1000z","horizAdvX":"1200"},"gift-2-line":{"path":["M0 0h24v24H0z","M14.5 2a3.5 3.5 0 0 1 3.163 5.001L21 7a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-1v8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1l3.337.001a3.5 3.5 0 0 1 5.664-3.95A3.48 3.48 0 0 1 14.5 2zM18 13H6v7h12v-7zm2-4H4v2h16V9zM9.5 4a1.5 1.5 0 0 0-.144 2.993L9.5 7H11V5.5a1.5 1.5 0 0 0-1.356-1.493L9.5 4zm5 0l-.144.007a1.5 1.5 0 0 0-1.35 1.349L13 5.5V7h1.5l.144-.007a1.5 1.5 0 0 0 0-2.986L14.5 4z"],"unicode":"","glyph":"M725 1100A175 175 0 0 0 883.15 849.95L1050 850A50 50 0 0 0 1100 800V600A50 50 0 0 0 1050 550H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V550H150A50 50 0 0 0 100 600V800A50 50 0 0 0 150 850L316.85 849.95A175 175 0 0 0 600.05 1047.45A174 174 0 0 0 725 1100zM900 550H300V200H900V550zM1000 750H200V650H1000V750zM475 1000A75 75 0 0 1 467.8 850.3499999999999L475 850H550V925A75 75 0 0 1 482.2 999.65L475 1000zM725 1000L717.8 999.65A75 75 0 0 1 650.3 932.2L650 925V850H725L732.2 850.3499999999999A75 75 0 0 1 732.2 999.65L725 1000z","horizAdvX":"1200"},"gift-fill":{"path":["M0 0h24v24H0z","M15 2a4 4 0 0 1 3.464 6.001L23 8v2h-2v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V10H1V8l4.536.001A4 4 0 0 1 12 3.355 3.983 3.983 0 0 1 15 2zm-2 8h-2v10h2V10zM9 4a2 2 0 0 0-.15 3.995L9 8h2V6a2 2 0 0 0-1.697-1.977l-.154-.018L9 4zm6 0a2 2 0 0 0-1.995 1.85L13 6v2h2a2 2 0 0 0 1.995-1.85L17 6a2 2 0 0 0-2-2z"],"unicode":"","glyph":"M750 1100A200 200 0 0 0 923.2 799.9499999999999L1150 800V700H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V700H50V800L276.8 799.95A200 200 0 0 0 600 1032.25A199.14999999999998 199.14999999999998 0 0 0 750 1100zM650 700H550V200H650V700zM450 1000A100 100 0 0 1 442.5 800.25L450 800H550V900A100 100 0 0 1 465.15 998.85L457.45 999.75L450 1000zM750 1000A100 100 0 0 1 650.25 907.5L650 900V800H750A100 100 0 0 1 849.75 892.5L850 900A100 100 0 0 1 750 1000z","horizAdvX":"1200"},"gift-line":{"path":["M0 0h24v24H0z","M15 2a4 4 0 0 1 3.464 6.001L23 8v2h-2v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V10H1V8l4.536.001A4 4 0 0 1 12 3.355 3.983 3.983 0 0 1 15 2zm-4 8H5v9h6v-9zm8 0h-6v9h6v-9zM9 4a2 2 0 0 0-.15 3.995L9 8h2V6a2 2 0 0 0-1.697-1.977l-.154-.018L9 4zm6 0a2 2 0 0 0-1.995 1.85L13 6v2h2a2 2 0 0 0 1.995-1.85L17 6a2 2 0 0 0-2-2z"],"unicode":"","glyph":"M750 1100A200 200 0 0 0 923.2 799.9499999999999L1150 800V700H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V700H50V800L276.8 799.95A200 200 0 0 0 600 1032.25A199.14999999999998 199.14999999999998 0 0 0 750 1100zM550 700H250V250H550V700zM950 700H650V250H950V700zM450 1000A100 100 0 0 1 442.5 800.25L450 800H550V900A100 100 0 0 1 465.15 998.85L457.45 999.75L450 1000zM750 1000A100 100 0 0 1 650.25 907.5L650 900V800H750A100 100 0 0 1 849.75 892.5L850 900A100 100 0 0 1 750 1000z","horizAdvX":"1200"},"git-branch-fill":{"path":["M0 0h24v24H0z","M7.105 15.21A3.001 3.001 0 1 1 5 15.17V8.83a3.001 3.001 0 1 1 2 0V12c.836-.628 1.874-1 3-1h4a3.001 3.001 0 0 0 2.895-2.21 3.001 3.001 0 1 1 2.032.064A5.001 5.001 0 0 1 14 13h-4a3.001 3.001 0 0 0-2.895 2.21z"],"unicode":"","glyph":"M355.25 439.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V600C391.8 631.4 443.7000000000001 650 500 650H700A150.04999999999998 150.04999999999998 0 0 1 844.75 760.5A150.04999999999998 150.04999999999998 0 1 0 946.35 757.3000000000001A250.05000000000004 250.05000000000004 0 0 0 700 550H500A150.04999999999998 150.04999999999998 0 0 1 355.25 439.5z","horizAdvX":"1200"},"git-branch-line":{"path":["M0 0h24v24H0z","M7.105 15.21A3.001 3.001 0 1 1 5 15.17V8.83a3.001 3.001 0 1 1 2 0V12c.836-.628 1.874-1 3-1h4a3.001 3.001 0 0 0 2.895-2.21 3.001 3.001 0 1 1 2.032.064A5.001 5.001 0 0 1 14 13h-4a3.001 3.001 0 0 0-2.895 2.21zM6 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM6 5a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm12 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M355.25 439.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V600C391.8 631.4 443.7000000000001 650 500 650H700A150.04999999999998 150.04999999999998 0 0 1 844.75 760.5A150.04999999999998 150.04999999999998 0 1 0 946.35 757.3000000000001A250.05000000000004 250.05000000000004 0 0 0 700 550H500A150.04999999999998 150.04999999999998 0 0 1 355.25 439.5zM300 350A50 50 0 1 1 300 250A50 50 0 0 1 300 350zM300 950A50 50 0 1 1 300 850A50 50 0 0 1 300 950zM900 950A50 50 0 1 1 900 850A50 50 0 0 1 900 950z","horizAdvX":"1200"},"git-commit-fill":{"path":["M0 0h24v24H0z","M15.874 13a4.002 4.002 0 0 1-7.748 0H3v-2h5.126a4.002 4.002 0 0 1 7.748 0H21v2h-5.126z"],"unicode":"","glyph":"M793.7 550A200.10000000000002 200.10000000000002 0 0 0 406.3000000000001 550H150V650H406.3000000000001A200.10000000000002 200.10000000000002 0 0 0 793.7000000000002 650H1050V550H793.6999999999999z","horizAdvX":"1200"},"git-commit-line":{"path":["M0 0h24v24H0z","M15.874 13a4.002 4.002 0 0 1-7.748 0H3v-2h5.126a4.002 4.002 0 0 1 7.748 0H21v2h-5.126zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M793.7 550A200.10000000000002 200.10000000000002 0 0 0 406.3000000000001 550H150V650H406.3000000000001A200.10000000000002 200.10000000000002 0 0 0 793.7000000000002 650H1050V550H793.6999999999999zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"git-merge-fill":{"path":["M0 0h24v24H0z","M7.105 8.79A3.001 3.001 0 0 0 10 11h4a5.001 5.001 0 0 1 4.927 4.146A3.001 3.001 0 0 1 18 21a3 3 0 0 1-1.105-5.79A3.001 3.001 0 0 0 14 13h-4a4.978 4.978 0 0 1-3-1v3.17a3.001 3.001 0 1 1-2 0V8.83a3.001 3.001 0 1 1 2.105-.04z"],"unicode":"","glyph":"M355.25 760.5A150.04999999999998 150.04999999999998 0 0 1 500 650H700A250.05000000000004 250.05000000000004 0 0 0 946.35 442.7A150.04999999999998 150.04999999999998 0 0 0 900 150A150 150 0 0 0 844.75 439.5A150.04999999999998 150.04999999999998 0 0 1 700 550H500A248.9 248.9 0 0 0 350 600V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 355.25 760.5z","horizAdvX":"1200"},"git-merge-line":{"path":["M0 0h24v24H0z","M7.105 8.79A3.001 3.001 0 0 0 10 11h4a5.001 5.001 0 0 1 4.927 4.146A3.001 3.001 0 0 1 18 21a3 3 0 0 1-1.105-5.79A3.001 3.001 0 0 0 14 13h-4a4.978 4.978 0 0 1-3-1v3.17a3.001 3.001 0 1 1-2 0V8.83a3.001 3.001 0 1 1 2.105-.04zM6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm12 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M355.25 760.5A150.04999999999998 150.04999999999998 0 0 1 500 650H700A250.05000000000004 250.05000000000004 0 0 0 946.35 442.7A150.04999999999998 150.04999999999998 0 0 0 900 150A150 150 0 0 0 844.75 439.5A150.04999999999998 150.04999999999998 0 0 1 700 550H500A248.9 248.9 0 0 0 350 600V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 355.25 760.5zM300 850A50 50 0 1 1 300 950A50 50 0 0 1 300 850zM300 250A50 50 0 1 1 300 350A50 50 0 0 1 300 250zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250z","horizAdvX":"1200"},"git-pull-request-fill":{"path":["M0 0h24v24H0z","M15 5h2a2 2 0 0 1 2 2v8.17a3.001 3.001 0 1 1-2 0V7h-2v3l-4.5-4L15 2v3zM5 8.83a3.001 3.001 0 1 1 2 0v6.34a3.001 3.001 0 1 1-2 0V8.83z"],"unicode":"","glyph":"M750 950H850A100 100 0 0 0 950 850V441.5A150.04999999999998 150.04999999999998 0 1 0 850 441.5V850H750V700L525 900L750 1100V950zM250 758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5z","horizAdvX":"1200"},"git-pull-request-line":{"path":["M0 0h24v24H0z","M15 5h2a2 2 0 0 1 2 2v8.17a3.001 3.001 0 1 1-2 0V7h-2v3l-4.5-4L15 2v3zM5 8.83a3.001 3.001 0 1 1 2 0v6.34a3.001 3.001 0 1 1-2 0V8.83zM6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm12 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M750 950H850A100 100 0 0 0 950 850V441.5A150.04999999999998 150.04999999999998 0 1 0 850 441.5V850H750V700L525 900L750 1100V950zM250 758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5zM300 850A50 50 0 1 1 300 950A50 50 0 0 1 300 850zM300 250A50 50 0 1 1 300 350A50 50 0 0 1 300 250zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250z","horizAdvX":"1200"},"git-repository-commits-fill":{"path":["M0 0h24v24H0z","M14 17v6h-2v-6H9l4-5 4 5h-3zm2 2h3v-3h-.8L13 9.5 7.647 16H6.5a1.5 1.5 0 0 0 0 3H10v2H6.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-4v-2zM7 5v2h2V5H7zm0 3v2h2V8H7z"],"unicode":"","glyph":"M700 350V50H600V350H450L650 600L850 350H700zM800 250H950V400H910L650 725L382.35 400H325A75 75 0 0 1 325 250H500V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H800V250zM350 950V850H450V950H350zM350 800V700H450V800H350z","horizAdvX":"1200"},"git-repository-commits-line":{"path":["M0 0h24v24H0z","M18 16v-2h1V4H6v10.035A3.53 3.53 0 0 1 6.5 14H8v2H6.5a1.5 1.5 0 0 0 0 3H10v2H6.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-4v-2h3v-3h-1zM7 5h2v2H7V5zm0 3h2v2H7V8zm7 9v6h-2v-6H9l4-5 4 5h-3z"],"unicode":"","glyph":"M900 400V500H950V1000H300V498.25A176.5 176.5 0 0 0 325 500H400V400H325A75 75 0 0 1 325 250H500V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H800V250H950V400H900zM350 950H450V850H350V950zM350 800H450V700H350V800zM700 350V50H600V350H450L650 600L850 350H700z","horizAdvX":"1200"},"git-repository-fill":{"path":["M0 0h24v24H0z","M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm-6-2v-2h6v2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7zM7 5v2h2V5H7zm0 3v2h2V8H7zm0 3v2h2v-2H7z"],"unicode":"","glyph":"M650 150V25L500 125L350 25V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H650zM350 250V350H650V250H950V400H325A75 75 0 0 1 325 250H350zM350 950V850H450V950H350zM350 800V700H450V800H350zM350 650V550H450V650H350z","horizAdvX":"1200"},"git-repository-line":{"path":["M0 0h24v24H0z","M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"],"unicode":"","glyph":"M650 150V25L500 125L350 25V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H650zM650 250H950V400H325A75 75 0 0 1 325 250H350V350H650V250zM950 500V1000H300V498.25A176.5 176.5 0 0 0 325 500H950zM350 950H450V850H350V950zM350 800H450V700H350V800zM350 650H450V550H350V650z","horizAdvX":"1200"},"git-repository-private-fill":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-9 3v2h2v-2H7zm0 3v2h2v-2H7zm0 3v2h2v-2H7z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM800 800V850A200 200 0 1 1 400 850V800H800zM350 650V550H450V650H350zM350 500V400H450V500H350zM350 350V250H450V350H350z","horizAdvX":"1200"},"git-repository-private-line":{"path":["M0 0h24v24H0z","M6 10v10h13V10H6zm12-2h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-9 3h2v2H7v-2zm0 3h2v2H7v-2zm0 3h2v2H7v-2z"],"unicode":"","glyph":"M300 700V200H950V700H300zM900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM800 800V850A200 200 0 1 1 400 850V800H800zM350 650H450V550H350V650zM350 500H450V400H350V500zM350 350H450V250H350V350z","horizAdvX":"1200"},"github-fill":{"path":["M0 0h24v24H0z","M12 2C6.475 2 2 6.475 2 12a9.994 9.994 0 0 0 6.838 9.488c.5.087.687-.213.687-.476 0-.237-.013-1.024-.013-1.862-2.512.463-3.162-.612-3.362-1.175-.113-.288-.6-1.175-1.025-1.413-.35-.187-.85-.65-.013-.662.788-.013 1.35.725 1.538 1.025.9 1.512 2.338 1.087 2.912.825.088-.65.35-1.087.638-1.337-2.225-.25-4.55-1.113-4.55-4.938 0-1.088.387-1.987 1.025-2.688-.1-.25-.45-1.275.1-2.65 0 0 .837-.262 2.75 1.026a9.28 9.28 0 0 1 2.5-.338c.85 0 1.7.112 2.5.337 1.912-1.3 2.75-1.024 2.75-1.024.55 1.375.2 2.4.1 2.65.637.7 1.025 1.587 1.025 2.687 0 3.838-2.337 4.688-4.562 4.938.362.312.675.912.675 1.85 0 1.337-.013 2.412-.013 2.75 0 .262.188.574.688.474A10.016 10.016 0 0 0 22 12c0-5.525-4.475-10-10-10z"],"unicode":"","glyph":"M600 1100C323.75 1100 100 876.25 100 600A499.7 499.7 0 0 1 441.9000000000001 125.5999999999999C466.9 121.25 476.25 136.25 476.25 149.4000000000001C476.25 161.25 475.6 200.6 475.6 242.5000000000001C350 219.35 317.5 273.1 307.5 301.2500000000001C301.85 315.6500000000001 277.5000000000001 360.0000000000001 256.25 371.9000000000001C238.7500000000001 381.2500000000003 213.75 404.4000000000001 255.6 405.0000000000001C295 405.6500000000002 323.1 368.7500000000003 332.5 353.7500000000001C377.5000000000001 278.1500000000001 449.4 299.4000000000002 478.1000000000001 312.5000000000003C482.5 345.0000000000001 495.6 366.8500000000002 510.0000000000001 379.3500000000002C398.7500000000001 391.8500000000002 282.5000000000001 435.0000000000001 282.5000000000001 626.2500000000001C282.5000000000001 680.6500000000002 301.85 725.6000000000001 333.7500000000001 760.6500000000001C328.7500000000001 773.1500000000001 311.25 824.4000000000001 338.75 893.1500000000001C338.75 893.1500000000001 380.6 906.2500000000002 476.25 841.8500000000001A464 464 0 0 0 601.25 858.7500000000002C643.75 858.7500000000002 686.25 853.1500000000001 726.25 841.9000000000002C821.85 906.9 863.7499999999999 893.1000000000001 863.7499999999999 893.1000000000001C891.25 824.3500000000001 873.7499999999999 773.1000000000001 868.75 760.6000000000001C900.6 725.6000000000001 919.9999999999998 681.2500000000002 919.9999999999998 626.2500000000002C919.9999999999998 434.3500000000003 803.15 391.8500000000002 691.8999999999999 379.3500000000002C709.9999999999999 363.7500000000001 725.6499999999999 333.7500000000003 725.6499999999999 286.8500000000002C725.6499999999999 220.0000000000001 724.9999999999999 166.2500000000002 724.9999999999999 149.3500000000001C724.9999999999999 136.25 734.4 120.6500000000001 759.4 125.6500000000001A500.8 500.8 0 0 1 1100 600C1100 876.25 876.2499999999999 1100 600 1100z","horizAdvX":"1200"},"github-line":{"path":["M0 0h24v24H0z","M5.883 18.653c-.3-.2-.558-.455-.86-.816a50.32 50.32 0 0 1-.466-.579c-.463-.575-.755-.84-1.057-.949a1 1 0 0 1 .676-1.883c.752.27 1.261.735 1.947 1.588-.094-.117.34.427.433.539.19.227.33.365.44.438.204.137.587.196 1.15.14.023-.382.094-.753.202-1.095C5.38 15.31 3.7 13.396 3.7 9.64c0-1.24.37-2.356 1.058-3.292-.218-.894-.185-1.975.302-3.192a1 1 0 0 1 .63-.582c.081-.024.127-.035.208-.047.803-.123 1.937.17 3.415 1.096A11.731 11.731 0 0 1 12 3.315c.912 0 1.818.104 2.684.308 1.477-.933 2.613-1.226 3.422-1.096.085.013.157.03.218.05a1 1 0 0 1 .616.58c.487 1.216.52 2.297.302 3.19.691.936 1.058 2.045 1.058 3.293 0 3.757-1.674 5.665-4.642 6.392.125.415.19.879.19 1.38a300.492 300.492 0 0 1-.012 2.716 1 1 0 0 1-.019 1.958c-1.139.228-1.983-.532-1.983-1.525l.002-.446.005-.705c.005-.708.007-1.338.007-1.998 0-.697-.183-1.152-.425-1.36-.661-.57-.326-1.655.54-1.752 2.967-.333 4.337-1.482 4.337-4.66 0-.955-.312-1.744-.913-2.404a1 1 0 0 1-.19-1.045c.166-.414.237-.957.096-1.614l-.01.003c-.491.139-1.11.44-1.858.949a1 1 0 0 1-.833.135A9.626 9.626 0 0 0 12 5.315c-.89 0-1.772.119-2.592.35a1 1 0 0 1-.83-.134c-.752-.507-1.374-.807-1.868-.947-.144.653-.073 1.194.092 1.607a1 1 0 0 1-.189 1.045C6.016 7.89 5.7 8.694 5.7 9.64c0 3.172 1.371 4.328 4.322 4.66.865.097 1.201 1.177.544 1.748-.192.168-.429.732-.429 1.364v3.15c0 .986-.835 1.725-1.96 1.528a1 1 0 0 1-.04-1.962v-.99c-.91.061-1.662-.088-2.254-.485z"],"unicode":"","glyph":"M294.15 267.35C279.1500000000001 277.35 266.25 290.1 251.15 308.15A2516 2516 0 0 0 227.85 337.1C204.7 365.85 190.1 379.1 175 384.5500000000002A50 50 0 0 0 208.8 478.7C246.4 465.2 271.85 441.9500000000002 306.15 399.3000000000001C301.45 405.1500000000001 323.15 377.9500000000001 327.8 372.3499999999999C337.3 361 344.3 354.1 349.8 350.4500000000001C360 343.6 379.15 340.65 407.3 343.4500000000001C408.45 362.5500000000001 412 381.1 417.4 398.2C269 434.5 185 530.1999999999999 185 718C185 780 203.5 835.8 237.9 882.5999999999999C227 927.3 228.6500000000001 981.35 253 1042.2A50 50 0 0 0 284.5 1071.3C288.55 1072.5 290.85 1073.05 294.9 1073.65C335.05 1079.8 391.75 1065.15 465.6499999999999 1018.85A586.5500000000001 586.5500000000001 0 0 0 600 1034.25C645.6 1034.25 690.9 1029.05 734.2 1018.85C808.0500000000001 1065.5 864.85 1080.15 905.3 1073.65C909.5500000000002 1073 913.15 1072.15 916.2 1071.15A50 50 0 0 0 947.0000000000002 1042.15C971.35 981.35 973 927.3 962.1 882.6500000000001C996.65 835.85 1015 780.4000000000001 1015 718C1015 530.15 931.3 434.75 782.9000000000001 398.4C789.1500000000001 377.6500000000001 792.4000000000001 354.45 792.4000000000001 329.4000000000001A15024.6 15024.6 0 0 0 791.8000000000001 193.6A50 50 0 0 0 790.85 95.7000000000001C733.9000000000001 84.3 691.6999999999999 122.3000000000002 691.6999999999999 171.9500000000001L691.8000000000001 194.2500000000001L692.0500000000001 229.5C692.3000000000001 264.8999999999999 692.4000000000001 296.4000000000001 692.4000000000001 329.4000000000001C692.4000000000001 364.25 683.25 387.0000000000001 671.15 397.4C638.1 425.9000000000001 654.85 480.15 698.1500000000001 485C846.5 501.6500000000001 915 559.1 915 718C915 765.75 899.4 805.2 869.35 838.2A50 50 0 0 0 859.8499999999999 890.45C868.15 911.15 871.6999999999998 938.3 864.65 971.15L864.1499999999999 971C839.5999999999999 964.05 808.6499999999999 949 771.2499999999999 923.55A50 50 0 0 0 729.5999999999998 916.8A481.3 481.3 0 0 1 600 934.25C555.5 934.25 511.4 928.3 470.4 916.75A50 50 0 0 0 428.9 923.45C391.3 948.8 360.2 963.8 335.5 970.8C328.3 938.15 331.8499999999999 911.1 340.0999999999999 890.45A50 50 0 0 0 330.6499999999999 838.2C300.8 805.5 285 765.3 285 718C285 559.4 353.55 501.6 501.1 485C544.35 480.15 561.1500000000001 426.15 528.3000000000001 397.5999999999999C518.7 389.2 506.85 361 506.85 329.3999999999999V171.8999999999999C506.85 122.5999999999999 465.1 85.6499999999999 408.85 95.5A50 50 0 0 0 406.85 193.6V243.0999999999999C361.35 240.05 323.75 247.5 294.1500000000001 267.3499999999999z","horizAdvX":"1200"},"gitlab-fill":{"path":["M0 0h24v24H0z","M5.868 2.75L8 10h8l2.132-7.25a.4.4 0 0 1 .765-.01l3.495 10.924a.5.5 0 0 1-.173.55L12 22 1.78 14.214a.5.5 0 0 1-.172-.55L5.103 2.74a.4.4 0 0 1 .765.009z"],"unicode":"","glyph":"M293.4000000000001 1062.5L400 700H800L906.6 1062.5A20.000000000000004 20.000000000000004 0 0 0 944.8500000000003 1063L1119.6000000000001 516.8000000000001A25 25 0 0 0 1110.9500000000003 489.3L600 100L89 489.3A25 25 0 0 0 80.4 516.8000000000001L255.15 1063A20.000000000000004 20.000000000000004 0 0 0 293.4 1062.55z","horizAdvX":"1200"},"gitlab-line":{"path":["M0 0h24v24H0z","M5.68 7.314l-1.82 5.914L12 19.442l8.14-6.214-1.82-5.914L16.643 11H7.356L5.681 7.314zM15.357 9l2.888-6.354a.4.4 0 0 1 .747.048l3.367 10.945a.5.5 0 0 1-.174.544L12 21.958 1.816 14.183a.5.5 0 0 1-.174-.544L5.009 2.694a.4.4 0 0 1 .747-.048L8.644 9h6.712z"],"unicode":"","glyph":"M284 834.3L193 538.6L600 227.9L1007 538.6L916 834.3L832.1500000000001 650H367.8L284.05 834.3zM767.8499999999999 750L912.2499999999998 1067.7A20.000000000000004 20.000000000000004 0 0 0 949.6 1065.3L1117.9499999999998 518.0500000000001A25 25 0 0 0 1109.25 490.85L600 102.1000000000001L90.8 490.85A25 25 0 0 0 82.1 518.0500000000001L250.45 1065.3A20.000000000000004 20.000000000000004 0 0 0 287.8 1067.7L432.2 750H767.8z","horizAdvX":"1200"},"global-fill":{"path":["M0 0h24v24H0z","M2.05 13h5.477a17.9 17.9 0 0 0 2.925 8.88A10.005 10.005 0 0 1 2.05 13zm0-2a10.005 10.005 0 0 1 8.402-8.88A17.9 17.9 0 0 0 7.527 11H2.05zm19.9 0h-5.477a17.9 17.9 0 0 0-2.925-8.88A10.005 10.005 0 0 1 21.95 11zm0 2a10.005 10.005 0 0 1-8.402 8.88A17.9 17.9 0 0 0 16.473 13h5.478zM9.53 13h4.94A15.908 15.908 0 0 1 12 20.592 15.908 15.908 0 0 1 9.53 13zm0-2A15.908 15.908 0 0 1 12 3.408 15.908 15.908 0 0 1 14.47 11H9.53z"],"unicode":"","glyph":"M102.5 550H376.35A894.9999999999999 894.9999999999999 0 0 1 522.6 105.9999999999998A500.25 500.25 0 0 0 102.5 550zM102.5 650A500.25 500.25 0 0 0 522.5999999999999 1094A894.9999999999999 894.9999999999999 0 0 1 376.35 650H102.5zM1097.5 650H823.65A894.9999999999999 894.9999999999999 0 0 1 677.3999999999999 1094A500.25 500.25 0 0 0 1097.5 650zM1097.5 550A500.25 500.25 0 0 0 677.4 105.9999999999998A894.9999999999999 894.9999999999999 0 0 1 823.65 550H1097.55zM476.4999999999999 550H723.5A795.4 795.4 0 0 0 600 170.4000000000001A795.4 795.4 0 0 0 476.4999999999999 550zM476.4999999999999 650A795.4 795.4 0 0 0 600 1029.6A795.4 795.4 0 0 0 723.5 650H476.4999999999999z","horizAdvX":"1200"},"global-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM485.5000000000001 216.6499999999999A894.9999999999999 894.9999999999999 0 0 0 401.35 550H203.1A400.4 400.4 0 0 1 485.5000000000001 216.6499999999999zM501.4999999999999 550C509.05 428.05 543.9 313.5 600 212.4000000000001A795.25 795.25 0 0 1 698.5 550H501.5000000000001zM996.9 550H798.65A894.9999999999999 894.9999999999999 0 0 0 714.5 216.6499999999999A400.4 400.4 0 0 1 996.9 550zM203.1 650H401.35A894.9999999999999 894.9999999999999 0 0 0 485.5000000000001 983.35A400.4 400.4 0 0 1 203.1 650zM501.55 650H698.45A795.25 795.25 0 0 1 600 987.6A795.25 795.25 0 0 1 501.4999999999999 650zM714.5 983.35A894.9999999999999 894.9999999999999 0 0 0 798.6500000000001 650H996.9A400.4 400.4 0 0 1 714.5000000000001 983.35z","horizAdvX":"1200"},"globe-fill":{"path":["M0 0h24v24H0z","M13 21h5v2H6v-2h5v-1.05a10.002 10.002 0 0 1-7.684-4.988l1.737-.992A8 8 0 1 0 15.97 3.053l.992-1.737A9.996 9.996 0 0 1 22 10c0 5.185-3.947 9.449-9 9.95V21zm-1-4a7 7 0 1 1 0-14 7 7 0 0 1 0 14z"],"unicode":"","glyph":"M650 150H900V50H300V150H550V202.5A500.1000000000001 500.1000000000001 0 0 0 165.8 451.9L252.65 501.5A400 400 0 1 1 798.5 1047.35L848.1 1134.2A499.8 499.8 0 0 0 1100 700C1100 440.7500000000001 902.65 227.5500000000001 650 202.5V150zM600 350A350 350 0 1 0 600 1050A350 350 0 0 0 600 350z","horizAdvX":"1200"},"globe-line":{"path":["M0 0h24v24H0z","M13 21h5v2H6v-2h5v-1.05a10.002 10.002 0 0 1-7.684-4.988l1.737-.992A8 8 0 1 0 15.97 3.053l.992-1.737A9.996 9.996 0 0 1 22 10c0 5.185-3.947 9.449-9 9.95V21zm-1-4a7 7 0 1 1 0-14 7 7 0 0 1 0 14zm0-2a5 5 0 1 0 0-10 5 5 0 0 0 0 10z"],"unicode":"","glyph":"M650 150H900V50H300V150H550V202.5A500.1000000000001 500.1000000000001 0 0 0 165.8 451.9L252.65 501.5A400 400 0 1 1 798.5 1047.35L848.1 1134.2A499.8 499.8 0 0 0 1100 700C1100 440.7500000000001 902.65 227.5500000000001 650 202.5V150zM600 350A350 350 0 1 0 600 1050A350 350 0 0 0 600 350zM600 450A250 250 0 1 1 600 950A250 250 0 0 1 600 450z","horizAdvX":"1200"},"goblet-fill":{"path":["M0 0h24v24H0z","M11 19v-5.111L3 5V3h18v2l-8 8.889V19h5v2H6v-2h5zM7.49 7h9.02l1.8-2H5.69l1.8 2z"],"unicode":"","glyph":"M550 250V505.5500000000001L150 950V1050H1050V950L650 505.5500000000001V250H900V150H300V250H550zM374.5 850H825.4999999999999L915.4999999999998 950H284.5L374.5 850z","horizAdvX":"1200"},"goblet-line":{"path":["M0 0h24v24H0z","M11 19v-5.111L3 5V3h18v2l-8 8.889V19h5v2H6v-2h5zM7.49 7h9.02l1.8-2H5.69l1.8 2zm1.8 2L12 12.01 14.71 9H9.29z"],"unicode":"","glyph":"M550 250V505.5500000000001L150 950V1050H1050V950L650 505.5500000000001V250H900V150H300V250H550zM374.5 850H825.4999999999999L915.4999999999998 950H284.5L374.5 850zM464.5000000000001 750L600 599.5L735.5 750H464.4999999999999z","horizAdvX":"1200"},"google-fill":{"path":["M0 0h24v24H0z","M3.064 7.51A9.996 9.996 0 0 1 12 2c2.695 0 4.959.99 6.69 2.605l-2.867 2.868C14.786 6.482 13.468 5.977 12 5.977c-2.605 0-4.81 1.76-5.595 4.123-.2.6-.314 1.24-.314 1.9 0 .66.114 1.3.314 1.9.786 2.364 2.99 4.123 5.595 4.123 1.345 0 2.49-.355 3.386-.955a4.6 4.6 0 0 0 1.996-3.018H12v-3.868h9.418c.118.654.182 1.336.182 2.045 0 3.046-1.09 5.61-2.982 7.35C16.964 21.105 14.7 22 12 22A9.996 9.996 0 0 1 2 12c0-1.614.386-3.14 1.064-4.49z"],"unicode":"","glyph":"M153.2 824.5A499.8 499.8 0 0 0 600 1100C734.75 1100 847.9499999999999 1050.5 934.5000000000002 969.75L791.15 826.3499999999999C739.3 875.9 673.4 901.15 600 901.15C469.75 901.15 359.5 813.15 320.25 695C310.25 665 304.55 632.9999999999999 304.55 599.9999999999999C304.55 566.9999999999999 310.25 534.9999999999999 320.25 504.9999999999999C359.55 386.7999999999999 469.75 298.8499999999998 600 298.8499999999998C667.25 298.8499999999998 724.5 316.5999999999999 769.3 346.5999999999998A230 230 0 0 1 869.0999999999999 497.4999999999998H600V690.8999999999999H1070.8999999999999C1076.8 658.1999999999998 1080 624.0999999999998 1080 588.6499999999999C1080 436.3499999999998 1025.5 308.1499999999999 930.9 221.1499999999998C848.1999999999999 144.75 735 100 600 100A499.8 499.8 0 0 0 100 600C100 680.7 119.3 757 153.2 824.5z","horizAdvX":"1200"},"google-line":{"path":["M0 0h24v24H0z","M12 11h8.533c.044.385.067.78.067 1.184 0 2.734-.98 5.036-2.678 6.6-1.485 1.371-3.518 2.175-5.942 2.175A8.976 8.976 0 0 1 3 11.98 8.976 8.976 0 0 1 11.98 3c2.42 0 4.453.89 6.008 2.339L16.526 6.8C15.368 5.681 13.803 5 12 5a7 7 0 1 0 0 14c3.526 0 6.144-2.608 6.577-6H12v-2z"],"unicode":"","glyph":"M600 650H1026.65C1028.8500000000001 630.75 1030 611 1030 590.8000000000001C1030 454.1 981 339 896.1 260.8000000000001C821.85 192.2500000000001 720.2 152.05 599 152.05A448.80000000000007 448.80000000000007 0 0 0 150 601A448.80000000000007 448.80000000000007 0 0 0 599 1050C720 1050 821.65 1005.5 899.4 933.05L826.3 860C768.4 915.95 690.1500000000001 950 600 950A350 350 0 1 1 600 250C776.3 250 907.2 380.4 928.85 550H600V650z","horizAdvX":"1200"},"google-play-fill":{"path":["M0 0h24v24H0z","M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 0 1-.61-.92V2.734a1 1 0 0 1 .609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.198l2.807 1.626a1 1 0 0 1 0 1.73l-2.808 1.626L15.206 12l2.492-2.491zM5.864 2.658L16.802 8.99l-2.303 2.303-8.635-8.635z"],"unicode":"","glyph":"M180.45 1109.3L689.6 600L180.5 90.7000000000001A49.800000000000004 49.800000000000004 0 0 0 150 136.7000000000001V1063.3A50 50 0 0 0 180.45 1109.3zM724.95 564.65L840.0500000000001 449.55L293.2000000000001 132.9000000000001L724.9500000000002 564.6500000000001zM884.9 724.55L1025.25 643.25A50 50 0 0 0 1025.25 556.75L884.8499999999999 475.45L760.3 600L884.9 724.55zM293.2 1067.1L840.1 750.5L724.9499999999999 635.35L293.2 1067.1z","horizAdvX":"1200"},"google-play-line":{"path":["M0 0h24v24H0z","M4 1.734a1 1 0 0 1 .501.135l16.004 9.266a1 1 0 0 1 0 1.73L4.501 22.131A1 1 0 0 1 3 21.266V2.734a1 1 0 0 1 1-1zm8.292 11.68l-4.498 4.498 5.699-3.299-1.2-1.2zM5 6.118v11.76l5.88-5.88-5.88-5.88zm10.284 4.302L13.706 12l1.578 1.577L18.008 12l-2.725-1.579zm-7.49-4.336l4.5 4.5 1.199-1.2-5.699-3.3z"],"unicode":"","glyph":"M200 1113.3A50 50 0 0 0 225.05 1106.55L1025.2500000000002 643.25A50 50 0 0 0 1025.2500000000002 556.75L225.05 93.4500000000001A50 50 0 0 0 150 136.7000000000001V1063.3A50 50 0 0 0 200 1113.3zM614.6 529.3000000000001L389.7 304.4000000000001L674.65 469.35L614.65 529.35zM250 894.0999999999999V306.1L544 600.0999999999999L250 894.0999999999999zM764.2 679L685.3 600L764.1999999999999 521.15L900.4 600L764.15 678.95zM389.7000000000001 895.8L614.7 670.8000000000001L674.65 730.8L389.7000000000001 895.8z","horizAdvX":"1200"},"government-fill":{"path":["M0 0h24v24H0z","M2 19V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2h3v2h-1v11h1v2H1v-2h1zm11 0v-7h-2v7h2zm-5 0v-7H6v7h2zm10 0v-7h-2v7h2zM6 5v1h12V5H6z"],"unicode":"","glyph":"M100 250V800H50V900H200V1000A50 50 0 0 0 250 1050H950A50 50 0 0 0 1000 1000V900H1150V800H1100V250H1150V150H50V250H100zM650 250V600H550V250H650zM400 250V600H300V250H400zM900 250V600H800V250H900zM300 950V900H900V950H300z","horizAdvX":"1200"},"government-line":{"path":["M0 0h24v24H0z","M20 6h3v2h-1v11h1v2H1v-2h1V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2zm0 2H4v11h3v-7h2v7h2v-7h2v7h2v-7h2v7h3V8zM6 5v1h12V5H6z"],"unicode":"","glyph":"M1000 900H1150V800H1100V250H1150V150H50V250H100V800H50V900H200V1000A50 50 0 0 0 250 1050H950A50 50 0 0 0 1000 1000V900zM1000 800H200V250H350V600H450V250H550V600H650V250H750V600H850V250H1000V800zM300 950V900H900V950H300z","horizAdvX":"1200"},"gps-fill":{"path":["M0 0h24v24H0z","M12 16l3 6H9l3-6zm-2.627.255a5 5 0 1 1 5.255 0l-1.356-2.711a2 2 0 1 0-2.544 0l-1.355 2.71zm-2.241 4.482A9.997 9.997 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.997 9.997 0 0 1-5.132 8.737l-1.343-2.688a7 7 0 1 0-7.05 0l-1.343 2.688z"],"unicode":"","glyph":"M600 400L750 100H450L600 400zM468.65 387.25A250 250 0 1 0 731.4 387.25L663.6 522.8000000000001A100 100 0 1 1 536.4 522.8000000000001L468.65 387.3000000000001zM356.6000000000001 163.1500000000001A499.85 499.85 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.85 499.85 0 0 0 843.4000000000001 163.1499999999999L776.2500000000001 297.5499999999999A350 350 0 1 1 423.7500000000001 297.5499999999999L356.6000000000001 163.1499999999999z","horizAdvX":"1200"},"gps-line":{"path":["M0 0h24v24H0z","M7.132 20.737A9.997 9.997 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.997 9.997 0 0 1-5.132 8.737l-.896-1.791a8 8 0 1 0-7.945 0l-.895 1.791zm1.792-3.584a6 6 0 1 1 6.151 0l-.898-1.797a4 4 0 1 0-4.354 0l-.899 1.797zM12 16l3 6H9l3-6z"],"unicode":"","glyph":"M356.6 163.1500000000001A499.85 499.85 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.85 499.85 0 0 0 843.4000000000001 163.1499999999999L798.6 252.7A400 400 0 1 1 401.35 252.7L356.6000000000001 163.1499999999999zM446.2 342.35A300 300 0 1 0 753.75 342.35L708.85 432.2000000000001A200 200 0 1 1 491.15 432.2000000000001L446.2 342.35zM600 400L750 100H450L600 400z","horizAdvX":"1200"},"gradienter-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM8.126 11H4.062a8.079 8.079 0 0 0 0 2h4.064a4.007 4.007 0 0 1 0-2zm7.748 0a4.007 4.007 0 0 1 0 2h4.064a8.079 8.079 0 0 0 0-2h-4.064zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM406.3 650H203.1A403.95000000000005 403.95000000000005 0 0 1 203.1 550H406.3000000000001A200.34999999999997 200.34999999999997 0 0 0 406.3000000000001 650zM793.6999999999999 650A200.34999999999997 200.34999999999997 0 0 0 793.6999999999999 550H996.9A403.95000000000005 403.95000000000005 0 0 1 996.9 650H793.6999999999999zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"gradienter-line":{"path":["M0 0h24v24H0z","M2.05 13h2.012a8.001 8.001 0 0 0 15.876 0h2.013c-.502 5.053-4.766 9-9.951 9-5.185 0-9.449-3.947-9.95-9zm0-2C2.55 5.947 6.814 2 12 2s9.449 3.947 9.95 9h-2.012a8.001 8.001 0 0 0-15.876 0H2.049zM12 14a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M102.5 550H203.1A400.04999999999995 400.04999999999995 0 0 1 996.9 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C340.75 100 127.55 297.3499999999999 102.5 550zM102.5 650C127.5 902.65 340.7 1100 600 1100S1072.4499999999998 902.65 1097.5 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H102.45zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500z","horizAdvX":"1200"},"grid-fill":{"path":["M0 0h24v24H0z","M14 10v4h-4v-4h4zm2 0h5v4h-5v-4zm-2 11h-4v-5h4v5zm2 0v-5h5v4a1 1 0 0 1-1 1h-4zM14 3v5h-4V3h4zm2 0h4a1 1 0 0 1 1 1v4h-5V3zm-8 7v4H3v-4h5zm0 11H4a1 1 0 0 1-1-1v-4h5v5zM8 3v5H3V4a1 1 0 0 1 1-1h4z"],"unicode":"","glyph":"M700 700V500H500V700H700zM800 700H1050V500H800V700zM700 150H500V400H700V150zM800 150V400H1050V200A50 50 0 0 0 1000 150H800zM700 1050V800H500V1050H700zM800 1050H1000A50 50 0 0 0 1050 1000V800H800V1050zM400 700V500H150V700H400zM400 150H200A50 50 0 0 0 150 200V400H400V150zM400 1050V800H150V1000A50 50 0 0 0 200 1050H400z","horizAdvX":"1200"},"grid-line":{"path":["M0 0h24v24H0z","M14 10h-4v4h4v-4zm2 0v4h3v-4h-3zm-2 9v-3h-4v3h4zm2 0h3v-3h-3v3zM14 5h-4v3h4V5zm2 0v3h3V5h-3zm-8 5H5v4h3v-4zm0 9v-3H5v3h3zM8 5H5v3h3V5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M700 700H500V500H700V700zM800 700V500H950V700H800zM700 250V400H500V250H700zM800 250H950V400H800V250zM700 950H500V800H700V950zM800 950V800H950V950H800zM400 700H250V500H400V700zM400 250V400H250V250H400zM400 950H250V800H400V950zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"group-2-fill":{"path":["M0 0h24v24H0z","M10 19.748V16.4c0-1.283.995-2.292 2.467-2.868A8.482 8.482 0 0 0 9.5 13c-1.89 0-3.636.617-5.047 1.66A8.017 8.017 0 0 0 10 19.748zm8.88-3.662C18.485 15.553 17.17 15 15.5 15c-2.006 0-3.5.797-3.5 1.4V20a7.996 7.996 0 0 0 6.88-3.914zM9.55 11.5a2.25 2.25 0 1 0 0-4.5 2.25 2.25 0 0 0 0 4.5zm5.95 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M500 212.5999999999999V380.0000000000001C500 444.1500000000001 549.75 494.6 623.35 523.4000000000001A424.09999999999997 424.09999999999997 0 0 1 475 550C380.5 550 293.2 519.15 222.65 467A400.84999999999997 400.84999999999997 0 0 1 500 212.5999999999999zM944.0000000000002 395.7C924.25 422.3499999999999 858.5000000000001 450 775 450C674.7 450 600 410.15 600 380.0000000000001V200A399.80000000000007 399.80000000000007 0 0 1 944 395.7000000000001zM477.5000000000001 625A112.5 112.5 0 1 1 477.5000000000001 850A112.5 112.5 0 0 1 477.5000000000001 625zM775 575A100 100 0 1 1 775 775A100 100 0 0 1 775 575zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"group-2-line":{"path":["M0 0h24v24H0z","M9.55 11.5a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5zm.45 8.248V16.4c0-.488.144-.937.404-1.338a6.473 6.473 0 0 0-5.033 1.417A8.012 8.012 0 0 0 10 19.749zM4.453 14.66A8.462 8.462 0 0 1 9.5 13c1.043 0 2.043.188 2.967.532.878-.343 1.925-.532 3.033-.532 1.66 0 3.185.424 4.206 1.156a8 8 0 1 0-15.253.504zm14.426 1.426C18.486 15.553 17.171 15 15.5 15c-2.006 0-3.5.797-3.5 1.4V20a7.996 7.996 0 0 0 6.88-3.914zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm3.5-9.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M477.5000000000001 625A112.5 112.5 0 1 0 477.5000000000001 850A112.5 112.5 0 0 0 477.5000000000001 625zM500 212.6000000000001V380.0000000000001C500 404.4000000000001 507.2 426.85 520.2 446.9000000000001A323.65000000000003 323.65000000000003 0 0 1 268.55 376.0500000000001A400.6 400.6 0 0 1 500 212.5500000000001zM222.65 467A423.09999999999997 423.09999999999997 0 0 0 475 550C527.15 550 577.15 540.6 623.35 523.4C667.25 540.55 719.6 550 775 550C858 550 934.2499999999998 528.8000000000001 985.3 492.1999999999999A400 400 0 1 1 222.65 467zM943.95 395.7000000000001C924.3 422.3499999999999 858.55 450 775 450C674.7 450 600 410.15 600 380.0000000000001V200A399.80000000000007 399.80000000000007 0 0 1 944 395.7000000000001zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM775 575A100 100 0 1 0 775 775A100 100 0 0 0 775 575z","horizAdvX":"1200"},"group-fill":{"path":["M0 0h24v24H0z","M2 22a8 8 0 1 1 16 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm7.363 2.233A7.505 7.505 0 0 1 22.983 22H20c0-2.61-1-4.986-2.637-6.767zm-2.023-2.276A7.98 7.98 0 0 0 18 7a7.964 7.964 0 0 0-1.015-3.903A5 5 0 0 1 21 8a4.999 4.999 0 0 1-5.66 4.957z"],"unicode":"","glyph":"M100 100A400 400 0 1 0 900 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM868.15 438.35A375.25 375.25 0 0 0 1149.15 100H1000C1000 230.5 950 349.3000000000001 868.15 438.35zM767 552.15A399 399 0 0 1 900 850A398.20000000000005 398.20000000000005 0 0 1 849.25 1045.15A250 250 0 0 0 1050 800A249.94999999999996 249.94999999999996 0 0 0 767 552.15z","horizAdvX":"1200"},"group-line":{"path":["M0 0h24v24H0z","M2 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm8.284 3.703A8.002 8.002 0 0 1 23 22h-2a6.001 6.001 0 0 0-3.537-5.473l.82-1.824zm-.688-11.29A5.5 5.5 0 0 1 21 8.5a5.499 5.499 0 0 1-5 5.478v-2.013a3.5 3.5 0 0 0 1.041-6.609l.555-1.943z"],"unicode":"","glyph":"M100 100A400 400 0 1 0 900 100H800A300 300 0 1 1 200 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM500 650C610.5 650 700 739.5 700 850S610.5 1050 500 1050S300 960.5 300 850S389.5 650 500 650zM914.2 464.85A400.1 400.1 0 0 0 1150 100H1050A300.05 300.05 0 0 1 873.1500000000001 373.65L914.15 464.8499999999999zM879.8 1029.35A275 275 0 0 0 1050 775A274.94999999999993 274.94999999999993 0 0 0 800 501.1V601.75A175 175 0 0 1 852.0500000000001 932.2L879.8 1029.35z","horizAdvX":"1200"},"guide-fill":{"path":["M0 0h24v24H0z","M13 8v8a3 3 0 0 1-3 3H7.83a3.001 3.001 0 1 1 0-2H10a1 1 0 0 0 1-1V8a3 3 0 0 1 3-3h3V2l5 4-5 4V7h-3a1 1 0 0 0-1 1z"],"unicode":"","glyph":"M650 800V400A150 150 0 0 0 500 250H391.5A150.04999999999998 150.04999999999998 0 1 0 391.5 350H500A50 50 0 0 1 550 400V800A150 150 0 0 0 700 950H850V1100L1100 900L850 700V850H700A50 50 0 0 1 650 800z","horizAdvX":"1200"},"guide-line":{"path":["M0 0h24v24H0z","M13 8v8a3 3 0 0 1-3 3H7.83a3.001 3.001 0 1 1 0-2H10a1 1 0 0 0 1-1V8a3 3 0 0 1 3-3h3V2l5 4-5 4V7h-3a1 1 0 0 0-1 1zM5 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M650 800V400A150 150 0 0 0 500 250H391.5A150.04999999999998 150.04999999999998 0 1 0 391.5 350H500A50 50 0 0 1 550 400V800A150 150 0 0 0 700 950H850V1100L1100 900L850 700V850H700A50 50 0 0 1 650 800zM250 250A50 50 0 1 1 250 350A50 50 0 0 1 250 250z","horizAdvX":"1200"},"h-1":{"path":["M0 0H24V24H0z","M13 20h-2v-7H4v7H2V4h2v7h7V4h2v16zm8-12v12h-2v-9.796l-2 .536V8.67L19.5 8H21z"],"unicode":"","glyph":"M650 200H550V550H200V200H100V1000H200V650H550V1000H650V200zM1050 800V200H950V689.8L850 663V766.5L975 800H1050z","horizAdvX":"1200"},"h-2":{"path":["M0 0H24V24H0z","M4 4v7h7V4h2v16h-2v-7H4v7H2V4h2zm14.5 4c2.071 0 3.75 1.679 3.75 3.75 0 .857-.288 1.648-.772 2.28l-.148.18L18.034 18H22v2h-7v-1.556l4.82-5.546c.268-.307.43-.709.43-1.148 0-.966-.784-1.75-1.75-1.75-.918 0-1.671.707-1.744 1.606l-.006.144h-2C14.75 9.679 16.429 8 18.5 8z"],"unicode":"","glyph":"M200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200zM925 800C1028.5500000000002 800 1112.5 716.05 1112.5 612.5C1112.5 569.6500000000001 1098.1 530.1 1073.9 498.5L1066.5 489.5L901.7 300H1100V200H750V277.8000000000001L991 555.1C1004.4 570.45 1012.5 590.55 1012.5 612.5C1012.5 660.8 973.3 700 925 700C879.1 700 841.45 664.65 837.8 619.7L837.5 612.5H737.5C737.5 716.05 821.4499999999999 800 925 800z","horizAdvX":"1200"},"h-3":{"path":["M0 0H24V24H0z","M22 8l-.002 2-2.505 2.883c1.59.435 2.757 1.89 2.757 3.617 0 2.071-1.679 3.75-3.75 3.75-1.826 0-3.347-1.305-3.682-3.033l1.964-.382c.156.806.866 1.415 1.718 1.415.966 0 1.75-.784 1.75-1.75s-.784-1.75-1.75-1.75c-.286 0-.556.069-.794.19l-1.307-1.547L19.35 10H15V8h7zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2z"],"unicode":"","glyph":"M1100 800L1099.9 700L974.65 555.85C1054.15 534.1 1112.5000000000002 461.35 1112.5000000000002 375C1112.5000000000002 271.45 1028.5500000000002 187.5 925.0000000000002 187.5C833.7000000000002 187.5 757.6500000000002 252.75 740.9000000000002 339.1500000000001L839.1000000000001 358.2500000000001C846.9000000000001 317.9500000000001 882.4000000000002 287.5000000000003 925.0000000000002 287.5000000000003C973.3000000000002 287.5000000000003 1012.5000000000002 326.7000000000002 1012.5000000000002 375.0000000000003S973.3000000000002 462.5000000000002 925.0000000000002 462.5000000000002C910.7000000000002 462.5000000000002 897.2000000000002 459.0500000000002 885.3000000000002 453.0000000000002L819.9500000000003 530.3500000000003L967.5000000000002 700H750V800H1100zM200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200z","horizAdvX":"1200"},"h-4":{"path":["M0 0H24V24H0z","M13 20h-2v-7H4v7H2V4h2v7h7V4h2v16zm9-12v8h1.5v2H22v2h-2v-2h-5.5v-1.34l5-8.66H22zm-2 3.133L17.19 16H20v-4.867z"],"unicode":"","glyph":"M650 200H550V550H200V200H100V1000H200V650H550V1000H650V200zM1100 800V400H1175V300H1100V200H1000V300H725V367L975 800H1100zM1000 643.35L859.5000000000001 400H1000V643.35z","horizAdvX":"1200"},"h-5":{"path":["M0 0H24V24H0z","M22 8v2h-4.323l-.464 2.636c.33-.089.678-.136 1.037-.136 2.21 0 4 1.79 4 4s-1.79 4-4 4c-1.827 0-3.367-1.224-3.846-2.897l1.923-.551c.24.836 1.01 1.448 1.923 1.448 1.105 0 2-.895 2-2s-.895-2-2-2c-.63 0-1.193.292-1.56.748l-1.81-.904L16 8h6zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2z"],"unicode":"","glyph":"M1100 800V700H883.85L860.6500000000001 568.2C877.15 572.6500000000001 894.5500000000001 575 912.5 575C1023 575 1112.5 485.5 1112.5 375S1023 175 912.5 175C821.1500000000001 175 744.15 236.2000000000001 720.2 319.8499999999999L816.3499999999999 347.3999999999999C828.3499999999998 305.5999999999999 866.85 274.9999999999998 912.5 274.9999999999998C967.75 274.9999999999998 1012.5 319.7499999999998 1012.5 374.9999999999998S967.75 474.9999999999998 912.5 474.9999999999998C881 474.9999999999998 852.8499999999999 460.3999999999999 834.5000000000001 437.5999999999999L744 482.7999999999998L800 800H1100zM200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200z","horizAdvX":"1200"},"h-6":{"path":["M0 0H24V24H0z","M21.097 8l-2.598 4.5c2.21 0 4.001 1.79 4.001 4s-1.79 4-4 4-4-1.79-4-4c0-.736.199-1.426.546-2.019L18.788 8h2.309zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2zm14.5 10.5c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2z"],"unicode":"","glyph":"M1054.8500000000001 800L924.9500000000002 575C1035.4500000000003 575 1125.0000000000002 485.5 1125.0000000000002 375S1035.5000000000002 175 925.0000000000002 175S725.0000000000002 264.5 725.0000000000002 375C725.0000000000002 411.8000000000001 734.9500000000002 446.3 752.3000000000002 475.95L939.4 800H1054.8500000000001zM200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200zM925 475C869.75 475 825 430.25 825 375S869.75 275 925 275S1025 319.75 1025 375S980.25 475 925 475z","horizAdvX":"1200"},"hail-fill":{"path":["M0 0h24v24H0z","M18.995 17.794a4 4 0 0 0-5.085-3.644A4.001 4.001 0 0 0 6 15c0 1.08.428 2.059 1.122 2.778a8 8 0 1 1 9.335-10.68 5.5 5.5 0 0 1 2.537 10.696zM10 17a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M949.75 310.3A200 200 0 0 1 695.5 492.5A200.05 200.05 0 0 1 300 450C300 396.0000000000001 321.4 347.05 356.1 311.1A400 400 0 1 0 822.85 845.1A275 275 0 0 0 949.7 310.3000000000002zM500 350A100 100 0 1 0 500 550A100 100 0 0 0 500 350zM750 200A100 100 0 1 0 750 400A100 100 0 0 0 750 200zM500 50A100 100 0 1 0 500 250A100 100 0 0 0 500 50z","horizAdvX":"1200"},"hail-line":{"path":["M0 0h24v24H0z","M6 17.418A8.003 8.003 0 0 1 9 2a8.003 8.003 0 0 1 7.458 5.099A5.5 5.5 0 0 1 19 17.793v-2.13a3.5 3.5 0 1 0-4-5.612V10a6 6 0 1 0-9 5.197v2.221zM10 17a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M300 329.1A400.15000000000003 400.15000000000003 0 0 0 450 1100A400.15000000000003 400.15000000000003 0 0 0 822.8999999999999 845.05A275 275 0 0 0 950 310.35V416.85A175 175 0 1 1 750 697.45V700A300 300 0 1 1 300 440.1500000000001V329.1zM500 350A100 100 0 1 0 500 550A100 100 0 0 0 500 350zM750 200A100 100 0 1 0 750 400A100 100 0 0 0 750 200zM500 50A100 100 0 1 0 500 250A100 100 0 0 0 500 50z","horizAdvX":"1200"},"hammer-fill":{"path":["M0 0h24v24H0z","M17 8V2h3a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-3zm-2 14a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V8H2.5V6.074a1 1 0 0 1 .496-.863L8.5 2H15v20z"],"unicode":"","glyph":"M850 800V1100H1000A50 50 0 0 0 1050 1050V850A50 50 0 0 0 1000 800H850zM750 100A50 50 0 0 0 700 50H500A50 50 0 0 0 450 100V800H125V896.3A50 50 0 0 0 149.8 939.45L425 1100H750V100z","horizAdvX":"1200"},"hammer-line":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-5v13a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V9H3.5a1 1 0 0 1-1-1V5.618a1 1 0 0 1 .553-.894L8.5 2H20zm-5 2H8.972L4.5 6.236V7H11v14h2V7h2V4zm4 0h-2v3h2V4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V800A50 50 0 0 0 1000 750H750V100A50 50 0 0 0 700 50H500A50 50 0 0 0 450 100V750H175A50 50 0 0 0 125 800V919.1A50 50 0 0 0 152.65 963.8L425 1100H1000zM750 1000H448.6L225 888.2V850H550V150H650V850H750V1000zM950 1000H850V850H950V1000z","horizAdvX":"1200"},"hand-coin-fill":{"path":["M0 0h24v24H0z","M9.33 11.5h2.17A4.5 4.5 0 0 1 16 16H8.999L9 17h8v-1a5.578 5.578 0 0 0-.886-3H19a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.761 0-5.1-.59-7-1.625L6 10.071A6.967 6.967 0 0 1 9.33 11.5zM5 19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9zM18 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm-7-3a3 3 0 1 1 0 6 3 3 0 0 1 0-6z"],"unicode":"","glyph":"M466.5 625H575A225 225 0 0 0 800 400H449.9500000000001L450 350H850V400A278.90000000000003 278.90000000000003 0 0 1 805.7 550H950A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C511.95 150 395 179.5 300 231.25L300 696.45A348.34999999999997 348.34999999999997 0 0 0 466.5 625zM250 250A50 50 0 0 0 200 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H200A50 50 0 0 0 250 700V250zM900 950A150 150 0 1 0 900 650A150 150 0 0 0 900 950zM550 1100A150 150 0 1 0 550 800A150 150 0 0 0 550 1100z","horizAdvX":"1200"},"hand-coin-line":{"path":["M0 0h24v24H0z","M5 9a1 1 0 0 1 1 1 6.97 6.97 0 0 1 4.33 1.5h2.17c1.333 0 2.53.58 3.354 1.5H19a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.79 0-5.15-.603-7.06-1.658A.998.998 0 0 1 5 20H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h3zm1.001 3L6 17.022l.045.032C7.84 18.314 10.178 19 13 19c3.004 0 5.799-1.156 7.835-3.13l.133-.133-.12-.1a2.994 2.994 0 0 0-1.643-.63L19 15h-2.111c.072.322.111.656.111 1v1H8v-2l6.79-.001-.034-.078a2.501 2.501 0 0 0-2.092-1.416L12.5 13.5H9.57A4.985 4.985 0 0 0 6.002 12zM4 11H3v7h1v-7zm14-6a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm-7-5a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M250 750A50 50 0 0 0 300 700A348.5 348.5 0 0 0 516.5 625H625C691.65 625 751.5 596 792.6999999999999 550H950A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C510.5000000000001 150 392.5 180.1500000000001 297 232.9000000000001A49.900000000000006 49.900000000000006 0 0 0 250 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H250zM300.05 600L300 348.9000000000001L302.25 347.3000000000001C392 284.3 508.9 250 650 250C800.2 250 939.95 307.8 1041.75 406.5L1048.4 413.1499999999999L1042.3999999999999 418.1499999999999A149.7 149.7 0 0 1 960.2499999999998 449.65L950 450H844.4499999999999C848.05 433.9000000000001 850 417.2 850 400V350H400V450L739.5 450.05L737.8 453.9499999999999A125.04999999999998 125.04999999999998 0 0 1 633.1999999999999 524.75L625 525H478.5A249.25 249.25 0 0 1 300.1 600zM200 650H150V300H200V650zM900 950A150 150 0 1 0 900 650A150 150 0 0 0 900 950zM900 850A50 50 0 1 1 900 750A50 50 0 0 1 900 850zM550 1100A150 150 0 1 0 550 800A150 150 0 0 0 550 1100zM550 1000A50 50 0 1 1 550 900A50 50 0 0 1 550 1000z","horizAdvX":"1200"},"hand-heart-fill":{"path":["M0 0h24v24H0z","M9.33 11.5h2.17A4.5 4.5 0 0 1 16 16H8.999L9 17h8v-1a5.578 5.578 0 0 0-.886-3H19a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.761 0-5.1-.59-7-1.625L6 10.071A6.967 6.967 0 0 1 9.33 11.5zM4 9a1 1 0 0 1 .993.883L5 10V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2zm9.646-5.425L14 3.93l.354-.354a2.5 2.5 0 1 1 3.535 3.536L14 11l-3.89-3.89a2.5 2.5 0 1 1 3.536-3.535z"],"unicode":"","glyph":"M466.5 625H575A225 225 0 0 0 800 400H449.9500000000001L450 350H850V400A278.90000000000003 278.90000000000003 0 0 1 805.7 550H950A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C511.95 150 395 179.5 300 231.25L300 696.45A348.34999999999997 348.34999999999997 0 0 0 466.5 625zM200 750A50 50 0 0 0 249.65 705.85L250 700V250A50 50 0 0 0 200 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H200zM682.3000000000001 1021.25L700 1003.5L717.6999999999999 1021.2A125 125 0 1 0 894.4499999999999 844.4L700 650L505.5 844.5A125 125 0 1 0 682.3 1021.25z","horizAdvX":"1200"},"hand-heart-line":{"path":["M0 0h24v24H0z","M5 9a1 1 0 0 1 1 1 6.97 6.97 0 0 1 4.33 1.5h2.17c1.332 0 2.53.579 3.353 1.499L19 13a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.79 0-5.15-.603-7.06-1.658A.998.998 0 0 1 5 20H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h3zm1.001 3L6 17.021l.045.033C7.84 18.314 10.178 19 13 19c3.004 0 5.799-1.156 7.835-3.13l.133-.133-.12-.1a2.994 2.994 0 0 0-1.643-.63L19 15l-2.112-.001c.073.322.112.657.112 1.001v1H8v-2l6.79-.001-.034-.078a2.501 2.501 0 0 0-2.092-1.416L12.5 13.5H9.57A4.985 4.985 0 0 0 6.002 12zM4 11H3v7h1v-7zm9.646-7.425L14 3.93l.354-.354a2.5 2.5 0 1 1 3.535 3.536L14 11l-3.89-3.89a2.5 2.5 0 1 1 3.536-3.535zm-2.12 1.415a.5.5 0 0 0-.06.637l.058.069L14 8.17l2.476-2.474a.5.5 0 0 0 .058-.638l-.058-.07a.5.5 0 0 0-.638-.057l-.07.058-1.769 1.768-1.767-1.77-.068-.056a.5.5 0 0 0-.638.058z"],"unicode":"","glyph":"M250 750A50 50 0 0 0 300 700A348.5 348.5 0 0 0 516.5 625H625C691.6 625 751.5 596.05 792.65 550.05L950 550A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C510.5000000000001 150 392.5 180.1500000000001 297 232.9000000000001A49.900000000000006 49.900000000000006 0 0 0 250 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H250zM300.05 600L300 348.95L302.25 347.3C392 284.3 508.9 250 650 250C800.2 250 939.95 307.8 1041.75 406.5L1048.4 413.1499999999999L1042.3999999999999 418.1499999999999A149.7 149.7 0 0 1 960.2499999999998 449.65L950 450L844.3999999999999 450.05C848.05 433.9500000000001 849.9999999999998 417.2 849.9999999999998 400V350H400V450L739.5 450.05L737.8 453.9499999999999A125.04999999999998 125.04999999999998 0 0 1 633.1999999999999 524.75L625 525H478.5A249.25 249.25 0 0 1 300.1 600zM200 650H150V300H200V650zM682.3000000000001 1021.25L700 1003.5L717.6999999999999 1021.2A125 125 0 1 0 894.4499999999999 844.4L700 650L505.5 844.5A125 125 0 1 0 682.3 1021.25zM576.3 950.5A25 25 0 0 1 573.3 918.65L576.1999999999999 915.2L700 791.5L823.8 915.2A25 25 0 0 1 826.6999999999999 947.1L823.8 950.6A25 25 0 0 1 791.9 953.45L788.4 950.55L699.9499999999999 862.1500000000001L611.5999999999999 950.65L608.1999999999999 953.45A25 25 0 0 1 576.3 950.55z","horizAdvX":"1200"},"hand-sanitizer-fill":{"path":["M0 0H24V24H0z","M17 2v2l-4-.001V6h3v2c2.21 0 4 1.79 4 4v8c0 1.105-.895 2-2 2H6c-1.105 0-2-.895-2-2v-8c0-2.21 1.79-4 4-4V6h3V3.999L7.5 4c-.63 0-1.37.49-2.2 1.6L3.7 4.4C4.87 2.84 6.13 2 7.5 2H17zm-4 10h-2v2H9v2h1.999L11 18h2l-.001-2H15v-2h-2v-2z"],"unicode":"","glyph":"M850 1100V1000L650 1000.05V900H800V800C910.5 800 1000 710.5 1000 600V200C1000 144.75 955.25 100 900 100H300C244.75 100 200 144.75 200 200V600C200 710.5 289.5 800 400 800V900H550V1000.05L375 1000C343.5 1000 306.5 975.5 265 920L185 980C243.5 1058 306.5 1100 375 1100H850zM650 600H550V500H450V400H549.95L550 300H650L649.95 400H750V500H650V600z","horizAdvX":"1200"},"hand-sanitizer-line":{"path":["M0 0H24V24H0z","M17 2v2l-4-.001V6h3v2c2.21 0 4 1.79 4 4v8c0 1.105-.895 2-2 2H6c-1.105 0-2-.895-2-2v-8c0-2.21 1.79-4 4-4V6h3V3.999L7.5 4c-.63 0-1.37.49-2.2 1.6L3.7 4.4C4.87 2.84 6.13 2 7.5 2H17zm-1 8H8c-1.105 0-2 .895-2 2v8h12v-8c0-1.105-.895-2-2-2zm-3 2v2h2v2h-2.001L13 18h-2l-.001-2H9v-2h2v-2h2z"],"unicode":"","glyph":"M850 1100V1000L650 1000.05V900H800V800C910.5 800 1000 710.5 1000 600V200C1000 144.75 955.25 100 900 100H300C244.75 100 200 144.75 200 200V600C200 710.5 289.5 800 400 800V900H550V1000.05L375 1000C343.5 1000 306.5 975.5 265 920L185 980C243.5 1058 306.5 1100 375 1100H850zM800 700H400C344.75 700 300 655.25 300 600V200H900V600C900 655.25 855.25 700 800 700zM650 600V500H750V400H649.95L650 300H550L549.95 400H450V500H550V600H650z","horizAdvX":"1200"},"handbag-fill":{"path":["M0 0h24v24H0z","M12 2a7 7 0 0 1 7 7h1.074a1 1 0 0 1 .997.923l.846 11a1 1 0 0 1-.92 1.074L20.92 22H3.08a1 1 0 0 1-1-1l.003-.077.846-11A1 1 0 0 1 3.926 9H5a7 7 0 0 1 7-7zm2 11h-4v2h4v-2zm-2-9a5 5 0 0 0-4.995 4.783L7 9h10a5 5 0 0 0-4.783-4.995L12 4z"],"unicode":"","glyph":"M600 1100A350 350 0 0 0 950 750H1003.7A50 50 0 0 0 1053.5500000000002 703.85L1095.8500000000001 153.8499999999999A50 50 0 0 0 1049.85 100.1499999999999L1046 100H154A50 50 0 0 0 104 150L104.15 153.8500000000001L146.45 703.8500000000001A50 50 0 0 0 196.3 750H250A350 350 0 0 0 600 1100zM700 550H500V450H700V550zM600 1000A250 250 0 0 1 350.25 760.8499999999999L350 750H850A250 250 0 0 1 610.8499999999999 999.75L600 1000z","horizAdvX":"1200"},"handbag-line":{"path":["M0 0h24v24H0z","M12 2a7 7 0 0 1 7 7h1.074a1 1 0 0 1 .997.923l.846 11a1 1 0 0 1-.92 1.074L20.92 22H3.08a1 1 0 0 1-1-1l.003-.077.846-11A1 1 0 0 1 3.926 9H5a7 7 0 0 1 7-7zm7.147 9H4.852l-.693 9H19.84l-.693-9zM14 13v2h-4v-2h4zm-2-9a5 5 0 0 0-4.995 4.783L7 9h10a5 5 0 0 0-4.783-4.995L12 4z"],"unicode":"","glyph":"M600 1100A350 350 0 0 0 950 750H1003.7A50 50 0 0 0 1053.5500000000002 703.85L1095.8500000000001 153.8499999999999A50 50 0 0 0 1049.85 100.1499999999999L1046 100H154A50 50 0 0 0 104 150L104.15 153.8500000000001L146.45 703.8500000000001A50 50 0 0 0 196.3 750H250A350 350 0 0 0 600 1100zM957.35 650H242.6L207.9500000000001 200H992L957.35 650zM700 550V450H500V550H700zM600 1000A250 250 0 0 1 350.25 760.8499999999999L350 750H850A250 250 0 0 1 610.8499999999999 999.75L600 1000z","horizAdvX":"1200"},"hard-drive-2-fill":{"path":["M0 0h24v24H0z","M21 3v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1zM5 16v4h14v-4H5zm10 1h2v2h-2v-2z"],"unicode":"","glyph":"M1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050zM250 400V200H950V400H250zM750 350H850V250H750V350z","horizAdvX":"1200"},"hard-drive-2-line":{"path":["M0 0h24v24H0z","M5 14h14V4H5v10zm0 2v4h14v-4H5zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm11 15h2v2h-2v-2z"],"unicode":"","glyph":"M250 500H950V1000H250V500zM250 400V200H950V400H250zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM750 350H850V250H750V350z","horizAdvX":"1200"},"hard-drive-fill":{"path":["M0 0h24v24H0z","M13.95 2H20a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8.05c.329.033.663.05 1 .05 5.523 0 10-4.477 10-10 0-.337-.017-.671-.05-1zM15 16v2h2v-2h-2zM11.938 2A8 8 0 0 1 3 10.938V3a1 1 0 0 1 1-1h7.938z"],"unicode":"","glyph":"M697.5 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V552.5C166.45 550.85 183.15 550 200 550C476.15 550 700 773.85 700 1050C700 1066.85 699.15 1083.55 697.5 1100zM750 400V300H850V400H750zM596.9 1100A400 400 0 0 0 150 653.1V1050A50 50 0 0 0 200 1100H596.9z","horizAdvX":"1200"},"hard-drive-line":{"path":["M0 0h24v24H0z","M5 10.938A8.004 8.004 0 0 0 11.938 4H5v6.938zm0 2.013V20h14V4h-5.05A10.003 10.003 0 0 1 5 12.95zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm11 14h2v2h-2v-2z"],"unicode":"","glyph":"M250 653.1A400.20000000000005 400.20000000000005 0 0 1 596.9 1000H250V653.1zM250 552.4499999999999V200H950V1000H697.5A500.15000000000003 500.15000000000003 0 0 0 250 552.5zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM750 400H850V300H750V400z","horizAdvX":"1200"},"hashtag":{"path":["M0 0h24v24H0z","M7.784 14l.42-4H4V8h4.415l.525-5h2.011l-.525 5h3.989l.525-5h2.011l-.525 5H20v2h-3.784l-.42 4H20v2h-4.415l-.525 5h-2.011l.525-5H9.585l-.525 5H7.049l.525-5H4v-2h3.784zm2.011 0h3.99l.42-4h-3.99l-.42 4z"],"unicode":"","glyph":"M389.2 500L410.2000000000001 700H200V800H420.75L447 1050H547.5500000000001L521.3 800H720.75L747 1050H847.5500000000001L821.3000000000001 800H1000V700H810.8000000000001L789.8000000000001 500H1000V400H779.25L753 150H652.4499999999999L678.7 400H479.2500000000001L453 150H352.4500000000001L378.7000000000001 400H200V500H389.2zM489.75 500H689.25L710.25 700H510.75L489.75 500z","horizAdvX":"1200"},"haze-2-fill":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm7.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM17 7a5 5 0 0 1 0 10c-1.844 0-3.51-1.04-5-3.122C10.51 15.96 8.844 17 7 17A5 5 0 0 1 7 7c1.844 0 3.51 1.04 5 3.122C13.49 8.04 15.156 7 17 7zm-5-5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM4.5 2a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM975 250A75 75 0 1 0 975 100A75 75 0 0 0 975 250zM225 250A75 75 0 1 0 225 100A75 75 0 0 0 225 250zM850 850A250 250 0 0 0 850 350C757.8000000000001 350 674.5 402 600 506.1C525.5 402 442.2 350 350 350A250 250 0 0 0 350 850C442.2 850 525.5 798 600 693.9C674.5 798 757.8000000000001 850 850 850zM600 1100A75 75 0 1 0 600 950A75 75 0 0 0 600 1100zM225 1100A75 75 0 1 0 225 950A75 75 0 0 0 225 1100zM975 1100A75 75 0 1 0 975 950A75 75 0 0 0 975 1100z","horizAdvX":"1200"},"haze-2-line":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm7.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM17 7a5 5 0 0 1 0 10c-1.844 0-3.51-1.04-5-3.122C10.51 15.96 8.844 17 7 17A5 5 0 0 1 7 7c1.844 0 3.51 1.04 5 3.122C13.49 8.04 15.156 7 17 7zM7 9a3 3 0 0 0 0 6c1.254 0 2.51-.875 3.759-2.854l.089-.147-.09-.145c-1.197-1.896-2.4-2.78-3.601-2.85L7 9zm10 0c-1.254 0-2.51.875-3.759 2.854l-.09.146.09.146c1.198 1.896 2.4 2.78 3.602 2.85L17 15a3 3 0 0 0 0-6zm-5-7a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM4.5 2a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM975 250A75 75 0 1 0 975 100A75 75 0 0 0 975 250zM225 250A75 75 0 1 0 225 100A75 75 0 0 0 225 250zM850 850A250 250 0 0 0 850 350C757.8000000000001 350 674.5 402 600 506.1C525.5 402 442.2 350 350 350A250 250 0 0 0 350 850C442.2 850 525.5 798 600 693.9C674.5 798 757.8000000000001 850 850 850zM350 750A150 150 0 0 1 350 450C412.7 450 475.5 493.75 537.95 592.6999999999999L542.4000000000001 600.05L537.9000000000001 607.3C478.05 702.0999999999999 417.9000000000001 746.3 357.85 749.8L350 750zM850 750C787.3000000000001 750 724.5 706.25 662.05 607.3000000000001L657.55 600L662.05 592.6999999999999C721.95 497.8999999999999 782.05 453.7 842.15 450.2L850 450A150 150 0 0 1 850 750zM600 1100A75 75 0 1 0 600 950A75 75 0 0 0 600 1100zM225 1100A75 75 0 1 0 225 950A75 75 0 0 0 225 1100zM975 1100A75 75 0 1 0 975 950A75 75 0 0 0 975 1100z","horizAdvX":"1200"},"haze-fill":{"path":["M0 0h24v24H0z","M6.083 13a6 6 0 1 1 11.834 0H6.083zM2 15h10v2H2v-2zm12 0h8v2h-8v-2zm2 4h4v2h-4v-2zM4 19h10v2H4v-2zm7-18h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM19.07 3.515l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M304.1500000000001 550A300 300 0 1 0 895.8500000000001 550H304.1500000000001zM100 450H600V350H100V450zM700 450H1100V350H700V450zM800 250H1000V150H800V250zM200 250H700V150H200V250zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM953.5 1024.25L1024.2 953.55L918.1500000000002 847.5L847.45 918.2L953.5 1024.25zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"haze-line":{"path":["M0 0h24v24H0z","M6.083 13a6 6 0 1 1 11.834 0h-2.043a4 4 0 1 0-7.748 0H6.083zM2 15h10v2H2v-2zm12 0h8v2h-8v-2zm2 4h4v2h-4v-2zM4 19h10v2H4v-2zm7-18h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM19.07 3.515l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M304.1500000000001 550A300 300 0 1 0 895.8500000000001 550H793.7000000000002A200 200 0 1 1 406.3000000000001 550H304.1500000000001zM100 450H600V350H100V450zM700 450H1100V350H700V450zM800 250H1000V150H800V250zM200 250H700V150H200V250zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM953.5 1024.25L1024.2 953.55L918.1500000000002 847.5L847.45 918.2L953.5 1024.25zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"hd-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25V9H6v6h1.5v-2.25h2V15H11V9H9.5v2.25h-2zm7-.75H16a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.5.5h-1.5v-3zM13 9v6h3a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5V750H300V450H375V562.5H475V450H550V750H475V637.5H375zM725 675H800A25 25 0 0 0 825 650V550A25 25 0 0 0 800 525H725V675zM650 750V450H800A100 100 0 0 1 900 550V650A100 100 0 0 1 800 750H650z","horizAdvX":"1200"},"hd-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25h2V9H11v6H9.5v-2.25h-2V15H6V9h1.5v2.25zm7-.75v3H16a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-1.5zM13 9h3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-3V9z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5H475V750H550V450H475V562.5H375V450H300V750H375V637.5zM725 675V525H800A25 25 0 0 1 825 550V650A25 25 0 0 1 800 675H725zM650 750H800A100 100 0 0 0 900 650V550A100 100 0 0 0 800 450H650V750z","horizAdvX":"1200"},"heading":{"path":["M0 0h24v24H0z","M17 11V4h2v17h-2v-8H7v8H5V4h2v7z"],"unicode":"","glyph":"M850 650V1000H950V150H850V550H350V150H250V1000H350V650z","horizAdvX":"1200"},"headphone-fill":{"path":["M0 0h24v24H0z","M4 12h3a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7C2 6.477 6.477 2 12 2s10 4.477 10 10v7a2 2 0 0 1-2 2h-3a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h3a8 8 0 1 0-16 0z"],"unicode":"","glyph":"M200 600H350A100 100 0 0 0 450 500V250A100 100 0 0 0 350 150H200A100 100 0 0 0 100 250V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V250A100 100 0 0 0 1000 150H850A100 100 0 0 0 750 250V500A100 100 0 0 0 850 600H1000A400 400 0 1 1 200 600z","horizAdvX":"1200"},"headphone-line":{"path":["M0 0h24v24H0z","M12 4a8 8 0 0 0-8 8h3a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7C2 6.477 6.477 2 12 2s10 4.477 10 10v7a2 2 0 0 1-2 2h-3a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h3a8 8 0 0 0-8-8zM4 14v5h3v-5H4zm13 0v5h3v-5h-3z"],"unicode":"","glyph":"M600 1000A400 400 0 0 1 200 600H350A100 100 0 0 0 450 500V250A100 100 0 0 0 350 150H200A100 100 0 0 0 100 250V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V250A100 100 0 0 0 1000 150H850A100 100 0 0 0 750 250V500A100 100 0 0 0 850 600H1000A400 400 0 0 1 600 1000zM200 500V250H350V500H200zM850 500V250H1000V500H850z","horizAdvX":"1200"},"health-book-fill":{"path":["M0 0H24V24H0z","M20 2c.552 0 1 .448 1 1v18c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1v-2H3v-2h2v-2H3v-2h2v-2H3V9h2V7H3V5h2V3c0-.552.448-1 1-1h14zm-6 6h-2v3H9v2h2.999L12 16h2l-.001-3H17v-2h-3V8z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V150C1050 122.4000000000001 1027.6 100 1000 100H300C272.4000000000001 100 250 122.4000000000001 250 150V250H150V350H250V450H150V550H250V650H150V750H250V850H150V950H250V1050C250 1077.6 272.4000000000001 1100 300 1100H1000zM700 800H600V650H450V550H599.95L600 400H700L699.95 550H850V650H700V800z","horizAdvX":"1200"},"health-book-line":{"path":["M0 0H24V24H0z","M20 2c.552 0 1 .448 1 1v18c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1v-2H3v-2h2v-2H3v-2h2v-2H3V9h2V7H3V5h2V3c0-.552.448-1 1-1h14zm-1 2H7v16h12V4zm-5 4v3h3v2h-3.001L14 16h-2l-.001-3H9v-2h3V8h2z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V150C1050 122.4000000000001 1027.6 100 1000 100H300C272.4000000000001 100 250 122.4000000000001 250 150V250H150V350H250V450H150V550H250V650H150V750H250V850H150V950H250V1050C250 1077.6 272.4000000000001 1100 300 1100H1000zM950 1000H350V200H950V1000zM700 800V650H850V550H699.95L700 400H600L599.95 550H450V650H600V800H700z","horizAdvX":"1200"},"heart-2-fill":{"path":["M0 0H24V24H0z","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236C5.515 3 8.093 2.56 10.261 3.44L6.343 7.358l1.414 1.415L12 4.53l-.013-.014.014.013c2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.35L599.9499999999999 125.75L176.05 550.35C70.85 668.1500000000001 74.8 849.0500000000001 187.8499999999999 962.15C275.75 1050 404.65 1072 513.05 1028L317.15 832.1L387.85 761.35L600 973.5L599.35 974.2L600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15z","horizAdvX":"1200"},"heart-2-line":{"path":["M0 0H24V24H0z","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zM5.172 6.172c-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454-1.487-1.49-3.881-1.562-5.453-.186l-4.202 4.203-1.415-1.414 2.825-2.827-.082-.069c-1.575-1.265-3.877-1.157-5.328.295z"],"unicode":"","glyph":"M1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.35L599.9499999999999 125.75L176.05 550.35C70.85 668.1500000000001 74.8 849.0500000000001 187.8499999999999 962.15C301.0999999999999 1075.3500000000001 482.25 1079.15 600.0499999999998 973.55C717.4999999999999 1079 898.9999999999999 1075.5 1012.15 962.15zM258.6 891.4000000000001C184.1 816.9 180.35 697.65 249 618.85L600 267.3L951 618.8000000000001C1019.7 697.6500000000001 1015.95 816.75 941.35 891.5C866.9999999999998 966 747.3 969.6 668.6999999999999 900.8L458.6 690.6500000000001L387.85 761.35L529.0999999999999 902.7L524.9999999999999 906.15C446.25 969.4 331.1499999999999 964 258.5999999999999 891.4000000000001z","horizAdvX":"1200"},"heart-3-fill":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5C9.5 20 2 16 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C475 200 100 400 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050z","horizAdvX":"1200"},"heart-3-line":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5C9.5 20 2 16 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm-3.566 15.604c.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 2.944 1.666 5.533 4.645 7.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C475 200 100 400 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050zM646.7 269.8000000000001C690.7500000000001 297.6000000000002 730.5000000000001 325.2500000000001 767.7 354.85C916.75 473.35 1000 602.85 1000 750C1000 868 923.15 950 825 950C771.1999999999999 950 713 921.5 670.6999999999999 879.3L600 808.5999999999999L529.3000000000001 879.3C487 921.5 428.8 950 375 950C278 950 200 867.2 200 750C200 602.8000000000001 283.3 473.3499999999999 432.25 354.85C469.4999999999999 325.2500000000001 509.2499999999999 297.6000000000002 553.3 269.8500000000002C568.2499999999999 260.4000000000001 583.05 251.35 599.9999999999999 241.2500000000001C616.9499999999999 251.3500000000003 631.7499999999999 260.4000000000001 646.6999999999998 269.8000000000002z","horizAdvX":"1200"},"heart-add-fill":{"path":["M0 0H24V24H0z","M19 14v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2zm1.243-9.243c2.16 2.166 2.329 5.557.507 7.91C19.926 12.24 18.99 12 18 12c-3.314 0-6 2.686-6 6 0 1.009.249 1.96.689 2.794l-.69.691-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M950 500V350H1100V250H950V100H850V250H700V350H850V500H950zM1012.15 962.15C1120.1499999999999 853.85 1128.6 684.3 1037.5 566.65C996.3 588 949.4999999999998 600 900 600C734.3 600 600 465.7 600 300C600 249.55 612.45 202 634.45 160.3L599.95 125.75L176.0500000000001 550.35C70.85 668.1500000000001 74.8 849.0500000000001 187.85 962.15C301.1 1075.3500000000001 482.25 1079.15 600.0500000000001 973.55C717.5000000000001 1079 899 1075.5 1012.15 962.15z","horizAdvX":"1200"},"heart-add-line":{"path":["M0 0H24V24H0z","M19 14v3h3v2h-3.001L19 22h-2l-.001-3H14v-2h3v-3h2zm1.243-9.243c2.262 2.268 2.34 5.88.236 8.235l-1.42-1.418c1.331-1.524 1.261-3.914-.232-5.404-1.503-1.499-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-1.575-1.412-3.991-1.35-5.494.154-1.49 1.49-1.565 3.875-.192 5.451l8.432 8.446L12 21.485 3.52 12.993c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M950 500V350H1100V250H949.95L950 100H850L849.9499999999999 250H700V350H850V500H950zM1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.4000000000001L952.9499999999998 621.3C1019.4999999999998 697.5 1015.9999999999998 817 941.35 891.5C866.1999999999999 966.45 745.3499999999999 969.65 666.8499999999999 899.15L600.0999999999999 839.25L533.3 899.1C454.55 969.7 333.75 966.6 258.6 891.4000000000001C184.0999999999999 816.9 180.3499999999999 697.65 249 618.85L670.5999999999999 196.5500000000001L600 125.75L176 550.35C70.8 668.15 74.75 849.05 187.8 962.15C301.0500000000001 1075.35 482.2 1079.15 600 973.55C717.45 1079 898.9499999999999 1075.5 1012.1 962.15z","horizAdvX":"1200"},"heart-fill":{"path":["M0 0H24V24H0z","M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228z"],"unicode":"","glyph":"M600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15C1125.2500000000002 848.75 1129.15 668.15 1023.9500000000002 550.35L599.9500000000002 125.75L176.0500000000001 550.35C70.8500000000001 668.1500000000001 74.8000000000001 849.0500000000001 187.8500000000001 962.15C301.1000000000001 1075.3500000000001 482.2500000000002 1079.15 600.0500000000001 973.55z","horizAdvX":"1200"},"heart-line":{"path":["M0 0H24V24H0z","M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228zm6.826 1.641c-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-1.575-1.412-3.99-1.35-5.494.154-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454z"],"unicode":"","glyph":"M600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15C1125.2500000000002 848.75 1129.15 668.15 1023.9500000000002 550.35L599.9500000000002 125.75L176.0500000000001 550.35C70.8500000000001 668.1500000000001 74.8000000000001 849.0500000000001 187.8500000000001 962.15C301.1000000000001 1075.3500000000001 482.2500000000002 1079.15 600.0500000000001 973.55zM941.35 891.5C866.3499999999999 966.6 745.3499999999999 969.65 666.8499999999999 899.15L600.0999999999999 839.25L533.3 899.1C454.55 969.7 333.7999999999999 966.6 258.6 891.4000000000001C184.0999999999999 816.9 180.3499999999999 697.65 249 618.85L600 267.3L951 618.8000000000001C1019.7 697.6500000000001 1015.95 816.75 941.35 891.5z","horizAdvX":"1200"},"heart-pulse-fill":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.978-1.187-7.084-3.937-9.132-8.5h4.698l.934-1.556 3 5L13.566 13H17v-2h-4.566l-.934 1.556-3-5L6.434 11H2.21C2.074 10.363 2 9.696 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C501.1 184.35 245.8 321.85 143.4 550H378.3L425 627.8000000000001L575 377.8000000000001L678.3000000000001 550H850V650H621.7L575.0000000000001 572.1999999999999L425.0000000000001 822.1999999999999L321.7 650H110.5C103.7 681.85 100 715.2 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050z","horizAdvX":"1200"},"heart-pulse-line":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.977-1.186-7.083-3.937-9.131-8.499L1 13v-2h1.21C2.074 10.364 2 9.698 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm0 2c-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 .685.09 1.352.267 2h2.167L8.5 7.556l3 5L12.434 11H17v2h-3.434L11.5 16.444l-3-5L7.566 13H5.108c.79 1.374 1.985 2.668 3.537 3.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C501.15 184.3 245.85 321.85 143.45 549.95L50 550V650H110.5C103.7 681.8 100 715.0999999999999 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050zM825 950C771.1999999999999 950 713 921.5 670.6999999999999 879.3L600 808.5999999999999L529.3000000000001 879.3C487 921.5 428.8 950 375 950C278 950 200 867.2 200 750C200 715.75 204.5 682.4 213.35 650H321.7L425 822.2L575 572.1999999999999L621.6999999999999 650H850V550H678.3L575 377.8000000000001L425 627.8000000000001L378.3 550H255.4C294.9 481.3 354.65 416.6 432.25 354.85C469.4999999999999 325.2500000000001 509.2499999999999 297.6000000000002 553.3 269.8500000000002C568.2499999999999 260.4000000000001 583.05 251.35 599.9999999999999 241.2500000000001C616.9499999999999 251.3500000000003 631.7499999999999 260.4000000000001 646.6999999999998 269.8000000000002C690.7499999999999 297.6000000000003 730.4999999999999 325.2500000000001 767.6999999999998 354.8500000000003C916.75 473.35 1000 602.85 1000 750C1000 868 923.15 950 825 950z","horizAdvX":"1200"},"hearts-fill":{"path":["M0 0H24V24H0z","M17.363 11.045c1.404-1.393 3.68-1.393 5.084 0 1.404 1.394 1.404 3.654 0 5.047L17 21.5l-5.447-5.408c-1.404-1.393-1.404-3.653 0-5.047 1.404-1.393 3.68-1.393 5.084 0l.363.36.363-.36zm1.88-6.288c.94.943 1.503 2.118 1.689 3.338-1.333-.248-2.739-.01-3.932.713-2.15-1.303-4.994-1.03-6.856.818-2.131 2.115-2.19 5.515-.178 7.701l.178.185 2.421 2.404L11 21.485 2.52 12.993C.417 10.637.496 7.019 2.757 4.757c2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M868.15 647.75C938.35 717.4000000000001 1052.1499999999999 717.4000000000001 1122.35 647.75C1192.55 578.05 1192.55 465.05 1122.35 395.4000000000001L850 125L577.6500000000001 395.4000000000001C507.45 465.0500000000001 507.45 578.0500000000001 577.6500000000001 647.7500000000001C647.85 717.4000000000001 761.65 717.4000000000001 831.85 647.7500000000001L850 629.7500000000001L868.15 647.7500000000001zM962.15 962.15C1009.15 915 1037.3 856.25 1046.6 795.25C979.95 807.6500000000001 909.6499999999997 795.75 850 759.6000000000001C742.5 824.7500000000001 600.3 811.1000000000001 507.2 718.7C400.65 612.9500000000002 397.7000000000001 442.9500000000001 498.3 333.6500000000001L507.2 324.4000000000002L628.25 204.2000000000002L550 125.75L126 550.35C20.85 668.15 24.8 849.05 137.85 962.15C251.1 1075.35 432.25 1079.15 550.05 973.55C667.5 1079 849 1075.5 962.15 962.15z","horizAdvX":"1200"},"hearts-line":{"path":["M0 0H24V24H0z","M19.243 4.757c1.462 1.466 2.012 3.493 1.65 5.38.568.16 1.106.463 1.554.908 1.404 1.394 1.404 3.654 0 5.047L17 21.5l-3.022-3L11 21.485 2.52 12.993C.417 10.637.496 7.019 2.757 4.757c2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zm-6.281 7.708c-.616.611-.616 1.597 0 2.208L17 18.682l4.038-4.009c.616-.611.616-1.597 0-2.208-.624-.62-1.642-.62-2.268.002l-1.772 1.754-1.407-1.396-.363-.36c-.624-.62-1.642-.62-2.266 0zm-8.79-6.293c-1.49 1.49-1.565 3.875-.192 5.451L11 18.654l1.559-1.562-1.006-1c-1.404-1.393-1.404-3.653 0-5.047 1.404-1.393 3.68-1.393 5.084 0l.363.36.363-.36c.425-.421.93-.715 1.465-.882.416-1.367.078-2.912-1.001-3.993-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-1.575-1.412-3.99-1.35-5.494.154z"],"unicode":"","glyph":"M962.15 962.15C1035.25 888.85 1062.75 787.5 1044.6499999999999 693.15C1073.05 685.15 1099.95 670 1122.3499999999997 647.75C1192.5499999999997 578.05 1192.5499999999997 465.05 1122.3499999999997 395.4000000000001L850 125L698.9 275L550 125.75L126 550.35C20.85 668.15 24.8 849.05 137.85 962.15C251.1 1075.35 432.25 1079.15 550.05 973.55C667.5 1079 849 1075.5 962.15 962.15zM648.1 576.75C617.3 546.1999999999999 617.3 496.9 648.1 466.35L850 265.9000000000001L1051.9 466.3500000000001C1082.7 496.9000000000001 1082.7 546.2 1051.9 576.7500000000001C1020.7 607.75 969.8 607.75 938.5 576.6500000000001L849.9000000000001 488.95L779.5500000000001 558.75L761.4000000000001 576.75C730.2 607.75 679.3000000000001 607.75 648.1 576.75zM208.6 891.4000000000001C134.1 816.9 130.35 697.65 199 618.85L550 267.3L627.9499999999999 345.4000000000001L577.65 395.4000000000001C507.4499999999999 465.0500000000001 507.4499999999999 578.0500000000001 577.65 647.7500000000001C647.8499999999999 717.4000000000001 761.65 717.4000000000001 831.85 647.7500000000001L850 629.7500000000001L868.15 647.7500000000001C889.4 668.8000000000001 914.65 683.5000000000001 941.4 691.8500000000001C962.2 760.2 945.3 837.45 891.3499999999999 891.5000000000001C816.3499999999999 966.6000000000003 695.3499999999999 969.65 616.8499999999999 899.1500000000001L550.0999999999999 839.2500000000001L483.3 899.1000000000001C404.55 969.7 283.7999999999999 966.6000000000003 208.5999999999999 891.4000000000001z","horizAdvX":"1200"},"heavy-showers-fill":{"path":["M0 0h24v24H0z","M13 18v5h-2v-5H9v3H7v-3.252a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001v3h-2v-3h-2z"],"unicode":"","glyph":"M650 300V50H550V300H450V150H350V312.5999999999999A400 400 0 1 0 822.8999999999999 845.0999999999999A275 275 0 1 0 875 300L850 299.95V149.9500000000001H750V299.95H650z","horizAdvX":"1200"},"heavy-showers-line":{"path":["M0 0h24v24H0z","M5 16.93a8 8 0 1 1 11.458-9.831A5.5 5.5 0 0 1 19 17.793v-2.13a3.5 3.5 0 1 0-4-5.612V10a6 6 0 1 0-10 4.472v2.458zM7 14h2v6H7v-6zm8 0h2v6h-2v-6zm-4 3h2v6h-2v-6z"],"unicode":"","glyph":"M250 353.5A400 400 0 1 0 822.8999999999999 845.05A275 275 0 0 0 950 310.35V416.85A175 175 0 1 1 750 697.45V700A300 300 0 1 1 250 476.4V353.5zM350 500H450V200H350V500zM750 500H850V200H750V500zM550 350H650V50H550V350z","horizAdvX":"1200"},"history-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12h2c0 4.418 3.582 8 8 8s8-3.582 8-8-3.582-8-8-8C9.536 4 7.332 5.114 5.865 6.865L8 9H2V3l2.447 2.446C6.28 3.336 8.984 2 12 2zm1 5v4.585l3.243 3.243-1.415 1.415L11 12.413V7h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600H200C200 379.1 379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000C476.8 1000 366.6 944.3 293.25 856.75L400 750H100V1050L222.35 927.7C314 1033.2 449.2 1100 600 1100zM650 850V620.75L812.15 458.5999999999999L741.4 387.8499999999999L550 579.35V850H650z","horizAdvX":"1200"},"history-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12h2c0 4.418 3.582 8 8 8s8-3.582 8-8-3.582-8-8-8C9.25 4 6.824 5.387 5.385 7.5H8v2H2v-6h2V6c1.824-2.43 4.729-4 8-4zm1 5v4.585l3.243 3.243-1.415 1.415L11 12.413V7h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600H200C200 379.1 379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000C462.5 1000 341.2 930.65 269.25 825H400V725H100V1025H200V900C291.2 1021.5 436.45 1100 600 1100zM650 850V620.75L812.15 458.5999999999999L741.4 387.8499999999999L550 579.35V850H650z","horizAdvX":"1200"},"home-2-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200z","horizAdvX":"1200"},"home-2-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250z","horizAdvX":"1200"},"home-3-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8 15v2h8v-2H8z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM400 450V350H800V450H400z","horizAdvX":"1200"},"home-3-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2-4h8v2H8v-2z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM400 450H800V350H400V450z","horizAdvX":"1200"},"home-4-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-9-7v6h2v-6h-2z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM550 550V250H650V550H550z","horizAdvX":"1200"},"home-4-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zm-6-2h5V9.157l-6-5.454-6 5.454V19h5v-6h2v6z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM650 250H900V742.15L600 1014.85L300 742.15V250H550V550H650V250z","horizAdvX":"1200"},"home-5-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-10-7v6h2v-6h-2z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM550 550V250H650V550H550z","horizAdvX":"1200"},"home-5-line":{"path":["M0 0h24v24H0z","M13 19h6V9.978l-7-5.444-7 5.444V19h6v-6h2v6zm8 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"],"unicode":"","glyph":"M650 250H950V701.1L600 973.3L250 701.1V250H550V550H650V250zM1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200z","horizAdvX":"1200"},"home-6-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zM7 15v2h10v-2H7z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM350 450V350H850V450H350z","horizAdvX":"1200"},"home-6-line":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14zM7 15h10v2H7v-2z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM950 250V701.1L600 973.3L250 701.1V250H950zM350 450H850V350H350V450z","horizAdvX":"1200"},"home-7-fill":{"path":["M0 0h24v24H0z","M19 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H0l10.327-9.388a1 1 0 0 1 1.346 0L22 11h-3v9zm-8-5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M950 200A50 50 0 0 0 900 150H200A50 50 0 0 0 150 200V650H0L516.35 1119.4A50 50 0 0 0 583.65 1119.4L1100 650H950V200zM550 450A125 125 0 1 1 550 700A125 125 0 0 1 550 450z","horizAdvX":"1200"},"home-7-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm6-4a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM600 450A125 125 0 1 0 600 700A125 125 0 0 0 600 450z","horizAdvX":"1200"},"home-8-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM9 10v6h6v-6H9zm2 2h2v2h-2v-2z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM450 700V400H750V700H450zM550 600H650V500H550V600z","horizAdvX":"1200"},"home-8-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm3-9h6v6H9v-6zm2 2v2h2v-2h-2z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM450 700H750V400H450V700zM550 600V500H650V600H550z","horizAdvX":"1200"},"home-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200z","horizAdvX":"1200"},"home-gear-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8.592 13.808l-.991.572 1 1.733.993-.573a3.5 3.5 0 0 0 1.405.811v1.145h2.002V16.35a3.5 3.5 0 0 0 1.405-.81l.992.572L16.4 14.38l-.991-.572a3.504 3.504 0 0 0 0-1.62l.991-.573-1-1.733-.993.573A3.5 3.5 0 0 0 13 9.645V8.5h-2.002v1.144a3.5 3.5 0 0 0-1.405.811l-.992-.573L7.6 11.616l.991.572a3.504 3.504 0 0 0 0 1.62zm3.408.69a1.5 1.5 0 1 1-.002-3.001 1.5 1.5 0 0 1 .002 3z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM429.6 509.6L380.0500000000001 481L430.0500000000001 394.35L479.7 423A175 175 0 0 1 549.95 382.4500000000001V325.2000000000001H650.0500000000001V382.4999999999999A175 175 0 0 1 720.3000000000001 423L769.9 394.3999999999999L819.9999999999999 481L770.4499999999999 509.5999999999999A175.2 175.2 0 0 1 770.4499999999999 590.5999999999999L819.9999999999999 619.2499999999999L769.9999999999999 705.8999999999999L720.3499999999999 677.2499999999999A175 175 0 0 1 650 717.75V775H549.9000000000001V717.8A175 175 0 0 1 479.6500000000001 677.25L430.0500000000002 705.9000000000001L380 619.2L429.55 590.6A175.2 175.2 0 0 1 429.55 509.6zM600 475.1A75 75 0 1 0 599.9 625.15A75 75 0 0 0 600 475.15z","horizAdvX":"1200"},"home-gear-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2.591-5.191a3.508 3.508 0 0 1 0-1.622l-.991-.572 1-1.732.991.573a3.495 3.495 0 0 1 1.404-.812V8.5h2v1.144c.532.159 1.01.44 1.404.812l.991-.573 1 1.731-.991.573a3.508 3.508 0 0 1 0 1.622l.991.572-1 1.731-.991-.572a3.495 3.495 0 0 1-1.404.811v1.145h-2V16.35a3.495 3.495 0 0 1-1.404-.811l-.991.572-1-1.73.991-.573zm3.404.688a1.5 1.5 0 1 0 0-2.998 1.5 1.5 0 0 0 0 2.998z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM429.5500000000001 509.55A175.4 175.4 0 0 0 429.5500000000001 590.65L380.0000000000001 619.2499999999999L430.0000000000001 705.8499999999999L479.5500000000001 677.1999999999998A174.75000000000003 174.75000000000003 0 0 0 549.75 717.7999999999998V775H649.75V717.8C676.35 709.8499999999999 700.25 695.8 719.95 677.2L769.5 705.85L819.5 619.3000000000001L769.95 590.65A175.4 175.4 0 0 0 769.95 509.5500000000001L819.5 480.95L769.5 394.4000000000001L719.95 423A174.75000000000003 174.75000000000003 0 0 0 649.75 382.4500000000001V325.2000000000001H549.75V382.4999999999999A174.75000000000003 174.75000000000003 0 0 0 479.5500000000001 423.05L430.0000000000001 394.45L380.0000000000001 480.95L429.5500000000001 509.6zM599.75 475.1499999999999A75 75 0 1 1 599.75 625.0499999999998A75 75 0 0 1 599.75 475.1499999999999z","horizAdvX":"1200"},"home-heart-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-8-3l3.359-3.359a2.25 2.25 0 1 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 1 0-3.182 3.182L12 17z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM600 350L767.95 517.95A112.5 112.5 0 1 1 608.85 677.0500000000001L600 668.2L591.15 677.0500000000001A112.5 112.5 0 1 1 432.05 517.95L600 350z","horizAdvX":"1200"},"home-heart-line":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-2-1V9.157l-6-5.454-6 5.454V19h12zm-6-2l-3.359-3.359a2.25 2.25 0 1 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 1 1 3.182 3.182L12 17z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM900 250V742.15L600 1014.85L300 742.15V250H900zM600 350L432.05 517.95A112.5 112.5 0 1 0 591.15 677.0500000000001L600 668.2L608.85 677.0500000000001A112.5 112.5 0 1 0 767.95 517.95L600 350z","horizAdvX":"1200"},"home-line":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM950 250V701.1L600 973.3L250 701.1V250H950z","horizAdvX":"1200"},"home-smile-2-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V734.3A50 50 0 0 0 169 773.55L569 1089.1A50 50 0 0 0 631 1089.1L1030.9999999999998 773.6000000000001A50 50 0 0 0 1049.9999999999998 734.3000000000001V200zM350 600A250 250 0 0 1 850 600H750A150 150 0 0 0 450 600H350z","horizAdvX":"1200"},"home-smile-2-line":{"path":["M0 0h24v24H0z","M19 19V9.799l-7-5.522-7 5.522V19h14zm2 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M950 250V710.05L600 986.15L250 710.05V250H950zM1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V734.3A50 50 0 0 0 169 773.55L569 1089.1A50 50 0 0 0 631 1089.1L1030.9999999999998 773.6000000000001A50 50 0 0 0 1049.9999999999998 734.3000000000001V200zM350 600H450A150 150 0 0 1 750 600H850A250 250 0 0 0 350 600z","horizAdvX":"1200"},"home-smile-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7.5 13a4.5 4.5 0 1 0 9 0h-2a2.5 2.5 0 1 1-5 0h-2z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM375 550A225 225 0 1 1 825 550H725A125 125 0 1 0 475 550H375z","horizAdvX":"1200"},"home-smile-line":{"path":["M0 0h24v24H0z","M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM7.5 13h2a2.5 2.5 0 1 0 5 0h2a4.5 4.5 0 1 1-9 0z"],"unicode":"","glyph":"M300 250H900V742.15L600 1014.85L300 742.15V250zM950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM375 550H475A125 125 0 1 1 725 550H825A225 225 0 1 0 375 550z","horizAdvX":"1200"},"home-wifi-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7 11v2a5 5 0 0 1 5 5h2a7 7 0 0 0-7-7zm0 4v3h3a3 3 0 0 0-3-3z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM350 650V550A250 250 0 0 0 600 300H700A350 350 0 0 1 350 650zM350 450V300H500A150 150 0 0 1 350 450z","horizAdvX":"1200"},"home-wifi-line":{"path":["M0 0h24v24H0z","M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM8 10a7 7 0 0 1 7 7h-2a5 5 0 0 0-5-5v-2zm0 4a3 3 0 0 1 3 3H8v-3z"],"unicode":"","glyph":"M300 250H900V742.15L600 1014.85L300 742.15V250zM950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM400 700A350 350 0 0 0 750 350H650A250 250 0 0 1 400 600V700zM400 500A150 150 0 0 0 550 350H400V500z","horizAdvX":"1200"},"honor-of-kings-fill":{"path":["M0 0H24V24H0z","M21.158 4.258c.034 3.5.591 4.811.788 6.701.301 2.894-.657 5.894-2.875 8.112-3.666 3.666-9.471 3.89-13.4.673l2.852-2.853c2.344 1.67 5.617 1.454 7.72-.648 2.102-2.103 2.318-5.377.648-7.72l4.267-4.265zm-2.83-.002l-2.851 2.853c-2.344-1.67-5.617-1.454-7.72.648-2.102 2.103-2.318 5.376-.648 7.72l-4.267 4.265c-.034-3.5-.591-4.811-.788-6.701-.301-2.894.657-5.894 2.875-8.112 3.666-3.666 9.471-3.89 13.4-.673zM12 8c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 2.5c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"],"unicode":"","glyph":"M1057.9 987.1C1059.6 812.1 1087.45 746.5500000000001 1097.3000000000002 652.0500000000001C1112.35 507.35 1064.45 357.3499999999999 953.55 246.4500000000001C770.25 63.1500000000001 480.0000000000001 51.95 283.5500000000001 212.8L426.1500000000001 355.4500000000001C543.35 271.9500000000001 707 282.75 812.1500000000001 387.85C917.2500000000002 493.0000000000001 928.0500000000002 656.7 844.5500000000001 773.85L1057.9 987.1zM916.4 987.2L773.8500000000001 844.55C656.6500000000002 928.05 493.0000000000002 917.25 387.8500000000002 812.1500000000001C282.7500000000003 707 271.9500000000002 543.35 355.4500000000002 426.15L142.1000000000002 212.9C140.4000000000002 387.9 112.5500000000002 453.4499999999999 102.7000000000002 547.9499999999999C87.6500000000002 692.65 135.5500000000002 842.65 246.4500000000002 953.55C429.7500000000003 1136.85 720.0000000000002 1148.05 916.4500000000002 987.2zM600 800C710.5 800 800 710.5 800 600S710.5 400 600 400S400 489.5 400 600S489.4999999999999 800 600 800zM600 675C558.6 675 525 641.4 525 600S558.6 525 600 525S675 558.6 675 600S641.4 675 600 675z","horizAdvX":"1200"},"honor-of-kings-line":{"path":["M0 0H24V24H0z","M18.328 4.256l-1.423 1.423c-3.138-2.442-7.677-2.22-10.562.664-2.374 2.374-2.944 5.868-1.71 8.78l2.417-2.417c-.213-1.503.258-3.085 1.414-4.242 1.71-1.71 4.352-1.922 6.293-.636l-1.464 1.464c-1.115-.532-2.49-.337-3.414.587-.924.923-1.12 2.299-.587 3.414l-6.45 6.45c-.034-3.5-.591-4.812-.788-6.702-.301-2.894.657-5.894 2.875-8.112 3.666-3.666 9.471-3.89 13.4-.673zm2.83.002c.034 3.5.591 4.811.788 6.701.301 2.894-.657 5.894-2.875 8.112-3.666 3.666-9.471 3.89-13.4.673l1.424-1.423c3.138 2.442 7.677 2.22 10.562-.664 2.374-2.374 2.944-5.868 1.71-8.78l-2.417 2.417c.213 1.503-.258 3.085-1.414 4.242-1.71 1.71-4.352 1.922-6.293.636l1.464-1.464c1.115.532 2.49.337 3.414-.587.924-.923 1.12-2.299.587-3.414l6.45-6.45z"],"unicode":"","glyph":"M916.4 987.2L845.25 916.05C688.35 1038.15 461.4000000000001 1027.05 317.1500000000001 882.85C198.4500000000001 764.15 169.9500000000001 589.4499999999999 231.6500000000001 443.85L352.5000000000001 564.7C341.8500000000001 639.85 365.4000000000001 718.95 423.2000000000001 776.8000000000001C508.7000000000002 862.3000000000001 640.8000000000002 872.9000000000001 737.85 808.6000000000001L664.6500000000001 735.4000000000001C608.9000000000001 762.0000000000001 540.1500000000001 752.2500000000001 493.95 706.0500000000002C447.7500000000001 659.9000000000001 437.9500000000001 591.1000000000001 464.6000000000001 535.3500000000001L142.1000000000001 212.85C140.4000000000001 387.85 112.5500000000001 453.4500000000002 102.7000000000001 547.95C87.6500000000001 692.6500000000001 135.5500000000001 842.6500000000001 246.4500000000001 953.55C429.7500000000001 1136.8500000000001 720.0000000000001 1148.0500000000002 916.45 987.2zM1057.9 987.1C1059.6 812.1 1087.45 746.5500000000001 1097.3000000000002 652.0500000000001C1112.35 507.35 1064.45 357.3499999999999 953.55 246.4500000000001C770.25 63.1500000000001 480.0000000000001 51.95 283.5500000000001 212.8L354.7500000000001 283.9500000000001C511.65 161.8500000000001 738.6 172.9500000000003 882.85 317.1500000000002C1001.55 435.8500000000003 1030.05 610.5500000000002 968.35 756.1500000000001L847.5000000000001 635.3000000000002C858.1500000000002 560.1500000000001 834.6000000000001 481.0500000000001 776.8000000000002 423.2000000000002C691.3000000000002 337.7000000000001 559.2000000000002 327.1000000000002 462.1500000000001 391.4000000000001L535.3500000000001 464.6000000000001C591.1000000000001 438.0000000000001 659.8500000000001 447.7500000000003 706.0500000000001 493.9500000000002C752.2500000000001 540.1000000000001 762.0500000000002 608.9000000000001 735.4000000000001 664.6500000000001L1057.9 987.15z","horizAdvX":"1200"},"honour-fill":{"path":["M0 0h24v24H0z","M21 4v14.721a.5.5 0 0 1-.298.458L12 23.03 3.298 19.18A.5.5 0 0 1 3 18.72V4H1V2h22v2h-2zM8 12v2h8v-2H8zm0-4v2h8V8H8z"],"unicode":"","glyph":"M1050 1000V263.9500000000001A25 25 0 0 0 1035.1000000000001 241.0500000000001L600 48.5L164.9 241A25 25 0 0 0 150 264V1000H50V1100H1150V1000H1050zM400 600V500H800V600H400zM400 800V700H800V800H400z","horizAdvX":"1200"},"honour-line":{"path":["M0 0h24v24H0z","M21 4v14.721a.5.5 0 0 1-.298.458L12 23.03 3.298 19.18A.5.5 0 0 1 3 18.72V4H1V2h22v2h-2zM5 4v13.745l7 3.1 7-3.1V4H5zm3 4h8v2H8V8zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1050 1000V263.9500000000001A25 25 0 0 0 1035.1000000000001 241.0500000000001L600 48.5L164.9 241A25 25 0 0 0 150 264V1000H50V1100H1150V1000H1050zM250 1000V312.7500000000001L600 157.75L950 312.7500000000001V1000H250zM400 800H800V700H400V800zM400 600H800V500H400V600z","horizAdvX":"1200"},"hospital-fill":{"path":["M0 0h24v24H0z","M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8H9v2h2v2h2v-2h2V8h-2V6h-2v2zm3 12h2v-6H8v6h2v-4h4v4z"],"unicode":"","glyph":"M1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM550 800H450V700H550V600H650V700H750V800H650V900H550V800zM700 200H800V500H400V200H500V400H700V200z","horizAdvX":"1200"},"hospital-line":{"path":["M0 0h24v24H0z","M8 20v-6h8v6h3V4H5v16h3zm2 0h4v-4h-4v4zm11 0h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8V6h2v2h2v2h-2v2h-2v-2H9V8h2z"],"unicode":"","glyph":"M400 200V500H800V200H950V1000H250V200H400zM500 200H700V400H500V200zM1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM550 800V900H650V800H750V700H650V600H550V700H450V800H550z","horizAdvX":"1200"},"hotel-bed-fill":{"path":["M0 0h24v24H0z","M22 11v9h-2v-3H4v3H2V4h2v10h8V7h6a4 4 0 0 1 4 4zM8 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M1100 650V200H1000V350H200V200H100V1000H200V500H600V850H900A200 200 0 0 0 1100 650zM400 550A150 150 0 1 0 400 850A150 150 0 0 0 400 550z","horizAdvX":"1200"},"hotel-bed-line":{"path":["M0 0h24v24H0z","M22 11v9h-2v-3H4v3H2V4h2v10h8V7h6a4 4 0 0 1 4 4zm-2 3v-3a2 2 0 0 0-2-2h-4v5h6zM8 11a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M1100 650V200H1000V350H200V200H100V1000H200V500H600V850H900A200 200 0 0 0 1100 650zM1000 500V650A100 100 0 0 1 900 750H700V500H1000zM400 650A50 50 0 1 1 400 750A50 50 0 0 1 400 650zM400 550A150 150 0 1 0 400 850A150 150 0 0 0 400 550z","horizAdvX":"1200"},"hotel-fill":{"path":["M0 0h24v24H0z","M17 19h2v-8h-6v8h2v-6h2v6zM3 19V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2H2v-2h1zm4-8v2h2v-2H7zm0 4v2h2v-2H7zm0-8v2h2V7H7z"],"unicode":"","glyph":"M850 250H950V650H650V250H750V550H850V250zM150 250V1000A50 50 0 0 0 200 1050H900A50 50 0 0 0 950 1000V750H1050V250H1100V150H100V250H150zM350 650V550H450V650H350zM350 450V350H450V450H350zM350 850V750H450V850H350z","horizAdvX":"1200"},"hotel-line":{"path":["M0 0h24v24H0z","M22 21H2v-2h1V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2zm-5-2h2v-8h-6v8h2v-6h2v6zm0-10V5H5v14h6V9h6zM7 11h2v2H7v-2zm0 4h2v2H7v-2zm0-8h2v2H7V7z"],"unicode":"","glyph":"M1100 150H100V250H150V1000A50 50 0 0 0 200 1050H900A50 50 0 0 0 950 1000V750H1050V250H1100V150zM850 250H950V650H650V250H750V550H850V250zM850 750V950H250V250H550V750H850zM350 650H450V550H350V650zM350 450H450V350H350V450zM350 850H450V750H350V850z","horizAdvX":"1200"},"hotspot-fill":{"path":["M0 0h24v24H0z","M11 2v9h7v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h6zm2 5a2 2 0 0 1 2 2h-2V7zm0-3a5 5 0 0 1 5 5h-2a3 3 0 0 0-3-3V4zm0-3a8 8 0 0 1 8 8h-2a6 6 0 0 0-6-6V1z"],"unicode":"","glyph":"M550 1100V650H900V150A50 50 0 0 0 850 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H550zM650 850A100 100 0 0 0 750 750H650V850zM650 1000A250 250 0 0 0 900 750H800A150 150 0 0 1 650 900V1000zM650 1150A400 400 0 0 0 1050 750H950A300 300 0 0 1 650 1050V1150z","horizAdvX":"1200"},"hotspot-line":{"path":["M0 0h24v24H0z","M11 2v2H7v16h10v-9h2v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h5zm2 5a2 2 0 0 1 2 2h-2V7zm0-3a5 5 0 0 1 5 5h-2a3 3 0 0 0-3-3V4zm0-3a8 8 0 0 1 8 8h-2a6 6 0 0 0-6-6V1z"],"unicode":"","glyph":"M550 1100V1000H350V200H850V650H950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H550zM650 850A100 100 0 0 0 750 750H650V850zM650 1000A250 250 0 0 0 900 750H800A150 150 0 0 1 650 900V1000zM650 1150A400 400 0 0 0 1050 750H950A300 300 0 0 1 650 1050V1150z","horizAdvX":"1200"},"hq-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25V9H6v6h1.5v-2.25h2V15H11V9H9.5v2.25h-2zM16.25 15H17a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h.75v1.5h1.5V15zm-1.75-4.5h2v3h-2v-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5V750H300V450H375V562.5H475V450H550V750H475V637.5H375zM812.5 450H850A50 50 0 0 1 900 500V700A50 50 0 0 1 850 750H700A50 50 0 0 1 650 700V500A50 50 0 0 1 700 450H737.5V375H812.5V450zM725 675H825V525H725V675z","horizAdvX":"1200"},"hq-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25h2V9H11v6H9.5v-2.25h-2V15H6V9h1.5v2.25zM16.25 15v1.5h-1.5V15H14a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-.75zm-1.75-4.5v3h2v-3h-2z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5H475V750H550V450H475V562.5H375V450H300V750H375V637.5zM812.5 450V375H737.5V450H700A50 50 0 0 0 650 500V700A50 50 0 0 0 700 750H850A50 50 0 0 0 900 700V500A50 50 0 0 0 850 450H812.5zM725 675V525H825V675H725z","horizAdvX":"1200"},"html5-fill":{"path":["M0 0h24v24H0z","M12 18.178l4.62-1.256.623-6.778H9.026L8.822 7.89h8.626l.227-2.211H6.325l.636 6.678h7.82l-.261 2.866-2.52.667-2.52-.667-.158-1.844h-2.27l.329 3.544L12 18.178zM3 2h18l-1.623 18L12 22l-7.377-2L3 2z"],"unicode":"","glyph":"M600 291.0999999999999L831 353.9L862.1500000000001 692.8H451.3L441.1 805.5H872.4L883.75 916.05H316.25L348.05 582.1500000000001H739.0500000000001L726.0000000000001 438.85L600.0000000000001 405.5000000000001L474.0000000000001 438.85L466.1000000000001 531.0500000000001H352.6000000000002L369.0500000000002 353.8500000000002L600 291.0999999999999zM150 1100H1050L968.85 200L600 100L231.15 200L150 1100z","horizAdvX":"1200"},"html5-line":{"path":["M0 0h24v24H0z","M12 18.178l-4.62-1.256-.328-3.544h2.27l.158 1.844 2.52.667 2.52-.667.26-2.866H6.96l-.635-6.678h11.35l-.227 2.21H8.822l.204 2.256h8.217l-.624 6.778L12 18.178zM3 2h18l-1.623 18L12 22l-7.377-2L3 2zm2.188 2L6.49 18.434 12 19.928l5.51-1.494L18.812 4H5.188z"],"unicode":"","glyph":"M600 291.0999999999999L369 353.9L352.6 531.1H466.1L473.9999999999999 438.9L599.9999999999999 405.5500000000001L725.9999999999999 438.9L738.9999999999999 582.2H348L316.25 916.1H883.75L872.4 805.6H441.1L451.3 692.8H862.1500000000001L830.9500000000002 353.9L600 291.0999999999999zM150 1100H1050L968.85 200L600 100L231.15 200L150 1100zM259.4000000000001 1000L324.5 278.3L600 203.5999999999999L875.4999999999999 278.3L940.6 1000H259.4z","horizAdvX":"1200"},"ie-fill":{"path":["M0 0h24v24H0z","M8.612 20.12c-2.744 1.49-5.113 1.799-6.422.49-1.344-1.34-.628-4.851 1.313-8.373A23.204 23.204 0 0 1 7.127 7.32c.187-.187 1.125-1.124 1.187-1.124 0 0-.5.313-.562.313-1.95 1.095-3.663 3.08-4.037 3.525a9.004 9.004 0 0 1 9.468-7.009c3.095-1.402 5.974-1.726 7.192-.51 1.125 1.123 1.062 2.995.125 5.242-.01.021-.018.043-.027.064A8.96 8.96 0 0 1 21.5 12c0 .38-.023.753-.069 1.12h-.804a4.104 4.104 0 0 1-.142.003H8.689v.187c.062 1.997 1.812 3.744 3.937 3.744 1.5 0 2.937-.811 3.562-1.997h4.78A9.003 9.003 0 0 1 8.612 20.12zm-.607-.321a9.03 9.03 0 0 1-3.972-4.742c-1.161 2.282-1.46 4.19-.469 5.18.813.812 2.438.624 4.438-.436l.003-.002zM20.172 7.292a8.19 8.19 0 0 1 .015-.034c.75-1.622.813-2.994.125-3.806-.869-.868-2.54-.75-4.522.168a9.032 9.032 0 0 1 4.382 3.672zm-3.609 3.46v-.061c-.125-2.06-1.75-3.62-3.75-3.62-2.125 0-3.936 1.685-4.061 3.62v.062h7.811z"],"unicode":"","glyph":"M430.6 194C293.4000000000001 119.5 174.95 104.05 109.5 169.5C42.3 236.5 78.1 412.05 175.15 588.15A1160.2 1160.2 0 0 0 356.35 834C365.7 843.35 412.6 890.2 415.7 890.2C415.7 890.2 390.7 874.55 387.6 874.55C290.1 819.8000000000001 204.45 720.5500000000001 185.75 698.3000000000001A450.2 450.2 0 0 0 659.15 1048.75C813.9 1118.8500000000001 957.85 1135.0500000000002 1018.75 1074.25C1075 1018.1 1071.8500000000001 924.5 1025 812.1500000000001C1024.5 811.1000000000001 1024.1 810 1023.65 808.95A448.00000000000006 448.00000000000006 0 0 0 1075 600C1075 581 1073.85 562.35 1071.55 544H1031.3500000000001A205.2 205.2 0 0 0 1024.2500000000002 543.8499999999999H434.45V534.5C437.55 434.65 525.05 347.3 631.3 347.3C706.3 347.3 778.15 387.8499999999999 809.4 447.1499999999999H1048.4A450.15 450.15 0 0 0 430.6 194zM400.2500000000001 210.0500000000001A451.49999999999994 451.49999999999994 0 0 0 201.6500000000001 447.1500000000001C143.6000000000001 333.0500000000001 128.6500000000001 237.65 178.2000000000001 188.1500000000001C218.8500000000001 147.55 300.1000000000001 156.9500000000001 400.1 209.9500000000001L400.2500000000001 210.0500000000001zM1008.6 835.4000000000001A409.49999999999994 409.49999999999994 0 0 0 1009.35 837.1C1046.8500000000001 918.2 1050 986.8 1015.6 1027.4C972.15 1070.8 888.6000000000001 1064.9 789.5 1019A451.59999999999997 451.59999999999997 0 0 0 1008.6 835.4000000000001zM828.1500000000001 662.4000000000001V665.45C821.9000000000001 768.45 740.6500000000001 846.45 640.6500000000001 846.45C534.4000000000001 846.45 443.8500000000002 762.2 437.6000000000002 665.45V662.3500000000001H828.1500000000001z","horizAdvX":"1200"},"ie-line":{"path":["M0 0h24v24H0z","M18.159 10A6.002 6.002 0 0 0 6.84 10H18.16zM6.583 13a6.002 6.002 0 0 0 11.08 2.057h3.304A9.003 9.003 0 0 1 8.612 20.12c-2.744 1.491-5.113 1.8-6.422.491-1.344-1.34-.628-4.851 1.313-8.373a23.624 23.624 0 0 1 2.499-3.665c.359-.433.735-.852 1.125-1.252-.275.055-1.88.851-3.412 2.714a9.004 9.004 0 0 1 9.468-7.009c3.095-1.402 5.974-1.726 7.192-.51 1.125 1.123 1.062 2.995.125 5.242-.01.021-.018.043-.027.064A8.96 8.96 0 0 1 21.5 12c0 .338-.019.672-.055 1H6.583zm1.422 6.799a9.03 9.03 0 0 1-3.972-4.742c-1.161 2.282-1.46 4.19-.469 5.18.813.812 2.438.624 4.438-.436l.003-.002zM20.172 7.292a8.19 8.19 0 0 1 .015-.034c.75-1.622.813-2.994.125-3.806-.869-.868-2.54-.75-4.522.168a9.032 9.032 0 0 1 4.382 3.672z"],"unicode":"","glyph":"M907.95 700A300.09999999999997 300.09999999999997 0 0 1 342 700H908zM329.1500000000001 550A300.09999999999997 300.09999999999997 0 0 1 883.15 447.15H1048.35A450.15 450.15 0 0 0 430.6 194C293.4000000000001 119.4500000000001 174.95 104 109.5 169.4500000000001C42.3 236.45 78.1 411.9999999999999 175.15 588.0999999999999A1181.1999999999998 1181.1999999999998 0 0 0 300.1 771.3499999999999C318.05 793 336.85 813.95 356.35 833.95C342.6 831.2 262.35 791.4 185.75 698.25A450.2 450.2 0 0 0 659.15 1048.7C813.9 1118.8 957.85 1135 1018.75 1074.2C1075 1018.05 1071.8500000000001 924.45 1025 812.1C1024.5 811.05 1024.1 809.95 1023.65 808.9A448.00000000000006 448.00000000000006 0 0 0 1075 600C1075 583.1 1074.0500000000002 566.4 1072.25 550H329.1500000000001zM400.2500000000001 210.0500000000001A451.49999999999994 451.49999999999994 0 0 0 201.6500000000001 447.1500000000001C143.6000000000001 333.0500000000001 128.6500000000001 237.65 178.2000000000001 188.1500000000001C218.8500000000001 147.55 300.1000000000001 156.9500000000001 400.1 209.9500000000001L400.2500000000001 210.0500000000001zM1008.6 835.4000000000001A409.49999999999994 409.49999999999994 0 0 0 1009.35 837.1C1046.8500000000001 918.2 1050 986.8 1015.6 1027.4C972.15 1070.8 888.6000000000001 1064.9 789.5 1019A451.59999999999997 451.59999999999997 0 0 0 1008.6 835.4000000000001z","horizAdvX":"1200"},"image-2-fill":{"path":["M0 0h24v24H0z","M5 11.1l2-2 5.5 5.5 3.5-3.5 3 3V5H5v6.1zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 645L350 745L625 470L800 645L950 495V950H250V645zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM775 700A75 75 0 1 0 775 850A75 75 0 0 0 775 700z","horizAdvX":"1200"},"image-2-line":{"path":["M0 0h24v24H0z","M5 11.1l2-2 5.5 5.5 3.5-3.5 3 3V5H5v6.1zm0 2.829V19h3.1l2.986-2.985L7 11.929l-2 2zM10.929 19H19v-2.071l-3-3L10.929 19zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 645L350 745L625 470L800 645L950 495V950H250V645zM250 503.55V250H405L554.3000000000001 399.25L350 603.55L250 503.55zM546.45 250H950V353.5500000000001L800 503.5500000000001L546.45 250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM775 700A75 75 0 1 0 775 850A75 75 0 0 0 775 700z","horizAdvX":"1200"},"image-add-fill":{"path":["M0 0h24v24H0z","M21 15v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2zm.008-12c.548 0 .992.445.992.993v9.349A5.99 5.99 0 0 0 20 13V5H4l.001 14 9.292-9.293a.999.999 0 0 1 1.32-.084l.093.085 3.546 3.55a6.003 6.003 0 0 0-3.91 7.743L2.992 21A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016zM8 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M1050 450V300H1200V200H1050V50H950V200H800V300H950V450H1050zM1050.3999999999999 1050C1077.8 1050 1100 1027.75 1100 1000.35V532.9A299.50000000000006 299.50000000000006 0 0 1 1000 550V950H200L200.05 250L664.65 714.65A49.95 49.95 0 0 0 730.65 718.8499999999999L735.3 714.5999999999999L912.6 537.0999999999999A300.15000000000003 300.15000000000003 0 0 1 717.0999999999999 149.9499999999998L149.6 150A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999zM400 850A100 100 0 1 0 400 650A100 100 0 0 0 400 850z","horizAdvX":"1200"},"image-add-line":{"path":["M0 0h24v24H0z","M21 15v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2zm.008-12c.548 0 .992.445.992.993V13h-2V5H4v13.999L14 9l3 3v2.829l-3-3L6.827 19H14v2H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016zM8 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M1050 450V300H1200V200H1050V50H950V200H800V300H950V450H1050zM1050.3999999999999 1050C1077.8 1050 1100 1027.75 1100 1000.35V550H1000V950H200V250.0499999999999L700 750L850 600V458.55L700 608.55L341.35 250H700V150H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999zM400 850A100 100 0 1 0 400 650A100 100 0 0 0 400 850z","horizAdvX":"1200"},"image-edit-fill":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v1.757l-2 2V5H5v8.1l4-4 4.328 4.329-1.327 1.327-.006 4.239 4.246.006 1.33-1.33L18.899 19H19v-2.758l2-2V20c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm1.778 4.808l1.414 1.414L15.414 17l-1.416-.002.002-1.412 7.778-7.778zM15.5 7c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5S14 9.328 14 8.5 14.672 7 15.5 7z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V912.15L950 812.1500000000001V950H250V545L450 745L666.4 528.5500000000001L600.05 462.2L599.75 250.2500000000001L812.05 249.9500000000002L878.55 316.4500000000001L944.95 250H950V387.9L1050 487.9V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM1088.8999999999999 809.6L1159.6 738.9000000000001L770.6999999999999 350L699.9 350.0999999999999L700 420.7L1088.8999999999999 809.5999999999999zM775 850C816.4 850 850 816.4000000000001 850 775S816.4 700 775 700S700 733.6 700 775S733.6 850 775 850z","horizAdvX":"1200"},"image-edit-line":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v1.757l-2 2V5H5v8.1l4-4 4.328 4.329-1.415 1.413L9 11.93l-4 3.999V19h10.533l.708.001 1.329-1.33L18.9 19h.1v-2.758l2-2V20c0 .552-.448 1-1 1H4c-.55 0-1-.45-1-1V4c0-.552.448-1 1-1h16zm1.778 4.808l1.414 1.414L15.414 17l-1.416-.002.002-1.412 7.778-7.778zM15.5 7c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5S14 9.328 14 8.5 14.672 7 15.5 7z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V912.15L950 812.1500000000001V950H250V545L450 745L666.4 528.5500000000001L595.65 457.9000000000001L450 603.5L250 403.55V250H776.65L812.05 249.95L878.5 316.4500000000001L944.9999999999998 250H950V387.9L1050 487.9V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.5 150 150 172.5 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM1088.8999999999999 809.6L1159.6 738.9000000000001L770.6999999999999 350L699.9 350.0999999999999L700 420.7L1088.8999999999999 809.5999999999999zM775 850C816.4 850 850 816.4000000000001 850 775S816.4 700 775 700S700 733.6 700 775S733.6 850 775 850z","horizAdvX":"1200"},"image-fill":{"path":["M0 0h24v24H0z","M20 5H4v14l9.292-9.294a1 1 0 0 1 1.414 0L20 15.01V5zM2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM8 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M1000 950H200V250L664.6 714.7A50 50 0 0 0 735.3 714.7L1000 449.5V950zM100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM400 650A100 100 0 1 0 400 850A100 100 0 0 0 400 650z","horizAdvX":"1200"},"image-line":{"path":["M0 0h24v24H0z","M4.828 21l-.02.02-.021-.02H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H4.828zM20 15V5H4v14L14 9l6 6zm0 2.828l-6-6L6.828 19H20v-1.172zM8 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M241.4 150L240.4000000000001 149L239.3500000000001 150H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H241.4zM1000 450V950H200V250L700 750L1000 450zM1000 308.6L700 608.6L341.4000000000001 250H1000V308.6zM400 650A100 100 0 1 0 400 850A100 100 0 0 0 400 650z","horizAdvX":"1200"},"inbox-archive-fill":{"path":["M0 0h24v24H0z","M4 3h16l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3zm9 11v-4h-2v4H8l4 4 4-4h-3zm6.764-7l-1-2H5.237l-1 2h15.527z"],"unicode":"","glyph":"M200 1050H1000L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050zM650 500V700H550V500H400L600 300L800 500H650zM988.2 850L938.2 950H261.85L211.85 850H988.2z","horizAdvX":"1200"},"inbox-archive-line":{"path":["M0 0h24v24H0z","M4 3h16l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3zm16 6H4v10h16V9zm-.236-2l-1-2H5.237l-1 2h15.527zM13 14h3l-4 4-4-4h3v-4h2v4z"],"unicode":"","glyph":"M200 1050H1000L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050zM1000 750H200V250H1000V750zM988.2 850L938.2 950H261.85L211.85 850H988.2zM650 500H800L600 300L400 500H550V700H650V500z","horizAdvX":"1200"},"inbox-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 9a3 3 0 0 0 6 0h5V5H4v7h5z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 600A150 150 0 0 1 750 600H1000V950H200V600H450z","horizAdvX":"1200"},"inbox-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 11h-3.416a5.001 5.001 0 0 1-9.168 0H4v5h16v-5zm0-2V5H4v7h5a3 3 0 0 0 6 0h5z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 500H829.1999999999999A250.05000000000004 250.05000000000004 0 0 0 370.8 500H200V250H1000V500zM1000 600V950H200V600H450A150 150 0 0 1 750 600H1000z","horizAdvX":"1200"},"inbox-unarchive-fill":{"path":["M0 0h24v24H0z","M20 3l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3h16zm-8 7l-4 4h3v4h2v-4h3l-4-4zm6.764-5H5.236l-.999 2h15.527l-1-2z"],"unicode":"","glyph":"M1000 1050L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050H1000zM600 700L400 500H550V300H650V500H800L600 700zM938.2 950H261.8L211.85 850H988.2L938.2 950z","horizAdvX":"1200"},"inbox-unarchive-line":{"path":["M0 0h24v24H0z","M20 3l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3h16zm0 6H4v10h16V9zm-8 1l4 4h-3v4h-2v-4H8l4-4zm6.764-5H5.236l-.999 2h15.527l-1-2z"],"unicode":"","glyph":"M1000 1050L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050H1000zM1000 750H200V250H1000V750zM600 700L800 500H650V300H550V500H400L600 700zM938.2 950H261.8L211.85 850H988.2L938.2 950z","horizAdvX":"1200"},"increase-decrease-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 8V9H7v2H5v2h2v2h2v-2h2v-2H9zm4 0v2h6v-2h-6z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 650V750H350V650H250V550H350V450H450V550H550V650H450zM650 650V550H950V650H650z","horizAdvX":"1200"},"increase-decrease-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm5 6h2v2H9v2H7v-2H5v-2h2V9h2v2zm4 0h6v2h-6v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM450 650H550V550H450V450H350V550H250V650H350V750H450V650zM650 650H950V550H650V650z","horizAdvX":"1200"},"indent-decrease":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h18v2H3v-2zm8-5h10v2H11v-2zm0-5h10v2H11V9zm-8 3.5L7 9v7l-4-3.5z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H1050V150H150V250zM550 500H1050V400H550V500zM550 750H1050V650H550V750zM150 575L350 750V400L150 575z","horizAdvX":"1200"},"indent-increase":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h18v2H3v-2zm8-5h10v2H11v-2zm0-5h10v2H11V9zm-4 3.5L3 16V9l4 3.5z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H1050V150H150V250zM550 500H1050V400H550V500zM550 750H1050V650H550V750zM350 575L150 400V750L350 575z","horizAdvX":"1200"},"indeterminate-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 11v2h10v-2H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 650V550H850V650H350z","horizAdvX":"1200"},"indeterminate-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-9h10v2H7v-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 650H850V550H350V650z","horizAdvX":"1200"},"information-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 650V350H650V650H550zM550 850V750H650V850H550z","horizAdvX":"1200"},"information-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM11 7h2v2h-2V7zm0 4h2v6h-2v-6z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 850H650V750H550V850zM550 650H650V350H550V650z","horizAdvX":"1200"},"infrared-thermometer-fill":{"path":["M0 0H24V24H0z","M21 2v9h-3.001L18 12c0 2.21-1.79 4-4 4h-1.379l-.613 3.111.911 1.321c.314.455.2 1.078-.255 1.391-.167.115-.365.177-.568.177H3l2.313-10.024L3 11l4-9h14zm-5.001 9h-2.394l-.591 3H14c1.105 0 2-.895 2-2l-.001-1z"],"unicode":"","glyph":"M1050 1100V650H899.9499999999999L900 600C900 489.5 810.5 400 700 400H631.0500000000001L600.4000000000001 244.45L645.95 178.3999999999999C661.65 155.6500000000001 655.95 124.5 633.1999999999999 108.8499999999999C624.85 103.1000000000001 614.9499999999999 100 604.8 100H150L265.6500000000001 601.1999999999999L150 650L350 1100H1050zM799.9499999999999 650H680.2499999999999L650.6999999999999 500H700C755.25 500 800 544.75 800 600L799.95 650z","horizAdvX":"1200"},"infrared-thermometer-line":{"path":["M0 0H24V24H0z","M21 2v9h-3.001L18 12c0 2.21-1.79 4-4 4h-1.379l-.613 3.111.911 1.321c.314.455.2 1.078-.255 1.391-.167.115-.365.177-.568.177H3l2.313-10.024L3 11l4-9h14zm-2 2H8.3L5.655 9.95l1.985.837L5.514 20h4.678l-.309-.448L11.96 9H19V4zm-3.001 7h-2.394l-.591 3H14c1.105 0 2-.895 2-2l-.001-1z"],"unicode":"","glyph":"M1050 1100V650H899.9499999999999L900 600C900 489.5 810.5 400 700 400H631.0500000000001L600.4000000000001 244.45L645.95 178.3999999999999C661.65 155.6500000000001 655.95 124.5 633.1999999999999 108.8499999999999C624.85 103.1000000000001 614.9499999999999 100 604.8 100H150L265.6500000000001 601.1999999999999L150 650L350 1100H1050zM950 1000H415.0000000000001L282.75 702.5L382 660.6500000000001L275.7 200H509.6L494.15 222.4L598 750H950V1000zM799.95 650H680.25L650.7 500H700C755.25 500 800 544.75 800 600L799.95 650z","horizAdvX":"1200"},"ink-bottle-fill":{"path":["M0 0H24V24H0z","M16 9l4.371 1.749c.38.151.629.52.629.928V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-9.323c0-.409.249-.777.629-.928L8 9h8zm4 5H8v5h12v-5zM16 3c.552 0 1 .448 1 1v4H7V4c0-.552.448-1 1-1h8z"],"unicode":"","glyph":"M800 750L1018.55 662.55C1037.55 655 1050.0000000000002 636.55 1050.0000000000002 616.15V150C1050.0000000000002 122.4000000000001 1027.6000000000001 100 1000.0000000000002 100H200C172.4 100 150 122.4000000000001 150 150V616.15C150 636.6 162.45 655 181.45 662.5500000000001L400 750H800zM1000 500H400V250H1000V500zM800 1050C827.6 1050 850 1027.6 850 1000V800H350V1000C350 1027.6 372.4000000000001 1050 400 1050H800z","horizAdvX":"1200"},"ink-bottle-line":{"path":["M0 0H24V24H0z","M16 9l4.371 1.749c.38.151.629.52.629.928V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-9.323c0-.409.249-.777.629-.928L8 9h8zm-.385 2h-7.23L5 12.354V20h14v-1H8v-5h11v-1.646L15.615 11zM16 3c.552 0 1 .448 1 1v4H7V4c0-.552.448-1 1-1h8zm-1 2H9v1h6V5z"],"unicode":"","glyph":"M800 750L1018.55 662.55C1037.55 655 1050.0000000000002 636.55 1050.0000000000002 616.15V150C1050.0000000000002 122.4000000000001 1027.6000000000001 100 1000.0000000000002 100H200C172.4 100 150 122.4000000000001 150 150V616.15C150 636.6 162.45 655 181.45 662.5500000000001L400 750H800zM780.75 650H419.25L250 582.3000000000001V200H950V250H400V500H950V582.3000000000001L780.75 650zM800 1050C827.6 1050 850 1027.6 850 1000V800H350V1000C350 1027.6 372.4000000000001 1050 400 1050H800zM750 950H450V900H750V950z","horizAdvX":"1200"},"input-cursor-move":{"path":["M0 0h24v24H0z","M8 21v-2h3V5H8V3h8v2h-3v14h3v2H8zM18.05 7.05L23 12l-4.95 4.95-1.414-1.414L20.172 12l-3.536-3.536L18.05 7.05zm-12.1 0l1.414 1.414L3.828 12l3.536 3.536L5.95 16.95 1 12l4.95-4.95z"],"unicode":"","glyph":"M400 150V250H550V950H400V1050H800V950H650V250H800V150H400zM902.5 847.5L1150 600L902.5 352.5L831.8 423.2000000000001L1008.6 600L831.8 776.8L902.5 847.5zM297.5000000000001 847.5L368.2000000000001 776.8L191.4 600L368.2 423.2000000000001L297.5 352.5L50 600L297.5 847.5z","horizAdvX":"1200"},"input-method-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5.869 12h4.262l.82 2h2.216L13 7h-2L6.833 17H9.05l.82-2zm.82-2L12 9.8l1.311 3.2H10.69z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM493.45 450H706.55L747.5500000000001 350H858.3500000000001L650 850H550L341.6500000000001 350H452.5000000000001L493.5000000000001 450zM534.45 550L600 710L665.55 550H534.5z","horizAdvX":"1200"},"input-method-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5.869 12l-.82 2H6.833L11 7h2l4.167 10H14.95l-.82-2H9.87zm.82-2h2.622L12 9.8 10.689 13z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM493.45 450L452.45 350H341.6500000000001L550 850H650L858.3500000000001 350H747.5L706.5 450H493.4999999999999zM534.45 550H665.55L600 710L534.45 550z","horizAdvX":"1200"},"insert-column-left":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zm-1 2h-4v14h4V5zM6 7c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2H5v1.999L3 11v2l2-.001V15h2v-2.001L9 13v-2l-2-.001V9z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H700C672.4 150 650 172.4000000000001 650 200V1000C650 1027.6 672.4 1050 700 1050H1000zM950 950H750V250H950V950zM300 850C438.05 850 550 738.05 550 600S438.05 350 300 350S50 461.95 50 600S161.95 850 300 850zM350 750H250V650.05L150 650V550L250 550.05V450H350V550.05L450 550V650L350 650.05V750z","horizAdvX":"1200"},"insert-column-right":{"path":["M0 0H24V24H0z","M10 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zM9 5H5v14h4V5zm9 2c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2h-2v1.999L15 11v2l2-.001V15h2v-2.001L21 13v-2l-2-.001V9z"],"unicode":"","glyph":"M500 1050C527.6 1050 550 1027.6 550 1000V200C550 172.4000000000001 527.6 150 500 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H500zM450 950H250V250H450V950zM900 850C1038.05 850 1150 738.05 1150 600S1038.05 350 900 350S650 461.95 650 600S761.95 850 900 850zM950 750H850V650.05L750 650V550L850 550.05V450H950V550.05L1050 550V650L950 650.05V750z","horizAdvX":"1200"},"insert-row-bottom":{"path":["M0 0H24V24H0z","M12 13c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2h-2v1.999L9 17v2l2-.001V21h2v-2.001L15 19v-2l-2-.001V15zm7-12c.552 0 1 .448 1 1v6c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zM5 5v4h14V5H5z"],"unicode":"","glyph":"M600 550C738.05 550 850 438.05 850 300S738.05 50 600 50S350 161.9500000000001 350 300S461.95 550 600 550zM650 450H550V350.0500000000001L450 350V250L550 250.0500000000001V150H650V250.0500000000001L750 250V350L650 350.0500000000001V450zM1000 1050C1027.6 1050 1050 1027.6 1050 1000V700C1050 672.4 1027.6 650 1000 650H200C172.4 650 150 672.4 150 700V1000C150 1027.6 172.4 1050 200 1050H1000zM250 950V750H950V950H250z","horizAdvX":"1200"},"insert-row-top":{"path":["M0 0H24V24H0z","M20 13c.552 0 1 .448 1 1v6c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-6c0-.552.448-1 1-1h16zm-1 2H5v4h14v-4zM12 1c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2h-2v1.999L9 5v2l2-.001V9h2V6.999L15 7V5l-2-.001V3z"],"unicode":"","glyph":"M1000 550C1027.6 550 1050 527.6 1050 500V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V500C150 527.6 172.4 550 200 550H1000zM950 450H250V250H950V450zM600 1150C738.05 1150 850 1038.05 850 900S738.05 650 600 650S350 761.95 350 900S461.95 1150 600 1150zM650 1050H550V950.05L450 950V850L550 850.05V750H650V850.05L750 850V950L650 950.05V1050z","horizAdvX":"1200"},"instagram-fill":{"path":["M0 0h24v24H0z","M12 2c2.717 0 3.056.01 4.122.06 1.065.05 1.79.217 2.428.465.66.254 1.216.598 1.772 1.153a4.908 4.908 0 0 1 1.153 1.772c.247.637.415 1.363.465 2.428.047 1.066.06 1.405.06 4.122 0 2.717-.01 3.056-.06 4.122-.05 1.065-.218 1.79-.465 2.428a4.883 4.883 0 0 1-1.153 1.772 4.915 4.915 0 0 1-1.772 1.153c-.637.247-1.363.415-2.428.465-1.066.047-1.405.06-4.122.06-2.717 0-3.056-.01-4.122-.06-1.065-.05-1.79-.218-2.428-.465a4.89 4.89 0 0 1-1.772-1.153 4.904 4.904 0 0 1-1.153-1.772c-.248-.637-.415-1.363-.465-2.428C2.013 15.056 2 14.717 2 12c0-2.717.01-3.056.06-4.122.05-1.066.217-1.79.465-2.428a4.88 4.88 0 0 1 1.153-1.772A4.897 4.897 0 0 1 5.45 2.525c.638-.248 1.362-.415 2.428-.465C8.944 2.013 9.283 2 12 2zm0 5a5 5 0 1 0 0 10 5 5 0 0 0 0-10zm6.5-.25a1.25 1.25 0 0 0-2.5 0 1.25 1.25 0 0 0 2.5 0zM12 9a3 3 0 1 1 0 6 3 3 0 0 1 0-6z"],"unicode":"","glyph":"M600 1100C735.85 1100 752.8000000000001 1099.5 806.1 1097C859.35 1094.5 895.5999999999999 1086.15 927.5 1073.75C960.5 1061.05 988.3 1043.85 1016.1 1016.1A245.4 245.4 0 0 0 1073.75 927.5C1086.1 895.6500000000001 1094.4999999999998 859.3499999999999 1097 806.1C1099.35 752.8 1099.9999999999998 735.85 1099.9999999999998 600C1099.9999999999998 464.15 1099.4999999999998 447.2 1097 393.9C1094.4999999999998 340.65 1086.1 304.4000000000001 1073.75 272.5A244.14999999999998 244.14999999999998 0 0 0 1016.1 183.9000000000001A245.75000000000003 245.75000000000003 0 0 0 927.5 126.25C895.65 113.9000000000001 859.35 105.5000000000002 806.1 103C752.8 100.6500000000001 735.85 100.0000000000002 600 100.0000000000002C464.15 100.0000000000002 447.2 100.5000000000002 393.9 103C340.6500000000001 105.5000000000002 304.4 113.9000000000001 272.5 126.25A244.5 244.5 0 0 0 183.9 183.9000000000001A245.19999999999996 245.19999999999996 0 0 0 126.25 272.5C113.85 304.35 105.5 340.65 103 393.9C100.65 447.2000000000001 100 464.15 100 600C100 735.85 100.5 752.8000000000001 103 806.1C105.5 859.4 113.85 895.6 126.25 927.5A244 244 0 0 0 183.9 1016.1A244.85 244.85 0 0 0 272.5 1073.75C304.4 1086.15 340.6 1094.5 393.9 1097C447.2000000000001 1099.35 464.15 1100 600 1100zM600 850A250 250 0 1 1 600 350A250 250 0 0 1 600 850zM925 862.5A62.5 62.5 0 0 1 800 862.5A62.5 62.5 0 0 1 925 862.5zM600 750A150 150 0 1 0 600 450A150 150 0 0 0 600 750z","horizAdvX":"1200"},"instagram-line":{"path":["M0 0h24v24H0z","M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm0-2a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm6.5-.25a1.25 1.25 0 0 1-2.5 0 1.25 1.25 0 0 1 2.5 0zM12 4c-2.474 0-2.878.007-4.029.058-.784.037-1.31.142-1.798.332-.434.168-.747.369-1.08.703a2.89 2.89 0 0 0-.704 1.08c-.19.49-.295 1.015-.331 1.798C4.006 9.075 4 9.461 4 12c0 2.474.007 2.878.058 4.029.037.783.142 1.31.331 1.797.17.435.37.748.702 1.08.337.336.65.537 1.08.703.494.191 1.02.297 1.8.333C9.075 19.994 9.461 20 12 20c2.474 0 2.878-.007 4.029-.058.782-.037 1.309-.142 1.797-.331.433-.169.748-.37 1.08-.702.337-.337.538-.65.704-1.08.19-.493.296-1.02.332-1.8.052-1.104.058-1.49.058-4.029 0-2.474-.007-2.878-.058-4.029-.037-.782-.142-1.31-.332-1.798a2.911 2.911 0 0 0-.703-1.08 2.884 2.884 0 0 0-1.08-.704c-.49-.19-1.016-.295-1.798-.331C14.925 4.006 14.539 4 12 4zm0-2c2.717 0 3.056.01 4.122.06 1.065.05 1.79.217 2.428.465.66.254 1.216.598 1.772 1.153a4.908 4.908 0 0 1 1.153 1.772c.247.637.415 1.363.465 2.428.047 1.066.06 1.405.06 4.122 0 2.717-.01 3.056-.06 4.122-.05 1.065-.218 1.79-.465 2.428a4.883 4.883 0 0 1-1.153 1.772 4.915 4.915 0 0 1-1.772 1.153c-.637.247-1.363.415-2.428.465-1.066.047-1.405.06-4.122.06-2.717 0-3.056-.01-4.122-.06-1.065-.05-1.79-.218-2.428-.465a4.89 4.89 0 0 1-1.772-1.153 4.904 4.904 0 0 1-1.153-1.772c-.248-.637-.415-1.363-.465-2.428C2.013 15.056 2 14.717 2 12c0-2.717.01-3.056.06-4.122.05-1.066.217-1.79.465-2.428a4.88 4.88 0 0 1 1.153-1.772A4.897 4.897 0 0 1 5.45 2.525c.638-.248 1.362-.415 2.428-.465C8.944 2.013 9.283 2 12 2z"],"unicode":"","glyph":"M600 750A150 150 0 1 1 600 450A150 150 0 0 1 600 750zM600 850A250 250 0 1 0 600 350A250 250 0 0 0 600 850zM925 862.5A62.5 62.5 0 0 0 800 862.5A62.5 62.5 0 0 0 925 862.5zM600 1000C476.3 1000 456.1 999.65 398.55 997.1C359.35 995.25 333.05 990 308.65 980.5C286.95 972.1 271.3 962.05 254.65 945.35A144.5 144.5 0 0 1 219.45 891.35C209.95 866.8499999999999 204.7 840.6 202.9 801.45C200.3 746.25 200 726.95 200 600C200 476.3 200.35 456.1 202.9 398.55C204.75 359.4 210 333.0500000000001 219.45 308.7C227.95 286.9500000000001 237.95 271.3 254.55 254.7000000000001C271.4 237.9000000000001 287.05 227.8500000000002 308.55 219.5500000000001C333.25 210.0000000000001 359.55 204.7000000000001 398.55 202.9000000000002C453.7499999999999 200.3 473.05 200 600 200C723.7 200 743.9 200.35 801.45 202.9C840.55 204.75 866.9000000000001 210 891.3000000000001 219.4499999999999C912.95 227.9 928.7 237.9500000000001 945.3 254.5500000000001C962.15 271.4000000000001 972.2 287.05 980.5 308.55C990 333.2 995.3 359.55 997.1 398.55C999.7 453.75 1000 473.0500000000001 1000 600C1000 723.7 999.65 743.9 997.1 801.45C995.25 840.55 990 866.95 980.5 891.35A145.55 145.55 0 0 1 945.35 945.35A144.2 144.2 0 0 1 891.3499999999999 980.55C866.85 990.05 840.55 995.3 801.4499999999998 997.1C746.25 999.7 726.9499999999999 1000 600 1000zM600 1100C735.85 1100 752.8000000000001 1099.5 806.1 1097C859.35 1094.5 895.5999999999999 1086.15 927.5 1073.75C960.5 1061.05 988.3 1043.85 1016.1 1016.1A245.4 245.4 0 0 0 1073.75 927.5C1086.1 895.6500000000001 1094.4999999999998 859.3499999999999 1097 806.1C1099.35 752.8 1099.9999999999998 735.85 1099.9999999999998 600C1099.9999999999998 464.15 1099.4999999999998 447.2 1097 393.9C1094.4999999999998 340.65 1086.1 304.4000000000001 1073.75 272.5A244.14999999999998 244.14999999999998 0 0 0 1016.1 183.9000000000001A245.75000000000003 245.75000000000003 0 0 0 927.5 126.25C895.65 113.9000000000001 859.35 105.5000000000002 806.1 103C752.8 100.6500000000001 735.85 100.0000000000002 600 100.0000000000002C464.15 100.0000000000002 447.2 100.5000000000002 393.9 103C340.6500000000001 105.5000000000002 304.4 113.9000000000001 272.5 126.25A244.5 244.5 0 0 0 183.9 183.9000000000001A245.19999999999996 245.19999999999996 0 0 0 126.25 272.5C113.85 304.35 105.5 340.65 103 393.9C100.65 447.2000000000001 100 464.15 100 600C100 735.85 100.5 752.8000000000001 103 806.1C105.5 859.4 113.85 895.6 126.25 927.5A244 244 0 0 0 183.9 1016.1A244.85 244.85 0 0 0 272.5 1073.75C304.4 1086.15 340.6 1094.5 393.9 1097C447.2000000000001 1099.35 464.15 1100 600 1100z","horizAdvX":"1200"},"install-fill":{"path":["M0 0h24v24H0z","M11 2v5H8l4 4 4-4h-3V2h7a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h7zm8 14H5v4h14v-4zm-2 1v2h-2v-2h2z"],"unicode":"","glyph":"M550 1100V850H400L600 650L800 850H650V1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H550zM950 400H250V200H950V400zM850 350V250H750V350H850z","horizAdvX":"1200"},"install-line":{"path":["M0 0h24v24H0z","M9 2v2H5l-.001 10h14L19 4h-4V2h5a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h5zm9.999 14h-14L5 20h14l-.001-4zM17 17v2h-2v-2h2zM13 2v5h3l-4 4-4-4h3V2h2z"],"unicode":"","glyph":"M450 1100V1000H250L249.95 500H949.95L950 1000H750V1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H450zM949.9500000000002 400H249.9500000000001L250 200H950L949.95 400zM850 350V250H750V350H850zM650 1100V850H800L600 650L400 850H550V1100H650z","horizAdvX":"1200"},"invision-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2.988 11.065c-.06.267-.09.555-.09.79 0 .927.482 1.542 1.508 1.542.851 0 1.541-.526 2.038-1.375l-.303 1.267h1.69l.966-4.031c.241-1.02.71-1.55 1.419-1.55.558 0 .905.36.905.957 0 .173-.015.361-.075.565l-.498 1.853a2.89 2.89 0 0 0-.106.785c0 .88.498 1.523 1.54 1.523.89 0 1.6-.596 1.992-2.025l-.664-.267c-.332.958-.62 1.13-.846 1.13-.226 0-.347-.156-.347-.47 0-.141.03-.298.076-.487l.483-1.805c.12-.424.166-.8.166-1.145 0-1.35-.785-2.055-1.736-2.055-.89 0-1.796.835-2.248 1.715l.331-1.579h-2.58l-.363 1.39h1.208l-.744 3.098c-.583 1.35-1.656 1.372-1.79 1.34-.222-.051-.363-.139-.363-.438 0-.172.03-.42.106-.718l1.132-4.672H6.927l-.362 1.39h1.192l-.77 3.272zm1.637-5.44a1.125 1.125 0 1 0 0-2.25 1.125 1.125 0 0 0 0 2.25z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM349.4 496.75C346.4 483.4000000000001 344.9 469 344.9 457.25C344.9 410.9 369 380.1499999999999 420.3 380.1499999999999C462.8499999999999 380.1499999999999 497.35 406.45 522.1999999999999 448.8999999999999L507.0499999999999 385.55H591.5499999999998L639.8499999999999 587.0999999999999C651.8999999999999 638.0999999999998 675.3499999999999 664.5999999999999 710.7999999999998 664.5999999999999C738.6999999999998 664.5999999999999 756.0499999999998 646.5999999999999 756.0499999999998 616.7499999999999C756.0499999999998 608.0999999999999 755.2999999999998 598.6999999999998 752.2999999999998 588.4999999999999L727.3999999999999 495.8499999999999A144.5 144.5 0 0 1 722.0999999999999 456.5999999999999C722.0999999999999 412.5999999999999 746.9999999999999 380.45 799.0999999999999 380.45C843.6 380.45 879.1 410.2499999999999 898.7 481.6999999999999L865.4999999999999 495.05C848.8999999999999 447.1499999999999 834.4999999999999 438.5499999999999 823.1999999999999 438.5499999999999C811.9 438.5499999999999 805.8499999999999 446.3499999999999 805.8499999999999 462.0499999999998C805.8499999999999 469.0999999999999 807.3499999999999 476.9499999999999 809.6499999999999 486.3999999999999L833.8 576.6499999999999C839.8 597.8499999999999 842.0999999999999 616.6499999999999 842.0999999999999 633.8999999999999C842.0999999999999 701.3999999999999 802.8499999999999 736.6499999999999 755.3 736.6499999999999C710.7999999999998 736.6499999999999 665.4999999999999 694.8999999999999 642.8999999999999 650.8999999999999L659.4499999999998 729.8499999999999H530.4499999999998L512.2999999999998 660.3499999999999H572.6999999999998L535.4999999999999 505.4499999999999C506.3499999999999 437.95 452.6999999999998 436.8499999999999 445.9999999999999 438.45C434.8999999999999 440.9999999999999 427.8499999999999 445.3999999999999 427.8499999999999 460.3499999999999C427.8499999999999 468.9499999999999 429.3499999999999 481.3499999999999 433.1499999999999 496.25L489.7499999999999 729.8499999999999H346.35L328.25 660.3499999999999H387.85L349.35 496.7499999999999zM431.25 768.75A56.25 56.25 0 1 1 431.25 881.25A56.25 56.25 0 0 1 431.25 768.75z","horizAdvX":"1200"},"invision-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm1.988 9.065l.77-3.271H6.564l.362-1.39h2.868l-1.132 4.67a3.071 3.071 0 0 0-.106.72c0 .298.141.386.362.437.135.032 1.208.01 1.791-1.34l.744-3.097h-1.208l.363-1.39h2.58l-.331 1.578c.452-.88 1.358-1.715 2.248-1.715.95 0 1.736.704 1.736 2.055 0 .345-.046.721-.166 1.145l-.483 1.805a2.159 2.159 0 0 0-.076.487c0 .314.121.47.347.47.227 0 .514-.172.846-1.13l.664.267c-.393 1.429-1.102 2.025-1.993 2.025-1.041 0-1.539-.643-1.539-1.523 0-.25.03-.518.106-.785l.498-1.853c.06-.204.075-.392.075-.565 0-.596-.347-.958-.905-.958-.71 0-1.178.53-1.419 1.55l-.966 4.032h-1.69l.303-1.267c-.497.85-1.187 1.375-2.038 1.375-1.026 0-1.509-.615-1.509-1.542 0-.235.03-.523.09-.79zm1.637-5.44a1.125 1.125 0 1 1 0-2.25 1.125 1.125 0 0 1 0 2.25z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM349.4 496.75L387.9 660.3H328.2L346.3 729.8H489.7L433.1 496.3A153.55 153.55 0 0 1 427.8000000000001 460.3C427.8000000000001 445.4 434.85 441 445.9000000000001 438.4500000000001C452.65 436.85 506.3000000000001 437.9500000000001 535.45 505.45L572.6500000000001 660.3H512.25L530.4 729.8H659.4L642.85 650.9000000000001C665.45 694.9000000000001 710.7500000000001 736.6500000000001 755.25 736.6500000000001C802.75 736.6500000000001 842.0500000000001 701.45 842.0500000000001 633.9000000000001C842.0500000000001 616.65 839.7500000000001 597.85 833.75 576.6500000000001L809.6 486.4000000000001A107.94999999999999 107.94999999999999 0 0 1 805.8 462.0500000000001C805.8 446.35 811.8499999999999 438.5500000000001 823.1500000000001 438.5500000000001C834.5000000000001 438.5500000000001 848.85 447.1500000000001 865.45 495.05L898.6500000000001 481.7C879.0000000000001 410.25 843.5500000000001 380.4500000000001 799.0000000000001 380.4500000000001C746.95 380.4500000000001 722.0500000000002 412.6000000000002 722.0500000000002 456.6C722.0500000000002 469.1 723.5500000000001 482.5000000000001 727.3500000000001 495.8500000000001L752.2500000000001 588.5000000000001C755.2500000000001 598.7 756 608.1 756 616.75C756 646.5500000000001 738.6500000000001 664.6500000000001 710.7500000000001 664.6500000000001C675.2500000000001 664.6500000000001 651.8500000000001 638.1500000000001 639.8000000000001 587.15L591.5000000000001 385.55H507.0000000000001L522.1500000000002 448.8999999999999C497.3000000000002 406.3999999999999 462.8000000000002 380.1499999999999 420.2500000000002 380.1499999999999C368.9500000000002 380.1499999999999 344.8000000000002 410.8999999999999 344.8000000000002 457.2499999999999C344.8000000000002 468.9999999999999 346.3000000000002 483.3999999999999 349.3000000000002 496.7499999999999zM431.25 768.75A56.25 56.25 0 1 0 431.25 881.25A56.25 56.25 0 0 0 431.25 768.75z","horizAdvX":"1200"},"italic":{"path":["M0 0h24v24H0z","M15 20H7v-2h2.927l2.116-12H9V4h8v2h-2.927l-2.116 12H15z"],"unicode":"","glyph":"M750 200H350V300H496.35L602.15 900H450V1000H850V900H703.65L597.85 300H750z","horizAdvX":"1200"},"kakao-talk-fill":{"path":["M0 0h24v24H0z","M12 3c5.799 0 10.5 3.664 10.5 8.185 0 4.52-4.701 8.184-10.5 8.184a13.5 13.5 0 0 1-1.727-.11l-4.408 2.883c-.501.265-.678.236-.472-.413l.892-3.678c-2.88-1.46-4.785-3.99-4.785-6.866C1.5 6.665 6.201 3 12 3zm5.907 8.06l1.47-1.424a.472.472 0 0 0-.656-.678l-1.928 1.866V9.282a.472.472 0 0 0-.944 0v2.557a.471.471 0 0 0 0 .222V13.5a.472.472 0 0 0 .944 0v-1.363l.427-.413 1.428 2.033a.472.472 0 1 0 .773-.543l-1.514-2.155zm-2.958 1.924h-1.46V9.297a.472.472 0 0 0-.943 0v4.159c0 .26.21.472.471.472h1.932a.472.472 0 1 0 0-.944zm-5.857-1.092l.696-1.707.638 1.707H9.092zm2.523.488l.002-.016a.469.469 0 0 0-.127-.32l-1.046-2.8a.69.69 0 0 0-.627-.474.696.696 0 0 0-.653.447l-1.661 4.075a.472.472 0 0 0 .874.357l.33-.813h2.07l.299.8a.472.472 0 1 0 .884-.33l-.345-.926zM8.293 9.302a.472.472 0 0 0-.471-.472H4.577a.472.472 0 1 0 0 .944h1.16v3.736a.472.472 0 0 0 .944 0V9.774h1.14c.261 0 .472-.212.472-.472z"],"unicode":"","glyph":"M600 1050C889.9499999999999 1050 1125 866.8 1125 640.75C1125 414.75 889.9499999999999 231.55 600 231.55A675.0000000000001 675.0000000000001 0 0 0 513.65 237.05L293.25 92.9000000000001C268.2 79.6500000000001 259.35 81.0999999999999 269.6499999999999 113.55L314.25 297.4500000000001C170.25 370.4500000000002 75 496.95 75 640.7500000000001C75 866.75 310.05 1050 600 1050zM895.35 647L968.85 718.1999999999999A23.6 23.6 0 0 1 936.05 752.0999999999999L839.65 658.8V735.9A23.6 23.6 0 0 1 792.45 735.9V608.05A23.55 23.55 0 0 1 792.45 596.95V525A23.6 23.6 0 0 1 839.65 525V593.15L861 613.8L932.4 512.15A23.6 23.6 0 1 1 971.05 539.3L895.35 647.05zM747.45 550.8H674.45V735.15A23.6 23.6 0 0 1 627.3000000000001 735.15V527.2C627.3000000000001 514.2 637.8000000000001 503.6 650.85 503.6H747.45A23.6 23.6 0 1 1 747.45 550.8000000000001zM454.5999999999999 605.4L489.3999999999999 690.75L521.3 605.4H454.6zM580.7499999999999 581L580.8499999999999 581.8000000000001A23.45 23.45 0 0 1 574.4999999999999 597.8000000000001L522.1999999999999 737.8A34.49999999999999 34.49999999999999 0 0 1 490.8499999999999 761.5A34.79999999999999 34.79999999999999 0 0 1 458.1999999999999 739.1500000000001L375.1499999999999 535.4000000000001A23.6 23.6 0 0 1 418.85 517.5500000000002L435.35 558.2000000000002H538.8499999999999L553.8 518.2000000000002A23.6 23.6 0 1 1 598 534.7000000000002L580.7499999999999 581.0000000000001zM414.65 734.9000000000001A23.6 23.6 0 0 1 391.1 758.5H228.85A23.6 23.6 0 1 1 228.85 711.3H286.85V524.4999999999999A23.6 23.6 0 0 1 334.05 524.4999999999999V711.3000000000001H391.05C404.1 711.3000000000001 414.65 721.9000000000001 414.65 734.9000000000001z","horizAdvX":"1200"},"kakao-talk-line":{"path":["M0 0h24v24H0z","M5.678 18.123C3.092 16.566 1.5 14.112 1.5 11.405 1.5 6.701 6.248 3 12 3s10.5 3.701 10.5 8.405c0 4.704-4.748 8.405-10.5 8.405-.442 0-.882-.022-1.318-.065l-3.765 2.458c-.615.326-.957.425-1.485.066-.62-.424-.596-.892-.381-1.56l.627-2.586zM3.5 11.405c0 2.132 1.418 4.123 3.781 5.32l.706.359-.186.77-.401 1.648 2.8-1.83.366.046c.473.061.952.092 1.434.092 4.741 0 8.5-2.93 8.5-6.405S16.741 5 12 5s-8.5 2.93-8.5 6.405zm14.407-.346l1.514 2.155a.472.472 0 1 1-.773.543l-1.428-2.033-.427.413V13.5a.472.472 0 0 1-.944 0v-1.439a.471.471 0 0 1 0-.222V9.282a.472.472 0 0 1 .944 0v1.542l1.928-1.866a.472.472 0 0 1 .656.678l-1.47 1.423zm-2.958 1.925a.472.472 0 0 1 0 .944h-1.932a.472.472 0 0 1-.471-.472V9.297a.472.472 0 1 1 .943 0v3.687h1.46zm-5.857-1.092h1.334l-.638-1.707-.696 1.707zm2.523.488l.345.925a.472.472 0 1 1-.884.33l-.298-.799h-2.07l-.331.813a.472.472 0 1 1-.874-.357l1.66-4.075a.696.696 0 0 1 .654-.447.69.69 0 0 1 .627.474l1.046 2.8a.469.469 0 0 1 .127.32l-.002.016zM8.293 9.302c0 .26-.21.472-.471.472h-1.14v3.736a.472.472 0 0 1-.945 0V9.774h-1.16a.472.472 0 1 1 0-.944h3.245c.26 0 .471.211.471.472z"],"unicode":"","glyph":"M283.9 293.8499999999999C154.6 371.7000000000001 75 494.4 75 629.75C75 864.95 312.4000000000001 1050 600 1050S1125 864.95 1125 629.75C1125 394.5500000000001 887.5999999999999 209.5000000000001 600 209.5000000000001C577.9 209.5000000000001 555.9 210.6 534.1 212.7500000000001L345.85 89.8500000000001C315.1 73.5500000000002 298 68.6000000000001 271.6 86.5500000000002C240.6 107.7500000000002 241.8 131.1500000000003 252.55 164.5500000000002L283.9 293.8500000000002zM175 629.75C175 523.1500000000001 245.9 423.6 364.05 363.7499999999999L399.35 345.7999999999999L390.05 307.2999999999999L370 224.8999999999999L509.9999999999999 316.3999999999998L528.3 314.0999999999998C551.9499999999999 311.0499999999999 575.9 309.4999999999999 599.9999999999999 309.4999999999999C837.05 309.4999999999999 1025 455.9999999999999 1025 629.75S837.05 950 600 950S175 803.5 175 629.75zM895.35 647.0500000000001L971.05 539.3000000000001A23.6 23.6 0 1 0 932.4 512.1500000000001L861 613.8000000000001L839.65 593.1500000000001V525A23.6 23.6 0 0 0 792.45 525V596.95A23.55 23.55 0 0 0 792.45 608.05V735.9A23.6 23.6 0 0 0 839.65 735.9V658.8L936.05 752.0999999999999A23.6 23.6 0 0 0 968.85 718.1999999999999L895.35 647.05zM747.45 550.8A23.6 23.6 0 0 0 747.45 503.5999999999999H650.85A23.6 23.6 0 0 0 627.3 527.1999999999999V735.15A23.6 23.6 0 1 0 674.4499999999999 735.15V550.8H747.4499999999999zM454.5999999999999 605.4H521.3L489.3999999999999 690.75L454.5999999999999 605.4zM580.7499999999999 581L598 534.75A23.6 23.6 0 1 0 553.8 518.25L538.9 558.1999999999999H435.3999999999999L418.85 517.55A23.6 23.6 0 1 0 375.15 535.3999999999999L458.1499999999999 739.1499999999999A34.79999999999999 34.79999999999999 0 0 0 490.8499999999999 761.4999999999998A34.49999999999999 34.49999999999999 0 0 0 522.1999999999999 737.7999999999998L574.4999999999999 597.7999999999998A23.45 23.45 0 0 0 580.8499999999999 581.7999999999997L580.7499999999999 580.9999999999998zM414.65 734.9000000000001C414.65 721.9000000000001 404.1499999999999 711.3000000000001 391.1 711.3000000000001H334.1V524.5A23.6 23.6 0 0 0 286.85 524.5V711.3000000000001H228.85A23.6 23.6 0 1 0 228.85 758.5000000000001H391.1C404.1 758.5000000000001 414.65 747.95 414.65 734.9000000000001z","horizAdvX":"1200"},"key-2-fill":{"path":["M0 0h24v24H0z","M10.313 11.566l7.94-7.94 2.121 2.121-1.414 1.414 2.121 2.121-3.535 3.536-2.121-2.121-2.99 2.99a5.002 5.002 0 0 1-7.97 5.849 5 5 0 0 1 5.848-7.97zm-.899 5.848a2 2 0 1 0-2.828-2.828 2 2 0 0 0 2.828 2.828z"],"unicode":"","glyph":"M515.65 621.6999999999999L912.65 1018.7L1018.7 912.65L947.9999999999998 841.95L1054.0499999999997 735.9L877.2999999999998 559.1L771.2499999999998 665.1500000000001L621.7499999999998 515.65A250.09999999999997 250.09999999999997 0 0 0 223.2499999999998 223.1999999999999A250 250 0 0 0 515.6499999999997 621.6999999999998zM470.7 329.3A100 100 0 1 1 329.3000000000002 470.6999999999999A100 100 0 0 1 470.7 329.3z","horizAdvX":"1200"},"key-2-line":{"path":["M0 0h24v24H0z","M10.758 11.828l7.849-7.849 1.414 1.414-1.414 1.415 2.474 2.474-1.414 1.415-2.475-2.475-1.414 1.414 2.121 2.121-1.414 1.415-2.121-2.122-2.192 2.192a5.002 5.002 0 0 1-7.708 6.294 5 5 0 0 1 6.294-7.708zm-.637 6.293A3 3 0 1 0 5.88 13.88a3 3 0 0 0 4.242 4.242z"],"unicode":"","glyph":"M537.9 608.6L930.35 1001.05L1001.05 930.3500000000003L930.35 859.6000000000001L1054.05 735.9L983.35 665.1500000000001L859.5999999999998 788.9000000000001L788.8999999999999 718.2L894.9499999999998 612.15L824.2499999999998 541.4L718.1999999999998 647.5L608.5999999999998 537.9A250.09999999999997 250.09999999999997 0 0 0 223.1999999999998 223.1999999999999A250 250 0 0 0 537.8999999999997 608.5999999999999zM506.05 293.9500000000001A150 150 0 1 1 294 506A150 150 0 0 1 506.1 293.9z","horizAdvX":"1200"},"key-fill":{"path":["M0 0h24v24H0z","M17 14h-4.341a6 6 0 1 1 0-4H23v4h-2v4h-4v-4zM7 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M850 500H632.9499999999999A300 300 0 1 0 632.9499999999999 700H1150V500H1050V300H850V500zM350 500A100 100 0 1 1 350 700A100 100 0 0 1 350 500z","horizAdvX":"1200"},"key-line":{"path":["M0 0h24v24H0z","M12.917 13A6.002 6.002 0 0 1 1 12a6 6 0 0 1 11.917-1H23v2h-2v4h-2v-4h-2v4h-2v-4h-2.083zM7 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M645.85 550A300.09999999999997 300.09999999999997 0 0 0 50 600A300 300 0 0 0 645.85 650H1150V550H1050V350H950V550H850V350H750V550H645.85zM350 400A200 200 0 1 1 350 800A200 200 0 0 1 350 400z","horizAdvX":"1200"},"keyboard-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 4v2h2V7H5zm0 4v2h2v-2H5zm0 4v2h14v-2H5zm4-4v2h2v-2H9zm0-4v2h2V7H9zm4 0v2h2V7h-2zm4 0v2h2V7h-2zm-4 4v2h2v-2h-2zm4 0v2h2v-2h-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM250 850V750H350V850H250zM250 650V550H350V650H250zM250 450V350H950V450H250zM450 650V550H550V650H450zM450 850V750H550V850H450zM650 850V750H750V850H650zM850 850V750H950V850H850zM650 650V550H750V650H650zM850 650V550H950V650H850z","horizAdvX":"1200"},"keyboard-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 4h2v2H6V7zm0 4h2v2H6v-2zm0 4h12v2H6v-2zm5-4h2v2h-2v-2zm0-4h2v2h-2V7zm5 0h2v2h-2V7zm0 4h2v2h-2v-2z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM300 850H400V750H300V850zM300 650H400V550H300V650zM300 450H900V350H300V450zM550 650H650V550H550V650zM550 850H650V750H550V850zM800 850H900V750H800V850zM800 650H900V550H800V650z","horizAdvX":"1200"},"keyboard-fill":{"path":["M0 0h24v24H0z","M3 17h18v2H3v-2zm0-6h3v3H3v-3zm5 0h3v3H8v-3zM3 5h3v3H3V5zm10 0h3v3h-3V5zm5 0h3v3h-3V5zm-5 6h3v3h-3v-3zm5 0h3v3h-3v-3zM8 5h3v3H8V5z"],"unicode":"","glyph":"M150 350H1050V250H150V350zM150 650H300V500H150V650zM400 650H550V500H400V650zM150 950H300V800H150V950zM650 950H800V800H650V950zM900 950H1050V800H900V950zM650 650H800V500H650V650zM900 650H1050V500H900V650zM400 950H550V800H400V950z","horizAdvX":"1200"},"keyboard-line":{"path":["M0 0h24v24H0z","M3 17h18v2H3v-2zm0-6h3v3H3v-3zm5 0h3v3H8v-3zM3 5h3v3H3V5zm10 0h3v3h-3V5zm5 0h3v3h-3V5zm-5 6h3v3h-3v-3zm5 0h3v3h-3v-3zM8 5h3v3H8V5z"],"unicode":"","glyph":"M150 350H1050V250H150V350zM150 650H300V500H150V650zM400 650H550V500H400V650zM150 950H300V800H150V950zM650 950H800V800H650V950zM900 950H1050V800H900V950zM650 650H800V500H650V650zM900 650H1050V500H900V650zM400 950H550V800H400V950z","horizAdvX":"1200"},"keynote-fill":{"path":["M0 0h24v24H0z","M13 12v8h4v2H7v-2h4v-8H2.992c-.548 0-.906-.43-.797-.977l1.61-8.046C3.913 2.437 4.445 2 5 2h13.998c.553 0 1.087.43 1.196.977l1.61 8.046c.108.54-.26.977-.797.977H13z"],"unicode":"","glyph":"M650 600V200H850V100H350V200H550V600H149.6C122.2 600 104.3 621.5 109.75 648.85L190.25 1051.15C195.65 1078.15 222.25 1100 250 1100H949.8999999999997C977.55 1100 1004.2499999999998 1078.5 1009.7 1051.15L1090.1999999999998 648.85C1095.6 621.85 1077.1999999999998 600 1050.35 600H650z","horizAdvX":"1200"},"keynote-line":{"path":["M0 0h24v24H0z","M4.44 10h15.12l-1.2-6H5.64l-1.2 6zM13 12v8h4v2H7v-2h4v-8H2.992c-.548 0-.906-.43-.797-.977l1.61-8.046C3.913 2.437 4.445 2 5 2h13.998c.553 0 1.087.43 1.196.977l1.61 8.046c.108.54-.26.977-.797.977H13z"],"unicode":"","glyph":"M222 700H977.9999999999998L918 1000H282L222 700zM650 600V200H850V100H350V200H550V600H149.6C122.2 600 104.3 621.5 109.75 648.85L190.25 1051.15C195.65 1078.15 222.25 1100 250 1100H949.8999999999997C977.55 1100 1004.2499999999998 1078.5 1009.7 1051.15L1090.1999999999998 648.85C1095.6 621.85 1077.1999999999998 600 1050.35 600H650z","horizAdvX":"1200"},"knife-blood-fill":{"path":["M0 0h24v24H0z","M4.342 1.408L22.373 19.44a1.5 1.5 0 0 1-2.121 2.122l-4.596-4.597L12.12 20.5 8 16.38V19a1 1 0 0 1-2 0v-4a1 1 0 0 0-1.993-.117L4 15v1a1 1 0 0 1-2 0V7.214a7.976 7.976 0 0 1 2.168-5.627l.174-.179z"],"unicode":"","glyph":"M217.1 1129.6L1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 121.8999999999999L782.8000000000001 351.75L606 175L400 381V250A50 50 0 0 0 300 250V450A50 50 0 0 1 200.35 455.85L200 450V400A50 50 0 0 0 100 400V839.3A398.8 398.8 0 0 0 208.4 1120.6499999999999L217.1 1129.6z","horizAdvX":"1200"},"knife-blood-line":{"path":["M0 0h24v24H0z","M4.342 1.408L22.373 19.44a1.5 1.5 0 0 1-2.121 2.122l-4.596-4.597L12.12 20.5 8 16.38V19a1 1 0 0 1-2 0v-4a1 1 0 0 0-1.993-.117L4 15v1a1 1 0 0 1-2 0V7.214a7.976 7.976 0 0 1 2.168-5.627l.174-.179zm.241 3.07l-.051.11a5.993 5.993 0 0 0-.522 2.103L4 7l-.001.12a5.984 5.984 0 0 0 1.58 4.003l.177.185 6.363 6.363 2.829-2.828L4.583 4.478z"],"unicode":"","glyph":"M217.1 1129.6L1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 121.8999999999999L782.8000000000001 351.75L606 175L400 381V250A50 50 0 0 0 300 250V450A50 50 0 0 1 200.35 455.85L200 450V400A50 50 0 0 0 100 400V839.3A398.8 398.8 0 0 0 208.4 1120.6499999999999L217.1 1129.6zM229.15 976.1L226.6 970.6A299.65 299.65 0 0 1 200.5 865.45L200 850L199.95 844A299.2 299.2 0 0 1 278.9500000000001 643.8499999999999L287.8 634.5999999999999L605.95 316.4499999999998L747.4 457.8499999999998L229.15 976.1z","horizAdvX":"1200"},"knife-fill":{"path":["M0 0h24v24H0z","M22.373 19.44a1.5 1.5 0 0 1-2.121 2.12l-4.596-4.596L12.12 20.5l-7.778-7.778a8 8 0 0 1-.174-11.135l.174-.179L22.373 19.44z"],"unicode":"","glyph":"M1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 122L782.8000000000001 351.7999999999999L606 175L217.1 563.9A400 400 0 0 0 208.4 1120.6499999999999L217.1 1129.6L1118.65 227.9999999999999z","horizAdvX":"1200"},"knife-line":{"path":["M0 0h24v24H0z","M4.342 1.408L22.373 19.44a1.5 1.5 0 0 1-2.121 2.122l-4.596-4.597L12.12 20.5l-7.778-7.778a8 8 0 0 1-.174-11.135l.174-.179zm.241 3.07l-.051.11a6.005 6.005 0 0 0 1.047 6.535l.177.185 6.363 6.363 2.829-2.828L4.583 4.478z"],"unicode":"","glyph":"M217.1 1129.6L1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 121.8999999999999L782.8000000000001 351.75L606 175L217.1 563.9A400 400 0 0 0 208.4 1120.6499999999999L217.1 1129.6zM229.15 976.1L226.6 970.6A300.24999999999994 300.24999999999994 0 0 1 278.95 643.8499999999999L287.7999999999999 634.5999999999999L605.95 316.4499999999998L747.4 457.8499999999998L229.15 976.1z","horizAdvX":"1200"},"landscape-fill":{"path":["M0 0h24v24H0z","M16 21l-4.762-8.73L15 6l8 15h-7zM8 10l6 11H2l6-11zM5.5 8a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M800 150L561.9 586.5L750 900L1150 150H800zM400 700L700 150H100L400 700zM275 800A125 125 0 1 0 275 1050A125 125 0 0 0 275 800z","horizAdvX":"1200"},"landscape-line":{"path":["M0 0h24v24H0z","M11.27 12.216L15 6l8 15H2L9 8l2.27 4.216zm1.12 2.022L14.987 19h4.68l-4.77-8.942-2.507 4.18zM5.348 19h7.304L9 12.219 5.348 19zM5.5 8a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M563.5 589.2L750 900L1150 150H100L450 800L563.5 589.1999999999999zM619.5 488.1L749.35 250H983.3500000000003L744.8500000000001 697.1L619.5000000000001 488.1zM267.4 250H632.6L450 589.0500000000001L267.4 250zM275 800A125 125 0 1 0 275 1050A125 125 0 0 0 275 800z","horizAdvX":"1200"},"layout-2-fill":{"path":["M0 0h24v24H0z","M11 3v18H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7zm10 10v7a1 1 0 0 1-1 1h-7v-8h8zM20 3a1 1 0 0 1 1 1v7h-8V3h7z"],"unicode":"","glyph":"M550 1050V150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H550zM1050 550V200A50 50 0 0 0 1000 150H650V550H1050zM1000 1050A50 50 0 0 0 1050 1000V650H650V1050H1000z","horizAdvX":"1200"},"layout-2-line":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16zM11 5H5v14h6V5zm8 8h-6v6h6v-6zm0-8h-6v6h6V5z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V200zM550 950H250V250H550V950zM950 550H650V250H950V550zM950 950H650V650H950V950z","horizAdvX":"1200"},"layout-3-fill":{"path":["M0 0h24v24H0z","M8 10v11H4a1 1 0 0 1-1-1V10h5zm13 0v10a1 1 0 0 1-1 1H10V10h11zm-1-7a1 1 0 0 1 1 1v4H3V4a1 1 0 0 1 1-1h16z"],"unicode":"","glyph":"M400 700V150H200A50 50 0 0 0 150 200V700H400zM1050 700V200A50 50 0 0 0 1000 150H500V700H1050zM1000 1050A50 50 0 0 0 1050 1000V800H150V1000A50 50 0 0 0 200 1050H1000z","horizAdvX":"1200"},"layout-3-line":{"path":["M0 0h24v24H0z","M4 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4zm4-11H5v9h3v-9zm11 0h-9v9h9v-9zm0-5H5v3h14V5z"],"unicode":"","glyph":"M200 150A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200zM400 700H250V250H400V700zM950 700H500V250H950V700zM950 950H250V800H950V950z","horizAdvX":"1200"},"layout-4-fill":{"path":["M0 0h24v24H0z","M11 13v8H4a1 1 0 0 1-1-1v-7h8zm2-10h7a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-7V3zM3 4a1 1 0 0 1 1-1h7v8H3V4z"],"unicode":"","glyph":"M550 550V150H200A50 50 0 0 0 150 200V550H550zM650 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H650V1050zM150 1000A50 50 0 0 0 200 1050H550V650H150V1000z","horizAdvX":"1200"},"layout-4-line":{"path":["M0 0h24v24H0z","M20 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16zm-9 10H5v6h6v-6zm2 6h6V5h-6v14zM11 5H5v6h6V5z"],"unicode":"","glyph":"M1000 1050A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000zM550 550H250V250H550V550zM650 250H950V950H650V250zM550 950H250V650H550V950z","horizAdvX":"1200"},"layout-5-fill":{"path":["M0 0h24v24H0z","M7 10v11H3a1 1 0 0 1-1-1V10h5zm15 0v10a1 1 0 0 1-1 1H9V10h13zm-1-7a1 1 0 0 1 1 1v4H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M350 700V150H150A50 50 0 0 0 100 200V700H350zM1100 700V200A50 50 0 0 0 1050 150H450V700H1100zM1050 1050A50 50 0 0 0 1100 1000V800H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-5-line":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3zm4-11H4v9h3v-9zm13 0H9v9h11v-9zm0-5H4v3h16V5z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150zM350 700H200V250H350V700zM1000 700H450V250H1000V700zM1000 950H200V800H1000V950z","horizAdvX":"1200"},"layout-6-fill":{"path":["M0 0h24v24H0z","M15 10v11H3a1 1 0 0 1-1-1V10h13zm7 0v10a1 1 0 0 1-1 1h-4V10h5zm-1-7a1 1 0 0 1 1 1v4H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M750 700V150H150A50 50 0 0 0 100 200V700H750zM1100 700V200A50 50 0 0 0 1050 150H850V700H1100zM1050 1050A50 50 0 0 0 1100 1000V800H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-6-line":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3zm12-11H4v9h11v-9zm5 0h-3v9h3v-9zm0-5H4v3h16V5z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150zM750 700H200V250H750V700zM1000 700H850V250H1000V700zM1000 950H200V800H1000V950z","horizAdvX":"1200"},"layout-bottom-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-2 13H5v2h14v-2z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM950 400H250V300H950V400z","horizAdvX":"1200"},"layout-bottom-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-2 10v2H6v-2h12z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM900 450V350H300V450H900z","horizAdvX":"1200"},"layout-bottom-fill":{"path":["M0 0h24v24H0z","M22 16v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-4h20zM21 3a1 1 0 0 1 1 1v10H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M1100 400V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V400H1100zM1050 1050A50 50 0 0 0 1100 1000V500H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-bottom-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM4 16v3h16v-3H4zm0-2h16V5H4v9z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM200 400V250H1000V400H200zM200 500H1000V950H200V500z","horizAdvX":"1200"},"layout-column-fill":{"path":["M0 0h24v24H0z","M12 5v14h7V5h-7zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M600 950V250H950V950H600zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-column-line":{"path":["M0 0h24v24H0z","M11 5H5v14h6V5zm2 0v14h6V5h-6zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M550 950H250V250H550V950zM650 950V250H950V950H650zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-fill":{"path":["M0 0h24v24H0z","M16 21V10h5v10a1 1 0 0 1-1 1h-4zm-2 0H4a1 1 0 0 1-1-1V10h11v11zm7-13H3V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v4z"],"unicode":"","glyph":"M800 150V700H1050V200A50 50 0 0 0 1000 150H800zM700 150H200A50 50 0 0 0 150 200V700H700V150zM1050 800H150V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V800z","horizAdvX":"1200"},"layout-grid-fill":{"path":["M0 0h24v24H0z","M22 12.999V20a1 1 0 0 1-1 1h-8v-8.001h9zm-11 0V21H3a1 1 0 0 1-1-1v-7.001h9zM11 3v7.999H2V4a1 1 0 0 1 1-1h8zm10 0a1 1 0 0 1 1 1v6.999h-9V3h8z"],"unicode":"","glyph":"M1100 550.05V200A50 50 0 0 0 1050 150H650V550.05H1100zM550 550.05V150H150A50 50 0 0 0 100 200V550.0500000000001H550zM550 1050V650.0500000000001H100V1000A50 50 0 0 0 150 1050H550zM1050 1050A50 50 0 0 0 1100 1000V650.0500000000001H650V1050H1050z","horizAdvX":"1200"},"layout-grid-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM11 13H4v6h7v-6zm9 0h-7v6h7v-6zm-9-8H4v6h7V5zm9 0h-7v6h7V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM550 550H200V250H550V550zM1000 550H650V250H1000V550zM550 950H200V650H550V950zM1000 950H650V650H1000V950z","horizAdvX":"1200"},"layout-left-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM7 6H5v12h2V6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM350 900H250V300H350V900z","horizAdvX":"1200"},"layout-left-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zM8 7v10H6V7h2z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM400 850V350H300V850H400z","horizAdvX":"1200"},"layout-left-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H9V3h12zM7 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4v18z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H450V1050H1050zM350 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V150z","horizAdvX":"1200"},"layout-left-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM7 5H4v14h3V5zm13 0H9v14h11V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM350 950H200V250H350V950zM1000 950H450V250H1000V950z","horizAdvX":"1200"},"layout-line":{"path":["M0 0h24v24H0z","M5 8h14V5H5v3zm9 11v-9H5v9h9zm2 0h3v-9h-3v9zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 800H950V950H250V800zM700 250V700H250V250H700zM800 250H950V700H800V250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-masonry-fill":{"path":["M0 0h24v24H0z","M22 9.999V20a1 1 0 0 1-1 1h-8V9.999h9zm-11 6V21H3a1 1 0 0 1-1-1v-4.001h9zM11 3v10.999H2V4a1 1 0 0 1 1-1h8zm10 0a1 1 0 0 1 1 1v3.999h-9V3h8z"],"unicode":"","glyph":"M1100 700.05V200A50 50 0 0 0 1050 150H650V700.05H1100zM550 400.05V150H150A50 50 0 0 0 100 200V400.0500000000001H550zM550 1050V500.05H100V1000A50 50 0 0 0 150 1050H550zM1050 1050A50 50 0 0 0 1100 1000V800.05H650V1050H1050z","horizAdvX":"1200"},"layout-masonry-line":{"path":["M0 0h24v24H0z","M22 20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16zm-11-5H4v4h7v-4zm9-4h-7v8h7v-8zm-9-6H4v8h7V5zm9 0h-7v4h7V5z"],"unicode":"","glyph":"M1100 200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V200zM550 450H200V250H550V450zM1000 650H650V250H1000V650zM550 950H200V550H550V950zM1000 950H650V750H1000V950z","horizAdvX":"1200"},"layout-right-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-2 3h-2v12h2V6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM950 900H850V300H950V900z","horizAdvX":"1200"},"layout-right-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-2 2v10h-2V7h2z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM900 850V350H800V850H900z","horizAdvX":"1200"},"layout-right-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3h4zm-6 18H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12v18z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050H1050zM750 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H750V150z","horizAdvX":"1200"},"layout-right-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-6 2H4v14h11V5zm5 0h-3v14h3V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM750 950H200V250H750V950zM1000 950H850V250H1000V950z","horizAdvX":"1200"},"layout-row-fill":{"path":["M0 0h24v24H0z","M19 12H5v7h14v-7zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M950 600H250V250H950V600zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-row-line":{"path":["M0 0h24v24H0z","M19 11V5H5v6h14zm0 2H5v6h14v-6zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M950 650V950H250V650H950zM950 550H250V250H950V550zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-top-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-2 3H5v2h14V6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM950 900H250V800H950V900z","horizAdvX":"1200"},"layout-top-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-2 2v2H6V7h12z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM900 850V750H300V850H900z","horizAdvX":"1200"},"layout-top-fill":{"path":["M0 0h24v24H0z","M22 10v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10h20zm-1-7a1 1 0 0 1 1 1v4H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M1100 700V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V700H1100zM1050 1050A50 50 0 0 0 1100 1000V800H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-top-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM4 10v9h16v-9H4zm0-2h16V5H4v3z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM200 700V250H1000V700H200zM200 800H1000V950H200V800z","horizAdvX":"1200"},"leaf-fill":{"path":["M0 0H24V24H0z","M21 3v2c0 9.627-5.373 14-12 14H7.098c.212-3.012 1.15-4.835 3.598-7.001 1.204-1.065 1.102-1.68.509-1.327-4.084 2.43-6.112 5.714-6.202 10.958L5 22H3c0-1.363.116-2.6.346-3.732C3.116 16.974 3 15.218 3 13 3 7.477 7.477 3 13 3c2 0 4 1 8 0z"],"unicode":"","glyph":"M1050 1050V950C1050 468.65 781.3499999999999 250 450 250H354.9C365.5 400.6 412.4 491.75 534.8 600.0500000000001C595 653.3000000000001 589.9 684.0500000000001 560.25 666.4000000000001C356.05 544.9000000000001 254.65 380.7000000000001 250.15 118.5L250 100H150C150 168.1500000000001 155.8 230.0000000000001 167.3 286.5999999999999C155.8 351.3 150 439.1 150 550C150 826.15 373.85 1050 650 1050C750 1050 850 1000 1050 1050z","horizAdvX":"1200"},"leaf-line":{"path":["M0 0H24V24H0z","M21 3v2c0 9.627-5.373 14-12 14H5.243C5.08 19.912 5 20.907 5 22H3c0-1.363.116-2.6.346-3.732C3.116 16.974 3 15.218 3 13 3 7.477 7.477 3 13 3c2 0 4 1 8 0zm-8 2c-4.418 0-8 3.582-8 8 0 .362.003.711.01 1.046 1.254-1.978 3.091-3.541 5.494-4.914l.992 1.736C8.641 12.5 6.747 14.354 5.776 17H9c6.015 0 9.871-3.973 9.997-11.612-1.372.133-2.647.048-4.22-.188C13.627 5.027 13.401 5 13 5z"],"unicode":"","glyph":"M1050 1050V950C1050 468.65 781.3499999999999 250 450 250H262.1500000000001C254 204.4000000000001 250 154.6500000000001 250 100H150C150 168.1500000000001 155.8 230.0000000000001 167.3 286.5999999999999C155.8 351.3 150 439.1 150 550C150 826.15 373.85 1050 650 1050C750 1050 850 1000 1050 1050zM650 950C429.1 950 250 770.9 250 550C250 531.9 250.15 514.4499999999999 250.5 497.7C313.2 596.6 405.05 674.75 525.1999999999999 743.4000000000001L574.8 656.6C432.05 575 337.35 482.3000000000001 288.8 350H450C750.75 350 943.55 548.65 949.85 930.6C881.25 923.95 817.5000000000001 928.2 738.85 940C681.35 948.65 670.05 950 650 950z","horizAdvX":"1200"},"lifebuoy-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM7.197 14.682l-2.175 2.174a8.549 8.549 0 0 0 1.818 1.899l.305.223 2.173-2.175a5.527 5.527 0 0 1-1.98-1.883l-.14-.238zm9.606 0a5.527 5.527 0 0 1-1.883 1.98l-.238.14 2.174 2.176a8.549 8.549 0 0 0 1.899-1.818l.223-.304-2.175-2.174zM12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM7.145 5.022a8.549 8.549 0 0 0-1.9 1.818l-.223.305 2.175 2.173a5.527 5.527 0 0 1 1.883-1.98l.238-.14-2.173-2.176zm9.71 0l-2.173 2.175a5.527 5.527 0 0 1 1.98 1.883l.14.238 2.176-2.173a8.549 8.549 0 0 0-1.818-1.9l-.304-.223z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM359.85 465.9L251.1 357.2A427.44999999999993 427.44999999999993 0 0 1 342 262.2499999999999L357.25 251.0999999999999L465.9 359.8499999999999A276.34999999999997 276.34999999999997 0 0 0 366.9 453.9999999999999L359.9 465.8999999999999zM840.1500000000001 465.9A276.34999999999997 276.34999999999997 0 0 0 746.0000000000001 366.9000000000001L734.1000000000001 359.9L842.8000000000001 251.0999999999999A427.44999999999993 427.44999999999993 0 0 1 937.7500000000002 342L948.9 357.2L840.1500000000001 465.8999999999999zM600 800A200 200 0 1 1 600 400A200 200 0 0 1 600 800zM357.25 948.9A427.44999999999993 427.44999999999993 0 0 1 262.25 858L251.1 842.75L359.85 734.1A276.34999999999997 276.34999999999997 0 0 0 453.9999999999999 833.1L465.8999999999999 840.1L357.2499999999999 948.9zM842.75 948.9L734.1 840.15A276.34999999999997 276.34999999999997 0 0 0 833.0999999999999 746L840.1 734.1L948.9 842.75A427.44999999999993 427.44999999999993 0 0 1 858 937.75L842.8000000000001 948.9z","horizAdvX":"1200"},"lifebuoy-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 15a4.987 4.987 0 0 1-1.828-.345l-2.236 2.237A7.963 7.963 0 0 0 12 20a7.963 7.963 0 0 0 4.064-1.108l-2.236-2.237A4.987 4.987 0 0 1 12 17zm-8-5c0 1.484.404 2.873 1.108 4.064l2.237-2.236A4.987 4.987 0 0 1 7 12c0-.645.122-1.261.345-1.828L5.108 7.936A7.963 7.963 0 0 0 4 12zm14.892-4.064l-2.237 2.236c.223.567.345 1.183.345 1.828s-.122 1.261-.345 1.828l2.237 2.236A7.963 7.963 0 0 0 20 12a7.963 7.963 0 0 0-1.108-4.064zM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm0-5a7.963 7.963 0 0 0-4.064 1.108l2.236 2.237A4.987 4.987 0 0 1 12 7c.645 0 1.261.122 1.828.345l2.236-2.237A7.963 7.963 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 350A249.34999999999997 249.34999999999997 0 0 0 508.6 367.25L396.8 255.3999999999999A398.15 398.15 0 0 1 600 200A398.15 398.15 0 0 1 803.2 255.4L691.4 367.25A249.34999999999997 249.34999999999997 0 0 0 600 350zM200 600C200 525.8 220.2 456.3499999999999 255.4000000000001 396.8L367.2500000000001 508.6A249.34999999999997 249.34999999999997 0 0 0 350 600C350 632.25 356.1 663.05 367.25 691.4L255.4 803.2A398.15 398.15 0 0 1 200 600zM944.6 803.2L832.75 691.4C843.9 663.05 850 632.25 850 600S843.9 536.95 832.75 508.6L944.6000000000003 396.8A398.15 398.15 0 0 1 1000 600A398.15 398.15 0 0 1 944.6 803.2zM600 750A150 150 0 1 1 600 450A150 150 0 0 1 600 750zM600 1000A398.15 398.15 0 0 1 396.8 944.6L508.6 832.75A249.34999999999997 249.34999999999997 0 0 0 600 850C632.25 850 663.05 843.9 691.4 832.75L803.2 944.6A398.15 398.15 0 0 1 600 1000z","horizAdvX":"1200"},"lightbulb-fill":{"path":["M0 0h24v24H0z","M11 18H7.941c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H13v-5h-2v5zm5 2v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8z"],"unicode":"","glyph":"M550 300H397.05C382.2 363.65 315.2 415.7000000000001 287.7 450A400 400 0 1 0 912.2 449.9C884.6999999999999 415.65 817.8000000000001 363.5999999999999 802.95 300H650V550H550V300zM800 200V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V200H800z","horizAdvX":"1200"},"lightbulb-flash-fill":{"path":["M0 0h24v24H0z","M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z"],"unicode":"","glyph":"M397.05 300C382.2 363.65 315.2 415.7000000000001 287.7 450A400 400 0 1 0 912.2 449.9C884.6999999999999 415.65 817.8000000000001 363.5999999999999 802.95 300H397zM800 200V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V200H800zM650 699.75V900L425 599.75H550V399.75L775 699.75H650z","horizAdvX":"1200"},"lightbulb-flash-line":{"path":["M0 0h24v24H0z","M9.973 18h4.054c.132-1.202.745-2.194 1.74-3.277.113-.122.832-.867.917-.973a6 6 0 1 0-9.37-.002c.086.107.807.853.918.974.996 1.084 1.609 2.076 1.741 3.278zM14 20h-4v1h4v-1zm-8.246-5a8 8 0 1 1 12.49.002C17.624 15.774 16 17 16 18.5V21a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2.5C8 17 6.375 15.774 5.754 15zM13 10.004h2.5l-4.5 6v-4H8.5L13 6v4.005z"],"unicode":"","glyph":"M498.65 300H701.35C707.95 360.0999999999999 738.6 409.7 788.35 463.85C794 469.95 829.95 507.2 834.2 512.5000000000001A300 300 0 1 1 365.7000000000001 512.6000000000001C370.0000000000001 507.2500000000001 406.0500000000002 469.9500000000002 411.6000000000001 463.9000000000001C461.4000000000001 409.7000000000002 492.0500000000001 360.1000000000002 498.65 300.0000000000003zM700 200H500V150H700V200zM287.7 450A400 400 0 1 0 912.2 449.9C881.1999999999999 411.3000000000001 800 350 800 275V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V275C400 350 318.75 411.3000000000001 287.7 450zM650 699.8H775L550 399.8000000000001V599.8000000000001H425L650 900V699.75z","horizAdvX":"1200"},"lightbulb-line":{"path":["M0 0h24v24H0z","M9.973 18H11v-5h2v5h1.027c.132-1.202.745-2.194 1.74-3.277.113-.122.832-.867.917-.973a6 6 0 1 0-9.37-.002c.086.107.807.853.918.974.996 1.084 1.609 2.076 1.741 3.278zM10 20v1h4v-1h-4zm-4.246-5a8 8 0 1 1 12.49.002C17.624 15.774 16 17 16 18.5V21a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2.5C8 17 6.375 15.774 5.754 15z"],"unicode":"","glyph":"M498.65 300H550V550H650V300H701.3499999999999C707.9499999999999 360.0999999999999 738.5999999999999 409.7 788.35 463.85C794 469.95 829.95 507.2 834.2 512.5000000000001A300 300 0 1 1 365.7000000000001 512.6000000000001C370.0000000000001 507.2500000000001 406.0500000000002 469.9500000000002 411.6000000000001 463.9000000000001C461.4000000000001 409.7000000000002 492.0500000000001 360.1000000000002 498.65 300.0000000000003zM500 200V150H700V200H500zM287.7 450A400 400 0 1 0 912.2 449.9C881.1999999999999 411.3000000000001 800 350 800 275V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V275C400 350 318.75 411.3000000000001 287.7 450z","horizAdvX":"1200"},"line-chart-fill":{"path":["M0 0H24V24H0z","M5 3v16h16v2H3V3h2zm14.94 2.94l2.12 2.12L16 14.122l-3-3-3.94 3.94-2.12-2.122L13 6.88l3 3 3.94-3.94z"],"unicode":"","glyph":"M250 1050V250H1050V150H150V1050H250zM996.9999999999998 903L1103 797L800 493.9L650 643.9L453 446.9L347 553L650 856L800 706L997.0000000000002 903z","horizAdvX":"1200"},"line-chart-line":{"path":["M0 0H24V24H0z","M5 3v16h16v2H3V3h2zm15.293 3.293l1.414 1.414L16 13.414l-3-2.999-4.293 4.292-1.414-1.414L13 7.586l3 2.999 4.293-4.292z"],"unicode":"","glyph":"M250 1050V250H1050V150H150V1050H250zM1014.65 885.3499999999999L1085.3500000000001 814.6500000000001L800 529.3000000000001L650 679.25L435.35 464.6500000000001L364.6500000000001 535.35L650 820.7L800 670.75L1014.65 885.3499999999999z","horizAdvX":"1200"},"line-fill":{"path":["M0 0h24v24H0z","M18.663 10.84a.526.526 0 0 1-.526.525h-1.462v.938h1.462a.525.525 0 1 1 0 1.049H16.15a.526.526 0 0 1-.522-.524V8.852c0-.287.235-.525.525-.525h1.988a.525.525 0 0 1-.003 1.05h-1.462v.938h1.462c.291 0 .526.237.526.525zm-4.098 2.485a.538.538 0 0 1-.166.025.515.515 0 0 1-.425-.208l-2.036-2.764v2.45a.525.525 0 0 1-1.047 0V8.852a.522.522 0 0 1 .52-.523c.162 0 .312.086.412.211l2.052 2.775V8.852c0-.287.235-.525.525-.525.287 0 .525.238.525.525v3.976a.524.524 0 0 1-.36.497zm-4.95.027a.526.526 0 0 1-.523-.524V8.852c0-.287.236-.525.525-.525.289 0 .524.238.524.525v3.976a.527.527 0 0 1-.526.524zm-1.53 0H6.098a.528.528 0 0 1-.525-.524V8.852a.527.527 0 0 1 1.05 0v3.45h1.464a.525.525 0 0 1 0 1.05zM12 2.572c-5.513 0-10 3.643-10 8.118 0 4.01 3.558 7.369 8.363 8.007.325.068.769.215.881.492.1.25.066.638.032.9l-.137.85c-.037.25-.2.988.874.537 1.076-.449 5.764-3.398 7.864-5.812C21.313 14.089 22 12.477 22 10.69c0-4.475-4.488-8.118-10-8.118z"],"unicode":"","glyph":"M933.15 658A26.300000000000004 26.300000000000004 0 0 0 906.85 631.75H833.75V584.8499999999999H906.85A26.25 26.25 0 1 0 906.85 532.4H807.4999999999999A26.300000000000004 26.300000000000004 0 0 0 781.3999999999999 558.6V757.4C781.3999999999999 771.75 793.1499999999999 783.65 807.65 783.65H907.05A26.25 26.25 0 0 0 906.8999999999997 731.15H833.8V684.2499999999999H906.8999999999997C921.45 684.2499999999999 933.2 672.4 933.2 657.9999999999999zM728.2500000000001 533.75A26.900000000000002 26.900000000000002 0 0 0 719.95 532.5A25.750000000000004 25.750000000000004 0 0 0 698.7 542.9L596.9 681.1V558.6A26.25 26.25 0 0 0 544.55 558.6V757.4A26.099999999999998 26.099999999999998 0 0 0 570.55 783.55C578.65 783.55 586.15 779.25 591.15 773L693.75 634.2499999999999V757.4C693.75 771.75 705.5 783.65 720 783.65C734.35 783.65 746.25 771.75 746.25 757.4V558.6A26.2 26.2 0 0 0 728.2500000000001 533.75zM480.7500000000001 532.4000000000001A26.300000000000004 26.300000000000004 0 0 0 454.6000000000001 558.6V757.4C454.6000000000001 771.75 466.4000000000001 783.65 480.8500000000001 783.65C495.3000000000001 783.65 507.0500000000001 771.75 507.0500000000001 757.4V558.6A26.35 26.35 0 0 0 480.7500000000001 532.4zM404.2500000000001 532.4000000000001H304.9A26.4 26.4 0 0 0 278.65 558.6V757.4A26.35 26.35 0 0 0 331.15 757.4V584.9H404.35A26.25 26.25 0 0 0 404.35 532.4zM600 1071.4C324.35 1071.4 100 889.25 100 665.4999999999999C100 465 277.9 297.05 518.15 265.1499999999999C534.4 261.7499999999998 556.6 254.3999999999999 562.2 240.5499999999999C567.1999999999999 228.0499999999999 565.5 208.6499999999998 563.8 195.5499999999999L556.9499999999999 153.0499999999997C555.0999999999999 140.5499999999997 546.95 103.6499999999999 600.65 126.1999999999998C654.45 148.6499999999999 888.85 296.0999999999999 993.85 416.8C1065.6499999999999 495.55 1100 576.15 1100 665.5C1100 889.25 875.6 1071.4 600 1071.4z","horizAdvX":"1200"},"line-height":{"path":["M0 0h24v24H0z","M11 4h10v2H11V4zM6 7v4H4V7H1l4-4 4 4H6zm0 10h3l-4 4-4-4h3v-4h2v4zm5 1h10v2H11v-2zm-2-7h12v2H9v-2z"],"unicode":"","glyph":"M550 1000H1050V900H550V1000zM300 850V650H200V850H50L250 1050L450 850H300zM300 350H450L250 150L50 350H200V550H300V350zM550 300H1050V200H550V300zM450 650H1050V550H450V650z","horizAdvX":"1200"},"line-line":{"path":["M0 0h24v24H0z","M22 10.69c0 1.787-.687 3.4-2.123 4.974-2.1 2.414-6.788 5.363-7.864 5.812-1.074.451-.911-.287-.874-.537l.137-.85c.034-.262.068-.65-.032-.9-.112-.277-.556-.424-.881-.492C5.558 18.059 2 14.7 2 10.69c0-4.475 4.487-8.118 10-8.118 5.512 0 10 3.643 10 8.118zm-3.6 3.625c1.113-1.22 1.6-2.361 1.6-3.625 0-3.268-3.51-6.118-8-6.118s-8 2.85-8 6.118c0 2.905 2.728 5.507 6.626 6.024l.147.026c1.078.226 1.884.614 2.329 1.708l.036.096c1.806-1.176 4.174-2.98 5.261-4.229zm-.262-4a.526.526 0 0 1 0 1.05h-1.463v.938h1.462a.525.525 0 1 1 0 1.049H16.15a.526.526 0 0 1-.522-.524V8.852c0-.287.235-.525.525-.525h1.988a.525.525 0 0 1-.003 1.05h-1.462v.938h1.462zm-3.213 2.513a.524.524 0 0 1-.526.522.515.515 0 0 1-.425-.208l-2.036-2.764v2.45a.525.525 0 0 1-1.047 0V8.852a.522.522 0 0 1 .52-.523c.162 0 .312.086.412.211l2.052 2.775V8.852c0-.287.235-.525.525-.525.287 0 .525.238.525.525v3.976zm-4.784 0a.527.527 0 0 1-.526.524.526.526 0 0 1-.523-.524V8.852c0-.287.236-.525.525-.525.289 0 .524.238.524.525v3.976zm-2.055.524H6.097a.528.528 0 0 1-.525-.524V8.852a.527.527 0 0 1 1.05 0v3.45h1.464a.525.525 0 0 1 0 1.05z"],"unicode":"","glyph":"M1100 665.5C1100 576.15 1065.6499999999999 495.5 993.85 416.8000000000001C888.8499999999999 296.1 654.4499999999999 148.6499999999999 600.6499999999999 126.2000000000001C546.9499999999999 103.6500000000001 555.0999999999999 140.55 556.9499999999999 153.05L563.8 195.5500000000001C565.4999999999999 208.6500000000001 567.1999999999999 228.05 562.1999999999999 240.55C556.5999999999999 254.4000000000001 534.4 261.75 518.1499999999999 265.1500000000001C277.9 297.05 100 465 100 665.5C100 889.25 324.35 1071.4 600 1071.4C875.6 1071.4 1100 889.25 1100 665.5zM919.9999999999998 484.25C975.6499999999997 545.25 1000 602.3000000000001 1000 665.5C1000 828.9000000000001 824.5000000000001 971.4 600 971.4S200 828.9000000000001 200 665.5C200 520.25 336.4 390.1500000000001 531.3000000000001 364.3000000000001L538.6500000000001 363.0000000000001C592.5500000000001 351.7000000000002 632.8500000000001 332.3000000000001 655.1000000000001 277.6000000000002L656.9000000000001 272.8000000000002C747.2000000000002 331.6 865.6 421.8000000000002 919.95 484.2500000000001zM906.8999999999997 684.25A26.300000000000004 26.300000000000004 0 0 0 906.8999999999997 631.75H833.7499999999999V584.8499999999999H906.8499999999998A26.25 26.25 0 1 0 906.8499999999998 532.4H807.4999999999999A26.300000000000004 26.300000000000004 0 0 0 781.3999999999999 558.6V757.4C781.3999999999999 771.75 793.1499999999999 783.65 807.65 783.65H907.05A26.25 26.25 0 0 0 906.8999999999997 731.15H833.8V684.2499999999999H906.8999999999997zM746.2499999999999 558.6A26.2 26.2 0 0 0 719.9499999999998 532.5A25.750000000000004 25.750000000000004 0 0 0 698.6999999999998 542.9L596.8999999999999 681.1V558.6A26.25 26.25 0 0 0 544.5499999999998 558.6V757.4A26.099999999999998 26.099999999999998 0 0 0 570.5499999999998 783.55C578.6499999999999 783.55 586.1499999999997 779.25 591.1499999999999 773L693.7499999999998 634.2499999999999V757.4C693.7499999999998 771.75 705.4999999999998 783.65 719.9999999999999 783.65C734.3499999999999 783.65 746.2499999999999 771.75 746.2499999999999 757.4V558.6zM507.0499999999999 558.6A26.35 26.35 0 0 0 480.7499999999999 532.4A26.300000000000004 26.300000000000004 0 0 0 454.5999999999999 558.6V757.4C454.5999999999999 771.75 466.4 783.65 480.85 783.65C495.3 783.65 507.0499999999999 771.75 507.0499999999999 757.4V558.6zM404.3 532.4H304.85A26.4 26.4 0 0 0 278.6 558.6V757.4A26.35 26.35 0 0 0 331.1 757.4V584.9H404.3A26.25 26.25 0 0 0 404.3 532.4z","horizAdvX":"1200"},"link-m":{"path":["M0 0h24v24H0z","M17.657 14.828l-1.414-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414-1.414-1.414 1.414-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414zm-2.829 2.829l-1.414 1.414a6 6 0 1 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 1 0 12 17.657l1.414-1.414 1.414 1.414zm0-9.9l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07z"],"unicode":"","glyph":"M882.85 458.6L812.15 529.3000000000001L882.85 600A200 200 0 1 1 600 882.85L529.3000000000001 812.1500000000001L458.6 882.85L529.3000000000001 953.55A300 300 0 0 0 953.55 529.3000000000001L882.8499999999998 458.6zM741.4 317.15L670.6999999999999 246.45A300 300 0 1 0 246.45 670.6999999999999L317.15 741.3999999999999L387.85 670.6999999999999L317.15 600A200 200 0 1 1 600 317.15L670.6999999999999 387.85L741.4 317.15zM741.4 812.1500000000001L812.15 741.4L458.6 387.9L387.85 458.5999999999999L741.4 812.0999999999999z","horizAdvX":"1200"},"link-unlink-m":{"path":["M0 0h24v24H0z","M17.657 14.828l-1.414-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414-1.414-1.414 1.414-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414zm-2.829 2.829l-1.414 1.414a6 6 0 1 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 1 0 12 17.657l1.414-1.414 1.414 1.414zm0-9.9l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07zM5.775 2.293l1.932-.518L8.742 5.64l-1.931.518-1.036-3.864zm9.483 16.068l1.931-.518 1.036 3.864-1.932.518-1.035-3.864zM2.293 5.775l3.864 1.036-.518 1.931-3.864-1.035.518-1.932zm16.068 9.483l3.864 1.035-.518 1.932-3.864-1.036.518-1.931z"],"unicode":"","glyph":"M882.85 458.6L812.15 529.3000000000001L882.85 600A200 200 0 1 1 600 882.85L529.3000000000001 812.1500000000001L458.6 882.85L529.3000000000001 953.55A300 300 0 0 0 953.55 529.3000000000001L882.8499999999998 458.6zM741.4 317.15L670.6999999999999 246.45A300 300 0 1 0 246.45 670.6999999999999L317.15 741.3999999999999L387.85 670.6999999999999L317.15 600A200 200 0 1 1 600 317.15L670.6999999999999 387.85L741.4 317.15zM741.4 812.1500000000001L812.15 741.4L458.6 387.9L387.85 458.5999999999999L741.4 812.0999999999999zM288.75 1085.35L385.35 1111.25L437.1 918L340.5500000000001 892.1L288.75 1085.3zM762.9000000000001 281.95L859.45 307.85L911.2500000000002 114.6499999999999L814.6500000000001 88.75L762.9000000000001 281.95zM114.65 911.25L307.85 859.45L281.95 762.9L88.75 814.65L114.65 911.25zM918.05 437.0999999999999L1111.25 385.35L1085.3500000000001 288.7500000000001L892.15 340.5500000000002L918.05 437.1000000000003z","horizAdvX":"1200"},"link-unlink":{"path":["M0 0h24v24H0z","M17 17h5v2h-3v3h-2v-5zM7 7H2V5h3V2h2v5zm11.364 8.536L16.95 14.12l1.414-1.414a5 5 0 1 0-7.071-7.071L9.879 7.05 8.464 5.636 9.88 4.222a7 7 0 0 1 9.9 9.9l-1.415 1.414zm-2.828 2.828l-1.415 1.414a7 7 0 0 1-9.9-9.9l1.415-1.414L7.05 9.88l-1.414 1.414a5 5 0 1 0 7.071 7.071l1.414-1.414 1.415 1.414zm-.708-10.607l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07z"],"unicode":"","glyph":"M850 350H1100V250H950V100H850V350zM350 850H100V950H250V1100H350V850zM918.2 423.2000000000001L847.5 494L918.2 564.7A250 250 0 1 1 564.6500000000001 918.25L493.95 847.5L423.2000000000001 918.2L494.0000000000001 988.9A350 350 0 0 0 989 493.9L918.2500000000002 423.2000000000001zM776.8000000000001 281.8L706.0500000000001 211.0999999999999A350 350 0 0 0 211.0500000000001 706.0999999999999L281.8000000000001 776.8L352.5 706L281.8 635.3A250 250 0 1 1 635.35 281.7499999999999L706.0500000000001 352.45L776.8000000000001 281.7499999999999zM741.4000000000001 812.1499999999999L812.1500000000001 741.4L458.6000000000001 387.9L387.8500000000002 458.5999999999999L741.4000000000001 812.0999999999999z","horizAdvX":"1200"},"link":{"path":["M0 0h24v24H0z","M18.364 15.536L16.95 14.12l1.414-1.414a5 5 0 1 0-7.071-7.071L9.879 7.05 8.464 5.636 9.88 4.222a7 7 0 0 1 9.9 9.9l-1.415 1.414zm-2.828 2.828l-1.415 1.414a7 7 0 0 1-9.9-9.9l1.415-1.414L7.05 9.88l-1.414 1.414a5 5 0 1 0 7.071 7.071l1.414-1.414 1.415 1.414zm-.708-10.607l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07z"],"unicode":"","glyph":"M918.2 423.2000000000001L847.5 494L918.2 564.7A250 250 0 1 1 564.6500000000001 918.25L493.95 847.5L423.2000000000001 918.2L494.0000000000001 988.9A350 350 0 0 0 989 493.9L918.2500000000002 423.2000000000001zM776.8000000000001 281.8L706.0500000000001 211.0999999999999A350 350 0 0 0 211.0500000000001 706.0999999999999L281.8000000000001 776.8L352.5 706L281.8 635.3A250 250 0 1 1 635.35 281.7499999999999L706.0500000000001 352.45L776.8000000000001 281.7499999999999zM741.4000000000001 812.1499999999999L812.1500000000001 741.4L458.6000000000001 387.9L387.8500000000002 458.5999999999999L741.4000000000001 812.0999999999999z","horizAdvX":"1200"},"linkedin-box-fill":{"path":["M0 0h24v24H0z","M18.335 18.339H15.67v-4.177c0-.996-.02-2.278-1.39-2.278-1.389 0-1.601 1.084-1.601 2.205v4.25h-2.666V9.75h2.56v1.17h.035c.358-.674 1.228-1.387 2.528-1.387 2.7 0 3.2 1.778 3.2 4.091v4.715zM7.003 8.575a1.546 1.546 0 0 1-1.548-1.549 1.548 1.548 0 1 1 1.547 1.549zm1.336 9.764H5.666V9.75H8.34v8.589zM19.67 3H4.329C3.593 3 3 3.58 3 4.297v15.406C3 20.42 3.594 21 4.328 21h15.338C20.4 21 21 20.42 21 19.703V4.297C21 3.58 20.4 3 19.666 3h.003z"],"unicode":"","glyph":"M916.75 283.0500000000001H783.5V491.9000000000001C783.5 541.7 782.5 605.8000000000001 714 605.8000000000001C644.55 605.8000000000001 633.9499999999999 551.6000000000001 633.9499999999999 495.5500000000001V283.0500000000001H500.6499999999999V712.5H628.65V654H630.4C648.3 687.6999999999999 691.8 723.35 756.8 723.35C891.8 723.35 916.8 634.45 916.8 518.8000000000001V283.0500000000001zM350.15 771.25A77.30000000000001 77.30000000000001 0 0 0 272.75 848.7A77.4 77.4 0 1 0 350.1 771.25zM416.9500000000001 283.0500000000001H283.3V712.5H417V283.0500000000001zM983.5000000000002 1050H216.45C179.65 1050 150 1021 150 985.15V214.85C150 178.9999999999999 179.7 150 216.4 150H983.3C1019.9999999999998 150 1050 178.9999999999999 1050 214.85V985.15C1050 1021 1019.9999999999998 1050 983.3 1050H983.45z","horizAdvX":"1200"},"linkedin-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm2.5 4a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-1 1h2v7.5h-2V10zm5.5.43c.584-.565 1.266-.93 2-.93 2.071 0 3.5 1.679 3.5 3.75v4.25h-2v-4.25a1.75 1.75 0 0 0-3.5 0v4.25h-2V10h2v.43z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM375 750A75 75 0 1 0 375 900A75 75 0 0 0 375 750zM325 700H425V325H325V700zM600 678.5C629.1999999999999 706.75 663.3 725 700 725C803.5500000000001 725 875 641.05 875 537.5V325H775V537.5A87.5 87.5 0 0 1 600 537.5V325H500V700H600V678.5z","horizAdvX":"1200"},"linkedin-fill":{"path":["M0 0h24v24H0z","M6.94 5a2 2 0 1 1-4-.002 2 2 0 0 1 4 .002zM7 8.48H3V21h4V8.48zm6.32 0H9.34V21h3.94v-6.57c0-3.66 4.77-4 4.77 0V21H22v-7.93c0-6.17-7.06-5.94-8.72-2.91l.04-1.68z"],"unicode":"","glyph":"M347 950A100 100 0 1 0 147 950.1A100 100 0 0 0 347 950zM350 776H150V150H350V776zM666 776H467V150H664V478.5C664 661.5 902.4999999999998 678.5 902.4999999999998 478.5V150H1100V546.5C1100 855 747.0000000000001 843.5 664 692L665.9999999999999 776z","horizAdvX":"1200"},"linkedin-line":{"path":["M0 0h24v24H0z","M12 9.55C12.917 8.613 14.111 8 15.5 8a5.5 5.5 0 0 1 5.5 5.5V21h-2v-7.5a3.5 3.5 0 0 0-7 0V21h-2V8.5h2v1.05zM5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-1 2h2V21H4V8.5z"],"unicode":"","glyph":"M600 722.5C645.85 769.35 705.5500000000001 800 775 800A275 275 0 0 0 1050 525V150H950V525A175 175 0 0 1 600 525V150H500V775H600V722.5zM250 875A75 75 0 1 0 250 1025A75 75 0 0 0 250 875zM200 775H300V150H200V775z","horizAdvX":"1200"},"links-fill":{"path":["M0 0h24v24H0z","M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z"],"unicode":"","glyph":"M653 794.5L723.7500000000001 723.75A350 350 0 0 0 723.7500000000001 228.7500000000001L706.0500000000001 211.1A350 350 0 0 0 211.0500000000001 706.1000000000001L281.8000000000001 635.35A250 250 0 1 1 635.35 281.8000000000002L653.05 299.5000000000001A250 250 0 0 1 653.05 653.0000000000001L582.3000000000001 723.75L653.05 794.45zM988.9 493.95L918.1999999999998 564.6500000000001A250 250 0 1 1 564.6499999999999 918.2L546.9499999999999 900.5A250 250 0 0 1 546.9499999999999 547.0000000000001L617.6999999999999 476.2500000000001L546.95 405.5500000000001L476.25 476.2500000000001A350 350 0 0 0 476.25 971.2500000000002L493.95 988.9A350 350 0 0 0 988.95 493.9000000000001z","horizAdvX":"1200"},"links-line":{"path":["M0 0h24v24H0z","M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z"],"unicode":"","glyph":"M653 794.5L723.7500000000001 723.75A350 350 0 0 0 723.7500000000001 228.7500000000001L706.0500000000001 211.1A350 350 0 0 0 211.0500000000001 706.1000000000001L281.8000000000001 635.35A250 250 0 1 1 635.35 281.8000000000002L653.05 299.5000000000001A250 250 0 0 1 653.05 653.0000000000001L582.3000000000001 723.75L653.05 794.45zM988.9 493.95L918.1999999999998 564.6500000000001A250 250 0 1 1 564.6499999999999 918.2L546.9499999999999 900.5A250 250 0 0 1 546.9499999999999 547.0000000000001L617.6999999999999 476.2500000000001L546.95 405.5500000000001L476.25 476.2500000000001A350 350 0 0 0 476.25 971.2500000000002L493.95 988.9A350 350 0 0 0 988.95 493.9000000000001z","horizAdvX":"1200"},"list-check-2":{"path":["M0 0h24v24H0z","M11 4h10v2H11V4zm0 4h6v2h-6V8zm0 6h10v2H11v-2zm0 4h6v2h-6v-2zM3 4h6v6H3V4zm2 2v2h2V6H5zm-2 8h6v6H3v-6zm2 2v2h2v-2H5z"],"unicode":"","glyph":"M550 1000H1050V900H550V1000zM550 800H850V700H550V800zM550 500H1050V400H550V500zM550 300H850V200H550V300zM150 1000H450V700H150V1000zM250 900V800H350V900H250zM150 500H450V200H150V500zM250 400V300H350V400H250z","horizAdvX":"1200"},"list-check":{"path":["M0 0h24v24H0z","M8 4h13v2H8V4zm-5-.5h3v3H3v-3zm0 7h3v3H3v-3zm0 7h3v3H3v-3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"],"unicode":"","glyph":"M400 1000H1050V900H400V1000zM150 1025H300V875H150V1025zM150 675H300V525H150V675zM150 325H300V175H150V325zM400 650H1050V550H400V650zM400 300H1050V200H400V300z","horizAdvX":"1200"},"list-ordered":{"path":["M0 0h24v24H0z","M8 4h13v2H8V4zM5 3v3h1v1H3V6h1V4H3V3h2zM3 14v-2.5h2V11H3v-1h3v2.5H4v.5h2v1H3zm2 5.5H3v-1h2V18H3v-1h3v4H3v-1h2v-.5zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"],"unicode":"","glyph":"M400 1000H1050V900H400V1000zM250 1050V900H300V850H150V900H200V1000H150V1050H250zM150 500V625H250V650H150V700H300V575H200V550H300V500H150zM250 225H150V275H250V300H150V350H300V150H150V200H250V225zM400 650H1050V550H400V650zM400 300H1050V200H400V300z","horizAdvX":"1200"},"list-settings-fill":{"path":["M0 0h24v24H0z","M2 18h7v2H2v-2zm0-7h9v2H2v-2zm0-7h20v2H2V4zm18.674 9.025l1.156-.391 1 1.732-.916.805a4.017 4.017 0 0 1 0 1.658l.916.805-1 1.732-1.156-.391c-.41.37-.898.655-1.435.83L19 21h-2l-.24-1.196a3.996 3.996 0 0 1-1.434-.83l-1.156.392-1-1.732.916-.805a4.017 4.017 0 0 1 0-1.658l-.916-.805 1-1.732 1.156.391c.41-.37.898-.655 1.435-.83L17 11h2l.24 1.196c.536.174 1.024.46 1.434.83zM18 17a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 300H450V200H100V300zM100 650H550V550H100V650zM100 1000H1100V900H100V1000zM1033.7 548.75L1091.5 568.3L1141.5 481.7L1095.6999999999998 441.4500000000001A200.85 200.85 0 0 0 1095.6999999999998 358.55L1141.5 318.3L1091.5 231.7000000000001L1033.7 251.2499999999999C1013.2 232.7499999999999 988.8 218.4999999999999 961.95 209.75L950 150H850L838.0000000000001 209.8000000000001A199.8 199.8 0 0 0 766.3000000000001 251.3L708.5000000000001 231.7000000000001L658.5000000000001 318.3L704.3000000000001 358.55A200.85 200.85 0 0 0 704.3000000000001 441.45L658.5000000000001 481.6999999999999L708.5000000000001 568.2999999999998L766.3000000000001 548.7499999999999C786.8000000000001 567.2499999999999 811.2000000000002 581.4999999999999 838.0500000000002 590.2499999999999L850 650H950L961.9999999999998 590.2C988.8 581.5 1013.2 567.1999999999999 1033.7 548.7zM900 350A50 50 0 1 1 900 450A50 50 0 0 1 900 350z","horizAdvX":"1200"},"list-settings-line":{"path":["M0 0h24v24H0z","M2 18h7v2H2v-2zm0-7h9v2H2v-2zm0-7h20v2H2V4zm18.674 9.025l1.156-.391 1 1.732-.916.805a4.017 4.017 0 0 1 0 1.658l.916.805-1 1.732-1.156-.391c-.41.37-.898.655-1.435.83L19 21h-2l-.24-1.196a3.996 3.996 0 0 1-1.434-.83l-1.156.392-1-1.732.916-.805a4.017 4.017 0 0 1 0-1.658l-.916-.805 1-1.732 1.156.391c.41-.37.898-.655 1.435-.83L17 11h2l.24 1.196c.536.174 1.024.46 1.434.83zM18 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M100 300H450V200H100V300zM100 650H550V550H100V650zM100 1000H1100V900H100V1000zM1033.7 548.75L1091.5 568.3L1141.5 481.7L1095.6999999999998 441.4500000000001A200.85 200.85 0 0 0 1095.6999999999998 358.55L1141.5 318.3L1091.5 231.7000000000001L1033.7 251.2499999999999C1013.2 232.7499999999999 988.8 218.4999999999999 961.95 209.75L950 150H850L838.0000000000001 209.8000000000001A199.8 199.8 0 0 0 766.3000000000001 251.3L708.5000000000001 231.7000000000001L658.5000000000001 318.3L704.3000000000001 358.55A200.85 200.85 0 0 0 704.3000000000001 441.45L658.5000000000001 481.6999999999999L708.5000000000001 568.2999999999998L766.3000000000001 548.7499999999999C786.8000000000001 567.2499999999999 811.2000000000002 581.4999999999999 838.0500000000002 590.2499999999999L850 650H950L961.9999999999998 590.2C988.8 581.5 1013.2 567.1999999999999 1033.7 548.7zM900 300A100 100 0 1 1 900 500A100 100 0 0 1 900 300z","horizAdvX":"1200"},"list-unordered":{"path":["M0 0h24v24H0z","M8 4h13v2H8V4zM4.5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6.9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"],"unicode":"","glyph":"M400 1000H1050V900H400V1000zM225 875A75 75 0 1 0 225 1025A75 75 0 0 0 225 875zM225 525A75 75 0 1 0 225 675A75 75 0 0 0 225 525zM225 180.0000000000001A75 75 0 1 0 225 330.0000000000001A75 75 0 0 0 225 180.0000000000001zM400 650H1050V550H400V650zM400 300H1050V200H400V300z","horizAdvX":"1200"},"live-fill":{"path":["M0 0h24v24H0z","M16 4a1 1 0 0 1 1 1v4.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14zM7.4 8.829a.4.4 0 0 0-.392.32L7 9.228v5.542a.4.4 0 0 0 .542.374l.073-.036 4.355-2.772a.4.4 0 0 0 .063-.624l-.063-.05L7.615 8.89A.4.4 0 0 0 7.4 8.83z"],"unicode":"","glyph":"M800 1000A50 50 0 0 0 850 950V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800zM370 758.55A20.000000000000004 20.000000000000004 0 0 1 350.4 742.55L350 738.6V461.5A20.000000000000004 20.000000000000004 0 0 1 377.1 442.8L380.75 444.6L598.5 583.1999999999999A20.000000000000004 20.000000000000004 0 0 1 601.6500000000001 614.4L598.5 616.9000000000001L380.75 755.5A20.000000000000004 20.000000000000004 0 0 1 370 758.5z","horizAdvX":"1200"},"live-line":{"path":["M0 0h24v24H0z","M16 4a1 1 0 0 1 1 1v4.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14zm-1 2H3v12h12V6zM7.4 8.829a.4.4 0 0 1 .215.062l4.355 2.772a.4.4 0 0 1 0 .674L7.615 15.11A.4.4 0 0 1 7 14.77V9.23c0-.221.18-.4.4-.4zM21 8.84l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000A50 50 0 0 0 850 950V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800zM750 900H150V300H750V900zM370 758.55A20.000000000000004 20.000000000000004 0 0 0 380.75 755.45L598.5 616.85A20.000000000000004 20.000000000000004 0 0 0 598.5 583.15L380.75 444.5A20.000000000000004 20.000000000000004 0 0 0 350 461.5V738.5C350 749.55 359 758.5 370 758.5zM1050 758L850 618V582.1L1050 442.0999999999999V758z","horizAdvX":"1200"},"loader-2-fill":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm10-5a1 1 0 0 1-1 1h-3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zM7 12a1 1 0 0 1-1 1H3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zm12.071 7.071a1 1 0 0 1-1.414 0l-2.121-2.121a1 1 0 0 1 1.414-1.414l2.121 2.12a1 1 0 0 1 0 1.415zM8.464 8.464a1 1 0 0 1-1.414 0L4.93 6.344a1 1 0 0 1 1.414-1.415L8.464 7.05a1 1 0 0 1 0 1.414zM4.93 19.071a1 1 0 0 1 0-1.414l2.121-2.121a1 1 0 1 1 1.414 1.414l-2.12 2.121a1 1 0 0 1-1.415 0zM15.536 8.464a1 1 0 0 1 0-1.414l2.12-2.121a1 1 0 0 1 1.415 1.414L16.95 8.464a1 1 0 0 1-1.414 0z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1100 600A50 50 0 0 0 1050 550H900A50 50 0 0 0 900 650H1050A50 50 0 0 0 1100 600zM350 600A50 50 0 0 0 300 550H150A50 50 0 0 0 150 650H300A50 50 0 0 0 350 600zM953.55 246.4500000000001A50 50 0 0 0 882.8499999999998 246.4500000000001L776.7999999999998 352.5A50 50 0 0 0 847.4999999999998 423.2000000000001L953.5499999999998 317.2000000000001A50 50 0 0 0 953.5499999999998 246.4500000000001zM423.2000000000001 776.8A50 50 0 0 0 352.5000000000001 776.8L246.5 882.8A50 50 0 0 0 317.2 953.55L423.2000000000001 847.5A50 50 0 0 0 423.2000000000001 776.8zM246.5 246.45A50 50 0 0 0 246.5 317.15L352.55 423.2000000000001A50 50 0 1 0 423.25 352.5L317.25 246.4500000000001A50 50 0 0 0 246.5 246.4500000000001zM776.8 776.8A50 50 0 0 0 776.8 847.5L882.8 953.55A50 50 0 0 0 953.55 882.85L847.5 776.8A50 50 0 0 0 776.8 776.8z","horizAdvX":"1200"},"loader-2-line":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm10-5a1 1 0 0 1-1 1h-3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zM7 12a1 1 0 0 1-1 1H3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zm12.071 7.071a1 1 0 0 1-1.414 0l-2.121-2.121a1 1 0 0 1 1.414-1.414l2.121 2.12a1 1 0 0 1 0 1.415zM8.464 8.464a1 1 0 0 1-1.414 0L4.93 6.344a1 1 0 0 1 1.414-1.415L8.464 7.05a1 1 0 0 1 0 1.414zM4.93 19.071a1 1 0 0 1 0-1.414l2.121-2.121a1 1 0 1 1 1.414 1.414l-2.12 2.121a1 1 0 0 1-1.415 0zM15.536 8.464a1 1 0 0 1 0-1.414l2.12-2.121a1 1 0 0 1 1.415 1.414L16.95 8.464a1 1 0 0 1-1.414 0z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1100 600A50 50 0 0 0 1050 550H900A50 50 0 0 0 900 650H1050A50 50 0 0 0 1100 600zM350 600A50 50 0 0 0 300 550H150A50 50 0 0 0 150 650H300A50 50 0 0 0 350 600zM953.55 246.4500000000001A50 50 0 0 0 882.8499999999998 246.4500000000001L776.7999999999998 352.5A50 50 0 0 0 847.4999999999998 423.2000000000001L953.5499999999998 317.2000000000001A50 50 0 0 0 953.5499999999998 246.4500000000001zM423.2000000000001 776.8A50 50 0 0 0 352.5000000000001 776.8L246.5 882.8A50 50 0 0 0 317.2 953.55L423.2000000000001 847.5A50 50 0 0 0 423.2000000000001 776.8zM246.5 246.45A50 50 0 0 0 246.5 317.15L352.55 423.2000000000001A50 50 0 1 0 423.25 352.5L317.25 246.4500000000001A50 50 0 0 0 246.5 246.4500000000001zM776.8 776.8A50 50 0 0 0 776.8 847.5L882.8 953.55A50 50 0 0 0 953.55 882.85L847.5 776.8A50 50 0 0 0 776.8 776.8z","horizAdvX":"1200"},"loader-3-fill":{"path":["M0 0h24v24H0z","M3.055 13H5.07a7.002 7.002 0 0 0 13.858 0h2.016a9.001 9.001 0 0 1-17.89 0zm0-2a9.001 9.001 0 0 1 17.89 0H18.93a7.002 7.002 0 0 0-13.858 0H3.055z"],"unicode":"","glyph":"M152.75 550H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 550H1047.2A450.04999999999995 450.04999999999995 0 0 0 152.7000000000001 550zM152.75 650A450.04999999999995 450.04999999999995 0 0 0 1047.25 650H946.5A350.09999999999997 350.09999999999997 0 0 1 253.6 650H152.75z","horizAdvX":"1200"},"loader-3-line":{"path":["M0 0h24v24H0z","M3.055 13H5.07a7.002 7.002 0 0 0 13.858 0h2.016a9.001 9.001 0 0 1-17.89 0zm0-2a9.001 9.001 0 0 1 17.89 0H18.93a7.002 7.002 0 0 0-13.858 0H3.055z"],"unicode":"","glyph":"M152.75 550H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 550H1047.2A450.04999999999995 450.04999999999995 0 0 0 152.7000000000001 550zM152.75 650A450.04999999999995 450.04999999999995 0 0 0 1047.25 650H946.5A350.09999999999997 350.09999999999997 0 0 1 253.6 650H152.75z","horizAdvX":"1200"},"loader-4-fill":{"path":["M0 0h24v24H0z","M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"],"unicode":"","glyph":"M918.2 918.2L847.5 847.5A350 350 0 1 1 950 600H1050A450 450 0 1 0 918.2 918.2z","horizAdvX":"1200"},"loader-4-line":{"path":["M0 0h24v24H0z","M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"],"unicode":"","glyph":"M918.2 918.2L847.5 847.5A350 350 0 1 1 950 600H1050A450 450 0 1 0 918.2 918.2z","horizAdvX":"1200"},"loader-5-fill":{"path":["M0 0h24v24H0z","M12 3a9 9 0 0 1 9 9h-2a7 7 0 0 0-7-7V3z"],"unicode":"","glyph":"M600 1050A450 450 0 0 0 1050 600H950A350 350 0 0 1 600 950V1050z","horizAdvX":"1200"},"loader-5-line":{"path":["M0 0h24v24H0z","M12 3a9 9 0 0 1 9 9h-2a7 7 0 0 0-7-7V3z"],"unicode":"","glyph":"M600 1050A450 450 0 0 0 1050 600H950A350 350 0 0 1 600 950V1050z","horizAdvX":"1200"},"loader-fill":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm8.66-10a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5A1 1 0 0 1 20.66 7zM7.67 14.5a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5a1 1 0 0 1 1.366.366zM20.66 17a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 0 1 1-1.732l2.598 1.5A1 1 0 0 1 20.66 17zM7.67 9.5a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 1 1 1-1.732l2.598 1.5A1 1 0 0 1 7.67 9.5z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1033 850A50 50 0 0 0 1014.7 781.7L884.8000000000001 706.7A50 50 0 1 0 834.8000000000001 793.3L964.7 868.3A50 50 0 0 0 1033 850zM383.5 475A50 50 0 0 0 365.2 406.7000000000001L235.3 331.7000000000001A50 50 0 1 0 185.3 418.3L315.2 493.3A50 50 0 0 0 383.5 475zM1033 350A50 50 0 0 0 964.7 331.7000000000001L834.8000000000001 406.7000000000001A50 50 0 0 0 884.8000000000001 493.3L1014.7 418.3A50 50 0 0 0 1033 350zM383.5 725A50 50 0 0 0 315.2 706.7L185.3 781.7A50 50 0 1 0 235.3 868.3L365.2 793.3A50 50 0 0 0 383.5 725z","horizAdvX":"1200"},"loader-line":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm8.66-10a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5A1 1 0 0 1 20.66 7zM7.67 14.5a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5a1 1 0 0 1 1.366.366zM20.66 17a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 0 1 1-1.732l2.598 1.5A1 1 0 0 1 20.66 17zM7.67 9.5a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 1 1 1-1.732l2.598 1.5A1 1 0 0 1 7.67 9.5z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1033 850A50 50 0 0 0 1014.7 781.7L884.8000000000001 706.7A50 50 0 1 0 834.8000000000001 793.3L964.7 868.3A50 50 0 0 0 1033 850zM383.5 475A50 50 0 0 0 365.2 406.7000000000001L235.3 331.7000000000001A50 50 0 1 0 185.3 418.3L315.2 493.3A50 50 0 0 0 383.5 475zM1033 350A50 50 0 0 0 964.7 331.7000000000001L834.8000000000001 406.7000000000001A50 50 0 0 0 884.8000000000001 493.3L1014.7 418.3A50 50 0 0 0 1033 350zM383.5 725A50 50 0 0 0 315.2 706.7L185.3 781.7A50 50 0 1 0 235.3 868.3L365.2 793.3A50 50 0 0 0 383.5 725z","horizAdvX":"1200"},"lock-2-fill":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-7 7.732V18h2v-2.268a2 2 0 1 0-2 0zM16 8V7a4 4 0 1 0-8 0v1h8z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM550 413.4000000000001V300H650V413.4000000000001A100 100 0 1 1 550 413.4000000000001zM800 800V850A200 200 0 1 1 400 850V800H800z","horizAdvX":"1200"},"lock-2-line":{"path":["M0 0h24v24H0z","M6 8V7a6 6 0 1 1 12 0v1h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2zm13 2H5v10h14V10zm-8 5.732a2 2 0 1 1 2 0V18h-2v-2.268zM8 8h8V7a4 4 0 1 0-8 0v1z"],"unicode":"","glyph":"M300 800V850A300 300 0 1 0 900 850V800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300zM950 700H250V200H950V700zM550 413.4000000000001A100 100 0 1 0 650 413.4000000000001V300H550V413.4000000000001zM400 800H800V850A200 200 0 1 1 400 850V800z","horizAdvX":"1200"},"lock-fill":{"path":["M0 0h24v24H0z","M19 10h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 1 1 14 0v1zm-2 0V9A5 5 0 0 0 7 9v1h10zm-6 4v4h2v-4h-2z"],"unicode":"","glyph":"M950 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 1 0 950 750V700zM850 700V750A250 250 0 0 1 350 750V700H850zM550 500V300H650V500H550z","horizAdvX":"1200"},"lock-line":{"path":["M0 0h24v24H0z","M19 10h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 1 1 14 0v1zM5 12v8h14v-8H5zm6 2h2v4h-2v-4zm6-4V9A5 5 0 0 0 7 9v1h10z"],"unicode":"","glyph":"M950 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 1 0 950 750V700zM250 600V200H950V600H250zM550 500H650V300H550V500zM850 700V750A250 250 0 0 1 350 750V700H850z","horizAdvX":"1200"},"lock-password-fill":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-5 6v2h2v-2h-2zm-4 0v2h2v-2H7zm8 0v2h2v-2h-2z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM800 800V850A200 200 0 1 1 400 850V800H800zM550 500V400H650V500H550zM350 500V400H450V500H350zM750 500V400H850V500H750z","horizAdvX":"1200"},"lock-password-line":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zM5 10v10h14V10H5zm6 4h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2zm1-6V7a4 4 0 1 0-8 0v1h8z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM250 700V200H950V700H250zM550 500H650V400H550V500zM350 500H450V400H350V500zM750 500H850V400H750V500zM800 800V850A200 200 0 1 1 400 850V800H800z","horizAdvX":"1200"},"lock-unlock-fill":{"path":["M0 0h24v24H0z","M7 10h13a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 13.262-3.131l-1.789.894A5 5 0 0 0 7 9v1zm3 5v2h4v-2h-4z"],"unicode":"","glyph":"M350 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 0 0 913.1 906.55L823.65 861.85A250 250 0 0 1 350 750V700zM500 450V350H700V450H500z","horizAdvX":"1200"},"lock-unlock-line":{"path":["M0 0h24v24H0z","M7 10h13a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 13.262-3.131l-1.789.894A5 5 0 0 0 7 9v1zm-2 2v8h14v-8H5zm5 3h4v2h-4v-2z"],"unicode":"","glyph":"M350 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 0 0 913.1 906.55L823.65 861.85A250 250 0 0 1 350 750V700zM250 600V200H950V600H250zM500 450H700V350H500V450z","horizAdvX":"1200"},"login-box-fill":{"path":["M0 0h24v24H0z","M10 11H4V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8h6v3l5-4-5-4v3z"],"unicode":"","glyph":"M500 650H200V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V550H500V400L750 600L500 800V650z","horizAdvX":"1200"},"login-box-line":{"path":["M0 0h24v24H0z","M4 15h2v5h12V4H6v5H4V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6zm6-4V8l5 4-5 4v-3H2v-2h8z"],"unicode":"","glyph":"M200 450H300V200H900V1000H300V750H200V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V450zM500 650V800L750 600L500 400V550H100V650H500z","horizAdvX":"1200"},"login-circle-fill":{"path":["M0 0h24v24H0z","M10 11H2.05C2.55 5.947 6.814 2 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-5.185 0-9.449-3.947-9.95-9H10v3l5-4-5-4v3z"],"unicode":"","glyph":"M500 650H102.5C127.5 902.65 340.7 1100 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C340.75 100 127.55 297.3499999999999 102.5 550H500V400L750 600L500 800V650z","horizAdvX":"1200"},"login-circle-line":{"path":["M0 0h24v24H0z","M10 11V8l5 4-5 4v-3H1v-2h9zm-7.542 4h2.124A8.003 8.003 0 0 0 20 12 8 8 0 0 0 4.582 9H2.458C3.732 4.943 7.522 2 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-4.478 0-8.268-2.943-9.542-7z"],"unicode":"","glyph":"M500 650V800L750 600L500 400V550H50V650H500zM122.9 450H229.1A400.15000000000003 400.15000000000003 0 0 1 1000 600A400 400 0 0 1 229.1 750H122.9C186.6 952.85 376.1 1100 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C376.1 100 186.6 247.1500000000001 122.9 450z","horizAdvX":"1200"},"logout-box-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm4 9V8l-5 4 5 4v-3h6v-2H9z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM450 650V800L200 600L450 400V550H750V650H450z","horizAdvX":"1200"},"logout-box-line":{"path":["M0 0h24v24H0z","M4 18h2v2h12V4H6v2H4V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3zm2-7h7v2H6v3l-5-4 5-4v3z"],"unicode":"","glyph":"M200 300H300V200H900V1000H300V900H200V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V300zM300 650H650V550H300V400L50 600L300 800V650z","horizAdvX":"1200"},"logout-box-r-fill":{"path":["M0 0h24v24H0z","M5 22a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5zm10-6l5-4-5-4v3H9v2h6v3z"],"unicode":"","glyph":"M250 100A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250zM750 400L1000 600L750 800V650H450V550H750V400z","horizAdvX":"1200"},"logout-box-r-line":{"path":["M0 0h24v24H0z","M5 22a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v3h-2V4H6v16h12v-2h2v3a1 1 0 0 1-1 1H5zm13-6v-3h-7v-2h7V8l5 4-5 4z"],"unicode":"","glyph":"M250 100A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V900H900V1000H300V200H900V300H1000V150A50 50 0 0 0 950 100H250zM900 400V550H550V650H900V800L1150 600L900 400z","horizAdvX":"1200"},"logout-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 11V8l-5 4 5 4v-3h8v-2H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 650V800L100 600L350 400V550H750V650H350z","horizAdvX":"1200"},"logout-circle-line":{"path":["M0 0h24v24H0z","M5 11h8v2H5v3l-5-4 5-4v3zm-1 7h2.708a8 8 0 1 0 0-12H4A9.985 9.985 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10a9.985 9.985 0 0 1-8-4z"],"unicode":"","glyph":"M250 650H650V550H250V400L0 600L250 800V650zM200 300H335.4000000000001A400 400 0 1 1 335.4000000000001 900H200A499.25 499.25 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100A499.25 499.25 0 0 0 200 300z","horizAdvX":"1200"},"logout-circle-r-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm5-6l5-4-5-4v3H9v2h8v3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM850 400L1100 600L850 800V650H450V550H850V400z","horizAdvX":"1200"},"logout-circle-r-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2a9.985 9.985 0 0 1 8 4h-2.71a8 8 0 1 0 .001 12h2.71A9.985 9.985 0 0 1 12 22zm7-6v-3h-8v-2h8V8l5 4-5 4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100A499.25 499.25 0 0 0 1000 900H864.5A400 400 0 1 1 864.5500000000001 300H1000.05A499.25 499.25 0 0 0 600 100zM950 400V550H550V650H950V800L1200 600L950 400z","horizAdvX":"1200"},"luggage-cart-fill":{"path":["M0 0H24V24H0z","M5.5 20c.828 0 1.5.672 1.5 1.5S6.328 23 5.5 23 4 22.328 4 21.5 4.672 20 5.5 20zm13 0c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5-1.5-.672-1.5-1.5.672-1.5 1.5-1.5zM2.172 1.757l3.827 3.828V17L20 17v2H5c-.552 0-1-.448-1-1V6.413L.756 3.172l1.415-1.415zM16 3c.552 0 1 .448 1 1v2h2.993C20.55 6 21 6.456 21 6.995v8.01c0 .55-.45.995-1.007.995H8.007C7.45 16 7 15.544 7 15.005v-8.01C7 6.445 7.45 6 8.007 6h2.992L11 4c0-.552.448-1 1-1h4zm-5 5h-1v6h1V8zm7 0h-1v6h1V8zm-3-3h-2v1h2V5z"],"unicode":"","glyph":"M275 200C316.4000000000001 200 350 166.3999999999999 350 125S316.4000000000001 50 275 50S200 83.6000000000001 200 125S233.6 200 275 200zM925 200C966.4 200 1000 166.3999999999999 1000 125S966.4 50 925 50S850 83.6000000000001 850 125S883.6 200 925 200zM108.6 1112.15L299.9500000000001 920.75V350L1000 350V250H250C222.4 250 200 272.4 200 300V879.3499999999999L37.8 1041.4L108.55 1112.15zM800 1050C827.6 1050 850 1027.6 850 1000V900H999.65C1027.5 900 1050 877.2 1050 850.25V449.75C1050 422.25 1027.5 400.0000000000001 999.65 400.0000000000001H400.35C372.5 400 350 422.8 350 449.75V850.25C350 877.75 372.5 900 400.35 900H549.9499999999999L550 1000C550 1027.6 572.4 1050 600 1050H800zM550 800H500V500H550V800zM900 800H850V500H900V800zM750 950H650V900H750V950z","horizAdvX":"1200"},"luggage-cart-line":{"path":["M0 0H24V24H0z","M5.5 20c.828 0 1.5.672 1.5 1.5S6.328 23 5.5 23 4 22.328 4 21.5 4.672 20 5.5 20zm13 0c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5-1.5-.672-1.5-1.5.672-1.5 1.5-1.5zM2.172 1.757l3.827 3.828V17L20 17v2H5c-.552 0-1-.448-1-1V6.413L.756 3.172l1.415-1.415zM16 3c.552 0 1 .448 1 1v2h2.993C20.55 6 21 6.456 21 6.995v8.01c0 .55-.45.995-1.007.995H8.007C7.45 16 7 15.544 7 15.005v-8.01C7 6.445 7.45 6 8.007 6h2.992L11 4c0-.552.448-1 1-1h4zm-6 5H9v6h1V8zm6 0h-4v6h4V8zm3 0h-1v6h1V8zm-4-3h-2v1h2V5z"],"unicode":"","glyph":"M275 200C316.4000000000001 200 350 166.3999999999999 350 125S316.4000000000001 50 275 50S200 83.6000000000001 200 125S233.6 200 275 200zM925 200C966.4 200 1000 166.3999999999999 1000 125S966.4 50 925 50S850 83.6000000000001 850 125S883.6 200 925 200zM108.6 1112.15L299.9500000000001 920.75V350L1000 350V250H250C222.4 250 200 272.4 200 300V879.3499999999999L37.8 1041.4L108.55 1112.15zM800 1050C827.6 1050 850 1027.6 850 1000V900H999.65C1027.5 900 1050 877.2 1050 850.25V449.75C1050 422.25 1027.5 400.0000000000001 999.65 400.0000000000001H400.35C372.5 400 350 422.8 350 449.75V850.25C350 877.75 372.5 900 400.35 900H549.9499999999999L550 1000C550 1027.6 572.4 1050 600 1050H800zM500 800H450V500H500V800zM800 800H600V500H800V800zM950 800H900V500H950V800zM750 950H650V900H750V950z","horizAdvX":"1200"},"luggage-deposit-fill":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h4c.552 0 1 .448 1 1v12h2v2H1v-2h2V7c0-.552.448-1 1-1h4V4c0-.552.448-1 1-1h6zm-5 5H8v11h2V8zm6 0h-2v11h2V8zm-2-3h-4v1h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1000C1027.6 900 1050 877.5999999999999 1050 850V250H1150V150H50V250H150V850C150 877.5999999999999 172.4 900 200 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM500 800H400V250H500V800zM800 800H700V250H800V800zM700 950H500V900H700V950z","horizAdvX":"1200"},"luggage-deposit-line":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h4c.552 0 1 .448 1 1v12h2v2H1v-2h2V7c0-.552.448-1 1-1h4V4c0-.552.448-1 1-1h6zM8 8H5v11h3V8zm6 0h-4v11h4V8zm5 0h-3v11h3V8zm-5-3h-4v1h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1000C1027.6 900 1050 877.5999999999999 1050 850V250H1150V150H50V250H150V850C150 877.5999999999999 172.4 900 200 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM400 800H250V250H400V800zM700 800H500V250H700V800zM950 800H800V250H950V800zM700 950H500V900H700V950z","horizAdvX":"1200"},"lungs-fill":{"path":["M0 0H24V24H0z","M8.5 5.5c1.412.47 2.048 2.159 2.327 4.023l-4.523 2.611 1 1.732 3.71-2.141C11.06 13.079 11 14.308 11 15c0 3-1 6-5 6s-4 0-4-4C2 9.5 5.5 4.5 8.5 5.5zM22.001 17v.436c-.005 3.564-.15 3.564-4 3.564-4 0-5-3-5-6 0-.691-.06-1.92-.014-3.274l3.71 2.14 1-1.732-4.523-2.61c.279-1.865.915-3.553 2.327-4.024 3-1 6.5 4 6.5 11.5zM13 2v9h-2V2h2z"],"unicode":"","glyph":"M425 925C495.6 901.5 527.4 817.05 541.35 723.85L315.2 593.3L365.2 506.7L550.6999999999999 613.75C553 546.05 550 484.6 550 450C550 300 500 150 300 150S100 150 100 350C100 725 275 975 425 925zM1100.05 350V328.2000000000001C1099.8000000000002 150 1092.5500000000002 150 900.0500000000001 150C700.0500000000001 150 650.0500000000001 300 650.0500000000001 450C650.0500000000001 484.5500000000001 647.0500000000001 546 649.3500000000001 613.7L834.8500000000001 506.7L884.8500000000001 593.3L658.7000000000002 723.8C672.6500000000001 817.05 704.4500000000002 901.45 775.0500000000002 925C925.0500000000002 975 1100.0500000000002 725 1100.0500000000002 350zM650 1100V650H550V1100H650z","horizAdvX":"1200"},"lungs-line":{"path":["M0 0H24V24H0z","M22.001 17c-.001 4-.001 4-4 4-4 0-5-3-5-6 0-.378-.018-.918-.026-1.55l2.023 1.169L15 15c0 2.776.816 4 3 4 1.14 0 1.61-.007 1.963-.038.03-.351.037-.822.037-1.962 0-3.205-.703-6.033-1.835-7.9-.838-1.382-1.613-1.843-2.032-1.703-.293.098-.605.65-.831 1.623l-1.79-1.033c.369-1.197.982-2.151 1.988-2.487 3-1 6.503 4 6.5 11.5zM8.5 5.5c1.007.336 1.62 1.29 1.989 2.487L8.699 9.02c-.226-.973-.539-1.525-.831-1.623-.42-.14-1.195.32-2.032 1.702C4.703 10.967 4 13.795 4 17c0 1.14.007 1.61.038 1.962.351.031.822.038 1.962.038 2.184 0 3-1.224 3-4l.004-.382 2.023-1.168c-.01.633-.027 1.172-.027 1.55 0 3-1 6-5 6s-4 0-4-4C2 9.5 5.5 4.5 8.5 5.5zM13 2v7.422l4.696 2.712-1 1.732L12 11.155l-4.696 2.711-1-1.732L11 9.422V2h2z"],"unicode":"","glyph":"M1100.05 350C1100 150 1100 150 900.0500000000001 150C700.0500000000001 150 650.0500000000001 300 650.0500000000001 450C650.0500000000001 468.9 649.15 495.9 648.7500000000001 527.5L749.9000000000001 469.05L750 450C750 311.2000000000001 790.8000000000001 250 900 250C957 250 980.5 250.35 998.15 251.9C999.65 269.45 1000 293 1000 350C1000 510.25 964.85 651.6500000000001 908.25 745C866.3499999999999 814.1 827.6 837.1500000000001 806.65 830.1500000000001C792 825.25 776.4 797.6500000000001 765.1 749L675.6 800.65C694.05 860.5 724.7 908.2 775 925C925 975 1100.15 725 1100 350zM425 925C475.35 908.2 506.0000000000001 860.5 524.45 800.65L434.95 749C423.65 797.6500000000001 408 825.25 393.4000000000001 830.1500000000001C372.4000000000001 837.1500000000001 333.65 814.1500000000001 291.8 745.05C235.15 651.65 200 510.25 200 350C200 293 200.35 269.5 201.9 251.9C219.45 250.35 243.0000000000001 250 300 250C409.2000000000001 250 450 311.2000000000001 450 450L450.2 469.1L551.3499999999999 527.5C550.85 495.8499999999999 550 468.8999999999999 550 449.9999999999999C550 300 500 150 300 150S100 150 100 350C100 725 275 975 425 925zM650 1100V728.9L884.8 593.3L834.8 506.7L600 642.25L365.2 506.7L315.2 593.3L550 728.9V1100H650z","horizAdvX":"1200"},"mac-fill":{"path":["M0 0h24v24H0z","M14 18v2l2 1v1H8l-.004-.996L10 20v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H14zM4 14v2h16v-2H4z"],"unicode":"","glyph":"M700 300V200L800 150V100H400L399.8 149.8L500 200V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H700zM200 500V400H1000V500H200z","horizAdvX":"1200"},"mac-line":{"path":["M0 0h24v24H0z","M14 18v2l2 1v1H8l-.004-.996L10 20v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H14zM4 5v9h16V5H4z"],"unicode":"","glyph":"M700 300V200L800 150V100H400L399.8 149.8L500 200V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H700zM200 950V500H1000V950H200z","horizAdvX":"1200"},"macbook-fill":{"path":["M0 0h24v24H0z","M2 4.007C2 3.45 2.455 3 2.992 3h18.016c.548 0 .992.45.992 1.007V17H2V4.007zM1 19h22v2H1v-2z"],"unicode":"","glyph":"M100 999.65C100 1027.5 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.5 1100 999.65V350H100V999.65zM50 250H1150V150H50V250z","horizAdvX":"1200"},"macbook-line":{"path":["M0 0h24v24H0z","M4 5v11h16V5H4zm-2-.993C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007V18H2V4.007zM1 19h22v2H1v-2z"],"unicode":"","glyph":"M200 950V400H1000V950H200zM100 999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V300H100V999.65zM50 250H1150V150H50V250z","horizAdvX":"1200"},"magic-fill":{"path":["M0 0h24v24H0z","M15.224 15.508l-2.213 4.65a.6.6 0 0 1-.977.155l-3.542-3.739a.6.6 0 0 0-.357-.182l-5.107-.668a.6.6 0 0 1-.449-.881l2.462-4.524a.6.6 0 0 0 .062-.396L4.16 4.86a.6.6 0 0 1 .7-.7l5.063.943a.6.6 0 0 0 .396-.062l4.524-2.462a.6.6 0 0 1 .881.45l.668 5.106a.6.6 0 0 0 .182.357l3.739 3.542a.6.6 0 0 1-.155.977l-4.65 2.213a.6.6 0 0 0-.284.284zm.797 1.927l1.414-1.414 4.243 4.242-1.415 1.415-4.242-4.243z"],"unicode":"","glyph":"M761.2 424.6L650.55 192.0999999999999A30 30 0 0 0 601.6999999999999 184.3499999999999L424.6 371.3A30 30 0 0 1 406.75 380.3999999999999L151.4 413.7999999999999A30 30 0 0 0 128.95 457.8499999999998L252.05 684.0499999999998A30 30 0 0 1 255.1500000000001 703.8499999999999L208 957A30 30 0 0 0 243.0000000000001 992L496.15 944.85A30 30 0 0 1 515.95 947.95L742.15 1071.05A30 30 0 0 0 786.2 1048.55L819.6 793.25A30 30 0 0 1 828.6999999999999 775.4000000000001L1015.65 598.3000000000001A30 30 0 0 0 1007.8999999999997 549.45L775.3999999999999 438.8A30 30 0 0 1 761.1999999999998 424.5999999999999zM801.0500000000001 328.2500000000001L871.7500000000001 398.9500000000002L1083.9000000000003 186.8500000000001L1013.1500000000004 116.1000000000001L801.0500000000002 328.2500000000003z","horizAdvX":"1200"},"magic-line":{"path":["M0 0h24v24H0z","M15.199 9.945a2.6 2.6 0 0 1-.79-1.551l-.403-3.083-2.73 1.486a2.6 2.6 0 0 1-1.72.273L6.5 6.5l.57 3.056a2.6 2.6 0 0 1-.273 1.72l-1.486 2.73 3.083.403a2.6 2.6 0 0 1 1.55.79l2.138 2.257 1.336-2.807a2.6 2.6 0 0 1 1.23-1.231l2.808-1.336-2.257-2.137zm.025 5.563l-2.213 4.65a.6.6 0 0 1-.977.155l-3.542-3.739a.6.6 0 0 0-.357-.182l-5.107-.668a.6.6 0 0 1-.449-.881l2.462-4.524a.6.6 0 0 0 .062-.396L4.16 4.86a.6.6 0 0 1 .7-.7l5.063.943a.6.6 0 0 0 .396-.062l4.524-2.462a.6.6 0 0 1 .881.45l.668 5.106a.6.6 0 0 0 .182.357l3.739 3.542a.6.6 0 0 1-.155.977l-4.65 2.213a.6.6 0 0 0-.284.284zm.797 1.927l1.414-1.414 4.243 4.242-1.415 1.415-4.242-4.243z"],"unicode":"","glyph":"M759.95 702.75A130 130 0 0 0 720.4499999999999 780.3L700.3 934.45L563.8 860.1500000000001A130 130 0 0 0 477.7999999999998 846.5L325 875L353.5 722.1999999999999A130 130 0 0 0 339.85 636.1999999999999L265.5500000000001 499.6999999999999L419.7000000000001 479.5499999999998A130 130 0 0 0 497.2000000000002 440.05L604.1000000000001 327.1999999999998L670.9000000000001 467.5499999999998A130 130 0 0 0 732.4000000000002 529.0999999999999L872.8000000000002 595.8999999999999L759.9500000000002 702.7499999999999zM761.2 424.6L650.55 192.0999999999999A30 30 0 0 0 601.6999999999999 184.3499999999999L424.6 371.3A30 30 0 0 1 406.75 380.3999999999999L151.4 413.7999999999999A30 30 0 0 0 128.95 457.8499999999998L252.05 684.0499999999998A30 30 0 0 1 255.1500000000001 703.8499999999999L208 957A30 30 0 0 0 243.0000000000001 992L496.15 944.85A30 30 0 0 1 515.95 947.95L742.15 1071.05A30 30 0 0 0 786.2 1048.55L819.6 793.25A30 30 0 0 1 828.6999999999999 775.4000000000001L1015.65 598.3000000000001A30 30 0 0 0 1007.8999999999997 549.45L775.3999999999999 438.8A30 30 0 0 1 761.1999999999998 424.5999999999999zM801.0500000000001 328.2500000000001L871.7500000000001 398.9500000000002L1083.9000000000003 186.8500000000001L1013.1500000000004 116.1000000000001L801.0500000000002 328.2500000000003z","horizAdvX":"1200"},"mail-add-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM21 18h3v2h-3v3h-2v-3h-3v-2h3v-3h2v3z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1050 300H1200V200H1050V50H950V200H800V300H950V450H1050V300z","horizAdvX":"1200"},"mail-add-line":{"path":["M0 0h24v24H0z","M22 13h-2V7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9zM4.511 5l7.55 6.662L19.502 5H4.511zM21 18h3v2h-3v3h-2v-3h-3v-2h3v-3h2v3z"],"unicode":"","glyph":"M1100 550H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V550zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM1050 300H1200V200H1050V50H950V200H800V300H950V450H1050V300z","horizAdvX":"1200"},"mail-check-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM19 22l-3.536-3.536 1.415-1.414L19 19.172l3.536-3.536 1.414 1.414L19 22z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM950 100L773.2 276.8000000000001L843.95 347.5000000000001L950 241.4L1126.8000000000002 418.2L1197.5000000000002 347.5L950 100z","horizAdvX":"1200"},"mail-check-line":{"path":["M0 0h24v24H0z","M22 14h-2V7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10zM4.511 5l7.55 6.662L19.502 5H4.511zM19 22l-3.536-3.536 1.415-1.414L19 19.172l3.536-3.536 1.414 1.414L19 22z"],"unicode":"","glyph":"M1100 500H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V500zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM950 100L773.2 276.8000000000001L843.95 347.5000000000001L950 241.4L1126.8000000000002 418.2L1197.5000000000002 347.5L950 100z","horizAdvX":"1200"},"mail-close-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM21.415 19l2.122 2.121-1.415 1.415L20 20.414l-2.121 2.122-1.415-1.415L18.586 19l-2.122-2.121 1.415-1.415L20 17.586l2.121-2.122 1.415 1.415L21.414 19z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1070.75 250L1176.85 143.9500000000001L1106.1 73.2000000000001L1000 179.3L893.95 73.1999999999998L823.2000000000002 143.9499999999998L929.3 250L823.1999999999999 356.05L893.9499999999999 426.7999999999999L1000 320.7000000000001L1106.05 426.8000000000001L1176.8 356.0500000000001L1070.7 250z","horizAdvX":"1200"},"mail-close-line":{"path":["M0 0h24v24H0z","M22 14h-2V7.238l-7.928 7.1L4 7.216V19h11v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10zM4.511 5l7.55 6.662L19.502 5H4.511zm16.903 14l2.122 2.121-1.415 1.415L20 20.414l-2.121 2.122-1.415-1.415L18.586 19l-2.122-2.121 1.415-1.415L20 17.586l2.121-2.122 1.415 1.415L21.414 19z"],"unicode":"","glyph":"M1100 500H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H750V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V500zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM1070.6999999999998 250L1176.8 143.9500000000001L1106.05 73.2000000000001L1000 179.3L893.95 73.1999999999998L823.2000000000002 143.9499999999998L929.3 250L823.1999999999999 356.05L893.9499999999999 426.7999999999999L1000 320.7000000000001L1106.05 426.8000000000001L1176.8 356.0500000000001L1070.7 250z","horizAdvX":"1200"},"mail-download-fill":{"path":["M0 0h24v24H0z","M22 12.803A6 6 0 0 0 13.803 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8.803zm-9.94-1.12L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM20 18h3l-4 4-4-4h3v-4h2v4z"],"unicode":"","glyph":"M1100 559.8499999999999A300 300 0 0 1 690.1500000000001 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V559.8499999999999zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1000 300H1150L950 100L750 300H900V500H1000V300z","horizAdvX":"1200"},"mail-download-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8h-2V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zM20 18h3l-4 4-4-4h3v-4h2v4z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V600H1000V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM1000 300H1150L950 100L750 300H900V500H1000V300z","horizAdvX":"1200"},"mail-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9.06 8.683L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85z","horizAdvX":"1200"},"mail-forbid-fill":{"path":["M0 0h24v24H0z","M15.266 11.554l4.388-3.798-1.308-1.512-6.285 5.439-6.414-5.445-1.294 1.524 7.702 6.54A6.967 6.967 0 0 0 11 18c0 1.074.242 2.09.674 3H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8.255A6.968 6.968 0 0 0 18 11c-.97 0-1.894.197-2.734.554zm1.44 9.154a3 3 0 0 0 4.001-4.001l-4 4zm-1.414-1.415l4.001-4a3 3 0 0 0-4.001 4.001zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M763.3 622.3L982.7 812.2L917.3 887.8L603.05 615.85L282.35 888.1L217.65 811.9000000000001L602.75 484.9A348.34999999999997 348.34999999999997 0 0 1 550 300C550 246.3 562.1 195.5 583.6999999999999 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V587.25A348.4 348.4 0 0 1 900 650C851.5 650 805.3000000000001 640.1500000000001 763.3 622.3zM835.3 164.6000000000001A150 150 0 0 1 1035.3500000000001 364.6500000000001L835.35 164.6500000000001zM764.6 235.35L964.65 435.35A150 150 0 0 1 764.5999999999999 235.3zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50z","horizAdvX":"1200"},"mail-forbid-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h7.07a6.95 6.95 0 0 0 .604 2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8.255a6.972 6.972 0 0 0-2-.965V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zm-2.794 15.708a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H553.5A347.5 347.5 0 0 1 583.6999999999999 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V587.25A348.6 348.6 0 0 1 1000 635.5V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM835.35 164.6000000000001A150 150 0 0 1 1035.4 364.6500000000001L835.35 164.6500000000001zM764.6000000000001 235.35L964.65 435.35A150 150 0 0 1 764.6000000000001 235.3zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50z","horizAdvX":"1200"},"mail-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 4.238l-7.928 7.1L4 7.216V19h16V7.238zM4.511 5l7.55 6.662L19.502 5H4.511z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H1000V838.0999999999999zM225.55 950L603.05 616.9000000000001L975.1 950H225.55z","horizAdvX":"1200"},"mail-lock-fill":{"path":["M0 0h24v24H0z","M22 12a5.002 5.002 0 0 0-7.9 3H13v6H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8zm-9.94-.317L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM22 17h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M1100 600A250.09999999999997 250.09999999999997 0 0 1 705 450H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V600zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1100 350H1150V100H750V350H800V400A150 150 0 0 0 1100 400V350zM1000 350V400A50 50 0 0 1 900 400V350H1000z","horizAdvX":"1200"},"mail-lock-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v7h-2V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zM22 17h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V650H1000V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM1100 350H1150V100H750V350H800V400A150 150 0 0 0 1100 400V350zM1000 350V400A50 50 0 0 1 900 400V350H1000z","horizAdvX":"1200"},"mail-open-fill":{"path":["M0 0h24v24H0z","M2.243 6.854L11.49 1.31a1 1 0 0 1 1.029 0l9.238 5.545a.5.5 0 0 1 .243.429V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.283a.5.5 0 0 1 .243-.429zm16.103 1.39l-6.285 5.439-6.414-5.445-1.294 1.524 7.72 6.555 7.581-6.56-1.308-1.513z"],"unicode":"","glyph":"M112.15 857.3L574.5 1134.5A50 50 0 0 0 625.95 1134.5L1087.85 857.25A25 25 0 0 0 1099.9999999999998 835.8V200A50 50 0 0 0 1049.9999999999998 150H150A50 50 0 0 0 100 200V835.8499999999999A25 25 0 0 0 112.15 857.3zM917.3 787.8L603.05 515.85L282.35 788.1L217.65 711.9L603.65 384.15L982.7 712.1499999999999L917.3 787.8z","horizAdvX":"1200"},"mail-open-line":{"path":["M0 0h24v24H0z","M2.243 6.854L11.49 1.31a1 1 0 0 1 1.029 0l9.238 5.545a.5.5 0 0 1 .243.429V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.283a.5.5 0 0 1 .243-.429zM4 8.133V19h16V8.132l-7.996-4.8L4 8.132zm8.06 5.565l5.296-4.463 1.288 1.53-6.57 5.537-6.71-5.53 1.272-1.544 5.424 4.47z"],"unicode":"","glyph":"M112.15 857.3L574.5 1134.5A50 50 0 0 0 625.95 1134.5L1087.85 857.25A25 25 0 0 0 1099.9999999999998 835.8V200A50 50 0 0 0 1049.9999999999998 150H150A50 50 0 0 0 100 200V835.8499999999999A25 25 0 0 0 112.15 857.3zM200 793.35V250H1000V793.4000000000001L600.1999999999999 1033.4L200 793.4000000000001zM603 515.1L867.8000000000001 738.25L932.2 661.7500000000001L603.7 384.9L268.2000000000001 661.4000000000001L331.8000000000001 738.6000000000001L603.0000000000001 515.1000000000001z","horizAdvX":"1200"},"mail-send-fill":{"path":["M0 0h24v24H0z","M2 5.5V3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V19h18V7.3l-8 7.2-10-9zM0 10h5v2H0v-2zm0 5h8v2H0v-2z"],"unicode":"","glyph":"M100 925V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V250H1000V835L600 475L100 925zM0 700H250V600H0V700zM0 450H400V350H0V450z","horizAdvX":"1200"},"mail-send-line":{"path":["M0 0h24v24H0z","M22 20.007a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V19h18V7.3l-8 7.2-10-9V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16.007zM4.434 5L12 11.81 19.566 5H4.434zM0 15h8v2H0v-2zm0-5h5v2H0v-2z"],"unicode":"","glyph":"M1100 199.65A50 50 0 0 0 1050.3999999999999 150H149.6A49.65 49.65 0 0 0 100 199.65V250H1000V835L600 475L100 925V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V199.65zM221.7 950L600 609.5L978.3 950H221.7zM0 450H400V350H0V450zM0 700H250V600H0V700z","horizAdvX":"1200"},"mail-settings-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zm4.99 7.865a3.017 3.017 0 0 1 0-1.096l-1.014-.586 1-1.732 1.014.586c.278-.238.599-.425.95-.55V15h2v1.17c.351.125.672.312.95.55l1.014-.586 1 1.732-1.014.586a3.017 3.017 0 0 1 0 1.096l1.014.586-1 1.732-1.014-.586a2.997 2.997 0 0 1-.95.55V23h-2v-1.17a2.997 2.997 0 0 1-.95-.55l-1.014.586-1-1.732 1.014-.586zM20 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM852.5 222.5999999999999A150.85 150.85 0 0 0 852.5 277.3999999999999L801.8000000000001 306.6999999999998L851.8000000000001 393.2999999999999L902.5 363.9999999999999C916.4 375.8999999999999 932.45 385.2499999999999 950 391.4999999999999V450H1050V391.4999999999999C1067.55 385.2499999999999 1083.6000000000001 375.8999999999999 1097.5 363.9999999999999L1148.1999999999998 393.2999999999999L1198.1999999999998 306.6999999999998L1147.5 277.3999999999999A150.85 150.85 0 0 0 1147.5 222.5999999999999L1198.1999999999998 193.3L1148.1999999999998 106.7000000000001L1097.5 136A149.85000000000002 149.85000000000002 0 0 0 1050 108.5V50H950V108.5A149.85000000000002 149.85000000000002 0 0 0 902.5 136.0000000000002L851.8000000000001 106.7000000000003L801.8000000000001 193.3000000000002L852.5 222.6000000000001zM1000 200A50 50 0 1 1 1000 300A50 50 0 0 1 1000 200z","horizAdvX":"1200"},"mail-settings-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9h-2V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zM17.05 19.548a3.017 3.017 0 0 1 0-1.096l-1.014-.586 1-1.732 1.014.586c.278-.238.599-.425.95-.55V15h2v1.17c.351.125.672.312.95.55l1.014-.586 1 1.732-1.014.586a3.017 3.017 0 0 1 0 1.096l1.014.586-1 1.732-1.014-.586a2.997 2.997 0 0 1-.95.55V23h-2v-1.17a2.997 2.997 0 0 1-.95-.55l-1.014.586-1-1.732 1.014-.586zM20 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V550H1000V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM852.5 222.6000000000001A150.85 150.85 0 0 0 852.5 277.4000000000001L801.8000000000001 306.7000000000001L851.8000000000001 393.3L902.5 364C916.4 375.9000000000001 932.45 385.2500000000001 950 391.5000000000001V450H1050V391.4999999999999C1067.55 385.2499999999999 1083.6000000000001 375.8999999999999 1097.5 363.9999999999999L1148.1999999999998 393.2999999999999L1198.1999999999998 306.6999999999998L1147.5 277.3999999999999A150.85 150.85 0 0 0 1147.5 222.5999999999999L1198.1999999999998 193.3L1148.1999999999998 106.7000000000001L1097.5 136A149.85000000000002 149.85000000000002 0 0 0 1050 108.5V50H950V108.5A149.85000000000002 149.85000000000002 0 0 0 902.5 136.0000000000002L851.8000000000001 106.7000000000003L801.8000000000001 193.3000000000002L852.5 222.6000000000001zM1000 200A50 50 0 1 1 1000 300A50 50 0 0 1 1000 200z","horizAdvX":"1200"},"mail-star-fill":{"path":["M0 0h24v24H0z","M22 14.044A6 6 0 0 0 13.689 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10.044zm-9.94-2.361L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM19.5 21.75l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43L19.5 15l1.323 2.68 2.957.43-2.14 2.085.505 2.946L19.5 21.75z"],"unicode":"","glyph":"M1100 497.8A300 300 0 0 1 684.45 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V497.8zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM975 112.5L842.75 43L868 190.25L761 294.55L908.85 316.05L975 450L1041.15 316L1189 294.5L1082 190.25L1107.25 42.9499999999998L975 112.5z","horizAdvX":"1200"},"mail-star-line":{"path":["M0 0h24v24H0z","M22 13h-2V7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9zM4.511 5l7.55 6.662L19.502 5H4.511zM19.5 21.75l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43L19.5 15l1.323 2.68 2.957.43-2.14 2.085.505 2.946L19.5 21.75z"],"unicode":"","glyph":"M1100 550H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V550zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM975 112.5L842.75 43L868 190.25L761 294.55L908.85 316.05L975 450L1041.15 316L1189 294.5L1082 190.25L1107.25 42.9499999999998L975 112.5z","horizAdvX":"1200"},"mail-unread-fill":{"path":["M0 0h24v24H0z","M18.803 8.493A5.023 5.023 0 0 0 22 8.9V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h13.1c-.066.323-.1.658-.1 1a4.98 4.98 0 0 0 1.193 3.241l-5.132 4.442-6.414-5.445-1.294 1.524 7.72 6.555 6.73-5.824zM21 7a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M940.15 775.3499999999999A251.15 251.15 0 0 1 1100 755V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H805.0000000000001C801.7000000000002 1033.85 800 1017.1 800 1000A249.00000000000003 249.00000000000003 0 0 1 859.6500000000001 837.95L603.0500000000001 615.85L282.3500000000001 888.1L217.6500000000001 811.9000000000001L603.65 484.15L940.15 775.3499999999999zM1050 850A150 150 0 1 0 1050 1150A150 150 0 0 0 1050 850z","horizAdvX":"1200"},"mail-unread-line":{"path":["M0 0h24v24H0z","M16.1 3a5.023 5.023 0 0 0 0 2H4.511l7.55 6.662 5.049-4.52c.426.527.958.966 1.563 1.285l-6.601 5.911L4 7.216V19h16V8.9a5.023 5.023 0 0 0 2 0V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h13.1zM21 7a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M805.0000000000001 1050A251.15 251.15 0 0 1 805.0000000000001 950H225.55L603.05 616.9000000000001L855.5 842.9000000000001C876.7999999999998 816.55 903.3999999999997 794.6000000000001 933.6499999999997 778.6500000000001L603.5999999999999 483.1L200 839.2V250H1000V755A251.15 251.15 0 0 1 1100 755V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H805.0000000000001zM1050 850A150 150 0 1 0 1050 1150A150 150 0 0 0 1050 850z","horizAdvX":"1200"},"mail-volume-fill":{"path":["M0 0h24v24H0z","M20 14.5v9L16.667 21H14v-4h2.667L20 14.5zM21 3a1 1 0 0 1 1 1v10.529A6 6 0 0 0 12.34 21L3.002 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 14a2 2 0 0 1 .15 3.995L21 21v-4zM5.647 6.238L4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.286 5.438-6.413-5.444z"],"unicode":"","glyph":"M1000 475V25L833.3500000000001 150H700V350H833.3500000000001L1000 475zM1050 1050A50 50 0 0 0 1100 1000V473.55A300 300 0 0 1 617 150L150.1 150A50 50 0 0 0 100.1 200V1000A50 50 0 0 0 150.1 1050H1050.1zM1050 350A100 100 0 0 0 1057.5 150.25L1050 150V350zM282.35 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603 615.9L282.35 888.0999999999999z","horizAdvX":"1200"},"mail-volume-line":{"path":["M0 0h24v24H0z","M20 14.5v9L16.667 21H14v-4h2.667L20 14.5zM21 3a1 1 0 0 1 1 1v9h-2V7.237l-7.928 7.101L4 7.215V19h8v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 14a2 2 0 0 1 .15 3.995L21 21v-4zM19.5 5H4.511l7.55 6.662L19.5 5z"],"unicode":"","glyph":"M1000 475V25L833.3500000000001 150H700V350H833.3500000000001L1000 475zM1050 1050A50 50 0 0 0 1100 1000V550H1000V838.15L603.5999999999999 483.0999999999999L200 839.25V250H600V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 350A100 100 0 0 0 1057.5 150.25L1050 150V350zM975 950H225.55L603.05 616.9000000000001L975 950z","horizAdvX":"1200"},"map-2-fill":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm13 14.764V7.176l-.065.028L9 4.236v12.588l.065-.028L15 19.764z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM750 211.8000000000001V841.2L746.75 839.8L450 988.2V358.8000000000001L453.25 360.2000000000001L750 211.8000000000001z","horizAdvX":"1200"},"map-2-line":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm14 14.395l4-1.714V5.033l-4 1.714v12.648zm-2-.131V6.736l-4-2v12.528l4 2zm-6-2.011V4.605L4 6.319v12.648l4-1.714z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM800 230.25L1000 315.95V948.35L800 862.65V230.25zM700 236.8000000000001V863.2L500 963.2V336.8000000000001L700 236.8000000000001zM400 337.35V969.75L200 884.05V251.6500000000001L400 337.35z","horizAdvX":"1200"},"map-fill":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950z","horizAdvX":"1200"},"map-line":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm12.935 2.204l-6-3L4 6.319v12.648l5.065-2.17 6 3L20 17.68V5.033l-5.065 2.17z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM746.75 839.8L446.75 989.8L200 884.05V251.6500000000001L453.2500000000001 360.1500000000001L753.2500000000001 210.1500000000001L1000 316V948.35L746.7499999999999 839.8499999999999z","horizAdvX":"1200"},"map-pin-2-fill":{"path":["M0 0h24v24H0z","M18.364 17.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8zM600 550A100 100 0 1 1 600 750A100 100 0 0 1 600 550z","horizAdvX":"1200"},"map-pin-2-line":{"path":["M0 0h24v24H0z","M12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zm4.95-7.778a7 7 0 1 0-9.9 0L12 20.9l4.95-4.95zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM847.5 402.4999999999999A350 350 0 1 1 352.5 402.4999999999999L600 155L847.5 402.5zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"map-pin-3-fill":{"path":["M0 0h24v24H0z","M11 19.945A9.001 9.001 0 0 1 12 2a9 9 0 0 1 1 17.945V24h-2v-4.055z"],"unicode":"","glyph":"M550 202.75A450.04999999999995 450.04999999999995 0 0 0 600 1100A450 450 0 0 0 650 202.75V0H550V202.75z","horizAdvX":"1200"},"map-pin-3-line":{"path":["M0 0h24v24H0z","M11 19.945A9.001 9.001 0 0 1 12 2a9 9 0 0 1 1 17.945V24h-2v-4.055zM12 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14z"],"unicode":"","glyph":"M550 202.75A450.04999999999995 450.04999999999995 0 0 0 600 1100A450 450 0 0 0 650 202.75V0H550V202.75zM600 300A350 350 0 1 1 600 1000A350 350 0 0 1 600 300z","horizAdvX":"1200"},"map-pin-4-fill":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938V21h-2v-3.062zM5 22h14v2H5v-2z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V150H550V303.1zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-4-line":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938V21h-2v-3.062zM12 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm-7 6h14v2H5v-2z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V150H550V303.1zM600 400A300 300 0 1 1 600 1000A300 300 0 0 1 600 400zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-5-fill":{"path":["M0 0h24v24H0z","M17.657 15.657L12 21.314l-5.657-5.657a8 8 0 1 1 11.314 0zM5 22h14v2H5v-2z"],"unicode":"","glyph":"M882.85 417.15L600 134.3L317.15 417.15A400 400 0 1 0 882.85 417.15zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-5-line":{"path":["M0 0h24v24H0z","M12 18.485l4.243-4.242a6 6 0 1 0-8.486 0L12 18.485zm5.657-2.828L12 21.314l-5.657-5.657a8 8 0 1 1 11.314 0zM5 22h14v2H5v-2z"],"unicode":"","glyph":"M600 275.75L812.1500000000001 487.85A300 300 0 1 1 387.8500000000001 487.85L600 275.75zM882.85 417.15L600 134.3L317.15 417.15A400 400 0 1 0 882.85 417.15zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-add-fill":{"path":["M0 0h24v24H0z","M18.364 17.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0zM11 10H8v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8zM550 700H400V600H550V450H650V600H800V700H650V850H550V700z","horizAdvX":"1200"},"map-pin-add-line":{"path":["M0 0h24v24H0z","M12 20.9l4.95-4.95a7 7 0 1 0-9.9 0L12 20.9zm0 2.828l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM11 10V7h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M600 155L847.5 402.5A350 350 0 1 1 352.5 402.5L600 155zM600 13.6000000000001L281.8 331.8000000000002A450 450 0 1 0 918.2 331.8000000000002L600 13.5999999999999zM550 700V850H650V700H800V600H650V450H550V600H400V700H550z","horizAdvX":"1200"},"map-pin-fill":{"path":["M0 0h24v24H0z","M18.364 17.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0zM12 15a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8zM600 450A200 200 0 1 1 600 850A200 200 0 0 1 600 450zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"map-pin-line":{"path":["M0 0h24v24H0z","M12 20.9l4.95-4.95a7 7 0 1 0-9.9 0L12 20.9zm0 2.828l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M600 155L847.5 402.5A350 350 0 1 1 352.5 402.5L600 155zM600 13.6000000000001L281.8 331.8000000000002A450 450 0 1 0 918.2 331.8000000000002L600 13.5999999999999zM600 550A100 100 0 1 1 600 750A100 100 0 0 1 600 550zM600 450A200 200 0 1 0 600 850A200 200 0 0 0 600 450z","horizAdvX":"1200"},"map-pin-range-fill":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938v2.074c3.946.092 7 .723 7 1.488 0 .828-3.582 1.5-8 1.5s-8-.672-8-1.5c0-.765 3.054-1.396 7-1.488v-2.074zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V199.4C847.3000000000001 194.8000000000001 1000 163.25 1000 125C1000 83.6000000000001 820.9 50 600 50S200 83.6000000000001 200 125C200 163.25 352.7 194.8000000000001 550 199.4V303.0999999999999zM600 600A100 100 0 1 1 600 800A100 100 0 0 1 600 600z","horizAdvX":"1200"},"map-pin-range-line":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938v2.074c3.946.092 7 .723 7 1.488 0 .828-3.582 1.5-8 1.5s-8-.672-8-1.5c0-.765 3.054-1.396 7-1.488v-2.074zM12 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V199.4C847.3000000000001 194.8000000000001 1000 163.25 1000 125C1000 83.6000000000001 820.9 50 600 50S200 83.6000000000001 200 125C200 163.25 352.7 194.8000000000001 550 199.4V303.0999999999999zM600 400A300 300 0 1 1 600 1000A300 300 0 0 1 600 400zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600z","horizAdvX":"1200"},"map-pin-time-fill":{"path":["M0 0h24v24H0z","M13 11V6h-2v7h6v-2h-4zm5.364 6.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0z"],"unicode":"","glyph":"M650 650V900H550V550H850V650H650zM918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8z","horizAdvX":"1200"},"map-pin-time-line":{"path":["M0 0h24v24H0z","M16.95 15.95a7 7 0 1 0-9.9 0L12 20.9l4.95-4.95zM12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM13 11h4v2h-6V6h2v5z"],"unicode":"","glyph":"M847.5 402.5A350 350 0 1 1 352.5 402.5L600 155L847.5 402.5zM600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM650 650H850V550H550V900H650V650z","horizAdvX":"1200"},"map-pin-user-fill":{"path":["M0 0h24v24H0z","M17.084 15.812a7 7 0 1 0-10.168 0A5.996 5.996 0 0 1 12 13a5.996 5.996 0 0 1 5.084 2.812zM12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M854.1999999999999 409.4A350 350 0 1 1 345.8 409.4A299.80000000000007 299.80000000000007 0 0 0 600 550A299.80000000000007 299.80000000000007 0 0 0 854.1999999999999 409.4zM600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM600 600A150 150 0 1 0 600 900A150 150 0 0 0 600 600z","horizAdvX":"1200"},"map-pin-user-line":{"path":["M0 0h24v24H0z","M17.084 15.812a7 7 0 1 0-10.168 0A5.996 5.996 0 0 1 12 13a5.996 5.996 0 0 1 5.084 2.812zm-8.699 1.473L12 20.899l3.615-3.614a4 4 0 0 0-7.23 0zM12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M854.1999999999999 409.4A350 350 0 1 1 345.8 409.4A299.80000000000007 299.80000000000007 0 0 0 600 550A299.80000000000007 299.80000000000007 0 0 0 854.1999999999999 409.4zM419.25 335.75L600 155.05L780.75 335.75A200 200 0 0 1 419.25 335.75zM600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM600 700A50 50 0 1 1 600 800A50 50 0 0 1 600 700zM600 600A150 150 0 1 0 600 900A150 150 0 0 0 600 600z","horizAdvX":"1200"},"mark-pen-fill":{"path":["M0 0h24v24H0z","M15.95 2.393l5.657 5.657a1 1 0 0 1 0 1.414l-7.779 7.779-2.12.707-1.415 1.414a1 1 0 0 1-1.414 0l-4.243-4.243a1 1 0 0 1 0-1.414l1.414-1.414.707-2.121 7.779-7.779a1 1 0 0 1 1.414 0zm.707 3.536l-6.364 6.364 1.414 1.414 6.364-6.364-1.414-1.414zM4.282 16.889l2.829 2.829-1.414 1.414-4.243-1.414 2.828-2.829z"],"unicode":"","glyph":"M797.5 1080.35L1080.35 797.5A50 50 0 0 0 1080.35 726.8L691.4 337.8499999999999L585.3999999999999 302.4999999999999L514.65 231.7999999999998A50 50 0 0 0 443.95 231.7999999999998L231.8 443.9499999999998A50 50 0 0 0 231.8 514.6499999999997L302.5 585.3499999999998L337.85 691.3999999999999L726.7999999999998 1080.35A50 50 0 0 0 797.4999999999999 1080.35zM832.85 903.55L514.65 585.35L585.3499999999999 514.6500000000001L903.55 832.85L832.8499999999998 903.55zM214.1 355.5500000000001L355.55 214.1L284.85 143.3999999999999L72.7 214.1L214.1 355.5500000000001z","horizAdvX":"1200"},"mark-pen-line":{"path":["M0 0h24v24H0z","M15.243 4.515l-6.738 6.737-.707 2.121-1.04 1.041 2.828 2.829 1.04-1.041 2.122-.707 6.737-6.738-4.242-4.242zm6.364 3.535a1 1 0 0 1 0 1.414l-7.779 7.779-2.12.707-1.415 1.414a1 1 0 0 1-1.414 0l-4.243-4.243a1 1 0 0 1 0-1.414l1.414-1.414.707-2.121 7.779-7.779a1 1 0 0 1 1.414 0l5.657 5.657zm-6.364-.707l1.414 1.414-4.95 4.95-1.414-1.414 4.95-4.95zM4.283 16.89l2.828 2.829-1.414 1.414-4.243-1.414 2.828-2.829z"],"unicode":"","glyph":"M762.15 974.25L425.25 637.4000000000001L389.9 531.35L337.9 479.3000000000001L479.3 337.85L531.2999999999998 389.9000000000001L637.3999999999999 425.2500000000001L974.25 762.1500000000001L762.15 974.2500000000002zM1080.35 797.5A50 50 0 0 0 1080.35 726.8L691.4 337.8499999999999L585.3999999999999 302.4999999999999L514.65 231.7999999999998A50 50 0 0 0 443.95 231.7999999999998L231.8 443.9499999999998A50 50 0 0 0 231.8 514.6499999999997L302.5 585.3499999999998L337.85 691.3999999999999L726.7999999999998 1080.35A50 50 0 0 0 797.4999999999999 1080.35L1080.35 797.4999999999998zM762.15 832.8499999999999L832.85 762.1499999999999L585.35 514.65L514.6500000000001 585.3499999999999L762.1500000000001 832.8499999999999zM214.15 355.5L355.55 214.05L284.85 143.3499999999999L72.7 214.05L214.1 355.5z","horizAdvX":"1200"},"markdown-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 12.5v-4l2 2 2-2v4h2v-7h-2l-2 2-2-2H5v7h2zm11-3v-4h-2v4h-2l3 3 3-3h-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM350 425V625L450 525L550 625V425H650V775H550L450 675L350 775H250V425H350zM900 575V775H800V575H700L850 425L1000 575H900z","horizAdvX":"1200"},"markdown-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm3 10.5H5v-7h2l2 2 2-2h2v7h-2v-4l-2 2-2-2v4zm11-3h2l-3 3-3-3h2v-4h2v4z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM350 425H250V775H350L450 675L550 775H650V425H550V625L450 525L350 625V425zM900 575H1000L850 425L700 575H800V775H900V575z","horizAdvX":"1200"},"markup-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm5.051-3.796l-.862-3.447a1 1 0 0 0-.97-.757H8.781a1 1 0 0 0-.97.757l-.862 3.447A7.967 7.967 0 0 0 12 20a7.967 7.967 0 0 0 5.051-1.796zM10 12h4v-1.5l-1.038-3.635a1 1 0 0 0-1.924 0L10 10.5V12z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM852.5500000000001 289.8L809.4500000000002 462.15A50 50 0 0 1 760.9500000000002 499.9999999999999H439.05A50 50 0 0 1 390.5500000000001 462.15L347.4500000000001 289.8A398.34999999999997 398.34999999999997 0 0 1 600 200A398.34999999999997 398.34999999999997 0 0 1 852.5500000000001 289.8zM500 600H700V675L648.1 856.75A50 50 0 0 1 551.9 856.75L500 675V600z","horizAdvX":"1200"},"markup-line":{"path":["M0 0h24v24H0z","M10 10.5l1.038-3.635a1 1 0 0 1 1.924 0L14 10.5V12h.72a1 1 0 0 1 .97.757l1.361 5.447a8 8 0 1 0-10.102 0l1.362-5.447A1 1 0 0 1 9.28 12H10v-1.5zm2 9.5a7.952 7.952 0 0 0 3.265-.694L13.938 14h-3.876l-1.327 5.306A7.95 7.95 0 0 0 12 20zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M500 675L551.9 856.75A50 50 0 0 0 648.1 856.75L700 675V600H736A50 50 0 0 0 784.5000000000001 562.15L852.5500000000001 289.8A400 400 0 1 1 347.4500000000001 289.8L415.5500000000001 562.15A50 50 0 0 0 463.9999999999999 600H500V675zM600 200A397.6 397.6 0 0 1 763.25 234.7L696.9 500H503.1000000000001L436.7500000000001 234.7A397.5 397.5 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"mastercard-fill":{"path":["M0 0h24v24H0z","M12 6.654a6.786 6.786 0 0 1 2.596 5.344A6.786 6.786 0 0 1 12 17.34a6.786 6.786 0 0 1-2.596-5.343A6.786 6.786 0 0 1 12 6.654zm-.87-.582A7.783 7.783 0 0 0 8.4 12a7.783 7.783 0 0 0 2.728 5.926 6.798 6.798 0 1 1 .003-11.854zm1.742 11.854A7.783 7.783 0 0 0 15.6 12a7.783 7.783 0 0 0-2.73-5.928 6.798 6.798 0 1 1 .003 11.854z"],"unicode":"","glyph":"M600 867.3A339.29999999999995 339.29999999999995 0 0 0 729.8 600.0999999999999A339.29999999999995 339.29999999999995 0 0 0 600 333A339.29999999999995 339.29999999999995 0 0 0 470.2 600.15A339.29999999999995 339.29999999999995 0 0 0 600 867.3zM556.5 896.4A389.15 389.15 0 0 1 420 600A389.15 389.15 0 0 1 556.4 303.7A339.90000000000003 339.90000000000003 0 1 0 556.55 896.3999999999999zM643.6 303.7000000000001A389.15 389.15 0 0 1 780 600A389.15 389.15 0 0 1 643.5 896.4A339.90000000000003 339.90000000000003 0 1 0 643.65 303.7000000000001z","horizAdvX":"1200"},"mastercard-line":{"path":["M0 0h24v24H0z","M12 18.294a7.3 7.3 0 1 1 0-12.588 7.3 7.3 0 1 1 0 12.588zm1.702-1.384a5.3 5.3 0 1 0 0-9.82A7.273 7.273 0 0 1 15.6 12c0 1.89-.719 3.614-1.898 4.91zm-3.404-9.82a5.3 5.3 0 1 0 0 9.82A7.273 7.273 0 0 1 8.4 12c0-1.89.719-3.614 1.898-4.91zM12 8.205A5.284 5.284 0 0 0 10.4 12c0 1.488.613 2.832 1.6 3.795A5.284 5.284 0 0 0 13.6 12 5.284 5.284 0 0 0 12 8.205z"],"unicode":"","glyph":"M600 285.3A365 365 0 1 0 600 914.7A365 365 0 1 0 600 285.3zM685.1 354.5A265.00000000000006 265.00000000000006 0 1 1 685.1 845.5A363.65 363.65 0 0 0 780 600C780 505.5 744.05 419.3 685.1 354.5zM514.9 845.5A265.00000000000006 265.00000000000006 0 1 1 514.9 354.5A363.65 363.65 0 0 0 420 600C420 694.5 455.95 780.7 514.9 845.5zM600 789.75A264.2 264.2 0 0 1 520 600C520 525.6 550.65 458.4 600 410.25A264.2 264.2 0 0 1 680 600A264.2 264.2 0 0 1 600 789.75z","horizAdvX":"1200"},"mastodon-fill":{"path":["M0 0h24v24H0z","M21.258 13.99c-.274 1.41-2.456 2.955-4.962 3.254-1.306.156-2.593.3-3.965.236-2.243-.103-4.014-.535-4.014-.535 0 .218.014.426.04.62.292 2.215 2.196 2.347 4 2.41 1.82.062 3.44-.45 3.44-.45l.076 1.646s-1.274.684-3.542.81c-1.25.068-2.803-.032-4.612-.51-3.923-1.039-4.598-5.22-4.701-9.464-.031-1.26-.012-2.447-.012-3.44 0-4.34 2.843-5.611 2.843-5.611 1.433-.658 3.892-.935 6.45-.956h.062c2.557.02 5.018.298 6.451.956 0 0 2.843 1.272 2.843 5.61 0 0 .036 3.201-.397 5.424zm-2.956-5.087c0-1.074-.273-1.927-.822-2.558-.567-.631-1.308-.955-2.229-.955-1.065 0-1.871.41-2.405 1.228l-.518.87-.519-.87C11.276 5.8 10.47 5.39 9.405 5.39c-.921 0-1.663.324-2.229.955-.549.631-.822 1.484-.822 2.558v5.253h2.081V9.057c0-1.075.452-1.62 1.357-1.62 1 0 1.501.647 1.501 1.927v2.79h2.07v-2.79c0-1.28.5-1.927 1.5-1.927.905 0 1.358.545 1.358 1.62v5.1h2.08V8.902z"],"unicode":"","glyph":"M1062.8999999999999 500.5C1049.1999999999998 430 940.1 352.75 814.8 337.8C749.4999999999999 330.0000000000001 685.15 322.8 616.55 326C504.4 331.1500000000001 415.85 352.75 415.85 352.75C415.85 341.85 416.55 331.4500000000001 417.85 321.7499999999999C432.45 211 527.65 204.3999999999999 617.8499999999999 201.2499999999999C708.85 198.1499999999999 789.8499999999999 223.7499999999999 789.8499999999999 223.7499999999999L793.65 141.4499999999998S729.95 107.2499999999998 616.55 100.9499999999998C554.05 97.55 476.3999999999999 102.55 385.95 126.4500000000001C189.8 178.4000000000001 156.05 387.45 150.9 599.65C149.35 662.65 150.3 722 150.3 771.65C150.3 988.65 292.45 1052.2 292.45 1052.2C364.1 1085.1 487.05 1098.95 614.9499999999999 1100H618.05C745.9 1099 868.9499999999999 1085.1 940.6 1052.2C940.6 1052.2 1082.7499999999998 988.6 1082.7499999999998 771.7C1082.7499999999998 771.7 1084.55 611.65 1062.8999999999999 500.4999999999999zM915.1 754.8499999999999C915.1 808.55 901.45 851.1999999999999 874 882.75C845.65 914.3 808.6 930.5 762.5500000000001 930.5C709.3000000000001 930.5 669 910 642.3000000000001 869.0999999999999L616.4000000000001 825.5999999999999L590.45 869.0999999999999C563.8 910 523.5 930.5 470.2499999999999 930.5C424.2 930.5 387.1 914.3 358.8 882.75C331.35 851.2 317.7 808.55 317.7 754.8500000000001V492.2H421.75V747.15C421.75 800.9 444.3499999999999 828.15 489.5999999999999 828.15C539.5999999999999 828.15 564.6499999999999 795.8 564.6499999999999 731.8V592.3H668.1499999999999V731.8C668.1499999999999 795.8 693.1499999999999 828.1499999999999 743.1499999999999 828.1499999999999C788.3999999999999 828.1499999999999 811.0499999999998 800.8999999999999 811.0499999999998 747.1499999999999V492.1499999999999H915.0499999999998V754.9000000000001z","horizAdvX":"1200"},"mastodon-line":{"path":["M0 0h24v24H0z","M3.018 12.008c-.032-1.26-.012-2.448-.012-3.442 0-4.338 2.843-5.61 2.843-5.61 1.433-.658 3.892-.935 6.45-.956h.062c2.557.02 5.018.298 6.451.956 0 0 2.843 1.272 2.843 5.61 0 0 .036 3.201-.396 5.424-.275 1.41-2.457 2.955-4.963 3.254-1.306.156-2.593.3-3.965.236-2.243-.103-4.014-.535-4.014-.535 0 .218.014.426.04.62.084.633.299 1.095.605 1.435.766.85 2.106.93 3.395.974 1.82.063 3.44-.449 3.44-.449l.076 1.646s-1.274.684-3.542.81c-1.25.068-2.803-.032-4.612-.51-1.532-.406-2.568-1.29-3.27-2.471-1.093-1.843-1.368-4.406-1.431-6.992zm3.3 4.937v-2.548l2.474.605a20.54 20.54 0 0 0 1.303.245c.753.116 1.538.2 2.328.235 1.019.047 1.901-.017 3.636-.224 1.663-.199 3.148-1.196 3.236-1.65.082-.422.151-.922.206-1.482a33.6 33.6 0 0 0 .137-2.245c.015-.51.02-.945.017-1.256v-.059c0-1.43-.369-2.438-.963-3.158a3.008 3.008 0 0 0-.584-.548c-.09-.064-.135-.089-.13-.087-1.013-.465-3.093-.752-5.617-.773h-.046c-2.54.02-4.62.308-5.65.782.023-.01-.021.014-.112.078a3.008 3.008 0 0 0-.584.548c-.594.72-.963 1.729-.963 3.158 0 .232 0 .397-.003.875a77.483 77.483 0 0 0 .014 2.518c.054 2.197.264 3.835.7 5.041.212.587.472 1.07.78 1.45a5.7 5.7 0 0 1-.18-1.505zM8.084 6.37a1.143 1.143 0 1 1 0 2.287 1.143 1.143 0 0 1 0-2.287z"],"unicode":"","glyph":"M150.9 599.6C149.3 662.6 150.3 722 150.3 771.7C150.3 988.6 292.45 1052.2 292.45 1052.2C364.1 1085.1000000000001 487.05 1098.95 614.9499999999999 1100H618.05C745.9 1099 868.9499999999999 1085.1000000000001 940.6 1052.2C940.6 1052.2 1082.7499999999998 988.6 1082.7499999999998 771.7C1082.7499999999998 771.7 1084.55 611.65 1062.9499999999998 500.5000000000001C1049.1999999999998 430.0000000000001 940.0999999999998 352.75 814.7999999999998 337.8C749.4999999999998 330.0000000000001 685.1499999999997 322.8 616.5499999999998 326C504.3999999999998 331.1500000000001 415.8499999999999 352.75 415.8499999999999 352.75C415.8499999999999 341.85 416.5499999999998 331.4500000000001 417.8499999999998 321.7499999999999C422.0499999999998 290.1 432.7999999999998 267 448.0999999999998 250C486.3999999999998 207.4999999999999 553.3999999999997 203.5 617.8499999999998 201.3C708.8499999999998 198.1500000000001 789.8499999999998 223.7500000000001 789.8499999999998 223.7500000000001L793.6499999999997 141.4500000000001S729.9499999999998 107.25 616.5499999999998 100.9500000000001C554.0499999999998 97.55 476.3999999999997 102.5500000000002 385.9499999999998 126.4500000000003C309.3499999999998 146.75 257.5499999999999 190.9500000000002 222.4499999999998 250.0000000000003C167.7999999999998 342.1500000000002 154.0499999999998 470.3000000000001 150.8999999999998 599.6000000000003zM315.9 352.75V480.15L439.6 449.9A1027 1027 0 0 1 504.7499999999999 437.65C542.4 431.85 581.65 427.6500000000001 621.1499999999999 425.9000000000001C672.0999999999999 423.55 716.1999999999999 426.75 802.9499999999998 437.1C886.0999999999999 447.0500000000001 960.35 496.9 964.7499999999998 519.6C968.85 540.7 972.3 565.7 975.0499999999998 593.7A1680 1680 0 0 1 981.8999999999997 705.95C982.65 731.45 982.8999999999997 753.2 982.7499999999998 768.75V771.7C982.7499999999998 843.1999999999999 964.2999999999998 893.6 934.5999999999998 929.6A150.4 150.4 0 0 1 905.3999999999997 957C900.8999999999997 960.2 898.6499999999997 961.45 898.8999999999999 961.35C848.2499999999998 984.6 744.2499999999999 998.95 618.0499999999998 999.9999999999998H615.7499999999999C488.7499999999999 999 384.7499999999999 984.6 333.2499999999999 960.8999999999997C334.3999999999999 961.3999999999997 332.1999999999999 960.2 327.6499999999999 956.9999999999998A150.4 150.4 0 0 1 298.4499999999999 929.6C268.7499999999999 893.5999999999999 250.2999999999999 843.1499999999999 250.2999999999999 771.6999999999998C250.2999999999999 760.0999999999999 250.2999999999999 751.8499999999999 250.1499999999999 727.9499999999998A3874.15 3874.15 0 0 1 250.8499999999999 602.0499999999998C253.5499999999999 492.1999999999999 264.0499999999999 410.2999999999999 285.8499999999999 349.9999999999998C296.4499999999999 320.6499999999999 309.45 296.4999999999998 324.8499999999999 277.4999999999999A285 285 0 0 0 315.8499999999999 352.7499999999998zM404.2 881.5A57.150000000000006 57.150000000000006 0 1 0 404.2 767.15A57.150000000000006 57.150000000000006 0 0 0 404.2 881.5z","horizAdvX":"1200"},"medal-2-fill":{"path":["M0 0h24v24H0z","M12 8.5l2.116 5.088 5.492.44-4.184 3.584 1.278 5.36L12 20.1l-4.702 2.872 1.278-5.36-4.184-3.584 5.492-.44L12 8.5zM8 2v9H6V2h2zm10 0v9h-2V2h2zm-5 0v5h-2V2h2z"],"unicode":"","glyph":"M600 775L705.8 520.5999999999999L980.4 498.6L771.1999999999999 319.3999999999999L835.0999999999999 51.3999999999999L600 194.9999999999999L364.9 51.3999999999999L428.8 319.3999999999999L219.6 498.5999999999999L494.2 520.5999999999999L600 775zM400 1100V650H300V1100H400zM900 1100V650H800V1100H900zM650 1100V850H550V1100H650z","horizAdvX":"1200"},"medal-2-line":{"path":["M0 0h24v24H0z","M12 8.5l2.116 5.088 5.492.44-4.184 3.584 1.278 5.36L12 20.1l-4.702 2.872 1.278-5.36-4.184-3.584 5.492-.44L12 8.5zm0 5.207l-.739 1.777-1.916.153 1.46 1.251-.447 1.871L12 17.756l1.641 1.003-.446-1.87 1.459-1.252-1.915-.153L12 13.707zM8 2v9H6V2h2zm10 0v9h-2V2h2zm-5 0v5h-2V2h2z"],"unicode":"","glyph":"M600 775L705.8 520.5999999999999L980.4 498.6L771.1999999999999 319.3999999999999L835.0999999999999 51.3999999999999L600 194.9999999999999L364.9 51.3999999999999L428.8 319.3999999999999L219.6 498.5999999999999L494.2 520.5999999999999L600 775zM600 514.65L563.05 425.8L467.2499999999999 418.15L540.25 355.5999999999999L517.9 262.05L600 312.2000000000001L682.05 262.05L659.75 355.5500000000001L732.7 418.1500000000001L636.95 425.8000000000001L600 514.65zM400 1100V650H300V1100H400zM900 1100V650H800V1100H900zM650 1100V850H550V1100H650z","horizAdvX":"1200"},"medal-fill":{"path":["M0 0h24v24H0z","M12 7a8 8 0 1 1 0 16 8 8 0 0 1 0-16zm0 3.5l-1.323 2.68-2.957.43 2.14 2.085-.505 2.946L12 17.25l2.645 1.39-.505-2.945 2.14-2.086-2.957-.43L12 10.5zm1-8.501L18 2v3l-1.363 1.138A9.935 9.935 0 0 0 13 5.049L13 2zm-2 0v3.05a9.935 9.935 0 0 0-3.636 1.088L6 5V2l5-.001z"],"unicode":"","glyph":"M600 850A400 400 0 1 0 600 50A400 400 0 0 0 600 850zM600 675L533.85 541L386 519.5L493 415.25L467.7499999999999 267.95L600 337.5L732.25 268L706.9999999999999 415.25L813.9999999999999 519.55L666.1499999999999 541.05L600 675zM650 1100.05L900 1100V950L831.85 893.1A496.75000000000006 496.75000000000006 0 0 1 650 947.55L650 1100zM550 1100.05V947.55A496.75000000000006 496.75000000000006 0 0 1 368.2 893.15L300 950V1100L550 1100.05z","horizAdvX":"1200"},"medal-line":{"path":["M0 0h24v24H0z","M12 7a8 8 0 1 1 0 16 8 8 0 0 1 0-16zm0 2a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 1.5l1.323 2.68 2.957.43-2.14 2.085.505 2.946L12 17.25l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43L12 10.5zM18 2v3l-1.363 1.138A9.935 9.935 0 0 0 13 5.049L13 2 18 2zm-7-.001v3.05a9.935 9.935 0 0 0-3.636 1.088L6 5V2l5-.001z"],"unicode":"","glyph":"M600 850A400 400 0 1 0 600 50A400 400 0 0 0 600 850zM600 750A300 300 0 1 1 600 150A300 300 0 0 1 600 750zM600 675L666.15 541L814 519.5L707 415.25L732.2500000000001 267.95L600 337.5L467.75 268L493.0000000000001 415.25L386.0000000000001 519.55L533.85 541.05L600 675zM900 1100V950L831.85 893.1A496.75000000000006 496.75000000000006 0 0 1 650 947.55L650 1100L900 1100zM550 1100.05V947.55A496.75000000000006 496.75000000000006 0 0 1 368.2 893.1500000000001L300 950V1100L550 1100.05z","horizAdvX":"1200"},"medicine-bottle-fill":{"path":["M0 0H24V24H0z","M17 5v2c1.657 0 3 1.343 3 3v11c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V10c0-1.657 1.343-3 3-3V5h10zm-4 6h-2v2H9v2h1.999L11 17h2l-.001-2H15v-2h-2v-2zm6-9v2H5V2h14z"],"unicode":"","glyph":"M850 950V850C932.85 850 1000 782.85 1000 700V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V700C200 782.85 267.15 850 350 850V950H850zM650 650H550V550H450V450H549.95L550 350H650L649.95 450H750V550H650V650zM950 1100V1000H250V1100H950z","horizAdvX":"1200"},"medicine-bottle-line":{"path":["M0 0H24V24H0z","M19 2v2h-2v3c1.657 0 3 1.343 3 3v11c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V10c0-1.657 1.343-3 3-3V4H5V2h14zm-2 7H7c-.552 0-1 .448-1 1v10h12V10c0-.552-.448-1-1-1zm-4 2v2h2v2h-2.001L13 17h-2l-.001-2H9v-2h2v-2h2zm2-7H9v3h6V4z"],"unicode":"","glyph":"M950 1100V1000H850V850C932.85 850 1000 782.85 1000 700V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V700C200 782.85 267.15 850 350 850V1000H250V1100H950zM850 750H350C322.4000000000001 750 300 727.5999999999999 300 700V200H900V700C900 727.5999999999999 877.6 750 850 750zM650 650V550H750V450H649.95L650 350H550L549.95 450H450V550H550V650H650zM750 1000H450V850H750V1000z","horizAdvX":"1200"},"medium-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13.3 12.94c-.1-.05-.15-.2-.15-.301V8.006c0-.1.05-.25.15-.351l.955-1.105V6.5H14.84l-2.56 6.478L9.366 6.5H5.852v.05l.903 1.256c.201.2.251.502.251.753v5.523c.05.302 0 .653-.15.954L5.5 16.894v.05h3.616v-.05L7.76 15.087c-.15-.302-.201-.603-.15-.954V9.11c.05.1.1.1.15.301l3.414 7.633h.05L14.54 8.76c-.05.3-.05.652-.05.904v5.925c0 .15-.05.25-.15.351l-1.005.954v.05h4.921v-.05l-.954-.954z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM865 403C860 405.5000000000001 857.5000000000001 413 857.5000000000001 418.0500000000001V799.7C857.5000000000001 804.7 860.0000000000001 812.2 865 817.25L912.75 872.5V875H742L614 551.1L468.3 875H292.6V872.5L337.7500000000001 809.7C347.8 799.7 350.3000000000001 784.6 350.3000000000001 772.05V495.9000000000001C352.8000000000001 480.8000000000001 350.3000000000001 463.25 342.8 448.2000000000001L275 355.3000000000001V352.8000000000001H455.8V355.3000000000001L388 445.65C380.5 460.75 377.95 475.8 380.5 493.35V744.5C383 739.5 385.5 739.5 388 729.45L558.6999999999999 347.8H561.2L727 762C724.4999999999999 747 724.4999999999999 729.4000000000001 724.4999999999999 716.8V420.5500000000001C724.4999999999999 413.0500000000001 721.9999999999999 408.0500000000001 716.9999999999999 403.0000000000001L666.7499999999999 355.3000000000001V352.8000000000001H912.7999999999998V355.3000000000001L865.0999999999998 403.0000000000001z","horizAdvX":"1200"},"medium-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm12.3 10.94l.955.954v.05h-4.921v-.05l1.004-.954c.1-.1.15-.2.15-.351V9.664c0-.252 0-.603.051-.904l-3.314 8.285h-.05L7.76 9.412c-.05-.2-.1-.2-.15-.3v5.02c-.051.352 0 .653.15.955l1.356 1.807v.05H5.5v-.05l1.356-1.858c.15-.3.2-.652.15-.954V8.56c0-.251-.05-.553-.25-.753L5.851 6.55V6.5h3.515l2.912 6.478L14.84 6.5h3.415v.05l-.954 1.105c-.1.1-.15.251-.15.351v7.633c0 .1.05.251.15.301z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM865 403L912.75 355.3000000000001V352.8000000000001H666.6999999999999V355.3000000000001L716.9 403.0000000000001C721.9 408.0000000000001 724.4 413.0000000000001 724.4 420.5500000000001V716.8C724.4 729.4000000000001 724.4 746.95 726.9499999999999 762L561.25 347.7499999999999H558.75L388 729.4C385.5 739.3999999999999 383 739.3999999999999 380.5 744.4V493.4C377.95 475.8 380.5 460.75 388 445.65L455.8 355.3000000000001V352.8000000000001H275V355.3000000000001L342.8 448.2000000000002C350.3 463.2000000000002 352.8 480.8000000000001 350.3 495.9000000000001V772C350.3 784.55 347.8 799.6500000000001 337.8 809.65L292.55 872.5V875H468.3L613.9 551.1L742 875H912.75V872.5L865.05 817.25C860.0499999999998 812.25 857.55 804.7 857.55 799.7V418.0500000000001C857.55 413.0500000000001 860.0500000000001 405.5000000000001 865.05 403z","horizAdvX":"1200"},"men-fill":{"path":["M0 0h24v24H0z","M18.586 5H14V3h8v8h-2V6.414l-3.537 3.537a7.5 7.5 0 1 1-1.414-1.414L18.586 5z"],"unicode":"","glyph":"M929.3 950H700V1050H1100V650H1000V879.3L823.1500000000001 702.45A375 375 0 1 0 752.45 773.15L929.3 950z","horizAdvX":"1200"},"men-line":{"path":["M0 0h24v24H0z","M15.05 8.537L18.585 5H14V3h8v8h-2V6.414l-3.537 3.537a7.5 7.5 0 1 1-1.414-1.414zM10.5 20a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M752.5 773.15L929.25 950H700V1050H1100V650H1000V879.3L823.1500000000001 702.45A375 375 0 1 0 752.45 773.15zM525 200A275 275 0 1 1 525 750A275 275 0 0 1 525 200z","horizAdvX":"1200"},"mental-health-fill":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm-.53 5.763c-.684-.684-1.792-.684-2.475 0-.684.683-.684 1.791 0 2.474L11 13.243l3.005-3.006c.684-.683.684-1.791 0-2.474-.683-.684-1.791-.684-2.475 0l-.53.53-.53-.53z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM523.5 811.85C489.3000000000001 846.05 433.9000000000001 846.05 399.7500000000001 811.85C365.5500000000001 777.7 365.5500000000001 722.3 399.7500000000001 688.15L550 537.85L700.25 688.15C734.4499999999999 722.3 734.4499999999999 777.7 700.25 811.85C666.0999999999999 846.05 610.6999999999999 846.05 576.5 811.85L550 785.35L523.5 811.85z","horizAdvX":"1200"},"mental-health-line":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm0 2c-3.314 0-6 2.686-6 6 0 1.385.468 2.693 1.316 3.75C7.41 15.114 8 16.667 8 18.306V20h5l.002-3H17v-4.248l1.55-.664-1.543-2.425-.057-.442C16.566 6.251 14.024 4 11 4zm-.53 3.763l.53.53.53-.53c.684-.684 1.792-.684 2.475 0 .684.683.684 1.791 0 2.474L11 13.243l-3.005-3.006c-.684-.683-.684-1.791 0-2.474.683-.684 1.791-.684 2.475 0z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM550 1000C384.3 1000 250 865.7 250 700C250 630.75 273.4 565.35 315.8 512.5C370.5 444.3 400 366.6499999999999 400 284.7V200H650L650.1 350H850V562.4000000000001L927.5 595.6L850.35 716.8499999999999L847.5000000000001 738.95C828.3 887.45 701.1999999999999 1000 550 1000zM523.5 811.85L550 785.35L576.5 811.85C610.6999999999999 846.0500000000001 666.0999999999999 846.0500000000001 700.25 811.85C734.4499999999999 777.7 734.4499999999999 722.3000000000001 700.25 688.1500000000001L550 537.85L399.75 688.15C365.55 722.3 365.55 777.7 399.75 811.85C433.9000000000001 846.05 489.3 846.05 523.5 811.85z","horizAdvX":"1200"},"menu-2-fill":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h12v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H750V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-2-line":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h12v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H750V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-3-fill":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm6 7h12v2H9v-2zm-6 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM450 650H1050V550H450V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-3-line":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm6 7h12v2H9v-2zm-6 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM450 650H1050V550H450V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-4-fill":{"path":["M0 0h24v24H0z","M16 18v2H5v-2h11zm5-7v2H3v-2h18zm-2-7v2H8V4h11z"],"unicode":"","glyph":"M800 300V200H250V300H800zM1050 650V550H150V650H1050zM950 1000V900H400V1000H950z","horizAdvX":"1200"},"menu-4-line":{"path":["M0 0h24v24H0z","M16 18v2H5v-2h11zm5-7v2H3v-2h18zm-2-7v2H8V4h11z"],"unicode":"","glyph":"M800 300V200H250V300H800zM1050 650V550H150V650H1050zM950 1000V900H400V1000H950z","horizAdvX":"1200"},"menu-5-fill":{"path":["M0 0h24v24H0z","M18 18v2H6v-2h12zm3-7v2H3v-2h18zm-3-7v2H6V4h12z"],"unicode":"","glyph":"M900 300V200H300V300H900zM1050 650V550H150V650H1050zM900 1000V900H300V1000H900z","horizAdvX":"1200"},"menu-5-line":{"path":["M0 0h24v24H0z","M18 18v2H6v-2h12zm3-7v2H3v-2h18zm-3-7v2H6V4h12z"],"unicode":"","glyph":"M900 300V200H300V300H900zM1050 650V550H150V650H1050zM900 1000V900H300V1000H900z","horizAdvX":"1200"},"menu-add-fill":{"path":["M0 0h24v24H0z","M18 15l-.001 3H21v2h-3.001L18 23h-2l-.001-3H13v-2h2.999L16 15h2zm-7 3v2H3v-2h8zm10-7v2H3v-2h18zm0-7v2H3V4h18z"],"unicode":"","glyph":"M900 450L899.9499999999999 300H1050V200H899.9499999999999L900 50H800L799.95 200H650V300H799.95L800 450H900zM550 300V200H150V300H550zM1050 650V550H150V650H1050zM1050 1000V900H150V1000H1050z","horizAdvX":"1200"},"menu-add-line":{"path":["M0 0h24v24H0z","M18 15l-.001 3H21v2h-3.001L18 23h-2l-.001-3H13v-2h2.999L16 15h2zm-7 3v2H3v-2h8zm10-7v2H3v-2h18zm0-7v2H3V4h18z"],"unicode":"","glyph":"M900 450L899.9499999999999 300H1050V200H899.9499999999999L900 50H800L799.95 200H650V300H799.95L800 450H900zM550 300V200H150V300H550zM1050 650V550H150V650H1050zM1050 1000V900H150V1000H1050z","horizAdvX":"1200"},"menu-fill":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H1050V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-fold-fill":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM6.95 3.55v9.9L2 8.5l4.95-4.95zM21 11v2h-9v-2h9zm0-7v2h-9V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM347.5 1022.5V527.5L100 775L347.5 1022.5zM1050 650V550H600V650H1050zM1050 1000V900H600V1000H1050z","horizAdvX":"1200"},"menu-fold-line":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM6.596 3.904L8.01 5.318 4.828 8.5l3.182 3.182-1.414 1.414L2 8.5l4.596-4.596zM21 11v2h-9v-2h9zm0-7v2h-9V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM329.8 1004.8L400.5 934.1L241.4 775L400.5 615.9L329.8 545.2L100 775L329.8 1004.8zM1050 650V550H600V650H1050zM1050 1000V900H600V1000H1050z","horizAdvX":"1200"},"menu-line":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H1050V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-unfold-fill":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM17.05 3.55L22 8.5l-4.95 4.95v-9.9zM12 11v2H3v-2h9zm0-7v2H3V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM852.5 1022.5L1100 775L852.5 527.5V1022.5zM600 650V550H150V650H600zM600 1000V900H150V1000H600z","horizAdvX":"1200"},"menu-unfold-line":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM17.404 3.904L22 8.5l-4.596 4.596-1.414-1.414L19.172 8.5 15.99 5.318l1.414-1.414zM12 11v2H3v-2h9zm0-7v2H3V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM870.2 1004.8L1100 775L870.2 545.2L799.5 615.9L958.6 775L799.5 934.1L870.2 1004.8zM600 650V550H150V650H600zM600 1000V900H150V1000H600z","horizAdvX":"1200"},"merge-cells-horizontal":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-9 2H5v5.999h2V9l3 3-3 3v-2H5v6h6v-2h2v2h6v-6h-2v2l-3-3 3-3v1.999h2V5h-6v2h-2V5zm2 8v2h-2v-2h2zm0-4v2h-2V9h2z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM550 950H250V650.0500000000001H350V750L500 600L350 450V550H250V250H550V350H650V250H950V550H850V450L700 600L850 750V650.05H950V950H650V850H550V950zM650 550V450H550V550H650zM650 750V650H550V750H650z","horizAdvX":"1200"},"merge-cells-vertical":{"path":["M0 0H24V24H0z","M21 20c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16c.552 0 1 .448 1 1v16zm-2-9V5h-5.999v2H15l-3 3-3-3h2V5H5v6h2v2H5v6h6v-2H9l3-3 3 3h-1.999v2H19v-6h-2v-2h2zm-8 2H9v-2h2v2zm4 0h-2v-2h2v2z"],"unicode":"","glyph":"M1050 200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000C1027.6 1050 1050 1027.6 1050 1000V200zM950 650V950H650.0500000000001V850H750L600 700L450 850H550V950H250V650H350V550H250V250H550V350H450L600 500L750 350H650.05V250H950V550H850V650H950zM550 550H450V650H550V550zM750 550H650V650H750V550z","horizAdvX":"1200"},"message-2-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM7 10v2h2v-2H7zm4 0v2h2v-2h-2zm4 0v2h2v-2h-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM350 700V600H450V700H350zM550 700V600H650V700H550zM750 700V600H850V700H750z","horizAdvX":"1200"},"message-2-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM550 700H650V600H550V700zM350 700H450V600H350V700zM750 700H850V600H750V700z","horizAdvX":"1200"},"message-3-fill":{"path":["M0 0h24v24H0z","M2 8.994A5.99 5.99 0 0 1 8 3h8c3.313 0 6 2.695 6 5.994V21H8c-3.313 0-6-2.695-6-5.994V8.994zM14 11v2h2v-2h-2zm-6 0v2h2v-2H8z"],"unicode":"","glyph":"M100 750.3A299.50000000000006 299.50000000000006 0 0 0 400 1050H800C965.65 1050 1100 915.25 1100 750.3V150H400C234.35 150 100 284.75 100 449.7000000000001V750.3zM700 650V550H800V650H700zM400 650V550H500V650H400z","horizAdvX":"1200"},"message-3-line":{"path":["M0 0h24v24H0z","M2 8.994A5.99 5.99 0 0 1 8 3h8c3.313 0 6 2.695 6 5.994V21H8c-3.313 0-6-2.695-6-5.994V8.994zM20 19V8.994A4.004 4.004 0 0 0 16 5H8a3.99 3.99 0 0 0-4 3.994v6.012A4.004 4.004 0 0 0 8 19h12zm-6-8h2v2h-2v-2zm-6 0h2v2H8v-2z"],"unicode":"","glyph":"M100 750.3A299.50000000000006 299.50000000000006 0 0 0 400 1050H800C965.65 1050 1100 915.25 1100 750.3V150H400C234.35 150 100 284.75 100 449.7000000000001V750.3zM1000 250V750.3A200.2 200.2 0 0 1 800 950H400A199.5 199.5 0 0 1 200 750.3V449.7000000000001A200.2 200.2 0 0 1 400 250H1000zM700 650H800V550H700V650zM400 650H500V550H400V650z","horizAdvX":"1200"},"message-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM8 10v2h8v-2H8z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM400 700V600H800V700H400z","horizAdvX":"1200"},"message-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM8 10h8v2H8v-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM400 700H800V600H400V700z","horizAdvX":"1200"},"messenger-fill":{"path":["M0 0h24v24H0z","M12 2c5.634 0 10 4.127 10 9.7 0 5.573-4.366 9.7-10 9.7a10.894 10.894 0 0 1-2.895-.384.8.8 0 0 0-.534.039l-1.984.876a.8.8 0 0 1-1.123-.707l-.055-1.78a.797.797 0 0 0-.268-.57C3.195 17.135 2 14.617 2 11.7 2 6.127 6.367 2 12 2zM5.995 14.537c-.282.447.268.951.689.631l3.155-2.394a.6.6 0 0 1 .723 0l2.337 1.75a1.5 1.5 0 0 0 2.169-.4l2.937-4.66c.282-.448-.268-.952-.689-.633l-3.155 2.396a.6.6 0 0 1-.723 0l-2.337-1.75a1.5 1.5 0 0 0-2.169.4l-2.937 4.66z"],"unicode":"","glyph":"M600 1100C881.7 1100 1100 893.6500000000001 1100 615C1100 336.35 881.7 130 600 130A544.6999999999999 544.6999999999999 0 0 0 455.25 149.2000000000001A40.00000000000001 40.00000000000001 0 0 1 428.55 147.25L329.35 103.4500000000001A40.00000000000001 40.00000000000001 0 0 0 273.2 138.8L270.45 227.8000000000001A39.849999999999994 39.849999999999994 0 0 1 257.05 256.3000000000001C159.75 343.2499999999999 100 469.15 100 615C100 893.6500000000001 318.35 1100 600 1100zM299.75 473.15C285.65 450.8 313.15 425.5999999999999 334.2 441.5999999999999L491.95 561.3A30 30 0 0 0 528.1 561.3L644.95 473.8A75 75 0 0 1 753.4000000000001 493.8L900.2500000000001 726.8C914.3500000000003 749.2 886.8500000000001 774.4 865.8000000000002 758.45L708.0500000000002 638.65A30 30 0 0 0 671.9000000000001 638.65L555.0500000000002 726.15A75 75 0 0 1 446.6000000000002 706.15L299.7500000000001 473.15z","horizAdvX":"1200"},"messenger-line":{"path":["M0 0h24v24H0z","M7.764 19.225c.59-.26 1.25-.309 1.868-.139.77.21 1.565.316 2.368.314 4.585 0 8-3.287 8-7.7S16.585 4 12 4s-8 3.287-8 7.7c0 2.27.896 4.272 2.466 5.676a2.8 2.8 0 0 1 .942 2.006l.356-.157zM12 2c5.634 0 10 4.127 10 9.7 0 5.573-4.366 9.7-10 9.7a10.894 10.894 0 0 1-2.895-.384.8.8 0 0 0-.534.039l-1.984.876a.8.8 0 0 1-1.123-.707l-.055-1.78a.797.797 0 0 0-.268-.57C3.195 17.135 2 14.617 2 11.7 2 6.127 6.367 2 12 2zM5.995 14.537l2.937-4.66a1.5 1.5 0 0 1 2.17-.4l2.336 1.75a.6.6 0 0 0 .723 0l3.155-2.396c.421-.319.971.185.689.633l-2.937 4.66a1.5 1.5 0 0 1-2.17.4l-2.336-1.75a.6.6 0 0 0-.723 0l-3.155 2.395c-.421.319-.971-.185-.689-.633z"],"unicode":"","glyph":"M388.2 238.7499999999999C417.7000000000001 251.75 450.7 254.2 481.6 245.7C520.0999999999999 235.1999999999998 559.8499999999999 229.9 600 229.9999999999999C829.25 229.9999999999999 1000 394.3499999999998 1000 614.9999999999999S829.25 1000 600 1000S200 835.65 200 615C200 501.5 244.8 401.4 323.3 331.2000000000002A139.99999999999997 139.99999999999997 0 0 0 370.4000000000001 230.9000000000001L388.2 238.7500000000001zM600 1100C881.7 1100 1100 893.6500000000001 1100 615C1100 336.35 881.7 130 600 130A544.6999999999999 544.6999999999999 0 0 0 455.25 149.2000000000001A40.00000000000001 40.00000000000001 0 0 1 428.55 147.25L329.35 103.4500000000001A40.00000000000001 40.00000000000001 0 0 0 273.2 138.8L270.45 227.8000000000001A39.849999999999994 39.849999999999994 0 0 1 257.05 256.3000000000001C159.75 343.2499999999999 100 469.15 100 615C100 893.6500000000001 318.35 1100 600 1100zM299.75 473.15L446.6 706.15A75 75 0 0 0 555.1 726.15L671.9 638.65A30 30 0 0 1 708.0500000000001 638.65L865.8000000000002 758.45C886.8500000000001 774.4000000000001 914.3500000000003 749.2 900.2500000000001 726.8000000000001L753.4000000000002 493.8000000000001A75 75 0 0 0 644.9000000000002 473.8000000000001L528.1000000000001 561.3000000000001A30 30 0 0 1 491.9500000000001 561.3000000000001L334.2000000000002 441.5500000000001C313.1500000000002 425.6 285.6500000000002 450.8000000000001 299.7500000000001 473.2000000000002z","horizAdvX":"1200"},"meteor-fill":{"path":["M0 0h24v24H0z","M21 1v12A9 9 0 1 1 7.375 5.278L14 1.453v2.77L21 1zm-9 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10z"],"unicode":"","glyph":"M1050 1150V550A450 450 0 1 0 368.75 936.1L700 1127.35V988.85L1050 1150zM600 800A250 250 0 1 1 600 300A250 250 0 0 1 600 800z","horizAdvX":"1200"},"meteor-line":{"path":["M0 0h24v24H0z","M21 1v12A9 9 0 1 1 7.375 5.278L14 1.453v2.77L21 1zm-2 3.122l-7 3.224v-2.43L8.597 6.881a6.997 6.997 0 0 0-3.592 5.845L5 13a7 7 0 0 0 13.996.24L19 13V4.122zM12 8a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"],"unicode":"","glyph":"M1050 1150V550A450 450 0 1 0 368.75 936.1L700 1127.35V988.85L1050 1150zM950 993.9L600 832.7V954.2L429.85 855.95A349.85 349.85 0 0 1 250.25 563.7L250 550A350 350 0 0 1 949.8 538L950 550V993.9zM600 800A250 250 0 1 0 600 300A250 250 0 0 0 600 800zM600 700A150 150 0 1 1 600 400A150 150 0 0 1 600 700z","horizAdvX":"1200"},"mic-2-fill":{"path":["M0 0h24v24H0z","M12 1a5 5 0 0 1 5 5v6a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM2.192 13.962l1.962-.393a8.003 8.003 0 0 0 15.692 0l1.962.393C20.896 18.545 16.85 22 12 22s-8.896-3.455-9.808-8.038z"],"unicode":"","glyph":"M600 1150A250 250 0 0 0 850 900V600A250 250 0 0 0 350 600V900A250 250 0 0 0 600 1150zM109.6 501.9L207.7 521.5500000000001A400.15000000000003 400.15000000000003 0 0 1 992.3 521.5500000000001L1090.4 501.9C1044.8 272.7499999999999 842.5000000000001 100 600 100S155.2 272.7499999999999 109.6 501.9z","horizAdvX":"1200"},"mic-2-line":{"path":["M0 0h24v24H0z","M12 3a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3zm0-2a5 5 0 0 1 5 5v6a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM2.192 13.962l1.962-.393a8.003 8.003 0 0 0 15.692 0l1.962.393C20.896 18.545 16.85 22 12 22s-8.896-3.455-9.808-8.038z"],"unicode":"","glyph":"M600 1050A150 150 0 0 1 450 900V600A150 150 0 0 1 750 600V900A150 150 0 0 1 600 1050zM600 1150A250 250 0 0 0 850 900V600A250 250 0 0 0 350 600V900A250 250 0 0 0 600 1150zM109.6 501.9L207.7 521.5500000000001A400.15000000000003 400.15000000000003 0 0 1 992.3 521.5500000000001L1090.4 501.9C1044.8 272.7499999999999 842.5000000000001 100 600 100S155.2 272.7499999999999 109.6 501.9z","horizAdvX":"1200"},"mic-fill":{"path":["M0 0h24v24H0z","M12 1a5 5 0 0 1 5 5v4a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM3.055 11H5.07a7.002 7.002 0 0 0 13.858 0h2.016A9.004 9.004 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11z"],"unicode":"","glyph":"M600 1150A250 250 0 0 0 850 900V700A250 250 0 0 0 350 700V900A250 250 0 0 0 600 1150zM152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 650H1047.2A450.2 450.2 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650z","horizAdvX":"1200"},"mic-line":{"path":["M0 0h24v24H0z","M12 3a3 3 0 0 0-3 3v4a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3zm0-2a5 5 0 0 1 5 5v4a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM3.055 11H5.07a7.002 7.002 0 0 0 13.858 0h2.016A9.004 9.004 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11z"],"unicode":"","glyph":"M600 1050A150 150 0 0 1 450 900V700A150 150 0 0 1 750 700V900A150 150 0 0 1 600 1050zM600 1150A250 250 0 0 0 850 900V700A250 250 0 0 0 350 700V900A250 250 0 0 0 600 1150zM152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 650H1047.2A450.2 450.2 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650z","horizAdvX":"1200"},"mic-off-fill":{"path":["M0 0h24v24H0z","M16.425 17.839A8.941 8.941 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11H5.07a7.002 7.002 0 0 0 9.87 5.354l-1.551-1.55A5 5 0 0 1 7 10V8.414L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-4.767-4.768zm2.95-2.679l-1.443-1.442c.509-.81.856-1.73.997-2.718h2.016a8.95 8.95 0 0 1-1.57 4.16zm-2.91-2.909l-8.78-8.78A5 5 0 0 1 17 6l.001 4a4.98 4.98 0 0 1-.534 2.251z"],"unicode":"","glyph":"M821.25 308.0500000000001A447.05 447.05 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 747 382.3000000000001L669.4499999999999 459.8000000000001A250 250 0 0 0 350 700V779.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L821.25 308.0499999999999zM968.75 442.0000000000001L896.5999999999999 514.1000000000001C922.05 554.6000000000001 939.4 600.6000000000001 946.45 650.0000000000001H1047.25A447.49999999999994 447.49999999999994 0 0 0 968.75 442.0000000000001zM823.25 587.4500000000002L384.25 1026.45A250 250 0 0 0 850 900L850.0500000000001 700A249.00000000000003 249.00000000000003 0 0 0 823.3500000000001 587.45z","horizAdvX":"1200"},"mic-off-line":{"path":["M0 0h24v24H0z","M16.425 17.839A8.941 8.941 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11H5.07a7.002 7.002 0 0 0 9.87 5.354l-1.551-1.55A5 5 0 0 1 7 10V8.414L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-4.767-4.768zm-7.392-7.392l2.52 2.52a3.002 3.002 0 0 1-2.52-2.52zm10.342 4.713l-1.443-1.442c.509-.81.856-1.73.997-2.718h2.016a8.95 8.95 0 0 1-1.57 4.16zm-2.91-2.909l-1.548-1.548c.054-.226.083-.46.083-.703V6a3 3 0 0 0-5.818-1.032L7.686 3.471A5 5 0 0 1 17 6v4a4.98 4.98 0 0 1-.534 2.251z"],"unicode":"","glyph":"M821.25 308.0500000000001A447.05 447.05 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 747 382.3000000000001L669.4499999999999 459.8000000000001A250 250 0 0 0 350 700V779.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L821.25 308.0499999999999zM451.6500000000001 677.6500000000001L577.6500000000001 551.6500000000001A150.1 150.1 0 0 0 451.6500000000001 677.6500000000001zM968.75 442L896.5999999999999 514.1C922.05 554.6 939.4 600.6 946.45 650H1047.25A447.49999999999994 447.49999999999994 0 0 0 968.75 442zM823.25 587.4499999999999L745.85 664.8499999999999C748.55 676.15 750 687.85 750 699.9999999999999V900A150 150 0 0 1 459.1 951.6L384.3 1026.45A250 250 0 0 0 850 900V700A249.00000000000003 249.00000000000003 0 0 0 823.3000000000001 587.45z","horizAdvX":"1200"},"mickey-fill":{"path":["M0 0h24v24H0z","M18.5 2a4.5 4.5 0 0 1 .883 8.913 8 8 0 1 1-14.765-.001A4.499 4.499 0 0 1 5.5 2a4.5 4.5 0 0 1 4.493 4.254A7.998 7.998 0 0 1 12 6c.693 0 1.365.088 2.006.254A4.5 4.5 0 0 1 18.5 2z"],"unicode":"","glyph":"M925 1100A225 225 0 0 0 969.15 654.35A400 400 0 1 0 230.8999999999999 654.4A224.94999999999996 224.94999999999996 0 0 0 275 1100A225 225 0 0 0 499.65 887.3A399.90000000000003 399.90000000000003 0 0 0 600 900C634.65 900 668.25 895.6 700.3 887.3A225 225 0 0 0 925 1100z","horizAdvX":"1200"},"mickey-line":{"path":["M0 0h24v24H0z","M18.5 2a4.5 4.5 0 0 1 .883 8.913l.011.027a8 8 0 0 1-7.145 11.056L12 22a8 8 0 0 1-7.382-11.088A4.499 4.499 0 0 1 5.5 2a4.5 4.5 0 0 1 4.493 4.254l.073-.019A8.018 8.018 0 0 1 12 6l.25.004a8 8 0 0 1 1.756.25A4.5 4.5 0 0 1 18.5 2zM12 8a6 6 0 1 0 0 12 6 6 0 0 0 0-12zM5.5 4a2.5 2.5 0 0 0 0 5l.164-.005.103-.01A8.044 8.044 0 0 1 7.594 7.32l.33-.206A2.5 2.5 0 0 0 5.5 4zm13 0a2.5 2.5 0 0 0-2.466 2.916l.043.2.028.016a8.04 8.04 0 0 1 2.128 1.852A2.5 2.5 0 1 0 18.5 4z"],"unicode":"","glyph":"M925 1100A225 225 0 0 0 969.15 654.35L969.7 653A400 400 0 0 0 612.4499999999999 100.2000000000001L600 100A400 400 0 0 0 230.9 654.4A224.94999999999996 224.94999999999996 0 0 0 275 1100A225 225 0 0 0 499.65 887.3L503.3 888.25A400.90000000000003 400.90000000000003 0 0 0 600 900L612.5 899.8A400 400 0 0 0 700.3 887.3A225 225 0 0 0 925 1100zM600 800A300 300 0 1 1 600 200A300 300 0 0 1 600 800zM275 1000A125 125 0 0 1 275 750L283.2 750.25L288.35 750.75A402.2 402.2 0 0 0 379.7 834L396.2000000000001 844.3A125 125 0 0 1 275 1000zM925 1000A125 125 0 0 1 801.6999999999999 854.2L803.8499999999999 844.2L805.2499999999999 843.4A401.99999999999994 401.99999999999994 0 0 0 911.6499999999997 750.8A125 125 0 1 1 925 1000z","horizAdvX":"1200"},"microscope-fill":{"path":["M0 0H24V24H0z","M13.196 2.268l3.25 5.63c.276.477.112 1.089-.366 1.365l-1.3.75 1.001 1.732-1.732 1-1-1.733-1.299.751c-.478.276-1.09.112-1.366-.366L8.546 8.215C6.494 8.837 5 10.745 5 13c0 .625.115 1.224.324 1.776C6.1 14.284 7.016 14 8 14c1.684 0 3.174.833 4.08 2.109l7.688-4.439 1 1.732-7.878 4.549c.072.338.11.69.11 1.049 0 .343-.034.677-.1 1H21v2l-17 .001c-.628-.836-1-1.875-1-3.001 0-1.007.298-1.945.81-2.73C3.293 15.295 3 14.182 3 13c0-2.995 1.881-5.551 4.527-6.55l-.393-.682c-.552-.957-.225-2.18.732-2.732l2.598-1.5c.957-.552 2.18-.225 2.732.732z"],"unicode":"","glyph":"M659.8 1086.6L822.3 805.1C836.0999999999999 781.25 827.8999999999999 750.65 803.9999999999999 736.85L738.9999999999999 699.35L789.0499999999998 612.75L702.4499999999999 562.75L652.4499999999999 649.4000000000001L587.4999999999999 611.8500000000001C563.5999999999999 598.0500000000001 532.9999999999999 606.2500000000001 519.1999999999999 630.1500000000001L427.3 789.25C324.7 758.1500000000001 250 662.75 250 550C250 518.75 255.75 488.8 266.2 461.2C305 485.8 350.8 500 400 500C484.2 500 558.6999999999999 458.35 604 394.55L988.4 616.4999999999999L1038.4 529.9L644.5 302.45C648.1 285.55 650 267.95 650 250C650 232.85 648.3 216.15 645 200H1050V100L200 99.9500000000001C168.6 141.7499999999998 150 193.6999999999999 150 250C150 300.35 164.9 347.25 190.5 386.5C164.65 435.25 150 490.9 150 550C150 699.75 244.05 827.55 376.35 877.5L356.7000000000001 911.6C329.1 959.45 345.4500000000001 1020.6 393.3 1048.2L523.2 1123.2C571.0500000000001 1150.8 632.2 1134.45 659.8000000000001 1086.6z","horizAdvX":"1200"},"microscope-line":{"path":["M0 0H24V24H0z","M13.196 2.268l3.25 5.63c.276.477.112 1.089-.366 1.365l-1.3.75 1.001 1.732-1.732 1-1-1.733-1.299.751c-.478.276-1.09.112-1.366-.366L8.546 8.215C6.494 8.837 5 10.745 5 13c0 .625.115 1.224.324 1.776C6.1 14.284 7.016 14 8 14c1.684 0 3.174.833 4.08 2.109l7.688-4.439 1 1.732-7.878 4.549c.072.338.11.69.11 1.049 0 .343-.034.677-.1 1H21v2l-17 .001c-.628-.836-1-1.875-1-3.001 0-1.007.298-1.945.81-2.73C3.293 15.295 3 14.182 3 13c0-2.995 1.881-5.551 4.527-6.55l-.393-.682c-.552-.957-.225-2.18.732-2.732l2.598-1.5c.957-.552 2.18-.225 2.732.732zM8 16c-1.657 0-3 1.343-3 3 0 .35.06.687.17 1h5.66c.11-.313.17-.65.17-1 0-1.657-1.343-3-3-3zm3.464-12.732l-2.598 1.5 2.75 4.763 2.598-1.5-2.75-4.763z"],"unicode":"","glyph":"M659.8 1086.6L822.3 805.1C836.0999999999999 781.25 827.8999999999999 750.65 803.9999999999999 736.85L738.9999999999999 699.35L789.0499999999998 612.75L702.4499999999999 562.75L652.4499999999999 649.4000000000001L587.4999999999999 611.8500000000001C563.5999999999999 598.0500000000001 532.9999999999999 606.2500000000001 519.1999999999999 630.1500000000001L427.3 789.25C324.7 758.1500000000001 250 662.75 250 550C250 518.75 255.75 488.8 266.2 461.2C305 485.8 350.8 500 400 500C484.2 500 558.6999999999999 458.35 604 394.55L988.4 616.4999999999999L1038.4 529.9L644.5 302.45C648.1 285.55 650 267.95 650 250C650 232.85 648.3 216.15 645 200H1050V100L200 99.9500000000001C168.6 141.7499999999998 150 193.6999999999999 150 250C150 300.35 164.9 347.25 190.5 386.5C164.65 435.25 150 490.9 150 550C150 699.75 244.05 827.55 376.35 877.5L356.7000000000001 911.6C329.1 959.45 345.4500000000001 1020.6 393.3 1048.2L523.2 1123.2C571.0500000000001 1150.8 632.2 1134.45 659.8000000000001 1086.6zM400 400C317.15 400 250 332.85 250 250C250 232.4999999999999 253 215.65 258.5 200H541.5C547 215.65 550 232.4999999999999 550 250C550 332.85 482.85 400 400 400zM573.2 1036.6L443.3 961.6L580.8 723.45L710.6999999999999 798.45L573.1999999999999 1036.6z","horizAdvX":"1200"},"microsoft-fill":{"path":["M0 0h24v24H0z","M11.5 3v8.5H3V3h8.5zm0 18H3v-8.5h8.5V21zm1-18H21v8.5h-8.5V3zm8.5 9.5V21h-8.5v-8.5H21z"],"unicode":"","glyph":"M575 1050V625H150V1050H575zM575 150H150V575H575V150zM625 1050H1050V625H625V1050zM1050 575V150H625V575H1050z","horizAdvX":"1200"},"microsoft-line":{"path":["M0 0h24v24H0z","M11 5H5v6h6V5zm2 0v6h6V5h-6zm6 8h-6v6h6v-6zm-8 6v-6H5v6h6zM3 3h18v18H3V3z"],"unicode":"","glyph":"M550 950H250V650H550V950zM650 950V650H950V950H650zM950 550H650V250H950V550zM550 250V550H250V250H550zM150 1050H1050V150H150V1050z","horizAdvX":"1200"},"mind-map":{"path":["M0 0H24V24H0z","M18 3c1.657 0 3 1.343 3 3s-1.343 3-3 3h-3c-1.306 0-2.417-.834-2.829-2H11c-1.1 0-2 .9-2 2v.171c1.166.412 2 1.523 2 2.829 0 1.306-.834 2.417-2 2.829V15c0 1.1.9 2 2 2h1.17c.412-1.165 1.524-2 2.83-2h3c1.657 0 3 1.343 3 3s-1.343 3-3 3h-3c-1.306 0-2.417-.834-2.829-2H11c-2.21 0-4-1.79-4-4H5c-1.657 0-3-1.343-3-3s1.343-3 3-3h2c0-2.21 1.79-4 4-4h1.17c.412-1.165 1.524-2 2.83-2h3zm0 14h-3c-.552 0-1 .448-1 1s.448 1 1 1h3c.552 0 1-.448 1-1s-.448-1-1-1zM8 11H5c-.552 0-1 .448-1 1s.448 1 1 1h3c.552 0 1-.448 1-1s-.448-1-1-1zm10-6h-3c-.552 0-1 .448-1 1s.448 1 1 1h3c.552 0 1-.448 1-1s-.448-1-1-1z"],"unicode":"","glyph":"M900 1050C982.85 1050 1050 982.85 1050 900S982.85 750 900 750H750C684.6999999999999 750 629.15 791.7 608.55 850H550C495 850 450 805 450 750V741.45C508.3 720.8499999999999 550 665.3000000000001 550 600C550 534.6999999999999 508.3 479.15 450 458.55V450C450 394.9999999999999 495 350 550 350H608.5C629.1 408.25 684.6999999999999 450 750 450H900C982.85 450 1050 382.85 1050 300S982.85 150 900 150H750C684.6999999999999 150 629.15 191.6999999999999 608.55 250H550C439.5 250 350 339.5 350 450H250C167.15 450 100 517.15 100 600S167.15 750 250 750H350C350 860.5 439.5 950 550 950H608.5C629.1 1008.25 684.6999999999999 1050 750 1050H900zM900 350H750C722.4 350 700 327.6 700 300S722.4 250 750 250H900C927.6 250 950 272.4 950 300S927.6 350 900 350zM400 650H250C222.4 650 200 627.6 200 600S222.4 550 250 550H400C427.6 550 450 572.4 450 600S427.6 650 400 650zM900 950H750C722.4 950 700 927.6 700 900S722.4 850 750 850H900C927.6 850 950 872.4000000000001 950 900S927.6 950 900 950z","horizAdvX":"1200"},"mini-program-fill":{"path":["M0 0h24v24H0z","M15.84 12.691l-.067.02a1.522 1.522 0 0 1-.414.062c-.61 0-.954-.412-.77-.921.136-.372.491-.686.925-.831.672-.245 1.142-.804 1.142-1.455 0-.877-.853-1.587-1.905-1.587s-1.904.71-1.904 1.587v4.868c0 1.17-.679 2.197-1.694 2.778a3.829 3.829 0 0 1-1.904.502c-1.984 0-3.598-1.471-3.598-3.28 0-.576.164-1.117.451-1.587.444-.73 1.184-1.287 2.07-1.541a1.55 1.55 0 0 1 .46-.073c.612 0 .958.414.773.924-.126.347-.466.645-.861.803a2.162 2.162 0 0 0-.139.052c-.628.26-1.061.798-1.061 1.422 0 .877.853 1.587 1.905 1.587s1.904-.71 1.904-1.587V9.566c0-1.17.679-2.197 1.694-2.778a3.829 3.829 0 0 1 1.904-.502c1.984 0 3.598 1.471 3.598 3.28 0 .576-.164 1.117-.451 1.587-.442.726-1.178 1.282-2.058 1.538zM2 12c0 5.523 4.477 10 10 10s10-4.477 10-10S17.523 2 12 2 2 6.477 2 12z"],"unicode":"","glyph":"M792 565.4499999999999L788.65 564.4499999999999A76.1 76.1 0 0 0 767.95 561.35C737.45 561.35 720.25 581.95 729.45 607.4C736.25 626 754 641.6999999999999 775.7 648.9499999999999C809.3 661.1999999999999 832.8000000000001 689.15 832.8000000000001 721.7C832.8000000000001 765.55 790.1500000000001 801.05 737.5500000000002 801.05S642.3500000000001 765.55 642.3500000000001 721.7V478.3C642.3500000000001 419.8 608.4000000000001 368.4500000000001 557.6500000000001 339.4A191.45000000000002 191.45000000000002 0 0 0 462.4500000000001 314.3000000000001C363.2500000000001 314.3000000000001 282.5500000000002 387.85 282.5500000000002 478.3000000000001C282.5500000000002 507.1 290.7500000000001 534.15 305.1000000000001 557.65C327.3000000000002 594.1500000000001 364.3000000000002 622.0000000000001 408.6000000000002 634.7A77.5 77.5 0 0 0 431.6000000000002 638.35C462.2000000000002 638.35 479.5000000000002 617.6500000000001 470.2500000000002 592.1500000000001C463.9500000000002 574.8000000000001 446.9500000000002 559.9000000000001 427.2000000000001 552A108.1 108.1 0 0 1 420.2500000000002 549.4000000000001C388.8500000000002 536.4000000000001 367.2000000000002 509.5000000000001 367.2000000000002 478.3000000000001C367.2000000000002 434.4500000000001 409.8500000000002 398.95 462.4500000000001 398.95S557.6500000000001 434.4500000000001 557.6500000000001 478.3V721.7C557.6500000000001 780.1999999999999 591.6000000000001 831.55 642.35 860.5999999999999A191.45000000000002 191.45000000000002 0 0 0 737.5500000000001 885.7C836.75 885.7 917.45 812.15 917.45 721.7C917.45 692.8999999999999 909.2499999999998 665.85 894.9 642.35C872.8 606.05 836 578.25 792 565.4499999999999zM100 600C100 323.85 323.85 100 600 100S1100 323.85 1100 600S876.15 1100 600 1100S100 876.15 100 600z","horizAdvX":"1200"},"mini-program-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-6a3.5 3.5 0 1 1-4.977-3.174 1 1 0 1 1 .845 1.813A1.5 1.5 0 1 0 11 14v-4a3.5 3.5 0 1 1 4.977 3.174 1 1 0 0 1-.845-1.813A1.5 1.5 0 1 0 13 10v4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 500A175 175 0 1 0 401.15 658.6999999999999A50 50 0 1 0 443.4000000000001 568.05A75 75 0 1 1 550 500V700A175 175 0 1 0 798.85 541.3000000000001A50 50 0 0 0 756.6 631.95A75 75 0 1 1 650 700V500z","horizAdvX":"1200"},"mist-fill":{"path":["M0 0h24v24H0z","M4 4h4v2H4V4zm12 15h4v2h-4v-2zM2 9h10v2H2V9zm12 0h6v2h-6V9zM4 14h6v2H4v-2zm8 0h10v2H12v-2zM10 4h12v2H10V4zM2 19h12v2H2v-2z"],"unicode":"","glyph":"M200 1000H400V900H200V1000zM800 250H1000V150H800V250zM100 750H600V650H100V750zM700 750H1000V650H700V750zM200 500H500V400H200V500zM600 500H1100V400H600V500zM500 1000H1100V900H500V1000zM100 250H700V150H100V250z","horizAdvX":"1200"},"mist-line":{"path":["M0 0h24v24H0z","M4 4h4v2H4V4zm12 15h4v2h-4v-2zM2 9h5v2H2V9zm7 0h3v2H9V9zm5 0h6v2h-6V9zM4 14h6v2H4v-2zm8 0h3v2h-3v-2zm5 0h5v2h-5v-2zM10 4h12v2H10V4zM2 19h12v2H2v-2z"],"unicode":"","glyph":"M200 1000H400V900H200V1000zM800 250H1000V150H800V250zM100 750H350V650H100V750zM450 750H600V650H450V750zM700 750H1000V650H700V750zM200 500H500V400H200V500zM600 500H750V400H600V500zM850 500H1100V400H850V500zM500 1000H1100V900H500V1000zM100 250H700V150H100V250z","horizAdvX":"1200"},"money-cny-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm10 10v-1h3v-2h-2.586l2.122-2.121-1.415-1.415L12 8.586 9.879 6.464 8.464 7.88 10.586 10H8v2h3v1H8v2h3v2h2v-2h3v-2h-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM650 550V600H800V700H670.6999999999999L776.8 806.05L706.05 876.8L600 770.7L493.95 876.8L423.2000000000001 806L529.3000000000001 700H400V600H550V550H400V450H550V350H650V450H800V550H650z","horizAdvX":"1200"},"money-cny-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm9 8h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 7.879 9.88 6.464 12 8.586l2.121-2.122 1.415 1.415L13.414 10H16v2h-3v1z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM650 550H800V450H650V350H550V450H400V550H550V600H400V700H529.3000000000001L423.2000000000001 806.05L494.0000000000001 876.8L600 770.7L706.0500000000001 876.8L776.8000000000001 806.05L670.6999999999999 700H800V600H650V550z","horizAdvX":"1200"},"money-cny-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1-9v-1h3v-2h-2.586l2.122-2.121-1.415-1.415L12 8.586 9.879 6.464 8.464 7.88 10.586 10H8v2h3v1H8v2h3v2h2v-2h3v-2h-3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM650 550V600H800V700H670.6999999999999L776.8 806.05L706.05 876.8L600 770.7L493.95 876.8L423.2000000000001 806L529.3000000000001 700H400V600H550V550H400V450H550V350H650V450H800V550H650z","horizAdvX":"1200"},"money-cny-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-7h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 7.879 9.88 6.464 12 8.586l2.121-2.122 1.415 1.415L13.414 10H16v2h-3v1z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 550H800V450H650V350H550V450H400V550H550V600H400V700H529.3000000000001L423.2000000000001 806.05L494.0000000000001 876.8L600 770.7L706.0500000000001 876.8L776.8000000000001 806.05L670.6999999999999 700H800V600H650V550z","horizAdvX":"1200"},"money-dollar-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5.5 11v2H11v2h2v-2h1a2.5 2.5 0 1 0 0-5h-4a.5.5 0 1 1 0-1h5.5V8H13V6h-2v2h-1a2.5 2.5 0 0 0 0 5h4a.5.5 0 1 1 0 1H8.5z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM425 500V400H550V300H650V400H700A125 125 0 1 1 700 650H500A25 25 0 1 0 500 700H775V800H650V900H550V800H500A125 125 0 0 1 500 550H700A25 25 0 1 0 700 500H425z","horizAdvX":"1200"},"money-dollar-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm4.5 9H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V6h2v2h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V900H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500z","horizAdvX":"1200"},"money-dollar-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.5-8v2H11v2h2v-2h1a2.5 2.5 0 1 0 0-5h-4a.5.5 0 1 1 0-1h5.5V8H13V6h-2v2h-1a2.5 2.5 0 0 0 0 5h4a.5.5 0 1 1 0 1H8.5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM425 500V400H550V300H650V400H700A125 125 0 1 1 700 650H500A25 25 0 1 0 500 700H775V800H650V900H550V800H500A125 125 0 0 1 500 550H700A25 25 0 1 0 700 500H425z","horizAdvX":"1200"},"money-dollar-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-3.5-6H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V6h2v2h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V900H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500z","horizAdvX":"1200"},"money-euro-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7.05 8a2.5 2.5 0 0 1 4.064-1.41l1.701-1.133A4.5 4.5 0 0 0 8.028 11H7v2h1.027a4.5 4.5 0 0 0 7.788 2.543l-1.701-1.134A2.5 2.5 0 0 1 10.05 13l4.95.001v-2h-4.95z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM502.5000000000001 650A125 125 0 0 0 705.7 720.5L790.7500000000001 777.15A225 225 0 0 1 401.4000000000001 650H350V550H401.35A225 225 0 0 1 790.75 422.85L705.6999999999999 479.5500000000001A125 125 0 0 0 502.5000000000001 550L750 549.95V649.95H502.5000000000001z","horizAdvX":"1200"},"money-euro-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm6.05 6H15v2h-4.95a2.5 2.5 0 0 0 4.064 1.41l1.7 1.133A4.5 4.5 0 0 1 8.028 13H7v-2h1.027a4.5 4.5 0 0 1 7.788-2.543L14.114 9.59A2.5 2.5 0 0 0 10.05 11z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM502.5000000000001 650H750V550H502.5000000000001A125 125 0 0 1 705.7 479.5L790.7 422.85A225 225 0 0 0 401.4000000000001 550H350V650H401.35A225 225 0 0 0 790.75 777.15L705.7 720.5A125 125 0 0 1 502.5000000000001 650z","horizAdvX":"1200"},"money-euro-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1.95-11a2.5 2.5 0 0 1 4.064-1.41l1.701-1.133A4.5 4.5 0 0 0 8.028 11H7v2h1.027a4.5 4.5 0 0 0 7.788 2.543l-1.701-1.134A2.5 2.5 0 0 1 10.05 13l4.95.001v-2h-4.95z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM502.5000000000001 650A125 125 0 0 0 705.7 720.5L790.7500000000001 777.15A225 225 0 0 1 401.4000000000001 650H350V550H401.35A225 225 0 0 1 790.75 422.85L705.6999999999999 479.5500000000001A125 125 0 0 0 502.5000000000001 550L750 549.95V649.95H502.5000000000001z","horizAdvX":"1200"},"money-euro-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1.95-9H15v2h-4.95a2.5 2.5 0 0 0 4.064 1.41l1.7 1.133A4.5 4.5 0 0 1 8.028 13H7v-2h1.027a4.5 4.5 0 0 1 7.788-2.543L14.114 9.59A2.5 2.5 0 0 0 10.05 11z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM502.5000000000001 650H750V550H502.5000000000001A125 125 0 0 1 705.7 479.5L790.7 422.85A225 225 0 0 0 401.4000000000001 550H350V650H401.35A225 225 0 0 0 790.75 777.15L705.7 720.5A125 125 0 0 1 502.5000000000001 650z","horizAdvX":"1200"},"money-pound-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 10v2H8v2h8v-2h-5v-2h3v-2h-3v-1a1.5 1.5 0 0 1 2.76-.815l1.986-.496A3.501 3.501 0 0 0 9 10v1H8v2h1z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 550V450H400V350H800V450H550V550H700V650H550V700A75 75 0 0 0 688 740.75L787.3000000000001 765.55A175.04999999999998 175.04999999999998 0 0 1 450 700V650H400V550H450z","horizAdvX":"1200"},"money-pound-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm5 8H8v-2h1v-1a3.5 3.5 0 0 1 6.746-1.311l-1.986.496A1.499 1.499 0 0 0 11 10v1h3v2h-3v2h5v2H8v-2h1v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM450 550H400V650H450V700A175 175 0 0 0 787.3000000000001 765.55L688 740.75A74.95000000000002 74.95000000000002 0 0 1 550 700V650H700V550H550V450H800V350H400V450H450V550z","horizAdvX":"1200"},"money-pound-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3-9v2H8v2h8v-2h-5v-2h3v-2h-3v-1a1.5 1.5 0 0 1 2.76-.815l1.986-.496A3.501 3.501 0 0 0 9 10v1H8v2h1z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM450 550V450H400V350H800V450H550V550H700V650H550V700A75 75 0 0 0 688 740.75L787.3000000000001 765.55A175.04999999999998 175.04999999999998 0 0 1 450 700V650H400V550H450z","horizAdvX":"1200"},"money-pound-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-3-7H8v-2h1v-1a3.5 3.5 0 0 1 6.746-1.311l-1.986.496A1.499 1.499 0 0 0 11 10v1h3v2h-3v2h5v2H8v-2h1v-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 550H400V650H450V700A175 175 0 0 0 787.3000000000001 765.55L688 740.75A74.95000000000002 74.95000000000002 0 0 1 550 700V650H700V550H550V450H800V350H400V450H450V550z","horizAdvX":"1200"},"moon-clear-fill":{"path":["M0 0h24v24H0z","M9.822 2.238a9 9 0 0 0 11.94 11.94C20.768 18.654 16.775 22 12 22 6.477 22 2 17.523 2 12c0-4.775 3.346-8.768 7.822-9.762zm8.342.053L19 2.5v1l-.836.209a2 2 0 0 0-1.455 1.455L16.5 6h-1l-.209-.836a2 2 0 0 0-1.455-1.455L13 3.5v-1l.836-.209A2 2 0 0 0 15.29.836L15.5 0h1l.209.836a2 2 0 0 0 1.455 1.455zm5 5L24 7.5v1l-.836.209a2 2 0 0 0-1.455 1.455L21.5 11h-1l-.209-.836a2 2 0 0 0-1.455-1.455L18 8.5v-1l.836-.209a2 2 0 0 0 1.455-1.455L20.5 5h1l.209.836a2 2 0 0 0 1.455 1.455z"],"unicode":"","glyph":"M491.1 1088.1A450 450 0 0 1 1088.1 491.1C1038.4 267.3 838.7499999999999 100 600 100C323.85 100 100 323.85 100 600C100 838.75 267.3 1038.4 491.1 1088.1zM908.2 1085.45L950 1075V1025L908.2 1014.55A100 100 0 0 1 835.4500000000002 941.8L825 900H775L764.5500000000001 941.8A100 100 0 0 1 691.8000000000001 1014.55L650 1025V1075L691.8000000000001 1085.45A100 100 0 0 1 764.5 1158.2L775 1200H825L835.4499999999999 1158.2A100 100 0 0 1 908.2 1085.45zM1158.2 835.45L1200 825V775L1158.2 764.55A100 100 0 0 1 1085.4500000000003 691.8L1075 650H1025L1014.55 691.8A100 100 0 0 1 941.8 764.55L900 775V825L941.8 835.45A100 100 0 0 1 1014.5499999999998 908.2L1025 950H1075L1085.45 908.2A100 100 0 0 1 1158.2 835.45z","horizAdvX":"1200"},"moon-clear-line":{"path":["M0 0h24v24H0z","M10 6a8 8 0 0 0 11.955 6.956C21.474 18.03 17.2 22 12 22 6.477 22 2 17.523 2 12c0-5.2 3.97-9.474 9.044-9.955A7.963 7.963 0 0 0 10 6zm-6 6a8 8 0 0 0 8 8 8.006 8.006 0 0 0 6.957-4.045c-.316.03-.636.045-.957.045-5.523 0-10-4.477-10-10 0-.321.015-.64.045-.957A8.006 8.006 0 0 0 4 12zm14.164-9.709L19 2.5v1l-.836.209a2 2 0 0 0-1.455 1.455L16.5 6h-1l-.209-.836a2 2 0 0 0-1.455-1.455L13 3.5v-1l.836-.209A2 2 0 0 0 15.29.836L15.5 0h1l.209.836a2 2 0 0 0 1.455 1.455zm5 5L24 7.5v1l-.836.209a2 2 0 0 0-1.455 1.455L21.5 11h-1l-.209-.836a2 2 0 0 0-1.455-1.455L18 8.5v-1l.836-.209a2 2 0 0 0 1.455-1.455L20.5 5h1l.209.836a2 2 0 0 0 1.455 1.455z"],"unicode":"","glyph":"M500 900A400 400 0 0 1 1097.75 552.2C1073.7 298.5 860 100 600 100C323.85 100 100 323.85 100 600C100 860 298.5000000000001 1073.7 552.2 1097.75A398.15 398.15 0 0 1 500 900zM200 600A400 400 0 0 1 600 200A400.3 400.3 0 0 1 947.85 402.25C932.05 400.75 916.05 400 900 400C623.85 400 400 623.85 400 900C400 916.05 400.75 932 402.25 947.85A400.3 400.3 0 0 1 200 600zM908.2 1085.45L950 1075V1025L908.2 1014.55A100 100 0 0 1 835.4500000000002 941.8L825 900H775L764.5500000000001 941.8A100 100 0 0 1 691.8000000000001 1014.55L650 1025V1075L691.8000000000001 1085.45A100 100 0 0 1 764.5 1158.2L775 1200H825L835.4499999999999 1158.2A100 100 0 0 1 908.2 1085.45zM1158.2 835.45L1200 825V775L1158.2 764.55A100 100 0 0 1 1085.4500000000003 691.8L1075 650H1025L1014.55 691.8A100 100 0 0 1 941.8 764.55L900 775V825L941.8 835.45A100 100 0 0 1 1014.5499999999998 908.2L1025 950H1075L1085.45 908.2A100 100 0 0 1 1158.2 835.45z","horizAdvX":"1200"},"moon-cloudy-fill":{"path":["M0 0h24v24H0z","M8.67 5.007a7 7 0 0 1 7.55-3.901 4.5 4.5 0 0 0 5.674 5.674c.07.396.106.804.106 1.22a6.969 6.969 0 0 1-.865 3.373A5.5 5.5 0 0 1 17.5 21H9a8 8 0 0 1-.33-15.993zm2.177.207a8.016 8.016 0 0 1 5.61 4.885 5.529 5.529 0 0 1 2.96.245c.226-.425.393-.885.488-1.37a6.502 6.502 0 0 1-5.878-5.88 5.003 5.003 0 0 0-3.18 2.12z"],"unicode":"","glyph":"M433.5 949.65A350 350 0 0 0 811 1144.7A225 225 0 0 1 1094.6999999999998 861C1098.1999999999998 841.2 1100 820.8 1100 800A348.45 348.45 0 0 0 1056.75 631.3499999999999A275 275 0 0 0 875 150H450A400 400 0 0 0 433.5 949.65zM542.35 939.3A400.8 400.8 0 0 0 822.85 695.05A276.45000000000005 276.45000000000005 0 0 0 970.8500000000003 682.8000000000001C982.15 704.0500000000001 990.5000000000002 727.05 995.25 751.3A325.1 325.1 0 0 0 701.35 1045.3A250.14999999999998 250.14999999999998 0 0 1 542.35 939.3z","horizAdvX":"1200"},"moon-cloudy-line":{"path":["M0 0h24v24H0z","M8.67 5.007a7 7 0 0 1 7.55-3.901 4.5 4.5 0 0 0 5.674 5.674c.07.396.106.804.106 1.22a6.969 6.969 0 0 1-.865 3.373A5.5 5.5 0 0 1 17.5 21H9a8 8 0 0 1-.33-15.993zm2.177.207a8.016 8.016 0 0 1 5.61 4.885 5.529 5.529 0 0 1 2.96.245c.226-.425.393-.885.488-1.37a6.502 6.502 0 0 1-5.878-5.88 5.003 5.003 0 0 0-3.18 2.12zM17.5 19a3.5 3.5 0 1 0-2.5-5.95V13a6 6 0 1 0-6 6h8.5z"],"unicode":"","glyph":"M433.5 949.65A350 350 0 0 0 811 1144.7A225 225 0 0 1 1094.6999999999998 861C1098.1999999999998 841.2 1100 820.8 1100 800A348.45 348.45 0 0 0 1056.75 631.3499999999999A275 275 0 0 0 875 150H450A400 400 0 0 0 433.5 949.65zM542.35 939.3A400.8 400.8 0 0 0 822.85 695.05A276.45000000000005 276.45000000000005 0 0 0 970.8500000000003 682.8000000000001C982.15 704.0500000000001 990.5000000000002 727.05 995.25 751.3A325.1 325.1 0 0 0 701.35 1045.3A250.14999999999998 250.14999999999998 0 0 1 542.35 939.3zM875 250A175 175 0 1 1 750 547.5V550A300 300 0 1 1 450 250H875z","horizAdvX":"1200"},"moon-fill":{"path":["M0 0h24v24H0z","M11.38 2.019a7.5 7.5 0 1 0 10.6 10.6C21.662 17.854 17.316 22 12.001 22 6.477 22 2 17.523 2 12c0-5.315 4.146-9.661 9.38-9.981z"],"unicode":"","glyph":"M569 1099.05A375 375 0 1 1 1099 569.05C1083.1 307.3000000000001 865.8 100 600.05 100C323.85 100 100 323.85 100 600C100 865.75 307.3 1083.05 569 1099.05z","horizAdvX":"1200"},"moon-foggy-fill":{"path":["M0 0h24v24H0z","M16 20.334V18h-2v-4H3.332A9.511 9.511 0 0 1 3 11.5c0-4.56 3.213-8.37 7.5-9.289a8 8 0 0 0 11.49 9.724 9.505 9.505 0 0 1-5.99 8.4zM7 20h7v2H7v-2zm-5-4h10v2H2v-2z"],"unicode":"","glyph":"M800 183.3000000000001V300H700V500H166.6A475.54999999999995 475.54999999999995 0 0 0 150 625C150 853 310.65 1043.5 525 1089.45A400 400 0 0 1 1099.5 603.25A475.25000000000006 475.25000000000006 0 0 0 800 183.25zM350 200H700V100H350V200zM100 400H600V300H100V400z","horizAdvX":"1200"},"moon-foggy-line":{"path":["M0 0h24v24H0z","M16 20.334v-2.199a7.522 7.522 0 0 0 3.623-4.281 9 9 0 0 1-10.622-8.99A7.518 7.518 0 0 0 5.151 10H3.117a9.505 9.505 0 0 1 8.538-7.963 7 7 0 0 0 10.316 8.728A9.503 9.503 0 0 1 16 20.335zM7 20h7v2H7v-2zm-3-8h6v2H4v-2zm-2 4h10v2H2v-2z"],"unicode":"","glyph":"M800 183.3000000000001V293.2500000000001A376.1 376.1 0 0 1 981.15 507.3000000000001A450 450 0 0 0 450.0500000000001 956.8A375.9 375.9 0 0 1 257.55 700H155.85A475.25000000000006 475.25000000000006 0 0 0 582.75 1098.15A350 350 0 0 1 1098.5500000000002 661.75A475.15000000000003 475.15000000000003 0 0 0 800 183.25zM350 200H700V100H350V200zM200 600H500V500H200V600zM100 400H600V300H100V400z","horizAdvX":"1200"},"moon-line":{"path":["M0 0h24v24H0z","M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"],"unicode":"","glyph":"M500 850A350 350 0 0 1 1100 605V600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100H605A348.95 348.95 0 0 1 500 850zM200 600A400 400 0 0 1 953.1 411.9A450 450 0 0 0 411.9 953.1A399.94999999999993 399.94999999999993 0 0 1 200 600z","horizAdvX":"1200"},"more-2-fill":{"path":["M0 0h24v24H0z","M12 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M600 1050C545 1050 500 1005 500 950S545 850 600 850S700 895 700 950S655 1050 600 1050zM600 350C545 350 500 305.0000000000001 500 250S545 150 600 150S700 194.9999999999999 700 250S655 350 600 350zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"more-2-line":{"path":["M0 0h24v24H0z","M12 3c-.825 0-1.5.675-1.5 1.5S11.175 6 12 6s1.5-.675 1.5-1.5S12.825 3 12 3zm0 15c-.825 0-1.5.675-1.5 1.5S11.175 21 12 21s1.5-.675 1.5-1.5S12.825 18 12 18zm0-7.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5z"],"unicode":"","glyph":"M600 1050C558.75 1050 525 1016.25 525 975S558.75 900 600 900S675 933.75 675 975S641.25 1050 600 1050zM600 300C558.75 300 525 266.25 525 225S558.75 150 600 150S675 183.75 675 225S641.25 300 600 300zM600 675C558.75 675 525 641.25 525 600S558.75 525 600 525S675 558.75 675 600S641.25 675 600 675z","horizAdvX":"1200"},"more-fill":{"path":["M0 0h24v24H0z","M5 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm14 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-7 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M250 700C195 700 150 655 150 600S195 500 250 500S350 545 350 600S305 700 250 700zM950 700C894.9999999999999 700 850 655 850 600S894.9999999999999 500 950 500S1050 545 1050 600S1005.0000000000002 700 950 700zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"more-line":{"path":["M0 0h24v24H0z","M4.5 10.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S6 12.825 6 12s-.675-1.5-1.5-1.5zm15 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S21 12.825 21 12s-.675-1.5-1.5-1.5zm-7.5 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5z"],"unicode":"","glyph":"M225 675C183.75 675 150 641.25 150 600S183.75 525 225 525S300 558.75 300 600S266.25 675 225 675zM975 675C933.75 675 900 641.25 900 600S933.75 525 975 525S1050 558.75 1050 600S1016.25 675 975 675zM600 675C558.75 675 525 641.25 525 600S558.75 525 600 525S675 558.75 675 600S641.25 675 600 675z","horizAdvX":"1200"},"motorbike-fill":{"path":["M0 0h24v24H0z","M8.365 10L11.2 8H17v2h-5.144L9 12H2v-2h6.365zm.916 5.06l2.925-1.065.684 1.88-2.925 1.064a4.5 4.5 0 1 1-.684-1.88zM5.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm13 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM4 11h6l2.6-1.733.28-1.046 1.932.518-1.922 7.131-1.822-.888.118-.44L9 16l-1-2H4v-3zm12.092-5H20v3h-2.816l1.92 5.276-1.88.684L15.056 9H15v-.152L13.6 5H11V3h4l1.092 3z"],"unicode":"","glyph":"M418.25 700L560 800H850V700H592.8L450 600H100V700H418.25zM464.05 447.0000000000001L610.3 500.25L644.4999999999999 406.25L498.25 353.05A225 225 0 1 0 464.05 447.05zM275 200A125 125 0 1 1 275 450A125 125 0 0 1 275 200zM925 100A225 225 0 1 0 925 550A225 225 0 0 0 925 100zM925 200A125 125 0 1 1 925 450A125 125 0 0 1 925 200zM200 650H500L630 736.6500000000001L644 788.95L740.6 763.05L644.4999999999999 406.5L553.3999999999999 450.9L559.3 472.8999999999999L450 400L400 500H200V650zM804.5999999999999 900H1000V750H859.2L955.2 486.2L861.2 452L752.8 750H750V757.5999999999999L680 950H550V1050H750L804.5999999999999 900z","horizAdvX":"1200"},"motorbike-line":{"path":["M0 0h24v24H0z","M4 13.256V12H2v-2h6.365L11.2 8h3.491L13.6 5H11V3h4l1.092 3H20v3h-2.816l1.456 4.002a4.5 4.5 0 1 1-1.985.392L15.419 10h-.947l-1.582 5.87-.002-.001.002.006-2.925 1.064A4.5 4.5 0 1 1 4 13.256zm2-.229a4.5 4.5 0 0 1 3.281 2.033l1.957-.713L12.403 10h-.547L9 12H6v1.027zM5.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm13 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M200 537.2V600H100V700H418.25L560 800H734.55L680 950H550V1050H750L804.5999999999999 900H1000V750H859.2L932 549.9000000000001A225 225 0 1 0 832.75 530.3000000000001L770.95 700H723.6L644.5 406.5L644.4 406.55L644.5 406.2499999999999L498.25 353.05A225 225 0 1 0 200 537.2zM300 548.65A225 225 0 0 0 464.05 447L561.9000000000001 482.65L620.15 700H592.8L450 600H300V548.6500000000001zM275 200A125 125 0 1 1 275 450A125 125 0 0 1 275 200zM925 200A125 125 0 1 1 925 450A125 125 0 0 1 925 200z","horizAdvX":"1200"},"mouse-fill":{"path":["M0 0h24v24H0z","M11.141 2h1.718c2.014 0 3.094.278 4.072.801a5.452 5.452 0 0 1 2.268 2.268c.523.978.801 2.058.801 4.072v5.718c0 2.014-.278 3.094-.801 4.072a5.452 5.452 0 0 1-2.268 2.268c-.978.523-2.058.801-4.072.801H11.14c-2.014 0-3.094-.278-4.072-.801a5.452 5.452 0 0 1-2.268-2.268C4.278 17.953 4 16.873 4 14.859V9.14c0-2.014.278-3.094.801-4.072A5.452 5.452 0 0 1 7.07 2.801C8.047 2.278 9.127 2 11.141 2zM11 6v5h2V6h-2z"],"unicode":"","glyph":"M557.05 1100H642.95C743.65 1100 797.65 1086.1 846.5500000000001 1059.95A272.59999999999997 272.59999999999997 0 0 0 959.95 946.55C986.1 897.6500000000001 1000 843.6500000000001 1000 742.95V457.05C1000 356.3499999999999 986.1 302.35 959.95 253.45A272.59999999999997 272.59999999999997 0 0 0 846.5500000000001 140.05C797.6500000000001 113.8999999999999 743.6500000000001 100 642.95 100H557C456.3000000000001 100 402.3000000000001 113.8999999999999 353.4000000000001 140.05A272.59999999999997 272.59999999999997 0 0 0 240.0000000000001 253.45C213.9 302.35 200 356.3499999999999 200 457.05V743C200 843.6999999999999 213.9 897.6999999999999 240.05 946.6A272.59999999999997 272.59999999999997 0 0 0 353.5 1059.95C402.35 1086.1 456.35 1100 557.05 1100zM550 900V650H650V900H550z","horizAdvX":"1200"},"mouse-line":{"path":["M0 0h24v24H0z","M11.141 4c-1.582 0-2.387.169-3.128.565a3.453 3.453 0 0 0-1.448 1.448C6.169 6.753 6 7.559 6 9.14v5.718c0 1.582.169 2.387.565 3.128.337.63.818 1.111 1.448 1.448.74.396 1.546.565 3.128.565h1.718c1.582 0 2.387-.169 3.128-.565a3.453 3.453 0 0 0 1.448-1.448c.396-.74.565-1.546.565-3.128V9.14c0-1.582-.169-2.387-.565-3.128a3.453 3.453 0 0 0-1.448-1.448C15.247 4.169 14.441 4 12.86 4H11.14zm0-2h1.718c2.014 0 3.094.278 4.072.801a5.452 5.452 0 0 1 2.268 2.268c.523.978.801 2.058.801 4.072v5.718c0 2.014-.278 3.094-.801 4.072a5.452 5.452 0 0 1-2.268 2.268c-.978.523-2.058.801-4.072.801H11.14c-2.014 0-3.094-.278-4.072-.801a5.452 5.452 0 0 1-2.268-2.268C4.278 17.953 4 16.873 4 14.859V9.14c0-2.014.278-3.094.801-4.072A5.452 5.452 0 0 1 7.07 2.801C8.047 2.278 9.127 2 11.141 2zM11 6h2v5h-2V6z"],"unicode":"","glyph":"M557.05 1000C477.95 1000 437.7 991.55 400.65 971.75A172.64999999999998 172.64999999999998 0 0 1 328.25 899.35C308.45 862.35 300 822.05 300 743V457.1C300 377.9999999999999 308.45 337.75 328.25 300.7C345.1 269.2000000000001 369.15 245.15 400.65 228.3C437.65 208.4999999999999 477.95 200.0499999999999 557.05 200.0499999999999H642.95C722.0500000000001 200.0499999999999 762.3000000000001 208.4999999999999 799.35 228.3A172.64999999999998 172.64999999999998 0 0 1 871.7499999999999 300.7C891.55 337.7 900 377.9999999999999 900 457.1V743C900 822.0999999999999 891.55 862.35 871.7499999999999 899.4A172.64999999999998 172.64999999999998 0 0 1 799.3499999999999 971.8C762.35 991.55 722.0500000000001 1000 643 1000H557zM557.05 1100H642.95C743.65 1100 797.65 1086.1 846.5500000000001 1059.95A272.59999999999997 272.59999999999997 0 0 0 959.95 946.55C986.1 897.6500000000001 1000 843.6500000000001 1000 742.95V457.05C1000 356.3499999999999 986.1 302.35 959.95 253.45A272.59999999999997 272.59999999999997 0 0 0 846.5500000000001 140.05C797.6500000000001 113.8999999999999 743.6500000000001 100 642.95 100H557C456.3000000000001 100 402.3000000000001 113.8999999999999 353.4000000000001 140.05A272.59999999999997 272.59999999999997 0 0 0 240.0000000000001 253.45C213.9 302.35 200 356.3499999999999 200 457.05V743C200 843.6999999999999 213.9 897.6999999999999 240.05 946.6A272.59999999999997 272.59999999999997 0 0 0 353.5 1059.95C402.35 1086.1 456.35 1100 557.05 1100zM550 900H650V650H550V900z","horizAdvX":"1200"},"movie-2-fill":{"path":["M0 0h24v24H0z","M18.001 20H20v2h-8C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.985 9.985 0 0 1-3.999 8zM12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-4 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm8 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-4 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M900.0500000000001 200H1000V100H600C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600A499.25 499.25 0 0 0 900.0500000000001 200zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700zM400 500A100 100 0 1 1 400 700A100 100 0 0 1 400 500zM800 500A100 100 0 1 1 800 700A100 100 0 0 1 800 500zM600 300A100 100 0 1 1 600 500A100 100 0 0 1 600 300z","horizAdvX":"1200"},"movie-2-line":{"path":["M0 0h24v24H0z","M12 20h8v2h-8C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.956 9.956 0 0 1-2 6h-2.708A8 8 0 1 0 12 20zm0-10a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-4 4a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm8 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-4 4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 200H1000V100H600C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600A497.8 497.8 0 0 0 1000 300H864.6000000000001A400 400 0 1 1 600 200zM600 700A100 100 0 1 0 600 900A100 100 0 0 0 600 700zM400 500A100 100 0 1 0 400 700A100 100 0 0 0 400 500zM800 500A100 100 0 1 0 800 700A100 100 0 0 0 800 500zM600 300A100 100 0 1 0 600 500A100 100 0 0 0 600 300z","horizAdvX":"1200"},"movie-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zm8.622 4.422a.4.4 0 0 0-.622.332v6.506a.4.4 0 0 0 .622.332l4.879-3.252a.4.4 0 0 0 0-.666l-4.88-3.252z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM531.1 779.25A20.000000000000004 20.000000000000004 0 0 1 500 762.65V437.35A20.000000000000004 20.000000000000004 0 0 1 531.1 420.75L775.05 583.3499999999999A20.000000000000004 20.000000000000004 0 0 1 775.05 616.6499999999999L531.05 779.2499999999999z","horizAdvX":"1200"},"movie-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm6.622 3.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM531.1 779.25L775.05 616.6500000000001A20.000000000000004 20.000000000000004 0 0 0 775.05 583.3500000000001L531.05 420.7500000000001A20.000000000000004 20.000000000000004 0 0 0 499.9999999999999 437.3500000000002V762.65A20.000000000000004 20.000000000000004 0 0 0 531.0999999999999 779.25z","horizAdvX":"1200"},"music-2-fill":{"path":["M0 0h24v24H0z","M20 3v14a4 4 0 1 1-2-3.465V6H9v11a4 4 0 1 1-2-3.465V3h13z"],"unicode":"","glyph":"M1000 1050V350A200 200 0 1 0 900 523.25V900H450V350A200 200 0 1 0 350 523.25V1050H1000z","horizAdvX":"1200"},"music-2-line":{"path":["M0 0h24v24H0z","M20 3v14a4 4 0 1 1-2-3.465V5H9v12a4 4 0 1 1-2-3.465V3h13zM5 19a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm11 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M1000 1050V350A200 200 0 1 0 900 523.25V950H450V350A200 200 0 1 0 350 523.25V1050H1000zM250 250A100 100 0 1 1 250 450A100 100 0 0 1 250 250zM800 250A100 100 0 1 1 800 450A100 100 0 0 1 800 250z","horizAdvX":"1200"},"music-fill":{"path":["M0 0h24v24H0z","M12 13.535V3h8v3h-6v11a4 4 0 1 1-2-3.465z"],"unicode":"","glyph":"M600 523.25V1050H1000V900H700V350A200 200 0 1 0 600 523.25z","horizAdvX":"1200"},"music-line":{"path":["M0 0h24v24H0z","M12 13.535V3h8v2h-6v12a4 4 0 1 1-2-3.465zM10 19a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 523.25V1050H1000V950H700V350A200 200 0 1 0 600 523.25zM500 250A100 100 0 1 1 500 450A100 100 0 0 1 500 250z","horizAdvX":"1200"},"mv-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zm10 8.178A3 3 0 1 0 14 15V7.999h3V6h-5v6.17z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM600 591.4499999999999A150 150 0 1 1 700 450V800.05H850V900H600V591.5z","horizAdvX":"1200"},"mv-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm8 7.17V6h5v2h-3v7a3 3 0 1 1-2-2.83z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM600 591.5V900H850V800H700V450A150 150 0 1 0 600 591.5z","horizAdvX":"1200"},"navigation-fill":{"path":["M0 0h24v24H0z","M2.9 2.3l18.805 6.268a.5.5 0 0 1 .028.939L13 13l-4.425 8.85a.5.5 0 0 1-.928-.086L2.26 2.911A.5.5 0 0 1 2.9 2.3z"],"unicode":"","glyph":"M145 1085L1085.25 771.6A25 25 0 0 0 1086.6499999999999 724.6500000000001L650 550L428.75 107.5A25 25 0 0 0 382.35 111.8L113 1054.45A25 25 0 0 0 145 1085z","horizAdvX":"1200"},"navigation-line":{"path":["M0 0h24v24H0z","M4.965 5.096l3.546 12.41 3.04-6.08 5.637-2.255L4.965 5.096zM2.899 2.3l18.806 6.268a.5.5 0 0 1 .028.939L13 13l-4.425 8.85a.5.5 0 0 1-.928-.086L2.26 2.911A.5.5 0 0 1 2.9 2.3z"],"unicode":"","glyph":"M248.25 945.2L425.55 324.7000000000001L577.55 628.7L859.4 741.45L248.25 945.2zM144.95 1085L1085.25 771.6A25 25 0 0 0 1086.65 724.6500000000001L650 550L428.75 107.5A25 25 0 0 0 382.35 111.8L113 1054.45A25 25 0 0 0 145 1085z","horizAdvX":"1200"},"netease-cloud-music-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1.086-10.432c.24-.84 1.075-1.541 1.99-1.648.187.694.388 1.373.545 2.063.053.23.037.495-.018.727-.213.892-1.248 1.242-1.978.685-.53-.405-.742-1.12-.539-1.827zm3.817-.197c-.125-.465-.256-.927-.393-1.42.5.13.908.36 1.255.698 1.257 1.221 1.385 3.3.294 4.731-1.135 1.49-3.155 2.134-5.028 1.605-2.302-.65-3.808-2.952-3.441-5.316.274-1.768 1.27-3.004 2.9-3.733.407-.182.58-.56.42-.93-.157-.364-.54-.504-.944-.343-2.721 1.089-4.32 4.134-3.67 6.987.713 3.118 3.495 5.163 6.675 4.859 1.732-.165 3.164-.948 4.216-2.347 1.506-2.002 1.297-4.783-.463-6.499-.666-.65-1.471-1.018-2.39-1.153-.083-.013-.217-.052-.232-.106-.087-.313-.18-.632-.206-.954-.029-.357.29-.64.65-.645.253-.003.434.13.603.3.303.3.704.322.988.062.29-.264.296-.678.018-1.008-.566-.672-1.586-.891-2.43-.523-.847.37-1.321 1.187-1.2 2.093.038.28.11.557.167.842l-.26.072c-.856.24-1.561.704-2.098 1.414-.921 1.22-.936 2.828-.041 3.947 1.274 1.594 3.747 1.284 4.523-.568.284-.676.275-1.368.087-2.065z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM545.6999999999999 621.6C557.7 663.6 599.4499999999999 698.6500000000001 645.2 704C654.55 669.3 664.6 635.35 672.45 600.85C675.1 589.3499999999999 674.3000000000001 576.1 671.55 564.5C660.9 519.9 609.15 502.3999999999999 572.65 530.2499999999999C546.15 550.4999999999999 535.55 586.2499999999999 545.6999999999999 621.5999999999999zM736.55 631.4499999999999C730.3 654.6999999999999 723.75 677.8 716.9 702.45C741.9 695.9499999999999 762.3 684.45 779.65 667.55C842.5000000000001 606.5 848.9000000000001 502.55 794.35 431C737.6 356.5 636.6 324.3000000000001 542.95 350.75C427.8500000000002 383.25 352.5500000000001 498.35 370.9000000000001 616.55C384.6000000000001 704.95 434.4000000000001 766.75 515.9000000000001 803.2C536.2500000000001 812.3 544.9000000000001 831.2 536.9000000000001 849.7C529.0500000000001 867.9 509.9 874.9 489.7 866.8499999999999C353.6500000000001 812.4 273.7 660.15 306.2000000000001 517.5C341.85 361.5999999999999 480.95 259.3499999999999 639.9499999999999 274.55C726.55 282.8 798.15 321.9500000000001 850.75 391.9000000000001C926.05 492 915.6 631.0500000000001 827.6 716.8499999999999C794.3 749.35 754.05 767.75 708.0999999999999 774.5C703.9499999999999 775.15 697.2499999999999 777.0999999999999 696.5 779.8C692.15 795.45 687.5 811.4 686.2 827.5C684.75 845.35 700.6999999999999 859.5 718.7 859.75C731.35 859.9000000000001 740.4 853.25 748.85 844.75C764 829.75 784.0500000000001 828.6500000000001 798.25 841.6500000000001C812.75 854.85 813.05 875.55 799.15 892.05C770.85 925.65 719.85 936.6 677.6500000000001 918.2C635.3000000000001 899.7 611.6 858.8499999999999 617.6500000000001 813.55C619.5500000000001 799.55 623.1500000000001 785.7 626.0000000000001 771.45L613.0000000000001 767.8500000000001C570.2 755.85 534.95 732.6500000000001 508.1000000000001 697.1500000000001C462.0500000000002 636.1500000000001 461.3000000000001 555.7500000000001 506.0500000000001 499.8000000000001C569.7500000000001 420.1000000000002 693.4000000000001 435.6 732.2 528.2C746.4000000000001 562.0000000000001 745.9500000000002 596.6000000000001 736.5500000000001 631.45z","horizAdvX":"1200"},"netease-cloud-music-line":{"path":["M0 0h24v24H0z","M10.421 11.375c-.294 1.028.012 2.064.784 2.653 1.061.81 2.565.3 2.874-.995.08-.337.103-.722.027-1.056-.23-1.001-.52-1.988-.792-2.996-1.33.154-2.543 1.172-2.893 2.394zm5.548-.287c.273 1.012.285 2.017-.127 3-1.128 2.69-4.721 3.14-6.573.826-1.302-1.627-1.28-3.961.06-5.734.78-1.032 1.804-1.707 3.048-2.054l.379-.104c-.084-.415-.188-.816-.243-1.224-.176-1.317.512-2.503 1.744-3.04 1.226-.535 2.708-.216 3.53.76.406.479.395 1.08-.025 1.464-.412.377-.996.346-1.435-.09-.247-.246-.51-.44-.877-.436-.525.006-.987.418-.945.937.037.468.173.93.3 1.386.022.078.216.135.338.153 1.334.197 2.504.731 3.472 1.676 2.558 2.493 2.861 6.531.672 9.44-1.529 2.032-3.61 3.168-6.127 3.409-4.621.44-8.664-2.53-9.7-7.058C2.515 10.255 4.84 5.831 8.795 4.25c.586-.234 1.143-.031 1.371.498.232.537-.019 1.086-.61 1.35-2.368 1.06-3.817 2.855-4.215 5.424-.533 3.433 1.656 6.776 5 7.72 2.723.77 5.658-.166 7.308-2.33 1.586-2.08 1.4-5.099-.427-6.873a3.979 3.979 0 0 0-1.823-1.013c.198.716.389 1.388.57 2.062z"],"unicode":"","glyph":"M521.05 631.25C506.35 579.85 521.65 528.05 560.25 498.6C613.3 458.0999999999999 688.5 483.5999999999999 703.95 548.3499999999999C707.95 565.1999999999999 709.1 584.4499999999999 705.3 601.15C693.8 651.1999999999999 679.3000000000001 700.55 665.7 750.95C599.2 743.25 538.5500000000001 692.3499999999999 521.05 631.25zM798.4499999999999 645.6C812.1 595 812.6999999999999 544.7500000000001 792.0999999999999 495.6C735.6999999999999 361.1 556.05 338.6000000000002 463.4499999999999 454.3000000000001C398.3499999999999 535.6500000000001 399.45 652.35 466.4499999999999 741C505.4499999999999 792.6 556.65 826.35 618.8499999999999 843.7L637.8 848.9000000000001C633.5999999999999 869.6500000000001 628.3999999999999 889.7 625.6499999999999 910.1C616.8499999999999 975.95 651.2499999999999 1035.25 712.8499999999999 1062.1000000000001C774.1499999999999 1088.8500000000001 848.2499999999998 1072.9 889.3499999999999 1024.1000000000001C909.6499999999997 1000.15 909.1 970.1 888.1 950.9C867.5000000000001 932.05 838.3000000000001 933.6 816.3500000000001 955.4C804.0000000000001 967.7 790.8500000000001 977.4 772.5 977.2C746.25 976.9 723.1500000000001 956.3 725.25 930.35C727.1000000000001 906.95 733.9000000000001 883.85 740.2500000000001 861.05C741.3500000000001 857.15 751.0500000000001 854.3 757.1500000000001 853.4000000000001C823.85 843.55 882.3500000000001 816.85 930.7500000000002 769.6000000000001C1058.65 644.95 1073.8000000000002 443.0500000000001 964.3500000000003 297.6000000000002C887.9000000000001 196.0000000000001 783.8500000000001 139.2000000000001 658.0000000000002 127.1500000000001C426.9500000000002 105.1500000000001 224.8000000000002 253.6500000000002 173.0000000000002 480.0500000000002C125.75 687.25 242 908.45 439.75 987.5C469.05 999.2 496.9 989.05 508.3 962.6C519.9 935.75 507.35 908.3 477.8000000000001 895.0999999999999C359.4000000000001 842.0999999999999 286.9500000000001 752.3499999999999 267.0500000000001 623.8999999999999C240.4000000000001 452.2499999999999 349.85 285.0999999999999 517.0500000000001 237.9C653.2 199.4 799.9500000000002 246.2 882.45 354.4000000000001C961.75 458.4000000000001 952.45 609.35 861.1 698.0500000000002A198.95 198.95 0 0 1 769.95 748.7C779.85 712.9000000000001 789.4 679.3000000000001 798.45 645.6000000000001z","horizAdvX":"1200"},"netflix-fill":{"path":["M0 0h24v24H0z","M11.29 3.814l2.02 5.707.395 1.116.007-4.81.01-4.818h4.27L18 11.871c.003 5.98-.003 10.89-.015 10.9-.012.009-.209 0-.436-.027-.989-.118-2.29-.236-3.34-.282a14.57 14.57 0 0 1-.636-.038c-.003-.004-.273-.762-.776-2.184v-.004l-2.144-6.061-.34-.954-.008 4.586c-.006 4.365-.01 4.61-.057 4.61-.163 0-1.57.09-2.04.136-.308.027-.926.09-1.37.145-.446.051-.816.085-.823.078C6.006 22.77 6 17.867 6 11.883V1.002h.005V1h4.288l.028.08c.007.016.065.176.157.437l.641 1.778.173.496-.001.023z"],"unicode":"","glyph":"M564.5 1009.3L665.4999999999999 723.9499999999999L685.2499999999999 668.15L685.5999999999999 908.65L686.0999999999999 1149.55H899.5999999999999L900 606.4499999999999C900.15 307.4500000000001 899.85 61.9499999999998 899.25 61.4500000000001C898.65 61 888.8 61.4500000000001 877.4499999999999 62.8C827.9999999999999 68.7000000000001 762.95 74.6000000000001 710.4499999999999 76.9000000000001A728.5 728.5 0 0 0 678.65 78.8C678.5 79 665 116.9000000000001 639.85 188.0000000000001V188.2000000000002L532.65 491.2500000000001L515.65 538.9500000000002L515.2500000000001 309.6500000000002C514.95 91.4000000000001 514.7500000000001 79.1500000000003 512.4000000000001 79.1500000000003C504.2500000000001 79.1500000000003 433.9000000000001 74.6500000000003 410.4000000000001 72.3500000000004C395.0000000000001 71.0000000000002 364.1000000000001 67.8500000000004 341.9000000000001 65.1000000000004C319.6000000000001 62.5500000000004 301.1000000000001 60.8500000000004 300.7500000000001 61.2000000000003C300.3 61.5 300 306.65 300 605.85V1149.9H300.25V1150H514.65L516.05 1146C516.4 1145.2 519.3 1137.2 523.9 1124.15L555.95 1035.25L564.6 1010.45L564.5500000000001 1009.3z","horizAdvX":"1200"},"netflix-line":{"path":["M0 0h24v24H0z","M15.984 17.208L16 2h2v20a7.593 7.593 0 0 0-2.02-.5L8 6.302V21.5a7.335 7.335 0 0 0-2 .5V2h2l7.984 15.208z"],"unicode":"","glyph":"M799.2 339.6000000000002L800 1100H900V100A379.65000000000003 379.65000000000003 0 0 1 799 125L400 884.9000000000001V125A366.75 366.75 0 0 1 300 100V1100H400L799.2 339.6000000000002z","horizAdvX":"1200"},"newspaper-fill":{"path":["M0 0h24v24H0z","M19 22H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v7h4v9a3 3 0 0 1-3 3zm-1-10v7a1 1 0 0 0 2 0v-7h-2zM5 6v6h6V6H5zm0 7v2h10v-2H5zm0 3v2h10v-2H5zm2-8h2v2H7V8z"],"unicode":"","glyph":"M950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V700H1100V250A150 150 0 0 0 950 100zM900 600V250A50 50 0 0 1 1000 250V600H900zM250 900V600H550V900H250zM250 550V450H750V550H250zM250 400V300H750V400H250zM350 800H450V700H350V800z","horizAdvX":"1200"},"newspaper-line":{"path":["M0 0h24v24H0z","M16 20V4H4v15a1 1 0 0 0 1 1h11zm3 2H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v7h4v9a3 3 0 0 1-3 3zm-1-10v7a1 1 0 0 0 2 0v-7h-2zM6 6h6v6H6V6zm2 2v2h2V8H8zm-2 5h8v2H6v-2zm0 3h8v2H6v-2z"],"unicode":"","glyph":"M800 200V1000H200V250A50 50 0 0 1 250 200H800zM950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V700H1100V250A150 150 0 0 0 950 100zM900 600V250A50 50 0 0 1 1000 250V600H900zM300 900H600V600H300V900zM400 800V700H500V800H400zM300 550H700V450H300V550zM300 400H700V300H300V400z","horizAdvX":"1200"},"node-tree":{"path":["M0 0H24V24H0z","M10 2c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1H8v2h5V9c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1v-1H8v6h5v-1c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1v-1H7c-.552 0-1-.448-1-1V8H4c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1h6zm9 16h-4v2h4v-2zm0-8h-4v2h4v-2zM9 4H5v2h4V4z"],"unicode":"","glyph":"M500 1100C527.6 1100 550 1077.6 550 1050V850C550 822.4000000000001 527.6 800 500 800H400V700H650V750C650 777.5999999999999 672.4 800 700 800H1000C1027.6 800 1050 777.5999999999999 1050 750V550C1050 522.4 1027.6 500 1000 500H700C672.4 500 650 522.4 650 550V600H400V300H650V350C650 377.6 672.4 400 700 400H1000C1027.6 400 1050 377.6 1050 350V150C1050 122.4000000000001 1027.6 100 1000 100H700C672.4 100 650 122.4000000000001 650 150V200H350C322.4000000000001 200 300 222.4 300 250V800H200C172.4 800 150 822.4000000000001 150 850V1050C150 1077.6 172.4 1100 200 1100H500zM950 300H750V200H950V300zM950 700H750V600H950V700zM450 1000H250V900H450V1000z","horizAdvX":"1200"},"notification-2-fill":{"path":["M0 0h24v24H0z","M22 20H2v-2h1v-6.969C3 6.043 7.03 2 12 2s9 4.043 9 9.031V18h1v2zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M1100 200H100V300H150V648.45C150 897.8499999999999 351.5 1100 600 1100S1050 897.8499999999999 1050 648.4499999999999V300H1100V200zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-2-line":{"path":["M0 0h24v24H0z","M22 20H2v-2h1v-6.969C3 6.043 7.03 2 12 2s9 4.043 9 9.031V18h1v2zM5 18h14v-6.969C19 7.148 15.866 4 12 4s-7 3.148-7 7.031V18zm4.5 3h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M1100 200H100V300H150V648.45C150 897.8499999999999 351.5 1100 600 1100S1050 897.8499999999999 1050 648.4499999999999V300H1100V200zM250 300H950V648.45C950 842.6 793.3 1000 600 1000S250 842.6 250 648.45V300zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-3-fill":{"path":["M0 0h24v24H0z","M20 17h2v2H2v-2h2v-7a8 8 0 1 1 16 0v7zM9 21h6v2H9v-2z"],"unicode":"","glyph":"M1000 350H1100V250H100V350H200V700A400 400 0 1 0 1000 700V350zM450 150H750V50H450V150z","horizAdvX":"1200"},"notification-3-line":{"path":["M0 0h24v24H0z","M20 17h2v2H2v-2h2v-7a8 8 0 1 1 16 0v7zm-2 0v-7a6 6 0 1 0-12 0v7h12zm-9 4h6v2H9v-2z"],"unicode":"","glyph":"M1000 350H1100V250H100V350H200V700A400 400 0 1 0 1000 700V350zM900 350V700A300 300 0 1 1 300 700V350H900zM450 150H750V50H450V150z","horizAdvX":"1200"},"notification-4-fill":{"path":["M0 0h24v24H0z","M20 18.667l.4.533a.5.5 0 0 1-.4.8H4a.5.5 0 0 1-.4-.8l.4-.533V10a8 8 0 1 1 16 0v8.667zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M1000 266.6499999999999L1019.9999999999998 239.9999999999999A25 25 0 0 0 1000 199.9999999999998H200A25 25 0 0 0 180 239.9999999999999L200 266.6499999999999V700A400 400 0 1 0 1000 700V266.6499999999999zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-4-line":{"path":["M0 0h24v24H0z","M18 10a6 6 0 1 0-12 0v8h12v-8zm2 8.667l.4.533a.5.5 0 0 1-.4.8H4a.5.5 0 0 1-.4-.8l.4-.533V10a8 8 0 1 1 16 0v8.667zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M900 700A300 300 0 1 1 300 700V300H900V700zM1000 266.6499999999999L1019.9999999999998 239.9999999999999A25 25 0 0 0 1000 199.9999999999998H200A25 25 0 0 0 180 239.9999999999999L200 266.6499999999999V700A400 400 0 1 0 1000 700V266.6499999999999zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-badge-fill":{"path":["M0 0h24v24H0z","M13.341 4A6 6 0 0 0 21 11.659V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h9.341zM19 10a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M667.05 1000A300 300 0 0 1 1050 617.05V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H667.05zM950 700A200 200 0 1 0 950 1100A200 200 0 0 0 950 700z","horizAdvX":"1200"},"notification-badge-line":{"path":["M0 0h24v24H0z","M13.341 4A5.99 5.99 0 0 0 13 6H5v14h14v-8a5.99 5.99 0 0 0 2-.341V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h9.341zM19 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M667.05 1000A299.50000000000006 299.50000000000006 0 0 1 650 900H250V200H950V600A299.50000000000006 299.50000000000006 0 0 1 1050 617.05V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H667.05zM950 800A100 100 0 1 1 950 1000A100 100 0 0 1 950 800zM950 700A200 200 0 1 0 950 1100A200 200 0 0 0 950 700z","horizAdvX":"1200"},"notification-fill":{"path":["M0 0h24v24H0z","M12 2c4.97 0 9 4.043 9 9.031V20H3v-8.969C3 6.043 7.03 2 12 2zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M600 1100C848.5 1100 1050 897.8499999999999 1050 648.4499999999999V200H150V648.4499999999999C150 897.8499999999999 351.5 1100 600 1100zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-line":{"path":["M0 0h24v24H0z","M5 18h14v-6.969C19 7.148 15.866 4 12 4s-7 3.148-7 7.031V18zm7-16c4.97 0 9 4.043 9 9.031V20H3v-8.969C3 6.043 7.03 2 12 2zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M250 300H950V648.45C950 842.6 793.3 1000 600 1000S250 842.6 250 648.45V300zM600 1100C848.5 1100 1050 897.8499999999999 1050 648.4499999999999V200H150V648.4499999999999C150 897.8499999999999 351.5 1100 600 1100zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-off-fill":{"path":["M0 0h24v24H0z","M18.586 20H4a.5.5 0 0 1-.4-.8l.4-.533V10c0-1.33.324-2.584.899-3.687L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L18.586 20zM20 15.786L7.559 3.345A8 8 0 0 1 20 10v5.786zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M929.3 200H200A25 25 0 0 0 180 240L200 266.6500000000001V700C200 766.5 216.2 829.2 244.95 884.3499999999999L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L929.3 200zM1000 410.7000000000001L377.95 1032.75A400 400 0 0 0 1000 700V410.7000000000001zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-off-line":{"path":["M0 0h24v24H0z","M18.586 20H4a.5.5 0 0 1-.4-.8l.4-.533V10c0-1.33.324-2.584.899-3.687L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L18.586 20zM6.408 7.822A5.985 5.985 0 0 0 6 10v8h10.586L6.408 7.822zM20 15.786l-2-2V10a6 6 0 0 0-8.99-5.203L7.56 3.345A8 8 0 0 1 20 10v5.786zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M929.3 200H200A25 25 0 0 0 180 240L200 266.6500000000001V700C200 766.5 216.2 829.2 244.95 884.3499999999999L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L929.3 200zM320.4000000000001 808.9A299.25 299.25 0 0 1 300 700V300H829.3L320.4000000000001 808.9zM1000 410.7000000000001L900 510.7V700A300 300 0 0 1 450.5 960.15L378 1032.75A400 400 0 0 0 1000 700V410.7000000000001zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"npmjs-fill":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-3 4H7v10h5V9.5h2.5V17H17V7z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM850 850H350V350H600V725H725V350H850V850z","horizAdvX":"1200"},"npmjs-line":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-1 2H5v14h14V5zm-2 2v10h-2.5V9.5H12V17H7V7h10z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM950 950H250V250H950V950zM850 850V350H725V725H600V350H350V850H850z","horizAdvX":"1200"},"number-0":{"path":["M0 0h24v24H0z","M12 1.5c1.321 0 2.484.348 3.447.994.963.645 1.726 1.588 2.249 2.778.522 1.19.804 2.625.804 4.257v4.942c0 1.632-.282 3.068-.804 4.257-.523 1.19-1.286 2.133-2.25 2.778-.962.646-2.125.994-3.446.994-1.321 0-2.484-.348-3.447-.994-.963-.645-1.726-1.588-2.249-2.778-.522-1.19-.804-2.625-.804-4.257V9.529c0-1.632.282-3.068.804-4.257.523-1.19 1.286-2.133 2.25-2.778C9.515 1.848 10.678 1.5 12 1.5zm0 2c-.916 0-1.694.226-2.333.655-.637.427-1.158 1.07-1.532 1.92-.412.94-.635 2.108-.635 3.454v4.942c0 1.346.223 2.514.635 3.453.374.851.895 1.494 1.532 1.921.639.429 1.417.655 2.333.655.916 0 1.694-.226 2.333-.655.637-.427 1.158-1.07 1.532-1.92.412-.94.635-2.108.635-3.454V9.529c0-1.346-.223-2.514-.635-3.453-.374-.851-.895-1.494-1.532-1.921C13.694 3.726 12.916 3.5 12 3.5z"],"unicode":"","glyph":"M600 1125C666.05 1125 724.2 1107.6 772.3499999999999 1075.3C820.5 1043.05 858.6499999999999 995.9 884.8 936.4C910.8999999999997 876.9000000000001 924.9999999999998 805.15 924.9999999999998 723.55V476.45C924.9999999999998 394.8499999999999 910.8999999999997 323.05 884.8 263.5999999999999C858.6499999999999 204.0999999999999 820.4999999999998 156.9500000000001 772.3 124.7000000000001C724.1999999999999 92.3999999999999 666.05 75 599.9999999999999 75C533.9499999999999 75 475.7999999999999 92.3999999999999 427.6499999999999 124.7000000000001C379.4999999999999 156.9500000000001 341.3499999999999 204.1 315.1999999999998 263.5999999999999C289.0999999999998 323.1 274.9999999999999 394.8499999999999 274.9999999999999 476.4499999999999V723.55C274.9999999999999 805.15 289.0999999999998 876.95 315.1999999999998 936.4C341.3499999999998 995.9 379.4999999999999 1043.05 427.6999999999998 1075.3C475.75 1107.6 533.9000000000001 1125 600 1125zM600 1025C554.1999999999999 1025 515.3000000000001 1013.7 483.35 992.25C451.4999999999999 970.9 425.4500000000001 938.75 406.75 896.25C386.15 849.25 375 790.85 375 723.55V476.45C375 409.15 386.15 350.75 406.75 303.8000000000001C425.4500000000001 261.2500000000001 451.4999999999999 229.1 483.35 207.75C515.3 186.3000000000002 554.1999999999999 175 600 175C645.8000000000001 175 684.6999999999999 186.3 716.65 207.75C748.5 229.1 774.55 261.2500000000001 793.25 303.7500000000001C813.85 350.7500000000003 825 409.1500000000002 825 476.4500000000002V723.55C825 790.85 813.85 849.25 793.25 896.2C774.55 938.75 748.5 970.9 716.65 992.25C684.7 1013.7 645.8000000000001 1025 600 1025z","horizAdvX":"1200"},"number-1":{"path":["M0 0h24v24H0z","M14 1.5V22h-2V3.704L7.5 4.91V2.839l5-1.339z"],"unicode":"","glyph":"M700 1125V100H600V1014.8L375 954.5V1058.05L625 1125z","horizAdvX":"1200"},"number-2":{"path":["M0 0h24v24H0z","M16 7.5a4 4 0 1 0-8 0H6a6 6 0 1 1 10.663 3.776l-7.32 8.723L18 20v2H6v-1.127l9.064-10.802A3.982 3.982 0 0 0 16 7.5z"],"unicode":"","glyph":"M800 825A200 200 0 1 1 400 825H300A300 300 0 1 0 833.15 636.2L467.15 200.0499999999999L900 200V100H300V156.3499999999999L753.2 696.4499999999999A199.10000000000002 199.10000000000002 0 0 1 800 825z","horizAdvX":"1200"},"number-3":{"path":["M0 0h24v24H0z","M18 2v1.362L12.809 9.55a6.501 6.501 0 1 1-7.116 8.028l1.94-.486A4.502 4.502 0 0 0 16.5 16a4.5 4.5 0 0 0-6.505-4.03l-.228.122-.69-1.207L14.855 4 6.5 4V2H18z"],"unicode":"","glyph":"M900 1100V1031.9L640.4499999999999 722.5A325.05 325.05 0 1 0 284.65 321.0999999999999L381.65 345.3999999999999A225.1 225.1 0 0 1 825 400A225 225 0 0 1 499.7500000000001 601.5L488.3500000000001 595.4000000000001L453.8500000000001 655.7500000000001L742.75 1000L325 1000V1100H900z","horizAdvX":"1200"},"number-4":{"path":["M0 0h24v24H0z","M16 1.5V16h3v2h-3v4h-2v-4H4v-1.102L14 1.5h2zM14 16V5.171L6.968 16H14z"],"unicode":"","glyph":"M800 1125V400H950V300H800V100H700V300H200V355.1L700 1125H800zM700 400V941.45L348.4 400H700z","horizAdvX":"1200"},"number-5":{"path":["M0 0h24v24H0z","M18 2v2H9.3l-.677 6.445a6.5 6.5 0 1 1-2.93 7.133l1.94-.486A4.502 4.502 0 0 0 16.5 16a4.5 4.5 0 0 0-4.5-4.5c-2.022 0-3.278.639-3.96 1.53l-1.575-1.182L7.5 2H18z"],"unicode":"","glyph":"M900 1100V1000H465.0000000000001L431.1500000000001 677.75A325 325 0 1 0 284.6500000000001 321.1L381.6500000000001 345.4000000000001A225.1 225.1 0 0 1 825 400A225 225 0 0 1 600 625C498.9 625 436.1 593.0500000000001 402 548.5L323.25 607.6L375 1100H900z","horizAdvX":"1200"},"number-6":{"path":["M0 0h24v24H0z","M14.886 2l-4.438 7.686A6.5 6.5 0 1 1 6.4 12.7L12.576 2h2.31zM12 11.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9z"],"unicode":"","glyph":"M744.3 1100L522.4 715.7A325 325 0 1 0 320 565L628.8000000000001 1100H744.3000000000001zM600 625A225 225 0 1 1 600 175A225 225 0 0 1 600 625z","horizAdvX":"1200"},"number-7":{"path":["M0 0h24v24H0z","M19 2v1.5L10.763 22H8.574l8.013-18H6V2z"],"unicode":"","glyph":"M950 1100V1025L538.15 100H428.7L829.35 1000H300V1100z","horizAdvX":"1200"},"number-8":{"path":["M0 0h24v24H0z","M12 1.5a5.5 5.5 0 0 1 3.352 9.86C17.24 12.41 18.5 14.32 18.5 16.5c0 3.314-2.91 6-6.5 6s-6.5-2.686-6.5-6c0-2.181 1.261-4.09 3.147-5.141A5.5 5.5 0 0 1 12 1.5zm0 11c-2.52 0-4.5 1.828-4.5 4 0 2.172 1.98 4 4.5 4s4.5-1.828 4.5-4c0-2.172-1.98-4-4.5-4zm0-9a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7z"],"unicode":"","glyph":"M600 1125A275 275 0 0 0 767.6 632C861.9999999999999 579.5 925 484 925 375C925 209.3 779.5 75 600 75S275 209.3 275 375C275 484.0500000000001 338.05 579.5 432.35 632.05A275 275 0 0 0 600 1125zM600 575C474 575 375 483.6 375 375C375 266.4 474 175 600 175S825 266.4 825 375C825 483.6 726 575 600 575zM600 1025A175 175 0 1 1 600 675A175 175 0 0 1 600 1025z","horizAdvX":"1200"},"number-9":{"path":["M0 0h24v24H0z","M12 1.5a6.5 6.5 0 0 1 5.619 9.77l-6.196 10.729H9.114l4.439-7.686A6.5 6.5 0 1 1 12 1.5zm0 2a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9z"],"unicode":"","glyph":"M600 1125A325 325 0 0 0 880.95 636.5L571.15 100.05H455.7L677.6500000000001 484.35A325 325 0 1 0 600 1125zM600 1025A225 225 0 1 1 600 575A225 225 0 0 1 600 1025z","horizAdvX":"1200"},"numbers-fill":{"path":["M0 0h24v24H0z","M9 18H4v-8h5v8zm6 0h-5V6h5v12zm6 0h-5V2h5v16zm1 4H3v-2h19v2z"],"unicode":"","glyph":"M450 300H200V700H450V300zM750 300H500V900H750V300zM1050 300H800V1100H1050V300zM1100 100H150V200H1100V100z","horizAdvX":"1200"},"numbers-line":{"path":["M0 0h24v24H0z","M9 18H4v-8h5v8zm-2-2v-4H6v4h1zm6 0V8h-1v8h1zm2 2h-5V6h5v12zm4-2V4h-1v12h1zm2 2h-5V2h5v16zm1 4H3v-2h19v2z"],"unicode":"","glyph":"M450 300H200V700H450V300zM350 400V600H300V400H350zM650 400V800H600V400H650zM750 300H500V900H750V300zM950 400V1000H900V400H950zM1050 300H800V1100H1050V300zM1100 100H150V200H1100V100z","horizAdvX":"1200"},"nurse-fill":{"path":["M0 0H24V24H0z","M14.956 15.564c2.659 1.058 4.616 3.5 4.982 6.436H4.062c.366-2.936 2.323-5.378 4.982-6.436L12 20l2.956-4.436zM18 2v6c0 3.314-2.686 6-6 6s-6-2.686-6-6V2h12zm-2 6H8c0 2.21 1.79 4 4 4s4-1.79 4-4z"],"unicode":"","glyph":"M747.8 421.8C880.7499999999999 368.9 978.6 246.8 996.9 100H203.1C221.4 246.8 319.25 368.9 452.2 421.8L600 200L747.8 421.8zM900 1100V800C900 634.3 765.7 500 600 500S300 634.3 300 800V1100H900zM800 800H400C400 689.5 489.4999999999999 600 600 600S800 689.5 800 800z","horizAdvX":"1200"},"nurse-line":{"path":["M0 0H24V24H0z","M12 15c4.08 0 7.446 3.054 7.938 7H4.062c.492-3.946 3.858-7 7.938-7zm-1.813 2.28C8.753 17.734 7.546 18.713 6.8 20H12l-1.813-2.72zm3.627 0L12 20h5.199c-.745-1.287-1.952-2.266-3.385-2.72zM18 2v6c0 3.314-2.686 6-6 6s-6-2.686-6-6V2h12zM8 8c0 2.21 1.79 4 4 4s4-1.79 4-4H8zm8-4H8v2h8V4z"],"unicode":"","glyph":"M600 450C803.9999999999999 450 972.3 297.3000000000001 996.9 100H203.1C227.7 297.3000000000001 396 450 600 450zM509.35 336C437.65 313.3 377.3 264.3499999999999 340 200H600L509.35 336zM690.7 336L600 200H859.9499999999999C822.6999999999998 264.3499999999999 762.3499999999999 313.3 690.6999999999999 336zM900 1100V800C900 634.3 765.7 500 600 500S300 634.3 300 800V1100H900zM400 800C400 689.5 489.4999999999999 600 600 600S800 689.5 800 800H400zM800 1000H400V900H800V1000z","horizAdvX":"1200"},"oil-fill":{"path":["M0 0h24v24H0z","M8 5h11a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V11l4-6zm5-4h5a1 1 0 0 1 1 1v2h-7V2a1 1 0 0 1 1-1zM6 12v7h2v-7H6z"],"unicode":"","glyph":"M400 950H950A50 50 0 0 0 1000 900V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V650L400 950zM650 1150H900A50 50 0 0 0 950 1100V1000H600V1100A50 50 0 0 0 650 1150zM300 600V250H400V600H300z","horizAdvX":"1200"},"oil-line":{"path":["M0 0h24v24H0z","M9.07 7L6 11.606V20h12V7H9.07zM8 5h11a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V11l4-6zm5-4h5a1 1 0 0 1 1 1v2h-7V2a1 1 0 0 1 1-1zM8 12h2v6H8v-6z"],"unicode":"","glyph":"M453.5 850L300 619.7V200H900V850H453.5zM400 950H950A50 50 0 0 0 1000 900V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V650L400 950zM650 1150H900A50 50 0 0 0 950 1100V1000H600V1100A50 50 0 0 0 650 1150zM400 600H500V300H400V600z","horizAdvX":"1200"},"omega":{"path":["M0 0h24v24H0z","M14 20v-2.157c1.863-1.192 3.5-3.875 3.5-6.959 0-3.073-2-6.029-5.5-6.029s-5.5 2.956-5.5 6.03c0 3.083 1.637 5.766 3.5 6.958V20H3v-2h4.76C5.666 16.505 4 13.989 4 10.884 4 6.247 7.5 3 12 3s8 3.247 8 7.884c0 3.105-1.666 5.621-3.76 7.116H21v2h-7z"],"unicode":"","glyph":"M700 200V307.85C793.15 367.4500000000001 875 501.6 875 655.8C875 809.45 775 957.25 600 957.25S325 809.45 325 655.7499999999999C325 501.5999999999999 406.85 367.4499999999998 500 307.8499999999998V200H150V300H388C283.3 374.75 200 500.55 200 655.8C200 887.65 375 1050 600 1050S1000 887.65 1000 655.8C1000 500.55 916.7 374.7499999999999 812.0000000000001 300H1050V200H700z","horizAdvX":"1200"},"open-arm-fill":{"path":["M0 0h24v24H0z","M12 12a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm6 5v5h-2v-5c0-4.451 2.644-8.285 6.447-10.016l.828 1.82A9.002 9.002 0 0 0 18 17zM8 17v5H6v-5A9.002 9.002 0 0 0 .725 8.805l.828-1.821A11.002 11.002 0 0 1 8 17z"],"unicode":"","glyph":"M600 600A250 250 0 1 0 600 1100A250 250 0 0 0 600 600zM900 350V100H800V350C800 572.5500000000001 932.2 764.25 1122.35 850.8L1163.75 759.8A450.1 450.1 0 0 1 900 350zM400 350V100H300V350A450.1 450.1 0 0 1 36.25 759.75L77.65 850.8A550.1 550.1 0 0 0 400 350z","horizAdvX":"1200"},"open-arm-line":{"path":["M0 0h24v24H0z","M18 17v5h-2v-5c0-4.451 2.644-8.285 6.447-10.016l.828 1.82A9.002 9.002 0 0 0 18 17zM8 17v5H6v-5A9.002 9.002 0 0 0 .725 8.805l.828-1.821A11.002 11.002 0 0 1 8 17zm4-5a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M900 350V100H800V350C800 572.5500000000001 932.2 764.25 1122.35 850.8L1163.75 759.8A450.1 450.1 0 0 1 900 350zM400 350V100H300V350A450.1 450.1 0 0 1 36.25 759.75L77.65 850.8A550.1 550.1 0 0 0 400 350zM600 600A250 250 0 1 0 600 1100A250 250 0 0 0 600 600zM600 700A150 150 0 1 1 600 1000A150 150 0 0 1 600 700z","horizAdvX":"1200"},"open-source-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10 0 4.13-2.504 7.676-6.077 9.201l-2.518-6.55C14.354 14.148 15 13.15 15 12c0-1.657-1.343-3-3-3s-3 1.343-3 3c0 1.15.647 2.148 1.596 2.652l-2.518 6.55C4.504 19.675 2 16.13 2 12 2 6.477 6.477 2 12 2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 393.5 974.8 216.1999999999999 796.15 139.9500000000001L670.25 467.45C717.6999999999999 492.6 750 542.5 750 600C750 682.85 682.85 750 600 750S450 682.85 450 600C450 542.5 482.35 492.6 529.8 467.4L403.9 139.8999999999999C225.2 216.25 100 393.5 100 600C100 876.15 323.85 1100 600 1100z","horizAdvX":"1200"},"open-source-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10 0 4.4-2.841 8.136-6.789 9.473l-.226.074-2.904-7.55C13.15 13.95 14 13.054 14 12c0-1.105-.895-2-2-2s-2 .895-2 2c0 1.077.851 1.955 1.917 1.998l-2.903 7.549-.225-.074C4.84 20.136 2 16.4 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 2.92 1.564 5.475 3.901 6.872l1.48-3.849C8.534 14.29 8 13.207 8 12c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.207-.535 2.29-1.38 3.023.565 1.474 1.059 2.757 1.479 3.85C18.435 17.475 20 14.92 20 12c0-4.418-3.582-8-8-8z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 380.0000000000001 957.95 193.2000000000001 760.5500000000001 126.3500000000001L749.25 122.6499999999999L604.05 500.15C657.5 502.5 700 547.3 700 600C700 655.25 655.25 700 600 700S500 655.25 500 600C500 546.15 542.55 502.25 595.85 500.1L450.7 122.6499999999999L439.45 126.3500000000001C242 193.2000000000001 100 380.0000000000001 100 600C100 876.15 323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600C200 454 278.2 326.2499999999999 395.05 256.4L469.05 448.85C426.7000000000001 485.5 400 539.65 400 600C400 710.5 489.4999999999999 800 600 800S800 710.5 800 600C800 539.65 773.25 485.5 731 448.85C759.25 375.15 783.95 311 804.95 256.3499999999999C921.7499999999998 326.2499999999999 1000 454 1000 600C1000 820.9000000000001 820.9 1000 600 1000z","horizAdvX":"1200"},"opera-fill":{"path":["M0 0h24v24H0z","M8.71 6.365c-1.108 1.305-1.823 3.236-1.873 5.4v.47c.051 2.165.766 4.093 1.872 5.4 1.434 1.862 3.566 3.044 5.95 3.044a7.208 7.208 0 0 0 4.005-1.226 9.94 9.94 0 0 1-7.139 2.535A9.998 9.998 0 0 1 2 12C2 6.476 6.478 2 12 2h.037a9.97 9.97 0 0 1 6.628 2.546 7.239 7.239 0 0 0-4.008-1.226c-2.382 0-4.514 1.183-5.95 3.045h.002zM22 12a9.969 9.969 0 0 1-3.335 7.454c-2.565 1.25-4.955.376-5.747-.17 2.52-.554 4.423-3.6 4.423-7.284 0-3.685-1.903-6.73-4.423-7.283.791-.545 3.182-1.42 5.747-.171A9.967 9.967 0 0 1 22 12z"],"unicode":"","glyph":"M435.5000000000001 881.75C380.1 816.5 344.35 719.9499999999999 341.85 611.75V588.2499999999999C344.4000000000001 479.9999999999999 380.1500000000001 383.5999999999999 435.4500000000001 318.2499999999999C507.15 225.15 613.7500000000001 166.05 732.9500000000002 166.05A360.4 360.4 0 0 1 933.2 227.3499999999999A496.99999999999994 496.99999999999994 0 0 0 576.2500000000001 100.5999999999999A499.8999999999999 499.8999999999999 0 0 0 100 600C100 876.2 323.9 1100 600 1100H601.85A498.5 498.5 0 0 0 933.25 972.7A361.95000000000005 361.95000000000005 0 0 1 732.85 1034C613.75 1034 507.15 974.85 435.35 881.75H435.4500000000001zM1100 600A498.45 498.45 0 0 0 933.25 227.3C804.9999999999999 164.8 685.5 208.4999999999999 645.9 235.8000000000001C771.9 263.5 867.0500000000001 415.8000000000001 867.0500000000001 600C867.0500000000001 784.25 771.9 936.5 645.9000000000001 964.15C685.45 991.4 805.0000000000001 1035.15 933.25 972.7A498.35 498.35 0 0 0 1100 600z","horizAdvX":"1200"},"opera-line":{"path":["M0 0h24v24H0z","M14.766 19.51a8.003 8.003 0 0 0 0-15.02C16.71 5.977 18 8.935 18 12s-1.289 6.024-3.234 7.51zM9.234 4.49a8.003 8.003 0 0 0 0 15.02C7.29 18.023 6 15.065 6 12s1.289-6.024 3.234-7.51zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-3.5c2 0 4-3.033 4-6.5s-2-6.5-4-6.5S8 8.533 8 12s2 6.5 4 6.5z"],"unicode":"","glyph":"M738.3 224.4999999999999A400.15000000000003 400.15000000000003 0 0 1 738.3 975.4999999999998C835.5 901.15 900 753.25 900 600S835.55 298.8 738.3 224.5000000000001zM461.7 975.5A400.15000000000003 400.15000000000003 0 0 1 461.7 224.5000000000001C364.5 298.85 300 446.75 300 600S364.45 901.2 461.7 975.5zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 275C700 275 800 426.65 800 600S700 925 600 925S400 773.35 400 600S500 275 600 275z","horizAdvX":"1200"},"order-play-fill":{"path":["M0 0h24v24H0z","M17 4V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H2V4h15zM2 18h20v2H2v-2zm0-7h20v2H2v-2z"],"unicode":"","glyph":"M850 1000V1096.6A25 25 0 0 0 891 1115.85L1097 944.2A25 25 0 0 0 1080.95 900H100V1000H850zM100 300H1100V200H100V300zM100 650H1100V550H100V650z","horizAdvX":"1200"},"order-play-line":{"path":["M0 0h24v24H0z","M17 4V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H2V4h15zM2 18h20v2H2v-2zm0-7h20v2H2v-2z"],"unicode":"","glyph":"M850 1000V1096.6A25 25 0 0 0 891 1115.85L1097 944.2A25 25 0 0 0 1080.95 900H100V1000H850zM100 300H1100V200H100V300zM100 650H1100V550H100V650z","horizAdvX":"1200"},"organization-chart":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-2v2h4c.552 0 1 .448 1 1v3h2c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1v-4c0-.552.448-1 1-1h2v-2H8v2h2c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-4c0-.552.448-1 1-1h2v-3c0-.552.448-1 1-1h4V9H9c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zM9 17H5v2h4v-2zm10 0h-4v2h4v-2zM14 5h-4v2h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V800C800 772.4000000000001 777.6 750 750 750H650V650H850C877.6 650 900 627.6 900 600V450H1000C1027.6 450 1050 427.6 1050 400V200C1050 172.4000000000001 1027.6 150 1000 150H700C672.4 150 650 172.4000000000001 650 200V400C650 427.6 672.4 450 700 450H800V550H400V450H500C527.6 450 550 427.6 550 400V200C550 172.4000000000001 527.6 150 500 150H200C172.4 150 150 172.4000000000001 150 200V400C150 427.6 172.4 450 200 450H300V600C300 627.6 322.4000000000001 650 350 650H550V750H450C422.4000000000001 750 400 772.4000000000001 400 800V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM450 350H250V250H450V350zM950 350H750V250H950V350zM700 950H500V850H700V950z","horizAdvX":"1200"},"outlet-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM11 7v4h2V7h-2zm3 5v4h2v-4h-2zm-6 0v4h2v-4H8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 850V650H650V850H550zM700 600V400H800V600H700zM400 600V400H500V600H400z","horizAdvX":"1200"},"outlet-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM11 7h2v4h-2V7zm3 5h2v4h-2v-4zm-6 0h2v4H8v-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 850H650V650H550V850zM700 600H800V400H700V600zM400 600H500V400H400V600z","horizAdvX":"1200"},"outlet-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm2-12v4h2v-4h-2zm-6 0v4h2v-4H8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM700 700V500H800V700H700zM400 700V500H500V700H400z","horizAdvX":"1200"},"outlet-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm2-10h2v4h-2v-4zm-6 0h2v4H8v-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM700 700H800V500H700V700zM400 700H500V500H400V700z","horizAdvX":"1200"},"page-separator":{"path":["M0 0h24v24H0z","M17 21v-4H7v4H5v-5a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v5h-2zM7 3v4h10V3h2v5a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3h2zM2 9l4 3-4 3V9zm20 0v6l-4-3 4-3z"],"unicode":"","glyph":"M850 150V350H350V150H250V400A50 50 0 0 0 300 450H900A50 50 0 0 0 950 400V150H850zM350 1050V850H850V1050H950V800A50 50 0 0 0 900 750H300A50 50 0 0 0 250 800V1050H350zM100 750L300 600L100 450V750zM1100 750V450L900 600L1100 750z","horizAdvX":"1200"},"pages-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V8h18v13a1 1 0 0 1-1 1zm1-16H3V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v3zM7 11v4h4v-4H7zm0 6v2h10v-2H7zm6-5v2h4v-2h-4z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V800H1050V150A50 50 0 0 0 1000 100zM1050 900H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V900zM350 650V450H550V650H350zM350 350V250H850V350H350zM650 600V500H850V600H650z","horizAdvX":"1200"},"pages-line":{"path":["M0 0h24v24H0z","M5 8v12h14V8H5zm0-2h14V4H5v2zm15 16H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM7 10h4v4H7v-4zm0 6h10v2H7v-2zm6-5h4v2h-4v-2z"],"unicode":"","glyph":"M250 800V200H950V800H250zM250 900H950V1000H250V900zM1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM350 700H550V500H350V700zM350 400H850V300H350V400zM650 650H850V550H650V650z","horizAdvX":"1200"},"paint-brush-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 9h6a1 1 0 0 1 1 1v3h1v6h-4v-6h1v-2H5a1 1 0 0 1-1-1v-2h2v1zm11.732 1.732l1.768-1.768 1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V750A50 50 0 0 0 1000 700H200A50 50 0 0 0 150 750V1000A50 50 0 0 0 200 1050zM300 600H600A50 50 0 0 0 650 550V400H700V100H500V400H550V500H250A50 50 0 0 0 200 550V650H300V600zM886.5999999999999 513.4000000000001L975 601.8000000000001L1063.4 513.4000000000001A125 125 0 1 0 886.5999999999999 513.4000000000001z","horizAdvX":"1200"},"paint-brush-line":{"path":["M0 0h24v24H0z","M5 5v3h14V5H5zM4 3h16a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 9h6a1 1 0 0 1 1 1v3h1v6h-4v-6h1v-2H5a1 1 0 0 1-1-1v-2h2v1zm11.732 1.732l1.768-1.768 1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M250 950V800H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V750A50 50 0 0 0 1000 700H200A50 50 0 0 0 150 750V1000A50 50 0 0 0 200 1050zM300 600H600A50 50 0 0 0 650 550V400H700V100H500V400H550V500H250A50 50 0 0 0 200 550V650H300V600zM886.5999999999999 513.4000000000001L975 601.8000000000001L1063.4 513.4000000000001A125 125 0 1 0 886.5999999999999 513.4000000000001z","horizAdvX":"1200"},"paint-fill":{"path":["M0 0h24v24H0z","M19.228 18.732l1.768-1.768 1.767 1.768a2.5 2.5 0 1 1-3.535 0zM8.878 1.08l11.314 11.313a1 1 0 0 1 0 1.415l-8.485 8.485a1 1 0 0 1-1.414 0l-8.485-8.485a1 1 0 0 1 0-1.415l7.778-7.778-2.122-2.121L8.88 1.08zM11 6.03L3.929 13.1H18.07L11 6.03z"],"unicode":"","glyph":"M961.4 263.4000000000001L1049.8000000000002 351.8000000000001L1138.15 263.4000000000001A125 125 0 1 0 961.4 263.4000000000001zM443.9 1146L1009.6 580.3499999999999A50 50 0 0 0 1009.6 509.6L585.35 85.3500000000001A50 50 0 0 0 514.6500000000001 85.3500000000001L90.4000000000001 509.6A50 50 0 0 0 90.4000000000001 580.3499999999999L479.3000000000001 969.25L373.2000000000001 1075.3L444.0000000000001 1146zM550 898.5L196.45 545H903.5L550 898.5z","horizAdvX":"1200"},"paint-line":{"path":["M0 0h24v24H0z","M19.228 18.732l1.768-1.768 1.767 1.768a2.5 2.5 0 1 1-3.535 0zM8.878 1.08l11.314 11.313a1 1 0 0 1 0 1.415l-8.485 8.485a1 1 0 0 1-1.414 0l-8.485-8.485a1 1 0 0 1 0-1.415l7.778-7.778-2.122-2.121L8.88 1.08zM11 6.03L3.929 13.1 11 20.173l7.071-7.071L11 6.029z"],"unicode":"","glyph":"M961.4 263.4000000000001L1049.8000000000002 351.8000000000001L1138.15 263.4000000000001A125 125 0 1 0 961.4 263.4000000000001zM443.9 1146L1009.6 580.3499999999999A50 50 0 0 0 1009.6 509.6L585.35 85.3500000000001A50 50 0 0 0 514.6500000000001 85.3500000000001L90.4000000000001 509.6A50 50 0 0 0 90.4000000000001 580.3499999999999L479.3000000000001 969.25L373.2000000000001 1075.3L444.0000000000001 1146zM550 898.5L196.45 545L550 191.3500000000001L903.55 544.9000000000001L550 898.55z","horizAdvX":"1200"},"palette-fill":{"path":["M0 0h24v24H0z","M12 2c5.522 0 10 3.978 10 8.889a5.558 5.558 0 0 1-5.556 5.555h-1.966c-.922 0-1.667.745-1.667 1.667 0 .422.167.811.422 1.1.267.3.434.689.434 1.122C13.667 21.256 12.9 22 12 22 6.478 22 2 17.522 2 12S6.478 2 12 2zM7.5 12a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM12 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 1100C876.0999999999999 1100 1100 901.1 1100 655.5500000000001A277.9 277.9 0 0 0 822.1999999999999 377.8000000000001H723.9C677.8 377.8000000000001 640.55 340.55 640.55 294.45C640.55 273.3499999999999 648.9 253.9 661.65 239.45C675 224.4499999999998 683.35 204.9999999999999 683.35 183.3499999999999C683.35 137.2000000000001 645 100 600 100C323.9 100 100 323.9000000000001 100 600S323.9 1100 600 1100zM375 600A75 75 0 1 1 375 750A75 75 0 0 1 375 600zM825 600A75 75 0 1 1 825 750A75 75 0 0 1 825 600zM600 750A75 75 0 1 1 600 900A75 75 0 0 1 600 750z","horizAdvX":"1200"},"palette-line":{"path":["M0 0h24v24H0z","M12 2c5.522 0 10 3.978 10 8.889a5.558 5.558 0 0 1-5.556 5.555h-1.966c-.922 0-1.667.745-1.667 1.667 0 .422.167.811.422 1.1.267.3.434.689.434 1.122C13.667 21.256 12.9 22 12 22 6.478 22 2 17.522 2 12S6.478 2 12 2zm-1.189 16.111a3.664 3.664 0 0 1 3.667-3.667h1.966A3.558 3.558 0 0 0 20 10.89C20 7.139 16.468 4 12 4a8 8 0 0 0-.676 15.972 3.648 3.648 0 0 1-.513-1.86zM7.5 12a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM12 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 1100C876.0999999999999 1100 1100 901.1 1100 655.5500000000001A277.9 277.9 0 0 0 822.1999999999999 377.8000000000001H723.9C677.8 377.8000000000001 640.55 340.55 640.55 294.45C640.55 273.3499999999999 648.9 253.9 661.65 239.45C675 224.4499999999998 683.35 204.9999999999999 683.35 183.3499999999999C683.35 137.2000000000001 645 100 600 100C323.9 100 100 323.9000000000001 100 600S323.9 1100 600 1100zM540.55 294.45A183.20000000000002 183.20000000000002 0 0 0 723.9 477.8H822.1999999999999A177.9 177.9 0 0 1 1000 655.5C1000 843.05 823.4 1000 600 1000A400 400 0 0 1 566.2 201.4A182.4 182.4 0 0 0 540.55 294.3999999999999zM375 600A75 75 0 1 0 375 750A75 75 0 0 0 375 600zM825 600A75 75 0 1 0 825 750A75 75 0 0 0 825 600zM600 750A75 75 0 1 0 600 900A75 75 0 0 0 600 750z","horizAdvX":"1200"},"pantone-fill":{"path":["M0 0h24v24H0z","M4 18.922l-1.35-.545a1 1 0 0 1-.552-1.302L4 12.367v6.555zM8.86 21H7a1 1 0 0 1-1-1v-6.078L8.86 21zM6.022 5.968l9.272-3.746a1 1 0 0 1 1.301.552l5.62 13.908a1 1 0 0 1-.553 1.302L12.39 21.73a1 1 0 0 1-1.302-.553L5.47 7.27a1 1 0 0 1 .553-1.301zM9 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M200 253.9L132.5 281.1500000000001A50 50 0 0 0 104.9 346.25L200 581.65V253.9zM443 150H350A50 50 0 0 0 300 200V503.9L443 150zM301.1 901.6L764.7 1088.9A50 50 0 0 0 829.75 1061.3L1110.75 365.9000000000001A50 50 0 0 0 1083.1 300.8000000000001L619.5 113.5A50 50 0 0 0 554.4000000000001 141.1500000000001L273.5 836.5A50 50 0 0 0 301.15 901.55zM450 750A50 50 0 1 1 450 850A50 50 0 0 1 450 750z","horizAdvX":"1200"},"pantone-line":{"path":["M0 0h24v24H0z","M5.764 8l-.295-.73a1 1 0 0 1 .553-1.302l9.272-3.746a1 1 0 0 1 1.301.552l5.62 13.908a1 1 0 0 1-.553 1.302L12.39 21.73a1 1 0 0 1-1.302-.553L11 20.96V21H7a1 1 0 0 1-1-1v-.27l-3.35-1.353a1 1 0 0 1-.552-1.302L5.764 8zM8 19h2.209L8 13.533V19zm-2-6.244l-1.673 4.141L6 17.608v-4.852zm1.698-5.309l4.87 12.054 7.418-2.997-4.87-12.053-7.418 2.996zm2.978 2.033a1 1 0 1 1-.749-1.855 1 1 0 0 1 .75 1.855z"],"unicode":"","glyph":"M288.2 800L273.45 836.5A50 50 0 0 0 301.1 901.6L764.7 1088.9A50 50 0 0 0 829.75 1061.3L1110.75 365.9000000000001A50 50 0 0 0 1083.1 300.8000000000001L619.5 113.5A50 50 0 0 0 554.4000000000001 141.1500000000001L550 152V150H350A50 50 0 0 0 300 200V213.5L132.5 281.1500000000001A50 50 0 0 0 104.9 346.25L288.2 800zM400 250H510.45L400 523.35V250zM300 562.2L216.35 355.1500000000001L300 319.6V562.2zM384.9000000000001 827.65L628.4000000000001 224.9499999999999L999.3 374.8L755.8 977.45L384.9 827.65zM533.8 726A50 50 0 1 0 496.35 818.75A50 50 0 0 0 533.85 726z","horizAdvX":"1200"},"paragraph":{"path":["M0 0h24v24H0z","M12 6v15h-2v-5a6 6 0 1 1 0-12h10v2h-3v15h-2V6h-3zm-2 0a4 4 0 1 0 0 8V6z"],"unicode":"","glyph":"M600 900V150H500V400A300 300 0 1 0 500 1000H1000V900H850V150H750V900H600zM500 900A200 200 0 1 1 500 500V900z","horizAdvX":"1200"},"parent-fill":{"path":["M0 0h24v24H0z","M7 11a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10.5 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0 1a4.5 4.5 0 0 1 4.5 4.5v.5h-9v-.5a4.5 4.5 0 0 1 4.5-4.5zM7 12a5 5 0 0 1 5 5v4H2v-4a5 5 0 0 1 5-5z"],"unicode":"","glyph":"M350 650A225 225 0 1 0 350 1100A225 225 0 0 0 350 650zM875 450A200 200 0 1 0 875 850A200 200 0 0 0 875 450zM875 400A225 225 0 0 0 1100 175V150H650V175A225 225 0 0 0 875 400zM350 600A250 250 0 0 0 600 350V150H100V350A250 250 0 0 0 350 600z","horizAdvX":"1200"},"parent-line":{"path":["M0 0h24v24H0z","M7 9a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10.5 2a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm2.5 6v-.5a2.5 2.5 0 1 0-5 0v.5h-2v-.5a4.5 4.5 0 1 1 9 0v.5h-2zm-10 0v-4a3 3 0 0 0-6 0v4H2v-4a5 5 0 0 1 10 0v4h-2z"],"unicode":"","glyph":"M350 750A125 125 0 1 1 350 1000A125 125 0 0 1 350 750zM350 650A225 225 0 1 0 350 1100A225 225 0 0 0 350 650zM875 550A100 100 0 1 1 875 750A100 100 0 0 1 875 550zM875 450A200 200 0 1 0 875 850A200 200 0 0 0 875 450zM1000 150V175A125 125 0 1 1 750 175V150H650V175A225 225 0 1 0 1100 175V150H1000zM500 150V350A150 150 0 0 1 200 350V150H100V350A250 250 0 0 0 600 350V150H500z","horizAdvX":"1200"},"parentheses-fill":{"path":["M0 0h24v24H0z","M6.923 21C5.113 18.664 4 15.493 4 12c0-3.493 1.113-6.664 2.923-9h2.014C7.235 5.388 6.2 8.542 6.2 12s1.035 6.612 2.737 9H6.923zm10.151 0H15.06c1.702-2.388 2.737-5.542 2.737-9s-1.035-6.612-2.737-9h2.014c1.81 2.336 2.923 5.507 2.923 9 0 3.493-1.112 6.664-2.923 9z"],"unicode":"","glyph":"M346.15 150C255.6500000000001 266.8 200 425.35 200 600C200 774.6500000000001 255.65 933.2 346.15 1050H446.85C361.75 930.6 310 772.9000000000001 310 600S361.75 269.3999999999999 446.8500000000001 150H346.15zM853.6999999999999 150H753C838.1 269.3999999999999 889.85 427.1 889.85 600S838.1 930.6 753 1050H853.7C944.2 933.2 999.85 774.6500000000001 999.85 600C999.85 425.35 944.2499999999998 266.8 853.6999999999999 150z","horizAdvX":"1200"},"parentheses-line":{"path":["M0 0h24v24H0z","M6.923 21C5.113 18.664 4 15.493 4 12c0-3.493 1.113-6.664 2.923-9h2.014C7.235 5.388 6.2 8.542 6.2 12s1.035 6.612 2.737 9H6.923zm10.151 0H15.06c1.702-2.388 2.737-5.542 2.737-9s-1.035-6.612-2.737-9h2.014c1.81 2.336 2.923 5.507 2.923 9 0 3.493-1.112 6.664-2.923 9z"],"unicode":"","glyph":"M346.15 150C255.6500000000001 266.8 200 425.35 200 600C200 774.6500000000001 255.65 933.2 346.15 1050H446.85C361.75 930.6 310 772.9000000000001 310 600S361.75 269.3999999999999 446.8500000000001 150H346.15zM853.6999999999999 150H753C838.1 269.3999999999999 889.85 427.1 889.85 600S838.1 930.6 753 1050H853.7C944.2 933.2 999.85 774.6500000000001 999.85 600C999.85 425.35 944.2499999999998 266.8 853.6999999999999 150z","horizAdvX":"1200"},"parking-box-fill":{"path":["M0 0h24v24H0z","M11 14h1.5a3.5 3.5 0 0 0 0-7H9v10h2v-3zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7 6h1.5a1.5 1.5 0 0 1 0 3H11V9z"],"unicode":"","glyph":"M550 500H625A175 175 0 0 1 625 850H450V350H550V500zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550 750H625A75 75 0 0 0 625 600H550V750z","horizAdvX":"1200"},"parking-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm4 2h3.5a3.5 3.5 0 0 1 0 7H11v3H9V7zm2 2v3h1.5a1.5 1.5 0 0 0 0-3H11z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM450 850H625A175 175 0 0 0 625 500H550V350H450V850zM550 750V600H625A75 75 0 0 1 625 750H550z","horizAdvX":"1200"},"parking-fill":{"path":["M0 0h24v24H0z","M6 3h7a6 6 0 1 1 0 12h-3v6H6V3zm4 4v4h3a2 2 0 1 0 0-4h-3z"],"unicode":"","glyph":"M300 1050H650A300 300 0 1 0 650 450H500V150H300V1050zM500 850V650H650A100 100 0 1 1 650 850H500z","horizAdvX":"1200"},"parking-line":{"path":["M0 0h24v24H0z","M6 3h7a6 6 0 1 1 0 12H8v6H6V3zm2 2v8h5a4 4 0 1 0 0-8H8z"],"unicode":"","glyph":"M300 1050H650A300 300 0 1 0 650 450H400V150H300V1050zM400 950V550H650A200 200 0 1 1 650 950H400z","horizAdvX":"1200"},"passport-fill":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16zm-4 14H8v2h8v-2zM12 6a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm0 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000zM800 400H400V300H800V400zM600 900A200 200 0 1 1 600 500A200 200 0 0 1 600 900zM600 800A100 100 0 1 0 600 600A100 100 0 0 0 600 800z","horizAdvX":"1200"},"passport-line":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16zm-1 2H5v16h14V4zm-3 12v2H8v-2h8zM12 6a4 4 0 1 1 0 8 4 4 0 0 1 0-8zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000zM950 1000H250V200H950V1000zM800 400V300H400V400H800zM600 900A200 200 0 1 0 600 500A200 200 0 0 0 600 900zM600 800A100 100 0 1 1 600 600A100 100 0 0 1 600 800z","horizAdvX":"1200"},"patreon-fill":{"path":["M0 0h24v24H0z","M15 17a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15zM2 2h4v20H2V2z"],"unicode":"","glyph":"M750 350A375 375 0 1 0 750 1100A375 375 0 0 0 750 350zM100 1100H300V100H100V1100z","horizAdvX":"1200"},"patreon-line":{"path":["M0 0h24v24H0z","M15 17a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15zm0-2a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM2 2h5v20H2V2zm2 2v16h1V4H4z"],"unicode":"","glyph":"M750 350A375 375 0 1 0 750 1100A375 375 0 0 0 750 350zM750 450A275 275 0 1 1 750 1000A275 275 0 0 1 750 450zM100 1100H350V100H100V1100zM200 1000V200H250V1000H200z","horizAdvX":"1200"},"pause-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM9 9v6h2V9H9zm4 0v6h2V9h-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM450 750V450H550V750H450zM650 750V450H750V750H650z","horizAdvX":"1200"},"pause-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM9 9h2v6H9V9zm4 0h2v6h-2V9z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 750H550V450H450V750zM650 750H750V450H650V750z","horizAdvX":"1200"},"pause-fill":{"path":["M0 0h24v24H0z","M6 5h2v14H6V5zm10 0h2v14h-2V5z"],"unicode":"","glyph":"M300 950H400V250H300V950zM800 950H900V250H800V950z","horizAdvX":"1200"},"pause-line":{"path":["M0 0h24v24H0z","M6 5h2v14H6V5zm10 0h2v14h-2V5z"],"unicode":"","glyph":"M300 950H400V250H300V950zM800 950H900V250H800V950z","horizAdvX":"1200"},"pause-mini-fill":{"path":["M0 0h24v24H0z","M15 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7zM7 7a1 1 0 1 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M750 850A50 50 0 0 0 850 850V350A50 50 0 1 0 750 350V850zM350 850A50 50 0 1 0 450 850V350A50 50 0 1 0 350 350V850z","horizAdvX":"1200"},"pause-mini-line":{"path":["M0 0h24v24H0z","M15 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7zM7 7a1 1 0 1 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M750 850A50 50 0 0 0 850 850V350A50 50 0 1 0 750 350V850zM350 850A50 50 0 1 0 450 850V350A50 50 0 1 0 350 350V850z","horizAdvX":"1200"},"paypal-fill":{"path":["M0 0h24v24H0z","M20.067 8.478c.492.88.556 2.014.3 3.327-.74 3.806-3.276 5.12-6.514 5.12h-.5a.805.805 0 0 0-.794.68l-.04.22-.63 3.993-.032.17a.804.804 0 0 1-.794.679H7.72a.483.483 0 0 1-.477-.558L7.418 21h1.518l.95-6.02h1.385c4.678 0 7.75-2.203 8.796-6.502zm-2.96-5.09c.762.868.983 1.81.752 3.285-.019.123-.04.24-.062.36-.735 3.773-3.089 5.446-6.956 5.446H8.957c-.63 0-1.174.414-1.354 1.002l-.014-.002-.93 5.894H3.121a.051.051 0 0 1-.05-.06l2.598-16.51A.95.95 0 0 1 6.607 2h5.976c2.183 0 3.716.469 4.523 1.388z"],"unicode":"","glyph":"M1003.35 776.1C1027.95 732.0999999999999 1031.15 675.4000000000001 1018.35 609.75C981.3500000000003 419.45 854.5500000000001 353.75 692.6500000000001 353.75H667.6500000000001A40.25 40.25 0 0 1 627.95 319.75L625.95 308.75L594.45 109.1000000000001L592.85 100.5999999999999A40.2 40.2 0 0 0 553.15 66.6500000000001H386A24.15 24.15 0 0 0 362.15 94.5500000000002L370.9000000000001 150H446.8L494.3 451H563.55C797.4499999999999 451 951.05 561.15 1003.35 776.0999999999999zM855.3499999999999 1030.6C893.45 987.2 904.5 940.1 892.9499999999999 866.35C892 860.2 890.9499999999999 854.3499999999999 889.8499999999999 848.3499999999999C853.0999999999999 659.6999999999999 735.3999999999999 576.0500000000001 542.0499999999998 576.0500000000001H447.85C416.35 576.0500000000001 389.1500000000001 555.35 380.1500000000001 525.95L379.4500000000001 526.0500000000001L332.9500000000001 231.3500000000002H156.05A2.55 2.55 0 0 0 153.55 234.35L283.4500000000001 1059.8500000000001A47.5 47.5 0 0 0 330.35 1100H629.15C738.3 1100 814.9499999999999 1076.55 855.3000000000001 1030.6z","horizAdvX":"1200"},"paypal-line":{"path":["M0 0h24v24H0z","M8.495 20.667h1.551l.538-3.376a2.805 2.805 0 0 1 2.77-2.366h.5c2.677 0 4.06-.983 4.55-3.503.208-1.066.117-1.73-.171-2.102-1.207 3.054-3.79 4.16-6.962 4.16h-.884c-.384 0-.794.209-.852.58l-1.04 6.607zm-4.944-.294a.551.551 0 0 1-.544-.637L5.68 2.776A.92.92 0 0 1 6.59 2h6.424c2.212 0 3.942.467 4.899 1.558.87.99 1.123 2.084.871 3.692.36.191.668.425.916.706.818.933.978 2.26.668 3.85-.74 3.805-3.276 5.12-6.514 5.12h-.5a.805.805 0 0 0-.794.679l-.702 4.383a.804.804 0 0 1-.794.679H6.72a.483.483 0 0 1-.477-.558l.274-1.736H3.55zm6.836-8.894h.884c3.19 0 4.895-1.212 5.483-4.229.02-.101.037-.203.053-.309.166-1.06.05-1.553-.398-2.063-.465-.53-1.603-.878-3.396-.878h-5.5L5.246 18.373h1.561l.73-4.628.007.001a2.915 2.915 0 0 1 2.843-2.267z"],"unicode":"","glyph":"M424.75 166.6499999999999H502.3L529.1999999999999 335.45A140.25 140.25 0 0 0 667.6999999999999 453.75H692.6999999999999C826.55 453.75 895.6999999999999 502.9 920.2 628.9C930.6 682.2 926.05 715.4 911.65 734C851.3 581.3 722.1500000000001 526 563.5500000000001 526H519.35C500.15 526 479.65 515.55 476.75 497L424.7500000000001 166.6499999999999zM177.55 181.3499999999999A27.55 27.55 0 0 0 150.35 213.1999999999999L284 1061.2A46 46 0 0 0 329.5 1100H650.6999999999999C761.3 1100 847.8 1076.65 895.65 1022.1C939.15 972.6 951.8 917.9 939.2 837.5C957.2 827.95 972.6 816.25 985 802.2C1025.9 755.55 1033.9 689.2 1018.4 609.7C981.4 419.4500000000001 854.5999999999999 353.7000000000001 692.6999999999999 353.7000000000001H667.6999999999999A40.25 40.25 0 0 1 627.9999999999999 319.7500000000001L592.9 100.6000000000001A40.2 40.2 0 0 0 553.1999999999999 66.6500000000003H336A24.15 24.15 0 0 0 312.15 94.5500000000002L325.85 181.3500000000003H177.5zM519.35 626.05H563.5500000000001C723.0500000000001 626.05 808.3000000000001 686.65 837.7 837.5C838.7 842.55 839.5500000000001 847.65 840.3500000000001 852.95C848.6500000000001 905.95 842.8500000000001 930.6 820.4500000000002 956.1C797.2000000000002 982.6 740.3000000000002 1000 650.6500000000001 1000H375.6500000000001L262.3 281.3499999999999H340.35L376.85 512.75L377.2000000000001 512.6999999999999A145.75 145.75 0 0 0 519.35 626.05z","horizAdvX":"1200"},"pen-nib-fill":{"path":["M0 0h24v24H0z","M4.929 21.485l5.846-5.846a2 2 0 1 0-1.414-1.414l-5.846 5.846-1.06-1.06c2.827-3.3 3.888-6.954 5.302-13.082l6.364-.707 5.657 5.657-.707 6.364c-6.128 1.414-9.782 2.475-13.081 5.303l-1.061-1.06zM16.596 2.04l6.347 6.346a.5.5 0 0 1-.277.848l-1.474.23-5.656-5.656.212-1.485a.5.5 0 0 1 .848-.283z"],"unicode":"","glyph":"M246.45 125.75L538.75 418.0500000000001A100 100 0 1 1 468.05 488.75L175.75 196.4500000000001L122.75 249.4500000000001C264.1 414.4500000000001 317.15 597.1500000000001 387.85 903.55L706.05 938.9L988.9 656.0500000000001L953.55 337.85C647.1499999999999 267.15 464.4499999999999 214.1 299.5 72.7000000000001L246.45 125.7000000000001zM829.8 1098L1147.15 780.7A25 25 0 0 0 1133.3 738.3L1059.6 726.8L776.8000000000001 1009.6L787.4000000000001 1083.85A25 25 0 0 0 829.8 1098z","horizAdvX":"1200"},"pen-nib-line":{"path":["M0 0h24v24H0z","M16.596 1.04l6.347 6.346a.5.5 0 0 1-.277.848l-1.474.23-5.656-5.656.212-1.485a.5.5 0 0 1 .848-.283zM4.595 20.15c3.722-3.331 7.995-4.328 12.643-5.52l.446-4.018-4.297-4.297-4.018.446c-1.192 4.648-2.189 8.92-5.52 12.643L2.454 18.01c2.828-3.3 3.89-6.953 5.303-13.081l6.364-.707 5.657 5.657-.707 6.364c-6.128 1.414-9.782 2.475-13.081 5.303L4.595 20.15zm5.284-6.03a2 2 0 1 1 2.828-2.828A2 2 0 0 1 9.88 14.12z"],"unicode":"","glyph":"M829.8 1148L1147.15 830.7A25 25 0 0 0 1133.3 788.3L1059.6 776.8L776.8000000000001 1059.6L787.4000000000001 1133.85A25 25 0 0 0 829.8 1148zM229.75 192.5000000000001C415.85 359.0500000000001 629.5 408.9000000000001 861.9 468.5L884.2 669.4000000000001L669.35 884.25L468.45 861.95C408.85 629.5500000000001 359 415.9500000000002 192.45 229.8L122.7 299.4999999999999C264.1 464.5 317.2 647.1499999999999 387.85 953.55L706.05 988.8999999999997L988.9 706.05L953.55 387.8499999999999C647.1499999999999 317.1499999999999 464.4499999999999 264.0999999999998 299.5 122.6999999999998L229.75 192.5000000000001zM493.95 494.0000000000001A100 100 0 1 0 635.3499999999999 635.4000000000001A100 100 0 0 0 494.0000000000001 494z","horizAdvX":"1200"},"pencil-fill":{"path":["M0 0h24v24H0z","M12.9 6.858l4.242 4.243L7.242 21H3v-4.243l9.9-9.9zm1.414-1.414l2.121-2.122a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414l-2.122 2.121-4.242-4.242z"],"unicode":"","glyph":"M645 857.1L857.1 644.95L362.1 150H150V362.1500000000001L645 857.1500000000001zM715.7 927.8L821.7499999999999 1033.9A50 50 0 0 0 892.45 1033.9L1033.9 892.45A50 50 0 0 0 1033.9 821.75L927.8 715.7L715.7 927.8z","horizAdvX":"1200"},"pencil-line":{"path":["M0 0h24v24H0z","M15.728 9.686l-1.414-1.414L5 17.586V19h1.414l9.314-9.314zm1.414-1.414l1.414-1.414-1.414-1.414-1.414 1.414 1.414 1.414zM7.242 21H3v-4.243L16.435 3.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 21z"],"unicode":"","glyph":"M786.4 715.7L715.7 786.4L250 320.7000000000001V250H320.7L786.4 715.7zM857.1 786.4L927.8 857.0999999999999L857.1 927.8L786.4 857.0999999999999L857.1 786.4zM362.1 150H150V362.1500000000001L821.7499999999999 1033.9A50 50 0 0 0 892.45 1033.9L1033.9 892.45A50 50 0 0 0 1033.9 821.75L362.1500000000001 150z","horizAdvX":"1200"},"pencil-ruler-2-fill":{"path":["M0 0h24v24H0z","M5.636 12.707l1.828 1.829L8.88 13.12 7.05 11.293l1.414-1.414 1.829 1.828 1.414-1.414L9.88 8.464l1.414-1.414L13.12 8.88l1.415-1.415-1.829-1.828 2.829-2.828a1 1 0 0 1 1.414 0l4.242 4.242a1 1 0 0 1 0 1.414L8.464 21.192a1 1 0 0 1-1.414 0L2.808 16.95a1 1 0 0 1 0-1.414l2.828-2.829zm8.485 5.656l4.243-4.242L21 16.757V21h-4.242l-2.637-2.637zM5.636 9.878L2.807 7.05a1 1 0 0 1 0-1.415l2.829-2.828a1 1 0 0 1 1.414 0L9.88 5.635 5.636 9.878z"],"unicode":"","glyph":"M281.8 564.65L373.2000000000001 473.1999999999999L444.0000000000001 544L352.5 635.35L423.2000000000001 706.05L514.6500000000001 614.6500000000001L585.35 685.35L494.0000000000001 776.8L564.7 847.5L656 756L726.75 826.75L635.3 918.15L776.75 1059.55A50 50 0 0 0 847.45 1059.55L1059.5500000000002 847.45A50 50 0 0 0 1059.5500000000002 776.75L423.2000000000001 140.4000000000001A50 50 0 0 0 352.5000000000001 140.4000000000001L140.4 352.5A50 50 0 0 0 140.4 423.2000000000001L281.8 564.6500000000001zM706.05 281.85L918.1999999999998 493.95L1050 362.15V150H837.9L706.05 281.85zM281.8 706.1L140.35 847.5A50 50 0 0 0 140.35 918.25L281.8 1059.65A50 50 0 0 0 352.5 1059.65L494.0000000000001 918.25L281.8 706.1z","horizAdvX":"1200"},"pencil-ruler-2-line":{"path":["M0 0h24v24H0z","M7.05 14.121L4.93 16.243l2.828 2.828L19.071 7.757 16.243 4.93 14.12 7.05l1.415 1.414L14.12 9.88l-1.414-1.415-1.414 1.415 1.414 1.414-1.414 1.414-1.414-1.414-1.415 1.414 1.415 1.414-1.415 1.415L7.05 14.12zm9.9-11.313l4.242 4.242a1 1 0 0 1 0 1.414L8.464 21.192a1 1 0 0 1-1.414 0L2.808 16.95a1 1 0 0 1 0-1.414L15.536 2.808a1 1 0 0 1 1.414 0zM14.12 18.363l1.415-1.414 2.242 2.243h1.414v-1.414l-2.242-2.243 1.414-1.414L21 16.757V21h-4.242l-2.637-2.637zM5.636 9.878L2.807 7.05a1 1 0 0 1 0-1.415l2.829-2.828a1 1 0 0 1 1.414 0L9.88 5.635 8.464 7.05 6.343 4.928 4.929 6.343l2.121 2.12-1.414 1.415z"],"unicode":"","glyph":"M352.5 493.9499999999999L246.5 387.85L387.9 246.4500000000001L953.55 812.1500000000001L812.15 953.5L706 847.5L776.75 776.8L706 706L635.3 776.75L564.6 706L635.3 635.3000000000001L564.6 564.6000000000001L493.9 635.3000000000001L423.1500000000001 564.6000000000001L493.9 493.9000000000001L423.1500000000001 423.1500000000001L352.5 494zM847.5 1059.6L1059.6 847.5A50 50 0 0 0 1059.6 776.8L423.2000000000001 140.4000000000001A50 50 0 0 0 352.5000000000001 140.4000000000001L140.4 352.5A50 50 0 0 0 140.4 423.2000000000001L776.8 1059.6A50 50 0 0 0 847.5 1059.6zM706 281.85L776.75 352.5500000000001L888.85 240.4000000000002H959.5500000000002V311.1000000000003L847.45 423.2500000000003L918.1500000000002 493.9500000000003L1050 362.15V150H837.9L706.05 281.85zM281.8 706.1L140.35 847.5A50 50 0 0 0 140.35 918.25L281.8 1059.65A50 50 0 0 0 352.5 1059.65L494.0000000000001 918.25L423.2000000000001 847.5L317.15 953.6L246.45 882.85L352.5000000000001 776.8499999999999L281.8000000000001 706.1z","horizAdvX":"1200"},"pencil-ruler-fill":{"path":["M0 0h24v24H0z","M5 18v2h4v-2H5zM3 7l4-5 4 5v15H3V7zm18 1h-2v2h2v2h-3v2h3v2h-2v2h2v3a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v3z"],"unicode":"","glyph":"M250 300V200H450V300H250zM150 850L350 1100L550 850V100H150V850zM1050 800H950V700H1050V600H900V500H1050V400H950V300H1050V150A50 50 0 0 0 1000 100H700A50 50 0 0 0 650 150V950A50 50 0 0 0 700 1000H1000A50 50 0 0 0 1050 950V800z","horizAdvX":"1200"},"pencil-ruler-line":{"path":["M0 0h24v24H0z","M5 8v12h4V8H5zM3 7l4-5 4 5v15H3V7zm16 9v-2h-3v-2h3v-2h-2V8h2V6h-4v14h4v-2h-2v-2h2zM14 4h6a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 800V200H450V800H250zM150 850L350 1100L550 850V100H150V850zM950 400V500H800V600H950V700H850V800H950V900H750V200H950V300H850V400H950zM700 1000H1000A50 50 0 0 0 1050 950V150A50 50 0 0 0 1000 100H700A50 50 0 0 0 650 150V950A50 50 0 0 0 700 1000z","horizAdvX":"1200"},"percent-fill":{"path":["M0 0h24v24H0z","M17.5 21a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm-11-11a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm12.571-6.485l1.414 1.414L4.93 20.485l-1.414-1.414L19.07 3.515z"],"unicode":"","glyph":"M875 150A175 175 0 1 0 875 500A175 175 0 0 0 875 150zM325 700A175 175 0 1 0 325 1050A175 175 0 0 0 325 700zM953.55 1024.25L1024.25 953.55L246.5 175.75L175.8 246.4500000000001L953.5 1024.25z","horizAdvX":"1200"},"percent-line":{"path":["M0 0h24v24H0z","M17.5 21a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-11-9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm12.571-4.485l1.414 1.414L4.93 20.485l-1.414-1.414L19.07 3.515z"],"unicode":"","glyph":"M875 150A175 175 0 1 0 875 500A175 175 0 0 0 875 150zM875 250A75 75 0 1 1 875 400A75 75 0 0 1 875 250zM325 700A175 175 0 1 0 325 1050A175 175 0 0 0 325 700zM325 800A75 75 0 1 1 325 950A75 75 0 0 1 325 800zM953.55 1024.25L1024.25 953.55L246.5 175.75L175.8 246.4500000000001L953.5 1024.25z","horizAdvX":"1200"},"phone-camera-fill":{"path":["M0 0h24v24H0z","M14.803 4A6 6 0 0 0 23 12.197V19c0 .553-.44 1.001-1.002 1.001H2.002A1 1 0 0 1 1 19V5c0-.552.44-1 1.002-1h12.8zM20 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-1 6v3h2v-3h-2z"],"unicode":"","glyph":"M740.1500000000001 1000A300 300 0 0 1 1150 590.1500000000001V250C1150 222.3499999999999 1128 199.9499999999999 1099.9 199.9499999999999H100.1A50 50 0 0 0 50 250V950C50 977.6 72 1000 100.1 1000H740.1zM1000 650A200 200 0 1 0 1000 1050A200 200 0 0 0 1000 650zM1000 750A100 100 0 1 1 1000 950A100 100 0 0 1 1000 750zM950 450V300H1050V450H950z","horizAdvX":"1200"},"phone-camera-line":{"path":["M0 0h24v24H0z","M14.803 4a5.96 5.96 0 0 0-.72 2H3v12h18v-5.083a5.96 5.96 0 0 0 2-.72V19c0 .553-.44 1.001-1.002 1.001H2.002A1 1 0 0 1 1 19V5c0-.552.44-1 1.002-1h12.8zM20 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm-2 2h2v3h-2v-3z"],"unicode":"","glyph":"M740.1500000000001 1000A298 298 0 0 1 704.15 900H150V300H1050V554.15A298 298 0 0 1 1150 590.1500000000001V250C1150 222.3499999999999 1128 199.9499999999999 1099.9 199.9499999999999H100.1A50 50 0 0 0 50 250V950C50 977.6 72 1000 100.1 1000H740.1zM1000 750A100 100 0 1 1 1000 950A100 100 0 0 1 1000 750zM1000 650A200 200 0 1 0 1000 1050A200 200 0 0 0 1000 650zM900 550H1000V400H900V550z","horizAdvX":"1200"},"phone-fill":{"path":["M0 0h24v24H0z","M21 16.42v3.536a1 1 0 0 1-.93.998c-.437.03-.794.046-1.07.046-8.837 0-16-7.163-16-16 0-.276.015-.633.046-1.07A1 1 0 0 1 4.044 3H7.58a.5.5 0 0 1 .498.45c.023.23.044.413.064.552A13.901 13.901 0 0 0 9.35 8.003c.095.2.033.439-.147.567l-2.158 1.542a13.047 13.047 0 0 0 6.844 6.844l1.54-2.154a.462.462 0 0 1 .573-.149 13.901 13.901 0 0 0 4 1.205c.139.02.322.042.55.064a.5.5 0 0 1 .449.498z"],"unicode":"","glyph":"M1050 378.9999999999999V202.1999999999998A50 50 0 0 0 1003.5 152.2999999999997C981.65 150.7999999999997 963.8 149.9999999999998 950 149.9999999999998C508.15 149.9999999999998 150 508.1499999999999 150 949.9999999999998C150 963.7999999999998 150.75 981.6499999999997 152.3 1003.4999999999998A50 50 0 0 0 202.2 1050H379A25 25 0 0 0 403.9 1027.5C405.05 1016 406.1 1006.85 407.1 999.9A695.05 695.05 0 0 1 467.5 799.85C472.25 789.85 469.15 777.9 460.15 771.5L352.25 694.4A652.35 652.35 0 0 1 694.4499999999999 352.2000000000001L771.4499999999999 459.9A23.1 23.1 0 0 0 800.0999999999999 467.35A695.05 695.05 0 0 1 1000.1 407.1C1007.05 406.1 1016.2 405 1027.6 403.9A25 25 0 0 0 1050.05 378.9999999999999z","horizAdvX":"1200"},"phone-find-fill":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v8.529A6 6 0 0 0 9 16c0 3.238 2.76 6 6 6H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-3 10a4 4 0 0 1 3.446 6.032l2.21 2.21-1.413 1.415-2.211-2.21A4 4 0 1 1 15 12zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V623.55A300 300 0 0 1 450 400C450 238.1 588 100 750 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM750 600A200 200 0 0 0 922.3 298.4L1032.8000000000002 187.9L962.15 117.1500000000001L851.6000000000001 227.6500000000001A200 200 0 1 0 750 600zM750 500A100 100 0 1 1 750 300A100 100 0 0 1 750 500z","horizAdvX":"1200"},"phone-find-line":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v8h-2V4H7v16h4v2H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-3 10a4 4 0 0 1 3.446 6.032l2.21 2.21-1.413 1.415-2.212-2.21A4 4 0 1 1 15 12zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V650H850V1000H350V200H550V100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM750 600A200 200 0 0 0 922.3 298.4L1032.8000000000002 187.9L962.15 117.1500000000001L851.5500000000001 227.6500000000001A200 200 0 1 0 750 600zM750 500A100 100 0 1 1 750 300A100 100 0 0 1 750 500z","horizAdvX":"1200"},"phone-line":{"path":["M0 0h24v24H0z","M9.366 10.682a10.556 10.556 0 0 0 3.952 3.952l.884-1.238a1 1 0 0 1 1.294-.296 11.422 11.422 0 0 0 4.583 1.364 1 1 0 0 1 .921.997v4.462a1 1 0 0 1-.898.995c-.53.055-1.064.082-1.602.082C9.94 21 3 14.06 3 5.5c0-.538.027-1.072.082-1.602A1 1 0 0 1 4.077 3h4.462a1 1 0 0 1 .997.921A11.422 11.422 0 0 0 10.9 8.504a1 1 0 0 1-.296 1.294l-1.238.884zm-2.522-.657l1.9-1.357A13.41 13.41 0 0 1 7.647 5H5.01c-.006.166-.009.333-.009.5C5 12.956 11.044 19 18.5 19c.167 0 .334-.003.5-.01v-2.637a13.41 13.41 0 0 1-3.668-1.097l-1.357 1.9a12.442 12.442 0 0 1-1.588-.75l-.058-.033a12.556 12.556 0 0 1-4.702-4.702l-.033-.058a12.442 12.442 0 0 1-.75-1.588z"],"unicode":"","glyph":"M468.3 665.9A527.8 527.8 0 0 1 665.9 468.3L710.1 530.1999999999999A50 50 0 0 0 774.8000000000001 544.9999999999999A571.1 571.1 0 0 1 1003.95 476.7999999999998A50 50 0 0 0 1050 426.95V203.8499999999999A50 50 0 0 0 1005.1 154.0999999999999C978.6 151.3499999999999 951.9 149.9999999999998 925 149.9999999999998C497 150 150 497 150 925C150 951.9 151.35 978.6 154.1 1005.1A50 50 0 0 0 203.85 1050H426.95A50 50 0 0 0 476.8 1003.95A571.1 571.1 0 0 1 545 774.8A50 50 0 0 0 530.2 710.1L468.3000000000001 665.9zM342.2 698.75L437.2 766.5999999999999A670.5 670.5 0 0 0 382.35 950H250.5C250.2 941.7 250.05 933.35 250.05 925C250 552.2 552.2 250 925 250C933.3500000000003 250 941.7 250.15 950 250.5000000000001V382.3500000000002A670.5 670.5 0 0 0 766.6 437.2000000000001L698.7500000000001 342.2000000000001A622.1 622.1 0 0 0 619.35 379.7000000000001L616.45 381.3500000000002A627.8 627.8 0 0 0 381.35 616.4500000000002L379.7 619.3500000000001A622.1 622.1 0 0 0 342.2 698.75z","horizAdvX":"1200"},"phone-lock-fill":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1l.001 7.1A5.002 5.002 0 0 0 13.1 14H12v8H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm0 10a3 3 0 0 1 3 3v1h1v5a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-5h1v-1a3 3 0 0 1 3-3zm0 2c-.513 0-1 .45-1 1v1h2v-1a1 1 0 0 0-1-1z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050L950.05 695A250.09999999999997 250.09999999999997 0 0 1 655 500H600V100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM900 600A150 150 0 0 0 1050 450V400H1100V150A50 50 0 0 0 1050 100H750A50 50 0 0 0 700 150V400H750V450A150 150 0 0 0 900 600zM900 500C874.3499999999999 500 850 477.5 850 450V400H950V450A50 50 0 0 1 900 500z","horizAdvX":"1200"},"phone-lock-line":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v7h-2V4H7v16h5v2H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm0 10a3 3 0 0 1 3 3v1h1v5a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-5h1v-1a3 3 0 0 1 3-3zm2 6h-4v2h4v-2zm-2-4c-.508 0-1 .45-1 1v1h2v-1a1 1 0 0 0-1-1z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V700H850V1000H350V200H600V100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM900 600A150 150 0 0 0 1050 450V400H1100V150A50 50 0 0 0 1050 100H750A50 50 0 0 0 700 150V400H750V450A150 150 0 0 0 900 600zM1000 300H800V200H1000V300zM900 500C874.6 500 850 477.5 850 450V400H950V450A50 50 0 0 1 900 500z","horizAdvX":"1200"},"picture-in-picture-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zM6.707 6.293l2.25 2.25L11 6.5V12H5.5l2.043-2.043-2.25-2.25 1.414-1.414z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM335.35 885.3499999999999L447.85 772.85L550 875V600H275L377.1500000000001 702.15L264.6500000000001 814.65L335.35 885.3499999999999z","horizAdvX":"1200"},"picture-in-picture-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-1 2h-6v4h6v-4zM6.707 6.293l2.25 2.25L11 6.5V12H5.5l2.043-2.043-2.25-2.25 1.414-1.414z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM1000 450H700V250H1000V450zM335.35 885.3499999999999L447.85 772.85L550 875V600H275L377.1500000000001 702.15L264.6500000000001 814.65L335.35 885.3499999999999z","horizAdvX":"1200"},"picture-in-picture-exit-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-9.5-6L9.457 9.043l2.25 2.25-1.414 1.414-2.25-2.25L6 12.5V7h5.5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM575 850L472.85 747.85L585.35 635.35L514.6500000000001 564.6500000000001L402.1500000000001 677.1500000000001L300 575V850H575z","horizAdvX":"1200"},"picture-in-picture-exit-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-1 2h-6v4h6v-4zm-8.5-8L9.457 9.043l2.25 2.25-1.414 1.414-2.25-2.25L6 12.5V7h5.5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM1000 450H700V250H1000V450zM575 850L472.85 747.85L585.35 635.35L514.6500000000001 564.6500000000001L402.1500000000001 677.1500000000001L300 575V850H575z","horizAdvX":"1200"},"picture-in-picture-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050z","horizAdvX":"1200"},"picture-in-picture-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-1 2h-6v4h6v-4z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM1000 450H700V250H1000V450z","horizAdvX":"1200"},"pie-chart-2-fill":{"path":["M0 0h24v24H0z","M11 2.05V13h10.95c-.501 5.053-4.765 9-9.95 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm2-1.507C18.553 1.02 22.979 5.447 23.457 11H13V.543z"],"unicode":"","glyph":"M550 1097.5V550H1097.5C1072.4499999999998 297.3499999999999 859.2499999999999 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM650 1172.85C927.65 1149 1148.95 927.65 1172.8500000000001 650H650V1172.85z","horizAdvX":"1200"},"pie-chart-2-line":{"path":["M0 0h24v24H0z","M11 .543c.33-.029.663-.043 1-.043C18.351.5 23.5 5.649 23.5 12c0 .337-.014.67-.043 1h-1.506c-.502 5.053-4.766 9-9.951 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95V.542zM11 13V4.062A8.001 8.001 0 0 0 12 20a8.001 8.001 0 0 0 7.938-7H11zm10.448-2A9.503 9.503 0 0 0 13 2.552V11h8.448z"],"unicode":"","glyph":"M550 1172.85C566.5 1174.3 583.15 1175 600 1175C917.55 1175 1175 917.55 1175 600C1175 583.15 1174.3 566.5 1172.8500000000001 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5V1172.9zM550 550V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400.04999999999995 400.04999999999995 0 0 1 996.9 550H550zM1072.4 650A475.15000000000003 475.15000000000003 0 0 1 650 1072.4V650H1072.4z","horizAdvX":"1200"},"pie-chart-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13.9 10H11V7.1a5.002 5.002 0 0 0 1 9.9 5.002 5.002 0 0 0 4.9-4zm0-2A5.006 5.006 0 0 0 13 7.1V11h3.9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM844.9999999999999 550H550V845A250.09999999999997 250.09999999999997 0 0 1 600 350A250.09999999999997 250.09999999999997 0 0 1 844.9999999999999 550zM844.9999999999999 650A250.30000000000004 250.30000000000004 0 0 1 650 845V650H844.9999999999999z","horizAdvX":"1200"},"pie-chart-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm12.9 8A5.002 5.002 0 0 1 7 12a5.002 5.002 0 0 1 4-4.9V13h5.9zm0-2H13V7.1a5.006 5.006 0 0 1 3.9 3.9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM844.9999999999999 550A250.09999999999997 250.09999999999997 0 0 0 350 600A250.09999999999997 250.09999999999997 0 0 0 550 845V550H844.9999999999999zM844.9999999999999 650H650V845A250.30000000000004 250.30000000000004 0 0 0 844.9999999999999 650z","horizAdvX":"1200"},"pie-chart-fill":{"path":["M0 0h24v24H0z","M11 2.05V13h10.95c-.501 5.053-4.765 9-9.95 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm2 0A10.003 10.003 0 0 1 21.95 11H13V2.05z"],"unicode":"","glyph":"M550 1097.5V550H1097.5C1072.4499999999998 297.3499999999999 859.2499999999999 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM650 1097.5A500.15000000000003 500.15000000000003 0 0 0 1097.5 650H650V1097.5z","horizAdvX":"1200"},"pie-chart-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12c0-4.478 2.943-8.268 7-9.542v2.124A8.003 8.003 0 0 0 12 20a8.003 8.003 0 0 0 7.418-5h2.124c-1.274 4.057-5.064 7-9.542 7zm9.95-9H11V2.05c.329-.033.663-.05 1-.05 5.523 0 10 4.477 10 10 0 .337-.017.671-.05 1zM13 4.062V11h6.938A8.004 8.004 0 0 0 13 4.062z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600C100 823.9 247.15 1013.4 450 1077.1V970.9A400.15000000000003 400.15000000000003 0 0 1 600 200A400.15000000000003 400.15000000000003 0 0 1 970.9 450H1077.1C1013.3999999999997 247.1499999999999 823.8999999999999 100 599.9999999999999 100zM1097.5 550H550V1097.5C566.45 1099.15 583.15 1100 600 1100C876.15 1100 1100 876.15 1100 600C1100 583.15 1099.15 566.45 1097.5 550zM650 996.9V650H996.9A400.20000000000005 400.20000000000005 0 0 1 650 996.9z","horizAdvX":"1200"},"pin-distance-fill":{"path":["M0 0h24v24H0z","M11.39 10.39L7.5 14.277 3.61 10.39a5.5 5.5 0 1 1 7.78 0zM7.5 8.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm12.89 10.89l-3.89 3.888-3.89-3.889a5.5 5.5 0 1 1 7.78 0zM16.5 17.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M569.5 680.5L375 486.1500000000001L180.5 680.5A275 275 0 1 0 569.5 680.5zM375 775A100 100 0 1 1 375 975A100 100 0 0 1 375 775zM1019.5 230.5L825 36.1000000000001L630.5 230.5500000000001A275 275 0 1 0 1019.5 230.5500000000001zM825 325A100 100 0 1 1 825 525A100 100 0 0 1 825 325z","horizAdvX":"1200"},"pin-distance-line":{"path":["M0 0h24v24H0z","M9.975 8.975a3.5 3.5 0 1 0-4.95 0L7.5 11.45l2.475-2.475zM7.5 14.278L3.61 10.39a5.5 5.5 0 1 1 7.78 0L7.5 14.28zM7.5 8a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 12.45l2.475-2.475a3.5 3.5 0 1 0-4.95 0L16.5 20.45zm3.89-1.06l-3.89 3.888-3.89-3.889a5.5 5.5 0 1 1 7.78 0zM16.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M498.75 751.25A175 175 0 1 1 251.25 751.25L375 627.5L498.75 751.25zM375 486.1L180.5 680.5A275 275 0 1 0 569.5 680.5L375 486zM375 800A75 75 0 1 0 375 950A75 75 0 0 0 375 800zM825 177.5L948.7500000000002 301.2500000000001A175 175 0 1 1 701.2500000000001 301.2500000000001L825 177.5zM1019.5 230.5L825 36.1000000000001L630.5 230.5500000000001A275 275 0 1 0 1019.5 230.5500000000001zM825 350A75 75 0 1 0 825 500A75 75 0 0 0 825 350z","horizAdvX":"1200"},"ping-pong-fill":{"path":["M0 0h24v24H0z","M11.5 2a9.5 9.5 0 0 1 9.5 9.5 9.46 9.46 0 0 1-1.003 4.254l2.463 2.464a1 1 0 0 1 0 1.414l-2.828 2.828a1 1 0 0 1-1.414 0l-2.464-2.463A9.46 9.46 0 0 1 11.5 21a9.5 9.5 0 0 1 0-19zm5.303 13.388l-1.414 1.414 3.536 3.535 1.414-1.414-3.536-3.535zm1.864-6.105l-9.384 9.384c.7.216 1.445.333 2.217.333a7.48 7.48 0 0 0 2.74-.516l-.972-.974a1 1 0 0 1 0-1.414l2.828-2.828a1 1 0 0 1 1.414 0l.974.972A7.48 7.48 0 0 0 19 11.5c0-.772-.117-1.516-.333-2.217z"],"unicode":"","glyph":"M575 1100A474.99999999999994 474.99999999999994 0 0 0 1050 625A473.00000000000006 473.00000000000006 0 0 0 999.85 412.3000000000001L1123 289.1A50 50 0 0 0 1123 218.4L981.6 77A50 50 0 0 0 910.9 77L787.6999999999999 200.15A473.00000000000006 473.00000000000006 0 0 0 575 150A474.99999999999994 474.99999999999994 0 0 0 575 1100zM840.1500000000001 430.6L769.45 359.9L946.25 183.15L1016.9500000000002 253.8500000000002L840.1500000000001 430.6000000000002zM933.3500000000003 735.85L464.1500000000001 266.6499999999999C499.15 255.8499999999999 536.4000000000001 250 575.0000000000001 250A374 374 0 0 1 712.0000000000001 275.8L663.4000000000001 324.4999999999999A50 50 0 0 0 663.4000000000001 395.2000000000001L804.8000000000002 536.5999999999999A50 50 0 0 0 875.5000000000002 536.5999999999999L924.2000000000002 488A374 374 0 0 1 950 625C950 663.6 944.15 700.8 933.3500000000003 735.85z","horizAdvX":"1200"},"ping-pong-line":{"path":["M0 0h24v24H0z","M11.5 2a9.5 9.5 0 0 1 9.5 9.5 9.46 9.46 0 0 1-1.003 4.254l2.463 2.464a1 1 0 0 1 0 1.414l-2.828 2.828a1 1 0 0 1-1.414 0l-2.464-2.463A9.46 9.46 0 0 1 11.5 21a9.5 9.5 0 0 1 0-19zm5.303 13.388l-1.414 1.414 3.536 3.535 1.414-1.414-3.536-3.535zm1.864-6.105l-9.384 9.384c.7.216 1.445.333 2.217.333a7.48 7.48 0 0 0 2.74-.516l-.972-.974a1 1 0 0 1 0-1.414l2.828-2.828a1 1 0 0 1 1.414 0l.974.972A7.48 7.48 0 0 0 19 11.5c0-.772-.117-1.516-.333-2.217zM11.5 4a7.5 7.5 0 0 0-4.136 13.757L17.757 7.364A7.493 7.493 0 0 0 11.5 4z"],"unicode":"","glyph":"M575 1100A474.99999999999994 474.99999999999994 0 0 0 1050 625A473.00000000000006 473.00000000000006 0 0 0 999.85 412.3000000000001L1123 289.1A50 50 0 0 0 1123 218.4L981.6 77A50 50 0 0 0 910.9 77L787.6999999999999 200.15A473.00000000000006 473.00000000000006 0 0 0 575 150A474.99999999999994 474.99999999999994 0 0 0 575 1100zM840.1500000000001 430.6L769.45 359.9L946.25 183.15L1016.9500000000002 253.8500000000002L840.1500000000001 430.6000000000002zM933.3500000000003 735.85L464.1500000000001 266.6499999999999C499.15 255.8499999999999 536.4000000000001 250 575.0000000000001 250A374 374 0 0 1 712.0000000000001 275.8L663.4000000000001 324.4999999999999A50 50 0 0 0 663.4000000000001 395.2000000000001L804.8000000000002 536.5999999999999A50 50 0 0 0 875.5000000000002 536.5999999999999L924.2000000000002 488A374 374 0 0 1 950 625C950 663.6 944.15 700.8 933.3500000000003 735.85zM575 1000A375 375 0 0 1 368.2 312.1500000000001L887.85 831.8A374.65000000000003 374.65000000000003 0 0 1 575 1000z","horizAdvX":"1200"},"pinterest-fill":{"path":["M0 0h24v24H0z","M13.37 2.094A10.003 10.003 0 0 0 8.002 21.17a7.757 7.757 0 0 1 .163-2.293c.185-.839 1.296-5.463 1.296-5.463a3.739 3.739 0 0 1-.324-1.577c0-1.485.857-2.593 1.923-2.593a1.334 1.334 0 0 1 1.342 1.508c0 .9-.578 2.262-.88 3.54a1.544 1.544 0 0 0 1.575 1.923c1.898 0 3.17-2.431 3.17-5.301 0-2.2-1.457-3.848-4.143-3.848a4.746 4.746 0 0 0-4.93 4.794 2.96 2.96 0 0 0 .648 1.97.48.48 0 0 1 .162.554c-.046.184-.162.623-.208.784a.354.354 0 0 1-.51.254c-1.384-.554-2.036-2.077-2.036-3.816 0-2.847 2.384-6.255 7.154-6.255 3.796 0 6.32 2.777 6.32 5.747 0 3.909-2.177 6.848-5.394 6.848a2.861 2.861 0 0 1-2.454-1.246s-.578 2.316-.692 2.754a8.026 8.026 0 0 1-1.019 2.131c.923.28 1.882.42 2.846.416a9.988 9.988 0 0 0 9.996-10.003 10.002 10.002 0 0 0-8.635-9.903z"],"unicode":"","glyph":"M668.5 1095.3A500.15000000000003 500.15000000000003 0 0 1 400.1 141.5A387.85 387.85 0 0 0 408.2500000000001 256.1499999999999C417.5000000000001 298.0999999999998 473.05 529.3 473.05 529.3A186.95 186.95 0 0 0 456.85 608.15C456.85 682.3999999999999 499.7 737.8 553 737.8A66.69999999999999 66.69999999999999 0 0 0 620.1 662.3999999999999C620.1 617.3999999999999 591.2 549.2999999999998 576.1 485.3999999999999A77.2 77.2 0 0 1 654.85 389.2499999999998C749.75 389.2499999999998 813.35 510.7999999999998 813.35 654.2999999999998C813.35 764.3 740.4999999999999 846.6999999999998 606.1999999999999 846.6999999999998A237.30000000000004 237.30000000000004 0 0 1 359.7 606.9999999999999A148 148 0 0 1 392.0999999999999 508.4999999999998A24.000000000000004 24.000000000000004 0 0 0 400.2 480.7999999999998C397.9 471.5999999999998 392.1 449.6499999999999 389.8 441.5999999999998A17.7 17.7 0 0 0 364.3 428.8999999999998C295.1 456.5999999999998 262.5 532.7499999999998 262.5 619.6999999999997C262.5 762.0499999999997 381.7000000000001 932.4499999999998 620.2 932.4499999999998C810 932.4499999999998 936.2 793.5999999999997 936.2 645.0999999999997C936.2 449.6499999999998 827.35 302.6999999999997 666.5 302.6999999999997A143.05 143.05 0 0 0 543.8 364.9999999999997S514.9 249.1999999999997 509.2 227.2999999999996A401.3 401.3 0 0 0 458.2499999999999 120.7499999999996C504.4 106.7499999999996 552.3499999999999 99.7499999999996 600.55 99.9499999999996A499.4 499.4 0 0 1 1100.35 600.0999999999996A500.1000000000001 500.1000000000001 0 0 1 668.5999999999999 1095.2499999999995z","horizAdvX":"1200"},"pinterest-line":{"path":["M0 0h24v24H0z","M8.49 19.191c.024-.336.072-.671.144-1.001.063-.295.254-1.13.534-2.34l.007-.03.387-1.668c.079-.34.14-.604.181-.692a3.46 3.46 0 0 1-.284-1.423c0-1.337.756-2.373 1.736-2.373.36-.006.704.15.942.426.238.275.348.644.302.996 0 .453-.085.798-.453 2.035-.071.238-.12.404-.166.571-.051.188-.095.358-.132.522-.096.386-.008.797.237 1.106a1.2 1.2 0 0 0 1.006.456c1.492 0 2.6-1.985 2.6-4.548 0-1.97-1.29-3.274-3.432-3.274A3.878 3.878 0 0 0 9.2 9.1a4.13 4.13 0 0 0-1.195 2.961 2.553 2.553 0 0 0 .512 1.644c.181.14.25.383.175.59-.041.168-.14.552-.176.68a.41.41 0 0 1-.216.297.388.388 0 0 1-.355.002c-1.16-.479-1.796-1.778-1.796-3.44 0-2.985 2.491-5.584 6.192-5.584 3.135 0 5.481 2.329 5.481 5.14 0 3.532-1.932 6.104-4.69 6.104a2.508 2.508 0 0 1-2.046-.959l-.043.177-.207.852-.002.007c-.146.6-.248 1.017-.288 1.174-.106.355-.24.703-.4 1.04a8 8 0 1 0-1.656-.593zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M424.5 240.4500000000001C425.7 257.25 428.1 274 431.7000000000001 290.5000000000001C434.85 305.2500000000003 444.4 347.0000000000001 458.4 407.5000000000001L458.7500000000001 409.0000000000001L478.1000000000001 492.4000000000001C482.0500000000001 509.4 485.1000000000001 522.6 487.15 527A173 173 0 0 0 472.95 598.1500000000001C472.95 665 510.75 716.8000000000002 559.75 716.8000000000002C577.75 717.1000000000001 594.95 709.3000000000001 606.85 695.5000000000001C618.75 681.7500000000001 624.2500000000001 663.3000000000001 621.95 645.7C621.95 623.0500000000001 617.6999999999999 605.8000000000001 599.3000000000001 543.95C595.75 532.0500000000001 593.3000000000001 523.7500000000001 591 515.4000000000001C588.45 506 586.25 497.5 584.4 489.3000000000001C579.6 470.0000000000001 584.0000000000001 449.4500000000001 596.25 434.0000000000001A60 60 0 0 1 646.5500000000001 411.2000000000001C721.1500000000001 411.2000000000001 776.5500000000001 510.45 776.5500000000001 638.6000000000001C776.5500000000001 737.1000000000001 712.05 802.3000000000002 604.95 802.3000000000002A193.9 193.9 0 0 1 459.9999999999999 745A206.5 206.5 0 0 1 400.25 596.95A127.65000000000002 127.65000000000002 0 0 1 425.85 514.75C434.8999999999999 507.75 438.35 495.5999999999999 434.6 485.25C432.55 476.85 427.6 457.65 425.8 451.25A20.499999999999996 20.499999999999996 0 0 0 415.0000000000001 436.4A19.4 19.4 0 0 0 397.25 436.3C339.25 460.2499999999999 307.45 525.1999999999999 307.45 608.3C307.45 757.55 432 887.4999999999999 617.0500000000001 887.4999999999999C773.8000000000001 887.4999999999999 891.1000000000001 771.05 891.1000000000001 630.5C891.1000000000001 453.9 794.5000000000001 325.3 656.6 325.3A125.4 125.4 0 0 0 554.3000000000001 373.25L552.1500000000001 364.4L541.8000000000001 321.8L541.7 321.45C534.4 291.4499999999998 529.3000000000001 270.5999999999999 527.3000000000001 262.75C522.0000000000001 244.9999999999999 515.3000000000001 227.6 507.3000000000001 210.75A400 400 0 1 1 424.5 240.4zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"pinyin-input":{"path":["M0 0h24v24H0z","M17.934 3.036l1.732 1L18.531 6H21v2h-2v4h2v2h-2v7h-2v-7h-3.084c-.325 2.862-1.564 5.394-3.37 7.193l-1.562-1.27c1.52-1.438 2.596-3.522 2.917-5.922L10 14v-2l2-.001V8h-2V6h2.467l-1.133-1.964 1.732-1L14.777 6h1.444l1.713-2.964zM5 13.803l-2 .536v-2.071l2-.536V8H3V6h2V3h2v3h2v2H7v3.197l2-.536v2.07l-2 .536V18.5A2.5 2.5 0 0 1 4.5 21H3v-2h1.5a.5.5 0 0 0 .492-.41L5 18.5v-4.697zM17 8h-3v4h3V8z"],"unicode":"","glyph":"M896.7 1048.2L983.3 998.2L926.55 900H1050V800H950V600H1050V500H950V150H850V500H695.8000000000001C679.5500000000001 356.8999999999999 617.6 230.3000000000001 527.3 140.3500000000001L449.2 203.8500000000001C525.1999999999999 275.75 579 379.9500000000001 595.05 499.9500000000002L500 500V600L600 600.05V800H500V900H623.35L566.6999999999999 998.2L653.3 1048.2L738.8499999999999 900H811.05L896.7 1048.2zM250 509.8499999999999L150 483.05V586.5999999999999L250 613.4V800H150V900H250V1050H350V900H450V800H350V640.1500000000001L450 666.95V563.45L350 536.65V275A125 125 0 0 0 225 150H150V250H225A25 25 0 0 1 249.6 270.5L250 275V509.8499999999999zM850 800H700V600H850V800z","horizAdvX":"1200"},"pixelfed-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm1.031 6.099h-2.624c-.988 0-1.789.776-1.789 1.733v6.748l2.595-2.471h1.818c1.713 0 3.101-1.345 3.101-3.005s-1.388-3.005-3.1-3.005z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM651.5500000000001 795.05H520.35C470.95 795.05 430.9000000000001 756.25 430.9000000000001 708.4V370.9999999999999L560.6500000000001 494.55H651.5500000000001C737.2 494.55 806.6 561.8 806.6 644.7999999999998S737.2 795.0499999999998 651.6000000000001 795.0499999999998z","horizAdvX":"1200"},"pixelfed-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm1.031 4.099c1.713 0 3.101 1.345 3.101 3.005s-1.388 3.005-3.1 3.005h-1.819L8.618 16.58V9.832c0-.957.801-1.733 1.79-1.733h2.623z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600S379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000zM651.5500000000001 795.05C737.2 795.05 806.6 727.8 806.6 644.8000000000001S737.2 494.5500000000001 651.6000000000001 494.5500000000001H560.6500000000001L430.9000000000001 371.0000000000001V708.4C430.9000000000001 756.25 470.95 795.05 520.4000000000001 795.05H651.5500000000001z","horizAdvX":"1200"},"plane-fill":{"path":["M0 0h24v24H0z","M14 8.947L22 14v2l-8-2.526v5.36l3 1.666V22l-4.5-1L8 22v-1.5l3-1.667v-5.36L3 16v-2l8-5.053V3.5a1.5 1.5 0 0 1 3 0v5.447z"],"unicode":"","glyph":"M700 752.6500000000001L1100 500V400L700 526.3V258.3000000000001L850 175V100L625 150L400 100V175L550 258.3500000000002V526.35L150 400V500L550 752.6500000000001V1025A75 75 0 0 0 700 1025V752.6500000000001z","horizAdvX":"1200"},"plane-line":{"path":["M0 0h24v24H0z","M14 8.947L22 14v2l-8-2.526v5.36l3 1.666V22l-4.5-1L8 22v-1.5l3-1.667v-5.36L3 16v-2l8-5.053V3.5a1.5 1.5 0 0 1 3 0v5.447z"],"unicode":"","glyph":"M700 752.6500000000001L1100 500V400L700 526.3V258.3000000000001L850 175V100L625 150L400 100V175L550 258.3500000000002V526.35L150 400V500L550 752.6500000000001V1025A75 75 0 0 0 700 1025V752.6500000000001z","horizAdvX":"1200"},"plant-fill":{"path":["M0 0H24V24H0z","M21 3v2c0 3.866-3.134 7-7 7h-1v1h5v7c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2v-7h5v-3c0-3.866 3.134-7 7-7h3zM5.5 2c2.529 0 4.765 1.251 6.124 3.169C10.604 6.51 10 8.185 10 10v1h-.5C5.358 11 2 7.642 2 3.5V2h3.5z"],"unicode":"","glyph":"M1050 1050V950C1050 756.7 893.3 600 700 600H650V550H900V200C900 144.75 855.25 100 800 100H400C344.75 100 300 144.75 300 200V550H550V700C550 893.3 706.7 1050 900 1050H1050zM275 1100C401.45 1100 513.25 1037.45 581.1999999999999 941.55C530.1999999999999 874.5 500 790.75 500 700V650H475C267.9 650 100 817.9 100 1025V1100H275z","horizAdvX":"1200"},"plant-line":{"path":["M0 0H24V24H0z","M6 2c2.69 0 5.024 1.517 6.197 3.741C13.374 4.083 15.31 3 17.5 3H21v2.5c0 3.59-2.91 6.5-6.5 6.5H13v1h5v7c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2v-7h5v-2H9c-3.866 0-7-3.134-7-7V2h4zm10 13H8v5h8v-5zm3-10h-1.5C15.015 5 13 7.015 13 9.5v.5h1.5c2.485 0 4.5-2.015 4.5-4.5V5zM6 4H4c0 2.761 2.239 5 5 5h2c0-2.761-2.239-5-5-5z"],"unicode":"","glyph":"M300 1100C434.5 1100 551.2 1024.15 609.8499999999999 912.95C668.7 995.85 765.5 1050 875 1050H1050V925C1050 745.5 904.5 600 725 600H650V550H900V200C900 144.75 855.25 100 800 100H400C344.75 100 300 144.75 300 200V550H550V650H450C256.7000000000001 650 100 806.7 100 1000V1100H300zM800 450H400V200H800V450zM950 950H875C750.75 950 650 849.25 650 725V700H725C849.25 700 950 800.75 950 925V950zM300 1000H200C200 861.95 311.95 750 450 750H550C550 888.05 438.05 1000 300 1000z","horizAdvX":"1200"},"play-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM10.622 8.415a.4.4 0 0 0-.622.332v6.506a.4.4 0 0 0 .622.332l4.879-3.252a.4.4 0 0 0 0-.666l-4.88-3.252z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM531.1 779.25A20.000000000000004 20.000000000000004 0 0 1 500 762.65V437.35A20.000000000000004 20.000000000000004 0 0 1 531.1 420.75L775.05 583.3499999999999A20.000000000000004 20.000000000000004 0 0 1 775.05 616.6499999999999L531.05 779.2499999999999z","horizAdvX":"1200"},"play-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM10.622 8.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM531.1 779.25L775.05 616.6500000000001A20.000000000000004 20.000000000000004 0 0 0 775.05 583.3500000000001L531.05 420.7500000000001A20.000000000000004 20.000000000000004 0 0 0 499.9999999999999 437.3500000000002V762.65A20.000000000000004 20.000000000000004 0 0 0 531.0999999999999 779.25z","horizAdvX":"1200"},"play-fill":{"path":["M0 0h24v24H0z","M19.376 12.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z"],"unicode":"","glyph":"M968.8 579.1999999999999L438.85 225.9000000000001A25 25 0 0 0 400 246.7000000000001V953.3A25 25 0 0 0 438.85 974.1L968.7999999999998 620.8000000000001A25 25 0 0 0 968.7999999999998 579.1999999999999z","horizAdvX":"1200"},"play-line":{"path":["M0 0h24v24H0z","M16.394 12L10 7.737v8.526L16.394 12zm2.982.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z"],"unicode":"","glyph":"M819.6999999999999 600L500 813.15V386.8500000000002L819.6999999999999 600zM968.7999999999998 579.1999999999999L438.85 225.9000000000001A25 25 0 0 0 400 246.7000000000001V953.3A25 25 0 0 0 438.85 974.1L968.7999999999998 620.8000000000001A25 25 0 0 0 968.7999999999998 579.1999999999999z","horizAdvX":"1200"},"play-list-2-fill":{"path":["M0 0H24V24H0z","M22 18v2H2v-2h20zM2 3.5l8 5-8 5v-10zM22 11v2H12v-2h10zm0-7v2H12V4h10z"],"unicode":"","glyph":"M1100 300V200H100V300H1100zM100 1025L500 775L100 525V1025zM1100 650V550H600V650H1100zM1100 1000V900H600V1000H1100z","horizAdvX":"1200"},"play-list-2-line":{"path":["M0 0H24V24H0z","M22 18v2H2v-2h20zM2 3.5l8 5-8 5v-10zM22 11v2H12v-2h10zM4 7.108v2.784L6.226 8.5 4 7.108zM22 4v2H12V4h10z"],"unicode":"","glyph":"M1100 300V200H100V300H1100zM100 1025L500 775L100 525V1025zM1100 650V550H600V650H1100zM200 844.6V705.4000000000001L311.3 775L200 844.6zM1100 1000V900H600V1000H1100z","horizAdvX":"1200"},"play-list-add-fill":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h20v2H2v-2zm0-7h20v2H2V4zm16 14v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H1100V550H100V650zM100 1000H1100V900H100V1000zM900 300V450H1000V300H1150V200H1000V50H900V200H750V300H900z","horizAdvX":"1200"},"play-list-add-line":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h20v2H2v-2zm0-7h20v2H2V4zm16 14v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H1100V550H100V650zM100 1000H1100V900H100V1000zM900 300V450H1000V300H1150V200H1000V50H900V200H750V300H900z","horizAdvX":"1200"},"play-list-fill":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H800V550H100V650zM100 1000H1100V900H100V1000zM950 441.5V750H1200V650H1050V300A150 150 0 1 0 950 441.5z","horizAdvX":"1200"},"play-list-line":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83zM18 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H800V550H100V650zM100 1000H1100V900H100V1000zM950 441.5V750H1200V650H1050V300A150 150 0 1 0 950 441.5zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250z","horizAdvX":"1200"},"play-mini-fill":{"path":["M0 0h24v24H0z","M7.752 5.439l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z"],"unicode":"","glyph":"M387.6 928.05L912.9999999999998 621.5500000000001A25 25 0 0 0 912.9999999999998 578.4000000000001L387.6 271.9000000000001A25 25 0 0 0 350 293.6V906.45A25 25 0 0 0 387.6 928.05z","horizAdvX":"1200"},"play-mini-line":{"path":["M0 0h24v24H0z","M9 8.482v7.036L15.03 12 9 8.482zM7.752 5.44l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z"],"unicode":"","glyph":"M450 775.9000000000001V424.1L751.5 600L450 775.9000000000001zM387.6 928L912.9999999999998 621.5A25 25 0 0 0 912.9999999999998 578.35L387.6 271.85A25 25 0 0 0 350 293.6V906.45A25 25 0 0 0 387.6 928.05z","horizAdvX":"1200"},"playstation-fill":{"path":["M0 0h24v24H0z","M22.584 17.011c-.43.543-1.482.93-1.482.93l-7.833 2.817V18.68l5.764-2.057c.655-.234.755-.566.223-.74-.53-.175-1.491-.125-2.146.111l-3.84 1.354v-2.155l.22-.075s1.11-.394 2.671-.567c1.56-.172 3.472.024 4.972.593 1.69.535 1.88 1.323 1.451 1.866zm-8.57-3.537V8.162c0-.624-.114-1.198-.699-1.36-.447-.144-.725.272-.725.895V21l-3.584-1.139V4c1.524.283 3.744.953 4.937 1.355 3.035 1.043 4.064 2.342 4.064 5.267 0 2.851-1.758 3.932-3.992 2.852zm-11.583 4.99c-1.735-.49-2.024-1.51-1.233-2.097.731-.542 1.974-.95 1.974-.95l5.138-1.83v2.086l-3.697 1.325c-.653.234-.754.566-.223.74.531.175 1.493.125 2.147-.11l1.773-.644v1.865l-.353.06c-1.774.29-3.664.169-5.526-.445z"],"unicode":"","glyph":"M1129.2 349.4500000000001C1107.7 322.3000000000001 1055.1 302.9500000000001 1055.1 302.9500000000001L663.45 162.1000000000001V266L951.65 368.8499999999999C984.4 380.5500000000001 989.4 397.1499999999999 962.8 405.8499999999999C936.3 414.6 888.25 412.0999999999999 855.5 400.3L663.5 332.5999999999999V440.3499999999998L674.5 444.0999999999998S730 463.7999999999998 808.0500000000001 472.4499999999998C886.05 481.0499999999998 981.65 471.2499999999999 1056.65 442.7999999999999C1141.15 416.0499999999999 1150.65 376.6499999999999 1129.2000000000003 349.4999999999998zM700.6999999999999 526.3V791.9C700.6999999999999 823.0999999999999 694.9999999999999 851.8 665.75 859.9C643.4 867.0999999999999 629.5 846.3 629.5 815.15V150L450.3 206.9499999999999V1000C526.5 985.85 637.5 952.35 697.1500000000001 932.25C848.9000000000001 880.0999999999999 900.35 815.15 900.35 668.9C900.35 526.35 812.4500000000002 472.3 700.75 526.3zM121.55 276.8000000000001C34.8 301.3 20.35 352.3000000000002 59.9 381.6500000000001C96.45 408.7500000000001 158.5999999999999 429.1500000000001 158.5999999999999 429.1500000000001L415.5 520.6500000000001V416.3500000000002L230.6499999999999 350.1000000000002C198 338.4000000000001 192.9499999999999 321.8000000000002 219.5 313.1000000000003C246.05 304.3500000000002 294.15 306.8500000000003 326.85 318.6000000000002L415.5 350.8000000000001V257.5500000000002L397.85 254.5500000000002C309.1499999999999 240.0500000000003 214.65 246.1000000000003 121.55 276.8000000000003z","horizAdvX":"1200"},"playstation-line":{"path":["M0 0h24v24H0z","M22.584 17.011c-.43.543-1.482.93-1.482.93l-7.833 2.817V18.68l5.764-2.057c.655-.234.755-.566.223-.74-.53-.175-1.491-.125-2.146.111l-3.84 1.354v-2.155l.22-.075s1.11-.394 2.671-.567c1.56-.172 3.472.024 4.972.593 1.69.535 1.88 1.323 1.451 1.866zm-8.57-3.537V8.162c0-.624-.114-1.198-.699-1.36-.447-.144-.725.272-.725.895V21l-3.584-1.139V4c1.524.283 3.744.953 4.937 1.355 3.035 1.043 4.064 2.342 4.064 5.267 0 2.851-1.758 3.932-3.992 2.852zm-11.583 4.99c-1.735-.49-2.024-1.51-1.233-2.097.731-.542 1.974-.95 1.974-.95l5.138-1.83v2.086l-3.697 1.325c-.653.234-.754.566-.223.74.531.175 1.493.125 2.147-.11l1.773-.644v1.865l-.353.06c-1.774.29-3.664.169-5.526-.445z"],"unicode":"","glyph":"M1129.2 349.4500000000001C1107.7 322.3000000000001 1055.1 302.9500000000001 1055.1 302.9500000000001L663.45 162.1000000000001V266L951.65 368.8499999999999C984.4 380.5500000000001 989.4 397.1499999999999 962.8 405.8499999999999C936.3 414.6 888.25 412.0999999999999 855.5 400.3L663.5 332.5999999999999V440.3499999999998L674.5 444.0999999999998S730 463.7999999999998 808.0500000000001 472.4499999999998C886.05 481.0499999999998 981.65 471.2499999999999 1056.65 442.7999999999999C1141.15 416.0499999999999 1150.65 376.6499999999999 1129.2000000000003 349.4999999999998zM700.6999999999999 526.3V791.9C700.6999999999999 823.0999999999999 694.9999999999999 851.8 665.75 859.9C643.4 867.0999999999999 629.5 846.3 629.5 815.15V150L450.3 206.9499999999999V1000C526.5 985.85 637.5 952.35 697.1500000000001 932.25C848.9000000000001 880.0999999999999 900.35 815.15 900.35 668.9C900.35 526.35 812.4500000000002 472.3 700.75 526.3zM121.55 276.8000000000001C34.8 301.3 20.35 352.3000000000002 59.9 381.6500000000001C96.45 408.7500000000001 158.5999999999999 429.1500000000001 158.5999999999999 429.1500000000001L415.5 520.6500000000001V416.3500000000002L230.6499999999999 350.1000000000002C198 338.4000000000001 192.9499999999999 321.8000000000002 219.5 313.1000000000003C246.05 304.3500000000002 294.15 306.8500000000003 326.85 318.6000000000002L415.5 350.8000000000001V257.5500000000002L397.85 254.5500000000002C309.1499999999999 240.0500000000003 214.65 246.1000000000003 121.55 276.8000000000003z","horizAdvX":"1200"},"plug-2-fill":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4v-4h16v4a4 4 0 0 1-4 4h-3zm4-12h2a1 1 0 0 1 1 1v2H4V7a1 1 0 0 1 1-1h2V2h2v4h6V2h2v4zm-5 8.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM11 2h2v3h-2V2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V700H1000V500A200 200 0 0 0 800 300H650zM850 900H950A50 50 0 0 0 1000 850V750H200V850A50 50 0 0 0 250 900H350V1100H450V900H750V1100H850V900zM600 475A50 50 0 1 1 600 575A50 50 0 0 1 600 475zM550 1100H650V950H550V1100z","horizAdvX":"1200"},"plug-2-line":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4V7a1 1 0 0 1 1-1h2V2h2v4h6V2h2v4h2a1 1 0 0 1 1 1v7a4 4 0 0 1-4 4h-3zm-5-2h8a2 2 0 0 0 2-2v-3H6v3a2 2 0 0 0 2 2zm10-8H6v1h12V8zm-6 6.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM11 2h2v3h-2V2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V850A50 50 0 0 0 250 900H350V1100H450V900H750V1100H850V900H950A50 50 0 0 0 1000 850V500A200 200 0 0 0 800 300H650zM400 400H800A100 100 0 0 1 900 500V650H300V500A100 100 0 0 1 400 400zM900 800H300V750H900V800zM600 475A50 50 0 1 0 600 575A50 50 0 0 0 600 475zM550 1100H650V950H550V1100z","horizAdvX":"1200"},"plug-fill":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4v-4h16v4a4 4 0 0 1-4 4h-3zm3-12h3a1 1 0 0 1 1 1v2H4V7a1 1 0 0 1 1-1h3V2h2v4h4V2h2v4zm-4 8.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V700H1000V500A200 200 0 0 0 800 300H650zM800 900H950A50 50 0 0 0 1000 850V750H200V850A50 50 0 0 0 250 900H400V1100H500V900H700V1100H800V900zM600 475A50 50 0 1 1 600 575A50 50 0 0 1 600 475z","horizAdvX":"1200"},"plug-line":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4V7a1 1 0 0 1 1-1h3V2h2v4h4V2h2v4h3a1 1 0 0 1 1 1v7a4 4 0 0 1-4 4h-3zm-5-2h8a2 2 0 0 0 2-2v-3H6v3a2 2 0 0 0 2 2zm10-8H6v1h12V8zm-6 6.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V850A50 50 0 0 0 250 900H400V1100H500V900H700V1100H800V900H950A50 50 0 0 0 1000 850V500A200 200 0 0 0 800 300H650zM400 400H800A100 100 0 0 1 900 500V650H300V500A100 100 0 0 1 400 400zM900 800H300V750H900V800zM600 475A50 50 0 1 0 600 575A50 50 0 0 0 600 475z","horizAdvX":"1200"},"polaroid-2-fill":{"path":["M0 0h24v24H0z","M3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zM6 17v2h12v-2H6zM5 5v2h2V5H5zm7 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 2a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM300 350V250H900V350H300zM250 950V850H350V950H250zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600zM600 500A200 200 0 1 1 600 900A200 200 0 0 1 600 500z","horizAdvX":"1200"},"polaroid-2-line":{"path":["M0 0h24v24H0z","M19 15V5H5v10h14zM3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM6 6h2v2H6V6zm0 11v2h12v-2H6z"],"unicode":"","glyph":"M950 450V950H250V450H950zM150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM600 600A100 100 0 1 1 600 800A100 100 0 0 1 600 600zM600 500A200 200 0 1 0 600 900A200 200 0 0 0 600 500zM300 900H400V800H300V900zM300 350V250H900V350H300z","horizAdvX":"1200"},"polaroid-fill":{"path":["M0 0h24v24H0z","M20.659 10a6 6 0 1 0 0 4H21v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v6h-.341zM5 6v3h2V6H5zm10 10a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M1032.95 700A300 300 0 1 1 1032.95 500H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V700H1032.95zM250 900V750H350V900H250zM750 400A200 200 0 1 0 750 800A200 200 0 0 0 750 400zM750 500A100 100 0 1 1 750 700A100 100 0 0 1 750 500z","horizAdvX":"1200"},"polaroid-line":{"path":["M0 0h24v24H0z","M21 6h-2V5H5v14h14v-1h2v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v2zM6 6h2v3H6V6zm9 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M1050 900H950V950H250V250H950V300H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V900zM300 900H400V750H300V900zM750 400A200 200 0 1 1 750 800A200 200 0 0 1 750 400zM750 300A300 300 0 1 0 750 900A300 300 0 0 0 750 300zM750 500A100 100 0 1 0 750 700A100 100 0 0 0 750 500z","horizAdvX":"1200"},"police-car-fill":{"path":["M0 0h24v24H0z","M22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5h1.929L4.48 6.212A2 2 0 0 1 6.319 5H8V3h3v2h2V3h3v2h1.681a2 2 0 0 1 1.838 1.212L21.571 11H23.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5zM4 15v2a1 1 0 0 0 1 1h3.245a.5.5 0 0 0 .44-.736C7.88 15.754 6.318 15 4 15zm16 0c-2.317 0-3.879.755-4.686 2.264a.5.5 0 0 0 .441.736H19a1 1 0 0 0 1-1v-2zM6 7l-1.451 3.629A1 1 0 0 0 5.477 12h13.046a1 1 0 0 0 .928-1.371L18 7H6z"],"unicode":"","glyph":"M1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H121.45L224 889.4000000000001A100 100 0 0 0 315.95 950H400V1050H550V950H650V1050H800V950H884.0500000000001A100 100 0 0 0 975.95 889.4000000000001L1078.5500000000002 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525zM200 450V350A50 50 0 0 1 250 300H412.2500000000001A25 25 0 0 1 434.25 336.8000000000001C394 412.3000000000001 315.9 450 200 450zM1000 450C884.15 450 806.05 412.25 765.7 336.8000000000001A25 25 0 0 1 787.75 300H950A50 50 0 0 1 1000 350V450zM300 850L227.45 668.5500000000001A50 50 0 0 1 273.85 600H926.15A50 50 0 0 1 972.55 668.5500000000001L900 850H300z","horizAdvX":"1200"},"police-car-line":{"path":["M0 0h24v24H0z","M4 13v5h16v-5H4zm1.618-2h12.764a1 1 0 0 0 .894-1.447L18 7H6L4.724 9.553A1 1 0 0 0 5.618 11zM22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5H2l2.447-4.894A2 2 0 0 1 6.237 5H8V3h3v2h2V3h3v2h1.764a2 2 0 0 1 1.789 1.106L22 11h1.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5zM5 14c2.317 0 3.879.755 4.686 2.264a.5.5 0 0 1-.441.736H6a1 1 0 0 1-1-1v-2zm14 0v2a1 1 0 0 1-1 1h-3.245a.5.5 0 0 1-.44-.736C15.12 14.754 16.682 14 19 14z"],"unicode":"","glyph":"M200 550V300H1000V550H200zM280.9000000000001 650H919.1A50 50 0 0 1 963.7999999999998 722.3499999999999L900 850H300L236.2 722.3499999999999A50 50 0 0 1 280.9000000000001 650zM1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H100L222.35 894.7A100 100 0 0 0 311.85 950H400V1050H550V950H650V1050H800V950H888.1999999999999A100 100 0 0 0 977.65 894.7L1100 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525zM250 500C365.85 500 443.95 462.25 484.3 386.8000000000001A25 25 0 0 0 462.2499999999999 350H300A50 50 0 0 0 250 400V500zM950 500V400A50 50 0 0 0 900 350H737.75A25 25 0 0 0 715.75 386.8000000000001C756 462.3000000000001 834.0999999999999 500 950 500z","horizAdvX":"1200"},"price-tag-2-fill":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm9 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-4 5v2h8v-2H8zm0-3v2h8v-2H8z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650zM400 400V300H800V400H400zM400 550V450H800V550H400z","horizAdvX":"1200"},"price-tag-2-line":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm2 1.07V20h14V8.07l-7-4.666L5 8.07zM8 16h8v2H8v-2zm0-3h8v2H8v-2zm4-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM250 796.5V200H950V796.5L600 1029.8L250 796.5zM400 400H800V300H400V400zM400 550H800V450H400V550zM600 650A100 100 0 1 0 600 850A100 100 0 0 0 600 650z","horizAdvX":"1200"},"price-tag-3-fill":{"path":["M0 0h24v24H0z","M10.9 2.1l9.899 1.415 1.414 9.9-9.192 9.192a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414L10.9 2.1zm2.828 8.486a2 2 0 1 0 2.828-2.829 2 2 0 0 0-2.828 2.829z"],"unicode":"","glyph":"M545 1095L1039.95 1024.25L1110.65 529.25L651.0500000000001 69.6500000000001A50 50 0 0 0 580.35 69.6500000000001L85.35 564.6500000000001A50 50 0 0 0 85.35 635.35L545 1095zM686.4 670.6999999999999A100 100 0 1 1 827.8000000000001 812.1500000000001A100 100 0 0 1 686.4000000000001 670.6999999999999z","horizAdvX":"1200"},"price-tag-3-line":{"path":["M0 0h24v24H0z","M10.9 2.1l9.899 1.415 1.414 9.9-9.192 9.192a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414L10.9 2.1zm.707 2.122L3.828 12l8.486 8.485 7.778-7.778-1.06-7.425-7.425-1.06zm2.12 6.364a2 2 0 1 1 2.83-2.829 2 2 0 0 1-2.83 2.829z"],"unicode":"","glyph":"M545 1095L1039.95 1024.25L1110.65 529.25L651.0500000000001 69.6500000000001A50 50 0 0 0 580.35 69.6500000000001L85.35 564.6500000000001A50 50 0 0 0 85.35 635.35L545 1095zM580.35 988.9L191.4 600L615.7 175.75L1004.6 564.65L951.6 935.9L580.3499999999999 988.8999999999997zM686.35 670.7A100 100 0 1 0 827.8500000000001 812.1500000000001A100 100 0 0 0 686.3500000000001 670.7z","horizAdvX":"1200"},"price-tag-fill":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm9 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"price-tag-line":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm2 1.07V20h14V8.07l-7-4.666L5 8.07zM12 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM250 796.5V200H950V796.5L600 1029.8L250 796.5zM600 650A100 100 0 1 0 600 850A100 100 0 0 0 600 650z","horizAdvX":"1200"},"printer-cloud-fill":{"path":["M0 0h24v24H0z","M10.566 17A4.737 4.737 0 0 0 10 19.25c0 1.023.324 1.973.877 2.75H7v-5h3.566zm6.934-4a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5zM21 8a1 1 0 0 1 1 1l.001 4.346A5.482 5.482 0 0 0 17.5 11l-.221.004A5.503 5.503 0 0 0 12.207 15H5v5H3a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h18zM8 10H5v2h3v-2zm9-8a1 1 0 0 1 1 1v3H6V3a1 1 0 0 1 1-1h10z"],"unicode":"","glyph":"M528.3000000000001 350A236.85000000000002 236.85000000000002 0 0 1 500 237.5C500 186.35 516.2 138.8500000000001 543.85 100H350V350H528.3zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550zM1050 800A50 50 0 0 0 1100 750L1100.05 532.7A274.1 274.1 0 0 1 875 650L863.95 649.8000000000001A275.15 275.15 0 0 1 610.35 450H250V200H150A50 50 0 0 0 100 250V750A50 50 0 0 0 150 800H1050zM400 700H250V600H400V700zM850 1100A50 50 0 0 0 900 1050V900H300V1050A50 50 0 0 0 350 1100H850z","horizAdvX":"1200"},"printer-cloud-line":{"path":["M0 0h24v24H0z","M17 2a1 1 0 0 1 1 1v4h3a1 1 0 0 1 1 1l.001 5.346a5.516 5.516 0 0 0-2-1.745L20 9H4v8h2v-1a1 1 0 0 1 1-1h5.207l-.071.283-.03.02A4.763 4.763 0 0 0 10.567 17L8 17v3h2.06a4.73 4.73 0 0 0 .817 2H7a1 1 0 0 1-1-1v-2H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h10zm.5 11a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5zm0 2a1.5 1.5 0 0 0-1.473 1.215l-.02.14L16 16.5v1.62l-1.444.406a.75.75 0 0 0 .08 1.466l.109.008h5.51a.75.75 0 0 0 .19-1.474l-1.013-.283L19 18.12V16.5l-.007-.144A1.5 1.5 0 0 0 17.5 15zM8 10v2H5v-2h3zm8-6H8v3h8V4z"],"unicode":"","glyph":"M850 1100A50 50 0 0 0 900 1050V850H1050A50 50 0 0 0 1100 800L1100.05 532.7A275.79999999999995 275.79999999999995 0 0 1 1000.05 619.95L1000 750H200V350H300V400A50 50 0 0 0 350 450H610.35L606.8000000000001 435.85L605.3000000000001 434.85A238.15 238.15 0 0 1 528.35 350L400 350V200H503A236.50000000000003 236.50000000000003 0 0 1 543.85 100H350A50 50 0 0 0 300 150V250H150A50 50 0 0 0 100 300V800A50 50 0 0 0 150 850H300V1050A50 50 0 0 0 350 1100H850zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550zM875 450A75 75 0 0 1 801.35 389.25L800.35 382.25L800 375V294L727.8000000000001 273.7000000000001A37.5 37.5 0 0 1 731.8000000000001 200.4L737.25 200H1012.7500000000002A37.5 37.5 0 0 1 1022.2500000000002 273.7000000000001L971.6000000000003 287.85L950 294V375L949.65 382.2A75 75 0 0 1 875 450zM400 700V600H250V700H400zM800 1000H400V850H800V1000z","horizAdvX":"1200"},"printer-fill":{"path":["M0 0h24v24H0z","M7 17h10v5H7v-5zm12 3v-5H5v5H3a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-2zM5 10v2h3v-2H5zm2-8h10a1 1 0 0 1 1 1v3H6V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M350 350H850V100H350V350zM950 200V450H250V200H150A50 50 0 0 0 100 250V750A50 50 0 0 0 150 800H1050A50 50 0 0 0 1100 750V250A50 50 0 0 0 1050 200H950zM250 700V600H400V700H250zM350 1100H850A50 50 0 0 0 900 1050V900H300V1050A50 50 0 0 0 350 1100z","horizAdvX":"1200"},"printer-line":{"path":["M0 0h24v24H0z","M6 19H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v4h3a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-2zm0-2v-1a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1h2V9H4v8h2zM8 4v3h8V4H8zm0 13v3h8v-3H8zm-3-7h3v2H5v-2z"],"unicode":"","glyph":"M300 250H150A50 50 0 0 0 100 300V800A50 50 0 0 0 150 850H300V1050A50 50 0 0 0 350 1100H850A50 50 0 0 0 900 1050V850H1050A50 50 0 0 0 1100 800V300A50 50 0 0 0 1050 250H900V150A50 50 0 0 0 850 100H350A50 50 0 0 0 300 150V250zM300 350V400A50 50 0 0 0 350 450H850A50 50 0 0 0 900 400V350H1000V750H200V350H300zM400 1000V850H800V1000H400zM400 350V200H800V350H400zM250 700H400V600H250V700z","horizAdvX":"1200"},"product-hunt-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1.334-10H10.5V9h2.834a1.5 1.5 0 0 1 0 3zm0-5H8.5v10h2v-3h2.834a3.5 3.5 0 0 0 0-7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM666.6999999999999 600H525V750H666.6999999999999A75 75 0 0 0 666.6999999999999 600zM666.6999999999999 850H425V350H525V500H666.6999999999999A175 175 0 0 1 666.6999999999999 850z","horizAdvX":"1200"},"product-hunt-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1.334-8a1.5 1.5 0 0 0 0-3H10.5v3h2.834zm0-5a3.5 3.5 0 0 1 0 7H10.5v3h-2V7h4.834z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM666.6999999999999 600A75 75 0 0 1 666.6999999999999 750H525V600H666.6999999999999zM666.6999999999999 850A175 175 0 0 0 666.6999999999999 500H525V350H425V850H666.6999999999999z","horizAdvX":"1200"},"profile-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM6 15v2h12v-2H6zm0-8v6h6V7H6zm8 0v2h4V7h-4zm0 4v2h4v-2h-4zM8 9h2v2H8V9z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM300 450V350H900V450H300zM300 850V550H600V850H300zM700 850V750H900V850H700zM700 650V550H900V650H700zM400 750H500V650H400V750z","horizAdvX":"1200"},"profile-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm2 2h6v6H6V7zm2 2v2h2V9H8zm-2 6h12v2H6v-2zm8-8h4v2h-4V7zm0 4h4v2h-4v-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM300 850H600V550H300V850zM400 750V650H500V750H400zM300 450H900V350H300V450zM700 850H900V750H700V850zM700 650H900V550H700V650z","horizAdvX":"1200"},"projector-2-fill":{"path":["M0 0h24v24H0z","M22 19v2h-2v-2H4v2H2v-2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h9.81a6.481 6.481 0 0 1 4.69-2c1.843 0 3.507.767 4.69 2H22a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1zm-5.5-5a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9zm0-2a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM4 13v2h2v-2H4zm4 0v2h2v-2H8z"],"unicode":"","glyph":"M1100 250V150H1000V250H200V150H100V250A50 50 0 0 0 50 300V900A50 50 0 0 0 100 950H590.5A324.05 324.05 0 0 0 825 1050C917.15 1050 1000.35 1011.65 1059.5 950H1100A50 50 0 0 0 1150 900V300A50 50 0 0 0 1100 250zM825 500A225 225 0 1 1 825 950A225 225 0 0 1 825 500zM825 600A125 125 0 1 0 825 850A125 125 0 0 0 825 600zM200 550V450H300V550H200zM400 550V450H500V550H400z","horizAdvX":"1200"},"projector-2-line":{"path":["M0 0h24v24H0z","M22 19v2h-2v-2H4v2H2v-2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h10.528A5.985 5.985 0 0 1 17 3c1.777 0 3.374.773 4.472 2H22a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1zM11.341 7H3v10h18v-3.528A6 6 0 0 1 11.341 7zM17 13a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM5 13h2v2H5v-2zm3 0h2v2H8v-2z"],"unicode":"","glyph":"M1100 250V150H1000V250H200V150H100V250A50 50 0 0 0 50 300V900A50 50 0 0 0 100 950H626.4A299.25 299.25 0 0 0 850 1050C938.85 1050 1018.7 1011.35 1073.6000000000001 950H1100A50 50 0 0 0 1150 900V300A50 50 0 0 0 1100 250zM567.05 850H150V350H1050V526.4A300 300 0 0 0 567.05 850zM850 550A200 200 0 1 1 850 950A200 200 0 0 1 850 550zM250 550H350V450H250V550zM400 550H500V450H400V550z","horizAdvX":"1200"},"projector-fill":{"path":["M0 0h24v24H0z","M11.112 12a4.502 4.502 0 0 0 8.776 0H22v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h9.112zM5 16h2v2H5v-2zm10.5-2.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM11.112 10H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6h-2.112a4.502 4.502 0 0 0-8.776 0z"],"unicode":"","glyph":"M555.6 600A225.1 225.1 0 0 1 994.3999999999997 600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H555.6zM250 400H350V300H250V400zM775 525A125 125 0 1 0 775 775A125 125 0 0 0 775 525zM555.6 700H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V700H994.3999999999997A225.1 225.1 0 0 1 555.5999999999999 700z","horizAdvX":"1200"},"projector-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8.126 9H4v7h16v-7h-1.126a4.002 4.002 0 0 1-7.748 0zm0-2a4.002 4.002 0 0 1 7.748 0H20V5H4v5h7.126zM15 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-9 2h2v2H6v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM556.3 600H200V250H1000V600H943.7A200.10000000000002 200.10000000000002 0 0 0 556.2999999999998 600zM556.3 700A200.10000000000002 200.10000000000002 0 0 0 943.7 700H1000V950H200V700H556.3000000000001zM750 550A100 100 0 1 1 750 750A100 100 0 0 1 750 550zM300 450H400V350H300V450z","horizAdvX":"1200"},"psychotherapy-fill":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm0 5c-.552 0-1 .448-1 1v.999L9 9c-.552 0-1 .448-1 1s.448 1 1 1l1-.001V12c0 .552.448 1 1 1s1-.448 1-1v-1h1c.552 0 1-.448 1-1s-.448-1-1-1h-1V8c0-.552-.448-1-1-1z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM550 850C522.4 850 500 827.5999999999999 500 800V750.05L450 750C422.4000000000001 750 400 727.5999999999999 400 700S422.4000000000001 650 450 650L500 650.05V600C500 572.4 522.4 550 550 550S600 572.4 600 600V650H650C677.6 650 700 672.4 700 700S677.6 750 650 750H600V800C600 827.5999999999999 577.6 850 550 850z","horizAdvX":"1200"},"psychotherapy-line":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm0 2c-3.314 0-6 2.686-6 6 0 1.385.468 2.693 1.316 3.75C7.41 15.114 8 16.667 8 18.306V20h5l.002-3H17v-4.248l1.55-.664-1.543-2.425-.057-.442C16.566 6.251 14.024 4 11 4zm0 3c.552 0 1 .448 1 1v1h1c.552 0 1 .448 1 1s-.448 1-1 1h-1v1c0 .552-.448 1-1 1s-1-.448-1-1v-1.001L9 11c-.552 0-1-.448-1-1s.448-1 1-1l1-.001V8c0-.552.448-1 1-1z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM550 1000C384.3 1000 250 865.7 250 700C250 630.75 273.4 565.35 315.8 512.5C370.5 444.3 400 366.6499999999999 400 284.7V200H650L650.1 350H850V562.4000000000001L927.5 595.6L850.35 716.8499999999999L847.5000000000001 738.95C828.3 887.45 701.1999999999999 1000 550 1000zM550 850C577.6 850 600 827.5999999999999 600 800V750H650C677.6 750 700 727.5999999999999 700 700S677.6 650 650 650H600V600C600 572.4 577.6 550 550 550S500 572.4 500 600V650.05L450 650C422.4000000000001 650 400 672.4 400 700S422.4000000000001 750 450 750L500 750.05V800C500 827.5999999999999 522.4 850 550 850z","horizAdvX":"1200"},"pulse-fill":{"path":["M0 0H24V24H0z","M9 7.539L15 21.539 18.659 13 23 13 23 11 17.341 11 15 16.461 9 2.461 5.341 11 1 11 1 13 6.659 13z"],"unicode":"","glyph":"M450 823.05L750 123.05L932.95 550L1150 550L1150 650L867.0500000000001 650L750 376.9500000000001L450 1076.95L267.05 650L50 650L50 550L332.95 550z","horizAdvX":"1200"},"pulse-line":{"path":["M0 0H24V24H0z","M9 7.539L15 21.539 18.659 13 23 13 23 11 17.341 11 15 16.461 9 2.461 5.341 11 1 11 1 13 6.659 13z"],"unicode":"","glyph":"M450 823.05L750 123.05L932.95 550L1150 550L1150 650L867.0500000000001 650L750 376.9500000000001L450 1076.95L267.05 650L50 650L50 550L332.95 550z","horizAdvX":"1200"},"pushpin-2-fill":{"path":["M0 0h24v24H0z","M18 3v2h-1v6l2 3v2h-6v7h-2v-7H5v-2l2-3V5H6V3z"],"unicode":"","glyph":"M900 1050V950H850V650L950 500V400H650V50H550V400H250V500L350 650V950H300V1050z","horizAdvX":"1200"},"pushpin-2-line":{"path":["M0 0h24v24H0z","M18 3v2h-1v6l2 3v2h-6v7h-2v-7H5v-2l2-3V5H6V3h12zM9 5v6.606L7.404 14h9.192L15 11.606V5H9z"],"unicode":"","glyph":"M900 1050V950H850V650L950 500V400H650V50H550V400H250V500L350 650V950H300V1050H900zM450 950V619.7L370.2 500H829.8L750 619.7V950H450z","horizAdvX":"1200"},"pushpin-fill":{"path":["M0 0h24v24H0z","M22.314 10.172l-1.415 1.414-.707-.707-4.242 4.242-.707 3.536-1.415 1.414-4.242-4.243-4.95 4.95-1.414-1.414 4.95-4.95-4.243-4.242 1.414-1.415L8.88 8.05l4.242-4.242-.707-.707 1.414-1.415z"],"unicode":"","glyph":"M1115.7 691.4L1044.95 620.6999999999999L1009.6 656.0500000000001L797.5 443.9500000000001L762.15 267.15L691.4 196.4499999999999L479.3 408.5999999999999L231.8 161.0999999999999L161.0999999999999 231.8L408.6 479.3L196.4499999999999 691.4L267.1499999999999 762.1499999999999L444.0000000000001 797.5L656.1 1009.6L620.75 1044.95L691.4499999999999 1115.7z","horizAdvX":"1200"},"pushpin-line":{"path":["M0 0h24v24H0z","M13.828 1.686l8.486 8.486-1.415 1.414-.707-.707-4.242 4.242-.707 3.536-1.415 1.414-4.242-4.243-4.95 4.95-1.414-1.414 4.95-4.95-4.243-4.242 1.414-1.415L8.88 8.05l4.242-4.242-.707-.707 1.414-1.415zm.708 3.536l-4.671 4.67-2.822.565 6.5 6.5.564-2.822 4.671-4.67-4.242-4.243z"],"unicode":"","glyph":"M691.4 1115.7L1115.7 691.4L1044.95 620.6999999999999L1009.6 656.0500000000001L797.5 443.9500000000001L762.15 267.15L691.4 196.4499999999999L479.3 408.5999999999999L231.8 161.0999999999999L161.0999999999999 231.8L408.6 479.3L196.4499999999999 691.4L267.1499999999999 762.1499999999999L444.0000000000001 797.5L656.1 1009.6L620.75 1044.95L691.4499999999999 1115.7zM726.8 938.9L493.2499999999999 705.4000000000001L352.1499999999999 677.1500000000001L677.15 352.15L705.3499999999999 493.2499999999999L938.9 726.75L726.7999999999998 938.8999999999997z","horizAdvX":"1200"},"qq-fill":{"path":["M0 0h24v24H0z","M19.913 14.529a31.977 31.977 0 0 0-.675-1.886l-.91-2.246c0-.026.012-.468.012-.696C18.34 5.86 16.507 2 12 2 7.493 2 5.66 5.86 5.66 9.7c0 .229.011.671.012.697l-.91 2.246c-.248.643-.495 1.312-.675 1.886-.86 2.737-.581 3.87-.369 3.895.455.054 1.771-2.06 1.771-2.06 0 1.224.637 2.822 2.016 3.976-.515.157-1.147.399-1.554.695-.365.267-.319.54-.253.65.289.481 4.955.307 6.303.157 1.347.15 6.014.324 6.302-.158.066-.11.112-.382-.253-.649-.407-.296-1.039-.538-1.555-.696 1.379-1.153 2.016-2.751 2.016-3.976 0 0 1.316 2.115 1.771 2.06.212-.025.49-1.157-.37-3.894"],"unicode":"","glyph":"M995.65 473.55A1598.85 1598.85 0 0 1 961.9 567.8499999999999L916.4 680.15C916.4 681.4499999999999 917 703.55 917 714.95C917 907 825.35 1100 600 1100C374.6500000000001 1100 283 907 283 715C283 703.5500000000001 283.55 681.45 283.6 680.1500000000001L238.1 567.85C225.7 535.7 213.35 502.2500000000001 204.35 473.5500000000001C161.35 336.7000000000001 175.3 280.0500000000002 185.9 278.8000000000001C208.65 276.1000000000002 274.45 381.8 274.45 381.8C274.45 320.5999999999999 306.3 240.7000000000001 375.25 183C349.5 175.1500000000001 317.9 163.05 297.55 148.25C279.3 134.9000000000001 281.6 121.25 284.9 115.75C299.35 91.7000000000001 532.65 100.4000000000001 600.05 107.9000000000001C667.4 100.4000000000001 900.75 91.7000000000001 915.1499999999997 115.8000000000002C918.4499999999998 121.3000000000002 920.7499999999998 134.9000000000001 902.4999999999998 148.2500000000002C882.1499999999999 163.0500000000002 850.5499999999997 175.1500000000001 824.7499999999999 183.0500000000003C893.6999999999999 240.7000000000002 925.5499999999998 320.6000000000004 925.5499999999998 381.8500000000003C925.5499999999998 381.8500000000003 991.3499999999996 276.1000000000003 1014.0999999999998 278.8500000000003C1024.6999999999998 280.1000000000002 1038.5999999999997 336.7000000000003 995.5999999999998 473.5500000000003","horizAdvX":"1200"},"qq-line":{"path":["M0 0h24v24H0z","M17.535 12.514l-.696-1.796c0-.021.01-.375.01-.558C16.848 7.088 15.446 4 12 4c-3.446 0-4.848 3.088-4.848 6.16 0 .183.009.537.01.558l-.696 1.796c-.19.515-.38 1.05-.517 1.51-.657 2.189-.444 3.095-.282 3.115.348.043 1.354-1.648 1.354-1.648 0 .98.488 2.258 1.542 3.18-.394.127-.878.32-1.188.557-.28.214-.245.431-.194.52.22.385 3.79.245 4.82.125 1.03.12 4.599.26 4.82-.126.05-.088.085-.305-.194-.519-.311-.237-.795-.43-1.19-.556 1.055-.923 1.542-2.202 1.542-3.181 0 0 1.007 1.691 1.355 1.648.162-.02.378-.928-.283-3.116-.14-.463-.325-.994-.516-1.509zm1.021 8.227c-.373.652-.833.892-1.438 1.057-.24.065-.498.108-.794.138-.44.045-.986.065-1.613.064a33.23 33.23 0 0 1-2.71-.116c-.692.065-1.785.114-2.71.116a16.07 16.07 0 0 1-1.614-.064 4.928 4.928 0 0 1-.793-.138c-.605-.164-1.065-.405-1.44-1.059a2.274 2.274 0 0 1-.239-1.652c-.592-.132-1.001-.483-1.279-.911a2.43 2.43 0 0 1-.309-.71 4.028 4.028 0 0 1-.116-1.106c.013-.785.187-1.762.532-2.912.14-.466.327-1.008.568-1.655l.553-1.43a15.496 15.496 0 0 1-.002-.203C5.152 5.605 7.588 2 12 2c4.413 0 6.848 3.605 6.848 8.16l-.001.203.553 1.43.01.026c.225.606.413 1.153.556 1.626.348 1.15.522 2.129.535 2.916.007.407-.03.776-.118 1.108-.066.246-.161.48-.31.708-.276.427-.684.776-1.277.91.13.554.055 1.14-.24 1.654z"],"unicode":"","glyph":"M876.75 574.3000000000001L841.9499999999999 664.1C841.9499999999999 665.1500000000001 842.45 682.85 842.45 692C842.4 845.6 772.3 1000 600 1000C427.7 1000 357.6 845.6 357.6 692C357.6 682.85 358.05 665.15 358.1 664.1L323.3 574.3000000000001C313.8 548.55 304.3 521.8 297.45 498.8000000000001C264.6 389.3499999999999 275.25 344.05 283.35 343.0500000000001C300.75 340.9000000000001 351.05 425.4500000000001 351.05 425.4500000000001C351.05 376.4500000000001 375.4500000000001 312.5500000000001 428.1500000000001 266.4500000000001C408.4500000000001 260.1000000000002 384.25 250.4500000000001 368.7500000000001 238.6000000000002C354.7500000000001 227.9000000000002 356.5000000000001 217.0500000000001 359.0500000000001 212.6000000000001C370.05 193.35 548.55 200.35 600.0500000000001 206.3500000000001C651.5500000000001 200.35 830.0000000000001 193.35 841.0500000000001 212.6500000000002C843.5500000000001 217.0500000000002 845.3000000000001 227.9000000000002 831.3500000000001 238.6000000000002C815.8000000000002 250.4500000000001 791.6000000000001 260.1000000000002 771.8500000000001 266.4000000000001C824.6000000000003 312.5500000000002 848.9500000000002 376.5 848.9500000000002 425.4500000000002C848.9500000000002 425.4500000000002 899.3000000000002 340.9000000000002 916.7000000000002 343.0500000000002C924.8 344.0500000000002 935.6000000000003 389.4500000000003 902.55 498.8500000000001C895.5500000000001 522.0000000000001 886.3000000000002 548.5500000000002 876.7500000000002 574.3000000000002zM927.8 162.9500000000001C909.15 130.3499999999999 886.1500000000001 118.3500000000001 855.9000000000001 110.1000000000001C843.9000000000002 106.8499999999999 831 104.7000000000001 816.2 103.2000000000001C794.2000000000002 100.9499999999998 766.9000000000001 99.9500000000001 735.5500000000001 100A1661.4999999999998 1661.4999999999998 0 0 0 600.0500000000001 105.8C565.45 102.55 510.8000000000001 100.0999999999999 464.55 100A803.5000000000001 803.5000000000001 0 0 0 383.85 103.2000000000001A246.40000000000003 246.40000000000003 0 0 0 344.2000000000001 110.1000000000001C313.95 118.3000000000002 290.9500000000001 130.3500000000001 272.2000000000001 163.0500000000002A113.69999999999999 113.69999999999999 0 0 0 260.2500000000001 245.6500000000002C230.6500000000001 252.2500000000003 210.2000000000001 269.8000000000002 196.3000000000001 291.2000000000003A121.50000000000001 121.50000000000001 0 0 0 180.8500000000001 326.7000000000003A201.39999999999995 201.39999999999995 0 0 0 175.0500000000001 382.0000000000004C175.7000000000001 421.2500000000004 184.4 470.1000000000004 201.6500000000001 527.6000000000004C208.65 550.9000000000003 218.0000000000001 578.0000000000003 230.0500000000001 610.3500000000003L257.7000000000001 681.8500000000003A774.8 774.8 0 0 0 257.6 692.0000000000002C257.6 919.75 379.4 1100 600 1100C820.65 1100 942.4 919.75 942.4 692L942.35 681.85L969.9999999999998 610.35L970.5 609.0500000000001C981.7500000000002 578.75 991.15 551.4 998.3 527.7500000000001C1015.7 470.25 1024.4 421.3000000000001 1025.05 381.9500000000002C1025.4 361.6000000000002 1023.55 343.1500000000002 1019.15 326.5500000000001C1015.8500000000003 314.2500000000003 1011.1 302.5500000000001 1003.6500000000002 291.1500000000002C989.8500000000003 269.8000000000002 969.4500000000002 252.3500000000003 939.8000000000002 245.6500000000002C946.3 217.9500000000003 942.5500000000002 188.6500000000002 927.8000000000002 162.9500000000003z","horizAdvX":"1200"},"qr-code-fill":{"path":["M0 0h24v24H0z","M16 17v-1h-3v-3h3v2h2v2h-1v2h-2v2h-2v-3h2v-1h1zm5 4h-4v-2h2v-2h2v4zM3 3h8v8H3V3zm10 0h8v8h-8V3zM3 13h8v8H3v-8zm15 0h3v2h-3v-2zM6 6v2h2V6H6zm0 10v2h2v-2H6zM16 6v2h2V6h-2z"],"unicode":"","glyph":"M800 350V400H650V550H800V450H900V350H850V250H750V150H650V300H750V350H800zM1050 150H850V250H950V350H1050V150zM150 1050H550V650H150V1050zM650 1050H1050V650H650V1050zM150 550H550V150H150V550zM900 550H1050V450H900V550zM300 900V800H400V900H300zM300 400V300H400V400H300zM800 900V800H900V900H800z","horizAdvX":"1200"},"qr-code-line":{"path":["M0 0h24v24H0z","M16 17v-1h-3v-3h3v2h2v2h-1v2h-2v2h-2v-3h2v-1h1zm5 4h-4v-2h2v-2h2v4zM3 3h8v8H3V3zm2 2v4h4V5H5zm8-2h8v8h-8V3zm2 2v4h4V5h-4zM3 13h8v8H3v-8zm2 2v4h4v-4H5zm13-2h3v2h-3v-2zM6 6h2v2H6V6zm0 10h2v2H6v-2zM16 6h2v2h-2V6z"],"unicode":"","glyph":"M800 350V400H650V550H800V450H900V350H850V250H750V150H650V300H750V350H800zM1050 150H850V250H950V350H1050V150zM150 1050H550V650H150V1050zM250 950V750H450V950H250zM650 1050H1050V650H650V1050zM750 950V750H950V950H750zM150 550H550V150H150V550zM250 450V250H450V450H250zM900 550H1050V450H900V550zM300 900H400V800H300V900zM300 400H400V300H300V400zM800 900H900V800H800V900z","horizAdvX":"1200"},"qr-scan-2-fill":{"path":["M0 0h24v24H0z","M15 3h6v6h-6V3zM9 3v6H3V3h6zm6 18v-6h6v6h-6zm-6 0H3v-6h6v6zM3 11h18v2H3v-2z"],"unicode":"","glyph":"M750 1050H1050V750H750V1050zM450 1050V750H150V1050H450zM750 150V450H1050V150H750zM450 150H150V450H450V150zM150 650H1050V550H150V650z","horizAdvX":"1200"},"qr-scan-2-line":{"path":["M0 0h24v24H0z","M15 3h6v5h-2V5h-4V3zM9 3v2H5v3H3V3h6zm6 18v-2h4v-3h2v5h-6zm-6 0H3v-5h2v3h4v2zM3 11h18v2H3v-2z"],"unicode":"","glyph":"M750 1050H1050V800H950V950H750V1050zM450 1050V950H250V800H150V1050H450zM750 150V250H950V400H1050V150H750zM450 150H150V400H250V250H450V150zM150 650H1050V550H150V650z","horizAdvX":"1200"},"qr-scan-fill":{"path":["M0 0h24v24H0z","M21 15v5.007a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V15h18zM2 11h20v2H2v-2zm19-2H3V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993V9z"],"unicode":"","glyph":"M1050 450V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V450H1050zM100 650H1100V550H100V650zM1050 750H150V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V750z","horizAdvX":"1200"},"qr-scan-line":{"path":["M0 0h24v24H0z","M21 16v5H3v-5h2v3h14v-3h2zM3 11h18v2H3v-2zm18-3h-2V5H5v3H3V3h18v5z"],"unicode":"","glyph":"M1050 400V150H150V400H250V250H950V400H1050zM150 650H1050V550H150V650zM1050 800H950V950H250V800H150V1050H1050V800z","horizAdvX":"1200"},"question-answer-fill":{"path":["M0 0h24v24H0z","M8 18h10.237L20 19.385V9h1a1 1 0 0 1 1 1v13.5L17.545 20H9a1 1 0 0 1-1-1v-1zm-2.545-2L1 19.5V4a1 1 0 0 1 1-1h15a1 1 0 0 1 1 1v12H5.455z"],"unicode":"","glyph":"M400 300H911.8500000000003L1000 230.7499999999999V750H1050A50 50 0 0 0 1100 700V25L877.2500000000001 200H450A50 50 0 0 0 400 250V300zM272.75 400L50 225V1000A50 50 0 0 0 100 1050H850A50 50 0 0 0 900 1000V400H272.75z","horizAdvX":"1200"},"question-answer-line":{"path":["M0 0h24v24H0z","M5.455 15L1 18.5V3a1 1 0 0 1 1-1h15a1 1 0 0 1 1 1v12H5.455zm-.692-2H16V4H3v10.385L4.763 13zM8 17h10.237L20 18.385V8h1a1 1 0 0 1 1 1v13.5L17.545 19H9a1 1 0 0 1-1-1v-1z"],"unicode":"","glyph":"M272.75 450L50 275V1050A50 50 0 0 0 100 1100H850A50 50 0 0 0 900 1050V450H272.75zM238.15 550H800V1000H150V480.75L238.15 550zM400 350H911.8500000000003L1000 280.7499999999999V800H1050A50 50 0 0 0 1100 750V75L877.2500000000001 250H450A50 50 0 0 0 400 300V350z","horizAdvX":"1200"},"question-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm2-1.645A3.502 3.502 0 0 0 12 6.5a3.501 3.501 0 0 0-3.433 2.813l1.962.393A1.5 1.5 0 1 1 12 11.5a1 1 0 0 0-1 1V14h2v-.645z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 450V350H650V450H550zM650 532.25A175.1 175.1 0 0 1 600 875A175.04999999999998 175.04999999999998 0 0 1 428.35 734.3499999999999L526.45 714.6999999999999A75 75 0 1 0 600 625A50 50 0 0 1 550 575V500H650V532.25z","horizAdvX":"1200"},"question-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-5h2v2h-2v-2zm2-1.645V14h-2v-1.5a1 1 0 0 1 1-1 1.5 1.5 0 1 0-1.471-1.794l-1.962-.393A3.501 3.501 0 1 1 13 13.355z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 450H650V350H550V450zM650 532.25V500H550V575A50 50 0 0 0 600 625A75 75 0 1 1 526.45 714.7L428.35 734.3500000000001A175.04999999999998 175.04999999999998 0 1 0 650 532.25z","horizAdvX":"1200"},"question-mark":{"path":["M0 0H24V24H0z","M12 19c.828 0 1.5.672 1.5 1.5S12.828 22 12 22s-1.5-.672-1.5-1.5.672-1.5 1.5-1.5zm0-17c3.314 0 6 2.686 6 6 0 2.165-.753 3.29-2.674 4.923C13.399 14.56 13 15.297 13 17h-2c0-2.474.787-3.695 3.031-5.601C15.548 10.11 16 9.434 16 8c0-2.21-1.79-4-4-4S8 5.79 8 8v1H6V8c0-3.314 2.686-6 6-6z"],"unicode":"","glyph":"M600 250C641.4 250 675 216.4 675 175S641.4 100 600 100S525 133.6000000000001 525 175S558.6 250 600 250zM600 1100C765.7 1100 900 965.7 900 800C900 691.75 862.35 635.5 766.3000000000001 553.85C669.9499999999999 472 650 435.15 650 350H550C550 473.7 589.35 534.75 701.5500000000001 630.05C777.4 694.5 800 728.3 800 800C800 910.5 710.5 1000 600 1000S400 910.5 400 800V750H300V800C300 965.7 434.3 1100 600 1100z","horizAdvX":"1200"},"questionnaire-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 14v2h2v-2h-2zM8.567 8.813l1.962.393A1.5 1.5 0 1 1 12 11h-1v2h1a3.5 3.5 0 1 0-3.433-4.187z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 500V400H650V500H550zM428.35 759.3499999999999L526.45 739.6999999999999A75 75 0 1 0 600 650H550V550H600A175 175 0 1 1 428.35 759.3500000000001z","horizAdvX":"1200"},"questionnaire-line":{"path":["M0 0h24v24H0z","M5.763 17H20V5H4v13.385L5.763 17zm.692 2L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 14h2v2h-2v-2zM8.567 8.813A3.501 3.501 0 1 1 12 13h-1v-2h1a1.5 1.5 0 1 0-1.471-1.794l-1.962-.393z"],"unicode":"","glyph":"M288.15 350H1000V950H200V280.7500000000001L288.15 350zM322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 500H650V400H550V500zM428.35 759.3499999999999A175.04999999999998 175.04999999999998 0 1 0 600 550H550V650H600A75 75 0 1 1 526.45 739.7L428.35 759.3500000000001z","horizAdvX":"1200"},"quill-pen-fill":{"path":["M0 0h24v24H0z","M21 2C6 2 4 16 3 22h1.998c.666-3.333 2.333-5.166 5.002-5.5 4-.5 7-4 8-7l-1.5-1 1-1c1-1 2.004-2.5 3.5-5.5z"],"unicode":"","glyph":"M1050 1100C300 1100 200 400 150 100H249.9C283.2000000000001 266.6499999999999 366.55 358.3000000000001 500 375C700 400 850 575 900 725L825 775L875 825C925 875 975.2 950 1050 1100z","horizAdvX":"1200"},"quill-pen-line":{"path":["M0 0h24v24H0z","M6.94 14.036c-.233.624-.43 1.2-.606 1.783.96-.697 2.101-1.139 3.418-1.304 2.513-.314 4.746-1.973 5.876-4.058l-1.456-1.455 1.413-1.415 1-1.001c.43-.43.915-1.224 1.428-2.368-5.593.867-9.018 4.292-11.074 9.818zM17 9.001L18 10c-1 3-4 6-8 6.5-2.669.334-4.336 2.167-5.002 5.5H3C4 16 6 2 21 2c-1 2.997-1.998 4.996-2.997 5.997L17 9.001z"],"unicode":"","glyph":"M347 498.2C335.35 467 325.5000000000001 438.2000000000001 316.7000000000001 409.0500000000001C364.7000000000001 443.9 421.75 466 487.6 474.2500000000001C613.25 489.95 724.9000000000001 572.9000000000001 781.4 677.1500000000001L708.6 749.9000000000001L779.25 820.6500000000001L829.25 870.7C850.75 892.2 875 931.9 900.6500000000001 989.1000000000003C621.0000000000001 945.7500000000002 449.7500000000001 774.5000000000001 346.9500000000001 498.2000000000002zM850 749.95L900 700C850 550 700 400 500 375C366.55 358.3000000000001 283.2 266.6499999999999 249.9 100H150C200 400 300 1100 1050 1100C1000 950.15 950.1 850.2 900.15 800.15L850 749.95z","horizAdvX":"1200"},"radar-fill":{"path":["M0 0h24v24H0z","M14.368 4.398l-3.484 6.035 1.732 1L16.1 5.398c4.17 2.772 6.306 7.08 4.56 10.102-1.86 3.222-7.189 3.355-11.91.63C4.029 13.402 1.48 8.721 3.34 5.5c1.745-3.023 6.543-3.327 11.028-1.102zm1.516-2.625l1.732 1-1.5 2.598-1.732-1 1.5-2.598zM6.732 20H17v2H5.017a.995.995 0 0 1-.883-.5 1.005 1.005 0 0 1 0-1l2.25-3.897 1.732 1L6.732 20z"],"unicode":"","glyph":"M718.4 980.1L544.2 678.35L630.8 628.35L805.0000000000001 930.1C1013.5000000000002 791.5 1120.3000000000002 576.1 1033 425C940 263.9 673.55 257.25 437.5 393.5C201.45 529.9000000000001 74 763.95 167 925C254.25 1076.15 494.15 1091.35 718.4 980.1zM794.2 1111.35L880.8 1061.35L805.8 931.45L719.2 981.45L794.2 1111.35zM336.6 200H850V100H250.85A49.75000000000001 49.75000000000001 0 0 0 206.7 125A50.24999999999999 50.24999999999999 0 0 0 206.7 175L319.2000000000001 369.8499999999999L405.8 319.8499999999999L336.6 200z","horizAdvX":"1200"},"radar-line":{"path":["M0 0h24v24H0z","M12.506 3.623l-1.023 1.772c-2.91-.879-5.514-.45-6.411 1.105-1.178 2.04.79 5.652 4.678 7.897s8 2.142 9.178.103c.898-1.555-.033-4.024-2.249-6.105l1.023-1.772c3.082 2.709 4.463 6.27 2.958 8.877-1.86 3.222-7.189 3.355-11.91.63C4.029 13.402 1.48 8.721 3.34 5.5c1.505-2.607 5.28-3.192 9.166-1.877zm3.378-1.85l1.732 1-5 8.66-1.732-1 5-8.66zM6.732 20H17v2H5.017a.995.995 0 0 1-.883-.5 1.005 1.005 0 0 1 0-1l2.25-3.897 1.732 1L6.732 20z"],"unicode":"","glyph":"M625.3 1018.85L574.15 930.25C428.6500000000001 974.2 298.45 952.75 253.6000000000001 875C194.7000000000001 773 293.1 592.4 487.5 480.15S887.5 373.05 946.4 475C991.3 552.75 944.75 676.2 833.95 780.25L885.1000000000001 868.85C1039.2 733.4000000000001 1108.2500000000002 555.35 1033.0000000000002 425C940.0000000000002 263.9 673.5500000000002 257.25 437.5000000000002 393.5C201.45 529.9000000000001 74 763.95 167 925C242.25 1055.35 431.0000000000001 1084.6 625.3 1018.85zM794.2 1111.35L880.8 1061.35L630.8 628.35L544.2 678.35L794.2 1111.35zM336.6 200H850V100H250.85A49.75000000000001 49.75000000000001 0 0 0 206.7 125A50.24999999999999 50.24999999999999 0 0 0 206.7 175L319.2000000000001 369.8499999999999L405.8 319.8499999999999L336.6 200z","horizAdvX":"1200"},"radio-2-fill":{"path":["M0 0h24v24H0z","M6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm3 12a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm5-6v2h4V9h-4zm0 4v2h4v-2h-4z"],"unicode":"","glyph":"M300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM450 450A150 150 0 1 1 450 750A150 150 0 0 1 450 450zM700 750V650H900V750H700zM700 550V450H900V550H700z","horizAdvX":"1200"},"radio-2-line":{"path":["M0 0h24v24H0z","M6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm5 10a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm5-6h4v2h-4V9zm0 4h4v2h-4v-2z"],"unicode":"","glyph":"M300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM200 950V250H1000V950H200zM450 450A150 150 0 1 0 450 750A150 150 0 0 0 450 450zM700 750H900V650H700V750zM700 550H900V450H700V550z","horizAdvX":"1200"},"radio-button-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-6a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400z","horizAdvX":"1200"},"radio-button-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-3a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350z","horizAdvX":"1200"},"radio-fill":{"path":["M0 0h24v24H0z","M17 10h3V6H4v4h11V8h2v2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm1 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M850 700H1000V900H200V700H750V800H850V700zM300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM350 250A150 150 0 1 1 350 550A150 150 0 0 1 350 250z","horizAdvX":"1200"},"radio-line":{"path":["M0 0h24v24H0z","M17 10V8h-2v2H5V6h14v4h-2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm4 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M850 700V800H750V700H250V900H950V700H850zM300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM200 950V250H1000V950H200zM400 300A150 150 0 1 0 400 600A150 150 0 0 0 400 300z","horizAdvX":"1200"},"rainbow-fill":{"path":["M0 0h24v24H0z","M12 4c6.075 0 11 4.925 11 11v5h-3v-5a8 8 0 0 0-7.75-7.996L12 7a8 8 0 0 0-7.996 7.75L4 15v5H1v-5C1 8.925 5.925 4 12 4zm0 4a7 7 0 0 1 7 7v5h-3v-5a4 4 0 0 0-3.8-3.995L12 11a4 4 0 0 0-3.995 3.8L8 15v5H5v-5a7 7 0 0 1 7-7zm0 4a3 3 0 0 1 3 3v5H9v-5a3 3 0 0 1 3-3z"],"unicode":"","glyph":"M600 1000C903.75 1000 1150 753.75 1150 450V200H1000V450A400 400 0 0 1 612.5 849.8L600 850A400 400 0 0 1 200.2 462.5L200 450V200H50V450C50 753.75 296.25 1000 600 1000zM600 800A350 350 0 0 0 950 450V200H800V450A200 200 0 0 1 610 649.75L600 650A200 200 0 0 1 400.25 460L400 450V200H250V450A350 350 0 0 0 600 800zM600 600A150 150 0 0 0 750 450V200H450V450A150 150 0 0 0 600 600z","horizAdvX":"1200"},"rainbow-line":{"path":["M0 0h24v24H0z","M12 4c6.075 0 11 4.925 11 11v5h-2v-5a9 9 0 0 0-8.735-8.996L12 6a9 9 0 0 0-8.996 8.735L3 15v5H1v-5C1 8.925 5.925 4 12 4zm0 4a7 7 0 0 1 7 7v5h-2v-5a5 5 0 0 0-4.783-4.995L12 10a5 5 0 0 0-4.995 4.783L7 15v5H5v-5a7 7 0 0 1 7-7zm0 4a3 3 0 0 1 3 3v5h-2v-5a1 1 0 0 0-.883-.993L12 14a1 1 0 0 0-.993.883L11 15v5H9v-5a3 3 0 0 1 3-3z"],"unicode":"","glyph":"M600 1000C903.75 1000 1150 753.75 1150 450V200H1050V450A450 450 0 0 1 613.25 899.8L600 900A450 450 0 0 1 150.2 463.25L150 450V200H50V450C50 753.75 296.25 1000 600 1000zM600 800A350 350 0 0 0 950 450V200H850V450A250 250 0 0 1 610.8499999999999 699.75L600 700A250 250 0 0 1 350.25 460.8499999999999L350 450V200H250V450A350 350 0 0 0 600 800zM600 600A150 150 0 0 0 750 450V200H650V450A50 50 0 0 1 605.85 499.65L600 500A50 50 0 0 1 550.35 455.85L550 450V200H450V450A150 150 0 0 0 600 600z","horizAdvX":"1200"},"rainy-fill":{"path":["M0 0h24v24H0z","M15.86 18l-3.153-3.153a1 1 0 0 0-1.414 0L8.18 17.96A8.001 8.001 0 1 1 15.98 6.087 6 6 0 1 1 17 18h-1.139zm-5.628.732L12 16.964l1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M793 300L635.3499999999999 457.65A50 50 0 0 1 564.65 457.65L409 302A400.04999999999995 400.04999999999995 0 1 0 799 895.6500000000001A300 300 0 1 0 850 300H793.0500000000001zM511.6 263.4000000000001L600 351.8000000000001L688.4000000000001 263.4000000000001A125 125 0 1 0 511.6000000000001 263.4000000000001z","horizAdvX":"1200"},"rainy-line":{"path":["M0 0h24v24H0z","M16 18v-2h1a4 4 0 1 0-2.157-7.37A6 6 0 1 0 8 15.917v2.022A8.001 8.001 0 0 1 9 2a7.998 7.998 0 0 1 6.98 4.087A6 6 0 1 1 17 18h-1zm-5.768.732L12 16.964l1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M800 300V400H850A200 200 0 1 1 742.15 768.5A300 300 0 1 1 400 404.15V303.05A400.04999999999995 400.04999999999995 0 0 0 450 1100A399.90000000000003 399.90000000000003 0 0 0 799 895.6500000000001A300 300 0 1 0 850 300H800zM511.6 263.4000000000001L600 351.8000000000001L688.4000000000001 263.4000000000001A125 125 0 1 0 511.6000000000001 263.4000000000001z","horizAdvX":"1200"},"reactjs-fill":{"path":["M0 0h24v24H0z","M14.448 16.24a21.877 21.877 0 0 1-1.747 2.175c1.672 1.623 3.228 2.383 4.09 1.884.864-.498.983-2.225.414-4.484-.853.19-1.78.334-2.757.425zm-1.31.087a27.512 27.512 0 0 1-2.276 0c.377.492.758.948 1.138 1.364.38-.416.76-.872 1.138-1.364zm5.04-7.894c2.665.764 4.405 2.034 4.405 3.567 0 1.533-1.74 2.803-4.405 3.567.67 2.69.441 4.832-.886 5.598-1.328.767-3.298-.105-5.292-2.03-1.994 1.925-3.964 2.797-5.292 2.03-1.327-.766-1.557-2.908-.886-5.598-2.665-.764-4.405-2.034-4.405-3.567 0-1.533 1.74-2.803 4.405-3.567-.67-2.69-.441-4.832.886-5.598 1.328-.767 3.298.105 5.292 2.03 1.994-1.925 3.964-2.797 5.292-2.03 1.327.766 1.557 2.908.886 5.598zm-.973-.248c.57-2.26.45-3.986-.413-4.484-.863-.499-2.419.261-4.09 1.884.591.643 1.179 1.374 1.746 2.175.978.09 1.904.234 2.757.425zm-10.41 7.63c-.57 2.26-.45 3.986.413 4.484.863.499 2.419-.261 4.09-1.884a21.877 21.877 0 0 1-1.746-2.175 21.877 21.877 0 0 1-2.757-.425zm4.067-8.142a27.512 27.512 0 0 1 2.276 0A20.523 20.523 0 0 0 12 6.31c-.38.416-.76.872-1.138 1.364zm-1.31.087A21.877 21.877 0 0 1 11.3 5.585C9.627 3.962 8.07 3.202 7.209 3.701c-.864.498-.983 2.225-.414 4.484.853-.19 1.78-.334 2.757-.425zm4.342 7.52A25.368 25.368 0 0 0 15.787 12a25.368 25.368 0 0 0-1.893-3.28 25.368 25.368 0 0 0-3.788 0A25.368 25.368 0 0 0 8.213 12a25.368 25.368 0 0 0 1.893 3.28 25.368 25.368 0 0 0 3.788 0zm1.284-.131c.615-.08 1.2-.183 1.75-.304a20.523 20.523 0 0 0-.612-1.667 27.512 27.512 0 0 1-1.138 1.97zM8.822 8.85c-.615.08-1.2.183-1.75.304.17.536.374 1.094.612 1.667a27.512 27.512 0 0 1 1.138-1.97zm-1.75 5.994c.55.121 1.135.223 1.75.304a27.512 27.512 0 0 1-1.138-1.97c-.238.572-.442 1.13-.612 1.666zm-.978-.245c.261-.834.6-1.708 1.01-2.6-.41-.892-.749-1.766-1.01-2.6-2.242.637-3.677 1.604-3.677 2.6s1.435 1.963 3.677 2.6zm10.834-5.445c-.55-.121-1.135-.223-1.75-.304a27.511 27.511 0 0 1 1.138 1.97c.238-.572.442-1.13.612-1.666zm.978.245c-.261.834-.6 1.708-1.01 2.6.41.892.749 1.766 1.01 2.6 2.242-.637 3.677-1.604 3.677-2.6s-1.435-1.963-3.677-2.6zM12 13.88a1.88 1.88 0 1 1 0-3.76 1.88 1.88 0 0 1 0 3.76z"],"unicode":"","glyph":"M722.4 388.0000000000001A1093.85 1093.85 0 0 0 635.0500000000001 279.25C718.6500000000001 198.1 796.45 160.1000000000001 839.5500000000001 185.0500000000001C882.75 209.9500000000001 888.7 296.3000000000001 860.2500000000001 409.25C817.6 399.75 771.2500000000001 392.55 722.4000000000001 388.0000000000001zM656.9 383.6500000000001A1375.6000000000001 1375.6000000000001 0 0 0 543.1 383.6500000000001C561.95 359.0500000000001 581 336.2500000000001 600 315.4500000000001C619 336.2500000000001 638 359.0500000000001 656.9 383.6500000000001zM908.9 778.3500000000001C1042.15 740.1500000000001 1129.15 676.6500000000001 1129.15 600.0000000000001C1129.15 523.3500000000001 1042.15 459.8500000000001 908.9 421.6500000000001C942.4 287.1500000000001 930.95 180.0500000000002 864.6000000000001 141.75C798.2000000000002 103.4000000000001 699.7 147 600.0000000000001 243.2500000000001C500.3000000000001 147 401.8000000000001 103.4000000000001 335.4000000000001 141.75C269.0500000000002 180.05 257.5500000000001 287.1500000000001 291.1000000000001 421.65C157.8500000000001 459.8499999999999 70.8500000000001 523.3499999999999 70.8500000000001 600C70.8500000000001 676.65 157.8500000000001 740.1500000000001 291.1000000000001 778.35C257.6000000000001 912.85 269.0500000000002 1019.95 335.4000000000001 1058.25C401.8000000000001 1096.6 500.3000000000001 1053 600.0000000000001 956.75C699.7 1053 798.2000000000002 1096.6 864.6000000000001 1058.25C930.95 1019.95 942.45 912.85 908.9 778.35zM860.2500000000001 790.75C888.7500000000001 903.75 882.75 990.05 839.6000000000001 1014.95C796.45 1039.9 718.6500000000001 1001.9 635.1000000000001 920.75C664.6500000000001 888.6000000000001 694.0500000000001 852.05 722.4000000000001 812C771.3000000000001 807.5 817.6000000000001 800.3000000000001 860.2500000000001 790.75zM339.7500000000001 409.2500000000001C311.2500000000001 296.2500000000003 317.2500000000001 209.9500000000001 360.4000000000001 185.0500000000001C403.5500000000001 160.1000000000001 481.3500000000001 198.1 564.9000000000001 279.25A1093.85 1093.85 0 0 0 477.6000000000001 388.0000000000001A1093.85 1093.85 0 0 0 339.7500000000001 409.2500000000001zM543.1000000000001 816.3500000000001A1375.6000000000001 1375.6000000000001 0 0 0 656.9000000000001 816.3500000000001A1026.15 1026.15 0 0 1 600 884.5C581 863.7 562 840.9000000000001 543.1 816.3zM477.6000000000001 812.0000000000001A1093.85 1093.85 0 0 0 565 920.75C481.35 1001.9 403.5 1039.9 360.45 1014.95C317.25 990.05 311.3 903.7 339.75 790.75C382.4 800.25 428.75 807.4499999999999 477.6 812zM694.7 436.0000000000001A1268.3999999999999 1268.3999999999999 0 0 1 789.35 600A1268.3999999999999 1268.3999999999999 0 0 1 694.7 764A1268.3999999999999 1268.3999999999999 0 0 1 505.3 764A1268.3999999999999 1268.3999999999999 0 0 1 410.65 600A1268.3999999999999 1268.3999999999999 0 0 1 505.3 436A1268.3999999999999 1268.3999999999999 0 0 1 694.7 436zM758.9000000000001 442.5500000000002C789.6500000000001 446.5500000000002 818.9000000000002 451.7000000000002 846.4000000000002 457.7500000000001A1026.15 1026.15 0 0 1 815.8000000000003 541.1000000000001A1375.6000000000001 1375.6000000000001 0 0 0 758.9000000000003 442.6000000000002zM441.1 757.5C410.35 753.5 381.1 748.35 353.6 742.3C362.1 715.5 372.3 687.6 384.2 658.95A1375.6000000000001 1375.6000000000001 0 0 0 441.1 757.45zM353.6 457.8000000000001C381.1 451.75 410.35 446.65 441.1 442.6A1375.6000000000001 1375.6000000000001 0 0 0 384.2 541.1C372.3 512.5000000000001 362.1 484.6 353.6 457.8000000000001zM304.7 470.05C317.75 511.75 334.7 555.45 355.2 600.05C334.7 644.65 317.75 688.3499999999999 304.7 730.05C192.6 698.1999999999999 120.85 649.85 120.85 600.05S192.6 501.9 304.7 470.05zM846.3999999999999 742.3C818.8999999999999 748.35 789.6499999999999 753.45 758.8999999999999 757.5A1375.55 1375.55 0 0 0 815.7999999999997 659C827.6999999999997 687.5999999999999 837.8999999999997 715.5 846.3999999999996 742.3zM895.3 730.0500000000001C882.25 688.3500000000001 865.2999999999998 644.6500000000001 844.7999999999998 600.0500000000001C865.2999999999998 555.45 882.2499999999998 511.7500000000001 895.3 470.0500000000001C1007.4 501.9000000000001 1079.1499999999999 550.2500000000001 1079.1499999999999 600.0500000000001S1007.4 698.2 895.3 730.0500000000001zM600 506A93.99999999999999 93.99999999999999 0 1 0 600 694A93.99999999999999 93.99999999999999 0 0 0 600 506z","horizAdvX":"1200"},"reactjs-line":{"path":["M0 0h24v24H0z","M12 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-.528 2.994c.175.21.351.414.528.609.177-.195.353-.398.528-.609a24.883 24.883 0 0 1-1.056 0zm-1.995-.125a20.678 20.678 0 0 1-2.285-.368c-.075.35-.132.69-.17 1.016-.19 1.583.075 2.545.478 2.777.403.233 1.368-.019 2.645-.974.263-.197.528-.416.794-.655a20.678 20.678 0 0 1-1.462-1.796zm7.331-.368c-.717.16-1.483.284-2.285.368a20.678 20.678 0 0 1-1.462 1.796c.266.24.531.458.794.655 1.277.955 2.242 1.207 2.645.974.403-.232.667-1.194.479-2.777a11.36 11.36 0 0 0-.17-1.016zm1.45-.387c.577 2.639.274 4.74-1.008 5.48-1.282.74-3.253-.048-5.25-1.867-1.997 1.819-3.968 2.606-5.25 1.866-1.282-.74-1.585-2.84-1.009-5.48C3.167 14.794 1.5 13.48 1.5 12s1.667-2.793 4.241-3.614c-.576-2.639-.273-4.74 1.009-5.48 1.282-.74 3.253.048 5.25 1.867 1.997-1.819 3.968-2.606 5.25-1.866 1.282.74 1.585 2.84 1.009 5.48C20.833 9.206 22.5 10.52 22.5 12s-1.667 2.793-4.241 3.614zm-7.32-9.779a11.36 11.36 0 0 0-.793-.655C8.868 4.225 7.903 3.973 7.5 4.206c-.403.232-.667 1.194-.479 2.777.04.327.096.666.17 1.016a20.678 20.678 0 0 1 2.286-.368c.475-.653.965-1.254 1.462-1.796zm3.585 1.796c.802.084 1.568.209 2.285.368.075-.35.132-.69.17-1.016.19-1.583-.075-2.545-.478-2.777-.403-.233-1.368.019-2.645.974a11.36 11.36 0 0 0-.794.655c.497.542.987 1.143 1.462 1.796zm-1.995-.125c-.175-.21-.351-.414-.528-.609-.177.195-.353.398-.528.609a24.884 24.884 0 0 1 1.056 0zm-4.156 7.198a24.884 24.884 0 0 1-.528-.914c-.095.257-.183.51-.263.761.257.056.521.107.79.153zm1.932.234a22.897 22.897 0 0 0 3.392 0A22.897 22.897 0 0 0 15.392 12a22.897 22.897 0 0 0-1.696-2.938 22.897 22.897 0 0 0-3.392 0A22.897 22.897 0 0 0 8.608 12a22.897 22.897 0 0 0 1.696 2.938zm5.852-4.728c.095-.257.183-.51.263-.761a17.974 17.974 0 0 0-.79-.153 24.884 24.884 0 0 1 .527.914zM6.13 9.837c-.34.11-.662.23-.964.36C3.701 10.825 3 11.535 3 12c0 .465.7 1.175 2.166 1.803.302.13.624.25.964.36.222-.7.497-1.426.825-2.163a20.678 20.678 0 0 1-.825-2.163zm1.45-.388c.081.25.169.504.264.76a24.884 24.884 0 0 1 .528-.913c-.27.046-.534.097-.791.153zm10.29 4.714c.34-.11.662-.23.964-.36C20.299 13.175 21 12.465 21 12c0-.465-.7-1.175-2.166-1.803a11.36 11.36 0 0 0-.964-.36c-.222.7-.497 1.426-.825 2.163.328.737.603 1.462.825 2.163zm-1.45.388c-.081-.25-.169-.504-.264-.76a24.884 24.884 0 0 1-.528.913c.27-.046.534-.097.791-.153z"],"unicode":"","glyph":"M600 525A75 75 0 1 0 600 675A75 75 0 0 0 600 525zM573.6 375.3C582.35 364.8 591.15 354.5999999999999 600 344.8499999999999C608.85 354.5999999999999 617.65 364.7499999999999 626.4 375.3A1244.15 1244.15 0 0 0 573.6 375.3zM473.85 381.55A1033.9 1033.9 0 0 0 359.6 399.95C355.85 382.4499999999998 353 365.4499999999998 351.1 349.1499999999999C341.6 269.9999999999999 354.85 221.8999999999998 375 210.2999999999999C395.1500000000001 198.6499999999998 443.4000000000001 211.2499999999998 507.25 258.9999999999998C520.4 268.8499999999998 533.65 279.7999999999999 546.95 291.7499999999999A1033.9 1033.9 0 0 0 473.85 381.5499999999999zM840.4 399.95C804.5500000000001 391.95 766.25 385.75 726.15 381.55A1033.9 1033.9 0 0 0 653.05 291.75C666.35 279.7500000000001 679.6 268.8500000000002 692.75 259C756.6 211.2500000000001 804.85 198.65 825 210.3C845.15 221.9 858.3500000000001 269.9999999999999 848.9499999999999 349.15A567.9999999999999 567.9999999999999 0 0 1 840.4499999999998 399.9500000000002zM912.9 419.3C941.75 287.35 926.6 182.3000000000001 862.5 145.3C798.4 108.3 699.85 147.6999999999998 600 238.65C500.15 147.7000000000001 401.6 108.3500000000001 337.5 145.3499999999999C273.4 182.3499999999999 258.25 287.35 287.05 419.35C158.35 460.3 75 526 75 600S158.35 739.65 287.05 780.7C258.25 912.65 273.4 1017.7 337.5 1054.7C401.6 1091.7 500.15 1052.3000000000002 600 961.35C699.85 1052.3000000000002 798.4 1091.65 862.5 1054.65C926.6 1017.65 941.75 912.65 912.95 780.6500000000001C1041.6499999999999 739.7 1125 674 1125 600S1041.6499999999999 460.35 912.95 419.3zM546.9 908.25A567.9999999999999 567.9999999999999 0 0 1 507.25 941C443.4000000000001 988.75 395.15 1001.35 375 989.7C354.85 978.1 341.6500000000001 930 351.05 850.8499999999999C353.05 834.5 355.85 817.55 359.55 800.05A1033.9 1033.9 0 0 0 473.85 818.45C497.6 851.1 522.1 881.15 546.95 908.25zM726.15 818.4499999999999C766.25 814.25 804.5500000000001 808 840.4 800.05C844.15 817.55 847.0000000000001 834.55 848.9000000000001 850.8499999999999C858.4000000000001 930 845.1500000000001 978.1 825 989.7C804.85 1001.35 756.6 988.75 692.75 941A567.9999999999999 567.9999999999999 0 0 1 653.05 908.2499999999998C677.9 881.1499999999999 702.4 851.0999999999999 726.15 818.4499999999998zM626.4 824.6999999999999C617.6499999999999 835.1999999999999 608.85 845.3999999999999 599.9999999999999 855.1499999999999C591.15 845.3999999999999 582.3499999999999 835.25 573.5999999999999 824.6999999999999A1244.2 1244.2 0 0 0 626.4 824.6999999999999zM418.6 464.8A1244.2 1244.2 0 0 0 392.2 510.5C387.45 497.65 383.05 485 379.05 472.45C391.9 469.6500000000001 405.1 467.1 418.55 464.8zM515.2 453.1A1144.85 1144.85 0 0 1 684.8 453.1A1144.85 1144.85 0 0 1 769.6 600A1144.85 1144.85 0 0 1 684.8 746.9000000000001A1144.85 1144.85 0 0 1 515.2 746.9000000000001A1144.85 1144.85 0 0 1 430.4000000000001 600A1144.85 1144.85 0 0 1 515.2 453.1zM807.8 689.5C812.5499999999998 702.3499999999999 816.9499999999999 715 820.95 727.55A898.7000000000002 898.7000000000002 0 0 1 781.45 735.1999999999999A1244.2 1244.2 0 0 0 807.8000000000001 689.5zM306.5 708.1500000000001C289.5 702.6500000000001 273.4 696.65 258.3 690.1500000000001C185.05 658.75 150 623.25 150 600C150 576.75 185 541.25 258.3 509.8499999999999C273.4 503.3499999999999 289.5 497.3499999999999 306.5000000000001 491.85C317.6000000000001 526.8499999999999 331.35 563.15 347.7500000000001 600A1033.9 1033.9 0 0 0 306.5000000000001 708.1500000000001zM379 727.55C383.05 715.05 387.45 702.35 392.2 689.55A1244.2 1244.2 0 0 0 418.6 735.2C405.1 732.9000000000001 391.9 730.3500000000001 379.05 727.55zM893.4999999999999 491.85C910.4999999999998 497.3499999999999 926.5999999999998 503.35 941.6999999999998 509.8499999999999C1014.95 541.25 1050 576.75 1050 600C1050 623.25 1015 658.75 941.7 690.1500000000001A567.9999999999999 567.9999999999999 0 0 1 893.5 708.1500000000001C882.4 673.1500000000001 868.6500000000001 636.85 852.2500000000001 600C868.6500000000001 563.15 882.4000000000002 526.9 893.5 491.85zM820.9999999999999 472.45C816.9499999999999 484.95 812.5499999999998 497.65 807.8 510.4499999999999A1244.2 1244.2 0 0 0 781.3999999999999 464.8C794.8999999999999 467.0999999999999 808.0999999999999 469.65 820.9499999999998 472.45z","horizAdvX":"1200"},"record-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-7a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"record-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-5a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450z","horizAdvX":"1200"},"record-mail-fill":{"path":["M0 0h24v24H0z","M9.743 15h4.514a5.5 5.5 0 1 1 4.243 2h-13a5.5 5.5 0 1 1 4.243-2zM5.5 13a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M487.15 450H712.85A275 275 0 1 0 925 350H275A275 275 0 1 0 487.15 450zM275 550A75 75 0 1 1 275 700A75 75 0 0 1 275 550zM925 550A75 75 0 1 1 925 700A75 75 0 0 1 925 550z","horizAdvX":"1200"},"record-mail-line":{"path":["M0 0h24v24H0z","M14.257 15a5.5 5.5 0 1 1 4.243 2h-13a5.5 5.5 0 1 1 4.243-2h4.514zM5.5 15a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7zm13 0a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M712.85 450A275 275 0 1 0 925 350H275A275 275 0 1 0 487.15 450H712.85zM275 450A175 175 0 1 1 275 800A175 175 0 0 1 275 450zM925 450A175 175 0 1 1 925 800A175 175 0 0 1 925 450z","horizAdvX":"1200"},"recycle-fill":{"path":["M0 0H24V24H0z","M19.562 12.098l1.531 2.652c.967 1.674.393 3.815-1.28 4.781-.533.307-1.136.469-1.75.469H16v2l-5-3.5 5-3.5v2h2.062c.088 0 .174-.023.25-.067.213-.123.301-.378.221-.601l-.038-.082-1.531-2.652 2.598-1.5zM7.737 9.384l.53 6.08-1.73-1-1.032 1.786c-.044.076-.067.162-.067.25 0 .245.177.45.41.492l.09.008H9v3H5.938c-1.933 0-3.5-1.567-3.5-3.5 0-.614.162-1.218.469-1.75l1.031-1.786-1.732-1 5.53-2.58zm6.013-6.415c.532.307.974.749 1.281 1.281l1.03 1.786 1.733-1-.53 6.08-5.532-2.58 1.732-1-1.031-1.786c-.044-.076-.107-.14-.183-.183-.213-.123-.478-.072-.631.11l-.052.073-1.53 2.652-2.599-1.5 1.53-2.652c.967-1.674 3.108-2.248 4.782-1.281z"],"unicode":"","glyph":"M978.1 595.0999999999999L1054.65 462.5C1103 378.8000000000001 1074.3 271.7499999999999 990.65 223.4500000000001C963.9999999999998 208.1000000000001 933.85 200 903.15 200H800V100L550 275L800 450V350H903.1C907.5000000000002 350 911.8 351.15 915.6 353.35C926.2500000000002 359.5000000000001 930.65 372.25 926.65 383.4L924.75 387.5L848.2000000000002 520.1L978.1 595.1zM386.85 730.8L413.35 426.8L326.85 476.8L275.25 387.5C273.05 383.7 271.8999999999999 379.4000000000001 271.8999999999999 375C271.8999999999999 362.75 280.75 352.5 292.4 350.4L296.8999999999999 350H450V200H296.9C200.25 200 121.9 278.35 121.9 375C121.9 405.7000000000001 130 435.9 145.35 462.5L196.9 551.8L110.3 601.8L386.8 730.8zM687.5 1051.55C714.1 1036.2 736.2 1014.1 751.5500000000001 987.5L803.05 898.2L889.7 948.2L863.1999999999999 644.2L586.5999999999999 773.2L673.1999999999999 823.2L621.6499999999999 912.5C619.4499999999999 916.3 616.3 919.5 612.4999999999999 921.65C601.8499999999999 927.8 588.5999999999999 925.25 580.9499999999999 916.15L578.3499999999999 912.5L501.85 779.9L371.8999999999999 854.9L448.3999999999999 987.5C496.7499999999999 1071.2 603.8 1099.8999999999999 687.4999999999999 1051.55z","horizAdvX":"1200"},"recycle-line":{"path":["M0 0H24V24H0z","M19.562 12.097l1.531 2.653c.967 1.674.393 3.815-1.28 4.781-.533.307-1.136.469-1.75.469H16v2.5L11 19l5-3.5V18h2.062c.263 0 .522-.07.75-.201.718-.414.963-1.332.55-2.049l-1.532-2.653 1.732-1zM7.304 9.134l.53 6.08-2.164-1.25-1.031 1.786c-.132.228-.201.487-.201.75 0 .828.671 1.5 1.5 1.5H9v2H5.938c-1.933 0-3.5-1.567-3.5-3.5 0-.614.162-1.218.469-1.75l1.03-1.787-2.164-1.249 5.53-2.58zm6.446-6.165c.532.307.974.749 1.281 1.281l1.03 1.785 2.166-1.25-.53 6.081-5.532-2.58 2.165-1.25-1.031-1.786c-.132-.228-.321-.417-.549-.549-.717-.414-1.635-.168-2.049.549L9.169 7.903l-1.732-1L8.97 4.25c.966-1.674 3.107-2.248 4.781-1.281z"],"unicode":"","glyph":"M978.1 595.15L1054.65 462.5C1103 378.8000000000001 1074.3 271.7499999999999 990.65 223.4500000000001C963.9999999999998 208.1000000000001 933.85 200 903.15 200H800V75L550 250L800 425V300H903.1C916.2500000000002 300 929.2 303.5 940.6 310.0500000000001C976.5 330.7500000000001 988.7500000000002 376.6500000000001 968.1000000000003 412.5L891.5000000000001 545.15L978.1 595.15zM365.2 743.3L391.7000000000001 439.3L283.5 501.8L231.95 412.5C225.35 401.1 221.9 388.1500000000001 221.9 375C221.9 333.6 255.4500000000001 300 296.9000000000001 300H450V200H296.9C200.25 200 121.9 278.35 121.9 375C121.9 405.7000000000001 130 435.9 145.35 462.5L196.85 551.8499999999999L88.65 614.3L365.15 743.3zM687.5 1051.55C714.1 1036.2 736.2 1014.1 751.5500000000001 987.5L803.05 898.25L911.35 960.75L884.8499999999999 656.7L608.25 785.7L716.4999999999999 848.2L664.9499999999999 937.5C658.3499999999999 948.9 648.8999999999999 958.35 637.4999999999999 964.95C601.6499999999999 985.65 555.7499999999999 973.35 535.05 937.5L458.45 804.85L371.85 854.85L448.5000000000001 987.5C496.8 1071.2 603.8500000000001 1099.9 687.5500000000001 1051.55z","horizAdvX":"1200"},"red-packet-fill":{"path":["M0 0h24v24H0z","M21 5.937A11.985 11.985 0 0 1 14.194 9.8a2.5 2.5 0 0 0-4.388 0A11.985 11.985 0 0 1 3 5.937V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v2.937zm0 2.787V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8.724A13.944 13.944 0 0 0 9.63 11.8a2.501 2.501 0 0 0 4.74 0A13.944 13.944 0 0 0 21 8.724z"],"unicode":"","glyph":"M1050 903.15A599.25 599.25 0 0 0 709.7 710A125 125 0 0 1 490.3000000000001 710A599.25 599.25 0 0 0 150 903.15V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V903.15zM1050 763.8V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V763.8A697.2 697.2 0 0 1 481.5000000000001 610A125.04999999999998 125.04999999999998 0 0 1 718.5 610A697.2 697.2 0 0 1 1050 763.8z","horizAdvX":"1200"},"red-packet-line":{"path":["M0 0h24v24H0z","M14.173 9.763A9.98 9.98 0 0 0 19 7.141V4H5v3.141a9.98 9.98 0 0 0 4.827 2.622 2.5 2.5 0 0 1 4.346 0zm.208 2a2.501 2.501 0 0 1-4.762 0A11.94 11.94 0 0 1 5 9.749V20h14V9.748a11.94 11.94 0 0 1-4.619 2.016zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M708.65 711.85A499 499 0 0 1 950 842.95V1000H250V842.95A499 499 0 0 1 491.35 711.85A125 125 0 0 0 708.65 711.85zM719.05 611.85A125.04999999999998 125.04999999999998 0 0 0 480.95 611.85A596.9999999999999 596.9999999999999 0 0 0 250 712.55V200H950V712.6A596.9999999999999 596.9999999999999 0 0 0 719.05 611.8000000000001zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100z","horizAdvX":"1200"},"reddit-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm6.67-10a1.46 1.46 0 0 0-2.47-1 7.12 7.12 0 0 0-3.85-1.23L13 6.65l2.14.45a1 1 0 1 0 .13-.61L12.82 6a.31.31 0 0 0-.37.24l-.74 3.47a7.14 7.14 0 0 0-3.9 1.23 1.46 1.46 0 1 0-1.61 2.39 2.87 2.87 0 0 0 0 .44c0 2.24 2.61 4.06 5.83 4.06s5.83-1.82 5.83-4.06a2.87 2.87 0 0 0 0-.44 1.46 1.46 0 0 0 .81-1.33zm-10 1a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm5.81 2.75a3.84 3.84 0 0 1-2.47.77 3.84 3.84 0 0 1-2.47-.77.27.27 0 0 1 .38-.38A3.27 3.27 0 0 0 12 16a3.28 3.28 0 0 0 2.09-.61.28.28 0 1 1 .39.4v-.04zm-.18-1.71a1 1 0 1 1 1-1 1 1 0 0 1-1.01 1.04l.01-.04z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM933.5000000000002 600A72.99999999999999 72.99999999999999 0 0 1 810.0000000000001 650A356 356 0 0 1 617.5000000000001 711.5L650 867.5L757 845A50 50 0 1 1 763.5000000000001 875.5L641 900A15.5 15.5 0 0 1 622.5 888L585.5 714.5A357 357 0 0 1 390.5 652.9999999999999A72.99999999999999 72.99999999999999 0 1 1 310 533.4999999999999A143.5 143.5 0 0 1 310 511.4999999999999C310 399.4999999999999 440.5 308.4999999999999 601.5 308.4999999999999S893 399.4999999999999 893 511.4999999999999A143.5 143.5 0 0 1 893 533.4999999999998A72.99999999999999 72.99999999999999 0 0 1 933.4999999999998 599.9999999999998zM433.5000000000001 550A50 50 0 1 0 533.5000000000001 550A50 50 0 0 0 433.5000000000001 550zM724 412.5A192.00000000000003 192.00000000000003 0 0 0 600.5 374A192.00000000000003 192.00000000000003 0 0 0 476.9999999999999 412.5A13.5 13.5 0 0 0 496 431.5A163.5 163.5 0 0 1 600 400A163.99999999999997 163.99999999999997 0 0 1 704.5 430.5A14.000000000000002 14.000000000000002 0 1 0 724 410.5V412.4999999999999zM715 498A50 50 0 1 0 765 548A50 50 0 0 0 714.5 496.0000000000001L715 498z","horizAdvX":"1200"},"reddit-line":{"path":["M0 0h24v24H0z","M11.102 7.815l.751-3.536a2 2 0 0 1 2.373-1.54l3.196.68a2 2 0 1 1-.416 1.956l-3.196-.68-.666 3.135c1.784.137 3.557.73 5.163 1.7a3.192 3.192 0 0 1 4.741 2.673v.021a3.192 3.192 0 0 1-1.207 2.55 2.855 2.855 0 0 1-.008.123c0 3.998-4.45 7.03-9.799 7.03-5.332 0-9.708-3.024-9.705-6.953a5.31 5.31 0 0 1-.01-.181 3.192 3.192 0 0 1 3.454-5.35 11.446 11.446 0 0 1 5.329-1.628zm9.286 5.526c.408-.203.664-.62.661-1.075a1.192 1.192 0 0 0-2.016-.806l-.585.56-.67-.455c-1.615-1.098-3.452-1.725-5.23-1.764h-1.006c-1.875.029-3.651.6-5.237 1.675l-.663.45-.584-.55a1.192 1.192 0 1 0-1.314 1.952l.633.29-.054.695c-.013.17-.013.339.003.584 0 2.71 3.356 5.03 7.708 5.03 4.371 0 7.799-2.336 7.802-5.106a3.31 3.31 0 0 0 0-.508l-.052-.672.604-.3zM7 13.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm7 0a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm-1.984 5.103c-1.397 0-2.767-.37-3.882-1.21a.424.424 0 0 1 .597-.597c.945.693 2.123.99 3.269.99s2.33-.275 3.284-.959a.439.439 0 0 1 .732.206.469.469 0 0 1-.119.423c-.684.797-2.484 1.147-3.881 1.147z"],"unicode":"","glyph":"M555.1 809.25L592.65 986.05A100 100 0 0 0 711.3 1063.05L871.1 1029.05A100 100 0 1 0 850.3 931.25L690.5 965.25L657.2 808.5C746.4000000000001 801.65 835.0500000000001 772 915.3500000000003 723.5A159.6 159.6 0 0 0 1152.4 589.85V588.8A159.6 159.6 0 0 0 1092.05 461.3A142.75 142.75 0 0 0 1091.65 455.15C1091.65 255.25 869.1500000000001 103.6500000000001 601.7000000000002 103.6500000000001C335.1000000000002 103.6500000000001 116.3000000000001 254.85 116.4500000000001 451.3A265.5 265.5 0 0 0 115.9500000000001 460.3499999999999A159.6 159.6 0 0 0 288.6500000000002 727.8499999999999A572.3 572.3 0 0 0 555.1000000000001 809.25zM1019.3999999999997 532.9499999999999C1039.8 543.0999999999999 1052.6 563.9499999999999 1052.45 586.6999999999999A59.6 59.6 0 0 1 951.65 627L922.4 598.9999999999999L888.9 621.7499999999999C808.15 676.65 716.3 708 627.3999999999999 709.9499999999999H577.0999999999999C483.3499999999999 708.4999999999999 394.5499999999999 679.9499999999999 315.2499999999999 626.1999999999998L282.0999999999999 603.6999999999999L252.8999999999999 631.1999999999999A59.6 59.6 0 1 1 187.1999999999999 533.5999999999999L218.8499999999999 519.1L216.1499999999999 484.35C215.4999999999999 475.85 215.4999999999999 467.4 216.2999999999999 455.15C216.2999999999999 319.6500000000001 384.0999999999999 203.65 601.6999999999999 203.65C820.25 203.65 991.6499999999997 320.45 991.8 458.95A165.5 165.5 0 0 1 991.8 484.35L989.2 517.95L1019.3999999999997 532.9500000000002zM350 525A75 75 0 1 0 500 525A75 75 0 0 0 350 525zM700 525A75 75 0 1 0 850 525A75 75 0 0 0 700 525zM600.8 269.8499999999999C530.95 269.8499999999999 462.45 288.35 406.7000000000001 330.3499999999999A21.2 21.2 0 0 0 436.55 360.2000000000001C483.8 325.55 542.6999999999999 310.7000000000002 600 310.7000000000002S716.5 324.4500000000001 764.1999999999999 358.6500000000001A21.95 21.95 0 0 0 800.8 348.3500000000002A23.45 23.45 0 0 0 794.8499999999999 327.2000000000002C760.65 287.3500000000002 670.65 269.8500000000003 600.8 269.8500000000003z","horizAdvX":"1200"},"refresh-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.82-4.924A7 7 0 0 0 9.032 5.658l.975 1.755A5 5 0 0 1 17 12h-3l2.82 5.076zm-1.852 1.266l-.975-1.755A5 5 0 0 1 7 12h3L7.18 6.924a7 7 0 0 0 7.788 11.418z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM841 346.2A350 350 0 0 1 451.6 917.1L500.35 829.3499999999999A250 250 0 0 0 850 600H700L841 346.2zM748.4 282.9000000000001L699.65 370.65A250 250 0 0 0 350 600H500L359 853.8A350 350 0 0 1 748.4 282.9000000000001z","horizAdvX":"1200"},"refresh-line":{"path":["M0 0h24v24H0z","M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795z"],"unicode":"","glyph":"M273.15 978.35A498.05 498.05 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.5000000000002 312.9999999999999L850 600H1000A400 400 0 0 1 323 888.6L273.15 978.35zM926.85 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.8 133.5 805.8 190.5 887L350 600H200A400 400 0 0 1 877 311.4000000000001L926.85 221.65z","horizAdvX":"1200"},"refund-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10a9.96 9.96 0 0 1-6.383-2.302l-.244-.209.902-1.902a8 8 0 1 0-2.27-5.837l-.005.25h2.5l-2.706 5.716A9.954 9.954 0 0 1 2 12C2 6.477 6.477 2 12 2zm1 4v2h2.5v2H10a.5.5 0 0 0-.09.992L10 11h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2H14a.5.5 0 0 0 .09-.992L14 13h-4a2.5 2.5 0 1 1 0-5h1V6h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100A498.00000000000006 498.00000000000006 0 0 0 280.85 215.1L268.6500000000001 225.55L313.75 320.65A400 400 0 1 1 200.25 612.5L200.0000000000001 600H325.0000000000001L189.7000000000001 314.2A497.7000000000001 497.7000000000001 0 0 0 100 600C100 876.15 323.85 1100 600 1100zM650 900V800H775V700H500A25 25 0 0 1 495.5 650.4L500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500H700A25 25 0 0 1 704.5 549.6L700 550H500A125 125 0 1 0 500 800H550V900H650z","horizAdvX":"1200"},"refund-2-line":{"path":["M0 0h24v24H0z","M5.671 4.257c3.928-3.219 9.733-2.995 13.4.672 3.905 3.905 3.905 10.237 0 14.142-3.905 3.905-10.237 3.905-14.142 0A9.993 9.993 0 0 1 2.25 9.767l.077-.313 1.934.51a8 8 0 1 0 3.053-4.45l-.221.166 1.017 1.017-4.596 1.06 1.06-4.596 1.096 1.096zM13 6v2h2.5v2H10a.5.5 0 0 0-.09.992L10 11h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2H14a.5.5 0 0 0 .09-.992L14 13h-4a2.5 2.5 0 1 1 0-5h1V6h2z"],"unicode":"","glyph":"M283.55 987.15C479.95 1148.1 770.2 1136.9 953.55 953.55C1148.8000000000002 758.3 1148.8000000000002 441.7 953.55 246.4500000000001C758.3000000000001 51.2 441.7000000000001 51.2 246.4500000000001 246.4500000000001A499.6500000000001 499.6500000000001 0 0 0 112.5 711.6500000000001L116.35 727.3000000000001L213.05 701.8000000000001A400 400 0 1 1 365.7 924.3L354.65 916L405.5 865.1500000000001L175.7 812.1500000000001L228.7 1041.95L283.5 987.15zM650 900V800H775V700H500A25 25 0 0 1 495.5 650.4L500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500H700A25 25 0 0 1 704.5 549.6L700 550H500A125 125 0 1 0 500 800H550V900H650z","horizAdvX":"1200"},"refund-fill":{"path":["M0 0h24v24H0z","M22 7H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v3zm0 2v11a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V9h20zm-11 5v-2.5L6.5 16H17v-2h-6z"],"unicode":"","glyph":"M1100 850H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V850zM1100 750V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V750H1100zM550 500V625L325 400H850V500H550z","horizAdvX":"1200"},"refund-line":{"path":["M0 0h24v24H0z","M20 8V5H4v3h16zm0 2H4v9h16v-9zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 11h6v2H6.5l4.5-4.5V14z"],"unicode":"","glyph":"M1000 800V950H200V800H1000zM1000 700H200V250H1000V700zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM550 500H850V400H325L550 625V500z","horizAdvX":"1200"},"registered-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm.5 5H8v10h2v-3h2.217l2.18 3h2.472l-2.55-3.51a3.5 3.5 0 0 0-1.627-6.486l-.192-.004zm0 2a1.5 1.5 0 0 1 1.493 1.356L14 10.5l-.007.144a1.5 1.5 0 0 1-1.349 1.35L12.5 12H10V9h2.5z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM625 850H400V350H500V500H610.85L719.85 350H843.45L715.9499999999999 525.5A175 175 0 0 1 634.5999999999999 849.8L624.9999999999999 850zM625 750A75 75 0 0 0 699.65 682.2L700 675L699.65 667.8A75 75 0 0 0 632.2 600.3L625 600H500V750H625z","horizAdvX":"1200"},"registered-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm.5 3a3.5 3.5 0 0 1 1.82 6.49L16.868 17h-2.472l-2.18-3H10v3H8V7h4.5zm0 2H10v3h2.5a1.5 1.5 0 0 0 1.493-1.356L14 10.5A1.5 1.5 0 0 0 12.5 9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM625 850A175 175 0 0 0 716 525.5L843.4 350H719.8L610.8 500H500V350H400V850H625zM625 750H500V600H625A75 75 0 0 1 699.65 667.8L700 675A75 75 0 0 1 625 750z","horizAdvX":"1200"},"remixicon-fill":{"path":["M0 0h24v24H0z","M16.53 17.53L20 21H3V4h10.667v.008A7.118 7.118 0 0 1 14.136 4c-.089.37-.136.76-.136 1.166C14 7.485 16.015 9.5 18.667 9.5c.724 0 1.419-.197 2.032-.538a7.003 7.003 0 0 1-4.17 8.567zM18.5 7.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M826.5 323.5L1000 150H150V1000H683.35V999.6A355.90000000000003 355.90000000000003 0 0 0 706.8 1000C702.3499999999999 981.5 700 962 700 941.7C700 825.75 800.75 725 933.3500000000003 725C969.55 725 1004.3 734.8499999999999 1034.95 751.9000000000001A350.15 350.15 0 0 0 826.4500000000002 323.55zM925 825A125 125 0 1 0 925 1075A125 125 0 0 0 925 825z","horizAdvX":"1200"},"remixicon-line":{"path":["M0 0h24v24H0z","M6.364 6l8.784 9.663.72-.283c1.685-.661 2.864-2.156 3.092-3.896A6.502 6.502 0 0 1 12.077 6H6.363zM14 5a4.5 4.5 0 0 0 6.714 3.918c.186.618.286 1.271.286 1.947 0 2.891-1.822 5.364-4.4 6.377L20 21H3V4h11.111A4.515 4.515 0 0 0 14 5zm4.5 2.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM5 7.47V19h10.48L5 7.47z"],"unicode":"","glyph":"M318.2 900L757.4 416.85L793.4 431C877.6500000000001 464.05 936.6 538.8 948 625.8A325.1 325.1 0 0 0 603.85 900H318.1500000000001zM700 950A225 225 0 0 1 1035.6999999999998 754.1C1045 723.2 1050 690.55 1050 656.7500000000001C1050 512.2 958.9 388.5500000000001 830.0000000000001 337.9000000000001L1000 150H150V1000H705.5500000000001A225.74999999999997 225.74999999999997 0 0 1 700 950zM925 825A125 125 0 1 0 925 1075A125 125 0 0 0 925 825zM250 826.5V250H774L250 826.5z","horizAdvX":"1200"},"remote-control-2-fill":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-3 13h-2v2h2v-2zm-4 0H9v2h2v-2zm2-9h-2v2H9v2h1.999L11 12h2l-.001-2H15V8h-2V6z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM750 450H650V350H750V450zM550 450H450V350H550V450zM650 900H550V800H450V700H549.95L550 600H650L649.95 700H750V800H650V900z","horizAdvX":"1200"},"remote-control-2-line":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-1 2H7v16h10V4zm-2 11v2h-2v-2h2zm-4 0v2H9v-2h2zm2-9v2h2v2h-2.001L13 12h-2l-.001-2H9V8h2V6h2z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM850 1000H350V200H850V1000zM750 450V350H650V450H750zM550 450V350H450V450H550zM650 900V800H750V700H649.95L650 600H550L549.95 700H450V800H550V900H650z","horizAdvX":"1200"},"remote-control-fill":{"path":["M0 0h24v24H0z","M17 12a1 1 0 0 1 1 1v9H6v-9a1 1 0 0 1 1-1h10zm-7 2H8v2h2v-2zm2-8a6 6 0 0 1 5.368 3.316l-1.79.895a4 4 0 0 0-7.157 0l-1.789-.895A6 6 0 0 1 12 6zm0-4a10 10 0 0 1 8.946 5.527l-1.789.895A8 8 0 0 0 12 4a8 8 0 0 0-7.157 4.422l-1.79-.895A10 10 0 0 1 12 2z"],"unicode":"","glyph":"M850 600A50 50 0 0 0 900 550V100H300V550A50 50 0 0 0 350 600H850zM500 500H400V400H500V500zM600 900A300 300 0 0 0 868.4000000000001 734.2L778.9000000000001 689.45A200 200 0 0 1 421.0500000000002 689.45L331.6000000000002 734.2A300 300 0 0 0 600 900zM600 1100A500 500 0 0 0 1047.3 823.65L957.8499999999998 778.9A400 400 0 0 1 600 1000A400 400 0 0 1 242.15 778.9L152.65 823.65A500 500 0 0 0 600 1100z","horizAdvX":"1200"},"remote-control-line":{"path":["M0 0h24v24H0z","M17 12a1 1 0 0 1 1 1v9h-2v-8H8v8H6v-9a1 1 0 0 1 1-1h10zm-5 4v2h-2v-2h2zm0-10a6 6 0 0 1 5.368 3.316l-1.79.895a4 4 0 0 0-7.157 0l-1.789-.895A6 6 0 0 1 12 6zm0-4a10 10 0 0 1 8.946 5.527l-1.789.895A8 8 0 0 0 12 4a8 8 0 0 0-7.157 4.422l-1.79-.895A10 10 0 0 1 12 2z"],"unicode":"","glyph":"M850 600A50 50 0 0 0 900 550V100H800V500H400V100H300V550A50 50 0 0 0 350 600H850zM600 400V300H500V400H600zM600 900A300 300 0 0 0 868.4000000000001 734.2L778.9000000000001 689.45A200 200 0 0 1 421.0500000000002 689.45L331.6000000000002 734.2A300 300 0 0 0 600 900zM600 1100A500 500 0 0 0 1047.3 823.65L957.8499999999998 778.9A400 400 0 0 1 600 1000A400 400 0 0 1 242.15 778.9L152.65 823.65A500 500 0 0 0 600 1100z","horizAdvX":"1200"},"repeat-2-fill":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1000V1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 900H300A100 100 0 0 1 200 800V400H100V800A200 200 0 0 0 300 1000H800z","horizAdvX":"1200"},"repeat-2-line":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1000V1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 900H300A100 100 0 0 1 200 800V400H100V800A200 200 0 0 0 300 1000H800z","horizAdvX":"1200"},"repeat-fill":{"path":["M0 0h24v24H0z","M6 4h15a1 1 0 0 1 1 1v7h-2V6H6v3L1 5l5-4v3zm12 16H3a1 1 0 0 1-1-1v-7h2v6h14v-3l5 4-5 4v-3z"],"unicode":"","glyph":"M300 1000H1050A50 50 0 0 0 1100 950V600H1000V900H300V750L50 950L300 1150V1000zM900 200H150A50 50 0 0 0 100 250V600H200V300H900V450L1150 250L900 50V200z","horizAdvX":"1200"},"repeat-line":{"path":["M0 0h24v24H0z","M6 4h15a1 1 0 0 1 1 1v7h-2V6H6v3L1 5l5-4v3zm12 16H3a1 1 0 0 1-1-1v-7h2v6h14v-3l5 4-5 4v-3z"],"unicode":"","glyph":"M300 1000H1050A50 50 0 0 0 1100 950V600H1000V900H300V750L50 950L300 1150V1000zM900 200H150A50 50 0 0 0 100 250V600H200V300H900V450L1150 250L900 50V200z","horizAdvX":"1200"},"repeat-one-fill":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1000V1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 900H300A100 100 0 0 1 200 800V400H100V800A200 200 0 0 0 300 1000H800zM550 800H650V400H550V700H450V750L550 800z","horizAdvX":"1200"},"repeat-one-line":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-17.932a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10V2.068zM11 8h2v8h-2v-6H9V9l2-1z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 899.9999999999999H300A100 100 0 0 1 200 799.9999999999999V400H100V800A200 200 0 0 0 300 1000H800V1096.6zM550 800H650V400H550V700H450V750L550 800z","horizAdvX":"1200"},"reply-all-fill":{"path":["M0 0H24V24H0z","M14 4.5V9c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81-1.463-2.774-4.33-4.691-7.655-4.805L16 15h-2v4.5L6 12l8-7.5zm-6 0v2.737L2.92 12l5.079 4.761L8 19.5 0 12l8-7.5z"],"unicode":"","glyph":"M700 975V750C976.15 750 1200 526.15 1200 250C1200 236.35 1199.5 222.85 1198.4 209.5000000000001C1125.25 348.2000000000002 981.8999999999997 444.05 815.65 449.75L800 450H700V225L300 600L700 975zM400 975V838.15L146 600L399.95 361.9500000000001L400 225L0 600L400 975z","horizAdvX":"1200"},"reply-all-line":{"path":["M0 0H24V24H0z","M14 4.5V9c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81-1.463-2.774-4.33-4.691-7.655-4.805L16 15h-2v4.5L6 12l8-7.5zm-6 0v2.737L2.92 12l5.079 4.761L8 19.5 0 12l8-7.5zm4 4.616L8.924 12 12 14.883V13h4.034l.347.007c1.285.043 2.524.31 3.676.766C18.59 12.075 16.42 11 14 11h-2V9.116z"],"unicode":"","glyph":"M700 975V750C976.15 750 1200 526.15 1200 250C1200 236.35 1199.5 222.85 1198.4 209.5000000000001C1125.25 348.2000000000002 981.8999999999997 444.05 815.65 449.75L800 450H700V225L300 600L700 975zM400 975V838.15L146 600L399.95 361.9500000000001L400 225L0 600L400 975zM600 744.2L446.2 600L600 455.85V550H801.6999999999999L819.05 549.65C883.3000000000001 547.5 945.25 534.15 1002.8500000000003 511.35C929.5 596.25 821.0000000000001 650 700 650H600V744.2z","horizAdvX":"1200"},"reply-fill":{"path":["M0 0H24V24H0z","M11 20L1 12l10-8v5c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81C19.46 16.95 16.458 15 13 15h-2v5z"],"unicode":"","glyph":"M550 200L50 600L550 1000V750C826.15 750 1050 526.15 1050 250C1050 236.35 1049.5 222.85 1048.4 209.5000000000001C973 352.5 822.8999999999999 450 650 450H550V200z","horizAdvX":"1200"},"reply-line":{"path":["M0 0H24V24H0z","M11 20L1 12l10-8v5c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81-1.463-2.774-4.33-4.691-7.655-4.805L13 15h-2v5zm-2-7h4.034l.347.007c1.285.043 2.524.31 3.676.766C15.59 12.075 13.42 11 11 11H9V8.161L4.202 12 9 15.839V13z"],"unicode":"","glyph":"M550 200L50 600L550 1000V750C826.15 750 1050 526.15 1050 250C1050 236.35 1049.5 222.85 1048.4 209.5000000000001C975.25 348.2000000000002 831.8999999999999 444.05 665.65 449.75L650 450H550V200zM450 550H651.6999999999999L669.05 549.65C733.3 547.5 795.2499999999999 534.15 852.8499999999999 511.35C779.5 596.25 671 650 550 650H450V791.95L210.1 600L450 408.05V550z","horizAdvX":"1200"},"reserved-fill":{"path":["M0 0h24v24H0z","M13 15v4h3v2H8v-2h3v-4H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-7zM8 8v2h8V8H8z"],"unicode":"","glyph":"M650 450V250H800V150H400V250H550V450H200A50 50 0 0 0 150 500V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V500A50 50 0 0 0 1000 450H650zM400 800V700H800V800H400z","horizAdvX":"1200"},"reserved-line":{"path":["M0 0h24v24H0z","M13 15v4h3v2H8v-2h3v-4H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-7zm-8-2h14V5H5v8zm3-5h8v2H8V8z"],"unicode":"","glyph":"M650 450V250H800V150H400V250H550V450H200A50 50 0 0 0 150 500V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V500A50 50 0 0 0 1000 450H650zM250 550H950V950H250V550zM400 800H800V700H400V800z","horizAdvX":"1200"},"rest-time-fill":{"path":["M0 0H24V24H0z","M11 6v8h8c0 4.418-3.582 8-8 8s-8-3.582-8-8c0-4.335 3.58-8 8-8zm10-4v2l-5.327 6H21v2h-8v-2l5.326-6H13V2h8z"],"unicode":"","glyph":"M550 900V500H950C950 279.1 770.9 100 550 100S150 279.1 150 500C150 716.75 329 900 550 900zM1050 1100V1000L783.65 700H1050V600H650V700L916.3 1000H650V1100H1050z","horizAdvX":"1200"},"rest-time-line":{"path":["M0 0H24V24H0z","M11 6v2c-3.314 0-6 2.686-6 6s2.686 6 6 6c3.238 0 5.878-2.566 5.996-5.775L17 14h2c0 4.418-3.582 8-8 8s-8-3.582-8-8c0-4.335 3.58-8 8-8zm10-4v2l-5.327 6H21v2h-8v-2l5.326-6H13V2h8z"],"unicode":"","glyph":"M550 900V800C384.3 800 250 665.7 250 500S384.3 200 550 200C711.9 200 843.9 328.3 849.8000000000001 488.75L850 500H950C950 279.1 770.9 100 550 100S150 279.1 150 500C150 716.75 329 900 550 900zM1050 1100V1000L783.65 700H1050V600H650V700L916.3 1000H650V1100H1050z","horizAdvX":"1200"},"restart-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.82-4.924a7 7 0 1 0-1.852 1.266l-.975-1.755A5 5 0 1 1 17 12h-3l2.82 5.076z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM841 346.2A350 350 0 1 1 748.4 282.9000000000001L699.65 370.65A250 250 0 1 0 850 600H700L841 346.2z","horizAdvX":"1200"},"restart-line":{"path":["M0 0h24v24H0z","M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"],"unicode":"","glyph":"M926.85 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.5000000000002 312.9999999999999L850 600H1000A400 400 0 1 1 877 311.4000000000001L926.85 221.65z","horizAdvX":"1200"},"restaurant-2-fill":{"path":["M0 0h24v24H0z","M4.222 3.808l6.717 6.717-2.828 2.829-3.89-3.89a4 4 0 0 1 0-5.656zm10.046 8.338l-.854.854 7.071 7.071-1.414 1.414L12 14.415l-7.071 7.07-1.414-1.414 9.339-9.339c-.588-1.457.02-3.555 1.62-5.157 1.953-1.952 4.644-2.427 6.011-1.06s.892 4.058-1.06 6.01c-1.602 1.602-3.7 2.21-5.157 1.621z"],"unicode":"","glyph":"M211.1 1009.6L546.95 673.7500000000001L405.55 532.3000000000001L211.05 726.8000000000001A200 200 0 0 0 211.05 1009.6zM713.4000000000001 592.7L670.7 550.0000000000001L1024.25 196.4500000000001L953.55 125.75L600 479.25L246.45 125.75L175.75 196.4500000000001L642.7 663.4000000000001C613.3000000000001 736.2500000000002 643.7 841.1500000000001 723.7 921.2500000000002C821.35 1018.8500000000003 955.9 1042.6000000000001 1024.25 974.2500000000002S1068.85 771.3500000000001 971.25 673.7500000000001C891.15 593.6500000000001 786.2500000000001 563.2500000000002 713.4000000000001 592.7000000000002z","horizAdvX":"1200"},"restaurant-2-line":{"path":["M0 0h24v24H0z","M14.268 12.146l-.854.854 7.071 7.071-1.414 1.414L12 14.415l-7.071 7.07-1.414-1.414 9.339-9.339c-.588-1.457.02-3.555 1.62-5.157 1.953-1.952 4.644-2.427 6.011-1.06s.892 4.058-1.06 6.01c-1.602 1.602-3.7 2.21-5.157 1.621zM4.222 3.808l6.717 6.717-2.828 2.829-3.89-3.89a4 4 0 0 1 0-5.656zM18.01 9.11c1.258-1.257 1.517-2.726 1.061-3.182-.456-.456-1.925-.197-3.182 1.06-1.257 1.258-1.516 2.727-1.06 3.183.455.455 1.924.196 3.181-1.061z"],"unicode":"","glyph":"M713.4000000000001 592.6999999999999L670.7 550L1024.25 196.4500000000001L953.55 125.75L600 479.25L246.45 125.75L175.75 196.4500000000001L642.7 663.4000000000001C613.3000000000001 736.2500000000002 643.7 841.1500000000001 723.7 921.2500000000002C821.35 1018.8500000000003 955.9 1042.6000000000001 1024.25 974.2500000000002S1068.85 771.3500000000001 971.25 673.7500000000001C891.15 593.6500000000001 786.2500000000001 563.2500000000002 713.4000000000001 592.7000000000002zM211.1 1009.6L546.95 673.7500000000001L405.55 532.3000000000001L211.05 726.8000000000001A200 200 0 0 0 211.05 1009.6zM900.5000000000001 744.5C963.4 807.35 976.35 880.8 953.55 903.6C930.7500000000002 926.4 857.3000000000001 913.45 794.45 850.6C731.6 787.7 718.6500000000001 714.25 741.45 691.45C764.2 668.7 837.65 681.6500000000001 900.5000000000001 744.5z","horizAdvX":"1200"},"restaurant-fill":{"path":["M0 0h24v24H0z","M21 2v20h-2v-8h-3V7a5 5 0 0 1 5-5zM9 13.9V22H7v-8.1A5.002 5.002 0 0 1 3 9V3h2v7h2V3h2v7h2V3h2v6a5.002 5.002 0 0 1-4 4.9z"],"unicode":"","glyph":"M1050 1100V100H950V500H800V850A250 250 0 0 0 1050 1100zM450 505V100H350V505A250.09999999999997 250.09999999999997 0 0 0 150 750V1050H250V700H350V1050H450V700H550V1050H650V750A250.09999999999997 250.09999999999997 0 0 0 450 505z","horizAdvX":"1200"},"restaurant-line":{"path":["M0 0h24v24H0z","M21 2v20h-2v-7h-4V8a6 6 0 0 1 6-6zm-2 2.53C18.17 5 17 6.17 17 8v5h2V4.53zM9 13.9V22H7v-8.1A5.002 5.002 0 0 1 3 9V3h2v7h2V3h2v7h2V3h2v6a5.002 5.002 0 0 1-4 4.9z"],"unicode":"","glyph":"M1050 1100V100H950V450H750V800A300 300 0 0 0 1050 1100zM950 973.5C908.5000000000002 950 850 891.5 850 800V550H950V973.5zM450 505V100H350V505A250.09999999999997 250.09999999999997 0 0 0 150 750V1050H250V700H350V1050H450V700H550V1050H650V750A250.09999999999997 250.09999999999997 0 0 0 450 505z","horizAdvX":"1200"},"rewind-fill":{"path":["M0 0h24v24H0z","M12 10.667l9.223-6.149a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L12 13.333v5.733a.5.5 0 0 1-.777.416L.624 12.416a.5.5 0 0 1 0-.832l10.599-7.066a.5.5 0 0 1 .777.416v5.733z"],"unicode":"","glyph":"M600 666.65L1061.1499999999999 974.1A25 25 0 0 0 1100 953.3V246.7000000000001A25 25 0 0 0 1061.1499999999999 225.9000000000001L600 533.35V246.7000000000001A25 25 0 0 0 561.1500000000001 225.9000000000001L31.2 579.1999999999999A25 25 0 0 0 31.2 620.8000000000001L561.1500000000001 974.1A25 25 0 0 0 600 953.3V666.65z","horizAdvX":"1200"},"rewind-line":{"path":["M0 0h24v24H0z","M12 10.667l9.223-6.149a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L12 13.333v5.733a.5.5 0 0 1-.777.416L.624 12.416a.5.5 0 0 1 0-.832l10.599-7.066a.5.5 0 0 1 .777.416v5.733zm-2 5.596V7.737L3.606 12 10 16.263zm10 0V7.737L13.606 12 20 16.263z"],"unicode":"","glyph":"M600 666.65L1061.1499999999999 974.1A25 25 0 0 0 1100 953.3V246.7000000000001A25 25 0 0 0 1061.1499999999999 225.9000000000001L600 533.35V246.7000000000001A25 25 0 0 0 561.1500000000001 225.9000000000001L31.2 579.1999999999999A25 25 0 0 0 31.2 620.8000000000001L561.1500000000001 974.1A25 25 0 0 0 600 953.3V666.65zM500 386.8500000000002V813.15L180.3 600L500 386.8499999999999zM1000 386.8500000000002V813.15L680.3 600L1000 386.8499999999999z","horizAdvX":"1200"},"rewind-mini-fill":{"path":["M0 0h24v24H0z","M11 17.035a.5.5 0 0 1-.788.409l-7.133-5.036a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07zm1.079-4.627a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M550 348.25A25 25 0 0 0 510.6 327.8000000000001L153.95 579.6A25 25 0 0 0 153.95 620.4000000000001L510.6 872.2A25 25 0 0 0 550 851.75V348.25zM603.95 579.5999999999999A25 25 0 0 0 603.95 620.4L960.6 872.1999999999999A25 25 0 0 0 1000 851.75V348.25A25 25 0 0 0 960.6 327.8000000000001L603.95 579.6z","horizAdvX":"1200"},"rewind-mini-line":{"path":["M0 0h24v24H0z","M9 9.86L5.968 12 9 14.14V9.86zm1.908 7.463a.5.5 0 0 1-.696.12l-7.133-5.035a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.092.288zM18 14.14V9.86L14.968 12 18 14.14zm-5.921-1.732a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M450 707L298.4 600L450 493V707zM545.4 333.85A25 25 0 0 0 510.6 327.8499999999999L153.95 579.5999999999999A25 25 0 0 0 153.95 620.4L510.6 872.1999999999999A25 25 0 0 0 550 851.75V348.25A25 25 0 0 0 545.4 333.85zM900 493V707L748.4 600L900 493zM603.95 579.5999999999999A25 25 0 0 0 603.95 620.4L960.6 872.1999999999999A25 25 0 0 0 1000 851.75V348.25A25 25 0 0 0 960.6 327.8000000000001L603.95 579.6z","horizAdvX":"1200"},"rhythm-fill":{"path":["M0 0h24v24H0z","M2 9h2v12H2V9zm6-6h2v18H8V3zm6 9h2v9h-2v-9zm6-6h2v15h-2V6z"],"unicode":"","glyph":"M100 750H200V150H100V750zM400 1050H500V150H400V1050zM700 600H800V150H700V600zM1000 900H1100V150H1000V900z","horizAdvX":"1200"},"rhythm-line":{"path":["M0 0h24v24H0z","M2 9h2v12H2V9zm6-6h2v18H8V3zm6 9h2v9h-2v-9zm6-6h2v15h-2V6z"],"unicode":"","glyph":"M100 750H200V150H100V750zM400 1050H500V150H400V1050zM700 600H800V150H700V600zM1000 900H1100V150H1000V900z","horizAdvX":"1200"},"riding-fill":{"path":["M0 0h24v24H0z","M5.5 21a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm13 3a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-6.969-8.203L13 12v6h-2v-5l-2.719-2.266A2 2 0 0 1 8 7.671l2.828-2.828a2 2 0 0 1 2.829 0l1.414 1.414a6.969 6.969 0 0 0 3.917 1.975l-.01 2.015a8.962 8.962 0 0 1-5.321-2.575L11.53 9.797zM16 5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M275 150A225 225 0 1 0 275 600A225 225 0 0 0 275 150zM275 300A75 75 0 1 1 275 450A75 75 0 0 1 275 300zM925 150A225 225 0 1 0 925 600A225 225 0 0 0 925 150zM925 300A75 75 0 1 1 925 450A75 75 0 0 1 925 300zM576.55 710.15L650 600V300H550V550L414.05 663.3A100 100 0 0 0 400 816.45L541.4 957.85A100 100 0 0 0 682.85 957.85L753.55 887.1500000000001A348.45 348.45 0 0 1 949.4 788.4000000000001L948.8999999999997 687.65A448.1 448.1 0 0 0 682.8499999999999 816.4000000000001L576.5 710.15zM800 950A100 100 0 1 0 800 1150A100 100 0 0 0 800 950z","horizAdvX":"1200"},"riding-line":{"path":["M0 0h24v24H0z","M5.5 21a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm13 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm-7.477-8.695L13 12v6h-2v-5l-2.719-2.266A2 2 0 0 1 8 7.671l2.828-2.828a2 2 0 0 1 2.829 0l1.414 1.414a6.969 6.969 0 0 0 3.917 1.975l-.01 2.015a8.962 8.962 0 0 1-5.321-2.575l-2.634 2.633zM16 5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M275 150A225 225 0 1 0 275 600A225 225 0 0 0 275 150zM275 250A125 125 0 1 1 275 500A125 125 0 0 1 275 250zM925 150A225 225 0 1 0 925 600A225 225 0 0 0 925 150zM925 250A125 125 0 1 1 925 500A125 125 0 0 1 925 250zM551.15 684.75L650 600V300H550V550L414.05 663.3A100 100 0 0 0 400 816.45L541.4 957.85A100 100 0 0 0 682.85 957.85L753.55 887.1500000000001A348.45 348.45 0 0 1 949.4 788.4000000000001L948.8999999999997 687.65A448.1 448.1 0 0 0 682.8499999999999 816.4000000000001L551.1499999999999 684.75zM800 950A100 100 0 1 0 800 1150A100 100 0 0 0 800 950z","horizAdvX":"1200"},"road-map-fill":{"path":["M0 0h24v24H0z","M16.95 11.95a6.996 6.996 0 0 0 1.858-6.582l2.495-1.07a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V7l3.129-1.341a6.993 6.993 0 0 0 1.921 6.29L12 16.9l4.95-4.95zm-1.414-1.414L12 14.07l-3.536-3.535a5 5 0 1 1 7.072 0z"],"unicode":"","glyph":"M847.5 602.5A349.79999999999995 349.79999999999995 0 0 1 940.4 931.6L1065.15 985.1A25 25 0 0 0 1100 962.1V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V850L256.45 917.05A349.65000000000003 349.65000000000003 0 0 1 352.5 602.55L600 355.0000000000001L847.5 602.5zM776.8 673.2L600 496.5L423.2000000000001 673.25A250 250 0 1 0 776.8000000000001 673.25z","horizAdvX":"1200"},"road-map-line":{"path":["M0 0h24v24H0z","M4 6.143v12.824l5.065-2.17 6 3L20 17.68V4.857l1.303-.558a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V7l2-.857zm12.243 5.1L12 15.485l-4.243-4.242a6 6 0 1 1 8.486 0zM12 12.657l2.828-2.829a4 4 0 1 0-5.656 0L12 12.657z"],"unicode":"","glyph":"M200 892.85V251.6500000000001L453.2500000000001 360.1500000000001L753.2500000000001 210.1500000000001L1000 316V957.15L1065.15 985.05A25 25 0 0 0 1100 962.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V850L200 892.85zM812.1500000000001 637.85L600 425.75L387.85 637.85A300 300 0 1 0 812.1500000000001 637.85zM600 567.15L741.4 708.6A200 200 0 1 1 458.6 708.6L600 567.15z","horizAdvX":"1200"},"roadster-fill":{"path":["M0 0h24v24H0z","M22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5h1.875l2.138-5.702A2 2 0 0 1 6.386 4h11.228a2 2 0 0 1 1.873 1.298L21.625 11H23.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5zM4 15v2a1 1 0 0 0 1 1h3.245a.5.5 0 0 0 .44-.736C7.88 15.754 6.318 15 4 15zm16 0c-2.317 0-3.879.755-4.686 2.264a.5.5 0 0 0 .441.736H19a1 1 0 0 0 1-1v-2zM6 6l-1.561 4.684A1 1 0 0 0 5.387 12h13.226a1 1 0 0 0 .948-1.316L18 6H6z"],"unicode":"","glyph":"M1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H118.75L225.65 935.1A100 100 0 0 0 319.3 1000H880.7A100 100 0 0 0 974.3500000000003 935.1L1081.25 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525zM200 450V350A50 50 0 0 1 250 300H412.2500000000001A25 25 0 0 1 434.25 336.8000000000001C394 412.3000000000001 315.9 450 200 450zM1000 450C884.15 450 806.05 412.25 765.7 336.8000000000001A25 25 0 0 1 787.75 300H950A50 50 0 0 1 1000 350V450zM300 900L221.95 665.8A50 50 0 0 1 269.35 600H930.65A50 50 0 0 1 978.05 665.8000000000001L900 900H300z","horizAdvX":"1200"},"roadster-line":{"path":["M0 0h24v24H0z","M19 20H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5H2l2.48-5.788A2 2 0 0 1 6.32 4H17.68a2 2 0 0 1 1.838 1.212L22 11h1.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm1-2v-5H4v5h16zM5.477 11h13.046a1 1 0 0 0 .928-1.371L18 6H6L4.549 9.629A1 1 0 0 0 5.477 11zM5 14c2.317 0 3.879.755 4.686 2.264a.5.5 0 0 1-.441.736H6a1 1 0 0 1-1-1v-2zm14 0v2a1 1 0 0 1-1 1h-3.245a.5.5 0 0 1-.44-.736C15.12 14.754 16.682 14 19 14z"],"unicode":"","glyph":"M950 200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H100L224 939.4A100 100 0 0 0 316 1000H884A100 100 0 0 0 975.9 939.4L1100 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200zM1000 300V550H200V300H1000zM273.85 650H926.15A50 50 0 0 1 972.55 718.55L900 900H300L227.45 718.55A50 50 0 0 1 273.85 650zM250 500C365.85 500 443.95 462.25 484.3 386.8000000000001A25 25 0 0 0 462.2499999999999 350H300A50 50 0 0 0 250 400V500zM950 500V400A50 50 0 0 0 900 350H737.75A25 25 0 0 0 715.75 386.8000000000001C756 462.3000000000001 834.0999999999999 500 950 500z","horizAdvX":"1200"},"robot-fill":{"path":["M0 0h24v24H0z","M13 4.055c4.5.497 8 4.312 8 8.945v9H3v-9c0-4.633 3.5-8.448 8-8.945V1h2v3.055zM12 18a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0-2a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M650 997.25C875 972.4 1050 781.65 1050 550V100H150V550C150 781.65 325 972.4 550 997.25V1150H650V997.25zM600 300A250 250 0 1 1 600 800A250 250 0 0 1 600 300zM600 400A150 150 0 1 0 600 700A150 150 0 0 0 600 400zM600 500A50 50 0 1 1 600 600A50 50 0 0 1 600 500z","horizAdvX":"1200"},"robot-line":{"path":["M0 0h24v24H0z","M13 4.055c4.5.497 8 4.312 8 8.945v9H3v-9c0-4.633 3.5-8.448 8-8.945V1h2v3.055zM19 20v-7a7 7 0 0 0-14 0v7h14zm-7-2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-2a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M650 997.25C875 972.4 1050 781.65 1050 550V100H150V550C150 781.65 325 972.4 550 997.25V1150H650V997.25zM950 200V550A350 350 0 0 1 250 550V200H950zM600 300A250 250 0 1 0 600 800A250 250 0 0 0 600 300zM600 400A150 150 0 1 1 600 700A150 150 0 0 1 600 400zM600 500A50 50 0 1 0 600 600A50 50 0 0 0 600 500z","horizAdvX":"1200"},"rocket-2-fill":{"path":["M0 0h24v24H0z","M8.498 20h7.004A6.523 6.523 0 0 1 12 23.502 6.523 6.523 0 0 1 8.498 20zM18 14.805l2 2.268V19H4v-1.927l2-2.268V9c0-3.483 2.504-6.447 6-7.545C15.496 2.553 18 5.517 18 9v5.805zM12 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M424.9 200H775.0999999999999A326.15 326.15 0 0 0 600 24.9000000000001A326.15 326.15 0 0 0 424.9 200zM900 459.75L1000 346.35V250H200V346.35L300 459.75V750C300 924.15 425.2 1072.35 600 1127.25C774.8000000000001 1072.35 900 924.15 900 750V459.75zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"rocket-2-line":{"path":["M0 0h24v24H0z","M15.502 20A6.523 6.523 0 0 1 12 23.502 6.523 6.523 0 0 1 8.498 20h2.26c.326.489.747.912 1.242 1.243.495-.33.916-.754 1.243-1.243h2.259zM18 14.805l2 2.268V19H4v-1.927l2-2.268V9c0-3.483 2.504-6.447 6-7.545C15.496 2.553 18 5.517 18 9v5.805zM17.27 17L16 15.56V9c0-2.318-1.57-4.43-4-5.42C9.57 4.57 8 6.681 8 9v6.56L6.73 17h10.54zM12 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M775.1 200A326.15 326.15 0 0 0 600 24.9000000000001A326.15 326.15 0 0 0 424.9 200H537.9C554.1999999999999 175.55 575.25 154.4000000000001 600 137.8500000000001C624.75 154.3499999999999 645.8000000000001 175.5500000000002 662.15 200H775.1zM900 459.75L1000 346.35V250H200V346.35L300 459.75V750C300 924.15 425.2 1072.35 600 1127.25C774.8000000000001 1072.35 900 924.15 900 750V459.75zM863.5 350L800 422V750C800 865.9 721.5 971.5 600 1021C478.5 971.5 400 865.95 400 750V422.0000000000001L336.5 350H863.5zM600 650A100 100 0 1 0 600 850A100 100 0 0 0 600 650z","horizAdvX":"1200"},"rocket-fill":{"path":["M0 0h24v24H0z","M5.33 15.929A13.064 13.064 0 0 1 5 13c0-5.088 2.903-9.436 7-11.182C16.097 3.564 19 7.912 19 13c0 1.01-.114 1.991-.33 2.929l2.02 1.796a.5.5 0 0 1 .097.63l-2.458 4.096a.5.5 0 0 1-.782.096l-2.254-2.254a1 1 0 0 0-.707-.293H9.414a1 1 0 0 0-.707.293l-2.254 2.254a.5.5 0 0 1-.782-.096l-2.458-4.095a.5.5 0 0 1 .097-.631l2.02-1.796zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M266.5 403.55A653.2 653.2 0 0 0 250 550C250 804.4 395.1500000000001 1021.8 600 1109.1C804.85 1021.8 950 804.4 950 550C950 499.5 944.3 450.45 933.5000000000002 403.55L1034.5 313.7499999999999A25 25 0 0 0 1039.3500000000001 282.25L916.45 77.4500000000001A25 25 0 0 0 877.35 72.6499999999999L764.6500000000001 185.35A50 50 0 0 1 729.3000000000001 200H470.7A50 50 0 0 1 435.35 185.35L322.65 72.6499999999999A25 25 0 0 0 283.55 77.4500000000001L160.65 282.2A25 25 0 0 0 165.5 313.7499999999999L266.5 403.55zM600 550A100 100 0 1 1 600 750A100 100 0 0 1 600 550z","horizAdvX":"1200"},"rocket-line":{"path":["M0 0h24v24H0z","M5 13c0-5.088 2.903-9.436 7-11.182C16.097 3.564 19 7.912 19 13c0 .823-.076 1.626-.22 2.403l1.94 1.832a.5.5 0 0 1 .095.603l-2.495 4.575a.5.5 0 0 1-.793.114l-2.234-2.234a1 1 0 0 0-.707-.293H9.414a1 1 0 0 0-.707.293l-2.234 2.234a.5.5 0 0 1-.793-.114l-2.495-4.575a.5.5 0 0 1 .095-.603l1.94-1.832C5.077 14.626 5 13.823 5 13zm1.476 6.696l.817-.817A3 3 0 0 1 9.414 18h5.172a3 3 0 0 1 2.121.879l.817.817.982-1.8-1.1-1.04a2 2 0 0 1-.593-1.82c.124-.664.187-1.345.187-2.036 0-3.87-1.995-7.3-5-8.96C8.995 5.7 7 9.13 7 13c0 .691.063 1.372.187 2.037a2 2 0 0 1-.593 1.82l-1.1 1.039.982 1.8zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M250 550C250 804.4 395.1500000000001 1021.8 600 1109.1C804.85 1021.8 950 804.4 950 550C950 508.85 946.2 468.7 939 429.85L1036.0000000000002 338.25A25 25 0 0 0 1040.75 308.0999999999999L916 79.3499999999999A25 25 0 0 0 876.35 73.6499999999999L764.6500000000001 185.35A50 50 0 0 1 729.3000000000001 200H470.7A50 50 0 0 1 435.35 185.35L323.65 73.6499999999999A25 25 0 0 0 284 79.3499999999999L159.25 308.0999999999999A25 25 0 0 0 164 338.25L261 429.85C253.85 468.7 250 508.85 250 550zM323.8 215.2000000000001L364.6500000000001 256.0500000000001A150 150 0 0 0 470.7 300H729.3A150 150 0 0 0 835.3499999999999 256.05L876.1999999999998 215.1999999999999L925.2999999999998 305.2L870.2999999999997 357.2A100 100 0 0 0 840.6499999999997 448.2C846.8499999999997 481.3999999999999 849.9999999999998 515.4499999999999 849.9999999999998 549.9999999999999C849.9999999999998 743.4999999999999 750.2499999999998 914.9999999999998 599.9999999999998 998C449.75 915 350 743.5 350 550C350 515.4499999999999 353.15 481.4 359.35 448.1500000000001A100 100 0 0 0 329.7 357.1500000000001L274.7 305.2L323.8 215.1999999999999zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"rotate-lock-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.811 5.741L17 12h3a8 8 0 1 0-2.46 5.772l.998 1.795A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 5a3 3 0 0 1 3 3v1h1v5H8v-5h1v-1a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-.993.883L11 10v1h2v-1a1 1 0 0 0-.883-.993L12 9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.45 312.9500000000001L850 600H1000A400 400 0 1 1 877 311.4000000000001L926.9 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 850A150 150 0 0 0 750 700V650H800V400H400V650H450V700A150 150 0 0 0 600 850zM600 750A50 50 0 0 1 550.35 705.85L550 700V650H650V700A50 50 0 0 1 605.85 749.6500000000001L600 750z","horizAdvX":"1200"},"rotate-lock-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.811 5.741L17 12h3a8 8 0 1 0-2.46 5.772l.998 1.795A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 5a3 3 0 0 1 3 3v1h1v5H8v-5h1v-1a3 3 0 0 1 3-3zm2 6h-4v1h4v-1zm-2-4a1 1 0 0 0-.993.883L11 10v1h2v-1a1 1 0 0 0-.883-.993L12 9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.45 312.9500000000001L850 600H1000A400 400 0 1 1 877 311.4000000000001L926.9 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 850A150 150 0 0 0 750 700V650H800V400H400V650H450V700A150 150 0 0 0 600 850zM700 550H500V500H700V550zM600 750A50 50 0 0 1 550.35 705.85L550 700V650H650V700A50 50 0 0 1 605.85 749.6500000000001L600 750z","horizAdvX":"1200"},"rounded-corner":{"path":["M0 0H24V24H0z","M21 19v2h-2v-2h2zm-4 0v2h-2v-2h2zm-4 0v2h-2v-2h2zm-4 0v2H7v-2h2zm-4 0v2H3v-2h2zm16-4v2h-2v-2h2zM5 15v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687 0 4.882 2.124 4.995 4.783L21 8v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16 5h-5V3h5zM5 7v2H3V7h2zm0-4v2H3V3h2zm4 0v2H7V3h2z"],"unicode":"","glyph":"M1050 250V150H950V250H1050zM850 250V150H750V250H850zM650 250V150H550V250H650zM450 250V150H350V250H450zM250 250V150H150V250H250zM1050 450V350H950V450H1050zM250 450V350H150V450H250zM250 650V550H150V650H250zM800 1050C934.35 1050 1044.1 943.8 1049.75 810.8499999999999L1050 800V550H950V800C950 879.55 887.25 945.15 808.8000000000001 949.75L800 950H550V1050H800zM250 850V750H150V850H250zM250 1050V950H150V1050H250zM450 1050V950H350V1050H450z","horizAdvX":"1200"},"route-fill":{"path":["M0 0h24v24H0z","M4 15V8.5a4.5 4.5 0 0 1 9 0v7a2.5 2.5 0 1 0 5 0V8.83a3.001 3.001 0 1 1 2 0v6.67a4.5 4.5 0 1 1-9 0v-7a2.5 2.5 0 0 0-5 0V15h3l-4 5-4-5h3z"],"unicode":"","glyph":"M200 450V775A225 225 0 0 0 650 775V425A125 125 0 1 1 900 425V758.5A150.04999999999998 150.04999999999998 0 1 0 1000 758.5V425A225 225 0 1 0 550 425V775A125 125 0 0 1 300 775V450H450L250 200L50 450H200z","horizAdvX":"1200"},"route-line":{"path":["M0 0h24v24H0z","M4 15V8.5a4.5 4.5 0 0 1 9 0v7a2.5 2.5 0 1 0 5 0V8.83a3.001 3.001 0 1 1 2 0v6.67a4.5 4.5 0 1 1-9 0v-7a2.5 2.5 0 0 0-5 0V15h3l-4 5-4-5h3zm15-8a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M200 450V775A225 225 0 0 0 650 775V425A125 125 0 1 1 900 425V758.5A150.04999999999998 150.04999999999998 0 1 0 1000 758.5V425A225 225 0 1 0 550 425V775A125 125 0 0 1 300 775V450H450L250 200L50 450H200zM950 850A50 50 0 1 1 950 950A50 50 0 0 1 950 850z","horizAdvX":"1200"},"router-fill":{"path":["M0 0h24v24H0z","M11 14v-3h2v3h5a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h5zM2.51 8.837C3.835 4.864 7.584 2 12 2s8.166 2.864 9.49 6.837l-1.898.632a8.003 8.003 0 0 0-15.184 0l-1.897-.632zm3.796 1.265a6.003 6.003 0 0 1 11.388 0l-1.898.633a4.002 4.002 0 0 0-7.592 0l-1.898-.633z"],"unicode":"","glyph":"M550 500V650H650V500H900A50 50 0 0 0 950 450V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V450A50 50 0 0 0 300 500H550zM125.5 758.1500000000001C191.75 956.8 379.2 1100 600 1100S1008.3 956.8 1074.5 758.1500000000001L979.6000000000003 726.55A400.15000000000003 400.15000000000003 0 0 1 220.4000000000002 726.55L125.5500000000002 758.1500000000001zM315.3 694.9A300.15000000000003 300.15000000000003 0 0 0 884.6999999999999 694.9L789.8 663.25A200.10000000000002 200.10000000000002 0 0 1 410.2000000000001 663.25L315.3000000000001 694.9z","horizAdvX":"1200"},"router-line":{"path":["M0 0h24v24H0z","M11 14v-3h2v3h5a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h5zM2.51 8.837C3.835 4.864 7.584 2 12 2s8.166 2.864 9.49 6.837l-1.898.632a8.003 8.003 0 0 0-15.184 0l-1.897-.632zm3.796 1.265a6.003 6.003 0 0 1 11.388 0l-1.898.633a4.002 4.002 0 0 0-7.592 0l-1.898-.633zM7 16v4h10v-4H7z"],"unicode":"","glyph":"M550 500V650H650V500H900A50 50 0 0 0 950 450V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V450A50 50 0 0 0 300 500H550zM125.5 758.1500000000001C191.75 956.8 379.2 1100 600 1100S1008.3 956.8 1074.5 758.1500000000001L979.6000000000003 726.55A400.15000000000003 400.15000000000003 0 0 1 220.4000000000002 726.55L125.5500000000002 758.1500000000001zM315.3 694.9A300.15000000000003 300.15000000000003 0 0 0 884.6999999999999 694.9L789.8 663.25A200.10000000000002 200.10000000000002 0 0 1 410.2000000000001 663.25L315.3000000000001 694.9zM350 400V200H850V400H350z","horizAdvX":"1200"},"rss-fill":{"path":["M0 0h24v24H0z","M3 3c9.941 0 18 8.059 18 18h-3c0-8.284-6.716-15-15-15V3zm0 7c6.075 0 11 4.925 11 11h-3a8 8 0 0 0-8-8v-3zm0 7a4 4 0 0 1 4 4H3v-4z"],"unicode":"","glyph":"M150 1050C647.0500000000001 1050 1050 647.0500000000001 1050 150H900C900 564.2 564.1999999999999 900 150 900V1050zM150 700C453.7499999999999 700 700 453.75 700 150H550A400 400 0 0 1 150 550V700zM150 350A200 200 0 0 0 350 150H150V350z","horizAdvX":"1200"},"rss-line":{"path":["M0 0h24v24H0z","M3 17a4 4 0 0 1 4 4H3v-4zm0-7c6.075 0 11 4.925 11 11h-2a9 9 0 0 0-9-9v-2zm0-7c9.941 0 18 8.059 18 18h-2c0-8.837-7.163-16-16-16V3z"],"unicode":"","glyph":"M150 350A200 200 0 0 0 350 150H150V350zM150 700C453.7499999999999 700 700 453.75 700 150H600A450 450 0 0 1 150 600V700zM150 1050C647.0500000000001 1050 1050 647.0500000000001 1050 150H950C950 591.85 591.85 950 150 950V1050z","horizAdvX":"1200"},"ruler-2-fill":{"path":["M0 0h24v24H0z","M15 21h-2v-3h-2v3H9v-2H7v2H4a1 1 0 0 1-1-1v-3h2v-2H3v-2h3v-2H3V9h2V7H3V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v9h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-3v-2h-2v2z"],"unicode":"","glyph":"M750 150H650V300H550V150H450V250H350V150H200A50 50 0 0 0 150 200V350H250V450H150V550H300V650H150V750H250V850H150V1000A50 50 0 0 0 200 1050H500A50 50 0 0 0 550 1000V550H1000A50 50 0 0 0 1050 500V200A50 50 0 0 0 1000 150H850V250H750V150z","horizAdvX":"1200"},"ruler-2-line":{"path":["M0 0h24v24H0z","M17 19h2v-5h-9V5H5v2h2v2H5v2h3v2H5v2h2v2H5v2h2v-2h2v2h2v-3h2v3h2v-2h2v2zm-5-7h8a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v8z"],"unicode":"","glyph":"M850 250H950V500H500V950H250V850H350V750H250V650H400V550H250V450H350V350H250V250H350V350H450V250H550V400H650V250H750V350H850V250zM600 600H1000A50 50 0 0 0 1050 550V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H550A50 50 0 0 0 600 1000V600z","horizAdvX":"1200"},"ruler-fill":{"path":["M0 0h24v24H0z","M4.929 13.207l2.121 2.121 1.414-1.414-2.12-2.121 2.12-2.121 2.829 2.828 1.414-1.414L9.88 8.257 12 6.136l2.121 2.121 1.415-1.414-2.122-2.121 2.829-2.829a1 1 0 0 1 1.414 0l4.95 4.95a1 1 0 0 1 0 1.414l-14.85 14.85a1 1 0 0 1-1.414 0l-4.95-4.95a1 1 0 0 1 0-1.414l3.536-3.536z"],"unicode":"","glyph":"M246.45 539.65L352.5000000000001 433.5999999999999L423.2000000000001 504.3L317.2 610.3499999999999L423.2000000000001 716.4L564.6500000000001 575L635.35 645.6999999999999L494.0000000000001 787.1500000000001L600 893.2L706.0500000000001 787.1500000000001L776.8000000000001 857.85L670.7 963.9L812.1500000000001 1105.3500000000001A50 50 0 0 0 882.8500000000001 1105.3500000000001L1130.3500000000001 857.85A50 50 0 0 0 1130.3500000000001 787.1500000000001L387.8500000000002 44.6500000000001A50 50 0 0 0 317.1500000000002 44.6500000000001L69.6500000000002 292.15A50 50 0 0 0 69.6500000000002 362.85L246.4500000000002 539.6500000000001z","horizAdvX":"1200"},"ruler-line":{"path":["M0 0h24v24H0z","M6.343 14.621L3.515 17.45l3.535 3.535L20.485 7.55 16.95 4.015l-2.122 2.121 1.415 1.414-1.415 1.414-1.414-1.414-2.121 2.122 2.121 2.12L12 13.208l-2.121-2.121-2.122 2.121 1.415 1.414-1.415 1.415-1.414-1.415zM17.657 1.893l4.95 4.95a1 1 0 0 1 0 1.414l-14.85 14.85a1 1 0 0 1-1.414 0l-4.95-4.95a1 1 0 0 1 0-1.414l14.85-14.85a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M317.15 468.9499999999999L175.75 327.5L352.5000000000001 150.75L1024.25 822.5L847.5 999.25L741.4 893.2L812.15 822.5L741.4 751.8000000000001L670.6999999999999 822.5L564.65 716.4000000000001L670.6999999999999 610.4000000000001L600 539.6L493.95 645.65L387.85 539.6L458.6 468.9L387.85 398.1500000000001L317.1500000000001 468.9zM882.85 1105.35L1130.35 857.85A50 50 0 0 0 1130.35 787.1500000000001L387.85 44.6500000000001A50 50 0 0 0 317.15 44.6500000000001L69.65 292.15A50 50 0 0 0 69.65 362.85L812.15 1105.3500000000001A50 50 0 0 0 882.85 1105.3500000000001z","horizAdvX":"1200"},"run-fill":{"path":["M0 0h24v24H0z","M9.83 8.79L8 9.456V13H6V8.05h.015l5.268-1.918c.244-.093.51-.14.782-.131a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.581 3.297L15 15.67V23h-2v-5.986l-2.05-1.987-.947 4.298-6.894-1.215.348-1.97 4.924.868L9.83 8.79zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M491.5 760.5L400 727.2V550H300V797.5H300.75L564.15 893.4C576.3499999999999 898.05 589.65 900.4 603.25 899.95A130.8 130.8 0 0 0 724.5999999999999 808.95C733.9 779.8 742.4 760.1 750.0999999999999 749.85A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L650.85 512.5L750 416.5V50H650V349.3000000000001L547.5 448.6500000000001L500.15 233.75L155.45 294.5L172.85 393L419.05 349.6L491.5 760.5zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925z","horizAdvX":"1200"},"run-line":{"path":["M0 0h24v24H0z","M9.83 8.79L8 9.456V13H6V8.05h.015l5.268-1.918c.244-.093.51-.14.782-.131a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.697 3.956L15 16.17V23h-2v-5.898l-2.27-1.904-.727 4.127-6.894-1.215.348-1.97 4.924.868L9.83 8.79zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M491.5 760.5L400 727.2V550H300V797.5H300.75L564.15 893.4C576.3499999999999 898.05 589.65 900.4 603.25 899.95A130.8 130.8 0 0 0 724.5999999999999 808.95C733.9 779.8 742.4 760.1 750.0999999999999 749.85A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L645.05 479.5500000000001L750 391.4999999999999V50H650V344.9L536.5 440.1L500.15 233.75L155.45 294.5L172.85 393L419.05 349.6L491.5 760.5zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925z","horizAdvX":"1200"},"safari-fill":{"path":["M0 0h24v24H0z","M16.7 6.8l-6.114 3.786L6.8 16.7l-.104-.104-1.415 1.414.708.708 1.414-1.415L7.3 17.2l6.114-3.785L17.2 7.3l.104.104 1.415-1.414-.708-.708-1.414 1.415.104.104zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-.5-19v2h1V3h-1zm0 16v2h1v-2h-1zM8.094 3.876l.765 1.848.924-.382-.765-1.848-.924.382zm6.123 14.782l.765 1.848.924-.382-.765-1.848-.924.382zm.765-15.164l-.765 1.848.924.382.765-1.848-.924-.382zM8.86 18.276l-.765 1.848.924.382.765-1.848-.924-.382zM21 11.5h-2v1h2v-1zm-16 0H3v1h2v-1zm15.458 3.615l-1.835-.794-.397.918 1.835.794.397-.918zM5.774 8.761L3.94 7.967l-.397.918 1.835.794.397-.918zm14.35-.667l-1.848.765.382.924 1.848-.765-.382-.924zM5.342 14.217l-1.848.765.382.924 1.848-.765-.382-.924zm13.376 3.793l-1.415-1.414-.707.707 1.414 1.415.708-.708zM7.404 6.697L5.99 5.282l-.708.708 1.415 1.414.707-.707zm3.908 4.615l3.611-2.235-2.235 3.61-1.376-1.375z"],"unicode":"","glyph":"M835 860L529.3 670.6999999999999L340 365L334.8 370.2000000000001L264.05 299.4999999999999L299.45 264.1L370.15 334.8499999999999L365 340L670.6999999999999 529.25L860 835L865.1999999999999 829.8L935.95 900.5L900.55 935.9L829.8499999999999 865.15L835.0499999999998 859.95zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM575 1050V950H625V1050H575zM575 250V150H625V250H575zM404.7 1006.2L442.95 913.8L489.15 932.9L450.8999999999999 1025.3L404.7 1006.2zM710.8499999999999 267.0999999999999L749.0999999999999 174.7000000000001L795.3 193.8000000000001L757.05 286.2000000000001L710.8499999999999 267.0999999999999zM749.0999999999999 1025.3L710.8499999999999 932.8999999999997L757.05 913.8L795.3 1006.2L749.0999999999999 1025.3zM443 286.2000000000001L404.75 193.8000000000001L450.9499999999999 174.7000000000001L489.1999999999999 267.0999999999999L443 286.2000000000001zM1050 625H950V575H1050V625zM250 625H150V575H250V625zM1022.8999999999997 444.25L931.1499999999997 483.95L911.3 438.0500000000001L1003.05 398.3500000000002L1022.8999999999997 444.2500000000001zM288.7 761.95L197 801.6500000000001L177.15 755.75L268.9 716.05L288.75 761.9499999999999zM1006.2 795.3L913.8 757.05L932.9 710.85L1025.3 749.1000000000001L1006.2 795.3zM267.1 489.15L174.7 450.9L193.8 404.7L286.2 442.9500000000001L267.1 489.15zM935.9 299.4999999999999L865.1500000000001 370.2000000000001L829.8 334.8499999999999L900.5000000000001 264.1L935.9 299.4999999999999zM370.2 865.15L299.5 935.9L264.1 900.5L334.85 829.8L370.2 865.15zM565.6 634.4L746.15 746.1499999999999L634.4 565.65L565.6 634.4z","horizAdvX":"1200"},"safari-line":{"path":["M0 0h24v24H0z","M17.812 6.503l-4.398 6.911-6.911 4.398A7.973 7.973 0 0 0 11 19.938V18h2v1.938a7.96 7.96 0 0 0 3.906-1.618l-1.37-1.37 1.414-1.414 1.37 1.37A7.96 7.96 0 0 0 19.938 13H18v-2h1.938a7.973 7.973 0 0 0-2.126-4.497zm-.315-.315A7.973 7.973 0 0 0 13 4.062V6h-2V4.062A7.96 7.96 0 0 0 7.094 5.68l1.37 1.37L7.05 8.464l-1.37-1.37A7.96 7.96 0 0 0 4.062 11H6v2H4.062a7.973 7.973 0 0 0 2.126 4.497l4.398-6.911 6.911-4.398zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M890.6 874.85L670.7 529.3000000000001L325.1500000000001 309.4000000000001A398.65 398.65 0 0 1 550 203.1V300H650V203.1A398.00000000000006 398.00000000000006 0 0 1 845.3 284L776.7999999999998 352.5L847.5 423.2000000000001L916 354.7000000000001A398.00000000000006 398.00000000000006 0 0 1 996.9 550H900V650H996.9A398.65 398.65 0 0 1 890.5999999999999 874.85zM874.85 890.6A398.65 398.65 0 0 1 650 996.9V900H550V996.9A398.00000000000006 398.00000000000006 0 0 1 354.7 916L423.2000000000001 847.5L352.5 776.8L284 845.3A398.00000000000006 398.00000000000006 0 0 1 203.1 650H300V550H203.1A398.65 398.65 0 0 1 309.4000000000001 325.15L529.3000000000001 670.6999999999999L874.85 890.5999999999999zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"safe-2-fill":{"path":["M0 0h24v24H0z","M10 20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7V1.59a.5.5 0 0 1 .582-.493l10.582 1.764a1 1 0 0 1 .836.986V6h1v2h-1v7h1v2h-1v2.153a1 1 0 0 1-.836.986L20 20.333V22h-2v-1.333l-7.418 1.236A.5.5 0 0 1 10 21.41V20zm2-.36l8-1.334V4.694l-8-1.333v16.278zM16.5 14c-.828 0-1.5-1.12-1.5-2.5S15.672 9 16.5 9s1.5 1.12 1.5 2.5-.672 2.5-1.5 2.5z"],"unicode":"","glyph":"M500 200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H500V1120.5A25 25 0 0 0 529.1 1145.15L1058.2 1056.95A50 50 0 0 0 1100 1007.65V900H1150V800H1100V450H1150V350H1100V242.35A50 50 0 0 0 1058.2 193.0500000000001L1000 183.3500000000001V100H900V166.6499999999999L529.1 104.8499999999999A25 25 0 0 0 500 129.5V200zM600 218L1000 284.7V965.3L600 1031.95V218.0500000000001zM825 500C783.6 500 750 556 750 625S783.6 750 825 750S900 694 900 625S866.4 500 825 500z","horizAdvX":"1200"},"safe-2-line":{"path":["M0 0h24v24H0z","M20 20.333V22h-2v-1.333l-7.418 1.236A.5.5 0 0 1 10 21.41V20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7V1.59a.5.5 0 0 1 .582-.493l10.582 1.764a1 1 0 0 1 .836.986V6h1v2h-1v7h1v2h-1v2.153a1 1 0 0 1-.836.986L20 20.333zM4 5v13h6V5H4zm8 14.64l8-1.334V4.694l-8-1.333v16.278zM16.5 14c-.828 0-1.5-1.12-1.5-2.5S15.672 9 16.5 9s1.5 1.12 1.5 2.5-.672 2.5-1.5 2.5z"],"unicode":"","glyph":"M1000 183.3500000000001V100H900V166.6499999999999L529.1 104.8499999999999A25 25 0 0 0 500 129.5V200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H500V1120.5A25 25 0 0 0 529.1 1145.15L1058.2 1056.95A50 50 0 0 0 1100 1007.65V900H1150V800H1100V450H1150V350H1100V242.35A50 50 0 0 0 1058.2 193.0500000000001L1000 183.3500000000001zM200 950V300H500V950H200zM600 218L1000 284.7V965.3L600 1031.95V218.0500000000001zM825 500C783.6 500 750 556 750 625S783.6 750 825 750S900 694 900 625S866.4 500 825 500z","horizAdvX":"1200"},"safe-fill":{"path":["M0 0h24v24H0z","M18 20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1h-1v2h-2v-2zm-7-6.126V17h2v-3.126A4.002 4.002 0 0 0 12 6a4 4 0 0 0-1 7.874zM12 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M900 200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V250A50 50 0 0 0 1050 200H1000V100H900V200zM550 506.3000000000001V350H650V506.3A200.10000000000002 200.10000000000002 0 0 1 600 900A200 200 0 0 1 550 506.3000000000001zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600z","horizAdvX":"1200"},"safe-line":{"path":["M0 0h24v24H0z","M18 20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1h-1v2h-2v-2zM4 18h16V5H4v13zm9-4.126V17h-2v-3.126A4.002 4.002 0 0 1 12 6a4 4 0 0 1 1 7.874zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M900 200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V250A50 50 0 0 0 1050 200H1000V100H900V200zM200 300H1000V950H200V300zM650 506.3000000000001V350H550V506.3A200.10000000000002 200.10000000000002 0 0 0 600 900A200 200 0 0 0 650 506.3000000000001zM600 600A100 100 0 1 1 600 800A100 100 0 0 1 600 600z","horizAdvX":"1200"},"sailboat-fill":{"path":["M0 0h24v24H0z","M3 18h18a.5.5 0 0 1 .4.8l-2.1 2.8a1 1 0 0 1-.8.4h-13a1 1 0 0 1-.8-.4l-2.1-2.8A.5.5 0 0 1 3 18zM15 2.425V15a1 1 0 0 1-1 1H4.04a.5.5 0 0 1-.39-.812L14.11 2.113a.5.5 0 0 1 .89.312z"],"unicode":"","glyph":"M150 300H1050A25 25 0 0 0 1070 260L964.9999999999998 120A50 50 0 0 0 924.9999999999998 100H274.9999999999999A50 50 0 0 0 234.9999999999999 120L129.9999999999998 260A25 25 0 0 0 150 300zM750 1078.75V450A50 50 0 0 0 700 400H202A25 25 0 0 0 182.5 440.6L705.5 1094.35A25 25 0 0 0 750 1078.75z","horizAdvX":"1200"},"sailboat-line":{"path":["M0 0h24v24H0z","M3 18h18a.5.5 0 0 1 .4.8l-2.1 2.8a1 1 0 0 1-.8.4h-13a1 1 0 0 1-.8-.4l-2.1-2.8A.5.5 0 0 1 3 18zm4.161-4H13V6.702L7.161 14zM15 2.425V15a1 1 0 0 1-1 1H4.04a.5.5 0 0 1-.39-.812L14.11 2.113a.5.5 0 0 1 .89.312z"],"unicode":"","glyph":"M150 300H1050A25 25 0 0 0 1070 260L964.9999999999998 120A50 50 0 0 0 924.9999999999998 100H274.9999999999999A50 50 0 0 0 234.9999999999999 120L129.9999999999998 260A25 25 0 0 0 150 300zM358.05 500H650V864.9L358.05 500zM750 1078.75V450A50 50 0 0 0 700 400H202A25 25 0 0 0 182.5 440.6L705.5 1094.35A25 25 0 0 0 750 1078.75z","horizAdvX":"1200"},"save-2-fill":{"path":["M0 0h24v24H0z","M4 3h13l3.707 3.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM5 5v4h10V5H5z"],"unicode":"","glyph":"M200 1050H850L1035.3500000000001 864.6500000000001A50 50 0 0 0 1050 829.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 300A150 150 0 1 1 600 600A150 150 0 0 1 600 300zM250 950V750H750V950H250z","horizAdvX":"1200"},"save-2-line":{"path":["M0 0h24v24H0z","M5 5v14h14V7.828L16.172 5H5zM4 3h13l3.707 3.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM6 6h9v4H6V6z"],"unicode":"","glyph":"M250 950V250H950V808.5999999999999L808.6 950H250zM200 1050H850L1035.3500000000001 864.6500000000001A50 50 0 0 0 1050 829.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 300A150 150 0 1 0 600 600A150 150 0 0 0 600 300zM300 900H750V700H300V900z","horizAdvX":"1200"},"save-3-fill":{"path":["M0 0h24v24H0z","M4 3h14l2.707 2.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 1v5h9V4H7zm-1 8v7h12v-7H6zm7-7h2v3h-2V5z"],"unicode":"","glyph":"M200 1050H900L1035.3500000000001 914.65A50 50 0 0 0 1050 879.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM350 1000V750H800V1000H350zM300 600V250H900V600H300zM650 950H750V800H650V950z","horizAdvX":"1200"},"save-3-line":{"path":["M0 0h24v24H0z","M18 19h1V6.828L17.172 5H16v4H7V5H5v14h1v-7h12v7zM4 3h14l2.707 2.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 11v5h8v-5H8z"],"unicode":"","glyph":"M900 250H950V858.5999999999999L858.6 950H800V750H350V950H250V250H300V600H900V250zM200 1050H900L1035.3500000000001 914.65A50 50 0 0 0 1050 879.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM400 500V250H800V500H400z","horizAdvX":"1200"},"save-fill":{"path":["M0 0h24v24H0z","M18 21v-8H6v8H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h13l4 4v13a1 1 0 0 1-1 1h-2zm-2 0H8v-6h8v6z"],"unicode":"","glyph":"M900 150V550H300V150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H850L1050 850V200A50 50 0 0 0 1000 150H900zM800 150H400V450H800V150z","horizAdvX":"1200"},"save-line":{"path":["M0 0h24v24H0z","M7 19v-6h10v6h2V7.828L16.172 5H5v14h2zM4 3h13l4 4v13a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5 12v4h6v-4H9z"],"unicode":"","glyph":"M350 250V550H850V250H950V808.5999999999999L808.6 950H250V250H350zM200 1050H850L1050 850V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM450 450V250H750V450H450z","horizAdvX":"1200"},"scales-2-fill":{"path":["M0 0H24V24H0z","M6 2c0 .513.49 1 1 1h10c.513 0 1-.49 1-1h2c0 1.657-1.343 3-3 3h-4l.001 2.062C16.947 7.555 20 10.921 20 15v6c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1v-6c0-4.08 3.054-7.446 7-7.938V5H7C5.34 5 4 3.66 4 2h2zm6 9c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.742-.202-1.436-.554-2.032l-2.739 2.74-.094.082c-.392.305-.96.278-1.32-.083-.39-.39-.39-1.024 0-1.414l2.739-2.74C13.436 11.203 12.742 11 12 11z"],"unicode":"","glyph":"M300 1100C300 1074.35 324.5 1050 350 1050H850C875.6500000000001 1050 900 1074.5 900 1100H1000C1000 1017.15 932.85 950 850 950H650L650.05 846.9000000000001C847.3499999999999 822.25 1000 653.95 1000 450V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V450C200 654 352.7 822.3 550 846.9V950H350C267 950 200 1017 200 1100H300zM600 650C489.4999999999999 650 400 560.5 400 450S489.4999999999999 250 600 250S800 339.5 800 450C800 487.1 789.9 521.8 772.3 551.6L635.35 414.6L630.6500000000001 410.5C611.0500000000001 395.2499999999999 582.6500000000001 396.5999999999999 564.6500000000001 414.65C545.15 434.15 545.15 465.85 564.6500000000001 485.3499999999999L701.6 622.3499999999999C671.8 639.85 637.1 650 600 650z","horizAdvX":"1200"},"scales-2-line":{"path":["M0 0H24V24H0z","M6 2c0 .513.49 1 1 1h10c.513 0 1-.49 1-1h2c0 1.657-1.343 3-3 3h-4l.001 2.062C16.947 7.555 20 10.921 20 15v6c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1v-6c0-4.08 3.054-7.446 7-7.938V5H7C5.34 5 4 3.66 4 2h2zm6 7c-3.238 0-6 2.76-6 6v5h12v-5c0-3.238-2.762-6-6-6zm0 2c.742 0 1.436.202 2.032.554l-2.74 2.739c-.39.39-.39 1.024 0 1.414.361.36.929.388 1.32.083l.095-.083 2.74-2.739c.351.596.553 1.29.553 2.032 0 2.21-1.79 4-4 4s-4-1.79-4-4 1.79-4 4-4z"],"unicode":"","glyph":"M300 1100C300 1074.35 324.5 1050 350 1050H850C875.6500000000001 1050 900 1074.5 900 1100H1000C1000 1017.15 932.85 950 850 950H650L650.05 846.9000000000001C847.3499999999999 822.25 1000 653.95 1000 450V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V450C200 654 352.7 822.3 550 846.9V950H350C267 950 200 1017 200 1100H300zM600 750C438.1 750 300 612 300 450V200H900V450C900 611.9 761.9 750 600 750zM600 650C637.1 650 671.8 639.9 701.6 622.3L564.6 485.35C545.0999999999999 465.85 545.0999999999999 434.15 564.6 414.6500000000001C582.65 396.65 611.05 395.25 630.6 410.5L635.35 414.6500000000001L772.35 551.6C789.9000000000001 521.8 800 487.1 800 450C800 339.5 710.5 250 600 250S400 339.5 400 450S489.4999999999999 650 600 650z","horizAdvX":"1200"},"scales-3-fill":{"path":["M0 0H24V24H0z","M13 2v1.278l5 1.668 3.632-1.21.633 1.896-3.032 1.011 3.096 8.512C21.237 16.292 19.7 17 18 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512L13 5.387V19H17v2H7v-2h4V5.387L7.232 6.643l3.096 8.512C9.237 16.292 7.7 17 6 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512-3.03-1.01.633-1.898L6 4.945l5-1.667V2h2zm5 7.103L16.582 13h2.835L18 9.103zm-12 0L4.582 13h2.835L6 9.103z"],"unicode":"","glyph":"M650 1100V1036.1L900 952.7L1081.6000000000001 1013.2L1113.25 918.4L961.65 867.85L1116.45 442.25C1061.85 385.3999999999999 985 350 900 350C814.9499999999999 350 738.15 385.3999999999999 683.55 442.25L838.25 867.8500000000001L650 930.65V250H850V150H350V250H550V930.65L361.6 867.85L516.4 442.25C461.85 385.3999999999999 385 350 300 350C214.95 350 138.15 385.3999999999999 83.55 442.25L238.2500000000001 867.8500000000001L86.75 918.35L118.4 1013.25L300 952.75L550 1036.1V1100H650zM900 744.85L829.1 550H970.8500000000003L900 744.85zM300 744.85L229.1 550H370.85L300 744.85z","horizAdvX":"1200"},"scales-3-line":{"path":["M0 0H24V24H0z","M13 2v1.278l5 1.668 3.632-1.21.633 1.896-3.032 1.011 3.096 8.512C21.237 16.292 19.7 17 18 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512L13 5.387V19H17v2H7v-2h4V5.387L7.232 6.643l3.096 8.512C9.237 16.292 7.7 17 6 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512-3.03-1.01.633-1.898L6 4.945l5-1.667V2h2zm5 7.103l-1.958 5.386c.587.331 1.257.511 1.958.511.7 0 1.37-.18 1.958-.51L18 9.102zm-12 0l-1.958 5.386C4.629 14.82 5.299 15 6 15c.7 0 1.37-.18 1.958-.51L6 9.102z"],"unicode":"","glyph":"M650 1100V1036.1L900 952.7L1081.6000000000001 1013.2L1113.25 918.4L961.65 867.85L1116.45 442.25C1061.85 385.3999999999999 985 350 900 350C814.9499999999999 350 738.15 385.3999999999999 683.55 442.25L838.25 867.8500000000001L650 930.65V250H850V150H350V250H550V930.65L361.6 867.85L516.4 442.25C461.85 385.3999999999999 385 350 300 350C214.95 350 138.15 385.3999999999999 83.55 442.25L238.2500000000001 867.8500000000001L86.75 918.35L118.4 1013.25L300 952.75L550 1036.1V1100H650zM900 744.85L802.1000000000001 475.55C831.45 459 864.9500000000002 450 900 450C935 450 968.5 459 997.8999999999997 475.5L900 744.9zM300 744.85L202.1 475.55C231.45 459 264.9500000000001 450 300 450C335 450 368.5 459 397.9000000000001 475.5L300 744.9z","horizAdvX":"1200"},"scales-fill":{"path":["M0 0H24V24H0z","M13 2v1h7v2h-7v14h4v2H7v-2h4V5H4V3h7V2h2zM5 6.343l2.828 2.829C8.552 9.895 9 10.895 9 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L5 6.343zm14 0l2.828 2.829C22.552 9.895 23 10.895 23 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L19 6.343zm0 2.829l-1.414 1.414C17.212 10.96 17 11.46 17 12l4 .001c0-.54-.212-1.041-.586-1.415L19 9.172zm-14 0l-1.414 1.414C3.212 10.96 3 11.46 3 12l4 .001c0-.54-.212-1.041-.586-1.415L5 9.172z"],"unicode":"","glyph":"M650 1100V1050H1000V950H650V250H850V150H350V250H550V950H200V1050H550V1100H650zM250 882.85L391.4 741.4C427.6 705.25 450 655.25 450 600C450 489.5 360.5 400 250 400S50 489.5 50 600C50 655.25 72.4 705.25 108.6 741.4L250 882.85zM950 882.85L1091.3999999999999 741.4C1127.6 705.25 1150 655.25 1150 600C1150 489.5 1060.5 400 950 400S750 489.5 750 600C750 655.25 772.4 705.25 808.6 741.4L950 882.85zM950 741.4L879.3 670.6999999999999C860.6 652 850 627 850 600L1050 599.95C1050 626.95 1039.4 652 1020.7 670.7L950 741.4zM250 741.4L179.3 670.6999999999999C160.6 652 150 627 150 600L350 599.95C350 626.95 339.4000000000001 652 320.7 670.7L250 741.4z","horizAdvX":"1200"},"scales-line":{"path":["M0 0H24V24H0z","M13 2v1h7v2h-7v14h4v2H7v-2h4V5H4V3h7V2h2zM5 6.343l2.828 2.829C8.552 9.895 9 10.895 9 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L5 6.343zm14 0l2.828 2.829C22.552 9.895 23 10.895 23 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L19 6.343zM5 9.172l-1.414 1.414C3.212 10.96 3 11.46 3 12c0 1.105.895 2 2 2s2-.895 2-2c0-.54-.212-1.04-.586-1.414L5 9.172zm14 0l-1.414 1.414C17.212 10.96 17 11.46 17 12c0 1.105.895 2 2 2s2-.895 2-2c0-.54-.212-1.04-.586-1.414L19 9.172z"],"unicode":"","glyph":"M650 1100V1050H1000V950H650V250H850V150H350V250H550V950H200V1050H550V1100H650zM250 882.85L391.4 741.4C427.6 705.25 450 655.25 450 600C450 489.5 360.5 400 250 400S50 489.5 50 600C50 655.25 72.4 705.25 108.6 741.4L250 882.85zM950 882.85L1091.3999999999999 741.4C1127.6 705.25 1150 655.25 1150 600C1150 489.5 1060.5 400 950 400S750 489.5 750 600C750 655.25 772.4 705.25 808.6 741.4L950 882.85zM250 741.4L179.3 670.6999999999999C160.6 652 150 627 150 600C150 544.75 194.75 500 250 500S350 544.75 350 600C350 627 339.4000000000001 652 320.7 670.6999999999999L250 741.4zM950 741.4L879.3 670.6999999999999C860.6 652 850 627 850 600C850 544.75 894.75 500 950 500S1050 544.75 1050 600C1050 627 1039.4 652 1020.7 670.6999999999999L950 741.4z","horizAdvX":"1200"},"scan-2-fill":{"path":["M0 0h24v24H0z","M4.257 5.671l2.137 2.137a7 7 0 1 0 1.414-1.414L5.67 4.257A9.959 9.959 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-2.401.846-4.605 2.257-6.329zm3.571 3.572L12 13.414 13.414 12 9.243 7.828a5 5 0 1 1-1.414 1.414z"],"unicode":"","glyph":"M212.85 916.45L319.7 809.6A350 350 0 1 1 390.4 880.3L283.5 987.15A497.95000000000005 497.95000000000005 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 720.05 142.3 830.25 212.85 916.45zM391.4 737.8499999999999L600 529.3000000000001L670.6999999999999 600L462.15 808.5999999999999A250 250 0 1 0 391.4500000000001 737.9z","horizAdvX":"1200"},"scan-2-line":{"path":["M0 0h24v24H0z","M5.671 4.257L13.414 12 12 13.414 8.554 9.968a4 4 0 1 0 3.697-1.96l-1.805-1.805a6 6 0 1 1-3.337 2.32L5.68 7.094a8 8 0 1 0 3.196-2.461L7.374 3.132A9.957 9.957 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12a9.98 9.98 0 0 1 3.671-7.743z"],"unicode":"","glyph":"M283.55 987.15L670.6999999999999 600L600 529.3000000000001L427.7 701.6A200 200 0 1 1 612.5500000000001 799.6L522.3000000000001 889.85A300 300 0 1 0 355.4500000000001 773.85L284 845.3A400 400 0 1 1 443.8 968.35L368.7 1043.4A497.8500000000001 497.8500000000001 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600A499 499 0 0 0 283.55 987.15z","horizAdvX":"1200"},"scan-fill":{"path":["M0 0h24v24H0z","M4.257 5.671L12 13.414 13.414 12 5.671 4.257A9.959 9.959 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-2.401.846-4.605 2.257-6.329z"],"unicode":"","glyph":"M212.85 916.45L600 529.3000000000001L670.6999999999999 600L283.55 987.15A497.95000000000005 497.95000000000005 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 720.05 142.3 830.25 212.85 916.45z","horizAdvX":"1200"},"scan-line":{"path":["M0 0h24v24H0z","M5.671 4.257L13.414 12 12 13.414l-6.32-6.32a8 8 0 1 0 3.706-2.658L7.85 2.9A9.963 9.963 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12a9.98 9.98 0 0 1 3.671-7.743z"],"unicode":"","glyph":"M283.55 987.15L670.6999999999999 600L600 529.3000000000001L284 845.3A400 400 0 1 1 469.3 978.2L392.5 1055A498.15 498.15 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600A499 499 0 0 0 283.55 987.15z","horizAdvX":"1200"},"scissors-2-fill":{"path":["M0 0h24v24H0z","M12 14.121l-2.317 2.317a4 4 0 1 1-2.121-2.121L9.88 12 4.21 6.333a2 2 0 0 1 0-2.829l.708-.707L12 9.88l7.081-7.082.708.707a2 2 0 0 1 0 2.829L14.12 12l2.317 2.317a4 4 0 1 1-2.121 2.121L12 14.12zM6 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm12 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 493.9499999999999L484.15 378.0999999999999A200 200 0 1 0 378.1 484.1499999999999L494.0000000000001 600L210.5 883.3499999999999A100 100 0 0 0 210.5 1024.8L245.9 1060.15L600 706L954.05 1060.1L989.45 1024.75A100 100 0 0 0 989.45 883.3L706 600L821.8499999999999 484.15A200 200 0 1 0 715.7999999999998 378.1L600 494zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"scissors-2-line":{"path":["M0 0h24v24H0z","M12 13.414l-2.554 2.554a4 4 0 1 1-1.414-1.414L10.586 12 4.565 5.98a2 2 0 0 1 0-2.83L12 10.587l7.435-7.435a2 2 0 0 1 0 2.828L13.415 12l2.553 2.554a4 4 0 1 1-1.414 1.414L12 13.414zM6 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm12 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 529.3000000000001L472.3 401.6A200 200 0 1 0 401.6 472.3L529.3000000000001 600L228.2500000000001 901A100 100 0 0 0 228.2500000000001 1042.5L600 670.65L971.7499999999998 1042.4A100 100 0 0 0 971.7499999999998 901L670.75 600L798.4 472.3A200 200 0 1 0 727.7 401.6L600 529.3000000000001zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"scissors-cut-fill":{"path":["M0 0h24v24H0z","M9.879 12L7.562 9.683a4 4 0 1 1 2.121-2.121L12 9.88l6.374-6.375a2 2 0 0 1 2.829 0l.707.707L9.683 16.438a4 4 0 1 1-2.121-2.121L9.88 12zM6 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm9.535-6.587l6.375 6.376-.707.707a2 2 0 0 1-2.829 0l-4.96-4.961 2.12-2.122zM16 11h2v2h-2v-2zm4 0h2v2h-2v-2zM6 11h2v2H6v-2zm-4 0h2v2H2v-2z"],"unicode":"","glyph":"M493.95 600L378.1 715.85A200 200 0 1 0 484.15 821.9000000000001L600 706L918.7 1024.75A100 100 0 0 0 1060.1499999999999 1024.75L1095.5 989.4L484.15 378.1A200 200 0 1 0 378.1 484.1500000000001L494.0000000000001 600zM300 800A100 100 0 1 1 300 1000A100 100 0 0 1 300 800zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM776.75 529.35L1095.5 210.55L1060.1499999999999 175.1999999999998A100 100 0 0 0 918.7 175.1999999999998L670.6999999999999 423.2499999999999L776.6999999999999 529.3499999999999zM800 650H900V550H800V650zM1000 650H1100V550H1000V650zM300 650H400V550H300V650zM100 650H200V550H100V650z","horizAdvX":"1200"},"scissors-cut-line":{"path":["M0 0h24v24H0z","M10 6c0 .732-.197 1.419-.54 2.01L12 10.585l6.728-6.728a2 2 0 0 1 2.828 0l-12.11 12.11a4 4 0 1 1-1.414-1.414L10.586 12 8.032 9.446A4 4 0 1 1 10 6zM8 6a2 2 0 1 0-4 0 2 2 0 0 0 4 0zm13.556 14.142a2 2 0 0 1-2.828 0l-5.317-5.316 1.415-1.415 6.73 6.731zM16 11h2v2h-2v-2zm4 0h2v2h-2v-2zM6 11h2v2H6v-2zm-4 0h2v2H2v-2zm4 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M500 900C500 863.4 490.15 829.05 473.0000000000001 799.5L600 670.75L936.4 1007.15A100 100 0 0 0 1077.8 1007.15L472.3000000000001 401.65A200 200 0 1 0 401.6000000000001 472.3499999999999L529.3000000000001 600L401.6 727.7A200 200 0 1 0 500 900zM400 900A100 100 0 1 1 200 900A100 100 0 0 1 400 900zM1077.8 192.9A100 100 0 0 0 936.3999999999997 192.9L670.5499999999998 458.6999999999999L741.2999999999998 529.4499999999999L1077.8 192.8999999999999zM800 650H900V550H800V650zM1000 650H1100V550H1000V650zM300 650H400V550H300V650zM100 650H200V550H100V650zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200z","horizAdvX":"1200"},"scissors-fill":{"path":["M0 0h24v24H0z","M9.683 7.562L12 9.88l6.374-6.375a2 2 0 0 1 2.829 0l.707.707L9.683 16.438a4 4 0 1 1-2.121-2.121L9.88 12 7.562 9.683a4 4 0 1 1 2.121-2.121zM6 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm9.535-6.587l6.375 6.376-.707.707a2 2 0 0 1-2.829 0l-4.96-4.961 2.12-2.122z"],"unicode":"","glyph":"M484.15 821.9L600 706L918.7 1024.75A100 100 0 0 0 1060.1499999999999 1024.75L1095.5 989.4L484.15 378.1A200 200 0 1 0 378.1 484.1500000000001L494.0000000000001 600L378.1 715.85A200 200 0 1 0 484.15 821.9000000000001zM300 800A100 100 0 1 1 300 1000A100 100 0 0 1 300 800zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM776.75 529.35L1095.5 210.55L1060.1499999999999 175.1999999999998A100 100 0 0 0 918.7 175.1999999999998L670.6999999999999 423.2499999999999L776.6999999999999 529.3499999999999z","horizAdvX":"1200"},"scissors-line":{"path":["M0 0h24v24H0z","M9.446 8.032L12 10.586l6.728-6.728a2 2 0 0 1 2.828 0l-12.11 12.11a4 4 0 1 1-1.414-1.414L10.586 12 8.032 9.446a4 4 0 1 1 1.414-1.414zm5.38 5.38l6.73 6.73a2 2 0 0 1-2.828 0l-5.317-5.316 1.415-1.415zm-7.412 3.174a2 2 0 1 0-2.828 2.828 2 2 0 0 0 2.828-2.828zm0-9.172a2 2 0 1 0-2.828-2.828 2 2 0 0 0 2.828 2.828z"],"unicode":"","glyph":"M472.3 798.4L600 670.6999999999999L936.4 1007.1A100 100 0 0 0 1077.8 1007.1L472.3000000000001 401.6A200 200 0 1 0 401.6000000000001 472.3L529.3000000000001 600L401.6 727.7A200 200 0 1 0 472.3 798.4zM741.3000000000001 529.4000000000001L1077.8 192.9A100 100 0 0 0 936.4 192.9L670.5500000000001 458.6999999999999L741.3000000000001 529.4499999999999zM370.7000000000001 370.7000000000001A100 100 0 1 1 229.3 229.3000000000001A100 100 0 0 1 370.7 370.7000000000001zM370.7000000000001 829.3000000000002A100 100 0 1 1 229.3 970.7A100 100 0 0 1 370.7 829.3000000000002z","horizAdvX":"1200"},"screenshot-2-fill":{"path":["M0 0h24v24H0z","M3 3h2v2H3V3zm4 0h2v2H7V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm0 4h2v2h-2V7zM3 19h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3V7zm7.667 4l1.036-1.555A1 1 0 0 1 12.535 9h2.93a1 1 0 0 1 .832.445L17.333 11H20a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h2.667zM14 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M150 1050H250V950H150V1050zM350 1050H450V950H350V1050zM550 1050H650V950H550V1050zM750 1050H850V950H750V1050zM950 1050H1050V950H950V1050zM950 850H1050V750H950V850zM150 250H250V150H150V250zM150 450H250V350H150V450zM150 650H250V550H150V650zM150 850H250V750H150V850zM533.35 650L585.15 727.75A50 50 0 0 0 626.75 750H773.25A50 50 0 0 0 814.85 727.75L866.6499999999999 650H1000A50 50 0 0 0 1050 600V200A50 50 0 0 0 1000 150H400A50 50 0 0 0 350 200V600A50 50 0 0 0 400 650H533.35zM700 300A100 100 0 1 1 700 500A100 100 0 0 1 700 300z","horizAdvX":"1200"},"screenshot-2-line":{"path":["M0 0h24v24H0z","M3 3h2v2H3V3zm4 0h2v2H7V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm0 4h2v2h-2V7zM3 19h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3V7zm7.667 4l1.036-1.555A1 1 0 0 1 12.535 9h2.93a1 1 0 0 1 .832.445L17.333 11H20a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h2.667zM9 19h10v-6h-2.737l-1.333-2h-1.86l-1.333 2H9v6zm5-1a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M150 1050H250V950H150V1050zM350 1050H450V950H350V1050zM550 1050H650V950H550V1050zM750 1050H850V950H750V1050zM950 1050H1050V950H950V1050zM950 850H1050V750H950V850zM150 250H250V150H150V250zM150 450H250V350H150V450zM150 650H250V550H150V650zM150 850H250V750H150V850zM533.35 650L585.15 727.75A50 50 0 0 0 626.75 750H773.25A50 50 0 0 0 814.85 727.75L866.6499999999999 650H1000A50 50 0 0 0 1050 600V200A50 50 0 0 0 1000 150H400A50 50 0 0 0 350 200V600A50 50 0 0 0 400 650H533.35zM450 250H950V550H813.1499999999999L746.4999999999999 650H653.4999999999999L586.8499999999999 550H450V250zM700 300A100 100 0 1 0 700 500A100 100 0 0 0 700 300z","horizAdvX":"1200"},"screenshot-fill":{"path":["M0 0h24v24H0z","M11.993 14.407l-1.552 1.552a4 4 0 1 1-1.418-1.41l1.555-1.556-3.124-3.125a1.5 1.5 0 0 1 0-2.121l.354-.354 4.185 4.185 4.189-4.189.353.354a1.5 1.5 0 0 1 0 2.12l-3.128 3.13 1.561 1.56a4 4 0 1 1-1.414 1.414l-1.561-1.56zM19 13V5H5v8H3V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v9h-2zM7 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm10 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M599.65 479.65L522.0500000000001 402.0500000000001A200 200 0 1 0 451.1500000000001 472.5500000000001L528.9000000000001 550.35L372.7000000000001 706.6000000000001A75 75 0 0 0 372.7000000000001 812.6500000000001L390.4000000000001 830.3500000000001L599.65 621.1000000000001L809.1000000000001 830.5500000000002L826.7500000000002 812.8500000000001A75 75 0 0 0 826.7500000000002 706.8500000000001L670.3500000000001 550.35L748.4000000000002 472.35A200 200 0 1 0 677.7000000000002 401.6500000000001L599.6500000000002 479.6500000000001zM950 550V950H250V550H150V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V550H950zM350 200A100 100 0 1 1 350 400A100 100 0 0 1 350 200zM850 200A100 100 0 1 1 850 400A100 100 0 0 1 850 200z","horizAdvX":"1200"},"screenshot-line":{"path":["M0 0h24v24H0z","M11.993 14.407l-1.552 1.552a4 4 0 1 1-1.418-1.41l1.555-1.556-4.185-4.185 1.415-1.415 4.185 4.185 4.189-4.189 1.414 1.414-4.19 4.19 1.562 1.56a4 4 0 1 1-1.414 1.414l-1.561-1.56zM7 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm10 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm2-7V5H5v8H3V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v9h-2z"],"unicode":"","glyph":"M599.65 479.65L522.0500000000001 402.0500000000001A200 200 0 1 0 451.1500000000001 472.5500000000001L528.9000000000001 550.35L319.6500000000001 759.6L390.4000000000001 830.35L599.6500000000001 621.1L809.1000000000001 830.55L879.8000000000002 759.85L670.3000000000001 550.35L748.4000000000001 472.35A200 200 0 1 0 677.7 401.6500000000001L599.6500000000001 479.6500000000001zM350 200A100 100 0 1 1 350 400A100 100 0 0 1 350 200zM850 200A100 100 0 1 1 850 400A100 100 0 0 1 850 200zM950 550V950H250V550H150V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V550H950z","horizAdvX":"1200"},"sd-card-fill":{"path":["M0 0h24v24H0z","M4.293 6.707L9 2h10a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7.414a1 1 0 0 1 .293-.707zM15 5v4h2V5h-2zm-3 0v4h2V5h-2zM9 5v4h2V5H9z"],"unicode":"","glyph":"M214.65 864.6500000000001L450 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V829.3A50 50 0 0 0 214.65 864.6500000000001zM750 950V750H850V950H750zM600 950V750H700V950H600zM450 950V750H550V950H450z","horizAdvX":"1200"},"sd-card-line":{"path":["M0 0h24v24H0z","M6 7.828V20h12V4H9.828L6 7.828zm-1.707-1.12L9 2h10a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7.414a1 1 0 0 1 .293-.707zM15 5h2v4h-2V5zm-3 0h2v4h-2V5zM9 6h2v3H9V6z"],"unicode":"","glyph":"M300 808.5999999999999V200H900V1000H491.4L300 808.5999999999999zM214.65 864.5999999999999L450 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V829.3A50 50 0 0 0 214.65 864.6500000000001zM750 950H850V750H750V950zM600 950H700V750H600V950zM450 900H550V750H450V900z","horizAdvX":"1200"},"sd-card-mini-fill":{"path":["M0 0h24v24H0z","M7 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8.58a1 1 0 0 1 .292-.706l1.562-1.568A.5.5 0 0 0 6 9.793V3a1 1 0 0 1 1-1zm8 2v4h2V4h-2zm-3 0v4h2V4h-2zM9 4v4h2V4H9z"],"unicode":"","glyph":"M350 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V579A50 50 0 0 0 214.6 614.3L292.7 692.6999999999999A25 25 0 0 1 300 710.35V1050A50 50 0 0 0 350 1100zM750 1000V800H850V1000H750zM600 1000V800H700V1000H600zM450 1000V800H550V1000H450z","horizAdvX":"1200"},"sd-card-mini-line":{"path":["M0 0h24v24H0z","M8 4v5.793a2.5 2.5 0 0 1-.73 1.765L6 12.833V20h12V4H8zM7 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8.58a1 1 0 0 1 .292-.706l1.562-1.568A.5.5 0 0 0 6 9.793V3a1 1 0 0 1 1-1zm8 3h2v4h-2V5zm-3 0h2v4h-2V5zM9 5h2v4H9V5z"],"unicode":"","glyph":"M400 1000V710.35A125 125 0 0 0 363.5 622.1L300 558.35V200H900V1000H400zM350 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V579A50 50 0 0 0 214.6 614.3L292.7 692.6999999999999A25 25 0 0 1 300 710.35V1050A50 50 0 0 0 350 1100zM750 950H850V750H750V950zM600 950H700V750H600V950zM450 950H550V750H450V950z","horizAdvX":"1200"},"search-2-fill":{"path":["M0 0h24v24H0z","M11 2c4.968 0 9 4.032 9 9s-4.032 9-9 9-9-4.032-9-9 4.032-9 9-9zm8.485 16.071l2.829 2.828-1.415 1.415-2.828-2.829 1.414-1.414z"],"unicode":"","glyph":"M550 1100C798.4 1100 1000 898.4 1000 650S798.4 200 550 200S100 401.6 100 650S301.6 1100 550 1100zM974.25 296.45L1115.7 155.05L1044.95 84.3L903.55 225.75L974.2500000000002 296.4500000000001z","horizAdvX":"1200"},"search-2-line":{"path":["M0 0h24v24H0z","M11 2c4.968 0 9 4.032 9 9s-4.032 9-9 9-9-4.032-9-9 4.032-9 9-9zm0 16c3.867 0 7-3.133 7-7 0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7zm8.485.071l2.829 2.828-1.415 1.415-2.828-2.829 1.414-1.414z"],"unicode":"","glyph":"M550 1100C798.4 1100 1000 898.4 1000 650S798.4 200 550 200S100 401.6 100 650S301.6 1100 550 1100zM550 300C743.35 300 900 456.65 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300zM974.25 296.45L1115.7 155.05L1044.95 84.3L903.55 225.75L974.2500000000002 296.4500000000001z","horizAdvX":"1200"},"search-eye-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-5.853-9.44a4 4 0 1 0 2.646 2.646 2 2 0 1 1-2.646-2.647z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM608.9 841.1499999999999A200 200 0 1 1 741.1999999999999 708.8499999999999A100 100 0 1 0 608.8999999999999 841.2z","horizAdvX":"1200"},"search-eye-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15zm-3.847-8.699a2 2 0 1 0 2.646 2.646 4 4 0 1 1-2.646-2.646z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001zM608.9 841.2A100 100 0 1 1 741.1999999999999 708.9000000000001A200 200 0 1 0 608.8999999999999 841.2z","horizAdvX":"1200"},"search-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15z","horizAdvX":"1200"},"search-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001z","horizAdvX":"1200"},"secure-payment-fill":{"path":["M0 0h24v24H0z","M11 2l7.298 2.28a1 1 0 0 1 .702.955V7h2a1 1 0 0 1 1 1v2H9V8a1 1 0 0 1 1-1h7V5.97l-6-1.876L5 5.97v7.404a4 4 0 0 0 1.558 3.169l.189.136L11 19.58 14.782 17H10a1 1 0 0 1-1-1v-4h13v4a1 1 0 0 1-1 1l-3.22.001c-.387.51-.857.96-1.4 1.33L11 22l-5.38-3.668A6 6 0 0 1 3 13.374V5.235a1 1 0 0 1 .702-.954L11 2z"],"unicode":"","glyph":"M550 1100L914.9 986A50 50 0 0 0 950 938.25V850H1050A50 50 0 0 0 1100 800V700H450V800A50 50 0 0 0 500 850H850V901.5L550 995.3L250 901.5V531.3000000000001A200 200 0 0 1 327.9 372.85L337.35 366.0500000000001L550 221.0000000000001L739.1 350H500A50 50 0 0 0 450 400V600H1100V400A50 50 0 0 0 1050 350L889 349.95C869.6500000000001 324.4499999999998 846.1500000000001 301.95 819.0000000000001 283.4499999999998L550 100L281 283.4A300 300 0 0 0 150 531.3V938.25A50 50 0 0 0 185.1 985.95L550 1100z","horizAdvX":"1200"},"secure-payment-line":{"path":["M0 0h24v24H0z","M11 2l7.298 2.28a1 1 0 0 1 .702.955V7h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1l-3.22.001c-.387.51-.857.96-1.4 1.33L11 22l-5.38-3.668A6 6 0 0 1 3 13.374V5.235a1 1 0 0 1 .702-.954L11 2zm0 2.094L5 5.97v7.404a4 4 0 0 0 1.558 3.169l.189.136L11 19.58 14.782 17H10a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h7V5.97l-6-1.876zM11 12v3h9v-3h-9zm0-2h9V9h-9v1z"],"unicode":"","glyph":"M550 1100L914.9 986A50 50 0 0 0 950 938.25V850H1050A50 50 0 0 0 1100 800V400A50 50 0 0 0 1050 350L889 349.95C869.6500000000001 324.4499999999998 846.1500000000001 301.95 819.0000000000001 283.4499999999998L550 100L281 283.4A300 300 0 0 0 150 531.3V938.25A50 50 0 0 0 185.1 985.95L550 1100zM550 995.3L250 901.5V531.3000000000001A200 200 0 0 1 327.9 372.85L337.35 366.0500000000001L550 221.0000000000001L739.1 350H500A50 50 0 0 0 450 400V800A50 50 0 0 0 500 850H850V901.5L550 995.3zM550 600V450H1000V600H550zM550 700H1000V750H550V700z","horizAdvX":"1200"},"seedling-fill":{"path":["M0 0H24V24H0z","M22 7v2.5c0 3.59-2.91 6.5-6.5 6.5H13v5h-2v-7l.019-1c.255-3.356 3.06-6 6.481-6H22zM6 3c3.092 0 5.716 2.005 6.643 4.786-1.5 1.275-2.49 3.128-2.627 5.214H9c-3.866 0-7-3.134-7-7V3h4z"],"unicode":"","glyph":"M1100 850V725C1100 545.5 954.5 400 775 400H650V150H550V500L550.95 550C563.7 717.8 703.95 850 875 850H1100zM300 1050C454.6 1050 585.8000000000001 949.75 632.1500000000001 810.7C557.1500000000001 746.95 507.65 654.3000000000001 500.8000000000001 550H450C256.7000000000001 550 100 706.7 100 900V1050H300z","horizAdvX":"1200"},"seedling-line":{"path":["M0 0H24V24H0z","M6 3c3.49 0 6.383 2.554 6.913 5.895C14.088 7.724 15.71 7 17.5 7H22v2.5c0 3.59-2.91 6.5-6.5 6.5H13v5h-2v-8H9c-3.866 0-7-3.134-7-7V3h4zm14 6h-2.5c-2.485 0-4.5 2.015-4.5 4.5v.5h2.5c2.485 0 4.5-2.015 4.5-4.5V9zM6 5H4v1c0 2.761 2.239 5 5 5h2v-1c0-2.761-2.239-5-5-5z"],"unicode":"","glyph":"M300 1050C474.5 1050 619.15 922.3 645.65 755.25C704.4 813.8 785.5 850 875 850H1100V725C1100 545.5 954.5 400 775 400H650V150H550V550H450C256.7000000000001 550 100 706.7 100 900V1050H300zM1000 750H875C750.75 750 650 649.25 650 525V500H775C899.25 500 1000 600.75 1000 725V750zM300 950H200V900C200 761.95 311.95 650 450 650H550V700C550 838.05 438.05 950 300 950z","horizAdvX":"1200"},"send-backward":{"path":["M0 0H24V24H0z","M14 3c.552 0 1 .448 1 1v5h5c.552 0 1 .448 1 1v10c0 .552-.448 1-1 1H10c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h10zm-1 2H5v8h4v-3c0-.552.448-1 1-1h3V5z"],"unicode":"","glyph":"M700 1050C727.6 1050 750 1027.6 750 1000V750H1000C1027.6 750 1050 727.5999999999999 1050 700V200C1050 172.4000000000001 1027.6 150 1000 150H500C472.4 150 450 172.4000000000001 450 200V450H200C172.4 450 150 472.4 150 500V1000C150 1027.6 172.4 1050 200 1050H700zM650 950H250V550H450V700C450 727.5999999999999 472.4 750 500 750H650V950z","horizAdvX":"1200"},"send-plane-2-fill":{"path":["M0 0h24v24H0z","M3 13h6v-2H3V1.846a.5.5 0 0 1 .741-.438l18.462 10.154a.5.5 0 0 1 0 .876L3.741 22.592A.5.5 0 0 1 3 22.154V13z"],"unicode":"","glyph":"M150 550H450V650H150V1107.7A25 25 0 0 0 187.05 1129.6L1110.1499999999999 621.9A25 25 0 0 0 1110.1499999999999 578.1L187.05 70.4000000000001A25 25 0 0 0 150 92.3V550z","horizAdvX":"1200"},"send-plane-2-line":{"path":["M0 0h24v24H0z","M3.741 1.408l18.462 10.154a.5.5 0 0 1 0 .876L3.741 22.592A.5.5 0 0 1 3 22.154V1.846a.5.5 0 0 1 .741-.438zM5 13v6.617L18.85 12 5 4.383V11h5v2H5z"],"unicode":"","glyph":"M187.05 1129.6L1110.1499999999999 621.9A25 25 0 0 0 1110.1499999999999 578.1L187.05 70.4000000000001A25 25 0 0 0 150 92.3V1107.7A25 25 0 0 0 187.05 1129.6zM250 550V219.15L942.5000000000002 600L250 980.85V650H500V550H250z","horizAdvX":"1200"},"send-plane-fill":{"path":["M0 0h24v24H0z","M1.946 9.315c-.522-.174-.527-.455.01-.634l19.087-6.362c.529-.176.832.12.684.638l-5.454 19.086c-.15.529-.455.547-.679.045L12 14l6-8-8 6-8.054-2.685z"],"unicode":"","glyph":"M97.3 734.25C71.2 742.95 70.95 757 97.8 765.95L1052.1499999999999 1084.05C1078.6 1092.8500000000001 1093.75 1078.05 1086.35 1052.15L813.65 97.8500000000001C806.1500000000001 71.4000000000001 790.9 70.5 779.6999999999999 95.5999999999999L600 500L900 900L500 600L97.3 734.25z","horizAdvX":"1200"},"send-plane-line":{"path":["M0 0h24v24H0z","M1.923 9.37c-.51-.205-.504-.51.034-.689l19.086-6.362c.529-.176.832.12.684.638l-5.454 19.086c-.15.529-.475.553-.717.07L11 13 1.923 9.37zm4.89-.2l5.636 2.255 3.04 6.082 3.546-12.41L6.812 9.17z"],"unicode":"","glyph":"M96.15 731.5C70.65 741.75 70.95 757 97.85 765.95L1052.1499999999999 1084.05C1078.6 1092.8500000000001 1093.75 1078.05 1086.35 1052.15L813.65 97.8500000000001C806.1500000000001 71.4000000000001 789.9 70.2000000000001 777.8 94.3499999999999L550 550L96.15 731.5zM340.65 741.5L622.45 628.75L774.45 324.65L951.75 945.1499999999997L340.6 741.5z","horizAdvX":"1200"},"send-to-back":{"path":["M0 0H24V24H0z","M11 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v5h2c.552 0 1 .448 1 1v7c0 .552-.448 1-1 1h-7c-.552 0-1-.448-1-1v-2H7c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7zm5 5h-4v3c0 .552-.448 1-1 1H8v4h4v-3c0-.552.448-1 1-1h3V8z"],"unicode":"","glyph":"M550 1050C577.6 1050 600 1027.6 600 1000V900H850C877.6 900 900 877.5999999999999 900 850V600H1000C1027.6 600 1050 577.6 1050 550V200C1050 172.4000000000001 1027.6 150 1000 150H650C622.4 150 600 172.4000000000001 600 200V300H350C322.4000000000001 300 300 322.4 300 350V600H200C172.4 600 150 622.4 150 650V1000C150 1027.6 172.4 1050 200 1050H550zM800 800H600V650C600 622.4 577.6 600 550 600H400V400H600V550C600 577.6 622.4 600 650 600H800V800z","horizAdvX":"1200"},"sensor-fill":{"path":["M0 0h24v24H0z","M6 8v2h12V8h-3V2h2v4h5v2h-2v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V2h2v6H6zm7-6v6h-2V2h2z"],"unicode":"","glyph":"M300 800V700H900V800H750V1100H850V900H1100V800H1000V200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V800H100V900H350V1100H450V800H300zM650 1100V800H550V1100H650z","horizAdvX":"1200"},"sensor-line":{"path":["M0 0h24v24H0z","M6 8v11h12V8h-3V2h2v4h5v2h-2v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V2h2v6H6zm7-6v6h-2V2h2z"],"unicode":"","glyph":"M300 800V250H900V800H750V1100H850V900H1100V800H1000V200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V800H100V900H350V1100H450V800H300zM650 1100V800H550V1100H650z","horizAdvX":"1200"},"separator":{"path":["M0 0h24v24H0z","M2 11h2v2H2v-2zm4 0h12v2H6v-2zm14 0h2v2h-2v-2z"],"unicode":"","glyph":"M100 650H200V550H100V650zM300 650H900V550H300V650zM1000 650H1100V550H1000V650z","horizAdvX":"1200"},"server-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v7H3V4a1 1 0 0 1 1-1zM3 13h18v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7zm4 3v2h3v-2H7zM7 6v2h3V6H7z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V650H150V1000A50 50 0 0 0 200 1050zM150 550H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V550zM350 400V300H500V400H350zM350 900V800H500V900H350z","horizAdvX":"1200"},"server-line":{"path":["M0 0h24v24H0z","M5 11h14V5H5v6zm16-7v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1zm-2 9H5v6h14v-6zM7 15h3v2H7v-2zm0-8h3v2H7V7z"],"unicode":"","glyph":"M250 650H950V950H250V650zM1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000zM950 550H250V250H950V550zM350 450H500V350H350V450zM350 850H500V750H350V850z","horizAdvX":"1200"},"service-fill":{"path":["M0 0h24v24H0z","M14.121 10.48a1 1 0 0 0-1.414 0l-.707.706a2 2 0 1 1-2.828-2.828l5.63-5.632a6.5 6.5 0 0 1 6.377 10.568l-2.108 2.135-4.95-4.95zM3.161 4.468a6.503 6.503 0 0 1 8.009-.938L7.757 6.944a4 4 0 0 0 5.513 5.794l.144-.137 4.243 4.242-4.243 4.243a2 2 0 0 1-2.828 0L3.16 13.66a6.5 6.5 0 0 1 0-9.192z"],"unicode":"","glyph":"M706.0500000000001 676A50 50 0 0 1 635.35 676L600 640.7A100 100 0 1 0 458.6 782.0999999999999L740.1 1063.7A325 325 0 0 0 1058.9499999999998 535.3L953.55 428.55L706.05 676.0500000000001zM158.05 976.6A325.15 325.15 0 0 0 558.5 1023.5L387.85 852.8A200 200 0 0 1 663.5 563.1L670.6999999999999 569.95L882.85 357.85L670.6999999999999 145.7000000000001A100 100 0 0 0 529.3000000000001 145.7000000000001L158 517A325 325 0 0 0 158 976.6z","horizAdvX":"1200"},"service-line":{"path":["M0 0h24v24H0z","M3.161 4.469a6.5 6.5 0 0 1 8.84-.328 6.5 6.5 0 0 1 9.178 9.154l-7.765 7.79a2 2 0 0 1-2.719.102l-.11-.101-7.764-7.791a6.5 6.5 0 0 1 .34-8.826zm1.414 1.414a4.5 4.5 0 0 0-.146 6.21l.146.154L12 19.672l5.303-5.304-3.535-3.535-1.06 1.06a3 3 0 1 1-4.244-4.242l2.102-2.103a4.501 4.501 0 0 0-5.837.189l-.154.146zm8.486 2.828a1 1 0 0 1 1.414 0l4.242 4.242.708-.706a4.5 4.5 0 0 0-6.211-6.51l-.153.146-3.182 3.182a1 1 0 0 0-.078 1.327l.078.087a1 1 0 0 0 1.327.078l.087-.078 1.768-1.768z"],"unicode":"","glyph":"M158.05 976.55A325 325 0 0 0 600.05 992.95A325 325 0 0 0 1058.95 535.25L670.7 145.75A100 100 0 0 0 534.7500000000001 140.6499999999999L529.2500000000001 145.6999999999998L141.0500000000001 535.2499999999999A325 325 0 0 0 158.0500000000001 976.55zM228.75 905.85A225 225 0 0 1 221.45 595.35L228.75 587.65L600 216.4L865.1500000000001 481.6L688.4000000000001 658.35L635.4 605.3499999999999A150 150 0 1 0 423.2000000000001 817.45L528.3000000000001 922.6A225.05 225.05 0 0 1 236.4500000000001 913.15L228.7500000000001 905.85zM653.05 764.45A50 50 0 0 0 723.75 764.45L935.85 552.35L971.2499999999998 587.65A225 225 0 0 1 660.6999999999998 913.15L653.0499999999998 905.85L493.9499999999998 746.75A50 50 0 0 1 490.0499999999998 680.4L493.9499999999998 676.0500000000001A50 50 0 0 1 560.2999999999998 672.1500000000001L564.6499999999997 676.0500000000001L653.0499999999998 764.45z","horizAdvX":"1200"},"settings-2-fill":{"path":["M0 0h24v24H0z","M8.686 4l2.607-2.607a1 1 0 0 1 1.414 0L15.314 4H19a1 1 0 0 1 1 1v3.686l2.607 2.607a1 1 0 0 1 0 1.414L20 15.314V19a1 1 0 0 1-1 1h-3.686l-2.607 2.607a1 1 0 0 1-1.414 0L8.686 20H5a1 1 0 0 1-1-1v-3.686l-2.607-2.607a1 1 0 0 1 0-1.414L4 8.686V5a1 1 0 0 1 1-1h3.686zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M434.3 1000L564.65 1130.35A50 50 0 0 0 635.3499999999999 1130.35L765.7 1000H950A50 50 0 0 0 1000 950V765.7L1130.35 635.35A50 50 0 0 0 1130.35 564.6500000000001L1000 434.3V250A50 50 0 0 0 950 200H765.7L635.35 69.6500000000001A50 50 0 0 0 564.6500000000001 69.6500000000001L434.3 200H250A50 50 0 0 0 200 250V434.3L69.65 564.65A50 50 0 0 0 69.65 635.3499999999999L200 765.7V950A50 50 0 0 0 250 1000H434.3zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-2-line":{"path":["M0 0h24v24H0z","M8.686 4l2.607-2.607a1 1 0 0 1 1.414 0L15.314 4H19a1 1 0 0 1 1 1v3.686l2.607 2.607a1 1 0 0 1 0 1.414L20 15.314V19a1 1 0 0 1-1 1h-3.686l-2.607 2.607a1 1 0 0 1-1.414 0L8.686 20H5a1 1 0 0 1-1-1v-3.686l-2.607-2.607a1 1 0 0 1 0-1.414L4 8.686V5a1 1 0 0 1 1-1h3.686zM6 6v3.515L3.515 12 6 14.485V18h3.515L12 20.485 14.485 18H18v-3.515L20.485 12 18 9.515V6h-3.515L12 3.515 9.515 6H6zm6 10a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M434.3 1000L564.65 1130.35A50 50 0 0 0 635.3499999999999 1130.35L765.7 1000H950A50 50 0 0 0 1000 950V765.7L1130.35 635.35A50 50 0 0 0 1130.35 564.6500000000001L1000 434.3V250A50 50 0 0 0 950 200H765.7L635.35 69.6500000000001A50 50 0 0 0 564.6500000000001 69.6500000000001L434.3 200H250A50 50 0 0 0 200 250V434.3L69.65 564.65A50 50 0 0 0 69.65 635.3499999999999L200 765.7V950A50 50 0 0 0 250 1000H434.3zM300 900V724.25L175.75 600L300 475.75V300H475.75L600 175.75L724.25 300H900V475.75L1024.25 600L900 724.25V900H724.25L600 1024.25L475.75 900H300zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"settings-3-fill":{"path":["M0 0h24v24H0z","M9.954 2.21a9.99 9.99 0 0 1 4.091-.002A3.993 3.993 0 0 0 16 5.07a3.993 3.993 0 0 0 3.457.261A9.99 9.99 0 0 1 21.5 8.876 3.993 3.993 0 0 0 20 12c0 1.264.586 2.391 1.502 3.124a10.043 10.043 0 0 1-2.046 3.543 3.993 3.993 0 0 0-3.456.261 3.993 3.993 0 0 0-1.954 2.86 9.99 9.99 0 0 1-4.091.004A3.993 3.993 0 0 0 8 18.927a3.993 3.993 0 0 0-3.457-.26A9.99 9.99 0 0 1 2.5 15.121 3.993 3.993 0 0 0 4 11.999a3.993 3.993 0 0 0-1.502-3.124 10.043 10.043 0 0 1 2.046-3.543A3.993 3.993 0 0 0 8 5.071a3.993 3.993 0 0 0 1.954-2.86zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M497.7 1089.5A499.5000000000001 499.5000000000001 0 0 0 702.2500000000001 1089.6A199.64999999999998 199.64999999999998 0 0 1 800 946.5A199.64999999999998 199.64999999999998 0 0 1 972.85 933.45A499.5000000000001 499.5000000000001 0 0 0 1075 756.2A199.64999999999998 199.64999999999998 0 0 1 1000 600C1000 536.8000000000001 1029.3 480.45 1075.1 443.8A502.1499999999999 502.1499999999999 0 0 0 972.8 266.6499999999999A199.64999999999998 199.64999999999998 0 0 1 800 253.5999999999999A199.64999999999998 199.64999999999998 0 0 1 702.3 110.5999999999999A499.5000000000001 499.5000000000001 0 0 0 497.7499999999999 110.3999999999999A199.64999999999998 199.64999999999998 0 0 1 400 253.65A199.64999999999998 199.64999999999998 0 0 1 227.15 266.6500000000001A499.5000000000001 499.5000000000001 0 0 0 125 443.95A199.64999999999998 199.64999999999998 0 0 1 200 600.05A199.64999999999998 199.64999999999998 0 0 1 124.9 756.25A502.1499999999999 502.1499999999999 0 0 0 227.2 933.4A199.64999999999998 199.64999999999998 0 0 1 400 946.45A199.64999999999998 199.64999999999998 0 0 1 497.7 1089.45zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-3-line":{"path":["M0 0h24v24H0z","M3.34 17a10.018 10.018 0 0 1-.978-2.326 3 3 0 0 0 .002-5.347A9.99 9.99 0 0 1 4.865 4.99a3 3 0 0 0 4.631-2.674 9.99 9.99 0 0 1 5.007.002 3 3 0 0 0 4.632 2.672c.579.59 1.093 1.261 1.525 2.01.433.749.757 1.53.978 2.326a3 3 0 0 0-.002 5.347 9.99 9.99 0 0 1-2.501 4.337 3 3 0 0 0-4.631 2.674 9.99 9.99 0 0 1-5.007-.002 3 3 0 0 0-4.632-2.672A10.018 10.018 0 0 1 3.34 17zm5.66.196a4.993 4.993 0 0 1 2.25 2.77c.499.047 1 .048 1.499.001A4.993 4.993 0 0 1 15 17.197a4.993 4.993 0 0 1 3.525-.565c.29-.408.54-.843.748-1.298A4.993 4.993 0 0 1 18 12c0-1.26.47-2.437 1.273-3.334a8.126 8.126 0 0 0-.75-1.298A4.993 4.993 0 0 1 15 6.804a4.993 4.993 0 0 1-2.25-2.77c-.499-.047-1-.048-1.499-.001A4.993 4.993 0 0 1 9 6.803a4.993 4.993 0 0 1-3.525.565 7.99 7.99 0 0 0-.748 1.298A4.993 4.993 0 0 1 6 12c0 1.26-.47 2.437-1.273 3.334a8.126 8.126 0 0 0 .75 1.298A4.993 4.993 0 0 1 9 17.196zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M167 350A500.9 500.9 0 0 0 118.1 466.3000000000001A150 150 0 0 1 118.2 733.6500000000001A499.5000000000001 499.5000000000001 0 0 0 243.25 950.5A150 150 0 0 1 474.8 1084.2A499.5000000000001 499.5000000000001 0 0 0 725.15 1084.1A150 150 0 0 1 956.7499999999998 950.5C985.7 921 1011.3999999999997 887.45 1032.9999999999998 850C1054.6499999999999 812.55 1070.85 773.5 1081.8999999999999 733.7A150 150 0 0 1 1081.8 466.3499999999999A499.5000000000001 499.5000000000001 0 0 0 956.7499999999998 249.4999999999999A150 150 0 0 1 725.1999999999999 115.8A499.5000000000001 499.5000000000001 0 0 0 474.8499999999999 115.8999999999999A150 150 0 0 1 243.2499999999999 249.4999999999999A500.9 500.9 0 0 0 167 350zM450 340.2A249.65000000000003 249.65000000000003 0 0 0 562.5 201.6999999999999C587.45 199.3499999999999 612.5 199.3000000000001 637.45 201.6499999999999A249.65000000000003 249.65000000000003 0 0 0 750 340.1500000000001A249.65000000000003 249.65000000000003 0 0 0 926.2499999999998 368.4000000000001C940.7499999999998 388.8000000000002 953.2499999999998 410.5500000000001 963.65 433.3000000000001A249.65000000000003 249.65000000000003 0 0 0 900 600C900 663 923.5 721.8499999999999 963.65 766.7A406.3 406.3 0 0 1 926.15 831.5999999999999A249.65000000000003 249.65000000000003 0 0 0 750 859.8A249.65000000000003 249.65000000000003 0 0 0 637.5 998.3C612.55 1000.65 587.5 1000.7 562.55 998.35A249.65000000000003 249.65000000000003 0 0 0 450 859.85A249.65000000000003 249.65000000000003 0 0 0 273.75 831.5999999999999A399.5 399.5 0 0 1 236.35 766.7A249.65000000000003 249.65000000000003 0 0 0 300 600C300 537 276.5 478.15 236.35 433.3000000000001A406.3 406.3 0 0 1 273.85 368.4000000000001A249.65000000000003 249.65000000000003 0 0 0 450 340.2zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"settings-4-fill":{"path":["M0 0h24v24H0z","M5.334 4.545a9.99 9.99 0 0 1 3.542-2.048A3.993 3.993 0 0 0 12 3.999a3.993 3.993 0 0 0 3.124-1.502 9.99 9.99 0 0 1 3.542 2.048 3.993 3.993 0 0 0 .262 3.454 3.993 3.993 0 0 0 2.863 1.955 10.043 10.043 0 0 1 0 4.09c-1.16.178-2.23.86-2.863 1.955a3.993 3.993 0 0 0-.262 3.455 9.99 9.99 0 0 1-3.542 2.047A3.993 3.993 0 0 0 12 20a3.993 3.993 0 0 0-3.124 1.502 9.99 9.99 0 0 1-3.542-2.047 3.993 3.993 0 0 0-.262-3.455 3.993 3.993 0 0 0-2.863-1.954 10.043 10.043 0 0 1 0-4.091 3.993 3.993 0 0 0 2.863-1.955 3.993 3.993 0 0 0 .262-3.454zM13.5 14.597a3 3 0 1 0-3-5.196 3 3 0 0 0 3 5.196z"],"unicode":"","glyph":"M266.7 972.75A499.5000000000001 499.5000000000001 0 0 0 443.8 1075.15A199.64999999999998 199.64999999999998 0 0 1 600 1000.05A199.64999999999998 199.64999999999998 0 0 1 756.2 1075.15A499.5000000000001 499.5000000000001 0 0 0 933.3 972.75A199.64999999999998 199.64999999999998 0 0 1 946.4 800.05A199.64999999999998 199.64999999999998 0 0 1 1089.55 702.3A502.1499999999999 502.1499999999999 0 0 0 1089.55 497.8C1031.55 488.9 978.05 454.8 946.4 400.05A199.64999999999998 199.64999999999998 0 0 1 933.3 227.3A499.5000000000001 499.5000000000001 0 0 0 756.2 124.9500000000001A199.64999999999998 199.64999999999998 0 0 1 600 200A199.64999999999998 199.64999999999998 0 0 1 443.8 124.9000000000001A499.5000000000001 499.5000000000001 0 0 0 266.7 227.2500000000001A199.64999999999998 199.64999999999998 0 0 1 253.6 400.0000000000001A199.64999999999998 199.64999999999998 0 0 1 110.45 497.7000000000002A502.1499999999999 502.1499999999999 0 0 0 110.45 702.2500000000001A199.64999999999998 199.64999999999998 0 0 1 253.6 800.0000000000001A199.64999999999998 199.64999999999998 0 0 1 266.7 972.7000000000002zM675 470.15A150 150 0 1 1 525 729.95A150 150 0 0 1 675 470.15z","horizAdvX":"1200"},"settings-4-line":{"path":["M0 0h24v24H0z","M2 12c0-.865.11-1.703.316-2.504A3 3 0 0 0 4.99 4.867a9.99 9.99 0 0 1 4.335-2.505 3 3 0 0 0 5.348 0 9.99 9.99 0 0 1 4.335 2.505 3 3 0 0 0 2.675 4.63c.206.8.316 1.638.316 2.503 0 .865-.11 1.703-.316 2.504a3 3 0 0 0-2.675 4.629 9.99 9.99 0 0 1-4.335 2.505 3 3 0 0 0-5.348 0 9.99 9.99 0 0 1-4.335-2.505 3 3 0 0 0-2.675-4.63C2.11 13.704 2 12.866 2 12zm4.804 3c.63 1.091.81 2.346.564 3.524.408.29.842.541 1.297.75A4.993 4.993 0 0 1 12 18c1.26 0 2.438.471 3.335 1.274.455-.209.889-.46 1.297-.75A4.993 4.993 0 0 1 17.196 15a4.993 4.993 0 0 1 2.77-2.25 8.126 8.126 0 0 0 0-1.5A4.993 4.993 0 0 1 17.195 9a4.993 4.993 0 0 1-.564-3.524 7.989 7.989 0 0 0-1.297-.75A4.993 4.993 0 0 1 12 6a4.993 4.993 0 0 1-3.335-1.274 7.99 7.99 0 0 0-1.297.75A4.993 4.993 0 0 1 6.804 9a4.993 4.993 0 0 1-2.77 2.25 8.126 8.126 0 0 0 0 1.5A4.993 4.993 0 0 1 6.805 15zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 600C100 643.25 105.5 685.15 115.8 725.2A150 150 0 0 1 249.5 956.65A499.5000000000001 499.5000000000001 0 0 0 466.2499999999999 1081.9A150 150 0 0 1 733.6499999999999 1081.9A499.5000000000001 499.5000000000001 0 0 0 950.4 956.65A150 150 0 0 1 1084.15 725.15C1094.45 685.15 1099.95 643.25 1099.95 600C1099.95 556.75 1094.45 514.85 1084.15 474.8000000000001A150 150 0 0 1 950.4 243.35A499.5000000000001 499.5000000000001 0 0 0 733.6499999999999 118.1000000000001A150 150 0 0 1 466.2499999999999 118.1000000000001A499.5000000000001 499.5000000000001 0 0 0 249.5 243.35A150 150 0 0 1 115.75 474.85C105.5 514.8 100 556.7 100 600zM340.2 450C371.7 395.45 380.7000000000001 332.7000000000001 368.4000000000001 273.8C388.8 259.3 410.5000000000001 246.7499999999999 433.2500000000001 236.3A249.65000000000003 249.65000000000003 0 0 0 600 300C663 300 721.9 276.4500000000001 766.75 236.3C789.5 246.7499999999999 811.2 259.3 831.6 273.8A249.65000000000003 249.65000000000003 0 0 0 859.8000000000001 450A249.65000000000003 249.65000000000003 0 0 0 998.3 562.5A406.3 406.3 0 0 1 998.3 637.5A249.65000000000003 249.65000000000003 0 0 0 859.75 750A249.65000000000003 249.65000000000003 0 0 0 831.55 926.2A399.44999999999993 399.44999999999993 0 0 1 766.6999999999999 963.7A249.65000000000003 249.65000000000003 0 0 0 600 900A249.65000000000003 249.65000000000003 0 0 0 433.25 963.7A399.5 399.5 0 0 1 368.4 926.2A249.65000000000003 249.65000000000003 0 0 0 340.2 750A249.65000000000003 249.65000000000003 0 0 0 201.7000000000001 637.5A406.3 406.3 0 0 1 201.7000000000001 562.5A249.65000000000003 249.65000000000003 0 0 0 340.25 450zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"settings-5-fill":{"path":["M0 0h24v24H0z","M2.132 13.63a9.942 9.942 0 0 1 0-3.26c1.102.026 2.092-.502 2.477-1.431.385-.93.058-2.004-.74-2.763a9.942 9.942 0 0 1 2.306-2.307c.76.798 1.834 1.125 2.764.74.93-.385 1.457-1.376 1.43-2.477a9.942 9.942 0 0 1 3.262 0c-.027 1.102.501 2.092 1.43 2.477.93.385 2.004.058 2.763-.74a9.942 9.942 0 0 1 2.307 2.306c-.798.76-1.125 1.834-.74 2.764.385.93 1.376 1.457 2.477 1.43a9.942 9.942 0 0 1 0 3.262c-1.102-.027-2.092.501-2.477 1.43-.385.93-.058 2.004.74 2.763a9.942 9.942 0 0 1-2.306 2.307c-.76-.798-1.834-1.125-2.764-.74-.93.385-1.457 1.376-1.43 2.477a9.942 9.942 0 0 1-3.262 0c.027-1.102-.501-2.092-1.43-2.477-.93-.385-2.004-.058-2.763.74a9.942 9.942 0 0 1-2.307-2.306c.798-.76 1.125-1.834.74-2.764-.385-.93-1.376-1.457-2.477-1.43zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M106.6 518.5A497.1 497.1 0 0 0 106.6 681.5C161.7 680.1999999999999 211.2 706.5999999999999 230.45 753.05C249.7 799.55 233.35 853.25 193.45 891.2A497.1 497.1 0 0 0 308.75 1006.55C346.75 966.65 400.4500000000001 950.3 446.95 969.55C493.45 988.8 519.8000000000001 1038.35 518.45 1093.4A497.1 497.1 0 0 0 681.55 1093.4C680.2 1038.3 706.6 988.8 753.05 969.55C799.55 950.3 853.2500000000001 966.65 891.1999999999999 1006.55A497.1 497.1 0 0 0 1006.5499999999998 891.25C966.6499999999997 853.25 950.2999999999998 799.55 969.55 753.05C988.8 706.55 1038.35 680.1999999999999 1093.3999999999999 681.55A497.1 497.1 0 0 0 1093.3999999999999 518.45C1038.3 519.8 988.8 493.4 969.55 446.9500000000001C950.2999999999998 400.4500000000001 966.6499999999997 346.7499999999999 1006.5499999999998 308.8000000000001A497.1 497.1 0 0 0 891.2499999999998 193.4500000000002C853.2499999999997 233.3500000000002 799.5499999999998 249.7000000000002 753.0499999999998 230.4500000000001C706.5499999999998 211.2000000000001 680.1999999999998 161.6500000000001 681.5499999999998 106.6000000000001A497.1 497.1 0 0 0 518.4499999999998 106.6000000000001C519.7999999999997 161.7000000000001 493.3999999999999 211.2000000000001 446.9499999999998 230.4500000000001C400.4499999999998 249.7000000000002 346.7499999999999 233.3500000000002 308.7999999999999 193.4500000000002A497.1 497.1 0 0 0 193.4499999999999 308.7500000000003C233.3499999999998 346.7500000000004 249.6999999999998 400.4500000000002 230.4499999999998 446.9500000000002C211.1999999999998 493.4500000000002 161.6499999999998 519.8000000000002 106.5999999999998 518.4500000000002zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-5-line":{"path":["M0 0h24v24H0z","M2.213 14.06a9.945 9.945 0 0 1 0-4.12c1.11.13 2.08-.237 2.396-1.001.317-.765-.108-1.71-.986-2.403a9.945 9.945 0 0 1 2.913-2.913c.692.877 1.638 1.303 2.403.986.765-.317 1.132-1.286 1.001-2.396a9.945 9.945 0 0 1 4.12 0c-.13 1.11.237 2.08 1.001 2.396.765.317 1.71-.108 2.403-.986a9.945 9.945 0 0 1 2.913 2.913c-.877.692-1.303 1.638-.986 2.403.317.765 1.286 1.132 2.396 1.001a9.945 9.945 0 0 1 0 4.12c-1.11-.13-2.08.237-2.396 1.001-.317.765.108 1.71.986 2.403a9.945 9.945 0 0 1-2.913 2.913c-.692-.877-1.638-1.303-2.403-.986-.765.317-1.132 1.286-1.001 2.396a9.945 9.945 0 0 1-4.12 0c.13-1.11-.237-2.08-1.001-2.396-.765-.317-1.71.108-2.403.986a9.945 9.945 0 0 1-2.913-2.913c.877-.692 1.303-1.638.986-2.403-.317-.765-1.286-1.132-2.396-1.001zM4 12.21c1.1.305 2.007 1.002 2.457 2.086.449 1.085.3 2.22-.262 3.212.096.102.195.201.297.297.993-.562 2.127-.71 3.212-.262 1.084.45 1.781 1.357 2.086 2.457.14.004.28.004.42 0 .305-1.1 1.002-2.007 2.086-2.457 1.085-.449 2.22-.3 3.212.262.102-.096.201-.195.297-.297-.562-.993-.71-2.127-.262-3.212.45-1.084 1.357-1.781 2.457-2.086.004-.14.004-.28 0-.42-1.1-.305-2.007-1.002-2.457-2.086-.449-1.085-.3-2.22.262-3.212a7.935 7.935 0 0 0-.297-.297c-.993.562-2.127.71-3.212.262C13.212 6.007 12.515 5.1 12.21 4a7.935 7.935 0 0 0-.42 0c-.305 1.1-1.002 2.007-2.086 2.457-1.085.449-2.22.3-3.212-.262-.102.096-.201.195-.297.297.562.993.71 2.127.262 3.212C6.007 10.788 5.1 11.485 4 11.79c-.004.14-.004.28 0 .42zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M110.65 497A497.25 497.25 0 0 0 110.65 703C166.15 696.4999999999999 214.65 714.8499999999999 230.45 753.05C246.3 791.3 225.05 838.55 181.15 873.1999999999999A497.25 497.25 0 0 0 326.8 1018.85C361.4 974.9999999999998 408.7 953.7 446.95 969.55C485.2 985.3999999999997 503.55 1033.85 497 1089.35A497.25 497.25 0 0 0 702.9999999999999 1089.35C696.4999999999999 1033.85 714.8499999999999 985.35 753.05 969.55C791.3 953.7 838.5499999999998 974.95 873.1999999999999 1018.85A497.25 497.25 0 0 0 1018.85 873.1999999999999C975 838.5999999999999 953.7 791.3 969.55 753.05C985.3999999999997 714.8 1033.85 696.4499999999999 1089.35 703A497.25 497.25 0 0 0 1089.35 496.9999999999999C1033.85 503.4999999999999 985.35 485.1499999999999 969.55 446.95C953.7 408.7 974.95 361.45 1018.85 326.7999999999999A497.25 497.25 0 0 0 873.1999999999999 181.1499999999999C838.5999999999999 224.9999999999998 791.3 246.3 753.05 230.45C714.7999999999998 214.5999999999999 696.4499999999999 166.1499999999999 702.9999999999999 110.6499999999999A497.25 497.25 0 0 0 496.9999999999999 110.6499999999999C503.4999999999999 166.1499999999999 485.1499999999999 214.65 446.95 230.45C408.6999999999999 246.3 361.45 225.0499999999999 326.7999999999999 181.1499999999999A497.25 497.25 0 0 0 181.1499999999999 326.7999999999999C224.9999999999999 361.3999999999999 246.3 408.7 230.4499999999999 446.95C214.5999999999999 485.1999999999999 166.1499999999999 503.55 110.6499999999999 496.9999999999999zM200 589.5C255 574.25 300.35 539.4 322.85 485.1999999999999C345.3 430.9500000000001 337.85 374.2 309.75 324.5999999999999C314.55 319.4999999999999 319.5 314.5499999999999 324.6 309.7499999999999C374.25 337.8499999999999 430.95 345.2499999999999 485.2 322.8499999999999C539.4 300.3499999999999 574.2500000000001 254.9999999999999 589.5 199.9999999999998C596.5000000000001 199.7999999999997 603.5 199.7999999999997 610.5 199.9999999999998C625.75 254.9999999999999 660.6 300.3499999999999 714.8000000000001 322.8499999999999C769.05 345.3 825.8000000000001 337.8499999999999 875.4000000000001 309.7499999999999C880.5000000000001 314.5499999999999 885.4500000000002 319.4999999999999 890.2500000000001 324.5999999999999C862.1500000000001 374.2499999999998 854.7500000000001 430.9499999999998 877.1500000000001 485.1999999999998C899.6500000000001 539.3999999999999 945.0000000000002 574.2499999999999 1000.0000000000002 589.4999999999999C1000.2000000000002 596.4999999999999 1000.2000000000002 603.4999999999999 1000.0000000000002 610.4999999999999C945.0000000000002 625.7499999999999 899.6500000000001 660.5999999999999 877.1500000000001 714.8C854.7 769.0499999999998 862.1500000000001 825.8 890.2500000000001 875.3999999999999A396.75 396.75 0 0 1 875.4000000000001 890.2499999999998C825.7500000000002 862.1499999999999 769.0500000000002 854.7499999999998 714.8000000000002 877.1499999999999C660.6 899.6500000000001 625.75 945 610.5 1000A396.75 396.75 0 0 1 589.5 1000C574.2500000000001 945 539.4 899.6500000000001 485.2 877.1500000000001C430.95 854.7 374.2 862.1500000000001 324.6 890.25C319.5 885.45 314.5500000000001 880.5 309.7500000000001 875.4C337.8500000000001 825.75 345.2500000000001 769.05 322.85 714.8C300.35 660.6 255 625.75 200 610.5C199.8 603.5 199.8 596.5000000000001 200 589.5zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"settings-6-fill":{"path":["M0 0h24v24H0z","M17.5 2.474L23 12l-5.5 9.526h-11L1 12l5.5-9.526h11zM8.634 8.17l5 8.66 1.732-1-5-8.66-1.732 1z"],"unicode":"","glyph":"M875 1076.3L1150 600L875 123.7000000000001H325L50 600L325 1076.3H875zM431.7000000000001 791.5L681.7 358.5000000000001L768.3 408.5000000000001L518.3 841.5000000000001L431.7000000000001 791.5000000000001z","horizAdvX":"1200"},"settings-6-line":{"path":["M0 0h24v24H0z","M17.5 2.474L23 12l-5.5 9.526h-11L1 12l5.5-9.526h11zm-1.155 2h-8.69L3.309 12l4.346 7.526h8.69L20.691 12l-4.346-7.526zM8.634 8.17l1.732-1 5 8.66-1.732 1-5-8.66z"],"unicode":"","glyph":"M875 1076.3L1150 600L875 123.7000000000001H325L50 600L325 1076.3H875zM817.25 976.3H382.75L165.45 600L382.75 223.7000000000001H817.25L1034.55 600L817.25 976.3zM431.7000000000001 791.5L518.3 841.5L768.3 408.5L681.7 358.5000000000001L431.7000000000001 791.5000000000001z","horizAdvX":"1200"},"settings-fill":{"path":["M0 0h24v24H0z","M12 1l9.5 5.5v11L12 23l-9.5-5.5v-11L12 1zm0 14a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M600 1150L1075 875V325L600 50L125 325V875L600 1150zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-line":{"path":["M0 0h24v24H0z","M12 1l9.5 5.5v11L12 23l-9.5-5.5v-11L12 1zm0 2.311L4.5 7.653v8.694l7.5 4.342 7.5-4.342V7.653L12 3.311zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 1150L1075 875V325L600 50L125 325V875L600 1150zM600 1034.45L225 817.35V382.65L600 165.55L975 382.65V817.35L600 1034.45zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"shape-2-fill":{"path":["M0 0h24v24H0z","M2 2h5v5H2V2zm0 15h5v5H2v-5zM17 2h5v5h-5V2zm0 15h5v5h-5v-5zM8 4h8v2H8V4zM4 8h2v8H4V8zm14 0h2v8h-2V8zM8 18h8v2H8v-2z"],"unicode":"","glyph":"M100 1100H350V850H100V1100zM100 350H350V100H100V350zM850 1100H1100V850H850V1100zM850 350H1100V100H850V350zM400 1000H800V900H400V1000zM200 800H300V400H200V800zM900 800H1000V400H900V800zM400 300H800V200H400V300z","horizAdvX":"1200"},"shape-2-line":{"path":["M0 0h24v24H0z","M20 16h2v6h-6v-2H8v2H2v-6h2V8H2V2h6v2h8V2h6v6h-2v8zm-2 0V8h-2V6H8v2H6v8h2v2h8v-2h2zM4 4v2h2V4H4zm0 14v2h2v-2H4zM18 4v2h2V4h-2zm0 14v2h2v-2h-2z"],"unicode":"","glyph":"M1000 400H1100V100H800V200H400V100H100V400H200V800H100V1100H400V1000H800V1100H1100V800H1000V400zM900 400V800H800V900H400V800H300V400H400V300H800V400H900zM200 1000V900H300V1000H200zM200 300V200H300V300H200zM900 1000V900H1000V1000H900zM900 300V200H1000V300H900z","horizAdvX":"1200"},"shape-fill":{"path":["M0 0h24v24H0z","M5 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm14 0a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 14a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM5 22a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM9 4h6v2H9V4zm0 14h6v2H9v-2zM4 9h2v6H4V9zm14 0h2v6h-2V9z"],"unicode":"","glyph":"M250 800A150 150 0 1 0 250 1100A150 150 0 0 0 250 800zM950 800A150 150 0 1 0 950 1100A150 150 0 0 0 950 800zM950 100A150 150 0 1 0 950 400A150 150 0 0 0 950 100zM250 100A150 150 0 1 0 250 400A150 150 0 0 0 250 100zM450 1000H750V900H450V1000zM450 300H750V200H450V300zM200 750H300V450H200V750zM900 750H1000V450H900V750z","horizAdvX":"1200"},"shape-line":{"path":["M0 0h24v24H0z","M7.83 20A3.001 3.001 0 1 1 4 16.17V7.83A3.001 3.001 0 1 1 7.83 4h8.34A3.001 3.001 0 1 1 20 7.83v8.34A3.001 3.001 0 1 1 16.17 20H7.83zm0-2h8.34A3.008 3.008 0 0 1 18 16.17V7.83A3.008 3.008 0 0 1 16.17 6H7.83A3.008 3.008 0 0 1 6 7.83v8.34A3.008 3.008 0 0 1 7.83 18zM5 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm14 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 14a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM5 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M391.5 200A150.04999999999998 150.04999999999998 0 1 0 200 391.4999999999999V808.5A150.04999999999998 150.04999999999998 0 1 0 391.5 1000H808.5000000000001A150.04999999999998 150.04999999999998 0 1 0 1000 808.5V391.4999999999999A150.04999999999998 150.04999999999998 0 1 0 808.5000000000001 200H391.5zM391.5 300H808.5000000000001A150.4 150.4 0 0 0 900 391.4999999999999V808.5A150.4 150.4 0 0 0 808.5000000000001 900H391.5A150.4 150.4 0 0 0 300 808.5V391.4999999999999A150.4 150.4 0 0 0 391.5 300zM250 900A50 50 0 1 1 250 1000A50 50 0 0 1 250 900zM950 900A50 50 0 1 1 950 1000A50 50 0 0 1 950 900zM950 200A50 50 0 1 1 950 300A50 50 0 0 1 950 200zM250 200A50 50 0 1 1 250 300A50 50 0 0 1 250 200z","horizAdvX":"1200"},"share-box-fill":{"path":["M0 0h24v24H0z","M10 3v2H5v14h14v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7.707 4.707L12 13.414 10.586 12l5.707-5.707L13 3h8v8l-3.293-3.293z"],"unicode":"","glyph":"M500 1050V950H250V250H950V500H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H500zM885.35 814.6500000000001L600 529.3000000000001L529.3000000000001 600L814.65 885.3499999999999L650 1050H1050V650L885.35 814.6500000000001z","horizAdvX":"1200"},"share-box-line":{"path":["M0 0h24v24H0z","M10 3v2H5v14h14v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7.586 2H13V3h8v8h-2V6.414l-7 7L10.586 12l7-7z"],"unicode":"","glyph":"M500 1050V950H250V250H950V500H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H500zM879.3 950H650V1050H1050V650H950V879.3L600 529.3000000000001L529.3000000000001 600L879.3 950z","horizAdvX":"1200"},"share-circle-fill":{"path":["M0 0h24v24H0z","M11 2.05v2.012A8.001 8.001 0 0 0 12 20a8.001 8.001 0 0 0 7.938-7h2.013c-.502 5.053-4.766 9-9.951 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm7.707 4.657L12 13.414 10.586 12l6.707-6.707L14 2h8v8l-3.293-3.293z"],"unicode":"","glyph":"M550 1097.5V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400.04999999999995 400.04999999999995 0 0 1 996.9 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM935.35 864.6500000000001L600 529.3000000000001L529.3000000000001 600L864.65 935.35L700 1100H1100V700L935.35 864.6500000000001z","horizAdvX":"1200"},"share-circle-line":{"path":["M0 0h24v24H0z","M11 2.05v2.012A8.001 8.001 0 0 0 12 20a8.001 8.001 0 0 0 7.938-7h2.013c-.502 5.053-4.766 9-9.951 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm9 3.364l-8 8L10.586 12l8-8H14V2h8v8h-2V5.414z"],"unicode":"","glyph":"M550 1097.5V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400.04999999999995 400.04999999999995 0 0 1 996.9 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM1000 929.3L600 529.3000000000001L529.3000000000001 600L929.3 1000H700V1100H1100V700H1000V929.3z","horizAdvX":"1200"},"share-fill":{"path":["M0 0h24v24H0z","M13.576 17.271l-5.11-2.787a3.5 3.5 0 1 1 0-4.968l5.11-2.787a3.5 3.5 0 1 1 .958 1.755l-5.11 2.787a3.514 3.514 0 0 1 0 1.458l5.11 2.787a3.5 3.5 0 1 1-.958 1.755z"],"unicode":"","glyph":"M678.8000000000001 336.45L423.3000000000001 475.8A175 175 0 1 0 423.3000000000001 724.1999999999999L678.8000000000001 863.55A175 175 0 1 0 726.7 775.8L471.2 636.4499999999999A175.7 175.7 0 0 0 471.2 563.55L726.6999999999999 424.2A175 175 0 1 0 678.8 336.45z","horizAdvX":"1200"},"share-forward-2-fill":{"path":["M0 0h24v24H0z","M4 19h16v-5h2v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6h2v5zm8-9H9a5.992 5.992 0 0 0-4.854 2.473A8.003 8.003 0 0 1 12 6V2l8 6-8 6v-4z"],"unicode":"","glyph":"M200 250H1000V500H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V500H200V250zM600 700H450A299.6 299.6 0 0 1 207.3 576.35A400.15000000000003 400.15000000000003 0 0 0 600 900V1100L1000 800L600 500V700z","horizAdvX":"1200"},"share-forward-2-line":{"path":["M0 0h24v24H0z","M4 19h16v-5h2v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6h2v5zM16.172 7l-3.95-3.95 1.414-1.414L20 8l-6.364 6.364-1.414-1.414L16.172 9H5V7h11.172z"],"unicode":"","glyph":"M200 250H1000V500H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V500H200V250zM808.6 850L611.1 1047.5L681.8000000000001 1118.2L1000 800L681.8 481.8L611.1 552.5L808.6 750H250V850H808.6z","horizAdvX":"1200"},"share-forward-box-fill":{"path":["M0 0h24v24H0z","M9 3v2H4v14h16v-9h2v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7 2V1l7 6h-9a2 2 0 0 0-2 2v6h-2V9a4 4 0 0 1 4-4h2z"],"unicode":"","glyph":"M450 1050V950H200V250H1000V700H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H450zM800 950V1150L1150 850H700A100 100 0 0 1 600 750V450H500V750A200 200 0 0 0 700 950H800z","horizAdvX":"1200"},"share-forward-box-line":{"path":["M0 0h24v24H0z","M9 3v2H4v14h16v-9h2v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm9.95 2L16 2.05 17.414.636l5.34 5.34A.6.6 0 0 1 22.33 7H14a2 2 0 0 0-2 2v6h-2V9a4 4 0 0 1 4-4h4.95z"],"unicode":"","glyph":"M450 1050V950H200V250H1000V700H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H450zM947.5 950L800 1097.5L870.7 1168.2L1137.7 901.2A30 30 0 0 0 1116.5 850H700A100 100 0 0 1 600 750V450H500V750A200 200 0 0 0 700 950H947.5z","horizAdvX":"1200"},"share-forward-fill":{"path":["M0 0h24v24H0z","M13 14h-2a8.999 8.999 0 0 0-7.968 4.81A10.136 10.136 0 0 1 3 18C3 12.477 7.477 8 13 8V3l10 8-10 8v-5z"],"unicode":"","glyph":"M650 500H550A449.95000000000005 449.95000000000005 0 0 1 151.6 259.5000000000001A506.79999999999995 506.79999999999995 0 0 0 150 300C150 576.15 373.85 800 650 800V1050L1150 650L650 250V500z","horizAdvX":"1200"},"share-forward-line":{"path":["M0 0h24v24H0z","M13 14h-2a8.999 8.999 0 0 0-7.968 4.81A10.136 10.136 0 0 1 3 18C3 12.477 7.477 8 13 8V2.5L23.5 11 13 19.5V14zm-2-2h4v3.308L20.321 11 15 6.692V10h-2a7.982 7.982 0 0 0-6.057 2.773A10.988 10.988 0 0 1 11 12z"],"unicode":"","glyph":"M650 500H550A449.95000000000005 449.95000000000005 0 0 1 151.6 259.5000000000001A506.79999999999995 506.79999999999995 0 0 0 150 300C150 576.15 373.85 800 650 800V1075L1175 650L650 225V500zM550 600H750V434.6L1016.05 650L750 865.4V700H650A399.09999999999997 399.09999999999997 0 0 1 347.15 561.35A549.4000000000001 549.4000000000001 0 0 0 550 600z","horizAdvX":"1200"},"share-line":{"path":["M0 0h24v24H0z","M13.12 17.023l-4.199-2.29a4 4 0 1 1 0-5.465l4.2-2.29a4 4 0 1 1 .959 1.755l-4.2 2.29a4.008 4.008 0 0 1 0 1.954l4.199 2.29a4 4 0 1 1-.959 1.755zM6 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm11-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M656 348.85L446.05 463.35A200 200 0 1 0 446.05 736.5999999999999L656.05 851.0999999999999A200 200 0 1 0 703.9999999999999 763.3499999999999L493.9999999999999 648.85A200.4 200.4 0 0 0 493.9999999999999 551.15L703.9499999999999 436.65A200 200 0 1 0 656 348.9000000000001zM300 500A100 100 0 1 1 300 700A100 100 0 0 1 300 500zM850 800A100 100 0 1 1 850 1000A100 100 0 0 1 850 800zM850 200A100 100 0 1 1 850 400A100 100 0 0 1 850 200z","horizAdvX":"1200"},"shield-check-fill":{"path":["M0 0H24V24H0z","M12 1l8.217 1.826c.457.102.783.507.783.976v9.987c0 2.006-1.003 3.88-2.672 4.992L12 23l-6.328-4.219C4.002 17.668 3 15.795 3 13.79V3.802c0-.469.326-.874.783-.976L12 1zm4.452 7.222l-4.95 4.949-2.828-2.828-1.414 1.414L11.503 16l6.364-6.364-1.415-1.414z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7C1033.7 1053.6 1050 1033.35 1050 1009.9V510.5500000000001C1050 410.25 999.85 316.55 916.4 260.9500000000001L600 50L283.6 260.9500000000001C200.1 316.6 150 410.25 150 510.5V1009.9C150 1033.35 166.3 1053.6 189.15 1058.7L600 1150zM822.5999999999999 788.8999999999999L575.0999999999999 541.4499999999999L433.7 682.8499999999999L363 612.15L575.15 400L893.35 718.2L822.6000000000001 788.9000000000001z","horizAdvX":"1200"},"shield-check-line":{"path":["M0 0H24V24H0z","M12 1l8.217 1.826c.457.102.783.507.783.976v9.987c0 2.006-1.003 3.88-2.672 4.992L12 23l-6.328-4.219C4.002 17.668 3 15.795 3 13.79V3.802c0-.469.326-.874.783-.976L12 1zm0 2.049L5 4.604v9.185c0 1.337.668 2.586 1.781 3.328L12 20.597l5.219-3.48C18.332 16.375 19 15.127 19 13.79V4.604L12 3.05zm4.452 5.173l1.415 1.414L11.503 16 7.26 11.757l1.414-1.414 2.828 2.828 4.95-4.95z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7C1033.7 1053.6 1050 1033.35 1050 1009.9V510.5500000000001C1050 410.25 999.85 316.55 916.4 260.9500000000001L600 50L283.6 260.9500000000001C200.1 316.6 150 410.25 150 510.5V1009.9C150 1033.35 166.3 1053.6 189.15 1058.7L600 1150zM600 1047.55L250 969.8V510.55C250 443.7 283.4000000000001 381.25 339.05 344.15L600 170.1499999999999L860.95 344.15C916.6 381.25 950 443.65 950 510.5V969.8L600 1047.5zM822.5999999999999 788.9000000000001L893.3499999999999 718.2L575.15 400L363 612.15L433.7 682.85L575.0999999999999 541.45L822.5999999999999 788.95z","horizAdvX":"1200"},"shield-cross-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM11 10H8v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM550 700H400V600H550V450H650V600H800V700H650V850H550V700z","horizAdvX":"1200"},"shield-cross-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM11 10V7h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM550 700V850H650V700H800V600H650V450H550V600H400V700H550z","horizAdvX":"1200"},"shield-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7z","horizAdvX":"1200"},"shield-flash-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM13 10V5l-5 7h3v5l5-7h-3z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM650 700V950L400 600H550V350L800 700H650z","horizAdvX":"1200"},"shield-flash-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM13 10h3l-5 7v-5H8l5-7v5z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM650 700H800L550 350V600H400L650 950V700z","horizAdvX":"1200"},"shield-keyhole-fill":{"path":["M0 0h24v24H0z","M12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976L12 1zm0 6a2 2 0 0 0-1 3.732V15h2l.001-4.268A2 2 0 0 0 12 7z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7L600 1150zM600 850A100 100 0 0 1 550 663.4000000000001V450H650L650.05 663.4000000000001A100 100 0 0 1 600 850z","horizAdvX":"1200"},"shield-keyhole-line":{"path":["M0 0h24v24H0z","M12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976L12 1zm0 2.049L5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05zM12 7a2 2 0 0 1 1.001 3.732L13 15h-2v-4.268A2 2 0 0 1 12 7z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7L600 1150zM600 1047.55L250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5zM600 850A100 100 0 0 0 650.05 663.4000000000001L650 450H550V663.4000000000001A100 100 0 0 0 600 850z","horizAdvX":"1200"},"shield-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8z","horizAdvX":"1200"},"shield-star-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM12 13.5l2.939 1.545-.561-3.272 2.377-2.318-3.286-.478L12 6l-1.47 2.977-3.285.478 2.377 2.318-.56 3.272L12 13.5z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM600 525L746.95 447.75L718.9 611.35L837.75 727.25L673.4499999999999 751.15L600 900L526.5 751.15L362.25 727.25L481.1 611.35L453.1 447.75L600 525z","horizAdvX":"1200"},"shield-star-line":{"path":["M0 0h24v24H0z","M5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM12 13.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L12 6l1.47 2.977 3.285.478-2.377 2.318.56 3.272L12 13.5z"],"unicode":"","glyph":"M250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM600 525L453.05 447.75L481.1 611.35L362.25 727.25L526.5500000000001 751.15L600 900L673.5 751.15L837.7500000000001 727.25L718.9000000000002 611.35L746.9000000000002 447.75L600 525z","horizAdvX":"1200"},"shield-user-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM12 11a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm-4.473 5h8.946a4.5 4.5 0 0 0-8.946 0z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM600 650A125 125 0 1 1 600 900A125 125 0 0 1 600 650zM376.35 400H823.65A225 225 0 0 1 376.35 400z","horizAdvX":"1200"},"shield-user-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM12 11a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm-4.473 5a4.5 4.5 0 0 1 8.946 0H7.527z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM600 650A125 125 0 1 0 600 900A125 125 0 0 0 600 650zM376.35 400A225 225 0 0 0 823.65 400H376.35z","horizAdvX":"1200"},"ship-2-fill":{"path":["M0 0h24v24H0z","M9 4h5.446a1 1 0 0 1 .848.47L18.75 10h4.408a.5.5 0 0 1 .439.74l-3.937 7.217A4.992 4.992 0 0 1 15 16 4.992 4.992 0 0 1 11 18a4.992 4.992 0 0 1-4-2 4.992 4.992 0 0 1-4.55 1.97l-1.236-6.791A1 1 0 0 1 2.198 10H3V5a1 1 0 0 1 1-1h1V1h4v3zm-4 6h11.392l-2.5-4H5v4zM3 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 11 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 19 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 11 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 3 22H1v-2h2z"],"unicode":"","glyph":"M450 1000H722.3A50 50 0 0 0 764.7 976.5L937.5 700H1157.9A25 25 0 0 0 1179.8500000000001 663L983 302.15A249.60000000000002 249.60000000000002 0 0 0 750 400A249.60000000000002 249.60000000000002 0 0 0 550 300A249.60000000000002 249.60000000000002 0 0 0 350 400A249.60000000000002 249.60000000000002 0 0 0 122.5 301.5L60.7 641.0500000000001A50 50 0 0 0 109.9 700H150V950A50 50 0 0 0 200 1000H250V1150H450V1000zM250 700H819.6L694.6 900H250V700zM150 200A298.9 298.9 0 0 1 350 276.4A298.9 298.9 0 0 1 550 200A298.9 298.9 0 0 1 750 276.4A298.9 298.9 0 0 1 950 200H1050V100H950A398.15 398.15 0 0 0 750 153.5A398.15 398.15 0 0 0 550 100A398.15 398.15 0 0 0 350 153.5A398.15 398.15 0 0 0 150 100H50V200H150z","horizAdvX":"1200"},"ship-2-line":{"path":["M0 0h24v24H0z","M9 4h5.446a1 1 0 0 1 .848.47L18.75 10h4.408a.5.5 0 0 1 .439.74L19.637 18H19a6.01 6.01 0 0 1-1.535-.198L20.63 12H3.4l1.048 5.824A6.013 6.013 0 0 1 3 18h-.545l-1.24-6.821A1 1 0 0 1 2.197 10H3V5a1 1 0 0 1 1-1h1V1h4v3zm-4 6h11.392l-2.5-4H5v4zM3 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 11 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 19 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 11 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 3 22H1v-2h2z"],"unicode":"","glyph":"M450 1000H722.3A50 50 0 0 0 764.7 976.5L937.5 700H1157.9A25 25 0 0 0 1179.8500000000001 663L981.85 300H950A300.5 300.5 0 0 0 873.25 309.9L1031.5 600H170L222.4 308.8000000000001A300.65000000000003 300.65000000000003 0 0 0 150 300H122.75L60.75 641.05A50 50 0 0 0 109.85 700H150V950A50 50 0 0 0 200 1000H250V1150H450V1000zM250 700H819.6L694.6 900H250V700zM150 200A298.9 298.9 0 0 1 350 276.4A298.9 298.9 0 0 1 550 200A298.9 298.9 0 0 1 750 276.4A298.9 298.9 0 0 1 950 200H1050V100H950A398.15 398.15 0 0 0 750 153.5A398.15 398.15 0 0 0 550 100A398.15 398.15 0 0 0 350 153.5A398.15 398.15 0 0 0 150 100H50V200H150z","horizAdvX":"1200"},"ship-fill":{"path":["M0 0h24v24H0z","M4 10.4V4a1 1 0 0 1 1-1h5V1h4v2h5a1 1 0 0 1 1 1v6.4l1.086.326a1 1 0 0 1 .682 1.2l-1.516 6.068A4.992 4.992 0 0 1 16 16 4.992 4.992 0 0 1 12 18a4.992 4.992 0 0 1-4-2 4.992 4.992 0 0 1-4.252 1.994l-1.516-6.068a1 1 0 0 1 .682-1.2L4 10.4zm2-.6L12 8l2.754.826 1.809.543L18 9.8V5H6v4.8zM4 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 12 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 20 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 12 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 4 22H2v-2h2z"],"unicode":"","glyph":"M200 680V1000A50 50 0 0 0 250 1050H500V1150H700V1050H950A50 50 0 0 0 1000 1000V680L1054.3 663.6999999999999A50 50 0 0 0 1088.3999999999999 603.7L1012.5999999999998 300.3A249.60000000000002 249.60000000000002 0 0 0 800 400A249.60000000000002 249.60000000000002 0 0 0 600 300A249.60000000000002 249.60000000000002 0 0 0 400 400A249.60000000000002 249.60000000000002 0 0 0 187.4 300.3L111.6 603.7A50 50 0 0 0 145.7 663.6999999999999L200 680zM300 710L600 800L737.6999999999999 758.7L828.15 731.55L900 710V950H300V710zM200 200A298.9 298.9 0 0 1 400 276.4A298.9 298.9 0 0 1 600 200A298.9 298.9 0 0 1 800 276.4A298.9 298.9 0 0 1 1000 200H1100V100H1000A398.15 398.15 0 0 0 800 153.5A398.15 398.15 0 0 0 600 100A398.15 398.15 0 0 0 400 153.5A398.15 398.15 0 0 0 200 100H100V200H200z","horizAdvX":"1200"},"ship-line":{"path":["M0 0h24v24H0z","M4 10.4V4a1 1 0 0 1 1-1h5V1h4v2h5a1 1 0 0 1 1 1v6.4l1.086.326a1 1 0 0 1 .682 1.2l-1.516 6.068a4.992 4.992 0 0 1-1.902-.272l1.25-5.352L12 10l-7.6 2.37 1.25 5.351a4.992 4.992 0 0 1-1.902.273l-1.516-6.068a1 1 0 0 1 .682-1.2L4 10.4zm2-.6L12 8l6 1.8V5H6v4.8zM4 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 12 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 20 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 12 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 4 22H2v-2h2z"],"unicode":"","glyph":"M200 680V1000A50 50 0 0 0 250 1050H500V1150H700V1050H950A50 50 0 0 0 1000 1000V680L1054.3 663.6999999999999A50 50 0 0 0 1088.3999999999999 603.7L1012.5999999999998 300.3A249.60000000000002 249.60000000000002 0 0 0 917.4999999999998 313.9L979.9999999999998 581.5L600 700L220 581.5L282.5 313.9500000000001A249.60000000000002 249.60000000000002 0 0 0 187.4 300.3L111.6 603.7A50 50 0 0 0 145.7 663.6999999999999L200 680zM300 710L600 800L900 710V950H300V710zM200 200A298.9 298.9 0 0 1 400 276.4A298.9 298.9 0 0 1 600 200A298.9 298.9 0 0 1 800 276.4A298.9 298.9 0 0 1 1000 200H1100V100H1000A398.15 398.15 0 0 0 800 153.5A398.15 398.15 0 0 0 600 100A398.15 398.15 0 0 0 400 153.5A398.15 398.15 0 0 0 200 100H100V200H200z","horizAdvX":"1200"},"shirt-fill":{"path":["M0 0h24v24H0z","M7 4v7l5-2.5 5 2.5V4h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3zm5 4L7.5 3h9L12 8zm1 3.236l-1-.5-1 .5V20h2v-8.764zM15 14v2h4v-2h-4z"],"unicode":"","glyph":"M350 1000V650L600 775L850 650V1000H1000A50 50 0 0 0 1050 950V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H350zM600 800L375 1050H825L600 800zM650 638.1999999999999L600 663.1999999999999L550 638.1999999999999V200H650V638.1999999999999zM750 500V400H950V500H750z","horizAdvX":"1200"},"shirt-line":{"path":["M0 0h24v24H0z","M13 20h6v-4h-4v-2h4V6h-2v5l-4-1.6V20zm-2 0V9.4L7 11V6H5v14h6zM7 4V3h10v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3zm5 4l3.5-3h-7L12 8z"],"unicode":"","glyph":"M650 200H950V400H750V500H950V900H850V650L650 730V200zM550 200V730L350 650V900H250V200H550zM350 1000V1050H850V1000H1000A50 50 0 0 0 1050 950V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H350zM600 800L775 950H425L600 800z","horizAdvX":"1200"},"shopping-bag-2-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM9 6H7v2a5 5 0 0 0 10 0V6h-2v2a3 3 0 0 1-6 0V6z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM450 900H350V800A250 250 0 0 1 850 800V900H750V800A150 150 0 0 0 450 800V900z","horizAdvX":"1200"},"shopping-bag-2-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM9 6v2a3 3 0 0 0 6 0V6h2v2A5 5 0 0 1 7 8V6h2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM450 900V800A150 150 0 0 1 750 800V900H850V800A250 250 0 0 0 350 800V900H450z","horizAdvX":"1200"},"shopping-bag-3-fill":{"path":["M0 0h24v24H0z","M6.5 2h11a1 1 0 0 1 .8.4L21 6v15a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6l2.7-3.6a1 1 0 0 1 .8-.4zm12 4L17 4H7L5.5 6h13zM9 10H7v2a5 5 0 0 0 10 0v-2h-2v2a3 3 0 0 1-6 0v-2z"],"unicode":"","glyph":"M325 1100H875A50 50 0 0 0 915 1080L1050 900V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V900L285 1080A50 50 0 0 0 325 1100zM925 900L850 1000H350L275 900H925zM450 700H350V600A250 250 0 0 1 850 600V700H750V600A150 150 0 0 0 450 600V700z","horizAdvX":"1200"},"shopping-bag-3-line":{"path":["M0 0h24v24H0z","M6.5 2h11a1 1 0 0 1 .8.4L21 6v15a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6l2.7-3.6a1 1 0 0 1 .8-.4zM19 8H5v12h14V8zm-.5-2L17 4H7L5.5 6h13zM9 10v2a3 3 0 0 0 6 0v-2h2v2a5 5 0 0 1-10 0v-2h2z"],"unicode":"","glyph":"M325 1100H875A50 50 0 0 0 915 1080L1050 900V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V900L285 1080A50 50 0 0 0 325 1100zM950 800H250V200H950V800zM925 900L850 1000H350L275 900H925zM450 700V600A150 150 0 0 1 750 600V700H850V600A250 250 0 0 0 350 600V700H450z","horizAdvX":"1200"},"shopping-bag-fill":{"path":["M0 0h24v24H0z","M12 1a5 5 0 0 1 5 5v2h3a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3V6a5 5 0 0 1 5-5zm5 10h-2v1a1 1 0 0 0 1.993.117L17 12v-1zm-8 0H7v1a1 1 0 0 0 1.993.117L9 12v-1zm3-8a3 3 0 0 0-2.995 2.824L9 6v2h6V6a3 3 0 0 0-2.824-2.995L12 3z"],"unicode":"","glyph":"M600 1150A250 250 0 0 0 850 900V800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H350V900A250 250 0 0 0 600 1150zM850 650H750V600A50 50 0 0 1 849.65 594.15L850 600V650zM450 650H350V600A50 50 0 0 1 449.6500000000001 594.15L450 600V650zM600 1050A150 150 0 0 1 450.25 908.8L450 900V800H750V900A150 150 0 0 1 608.8 1049.75L600 1050z","horizAdvX":"1200"},"shopping-bag-line":{"path":["M0 0h24v24H0z","M7 8V6a5 5 0 1 1 10 0v2h3a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3zm0 2H5v10h14V10h-2v2h-2v-2H9v2H7v-2zm2-2h6V6a3 3 0 0 0-6 0v2z"],"unicode":"","glyph":"M350 800V900A250 250 0 1 0 850 900V800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H350zM350 700H250V200H950V700H850V600H750V700H450V600H350V700zM450 800H750V900A150 150 0 0 1 450 900V800z","horizAdvX":"1200"},"shopping-basket-2-fill":{"path":["M0 0h24v24H0z","M15.366 3.438L18.577 9H22v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h3.422l3.212-5.562 1.732 1L7.732 9h8.535l-2.633-4.562 1.732-1zM13 13h-2v4h2v-4zm-4 0H7v4h2v-4zm8 0h-2v4h2v-4z"],"unicode":"","glyph":"M768.3 1028.1L928.8500000000003 750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H271.1L431.7000000000001 1028.1L518.3 978.1L386.6 750H813.35L681.7 978.1L768.3 1028.1zM650 550H550V350H650V550zM450 550H350V350H450V550zM850 550H750V350H850V550z","horizAdvX":"1200"},"shopping-basket-2-line":{"path":["M0 0h24v24H0z","M15.366 3.438L18.577 9H22v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h3.422l3.212-5.562 1.732 1L7.732 9h8.535l-2.633-4.562 1.732-1zM18.826 11H5.173l.667 8h12.319l.667-8zM13 13v4h-2v-4h2zm-4 0v4H7v-4h2zm8 0v4h-2v-4h2z"],"unicode":"","glyph":"M768.3 1028.1L928.8500000000003 750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H271.1L431.7000000000001 1028.1L518.3 978.1L386.6 750H813.35L681.7 978.1L768.3 1028.1zM941.3 650H258.65L292 250H907.95L941.3 650zM650 550V350H550V550H650zM450 550V350H350V550H450zM850 550V350H750V550H850z","horizAdvX":"1200"},"shopping-basket-fill":{"path":["M0 0h24v24H0z","M12 2a6 6 0 0 1 6 6v1h4v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h4V8a6 6 0 0 1 6-6zm1 11h-2v4h2v-4zm-4 0H7v4h2v-4zm8 0h-2v4h2v-4zm-5-9a4 4 0 0 0-3.995 3.8L8 8v1h8V8a4 4 0 0 0-3.8-3.995L12 4z"],"unicode":"","glyph":"M600 1100A300 300 0 0 0 900 800V750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H300V800A300 300 0 0 0 600 1100zM650 550H550V350H650V550zM450 550H350V350H450V550zM850 550H750V350H850V550zM600 1000A200 200 0 0 1 400.25 810L400 800V750H800V800A200 200 0 0 1 610 999.75L600 1000z","horizAdvX":"1200"},"shopping-basket-line":{"path":["M0 0h24v24H0z","M12 2a6 6 0 0 1 6 6v1h4v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h4V8a6 6 0 0 1 6-6zm6.826 9H5.173l.667 8h12.319l.667-8zM13 13v4h-2v-4h2zm-4 0v4H7v-4h2zm8 0v4h-2v-4h2zm-5-9a4 4 0 0 0-3.995 3.8L8 8v1h8V8a4 4 0 0 0-3.8-3.995L12 4z"],"unicode":"","glyph":"M600 1100A300 300 0 0 0 900 800V750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H300V800A300 300 0 0 0 600 1100zM941.3 650H258.65L292 250H907.95L941.3 650zM650 550V350H550V550H650zM450 550V350H350V550H450zM850 550V350H750V550H850zM600 1000A200 200 0 0 1 400.25 810L400 800V750H800V800A200 200 0 0 1 610 999.75L600 1000z","horizAdvX":"1200"},"shopping-cart-2-fill":{"path":["M0 0h24v24H0z","M4 6.414L.757 3.172l1.415-1.415L5.414 5h15.242a1 1 0 0 1 .958 1.287l-2.4 8a1 1 0 0 1-.958.713H6v2h11v2H5a1 1 0 0 1-1-1V6.414zM5.5 23a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm12 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M200 879.3L37.85 1041.4L108.6 1112.15L270.7 950H1032.8A50 50 0 0 0 1080.6999999999998 885.65L960.7 485.6500000000001A50 50 0 0 0 912.8 450.0000000000001H300V350H850V250H250A50 50 0 0 0 200 300V879.3zM275 50A75 75 0 1 0 275 200A75 75 0 0 0 275 50zM875 50A75 75 0 1 0 875 200A75 75 0 0 0 875 50z","horizAdvX":"1200"},"shopping-cart-2-line":{"path":["M0 0h24v24H0z","M4 6.414L.757 3.172l1.415-1.415L5.414 5h15.242a1 1 0 0 1 .958 1.287l-2.4 8a1 1 0 0 1-.958.713H6v2h11v2H5a1 1 0 0 1-1-1V6.414zM6 7v6h11.512l1.8-6H6zm-.5 16a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm12 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M200 879.3L37.85 1041.4L108.6 1112.15L270.7 950H1032.8A50 50 0 0 0 1080.6999999999998 885.65L960.7 485.6500000000001A50 50 0 0 0 912.8 450.0000000000001H300V350H850V250H250A50 50 0 0 0 200 300V879.3zM300 850V550H875.6L965.6 850H300zM275 50A75 75 0 1 0 275 200A75 75 0 0 0 275 50zM875 50A75 75 0 1 0 875 200A75 75 0 0 0 875 50z","horizAdvX":"1200"},"shopping-cart-fill":{"path":["M0 0h24v24H0z","M6 9h13.938l.5-2H8V5h13.72a1 1 0 0 1 .97 1.243l-2.5 10a1 1 0 0 1-.97.757H5a1 1 0 0 1-1-1V4H2V2h3a1 1 0 0 1 1 1v6zm0 14a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm12 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M300 750H996.9L1021.9 850H400V950H1086A50 50 0 0 0 1134.5 887.8499999999999L1009.4999999999998 387.8499999999999A50 50 0 0 0 961 349.9999999999998H250A50 50 0 0 0 200 399.9999999999998V1000H100V1100H250A50 50 0 0 0 300 1050V750zM300 50A100 100 0 1 0 300 250A100 100 0 0 0 300 50zM900 50A100 100 0 1 0 900 250A100 100 0 0 0 900 50z","horizAdvX":"1200"},"shopping-cart-line":{"path":["M0 0h24v24H0z","M4 16V4H2V2h3a1 1 0 0 1 1 1v12h12.438l2-8H8V5h13.72a1 1 0 0 1 .97 1.243l-2.5 10a1 1 0 0 1-.97.757H5a1 1 0 0 1-1-1zm2 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm12 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M200 400V1000H100V1100H250A50 50 0 0 0 300 1050V450H921.9L1021.9 850H400V950H1086A50 50 0 0 0 1134.5 887.8499999999999L1009.4999999999998 387.8499999999999A50 50 0 0 0 961 349.9999999999998H250A50 50 0 0 0 200 399.9999999999998zM300 50A100 100 0 1 0 300 250A100 100 0 0 0 300 50zM900 50A100 100 0 1 0 900 250A100 100 0 0 0 900 50z","horizAdvX":"1200"},"showers-fill":{"path":["M0 0h24v24H0z","M15 18H9v3H7v-3.252a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001v3h-2v-3zm-4 2h2v3h-2v-3z"],"unicode":"","glyph":"M750 300H450V150H350V312.5999999999999A400 400 0 1 0 822.8999999999999 845.0999999999999A275 275 0 1 0 875 300L850 299.95V149.9500000000001H750V299.95zM550 200H650V50H550V200z","horizAdvX":"1200"},"showers-line":{"path":["M0 0h24v24H0z","M5 16.93a8 8 0 1 1 11.458-9.831A5.5 5.5 0 0 1 19 17.793v-2.13a3.5 3.5 0 1 0-4-5.612V10a6 6 0 1 0-10 4.472v2.458zM7 16h2v4H7v-4zm8 0h2v4h-2v-4zm-4 3h2v4h-2v-4z"],"unicode":"","glyph":"M250 353.5A400 400 0 1 0 822.8999999999999 845.05A275 275 0 0 0 950 310.35V416.85A175 175 0 1 1 750 697.45V700A300 300 0 1 1 250 476.4V353.5zM350 400H450V200H350V400zM750 400H850V200H750V400zM550 250H650V50H550V250z","horizAdvX":"1200"},"shuffle-fill":{"path":["M0 0h24v24H0z","M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z"],"unicode":"","glyph":"M900 305.85V400L1150 250L900 100V204.5A450 450 0 0 0 550.15 472.75L550 473L549.85 472.7A450 450 0 0 0 136.25 200H100V300H136.25A350 350 0 0 1 457.95 512.15L495.6 600L457.95 687.85A350 350 0 0 1 136.25 900H100V1000H136.25A450 450 0 0 0 549.85 727.25L550 727L550.15 727.3A450 450 0 0 0 900 995.5V1100L1150 950L900 800V894.15A350 350 0 0 1 642.0500000000001 687.85L604.4 600L642.05 512.15A350 350 0 0 1 900 305.85z","horizAdvX":"1200"},"shuffle-line":{"path":["M0 0h24v24H0z","M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z"],"unicode":"","glyph":"M900 305.85V400L1150 250L900 100V204.5A450 450 0 0 0 550.15 472.75L550 473L549.85 472.7A450 450 0 0 0 136.25 200H100V300H136.25A350 350 0 0 1 457.95 512.15L495.6 600L457.95 687.85A350 350 0 0 1 136.25 900H100V1000H136.25A450 450 0 0 0 549.85 727.25L550 727L550.15 727.3A450 450 0 0 0 900 995.5V1100L1150 950L900 800V894.15A350 350 0 0 1 642.0500000000001 687.85L604.4 600L642.05 512.15A350 350 0 0 1 900 305.85z","horizAdvX":"1200"},"shut-down-fill":{"path":["M0 0h24v24H0z","M11 2.05V12h2V2.05c5.053.501 9 4.765 9 9.95 0 5.523-4.477 10-10 10S2 17.523 2 12c0-5.185 3.947-9.449 9-9.95z"],"unicode":"","glyph":"M550 1097.5V600H650V1097.5C902.65 1072.45 1100 859.25 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5z","horizAdvX":"1200"},"shut-down-line":{"path":["M0 0h24v24H0z","M6.265 3.807l1.147 1.639a8 8 0 1 0 9.176 0l1.147-1.639A9.988 9.988 0 0 1 22 12c0 5.523-4.477 10-10 10S2 17.523 2 12a9.988 9.988 0 0 1 4.265-8.193zM11 12V2h2v10h-2z"],"unicode":"","glyph":"M313.25 1009.65L370.6 927.7A400 400 0 1 1 829.4000000000001 927.7L886.75 1009.65A499.4 499.4 0 0 0 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600A499.4 499.4 0 0 0 313.25 1009.65zM550 600V1100H650V600H550z","horizAdvX":"1200"},"side-bar-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 2v14h11V5H9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 950V250H1000V950H450z","horizAdvX":"1200"},"side-bar-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5 2H4v14h4V5zm2 0v14h10V5H10z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM400 950H200V250H400V950zM500 950V250H1000V950H500z","horizAdvX":"1200"},"signal-tower-fill":{"path":["M0 0h24v24H0z","M6.116 20.087A9.986 9.986 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.986 9.986 0 0 1-4.116 8.087l-1.015-1.739a8 8 0 1 0-9.738 0l-1.015 1.739zm2.034-3.485a6 6 0 1 1 7.7 0l-1.03-1.766a4 4 0 1 0-5.64 0l-1.03 1.766zM11 13h2l1 9h-4l1-9z"],"unicode":"","glyph":"M305.8 195.65A499.30000000000007 499.30000000000007 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.30000000000007 499.30000000000007 0 0 0 894.2 195.65L843.45 282.6A400 400 0 1 1 356.55 282.6L305.8 195.65zM407.5 369.9A300 300 0 1 0 792.4999999999999 369.9L740.9999999999999 458.1999999999999A200 200 0 1 1 459 458.1999999999999L407.5 369.9zM550 550H650L700 100H500L550 550z","horizAdvX":"1200"},"signal-tower-line":{"path":["M0 0h24v24H0z","M6.116 20.087A9.986 9.986 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.986 9.986 0 0 1-4.116 8.087l-1.015-1.739a8 8 0 1 0-9.738 0l-1.015 1.739zm2.034-3.485a6 6 0 1 1 7.7 0l-1.03-1.766a4 4 0 1 0-5.64 0l-1.03 1.766zM11 13h2v9h-2v-9z"],"unicode":"","glyph":"M305.8 195.65A499.30000000000007 499.30000000000007 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.30000000000007 499.30000000000007 0 0 0 894.2 195.65L843.45 282.6A400 400 0 1 1 356.55 282.6L305.8 195.65zM407.5 369.9A300 300 0 1 0 792.4999999999999 369.9L740.9999999999999 458.1999999999999A200 200 0 1 1 459 458.1999999999999L407.5 369.9zM550 550H650V100H550V550z","horizAdvX":"1200"},"signal-wifi-1-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392l5.108 6.324C9.698 13.256 10.818 13 12 13c1.181 0 2.303.256 3.312.716L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L434.3999999999999 514.2C484.9 537.2 540.9 550 600 550C659.0500000000001 550 715.1500000000001 537.2 765.6 514.2L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-1-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 12c-.693 0-1.367.117-2 .34l2 2.477 2-2.477c-.63-.22-1.307-.34-2-.34zm0-10c-3.028 0-5.923.842-8.42 2.392l5.108 6.324C9.698 13.256 10.818 13 12 13c1.181 0 2.303.256 3.312.716L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 450C565.35 450 531.65 444.15 500 433L600 309.15L700 433C668.5 444 634.65 450 600 450zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L434.3999999999999 514.2C484.9 537.2 540.9 550 600 550C659.0500000000001 550 715.1500000000001 537.2 765.6 514.2L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-2-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392l3.178 3.935C8.316 10.481 10.102 10 12 10c1.898 0 3.683.48 5.241 1.327L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L337.9 633.65C415.8 675.95 505.1 700 600 700C694.9 700 784.15 676 862.05 633.65L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-2-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 9c-1.42 0-2.764.33-3.959.915L12 17.817l3.958-4.902C14.764 12.329 13.42 12 12 12zm0-7c-3.028 0-5.923.842-8.42 2.392l3.178 3.935C8.316 10.481 10.102 10 12 10c1.898 0 3.683.48 5.241 1.327L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 600C529 600 461.8 583.5 402.05 554.25L600 309.15L797.9 554.25C738.1999999999999 583.55 671 600 600 600zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L337.9 633.65C415.8 675.95 505.1 700 600 700C694.9 700 784.15 676 862.05 633.65L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-3-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392l1.904 2.357C7.4 8.637 9.625 8 12 8s4.6.637 6.516 1.749L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L274.2 712.5500000000001C370 768.15 481.25 800 600 800S830.0000000000001 768.15 925.8 712.55L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-3-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 7c-1.898 0-3.683.48-5.241 1.327l5.24 6.49 5.242-6.49C15.683 10.48 13.898 10 12 10zm0-5c-3.028 0-5.923.842-8.42 2.392l1.904 2.357C7.4 8.637 9.625 8 12 8s4.6.637 6.516 1.749L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 700C505.1 700 415.85 676 337.9500000000001 633.65L599.95 309.15L862.05 633.65C784.15 676 694.9 700 600 700zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L274.2 712.5500000000001C370 768.15 481.25 800 600 800S830.0000000000001 768.15 925.8 712.55L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-error-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L22.498 8H18v5.571L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm10 16v2h-2v-2h2zm0-9v7h-2v-7h2z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L1124.9 800H900V521.45L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM1100 250V150H1000V250H1100zM1100 700V350H1000V700H1100z","horizAdvX":"1200"},"signal-wifi-error-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996l-1.257 1.556C19.306 6.331 15.808 5 12 5c-3.089 0-5.973.875-8.419 2.392L12 17.817l6-7.429v3.183L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm10 16v2h-2v-2h2zm0-9v7h-2v-7h2z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L1102.65 772.4000000000001C965.3 883.45 790.4 950 600 950C445.55 950 301.35 906.25 179.05 830.4000000000001L600 309.15L900 680.6V521.45L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM1100 250V150H1000V250H1100zM1100 700V350H1000V700H1100z","horizAdvX":"1200"},"signal-wifi-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050z","horizAdvX":"1200"},"signal-wifi-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392L12 17.817 20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L600 309.15L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-off-fill":{"path":["M0 0H24V24H0z","M2.808 1.393l17.677 17.678-1.414 1.414-3.683-3.683L12 21 .69 6.997c.914-.74 1.902-1.391 2.95-1.942L1.394 2.808l1.415-1.415zM12 3c4.284 0 8.22 1.497 11.31 3.996l-5.407 6.693L7.724 3.511C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L769.3999999999999 359.8999999999999L600 150L34.5 850.15C80.2 887.1500000000001 129.6 919.7 182 947.25L69.7 1059.6L140.45 1130.35zM600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L895.1500000000001 515.55L386.2 1024.45C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"signal-wifi-off-line":{"path":["M0 0H24V24H0z","M2.808 1.393l17.677 17.678-1.414 1.414-3.683-3.682L12 21 .69 6.997c.914-.74 1.902-1.391 2.95-1.942L1.394 2.808l1.415-1.415zm.771 5.999L12 17.817l1.967-2.437-8.835-8.836c-.532.254-1.05.536-1.552.848zM12 3c4.284 0 8.22 1.497 11.31 3.996l-5.407 6.693-1.422-1.422 3.939-4.876C17.922 5.841 15.027 5 12 5c-.873 0-1.735.07-2.58.207L7.725 3.51C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L769.3999999999999 359.8499999999998L600 150L34.5 850.15C80.2 887.1500000000001 129.6 919.7 182 947.25L69.7 1059.6L140.45 1130.35zM178.95 830.4000000000001L600 309.15L698.35 431L256.6 872.8C230 860.1 204.1 846 179 830.4zM600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L895.1500000000001 515.55L824.0500000000001 586.65L1021.0000000000002 830.45C896.1 907.95 751.3499999999999 950 600 950C556.35 950 513.25 946.5 471 939.65L386.25 1024.5C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"sim-card-2-fill":{"path":["M0 0h24v24H0z","M5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 16v-8H8v2h3v6h2zm-5-5v2h2v-2H8zm6 0v2h2v-2h-2zm0-3v2h2v-2h-2zm-6 6v2h2v-2H8zm6 0v2h2v-2h-2z"],"unicode":"","glyph":"M250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM650 300V700H400V600H550V300H650zM400 550V450H500V550H400zM700 550V450H800V550H700zM700 700V600H800V700H700zM400 400V300H500V400H400zM700 400V300H800V400H700z","horizAdvX":"1200"},"sim-card-2-line":{"path":["M0 0h24v24H0z","M6 4v16h12V7.828L14.172 4H6zM5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 8v8h-2v-6H8v-2h5zm-5 3h2v2H8v-2zm6 0h2v2h-2v-2zm0-3h2v2h-2v-2zm-6 6h2v2H8v-2zm6 0h2v2h-2v-2z"],"unicode":"","glyph":"M300 1000V200H900V808.5999999999999L708.6 1000H300zM250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM650 700V300H550V600H400V700H650zM400 550H500V450H400V550zM700 550H800V450H700V550zM700 700H800V600H700V700zM400 400H500V300H400V400zM700 400H800V300H700V400z","horizAdvX":"1200"},"sim-card-fill":{"path":["M0 0h24v24H0z","M5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm3 10v6h8v-6H8z"],"unicode":"","glyph":"M250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM400 600V300H800V600H400z","horizAdvX":"1200"},"sim-card-line":{"path":["M0 0h24v24H0z","M6 4v16h12V7.828L14.172 4H6zM5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm3 10h8v6H8v-6z"],"unicode":"","glyph":"M300 1000V200H900V808.5999999999999L708.6 1000H300zM250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM400 600H800V300H400V600z","horizAdvX":"1200"},"single-quotes-l":{"path":["M0 0h24v24H0z","M9.583 17.321C8.553 16.227 8 15 8 13.011c0-3.5 2.457-6.637 6.03-8.188l.893 1.378c-3.335 1.804-3.987 4.145-4.247 5.621.537-.278 1.24-.375 1.929-.311 1.804.167 3.226 1.648 3.226 3.489a3.5 3.5 0 0 1-3.5 3.5c-1.073 0-2.099-.49-2.748-1.179z"],"unicode":"","glyph":"M479.15 333.95C427.6500000000001 388.65 400 450 400 549.45C400 724.45 522.85 881.3 701.5 958.8500000000003L746.1500000000001 889.95C579.4000000000001 799.75 546.8000000000001 682.7 533.8000000000001 608.9000000000001C560.6500000000001 622.8000000000001 595.8000000000001 627.6500000000001 630.2500000000001 624.45C720.4500000000002 616.1 791.5500000000002 542.0500000000001 791.5500000000002 450A175 175 0 0 0 616.5500000000002 275C562.9000000000001 275 511.6000000000001 299.4999999999999 479.1500000000001 333.95z","horizAdvX":"1200"},"single-quotes-r":{"path":["M0 0h24v24H0z","M14.417 6.679C15.447 7.773 16 9 16 10.989c0 3.5-2.457 6.637-6.03 8.188l-.893-1.378c3.335-1.804 3.987-4.145 4.247-5.621-.537.278-1.24.375-1.929.311C9.591 12.322 8.17 10.841 8.17 9a3.5 3.5 0 0 1 3.5-3.5c1.073 0 2.099.49 2.748 1.179z"],"unicode":"","glyph":"M720.85 866.05C772.3499999999999 811.35 800 750 800 650.55C800 475.55 677.15 318.7 498.4999999999999 241.15L453.8499999999999 310.0500000000001C620.5999999999999 400.25 653.1999999999999 517.3 666.1999999999999 591.1C639.3499999999999 577.2 604.1999999999999 572.35 569.7499999999999 575.5500000000001C479.55 583.9000000000001 408.5 657.95 408.5 750A175 175 0 0 0 583.5 925C637.15 925 688.45 900.5 720.9 866.05z","horizAdvX":"1200"},"sip-fill":{"path":["M0 0h24v24H0z","M13.96 6.504l2.829-2.828a1 1 0 0 1 1.414 0l2.121 2.121a1 1 0 0 1 0 1.414l-2.828 2.829 1.767 1.768-1.414 1.414-7.07-7.071 1.413-1.414 1.768 1.767zM10.778 8.98l4.243 4.243L7.243 21H3v-4.243l7.778-7.778z"],"unicode":"","glyph":"M698 874.8L839.45 1016.2A50 50 0 0 0 910.15 1016.2L1016.2 910.15A50 50 0 0 0 1016.2 839.45L874.8000000000001 698L963.15 609.6L892.45 538.9L538.95 892.45L609.6 963.15L698 874.8zM538.9 751L751.0500000000001 538.8499999999999L362.1500000000001 150H150V362.1500000000001L538.9 751.0500000000001z","horizAdvX":"1200"},"sip-line":{"path":["M0 0h24v24H0z","M6.457 18.957l8.564-8.564-1.414-1.414-8.564 8.564 1.414 1.414zm5.735-11.392l-1.414-1.414 1.414-1.414 1.768 1.767 2.829-2.828a1 1 0 0 1 1.414 0l2.121 2.121a1 1 0 0 1 0 1.414l-2.828 2.829 1.767 1.768-1.414 1.414-1.414-1.414L7.243 21H3v-4.243l9.192-9.192z"],"unicode":"","glyph":"M322.85 252.15L751.0500000000001 680.3499999999999L680.35 751.05L252.1500000000001 322.85L322.85 252.15zM609.6 821.75L538.9 892.4499999999999L609.6 963.1499999999997L698 874.8L839.45 1016.2A50 50 0 0 0 910.15 1016.2L1016.2 910.1499999999997A50 50 0 0 0 1016.2 839.4499999999999L874.8000000000001 698L963.15 609.5999999999999L892.45 538.9L821.7499999999999 609.5999999999999L362.1500000000001 150H150V362.1500000000001L609.6 821.7500000000001z","horizAdvX":"1200"},"skip-back-fill":{"path":["M0 0h24v24H0z","M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333z"],"unicode":"","glyph":"M400 633.35L911.15 974.1A25 25 0 0 0 950 953.3V246.7000000000001A25 25 0 0 0 911.15 225.9000000000001L400 566.65V250A50 50 0 0 0 300 250V950A50 50 0 1 0 400 950V633.35z","horizAdvX":"1200"},"skip-back-line":{"path":["M0 0h24v24H0z","M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333zm9 4.93V7.737L10.606 12 17 16.263z"],"unicode":"","glyph":"M400 633.35L911.15 974.1A25 25 0 0 0 950 953.3V246.7000000000001A25 25 0 0 0 911.15 225.9000000000001L400 566.65V250A50 50 0 0 0 300 250V950A50 50 0 1 0 400 950V633.35zM850 386.8500000000002V813.15L530.3 600L850 386.8499999999999z","horizAdvX":"1200"},"skip-back-mini-fill":{"path":["M0 0h24v24H0z","M7 6a1 1 0 0 1 1 1v10a1 1 0 0 1-2 0V7a1 1 0 0 1 1-1zm2.079 6.408a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M350 900A50 50 0 0 0 400 850V350A50 50 0 0 0 300 350V850A50 50 0 0 0 350 900zM453.95 579.5999999999999A25 25 0 0 0 453.95 620.4L810.6 872.1999999999999A25 25 0 0 0 850 851.75V348.25A25 25 0 0 0 810.6 327.8000000000001L453.95 579.6z","horizAdvX":"1200"},"skip-back-mini-line":{"path":["M0 0h24v24H0z","M7 6a1 1 0 0 1 1 1v10a1 1 0 0 1-2 0V7a1 1 0 0 1 1-1zm8 8.14V9.86L11.968 12 15 14.14zm-5.921-1.732a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M350 900A50 50 0 0 0 400 850V350A50 50 0 0 0 300 350V850A50 50 0 0 0 350 900zM750 493V707L598.4 600L750 493zM453.95 579.5999999999999A25 25 0 0 0 453.95 620.4L810.6 872.1999999999999A25 25 0 0 0 850 851.75V348.25A25 25 0 0 0 810.6 327.8000000000001L453.95 579.6z","horizAdvX":"1200"},"skip-forward-fill":{"path":["M0 0h24v24H0z","M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333z"],"unicode":"","glyph":"M800 566.65L288.85 225.9000000000001A25 25 0 0 0 250 246.7000000000001V953.3A25 25 0 0 0 288.85 974.1L800 633.35V950A50 50 0 0 0 900 950V250A50 50 0 0 0 800 250V566.65z","horizAdvX":"1200"},"skip-forward-line":{"path":["M0 0h24v24H0z","M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333zm-9-4.93v8.526L13.394 12 7 7.737z"],"unicode":"","glyph":"M800 566.65L288.85 225.9000000000001A25 25 0 0 0 250 246.7000000000001V953.3A25 25 0 0 0 288.85 974.1L800 633.35V950A50 50 0 0 0 900 950V250A50 50 0 0 0 800 250V566.65zM350 813.15V386.8500000000002L669.7 600L350 813.15z","horizAdvX":"1200"},"skip-forward-mini-fill":{"path":["M0 0h24v24H0z","M7.788 17.444A.5.5 0 0 1 7 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M389.4000000000001 327.8000000000001A25 25 0 0 0 350 348.25V851.75A25 25 0 0 0 389.4000000000001 872.2L746.05 620.4000000000001A25 25 0 0 0 746.05 579.6L389.4 327.8000000000001zM800 850A50 50 0 0 0 900 850V350A50 50 0 1 0 800 350V850z","horizAdvX":"1200"},"skip-forward-mini-line":{"path":["M0 0h24v24H0z","M12.032 12L9 9.86v4.28L12.032 12zM7.5 17.535a.5.5 0 0 1-.5-.5V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036a.5.5 0 0 1-.288.091zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M601.6 600L450 707V493L601.6 600zM375 323.25A25 25 0 0 0 350 348.25V851.75A25 25 0 0 0 389.4000000000001 872.2L746.05 620.4000000000001A25 25 0 0 0 746.05 579.6L389.4 327.8000000000001A25 25 0 0 0 375 323.25zM800 850A50 50 0 0 0 900 850V350A50 50 0 1 0 800 350V850z","horizAdvX":"1200"},"skull-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600V411.8000000000001A100 100 0 0 0 1044.6999999999998 322.3499999999999L900 250V200A150 150 0 0 0 758.8 50.25L747.5 50A125 125 0 0 1 749.7 66.5L750 75V100A100 100 0 0 1 657.5 199.75L650 200H550A100 100 0 0 1 450.25 107.5L450 100V75C450 66.4500000000001 450.85 58.0500000000002 452.5000000000001 50H450A150 150 0 0 0 300 200V250L155.3 322.3499999999999A100 100 0 0 0 100 411.85V600C100 876.15 323.85 1100 600 1100zM400 650A100 100 0 1 1 400 450A100 100 0 0 1 400 650zM800 650A100 100 0 1 1 800 450A100 100 0 0 1 800 650z","horizAdvX":"1200"},"skull-2-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm0 2a8 8 0 0 0-7.996 7.75L4 12v3.764l4 2v1.591l.075-.084a3.992 3.992 0 0 1 2.723-1.266L11 18l2.073.001.223.01c.999.074 1.89.51 2.55 1.177l.154.167v-1.591l4-2V12a8 8 0 0 0-8-8zm-4 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm8 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600V411.8000000000001A100 100 0 0 0 1044.6999999999998 322.3499999999999L900 250V200A150 150 0 0 0 758.8 50.25L747.5 50A125 125 0 0 1 749.7 66.5L750 75V100A100 100 0 0 1 657.5 199.75L650 200H550A100 100 0 0 1 450.25 107.5L450 100V75C450 66.4500000000001 450.85 58.0500000000002 452.5000000000001 50H450A150 150 0 0 0 300 200V250L155.3 322.3499999999999A100 100 0 0 0 100 411.85V600C100 876.15 323.85 1100 600 1100zM600 1000A400 400 0 0 1 200.2 612.5L200 600V411.8000000000001L400 311.8000000000001V232.25L403.75 236.45A199.60000000000002 199.60000000000002 0 0 0 539.8999999999999 299.7499999999999L550 300L653.65 299.95L664.8000000000001 299.4499999999998C714.7500000000001 295.7499999999998 759.3000000000001 273.9499999999998 792.3 240.5999999999999L800 232.2499999999998V311.7999999999999L1000 411.7999999999999V600A400 400 0 0 1 600 1000zM400 650A100 100 0 1 0 400 450A100 100 0 0 0 400 650zM800 650A100 100 0 1 0 800 450A100 100 0 0 0 800 650z","horizAdvX":"1200"},"skull-fill":{"path":["M0 0h24v24H0z","M18 18v3a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-3H3a1 1 0 0 1-1-1v-5C2 6.477 6.477 2 12 2s10 4.477 10 10v5a1 1 0 0 1-1 1h-3zM7.5 14a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M900 300V150A50 50 0 0 0 850 100H350A50 50 0 0 0 300 150V300H150A50 50 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V350A50 50 0 0 0 1050 300H900zM375 500A75 75 0 1 1 375 650A75 75 0 0 1 375 500zM825 500A75 75 0 1 1 825 650A75 75 0 0 1 825 500z","horizAdvX":"1200"},"skull-line":{"path":["M0 0h24v24H0z","M20 12a8 8 0 1 0-16 0v4h3a1 1 0 0 1 1 1v3h8v-3a1 1 0 0 1 1-1h3v-4zm-2 6v3a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-3H3a1 1 0 0 1-1-1v-5C2 6.477 6.477 2 12 2s10 4.477 10 10v5a1 1 0 0 1-1 1h-3zM7.5 14a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M1000 600A400 400 0 1 1 200 600V400H350A50 50 0 0 0 400 350V200H800V350A50 50 0 0 0 850 400H1000V600zM900 300V150A50 50 0 0 0 850 100H350A50 50 0 0 0 300 150V300H150A50 50 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V350A50 50 0 0 0 1050 300H900zM375 500A75 75 0 1 0 375 650A75 75 0 0 0 375 500zM825 500A75 75 0 1 0 825 650A75 75 0 0 0 825 500z","horizAdvX":"1200"},"skype-fill":{"path":["M0 0h24v24H0z","M13.31 20.4a8.5 8.5 0 0 1-9.71-9.71 5.25 5.25 0 0 1 7.09-7.09 8.5 8.5 0 0 1 9.71 9.71 5.25 5.25 0 0 1-7.09 7.09zm-1.258-3.244h-.04c2.872 0 4.303-1.386 4.303-3.243 0-1.198-.551-2.471-2.726-2.958l-1.983-.44c-.755-.172-1.622-.4-1.622-1.115s.62-1.213 1.724-1.213c2.23 0 2.027 1.528 3.131 1.528.576 0 1.093-.342 1.093-.93 0-1.37-2.197-2.4-4.056-2.4-2.021 0-4.173.859-4.173 3.144 0 1.098.394 2.27 2.56 2.813l2.689.671c.816.202 1.018.659 1.018 1.072 0 .687-.684 1.358-1.918 1.358-2.417 0-2.078-1.857-3.374-1.857-.58 0-1.003.398-1.003.971 0 1.114 1.352 2.598 4.377 2.598z"],"unicode":"","glyph":"M665.5 180.0000000000001A424.99999999999994 424.99999999999994 0 0 0 180 665.5000000000001A262.5 262.5 0 0 0 534.5 1020.0000000000002A424.99999999999994 424.99999999999994 0 0 0 1019.9999999999998 534.5000000000001A262.5 262.5 0 0 0 665.4999999999999 180.0000000000001zM602.6 342.2000000000001H600.6C744.2 342.2000000000001 815.7500000000001 411.5 815.7500000000001 504.35C815.7500000000001 564.2500000000001 788.2 627.9000000000001 679.4500000000002 652.2500000000001L580.3000000000001 674.2500000000001C542.5500000000001 682.8500000000001 499.2000000000001 694.25 499.2000000000001 730S530.2 790.6500000000001 585.4000000000001 790.6500000000001C696.9000000000001 790.6500000000001 686.7500000000001 714.2500000000001 741.9500000000002 714.2500000000001C770.7500000000001 714.2500000000001 796.6000000000001 731.3500000000001 796.6000000000001 760.75C796.6000000000001 829.2500000000001 686.7500000000001 880.7500000000001 593.8000000000001 880.7500000000001C492.75 880.7500000000001 385.1500000000001 837.8000000000002 385.1500000000001 723.5500000000001C385.1500000000001 668.6500000000001 404.8500000000001 610.0500000000001 513.1500000000001 582.9000000000001L647.6000000000001 549.3500000000001C688.4000000000001 539.2500000000001 698.5000000000001 516.4000000000001 698.5000000000001 495.7500000000001C698.5000000000001 461.4000000000002 664.3000000000002 427.8500000000002 602.6000000000001 427.8500000000002C481.7500000000002 427.8500000000002 498.7000000000002 520.7 433.9000000000002 520.7C404.9000000000002 520.7 383.7500000000001 500.8000000000001 383.7500000000001 472.1500000000001C383.7500000000001 416.4500000000001 451.3500000000001 342.2500000000001 602.6000000000001 342.2500000000001z","horizAdvX":"1200"},"skype-line":{"path":["M0 0h24v24H0z","M13.004 18.423a2 2 0 0 1 1.237.207 3.25 3.25 0 0 0 4.389-4.389 2 2 0 0 1-.207-1.237 6.5 6.5 0 0 0-7.427-7.427 2 2 0 0 1-1.237-.207A3.25 3.25 0 0 0 5.37 9.76a2 2 0 0 1 .207 1.237 6.5 6.5 0 0 0 7.427 7.427zM12 20.5a8.5 8.5 0 0 1-8.4-9.81 5.25 5.25 0 0 1 7.09-7.09 8.5 8.5 0 0 1 9.71 9.71 5.25 5.25 0 0 1-7.09 7.09c-.427.066-.865.1-1.31.1zm.053-3.5C9.25 17 8 15.62 8 14.586c0-.532.39-.902.928-.902 1.2 0 .887 1.725 3.125 1.725 1.143 0 1.776-.624 1.776-1.261 0-.384-.188-.808-.943-.996l-2.49-.623c-2.006-.504-2.37-1.592-2.37-2.612C8.026 7.797 10.018 7 11.89 7c1.72 0 3.756.956 3.756 2.228 0 .545-.48.863-1.012.863-1.023 0-.835-1.418-2.9-1.418-1.023 0-1.596.462-1.596 1.126 0 .663.803.876 1.502 1.035l1.836.409C15.49 11.695 16 12.876 16 13.989 16 15.713 14.675 17 12.015 17h.038z"],"unicode":"","glyph":"M650.1999999999999 278.8500000000002A100 100 0 0 0 712.05 268.5A162.5 162.5 0 0 1 931.5 487.95A100 100 0 0 0 921.1499999999997 549.8000000000001A325 325 0 0 1 549.8 921.15A100 100 0 0 0 487.9499999999999 931.5A162.5 162.5 0 0 1 268.5 712A100 100 0 0 0 278.85 650.15A325 325 0 0 1 650.1999999999999 278.8000000000001zM600 175A424.99999999999994 424.99999999999994 0 0 0 180 665.5A262.5 262.5 0 0 0 534.5 1020A424.99999999999994 424.99999999999994 0 0 0 1019.9999999999998 534.5A262.5 262.5 0 0 0 665.4999999999999 180.0000000000001C644.15 176.7000000000002 622.2499999999999 175 599.9999999999999 175zM602.6500000000001 350C462.5 350 400 419 400 470.6999999999999C400 497.3 419.5 515.8 446.4000000000001 515.8C506.4 515.8 490.7500000000001 429.55 602.6500000000001 429.55C659.8000000000001 429.55 691.45 460.75 691.45 492.5999999999999C691.45 511.8 682.05 532.9999999999999 644.3000000000001 542.4L519.8000000000001 573.55C419.5 598.7499999999999 401.3 653.15 401.3 704.1499999999999C401.3 810.1500000000001 500.9 850 594.5 850C680.5000000000001 850 782.3000000000001 802.2 782.3000000000001 738.6C782.3000000000001 711.35 758.3000000000001 695.45 731.7 695.45C680.5500000000001 695.45 689.9499999999999 766.35 586.7 766.35C535.5500000000001 766.35 506.9 743.25 506.9 710.05C506.9 676.9 547.0500000000001 666.25 582 658.3000000000001L673.8000000000001 637.85C774.5 615.25 800 556.2 800 500.55C800 414.35 733.75 350 600.75 350H602.6500000000001z","horizAdvX":"1200"},"slack-fill":{"path":["M0 0h24v24H0z","M6.527 14.514A1.973 1.973 0 0 1 4.56 16.48a1.973 1.973 0 0 1-1.967-1.967c0-1.083.884-1.968 1.967-1.968h1.968v1.968zm.992 0c0-1.083.884-1.968 1.967-1.968 1.083 0 1.968.885 1.968 1.968v4.927a1.973 1.973 0 0 1-1.968 1.967 1.973 1.973 0 0 1-1.967-1.967v-4.927zm1.967-7.987A1.973 1.973 0 0 1 7.52 4.56c0-1.083.884-1.967 1.967-1.967 1.083 0 1.968.884 1.968 1.967v1.968H9.486zm0 .992c1.083 0 1.968.884 1.968 1.967a1.973 1.973 0 0 1-1.968 1.968H4.56a1.973 1.973 0 0 1-1.967-1.968c0-1.083.884-1.967 1.967-1.967h4.927zm7.987 1.967c0-1.083.885-1.967 1.968-1.967s1.967.884 1.967 1.967a1.973 1.973 0 0 1-1.967 1.968h-1.968V9.486zm-.992 0a1.973 1.973 0 0 1-1.967 1.968 1.973 1.973 0 0 1-1.968-1.968V4.56c0-1.083.885-1.967 1.968-1.967s1.967.884 1.967 1.967v4.927zm-1.967 7.987c1.083 0 1.967.885 1.967 1.968a1.973 1.973 0 0 1-1.967 1.967 1.973 1.973 0 0 1-1.968-1.967v-1.968h1.968zm0-.992a1.973 1.973 0 0 1-1.968-1.967c0-1.083.885-1.968 1.968-1.968h4.927c1.083 0 1.967.885 1.967 1.968a1.973 1.973 0 0 1-1.967 1.967h-4.927z"],"unicode":"","glyph":"M326.35 474.3000000000001A98.65 98.65 0 0 0 228 376A98.65 98.65 0 0 0 129.65 474.35C129.65 528.5 173.85 572.75 228 572.75H326.4V474.35zM375.95 474.3000000000001C375.95 528.45 420.1500000000001 572.7 474.3 572.7C528.45 572.7 572.7 528.45 572.7 474.3000000000001V227.9500000000001A98.65 98.65 0 0 0 474.3 129.6000000000001A98.65 98.65 0 0 0 375.95 227.9500000000001V474.3000000000001zM474.3 873.6500000000001A98.65 98.65 0 0 0 376 972C376 1026.15 420.2 1070.35 474.35 1070.35C528.5 1070.35 572.75 1026.15 572.75 972V873.6H474.3zM474.3 824.05C528.45 824.05 572.7 779.8500000000001 572.7 725.7A98.65 98.65 0 0 0 474.3 627.3000000000001H228A98.65 98.65 0 0 0 129.65 725.7C129.65 779.8500000000001 173.85 824.0500000000001 228 824.0500000000001H474.3499999999999zM873.65 725.7C873.65 779.8500000000001 917.9 824.0500000000001 972.05 824.0500000000001S1070.3999999999999 779.8500000000001 1070.3999999999999 725.7A98.65 98.65 0 0 0 972.05 627.3000000000001H873.65V725.7zM824.05 725.7A98.65 98.65 0 0 0 725.6999999999999 627.3000000000001A98.65 98.65 0 0 0 627.2999999999998 725.7V972C627.2999999999998 1026.15 671.5499999999998 1070.35 725.6999999999999 1070.35S824.05 1026.15 824.05 972V725.6500000000001zM725.6999999999999 326.35C779.8499999999999 326.35 824.05 282.1 824.05 227.9500000000001A98.65 98.65 0 0 0 725.6999999999999 129.6000000000001A98.65 98.65 0 0 0 627.2999999999998 227.9500000000001V326.35H725.6999999999999zM725.6999999999999 375.9500000000001A98.65 98.65 0 0 0 627.2999999999998 474.3000000000001C627.2999999999998 528.4500000000002 671.5499999999998 572.7000000000002 725.6999999999999 572.7000000000002H972.0499999999998C1026.1999999999996 572.7000000000002 1070.3999999999996 528.4500000000002 1070.3999999999996 474.3000000000001A98.65 98.65 0 0 0 972.0499999999998 375.9500000000001H725.6999999999998z","horizAdvX":"1200"},"slack-line":{"path":["M0 0h24v24H0z","M14.5 3A1.5 1.5 0 0 1 16 4.5v5a1.5 1.5 0 0 1-3 0v-5A1.5 1.5 0 0 1 14.5 3zm-10 10H6v1.5A1.5 1.5 0 1 1 4.5 13zm8.5 5h1.5a1.5 1.5 0 1 1-1.5 1.5V18zm1.5-5h5a1.5 1.5 0 0 1 0 3h-5a1.5 1.5 0 0 1 0-3zm5-5a1.5 1.5 0 0 1 0 3H18V9.5A1.5 1.5 0 0 1 19.5 8zm-15 0h5a1.5 1.5 0 0 1 0 3h-5a1.5 1.5 0 0 1 0-3zm5-5A1.5 1.5 0 0 1 11 4.5V6H9.5a1.5 1.5 0 0 1 0-3zm0 10a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-3 0v-5A1.5 1.5 0 0 1 9.5 13z"],"unicode":"","glyph":"M725 1050A75 75 0 0 0 800 975V725A75 75 0 0 0 650 725V975A75 75 0 0 0 725 1050zM225 550H300V475A75 75 0 1 0 225 550zM650 300H725A75 75 0 1 0 650 225V300zM725 550H975A75 75 0 0 0 975 400H725A75 75 0 0 0 725 550zM975 800A75 75 0 0 0 975 650H900V725A75 75 0 0 0 975 800zM225 800H475A75 75 0 0 0 475 650H225A75 75 0 0 0 225 800zM475 1050A75 75 0 0 0 550 975V900H475A75 75 0 0 0 475 1050zM475 550A75 75 0 0 0 550 475V225A75 75 0 0 0 400 225V475A75 75 0 0 0 475 550z","horizAdvX":"1200"},"slice-fill":{"path":["M0 0h24v24H0z","M13.768 12.232l2.121 2.122c-4.596 4.596-10.253 6.01-13.788 5.303L17.657 4.1l2.121 2.12-6.01 6.011z"],"unicode":"","glyph":"M688.4000000000001 588.4000000000001L794.45 482.3000000000001C564.6500000000001 252.5 281.8000000000001 181.8000000000002 105.05 217.15L882.85 995L988.9 889L688.4 588.45z","horizAdvX":"1200"},"slice-line":{"path":["M0 0h24v24H0z","M15.69 12.918l1.769 1.768c-6.01 6.01-10.96 6.01-15.203 4.596L17.812 3.726l3.536 3.535-5.657 5.657zm-2.828 0l5.657-5.657-.707-.707L6.314 18.052c2.732.107 5.358-.907 8.267-3.416l-1.719-1.718z"],"unicode":"","glyph":"M784.5 554.1L872.9499999999999 465.7C572.45 165.2000000000001 324.95 165.2000000000001 112.8 235.9L890.6 1013.7L1067.4 836.95L784.5500000000002 554.1zM643.1 554.1L925.95 836.95L890.5999999999999 872.3L315.7 297.4C452.3 292.0500000000001 583.6 342.75 729.05 468.2L643.1 554.1z","horizAdvX":"1200"},"slideshow-2-fill":{"path":["M0 0h24v24H0z","M13 17v3h5v2H6v-2h5v-3H4a1 1 0 0 1-1-1V4H2V2h20v2h-1v12a1 1 0 0 1-1 1h-7zM10 6v7l5-3.5L10 6z"],"unicode":"","glyph":"M650 350V200H900V100H300V200H550V350H200A50 50 0 0 0 150 400V1000H100V1100H1100V1000H1050V400A50 50 0 0 0 1000 350H650zM500 900V550L750 725L500 900z","horizAdvX":"1200"},"slideshow-2-line":{"path":["M0 0h24v24H0z","M13 17v3h5v2H6v-2h5v-3H4a1 1 0 0 1-1-1V4H2V2h20v2h-1v12a1 1 0 0 1-1 1h-7zm-8-2h14V4H5v11zm5-9l5 3.5-5 3.5V6z"],"unicode":"","glyph":"M650 350V200H900V100H300V200H550V350H200A50 50 0 0 0 150 400V1000H100V1100H1100V1000H1050V400A50 50 0 0 0 1000 350H650zM250 450H950V1000H250V450zM500 900L750 725L500 550V900z","horizAdvX":"1200"},"slideshow-3-fill":{"path":["M0 0h24v24H0z","M13 18v2h4v2H7v-2h4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-8zM10 7.5v6l5-3-5-3z"],"unicode":"","glyph":"M650 300V200H850V100H350V200H550V300H150A50 50 0 0 0 100 350V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V350A50 50 0 0 0 1050 300H650zM500 825V525L750 675L500 825z","horizAdvX":"1200"},"slideshow-3-line":{"path":["M0 0h24v24H0z","M13 18v2h4v2H7v-2h4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-8zM4 5v11h16V5H4zm6 2.5l5 3-5 3v-6z"],"unicode":"","glyph":"M650 300V200H850V100H350V200H550V300H150A50 50 0 0 0 100 350V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V350A50 50 0 0 0 1050 300H650zM200 950V400H1000V950H200zM500 825L750 675L500 525V825z","horizAdvX":"1200"},"slideshow-4-fill":{"path":["M0 0h24v24H0z","M8.17 3A3.001 3.001 0 0 1 11 1h2c1.306 0 2.417.835 2.83 2H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5.17zM10 9v6l5-3-5-3zm1-6a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2z"],"unicode":"","glyph":"M408.5 1050A150.04999999999998 150.04999999999998 0 0 0 550 1150H650C715.3000000000001 1150 770.85 1108.25 791.5 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H408.5zM500 750V450L750 600L500 750zM550 1050A50 50 0 0 1 550 950H650A50 50 0 0 1 650 1050H550z","horizAdvX":"1200"},"slideshow-4-line":{"path":["M0 0h24v24H0z","M8.17 3A3.001 3.001 0 0 1 11 1h2c1.306 0 2.417.835 2.83 2H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5.17zM4 5v14h16V5h-4.17A3.001 3.001 0 0 1 13 7h-2a3.001 3.001 0 0 1-2.83-2H4zm7-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm-1 6l5 3-5 3V9z"],"unicode":"","glyph":"M408.5 1050A150.04999999999998 150.04999999999998 0 0 0 550 1150H650C715.3000000000001 1150 770.85 1108.25 791.5 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H408.5zM200 950V250H1000V950H791.5A150.04999999999998 150.04999999999998 0 0 0 650 850H550A150.04999999999998 150.04999999999998 0 0 0 408.5 950H200zM550 1050A50 50 0 0 1 550 950H650A50 50 0 0 1 650 1050H550zM500 750L750 600L500 450V750z","horizAdvX":"1200"},"slideshow-fill":{"path":["M0 0h24v24H0z","M13 21v2h-2v-2H3a1 1 0 0 1-1-1V6h20v14a1 1 0 0 1-1 1h-8zM8 10a3 3 0 1 0 3 3H8v-3zm5 0v2h6v-2h-6zm0 4v2h6v-2h-6zM2 3h20v2H2V3z"],"unicode":"","glyph":"M650 150V50H550V150H150A50 50 0 0 0 100 200V900H1100V200A50 50 0 0 0 1050 150H650zM400 700A150 150 0 1 1 550 550H400V700zM650 700V600H950V700H650zM650 500V400H950V500H650zM100 1050H1100V950H100V1050z","horizAdvX":"1200"},"slideshow-line":{"path":["M0 0h24v24H0z","M13 21v2h-2v-2H3a1 1 0 0 1-1-1V6h20v14a1 1 0 0 1-1 1h-8zm-9-2h16V8H4v11zm9-9h5v2h-5v-2zm0 4h5v2h-5v-2zm-4-4v3h3a3 3 0 1 1-3-3zM2 3h20v2H2V3z"],"unicode":"","glyph":"M650 150V50H550V150H150A50 50 0 0 0 100 200V900H1100V200A50 50 0 0 0 1050 150H650zM200 250H1000V800H200V250zM650 700H900V600H650V700zM650 500H900V400H650V500zM450 700V550H600A150 150 0 1 0 450 700zM100 1050H1100V950H100V1050z","horizAdvX":"1200"},"smartphone-fill":{"path":["M0 0h24v24H0z","M6 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm6 15a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M300 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100zM600 350A50 50 0 1 1 600 250A50 50 0 0 1 600 350z","horizAdvX":"1200"},"smartphone-line":{"path":["M0 0h24v24H0z","M7 4v16h10V4H7zM6 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm6 15a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"],"unicode":"","glyph":"M350 1000V200H850V1000H350zM300 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100zM600 350A50 50 0 1 0 600 250A50 50 0 0 0 600 350z","horizAdvX":"1200"},"snapchat-fill":{"path":["M0 0h24v24H0z","M11.871 21.764c-1.19 0-1.984-.561-2.693-1.056-.503-.357-.976-.696-1.533-.79a4.568 4.568 0 0 0-.803-.066c-.472 0-.847.071-1.114.125-.17.03-.312.058-.424.058-.116 0-.263-.032-.32-.228-.05-.16-.081-.312-.112-.459-.08-.37-.147-.597-.286-.62-1.489-.227-2.38-.57-2.554-.976-.014-.044-.031-.09-.031-.125-.01-.125.08-.227.205-.25 1.181-.196 2.242-.824 3.138-1.858.696-.803 1.035-1.579 1.066-1.663 0-.01.009-.01.009-.01.17-.351.205-.65.102-.895-.191-.46-.825-.656-1.257-.79-.111-.03-.205-.066-.285-.093-.37-.147-.986-.46-.905-.892.058-.312.472-.535.811-.535.094 0 .174.014.24.05.38.173.723.262 1.017.262.366 0 .54-.138.584-.182a24.93 24.93 0 0 0-.035-.593c-.09-1.365-.192-3.059.24-4.03 1.298-2.907 4.053-3.14 4.869-3.14L12.156 3h.05c.815 0 3.57.227 4.868 3.139.437.971.33 2.67.24 4.03l-.008.067c-.01.182-.023.356-.032.535.045.035.205.169.535.173.286-.008.598-.102.954-.263a.804.804 0 0 1 .312-.066c.125 0 .25.03.357.066h.009c.299.112.495.321.495.54.009.205-.152.517-.914.825-.08.03-.174.067-.285.093-.424.13-1.057.335-1.258.79-.111.24-.066.548.103.895 0 .01.009.01.009.01.049.124 1.337 3.049 4.204 3.526a.246.246 0 0 1 .205.25c0 .044-.009.089-.031.129-.174.41-1.057.744-2.555.976-.138.022-.205.25-.285.62a6.831 6.831 0 0 1-.112.459c-.044.147-.138.227-.298.227h-.023c-.102 0-.24-.013-.423-.049a5.285 5.285 0 0 0-1.115-.116c-.263 0-.535.023-.802.067-.553.09-1.03.433-1.534.79-.717.49-1.515 1.051-2.697 1.051h-.254z"],"unicode":"","glyph":"M593.5500000000001 111.8C534.0500000000001 111.8 494.35 139.8500000000001 458.9 164.6000000000001C433.7500000000001 182.4500000000001 410.1000000000001 199.4000000000002 382.2500000000001 204.1A228.39999999999998 228.39999999999998 0 0 1 342.1000000000001 207.4C318.5000000000001 207.4 299.7500000000001 203.8499999999999 286.4000000000001 201.15C277.9000000000001 199.65 270.8000000000001 198.25 265.2000000000001 198.25C259.4000000000001 198.25 252.0500000000001 199.85 249.2000000000001 209.6500000000001C246.7000000000001 217.6500000000001 245.1500000000001 225.2500000000001 243.6000000000001 232.6C239.6 251.1000000000002 236.2500000000001 262.4500000000002 229.3000000000001 263.6000000000002C154.8500000000001 274.9500000000002 110.3000000000001 292.1000000000002 101.6000000000001 312.4000000000001C100.9000000000001 314.6000000000002 100.0500000000001 316.9000000000001 100.0500000000001 318.6500000000001C99.5500000000001 324.9000000000001 104.0500000000001 330.0000000000001 110.3000000000001 331.1500000000001C169.3500000000001 340.9500000000002 222.4000000000001 372.3500000000002 267.2000000000001 424.0500000000001C302.0000000000001 464.2000000000002 318.9500000000001 503.0000000000001 320.5000000000001 507.2C320.5000000000001 507.7 320.9500000000001 507.7 320.9500000000001 507.7C329.4500000000001 525.2500000000001 331.2000000000001 540.2 326.0500000000001 552.45C316.5000000000001 575.4500000000002 284.8000000000001 585.2500000000001 263.2000000000001 591.9500000000002C257.6500000000001 593.45 252.9500000000001 595.2500000000001 248.9500000000001 596.6000000000001C230.4500000000001 603.9500000000002 199.6500000000001 619.6000000000001 203.7000000000001 641.2C206.6000000000001 656.8000000000001 227.3000000000001 667.95 244.2500000000001 667.95C248.9500000000001 667.95 252.9500000000001 667.2500000000001 256.2500000000001 665.45C275.2500000000001 656.8000000000001 292.4000000000001 652.35 307.1000000000001 652.35C325.4000000000001 652.35 334.1000000000001 659.25 336.3000000000001 661.45A1246.5000000000002 1246.5000000000002 0 0 1 334.55 691.1C330.0500000000001 759.3500000000001 324.9500000000001 844.0500000000001 346.5500000000001 892.6000000000001C411.4500000000001 1037.95 549.2 1049.6000000000001 590 1049.6000000000001L607.8000000000001 1050H610.3000000000001C651.0500000000001 1050 788.8000000000001 1038.65 853.7 893.05C875.5500000000002 844.5 870.2 759.55 865.7 691.55L865.3000000000001 688.2C864.8 679.0999999999999 864.1500000000001 670.4 863.7 661.4499999999999C865.9500000000002 659.6999999999999 873.9499999999999 652.9999999999999 890.45 652.8C904.7500000000002 653.1999999999999 920.35 657.9 938.15 665.9499999999999A40.2 40.2 0 0 0 953.7500000000002 669.25C960.0000000000002 669.25 966.2500000000002 667.75 971.6000000000003 665.9499999999999H972.0500000000002C987.0000000000002 660.3499999999999 996.8000000000002 649.9 996.8000000000002 638.95C997.2500000000002 628.7 989.2000000000002 613.1 951.1000000000003 597.7C947.1000000000003 596.2 942.4 594.35 936.8500000000003 593.0500000000001C915.65 586.55 884.0000000000001 576.3 873.9500000000002 553.5500000000001C868.4000000000001 541.5500000000001 870.6500000000002 526.1500000000001 879.1000000000003 508.8000000000001C879.1000000000003 508.3000000000001 879.5500000000002 508.3000000000001 879.5500000000002 508.3000000000001C882.0000000000002 502.1000000000001 946.4000000000002 355.85 1089.7500000000002 332A12.3 12.3 0 0 0 1100.0000000000002 319.5C1100.0000000000002 317.3 1099.5500000000002 315.0500000000001 1098.4500000000003 313.05C1089.7500000000002 292.55 1045.6000000000004 275.85 970.7000000000002 264.25C963.8000000000002 263.1500000000001 960.4500000000004 251.75 956.4500000000002 233.25A341.55 341.55 0 0 0 950.8500000000004 210.3C948.6500000000004 202.9500000000001 943.9500000000002 198.9499999999999 935.9500000000004 198.9499999999999H934.8000000000004C929.7000000000004 198.9499999999999 922.8000000000006 199.6 913.6500000000005 201.4A264.25 264.25 0 0 1 857.9000000000005 207.1999999999999C844.7500000000005 207.1999999999999 831.1500000000005 206.05 817.8000000000006 203.8499999999999C790.1500000000005 199.3499999999999 766.3000000000006 182.1999999999999 741.1000000000006 164.3499999999999C705.2500000000006 139.8500000000001 665.3500000000006 111.8 606.2500000000006 111.8H593.5500000000005z","horizAdvX":"1200"},"snapchat-line":{"path":["M0 0h24v24H0z","M15.396 10.58l.02-.249a32.392 32.392 0 0 0 .083-2.326c0-.87-.294-1.486-.914-2.063-.66-.614-1.459-.942-2.59-.942-1.137 0-1.958.335-2.51.888-.696.695-.958 1.218-.958 2.1 0 .521.061 1.994.096 2.618a2 2 0 0 1-.469 1.402c.055.098.105.204.153.317.3.771.198 1.543-.152 2.271-.392.818-.731 1.393-1.41 2.154a7.973 7.973 0 0 1-.642.643 1.999 1.999 0 0 1 .412.565 5.886 5.886 0 0 1 1.585.074c.81.146 1.324.434 2.194 1.061l.016.011.213.152c.619.44.877.546 1.473.546.609 0 .91-.121 1.523-.552l.207-.146c.876-.632 1.407-.928 2.231-1.076a6.664 6.664 0 0 1 1.559-.074 1.999 1.999 0 0 1 .417-.567 8.409 8.409 0 0 1-.616-.616 9.235 9.235 0 0 1-1.447-2.16c-.363-.749-.47-1.54-.137-2.321.04-.098.085-.19.132-.276a2 2 0 0 1-.469-1.435zm-10.315-.102c.419 0 .6.305 1.219.305.157 0 .26-.035.326-.066-.009-.156-.099-1.986-.099-2.729 0-1.688.72-2.69 1.543-3.514C8.893 3.65 10.175 3 11.996 3c1.82 0 3.066.653 3.952 1.478.886.825 1.551 1.93 1.551 3.528 0 1.555-.099 2.594-.108 2.716a.59.59 0 0 0 .279.065c.63 0 .63-.31 1.33-.31.685 0 .983.57.983.823 0 .621-.833.967-1.33 1.126-.369.117-.931.291-1.075.635-.074.174-.043.4.092.678.003.008 1.26 2.883 3.93 3.326.235.035.391.241.391.483 0 .332-.37.617-.726.782-.443.2-1.091.37-1.952.505-.043.078-.134.485-.235.887-.135.542-.801.366-.991.326A4.997 4.997 0 0 0 16.291 20c-.482.087-.913.378-1.395.726-.713.504-1.465 1.076-2.9 1.076-1.436 0-2.144-.572-2.857-1.076-.482-.348-.905-.637-1.396-.726-.898-.163-1.57.036-1.795.057-.226.02-.842.244-.996-.327-.045-.166-.191-.808-.235-.895-.856-.135-1.508-.313-1.952-.513-.365-.165-.726-.443-.726-.779 0-.235.158-.44.391-.482 2.644-.483 3.766-3.005 3.922-3.33.132-.276.161-.5.091-.679-.143-.343-.704-.513-1.073-.635-.105-.034-1.336-.373-1.336-1.117 0-.24.205-.573.582-.73a1.36 1.36 0 0 1 .465-.092z"],"unicode":"","glyph":"M769.8000000000001 671L770.8000000000001 683.45A1619.6000000000001 1619.6000000000001 0 0 1 774.95 799.75C774.95 843.25 760.25 874.05 729.25 902.9C696.25 933.6000000000003 656.3000000000001 950.0000000000002 599.75 950.0000000000002C542.9 950.0000000000002 501.85 933.2500000000002 474.2500000000001 905.6000000000003C439.4500000000001 870.8500000000001 426.35 844.7 426.35 800.6000000000001C426.35 774.5500000000001 429.4000000000001 700.9000000000001 431.1500000000001 669.7A100 100 0 0 0 407.7000000000001 599.6000000000001C410.4500000000001 594.7 412.9500000000001 589.4000000000001 415.3500000000002 583.7500000000001C430.3500000000002 545.2 425.2500000000001 506.6000000000001 407.7500000000002 470.2000000000002C388.1500000000002 429.3000000000002 371.2000000000002 400.5500000000002 337.2500000000001 362.5000000000003A398.65 398.65 0 0 0 305.1500000000002 330.3500000000002A99.95000000000002 99.95000000000002 0 0 0 325.7500000000001 302.1000000000002A294.3 294.3 0 0 0 405.0000000000001 298.4C445.5000000000001 291.0999999999999 471.2 276.7 514.7 245.35L515.5 244.8000000000001L526.15 237.2000000000001C557.1 215.1999999999999 570 209.9 599.8000000000001 209.9C630.25 209.9 645.3000000000001 215.9499999999999 675.95 237.5L686.3000000000001 244.8000000000001C730.1 276.4000000000001 756.6500000000001 291.2000000000001 797.85 298.6A333.2 333.2 0 0 0 875.8000000000001 302.3000000000002A99.95000000000002 99.95000000000002 0 0 0 896.6500000000002 330.6500000000002A420.45000000000005 420.45000000000005 0 0 0 865.8500000000001 361.4500000000002A461.75 461.75 0 0 0 793.5000000000002 469.4500000000002C775.3500000000003 506.9000000000002 770.0000000000002 546.45 786.6500000000002 585.5000000000001C788.6500000000002 590.4000000000002 790.9000000000002 595.0000000000001 793.2500000000002 599.3000000000001A100 100 0 0 0 769.8000000000002 671.0500000000002zM254.0500000000001 676.1C275.0000000000001 676.1 284.0500000000001 660.85 315.0000000000001 660.85C322.8500000000001 660.85 328.0000000000001 662.6 331.3000000000001 664.1500000000001C330.85 671.95 326.35 763.45 326.35 800.6000000000001C326.35 885 362.35 935.1000000000003 403.5 976.3C444.6500000000001 1017.5 508.7500000000001 1050 599.8000000000001 1050C690.8000000000001 1050 753.1 1017.35 797.4 976.1C841.6999999999999 934.85 874.9499999999999 879.6 874.9499999999999 799.7C874.9499999999999 721.95 869.9999999999999 670 869.55 663.9A29.500000000000004 29.500000000000004 0 0 1 883.4999999999999 660.65C914.9999999999998 660.65 914.9999999999998 676.15 950 676.15C984.2499999999998 676.15 999.15 647.65 999.15 635C999.15 603.9499999999999 957.5000000000002 586.65 932.65 578.7C914.2 572.8499999999999 886.0999999999999 564.15 878.9 546.95C875.1999999999999 538.25 876.75 526.9499999999999 883.4999999999999 513.05C883.6499999999999 512.65 946.5 368.9 1080 346.7499999999999C1091.7499999999998 344.9999999999999 1099.55 334.7 1099.55 322.5999999999999C1099.55 305.9999999999999 1081.05 291.7499999999999 1063.25 283.4999999999999C1041.1 273.5 1008.7 264.9999999999999 965.65 258.25C963.5000000000002 254.35 958.95 234 953.9 213.9C947.15 186.7999999999999 913.8500000000003 195.5999999999999 904.3500000000003 197.5999999999999A249.85 249.85 0 0 1 814.5500000000001 200C790.45 195.65 768.9 181.1 744.8000000000001 163.7000000000001C709.1500000000001 138.5 671.5500000000001 109.9000000000001 599.8000000000001 109.9000000000001C528 109.9000000000001 492.6 138.5 456.95 163.7000000000001C432.85 181.1 411.7 195.5500000000001 387.15 200C342.25 208.15 308.65 198.1999999999999 297.4 197.1500000000001C286.1 196.1500000000001 255.3 184.9500000000001 247.6 213.5000000000001C245.35 221.8000000000002 238.05 253.9000000000001 235.85 258.2500000000001C193.05 265.0000000000003 160.45 273.9000000000001 138.25 283.9000000000002C120 292.1500000000002 101.95 306.0500000000003 101.95 322.8500000000003C101.95 334.6000000000002 109.85 344.8500000000003 121.5 346.9500000000002C253.7 371.1000000000003 309.8 497.2000000000002 317.6 513.4500000000002C324.2 527.2500000000002 325.65 538.4500000000002 322.1500000000001 547.4000000000002C315.0000000000001 564.5500000000002 286.9500000000001 573.0500000000002 268.5000000000001 579.1500000000002C263.25 580.8500000000003 201.7000000000001 597.8000000000002 201.7000000000001 635.0000000000001C201.7000000000001 647.0000000000001 211.9500000000001 663.6500000000002 230.8000000000001 671.5000000000001A68.00000000000001 68.00000000000001 0 0 0 254.05 676.1000000000001z","horizAdvX":"1200"},"snowy-fill":{"path":["M0 0h24v24H0z","M6.027 17.43A8.003 8.003 0 0 1 9 2a8.003 8.003 0 0 1 7.458 5.099A5.5 5.5 0 0 1 18 17.978a6 6 0 0 0-11.973-.549zM13 16.267l1.964-1.134 1 1.732L14 18l1.964 1.134-1 1.732L13 19.732V22h-2v-2.268l-1.964 1.134-1-1.732L10 18l-1.964-1.134 1-1.732L11 16.268V14h2v2.268z"],"unicode":"","glyph":"M301.35 328.5A400.15000000000003 400.15000000000003 0 0 0 450 1100A400.15000000000003 400.15000000000003 0 0 0 822.8999999999999 845.05A275 275 0 0 0 900 301.0999999999999A300 300 0 0 1 301.35 328.55zM650 386.65L748.2 443.35L798.2 356.7500000000001L700 300L798.2 243.3L748.2 156.7000000000001L650 213.4000000000001V100H550V213.4000000000001L451.8 156.7000000000001L401.8 243.3L500 300L401.8 356.7000000000001L451.8 443.3L550 386.5999999999999V500H650V386.5999999999999z","horizAdvX":"1200"},"snowy-line":{"path":["M0 0h24v24H0z","M13 16.268l1.964-1.134 1 1.732L14 18l1.964 1.134-1 1.732L13 19.732V22h-2v-2.268l-1.964 1.134-1-1.732L10 18l-1.964-1.134 1-1.732L11 16.268V14h2v2.268zM17 18v-2h.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-8 5.659v2.089a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001z"],"unicode":"","glyph":"M650 386.5999999999999L748.2 443.3L798.2 356.7000000000001L700 300L798.2 243.3L748.2 156.7000000000001L650 213.4000000000001V100H550V213.4000000000001L451.8 156.7000000000001L401.8 243.3L500 300L401.8 356.7000000000001L451.8 443.3L550 386.5999999999999V500H650V386.5999999999999zM850 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 350 417.0500000000001V312.6000000000002A400 400 0 1 0 822.8999999999999 845.1000000000001A275 275 0 1 0 875 300L850 299.95z","horizAdvX":"1200"},"sort-asc":{"path":["M0 0H24V24H0z","M19 3l4 5h-3v12h-2V8h-3l4-5zm-5 15v2H3v-2h11zm0-7v2H3v-2h11zm-2-7v2H3V4h9z"],"unicode":"","glyph":"M950 1050L1150 800H1000V200H900V800H750L950 1050zM700 300V200H150V300H700zM700 650V550H150V650H700zM600 1000V900H150V1000H600z","horizAdvX":"1200"},"sort-desc":{"path":["M0 0H24V24H0z","M20 4v12h3l-4 5-4-5h3V4h2zm-8 14v2H3v-2h9zm2-7v2H3v-2h11zm0-7v2H3V4h11z"],"unicode":"","glyph":"M1000 1000V400H1150L950 150L750 400H900V1000H1000zM600 300V200H150V300H600zM700 650V550H150V650H700zM700 1000V900H150V1000H700z","horizAdvX":"1200"},"sound-module-fill":{"path":["M0 0h24v24H0z","M21 18v3h-2v-3h-2v-3h6v3h-2zM5 18v3H3v-3H1v-3h6v3H5zm6-12V3h2v3h2v3H9V6h2zm0 5h2v10h-2V11zm-8 2V3h2v10H3zm16 0V3h2v10h-2z"],"unicode":"","glyph":"M1050 300V150H950V300H850V450H1150V300H1050zM250 300V150H150V300H50V450H350V300H250zM550 900V1050H650V900H750V750H450V900H550zM550 650H650V150H550V650zM150 550V1050H250V550H150zM950 550V1050H1050V550H950z","horizAdvX":"1200"},"sound-module-line":{"path":["M0 0h24v24H0z","M21 18v3h-2v-3h-2v-2h6v2h-2zM5 18v3H3v-3H1v-2h6v2H5zm6-12V3h2v3h2v2H9V6h2zm0 4h2v11h-2V10zm-8 4V3h2v11H3zm16 0V3h2v11h-2z"],"unicode":"","glyph":"M1050 300V150H950V300H850V400H1150V300H1050zM250 300V150H150V300H50V400H350V300H250zM550 900V1050H650V900H750V800H450V900H550zM550 700H650V150H550V700zM150 500V1050H250V500H150zM950 500V1050H1050V500H950z","horizAdvX":"1200"},"soundcloud-fill":{"path":["M0 0h24v24H0z","M10.464 8.596c.265 0 .48 2.106.48 4.704l-.001.351c-.019 2.434-.226 4.353-.479 4.353-.256 0-.465-1.965-.48-4.44v-.352c.005-2.558.218-4.616.48-4.616zm-1.664.96c.259 0 .47 1.8.48 4.054v.34c-.01 2.254-.221 4.054-.48 4.054-.255 0-.464-1.755-.48-3.97v-.34l.002-.34c.025-2.133.23-3.798.478-3.798zm-1.664 0c.255 0 .464 1.755.48 3.97v.34l-.002.34c-.025 2.133-.23 3.798-.478 3.798-.259 0-.47-1.8-.48-4.054v-.34c.01-2.254.221-4.054.48-4.054zm-1.664.576c.265 0 .48 1.762.48 3.936l-.002.335c-.02 2.017-.227 3.601-.478 3.601-.262 0-.474-1.717-.48-3.852v-.168c.006-2.135.218-3.852.48-3.852zM3.808 11.86c.265 0 .48 1.375.48 3.072v.158c-.013 1.623-.223 2.914-.48 2.914-.265 0-.48-1.375-.48-3.072v-.158c.013-1.623.223-2.914.48-2.914zm10.784-4.8c2.58 0 4.72 1.886 5.118 4.354a3.36 3.36 0 1 1 .993 6.589l-.063.001h-8.16a.768.768 0 0 1-.768-.768V7.933a5.16 5.16 0 0 1 2.88-.873zM2.144 11.668c.265 0 .48 1.332.48 2.976v.156c-.014 1.57-.223 2.82-.48 2.82-.26 0-.473-1.29-.48-2.898v-.078c0-1.644.215-2.976.48-2.976zm-1.664.96c.265 0 .48.946.48 2.112v.131c-.016 1.105-.225 1.981-.48 1.981-.265 0-.48-.946-.48-2.112v-.131c.016-1.105.225-1.981.48-1.981z"],"unicode":"","glyph":"M523.2 770.2C536.45 770.2 547.2 664.9 547.2 535L547.1500000000001 517.45C546.2 395.75 535.85 299.8000000000001 523.2000000000002 299.8000000000001C510.4000000000001 299.8000000000001 499.9500000000001 398.0500000000001 499.2000000000001 521.8000000000002V539.4000000000002C499.4500000000001 667.3000000000002 510.1000000000001 770.2000000000002 523.2000000000002 770.2000000000002zM440.0000000000001 722.1999999999999C452.95 722.1999999999999 463.5000000000001 632.1999999999999 464.0000000000001 519.4999999999999V502.5C463.5000000000001 389.8 452.95 299.8 440.0000000000001 299.8C427.25 299.8 416.8 387.5499999999999 416 498.3V515.3L416.1 532.3C417.3500000000001 638.95 427.6000000000001 722.1999999999999 440.0000000000001 722.1999999999999zM356.8000000000001 722.1999999999999C369.5500000000001 722.1999999999999 380.0000000000001 634.45 380.8000000000001 523.6999999999999V506.6999999999999L380.7000000000001 489.6999999999999C379.4500000000001 383.0499999999999 369.2000000000001 299.8 356.8000000000001 299.8C343.8500000000001 299.8 333.3000000000002 389.8 332.8000000000002 502.5V519.4999999999999C333.3000000000002 632.1999999999999 343.8500000000002 722.1999999999999 356.8000000000002 722.1999999999999zM273.6000000000001 693.3999999999999C286.85 693.3999999999999 297.6000000000001 605.3 297.6000000000001 496.5999999999999L297.5000000000001 479.8499999999999C296.5000000000001 378.9999999999999 286.1500000000001 299.8 273.6000000000002 299.8C260.5000000000001 299.8 249.9000000000001 385.6499999999999 249.6000000000002 492.4V500.8C249.9000000000002 607.55 260.5000000000001 693.3999999999999 273.6000000000002 693.3999999999999zM190.4 607C203.65 607 214.4 538.25 214.4 453.4000000000001V445.5000000000001C213.75 364.3500000000002 203.25 299.8000000000001 190.4 299.8000000000001C177.15 299.8000000000001 166.4 368.5500000000001 166.4 453.4000000000001V461.3000000000001C167.05 542.45 177.55 607 190.4 607zM729.6 847C858.6 847 965.6 752.7 985.5 629.3000000000001A168 168 0 1 0 1035.1499999999999 299.85L1032 299.8H624A38.400000000000006 38.400000000000006 0 0 0 585.6 338.2V803.35A258 258 0 0 0 729.5999999999999 847zM107.2 616.6C120.45 616.6 131.2 550 131.2 467.8000000000001V460C130.5 381.5000000000001 120.05 319.0000000000001 107.2 319.0000000000001C94.2 319.0000000000001 83.55 383.5000000000001 83.2 463.9000000000001V467.8000000000001C83.2 550.0000000000001 93.95 616.6 107.2 616.6zM24 568.6C37.25 568.6 48 521.3 48 463V456.4499999999999C47.2 401.2 36.75 357.4 24 357.4C10.75 357.4 0 404.7 0 463V469.55C0.8 524.8000000000001 11.25 568.6 24 568.6z","horizAdvX":"1200"},"soundcloud-line":{"path":["M0 0h24v24H0z","M4 10a1 1 0 0 1 1 1v7a1 1 0 0 1-2 0v-7a1 1 0 0 1 1-1zm3 1a1 1 0 0 1 1 1v6a1 1 0 0 1-2 0v-6a1 1 0 0 1 1-1zm3-4a1 1 0 0 1 1 1v10a1 1 0 0 1-2 0V8a1 1 0 0 1 1-1zm5-1a6 6 0 0 1 5.996 5.775l.003.26a3.5 3.5 0 0 1-.307 6.96L20.5 19h-3.501a1 1 0 0 1-.117-1.993L17 17h3.447l.138-.002a1.5 1.5 0 0 0 .267-2.957l-.135-.026-1.77-.252.053-1.787-.004-.176A4 4 0 0 0 15.2 8.005L15 8c-.268 0-.531.026-.788.077L14 8.126V18a1 1 0 0 1-.883.993L13 19a1 1 0 0 1-1-1l-.001-11.197A5.972 5.972 0 0 1 15 6zM1 12a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0v-4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M200 700A50 50 0 0 0 250 650V300A50 50 0 0 0 150 300V650A50 50 0 0 0 200 700zM350 650A50 50 0 0 0 400 600V300A50 50 0 0 0 300 300V600A50 50 0 0 0 350 650zM500 850A50 50 0 0 0 550 800V300A50 50 0 0 0 450 300V800A50 50 0 0 0 500 850zM750 900A300 300 0 0 0 1049.8000000000002 611.25L1049.95 598.25A175 175 0 0 0 1034.6000000000001 250.25L1025 250H849.9499999999999A50 50 0 0 0 844.0999999999999 349.65L850 350H1022.35L1029.25 350.0999999999999A75 75 0 0 1 1042.6 497.9499999999999L1035.85 499.25L947.35 511.85L950 601.2L949.8 610A200 200 0 0 1 760 799.75L750 800C736.5999999999999 800 723.4499999999999 798.7 710.6 796.15L700 793.7V300A50 50 0 0 0 655.85 250.35L650 250A50 50 0 0 0 600 300L599.95 859.8499999999999A298.6 298.6 0 0 0 750 900zM50 600A50 50 0 0 0 100 550V350A50 50 0 0 0 0 350V550A50 50 0 0 0 50 600z","horizAdvX":"1200"},"space-ship-fill":{"path":["M0 0h24v24H0z","M2.88 18.054a35.897 35.897 0 0 1 8.531-16.32.8.8 0 0 1 1.178 0c.166.18.304.332.413.455a35.897 35.897 0 0 1 8.118 15.865c-2.141.451-4.34.747-6.584.874l-2.089 4.178a.5.5 0 0 1-.894 0l-2.089-4.178a44.019 44.019 0 0 1-6.584-.874zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M144 297.3000000000001A1794.8500000000001 1794.8500000000001 0 0 0 570.5500000000001 1113.3000000000002A40.00000000000001 40.00000000000001 0 0 0 629.4500000000002 1113.3000000000002C637.7500000000001 1104.3000000000002 644.6500000000001 1096.7 650.1000000000001 1090.5500000000002A1794.8500000000001 1794.8500000000001 0 0 0 1056.0000000000002 297.3000000000001C948.9500000000002 274.75 839.0000000000002 259.9500000000001 726.8000000000003 253.6000000000002L622.3500000000003 44.7A25 25 0 0 0 577.6500000000002 44.7L473.2000000000002 253.6000000000002A2200.9500000000003 2200.9500000000003 0 0 0 144.0000000000002 297.3000000000001zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"space-ship-line":{"path":["M0 0h24v24H0z","M2.88 18.054a35.897 35.897 0 0 1 8.531-16.32.8.8 0 0 1 1.178 0c.166.18.304.332.413.455a35.897 35.897 0 0 1 8.118 15.865c-2.141.451-4.34.747-6.584.874l-2.089 4.178a.5.5 0 0 1-.894 0l-2.089-4.178a44.019 44.019 0 0 1-6.584-.874zm6.698-1.123l1.157.066L12 19.527l1.265-2.53 1.157-.066a42.137 42.137 0 0 0 4.227-.454A33.913 33.913 0 0 0 12 4.09a33.913 33.913 0 0 0-6.649 12.387c1.395.222 2.805.374 4.227.454zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M144 297.3000000000001A1794.8500000000001 1794.8500000000001 0 0 0 570.5500000000001 1113.3000000000002A40.00000000000001 40.00000000000001 0 0 0 629.4500000000002 1113.3000000000002C637.7500000000001 1104.3000000000002 644.6500000000001 1096.7 650.1000000000001 1090.5500000000002A1794.8500000000001 1794.8500000000001 0 0 0 1056.0000000000002 297.3000000000001C948.9500000000002 274.75 839.0000000000002 259.9500000000001 726.8000000000003 253.6000000000002L622.3500000000003 44.7A25 25 0 0 0 577.6500000000002 44.7L473.2000000000002 253.6000000000002A2200.9500000000003 2200.9500000000003 0 0 0 144.0000000000002 297.3000000000001zM478.9 353.4500000000002L536.75 350.1500000000002L600 223.65L663.25 350.15L721.1 353.45A2106.85 2106.85 0 0 1 932.45 376.15A1695.6499999999996 1695.6499999999996 0 0 1 600 995.5A1695.6499999999996 1695.6499999999996 0 0 1 267.55 376.15C337.3 365.05 407.8 357.4500000000001 478.9 353.45zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"space":{"path":["M0 0h24v24H0z","M4 9v4h16V9h2v5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V9h2z"],"unicode":"","glyph":"M200 750V550H1000V750H1100V500A50 50 0 0 0 1050 450H150A50 50 0 0 0 100 500V750H200z","horizAdvX":"1200"},"spam-2-fill":{"path":["M0 0h24v24H0z","M16.218 2.5l5.683 5.682v8.036l-5.683 5.683H8.182l-5.683-5.683V8.182l5.683-5.683h8.036zM11 15v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M810.9 1075L1095.05 790.9V389.1L810.9 104.9500000000001H409.1L124.95 389.1V790.9L409.1 1075.05H810.9zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"spam-2-line":{"path":["M0 0h24v24H0z","M15.936 2.5L21.5 8.067v7.87L15.936 21.5h-7.87L2.5 15.936v-7.87L8.066 2.5h7.87zm-.829 2H8.894L4.501 8.895v6.213l4.393 4.394h6.213l4.394-4.394V8.894l-4.394-4.393zM11 15h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M796.8 1075L1075 796.65V403.15L796.8 125H403.3L125 403.2000000000001V796.7L403.3 1075H796.8zM755.3499999999999 975H444.7L225.05 755.25V444.6L444.7 224.8999999999999H755.3499999999999L975.0499999999998 444.5999999999999V755.3L755.3499999999999 974.95zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"spam-3-fill":{"path":["M0 0h24v24H0z","M15.936 2.5L21.5 8.067v7.87L15.936 21.5h-7.87L2.5 15.936v-7.87L8.066 2.5h7.87zM8 11v2h8v-2H8z"],"unicode":"","glyph":"M796.8 1075L1075 796.65V403.15L796.8 125H403.3L125 403.2000000000001V796.7L403.3 1075H796.8zM400 650V550H800V650H400z","horizAdvX":"1200"},"spam-3-line":{"path":["M0 0h24v24H0z","M15.936 2.5L21.5 8.067v7.87L15.936 21.5h-7.87L2.5 15.936v-7.87L8.066 2.5h7.87zm-.829 2H8.894L4.501 8.895v6.213l4.393 4.394h6.213l4.394-4.394V8.894l-4.394-4.393zM8 11h8v2H8v-2z"],"unicode":"","glyph":"M796.8 1075L1075 796.65V403.15L796.8 125H403.3L125 403.2000000000001V796.7L403.3 1075H796.8zM755.3499999999999 975H444.7L225.05 755.25V444.6L444.7 224.8999999999999H755.3499999999999L975.0499999999998 444.5999999999999V755.3L755.3499999999999 974.95zM400 650H800V550H400V650z","horizAdvX":"1200"},"spam-fill":{"path":["M0 0h24v24H0z","M17.5 2.5L23 12l-5.5 9.5h-11L1 12l5.5-9.5h11zM11 15v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M875 1075L1150 600L875 125H325L50 600L325 1075H875zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"spam-line":{"path":["M0 0h24v24H0z","M17.5 2.5L23 12l-5.5 9.5h-11L1 12l5.5-9.5h11zm-1.153 2H7.653L3.311 12l4.342 7.5h8.694l4.342-7.5-4.342-7.5zM11 15h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M875 1075L1150 600L875 125H325L50 600L325 1075H875zM817.35 975H382.65L165.55 600L382.65 225H817.35L1034.45 600L817.35 975zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"speaker-2-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 14a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0 2a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0-5a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350zM600 250A350 350 0 1 1 600 950A350 350 0 0 1 600 250zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"speaker-2-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 13a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-4.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400zM600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM600 525A75 75 0 1 0 600 675A75 75 0 0 0 600 525z","horizAdvX":"1200"},"speaker-3-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 13a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0 2a6 6 0 1 0 0-12 6 6 0 0 0 0 12zM6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm12 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM6 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm6-5.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400zM600 300A300 300 0 1 1 600 900A300 300 0 0 1 600 300zM300 850A50 50 0 1 1 300 950A50 50 0 0 1 300 850zM900 850A50 50 0 1 1 900 950A50 50 0 0 1 900 850zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250zM300 250A50 50 0 1 1 300 350A50 50 0 0 1 300 250zM600 525A75 75 0 1 1 600 675A75 75 0 0 1 600 525z","horizAdvX":"1200"},"speaker-3-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm10 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 10a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM7 18a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm5-3a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-4a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM350 800A50 50 0 1 0 350 900A50 50 0 0 0 350 800zM850 800A50 50 0 1 0 850 900A50 50 0 0 0 850 800zM850 300A50 50 0 1 0 850 400A50 50 0 0 0 850 300zM350 300A50 50 0 1 0 350 400A50 50 0 0 0 350 300zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350zM600 550A50 50 0 1 0 600 650A50 50 0 0 0 600 550z","horizAdvX":"1200"},"speaker-fill":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 18a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0-12a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm0 10a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM600 200A250 250 0 1 1 600 700A250 250 0 0 1 600 200zM600 800A75 75 0 1 1 600 950A75 75 0 0 1 600 800zM600 300A150 150 0 1 0 600 600A150 150 0 0 0 600 300z","horizAdvX":"1200"},"speaker-line":{"path":["M0 0h24v24H0z","M5 4v16h14V4H5zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 15a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-10.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 1000V200H950V1000H250zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM600 350A125 125 0 1 1 600 600A125 125 0 0 1 600 350zM600 250A225 225 0 1 0 600 700A225 225 0 0 0 600 250zM600 775A75 75 0 1 0 600 925A75 75 0 0 0 600 775z","horizAdvX":"1200"},"spectrum-fill":{"path":["M0 0h24v24H0z","M13.2 2.006C21.24 2.093 22 3.25 22 12l-.006 1.2C21.907 21.24 20.75 22 12 22l-1.2-.006c-7.658-.083-8.711-1.136-8.794-8.795L2 11.691l.006-.89c.085-7.85 1.19-8.76 9.382-8.8l1.811.005zM8.25 7h-.583a.667.667 0 0 0-.66.568L7 7.667v3.666c0 .335.247.612.568.66l.099.007h.583a3.75 3.75 0 0 1 3.745 3.55l.005.2v.583c0 .335.247.612.568.66l.099.007h3.666a.667.667 0 0 0 .66-.568l.007-.099v-.583a8.75 8.75 0 0 0-8.492-8.746L8.25 7z"],"unicode":"","glyph":"M660 1099.7C1062 1095.35 1100 1037.5 1100 600L1099.7 540C1095.35 138 1037.5 100 600 100L540 100.3C157.1 104.4499999999998 104.45 157.0999999999999 100.3 540.05L100 615.4499999999999L100.3 659.95C104.55 1052.45 159.8 1097.95 569.4 1099.95L659.95 1099.7zM412.5 850H383.35A33.349999999999994 33.349999999999994 0 0 1 350.35 821.6L350 816.6500000000001V633.35C350 616.5999999999999 362.35 602.75 378.4 600.35L383.35 600H412.5A187.5 187.5 0 0 0 599.75 422.5L600.0000000000001 412.5V383.3500000000002C600.0000000000001 366.6 612.3500000000001 352.7500000000001 628.4000000000001 350.35L633.3500000000001 350H816.6500000000001A33.349999999999994 33.349999999999994 0 0 1 849.6500000000001 378.4000000000001L850.0000000000002 383.3500000000002V412.5000000000001A437.5 437.5 0 0 1 425.4000000000002 849.8000000000002L412.5 850z","horizAdvX":"1200"},"spectrum-line":{"path":["M0 0h24v24H0z","M11.388 2.001l1.811.005.844.014c7.161.164 7.938 1.512 7.957 9.667l-.006 1.512-.014.844c-.164 7.161-1.512 7.938-9.667 7.957l-1.512-.006-.888-.015c-6.853-.163-7.827-1.428-7.907-8.78L2 11.691l.006-.89.014-.865c.165-7.053 1.487-7.897 9.368-7.935zM14.12 4.01L10.882 4l-1.322.01c-5.489.082-5.544.82-5.559 7.403l.001 2.175.01 1.04c.089 4.982.793 5.343 6.4 5.369l3.454-.002.776-.009c5.108-.091 5.347-.837 5.358-6.877l-.003-2.743-.012-1.055c-.094-4.796-.785-5.25-5.865-5.303zM8.25 7A8.75 8.75 0 0 1 17 15.75v.583a.667.667 0 0 1-.667.667h-3.666a.667.667 0 0 1-.667-.667v-.583A3.75 3.75 0 0 0 8.25 12h-.583A.667.667 0 0 1 7 11.333V7.667C7 7.299 7.299 7 7.667 7h.583z"],"unicode":"","glyph":"M569.4 1099.95L659.95 1099.7L702.15 1099C1060.2 1090.8 1099.05 1023.4 1100 615.65L1099.7 540.05L1099 497.85C1090.8 139.8 1023.4 100.9500000000001 615.65 100L540.05 100.3L495.65 101.05C153 109.2000000000001 104.3 172.4500000000001 100.3 540.05L100 615.4499999999999L100.3 659.95L101 703.2C109.25 1055.85 175.35 1098.05 569.4 1099.95zM706 999.5L544.1 1000L477.9999999999999 999.5C203.55 995.4 200.8 958.5 200.0499999999999 629.35L200.0999999999999 520.5999999999999L200.5999999999999 468.6C205.05 219.5 240.25 201.4500000000001 520.5999999999999 200.15L693.3 200.25L732.1 200.6999999999999C987.5 205.25 999.45 242.55 1000 544.55L999.85 681.6999999999999L999.25 734.4499999999999C994.55 974.2499999999998 960 996.95 706 999.6zM412.5 850A437.5 437.5 0 0 0 850 412.5V383.3500000000002A33.349999999999994 33.349999999999994 0 0 0 816.6499999999999 350H633.3499999999999A33.349999999999994 33.349999999999994 0 0 0 599.9999999999999 383.3500000000002V412.5000000000001A187.5 187.5 0 0 1 412.5 600H383.35A33.349999999999994 33.349999999999994 0 0 0 350 633.35V816.6500000000001C350 835.05 364.9500000000001 850 383.35 850H412.5z","horizAdvX":"1200"},"speed-fill":{"path":["M0 0h24v24H0z","M12 13.333l-9.223 6.149A.5.5 0 0 1 2 19.066V4.934a.5.5 0 0 1 .777-.416L12 10.667V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832l-10.599 7.066a.5.5 0 0 1-.777-.416v-5.733z"],"unicode":"","glyph":"M600 533.35L138.85 225.9000000000001A25 25 0 0 0 100 246.7000000000001V953.3A25 25 0 0 0 138.85 974.1L600 666.65V953.3A25 25 0 0 0 638.8499999999999 974.1L1168.8 620.8000000000001A25 25 0 0 0 1168.8 579.1999999999999L638.8499999999999 225.9000000000001A25 25 0 0 0 599.9999999999999 246.7000000000001V533.3500000000001z","horizAdvX":"1200"},"speed-line":{"path":["M0 0h24v24H0z","M12 13.333l-9.223 6.149A.5.5 0 0 1 2 19.066V4.934a.5.5 0 0 1 .777-.416L12 10.667V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832l-10.599 7.066a.5.5 0 0 1-.777-.416v-5.733zM10.394 12L4 7.737v8.526L10.394 12zM14 7.737v8.526L20.394 12 14 7.737z"],"unicode":"","glyph":"M600 533.35L138.85 225.9000000000001A25 25 0 0 0 100 246.7000000000001V953.3A25 25 0 0 0 138.85 974.1L600 666.65V953.3A25 25 0 0 0 638.8499999999999 974.1L1168.8 620.8000000000001A25 25 0 0 0 1168.8 579.1999999999999L638.8499999999999 225.9000000000001A25 25 0 0 0 599.9999999999999 246.7000000000001V533.3500000000001zM519.7 600L200 813.15V386.8500000000002L519.7 600zM700 813.15V386.8500000000002L1019.7 600L700 813.15z","horizAdvX":"1200"},"speed-mini-fill":{"path":["M0 0h24v24H0z","M4.788 17.444A.5.5 0 0 1 4 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM13 6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036a.5.5 0 0 1-.788-.409V6.965z"],"unicode":"","glyph":"M239.4 327.8000000000001A25 25 0 0 0 200 348.25V851.75A25 25 0 0 0 239.4 872.2L596.05 620.4000000000001A25 25 0 0 0 596.05 579.6L239.4 327.8000000000001zM650 851.75A25 25 0 0 0 689.4 872.2L1046.05 620.4000000000001A25 25 0 0 0 1046.05 579.6L689.4 327.8000000000001A25 25 0 0 0 650 348.25V851.75z","horizAdvX":"1200"},"speed-mini-line":{"path":["M0 0h24v24H0z","M9.032 12L6 9.86v4.28L9.032 12zm-4.244 5.444A.5.5 0 0 1 4 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM15 14.14L18.032 12 15 9.86v4.28zm-2-7.175a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036a.5.5 0 0 1-.788-.409V6.965z"],"unicode":"","glyph":"M451.6 600L300 707V493L451.6 600zM239.4 327.8000000000001A25 25 0 0 0 200 348.25V851.75A25 25 0 0 0 239.4 872.2L596.05 620.4000000000001A25 25 0 0 0 596.05 579.6L239.4 327.8000000000001zM750 493L901.6 600L750 707V493zM650 851.75A25 25 0 0 0 689.4 872.1999999999999L1046.05 620.4A25 25 0 0 0 1046.05 579.5999999999999L689.4 327.7999999999999A25 25 0 0 0 650 348.2499999999998V851.75z","horizAdvX":"1200"},"split-cells-horizontal":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-9 2H5v14h6v-4h2v4h6V5h-6v4h-2V5zm4 4l3 3-3 3v-2H9v2l-3-3 3-3v2h6V9z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM550 950H250V250H550V450H650V250H950V950H650V750H550V950zM750 750L900 600L750 450V550H450V450L300 600L450 750V650H750V750z","horizAdvX":"1200"},"split-cells-vertical":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-1 2H5v5.999L9 11v2H5v6h14v-6h-4v-2l4-.001V5zm-7 1l3 3h-2v6h2l-3 3-3-3h2V9H9l3-3z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM950 950H250V650.0500000000001L450 650V550H250V250H950V550H750V650L950 650.05V950zM600 900L750 750H650V450H750L600 300L450 450H550V750H450L600 900z","horizAdvX":"1200"},"spotify-fill":{"path":["M0 0h24v24H0z","M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.55 2 12 2zm3.75 14.65c-2.35-1.45-5.3-1.75-8.8-.95-.35.1-.65-.15-.75-.45-.1-.35.15-.65.45-.75 3.8-.85 7.1-.5 9.7 1.1.35.15.4.55.25.85-.2.3-.55.4-.85.2zm1-2.7c-2.7-1.65-6.8-2.15-9.95-1.15-.4.1-.85-.1-.95-.5-.1-.4.1-.85.5-.95 3.65-1.1 8.15-.55 11.25 1.35.3.15.45.65.2 1s-.7.5-1.05.25zM6.3 9.75c-.5.15-1-.15-1.15-.6-.15-.5.15-1 .6-1.15 3.55-1.05 9.4-.85 13.1 1.35.45.25.6.85.35 1.3-.25.35-.85.5-1.3.25C14.7 9 9.35 8.8 6.3 9.75z"],"unicode":"","glyph":"M600 1100C325 1100 100 875 100 600S325 100 600 100S1100 325 1100 600S877.5 1100 600 1100zM787.5 367.5000000000001C670 440 522.5 455.0000000000001 347.5 415C330 410 315 422.5 310 437.5C305 455 317.5 470 332.5 475C522.5 517.5 687.5 500 817.4999999999999 420C835 412.5 837.4999999999998 392.5000000000001 829.9999999999999 377.5C819.9999999999999 362.5 802.4999999999999 357.5000000000001 787.4999999999999 367.5000000000001zM837.5 502.5C702.5 585 497.4999999999999 610 340.0000000000001 560C320 555.0000000000001 297.5000000000001 565 292.5 585C287.5000000000001 605.0000000000001 297.5 627.5 317.5 632.5C500 687.5 725 660 880.0000000000001 565C895.0000000000001 557.5 902.5 532.5 890 515S855.0000000000001 490 837.5 502.5zM315 712.5C290 705 265 720 257.5 742.5C250 767.5 265.0000000000001 792.5 287.5 800C465.0000000000001 852.5 757.5 842.5 942.5000000000002 732.5C965 720 972.5000000000002 690 960.0000000000002 667.5C947.5000000000002 650 917.5000000000002 642.5 895.0000000000001 655C735 750 467.5 760 315 712.5z","horizAdvX":"1200"},"spotify-line":{"path":["M0 0h24v24H0z","M12 2c5.55 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0 2c-4.395 0-8 3.605-8 8s3.605 8 8 8 8-3.605 8-8c0-4.414-3.573-8-8-8zm3.75 12.65c-2.35-1.45-5.3-1.75-8.8-.95-.35.1-.65-.15-.75-.45-.1-.35.15-.65.45-.75 3.8-.85 7.1-.5 9.7 1.1.35.15.4.55.25.85-.2.3-.55.4-.85.2zm1-2.7c-2.7-1.65-6.8-2.15-9.95-1.15-.4.1-.85-.1-.95-.5-.1-.4.1-.85.5-.95 3.65-1.1 8.15-.55 11.25 1.35.3.15.45.65.2 1s-.7.5-1.05.25zM6.3 9.75c-.5.15-1-.15-1.15-.6-.15-.5.15-1 .6-1.15 3.55-1.05 9.4-.85 13.1 1.35.45.25.6.85.35 1.3-.25.35-.85.5-1.3.25C14.7 9 9.35 8.8 6.3 9.75z"],"unicode":"","glyph":"M600 1100C877.5 1100 1100 875 1100 600S875 100 600 100S100 325 100 600S325 1100 600 1100zM600 1000C380.25 1000 200 819.75 200 600S380.25 200 600 200S1000 380.25 1000 600C1000 820.7 821.35 1000 600 1000zM787.5 367.5000000000001C670 440 522.5 455.0000000000001 347.5 415C330 410 315 422.5 310 437.5C305 455 317.5 470 332.5 475C522.5 517.5 687.5 500 817.4999999999999 420C835 412.5 837.4999999999998 392.5000000000001 829.9999999999999 377.5C819.9999999999999 362.5 802.4999999999999 357.5000000000001 787.4999999999999 367.5000000000001zM837.5 502.5C702.5 585 497.4999999999999 610 340.0000000000001 560C320 555.0000000000001 297.5000000000001 565 292.5 585C287.5000000000001 605.0000000000001 297.5 627.5 317.5 632.5C500 687.5 725 660 880.0000000000001 565C895.0000000000001 557.5 902.5 532.5 890 515S855.0000000000001 490 837.5 502.5zM315 712.5C290 705 265 720 257.5 742.5C250 767.5 265.0000000000001 792.5 287.5 800C465.0000000000001 852.5 757.5 842.5 942.5000000000002 732.5C965 720 972.5000000000002 690 960.0000000000002 667.5C947.5000000000002 650 917.5000000000002 642.5 895.0000000000001 655C735 750 467.5 760 315 712.5z","horizAdvX":"1200"},"spy-fill":{"path":["M0 0h24v24H0z","M17 13a4 4 0 1 1 0 8c-2.142 0-4-1.79-4-4h-2a4 4 0 1 1-.535-2h3.07A3.998 3.998 0 0 1 17 13zM2 12v-2h2V7a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v3h2v2H2z"],"unicode":"","glyph":"M850 550A200 200 0 1 0 850 150C742.9 150 650 239.5 650 350H550A200 200 0 1 0 523.25 450H676.75A199.90000000000003 199.90000000000003 0 0 0 850 550zM100 600V700H200V850A200 200 0 0 0 400 1050H800A200 200 0 0 0 1000 850V700H1100V600H100z","horizAdvX":"1200"},"spy-line":{"path":["M0 0h24v24H0z","M17 13a4 4 0 1 1-4 4h-2a4 4 0 1 1-.535-2h3.07A3.998 3.998 0 0 1 17 13zM7 15a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM16 3a4 4 0 0 1 4 4v3h2v2H2v-2h2V7a4 4 0 0 1 4-4h8zm0 2H8c-1.054 0-2 .95-2 2v3h12V7c0-1.054-.95-2-2-2z"],"unicode":"","glyph":"M850 550A200 200 0 1 0 650 350H550A200 200 0 1 0 523.25 450H676.75A199.90000000000003 199.90000000000003 0 0 0 850 550zM350 450A100 100 0 1 1 350 250A100 100 0 0 1 350 450zM850 450A100 100 0 1 1 850 250A100 100 0 0 1 850 450zM800 1050A200 200 0 0 0 1000 850V700H1100V600H100V700H200V850A200 200 0 0 0 400 1050H800zM800 950H400C347.3 950 300 902.5 300 850V700H900V850C900 902.7 852.5 950 800 950z","horizAdvX":"1200"},"stack-fill":{"path":["M0 0h24v24H0z","M20.083 10.5l1.202.721a.5.5 0 0 1 0 .858L12 17.65l-9.285-5.571a.5.5 0 0 1 0-.858l1.202-.721L12 15.35l8.083-4.85zm0 4.7l1.202.721a.5.5 0 0 1 0 .858l-8.77 5.262a1 1 0 0 1-1.03 0l-8.77-5.262a.5.5 0 0 1 0-.858l1.202-.721L12 20.05l8.083-4.85zM12.514 1.309l8.771 5.262a.5.5 0 0 1 0 .858L12 13 2.715 7.429a.5.5 0 0 1 0-.858l8.77-5.262a1 1 0 0 1 1.03 0z"],"unicode":"","glyph":"M1004.1499999999997 675L1064.2499999999998 638.95A25 25 0 0 0 1064.2499999999998 596.05L600 317.5000000000001L135.75 596.0500000000001A25 25 0 0 0 135.75 638.95L195.85 675.0000000000001L600 432.5L1004.1499999999997 675zM1004.1499999999997 440L1064.2499999999998 403.9500000000001A25 25 0 0 0 1064.2499999999998 361.05L625.7499999999999 97.9500000000001A50 50 0 0 0 574.2499999999999 97.9500000000001L135.7499999999999 361.05A25 25 0 0 0 135.7499999999999 403.9500000000001L195.8499999999999 440L600 197.5L1004.1499999999997 440zM625.6999999999999 1134.55L1064.25 871.45A25 25 0 0 0 1064.25 828.55L600 550L135.75 828.55A25 25 0 0 0 135.75 871.45L574.25 1134.55A50 50 0 0 0 625.7499999999999 1134.55z","horizAdvX":"1200"},"stack-line":{"path":["M0 0h24v24H0z","M20.083 15.2l1.202.721a.5.5 0 0 1 0 .858l-8.77 5.262a1 1 0 0 1-1.03 0l-8.77-5.262a.5.5 0 0 1 0-.858l1.202-.721L12 20.05l8.083-4.85zm0-4.7l1.202.721a.5.5 0 0 1 0 .858L12 17.65l-9.285-5.571a.5.5 0 0 1 0-.858l1.202-.721L12 15.35l8.083-4.85zm-7.569-9.191l8.771 5.262a.5.5 0 0 1 0 .858L12 13 2.715 7.429a.5.5 0 0 1 0-.858l8.77-5.262a1 1 0 0 1 1.03 0zM12 3.332L5.887 7 12 10.668 18.113 7 12 3.332z"],"unicode":"","glyph":"M1004.1499999999997 440L1064.2499999999998 403.9500000000001A25 25 0 0 0 1064.2499999999998 361.05L625.7499999999999 97.9500000000001A50 50 0 0 0 574.2499999999999 97.9500000000001L135.7499999999999 361.05A25 25 0 0 0 135.7499999999999 403.9500000000001L195.8499999999999 440L600 197.5L1004.1499999999997 440zM1004.1499999999997 675L1064.2499999999998 638.95A25 25 0 0 0 1064.2499999999998 596.05L600 317.5000000000001L135.75 596.0500000000001A25 25 0 0 0 135.75 638.95L195.85 675.0000000000001L600 432.5L1004.1499999999997 675zM625.6999999999999 1134.55L1064.25 871.45A25 25 0 0 0 1064.25 828.5500000000001L600 550L135.75 828.55A25 25 0 0 0 135.75 871.45L574.25 1134.55A50 50 0 0 0 625.7499999999999 1134.55zM600 1033.4L294.35 850L600 666.6L905.65 850L600 1033.4z","horizAdvX":"1200"},"stack-overflow-fill":{"path":["M0 0h24v24H0z","M18 20.002V14.67h2v7.333H4V14.67h2v5.333h12zM7.599 14.736l.313-1.98 8.837 1.7-.113 1.586-9.037-1.306zm1.2-4.532l.732-1.6 7.998 3.733-.733 1.599-7.998-3.732zm2.265-3.932l1.133-1.333 6.798 5.665-1.133 1.333-6.798-5.665zm4.332-4.132l5.265 7.064-1.4 1.067-5.264-7.065 1.4-1.066zM7.332 18.668v-2h9.33v2h-9.33z"],"unicode":"","glyph":"M900 199.9000000000001V466.5H1000V99.8499999999999H200V466.5H300V199.85H900zM379.95 463.1999999999999L395.6 562.2L837.4499999999999 477.2L831.8 397.9000000000001L379.95 463.2000000000002zM439.95 689.8L476.55 769.8L876.45 583.15L839.8 503.1999999999999L439.8999999999999 689.8zM553.2 886.4L609.8499999999999 953.05L949.7499999999998 669.8000000000001L893.0999999999999 603.15L553.1999999999999 886.4000000000001zM769.8000000000001 1093L1033.0500000000002 739.8L963.0500000000002 686.4499999999999L699.8500000000001 1039.7L769.8500000000001 1093zM366.6 266.6V366.6H833.0999999999999V266.6H366.6z","horizAdvX":"1200"},"stack-overflow-line":{"path":["M0 0h24v24H0z","M18 20.002V15h2v7.002H4V15h2v5.002h12zM7.5 18v-2h9v2h-9zm.077-4.38l.347-1.97 8.864 1.563-.348 1.97-8.863-1.563zm1.634-5.504l1-1.732 7.794 4.5-1 1.732-7.794-4.5zm3.417-4.613l1.532-1.286 5.785 6.895-1.532 1.285-5.785-6.894z"],"unicode":"","glyph":"M900 199.9000000000001V450H1000V99.9000000000001H200V450H300V199.9000000000001H900zM375 300V400H825V300H375zM378.85 519L396.2 617.5L839.4 539.3499999999999L822.0000000000001 440.8499999999999L378.8500000000001 519zM460.55 794.1999999999999L510.55 880.8L900.25 655.8L850.25 569.2L460.55 794.2zM631.4 1024.85L708 1089.1499999999999L997.25 744.4L920.65 680.15L631.4 1024.85z","horizAdvX":"1200"},"stackshare-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zm-4.208 2.621c-1.011 0-1.864.676-2.133 1.6h-1.998l-2.46 4.185H8.763c-.268-.925-1.121-1.6-2.133-1.6-1.226 0-2.221.994-2.221 2.22 0 1.228.995 2.222 2.221 2.222 1.012 0 1.865-.676 2.133-1.6h1.471l2.417 4.133h2.018c.268.925 1.121 1.6 2.132 1.6 1.227 0 2.222-.994 2.222-2.221s-.995-2.222-2.222-2.222c-1.01 0-1.864.676-2.132 1.6h-1.317l-2.056-3.536 2.053-3.538h1.31c.27.925 1.122 1.6 2.133 1.6 1.227 0 2.222-.994 2.222-2.221s-.995-2.222-2.222-2.222zm.011 9.427c.644 0 1.168.524 1.168 1.168 0 .644-.524 1.167-1.168 1.167-.566 0-1.038-.405-1.144-.94 0 0-.031-.227 0-.454.106-.535.578-.94 1.144-.94zm-10.152-4.21c.644 0 1.168.524 1.168 1.168 0 .643-.524 1.167-1.168 1.167-.644 0-1.167-.524-1.167-1.167 0-.644.523-1.167 1.167-1.167zm10.15-4.209c.644 0 1.168.523 1.168 1.167s-.524 1.168-1.168 1.168c-.565 0-1.038-.406-1.144-.941-.026-.206 0-.446 0-.446.106-.543.579-.948 1.144-.948z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM839.6000000000001 918.95C789.0500000000001 918.95 746.4000000000001 885.15 732.9500000000002 838.95H633.0500000000002L510.0500000000002 629.7H438.15C424.75 675.95 382.1 709.7 331.5 709.7C270.2 709.7 220.45 660 220.45 598.7C220.45 537.3000000000001 270.2 487.6 331.5 487.6C382.1 487.6 424.75 521.4000000000001 438.15 567.6H511.7L632.55 360.9500000000001H733.45C746.85 314.7000000000001 789.5 280.9500000000001 840.0500000000001 280.9500000000001C901.4 280.9500000000001 951.1500000000002 330.65 951.1500000000002 392S901.4 503.1 840.0500000000001 503.1C789.5500000000001 503.1 746.85 469.3 733.4500000000002 423.1H667.6000000000001L564.8000000000002 599.9L667.4500000000002 776.8H732.9500000000002C746.4500000000002 730.55 789.0500000000002 696.8 839.6000000000003 696.8C900.9500000000002 696.8 950.7000000000002 746.5 950.7000000000002 807.85S900.9500000000002 918.95 839.6000000000003 918.95zM840.1500000000001 447.6C872.3499999999999 447.6 898.55 421.4000000000001 898.55 389.2C898.55 357 872.3499999999999 330.8499999999999 840.1500000000001 330.8499999999999C811.8500000000001 330.8499999999999 788.25 351.0999999999999 782.95 377.8499999999999C782.95 377.8499999999999 781.4 389.2 782.95 400.55C788.25 427.3 811.8500000000001 447.55 840.1500000000001 447.55zM332.5500000000001 658.0999999999999C364.7500000000001 658.0999999999999 390.9500000000001 631.8999999999999 390.9500000000001 599.7C390.9500000000001 567.55 364.7500000000001 541.35 332.5500000000001 541.35C300.3500000000001 541.35 274.2000000000001 567.55 274.2000000000001 599.7C274.2000000000001 631.9 300.3500000000001 658.05 332.5500000000001 658.05zM840.0500000000001 868.55C872.25 868.55 898.45 842.4 898.45 810.1999999999999S872.25 751.8 840.0500000000001 751.8C811.8000000000001 751.8 788.1500000000001 772.1 782.8500000000001 798.85C781.5500000000001 809.1500000000001 782.8500000000001 821.15 782.8500000000001 821.15C788.1500000000001 848.3 811.8000000000001 868.55 840.0500000000001 868.55z","horizAdvX":"1200"},"stackshare-line":{"path":["M0 0H24V24H0z","M9.536 13H7.329c-.412 1.166-1.523 2-2.829 2-1.657 0-3-1.343-3-3s1.343-3 3-3c1.306 0 2.418.835 2.83 2h2.206L13 5h3.17c.412-1.165 1.524-2 2.83-2 1.657 0 3 1.343 3 3s-1.343 3-3 3c-1.306 0-2.417-.834-2.829-2h-2.017l-2.886 4.999L14.155 17h2.016c.411-1.165 1.523-2 2.829-2 1.657 0 3 1.343 3 3s-1.343 3-3 3c-1.306 0-2.417-.834-2.829-2H13l-3.464-6zM19 17c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM4.5 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM19 5c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M476.8 550H366.45C345.85 491.6999999999999 290.3 450 225 450C142.15 450 75 517.15 75 600S142.15 750 225 750C290.3 750 345.9000000000001 708.25 366.5 650H476.8L650 950H808.5000000000001C829.1 1008.25 884.7000000000002 1050 950 1050C1032.85 1050 1100 982.85 1100 900S1032.85 750 950 750C884.6999999999999 750 829.1499999999999 791.7 808.55 850H707.7L563.4000000000001 600.0500000000001L707.75 350H808.55C829.1 408.25 884.6999999999999 450 950 450C1032.85 450 1100 382.85 1100 300S1032.85 150 950 150C884.6999999999999 150 829.1499999999999 191.6999999999999 808.55 250H650L476.8 550zM950 350C922.4 350 900 327.6 900 300S922.4 250 950 250S1000 272.4 1000 300S977.6 350 950 350zM225 650C197.4 650 175 627.6 175 600S197.4 550 225 550S275 572.4 275 600S252.6 650 225 650zM950 950C922.4 950 900 927.6 900 900S922.4 850 950 850S1000 872.4000000000001 1000 900S977.6 950 950 950z","horizAdvX":"1200"},"star-fill":{"path":["M0 0h24v24H0z","M12 18.26l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928z"],"unicode":"","glyph":"M600 286.9999999999999L247.35 89.5999999999999L326.1 486L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999z","horizAdvX":"1200"},"star-half-fill":{"path":["M0 0h24v24H0z","M12 15.968l4.247 2.377-.949-4.773 3.573-3.305-4.833-.573L12 5.275v10.693zm0 2.292l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928L12 18.26z"],"unicode":"","glyph":"M600 401.6L812.35 282.75L764.9 521.4000000000001L943.55 686.65L701.9 715.3000000000001L600 936.25V401.6zM600 287.0000000000001L247.35 89.6000000000001L326.1 486.0000000000001L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999L600 286.9999999999999z","horizAdvX":"1200"},"star-half-line":{"path":["M0 0h24v24H0z","M12 15.968l4.247 2.377-.949-4.773 3.573-3.305-4.833-.573L12 5.275v10.693zm0 2.292l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928L12 18.26z"],"unicode":"","glyph":"M600 401.6L812.35 282.75L764.9 521.4000000000001L943.55 686.65L701.9 715.3000000000001L600 936.25V401.6zM600 287.0000000000001L247.35 89.6000000000001L326.1 486.0000000000001L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999L600 286.9999999999999z","horizAdvX":"1200"},"star-half-s-fill":{"path":["M0 0h24v24H0z","M12 14.656l2.817 1.72-.766-3.21 2.507-2.147-3.29-.264L12 7.708v6.948zM12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7L12 17z"],"unicode":"","glyph":"M600 467.1999999999999L740.85 381.2L702.55 541.6999999999999L827.9 649.05L663.4000000000001 662.25L600 814.5999999999999V467.1999999999999zM600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5L600 350z","horizAdvX":"1200"},"star-half-s-line":{"path":["M0 0h24v24H0z","M12 14.656l2.817 1.72-.766-3.21 2.507-2.147-3.29-.264L12 7.708v6.948zM12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7L12 17z"],"unicode":"","glyph":"M600 467.1999999999999L740.85 381.2L702.55 541.6999999999999L827.9 649.05L663.4000000000001 662.25L600 814.5999999999999V467.1999999999999zM600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5L600 350z","horizAdvX":"1200"},"star-line":{"path":["M0 0h24v24H0z","M12 18.26l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928L12 18.26zm0-2.292l4.247 2.377-.949-4.773 3.573-3.305-4.833-.573L12 5.275l-2.038 4.42-4.833.572 3.573 3.305-.949 4.773L12 15.968z"],"unicode":"","glyph":"M600 286.9999999999999L247.35 89.5999999999999L326.1 486L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999L600 286.9999999999999zM600 401.5999999999999L812.35 282.7499999999999L764.9 521.3999999999999L943.55 686.6499999999999L701.9 715.2999999999998L600 936.25L498.1 715.25L256.45 686.65L435.1 521.4000000000001L387.65 282.75L600 401.6z","horizAdvX":"1200"},"star-s-fill":{"path":["M0 0h24v24H0z","M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7z"],"unicode":"","glyph":"M600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5z","horizAdvX":"1200"},"star-s-line":{"path":["M0 0h24v24H0z","M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7L12 17zm0-2.344l2.817 1.72-.766-3.21 2.507-2.147-3.29-.264L12 7.708l-1.268 3.047-3.29.264 2.507 2.147-.766 3.21L12 14.657z"],"unicode":"","glyph":"M600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5L600 350zM600 467.1999999999999L740.85 381.2L702.55 541.6999999999999L827.9 649.05L663.4000000000001 662.25L600 814.5999999999999L536.5999999999999 662.25L372.1 649.05L497.45 541.6999999999999L459.15 381.2L600 467.15z","horizAdvX":"1200"},"star-smile-fill":{"path":["M0 0h24v24H0z","M12 .5l4.226 6.183 7.187 2.109-4.575 5.93.215 7.486L12 19.69l-7.053 2.518.215-7.486-4.575-5.93 7.187-2.109L12 .5zM10 12H8a4 4 0 0 0 7.995.2L16 12h-2a2 2 0 0 1-3.995.15L10 12z"],"unicode":"","glyph":"M600 1175L811.3 865.85L1170.65 760.4000000000001L941.9 463.9L952.65 89.6000000000001L600 215.4999999999999L247.35 89.5999999999999L258.1 463.9L29.35 760.3999999999999L388.7 865.8499999999999L600 1175zM500 600H400A200 200 0 0 1 799.75 590L800 600H700A100 100 0 0 0 500.2499999999999 592.5L500 600z","horizAdvX":"1200"},"star-smile-line":{"path":["M0 0h24v24H0z","M12 .5l4.226 6.183 7.187 2.109-4.575 5.93.215 7.486L12 19.69l-7.053 2.518.215-7.486-4.575-5.93 7.187-2.109L12 .5zm0 3.544L9.022 8.402 3.957 9.887l3.225 4.178-.153 5.275L12 17.566l4.97 1.774-.152-5.275 3.224-4.178-5.064-1.485L12 4.044zM10 12a2 2 0 1 0 4 0h2a4 4 0 1 1-8 0h2z"],"unicode":"","glyph":"M600 1175L811.3 865.85L1170.65 760.4000000000001L941.9 463.9L952.65 89.6000000000001L600 215.4999999999999L247.35 89.5999999999999L258.1 463.9L29.35 760.3999999999999L388.7 865.8499999999999L600 1175zM600 997.8L451.1 779.9000000000001L197.85 705.65L359.1 496.7499999999999L351.4500000000001 232.9999999999998L600 321.7000000000001L848.5 233L840.8999999999999 496.75L1002.1 705.65L748.8999999999999 779.9L600 997.8zM500 600A100 100 0 1 1 700 600H800A200 200 0 1 0 400 600H500z","horizAdvX":"1200"},"steam-fill":{"path":["M0 0H24V24H0z","M12.004 2c-5.25 0-9.556 4.05-9.964 9.197l5.36 2.216c.454-.31 1.002-.492 1.593-.492.053 0 .104.003.157.005l2.384-3.452v-.049c0-2.08 1.69-3.77 3.77-3.77 2.079 0 3.77 1.692 3.77 3.772s-1.692 3.771-3.77 3.771h-.087l-3.397 2.426c0 .043.003.088.003.133 0 1.562-1.262 2.83-2.825 2.83-1.362 0-2.513-.978-2.775-2.273l-3.838-1.589C3.573 18.922 7.427 22 12.005 22c5.522 0 9.998-4.477 9.998-10 0-5.522-4.477-10-9.999-10zM7.078 16.667c.218.452.595.832 1.094 1.041 1.081.45 2.328-.063 2.777-1.145.22-.525.22-1.1.004-1.625-.215-.525-.625-.934-1.147-1.152-.52-.217-1.075-.208-1.565-.025l1.269.525c.797.333 1.174 1.25.84 2.046-.33.797-1.247 1.175-2.044.843l-1.228-.508zm10.74-7.245c0-1.385-1.128-2.512-2.513-2.512-1.387 0-2.512 1.127-2.512 2.512 0 1.388 1.125 2.513 2.512 2.513 1.386 0 2.512-1.125 2.512-2.513zM15.31 7.53c1.04 0 1.888.845 1.888 1.888s-.847 1.888-1.888 1.888c-1.044 0-1.888-.845-1.888-1.888s.845-1.888 1.888-1.888z"],"unicode":"","glyph":"M600.1999999999999 1100C337.7 1100 122.4 897.5 102 640.1500000000001L370 529.35C392.7 544.85 420.1 553.95 449.6499999999999 553.95C452.3 553.95 454.8499999999999 553.8000000000001 457.4999999999999 553.7L576.6999999999999 726.3V728.75C576.6999999999999 832.75 661.1999999999999 917.25 765.1999999999999 917.25C869.15 917.25 953.7 832.6499999999999 953.7 728.6499999999999S869.0999999999999 540.1 765.1999999999999 540.1H760.8499999999999L590.9999999999999 418.8C590.9999999999999 416.65 591.15 414.4 591.15 412.15C591.15 334.0499999999999 528.05 270.6499999999999 449.8999999999999 270.6499999999999C381.7999999999999 270.6499999999999 324.2499999999999 319.55 311.1499999999999 384.2999999999999L119.2499999999999 463.7499999999999C178.65 253.9 371.35 100 600.25 100C876.35 100 1100.15 323.85 1100.15 600C1100.15 876.1 876.3 1100 600.1999999999999 1100zM353.9000000000001 366.6499999999999C364.8 344.0499999999999 383.65 325.0499999999999 408.6 314.5999999999999C462.65 292.0999999999999 525 317.7499999999999 547.45 371.8499999999999C558.4500000000002 398.0999999999998 558.4500000000002 426.8499999999999 547.6500000000001 453.0999999999999C536.9000000000001 479.3499999999999 516.4000000000001 499.7999999999998 490.3000000000001 510.6999999999998C464.3000000000001 521.5499999999998 436.5500000000001 521.0999999999999 412.0500000000001 511.9499999999998L475.5000000000001 485.6999999999998C515.3500000000001 469.0499999999998 534.2 423.1999999999998 517.5000000000001 383.3999999999998C501.0000000000001 343.5499999999998 455.1500000000001 324.6499999999998 415.3000000000001 341.2499999999998L353.9000000000001 366.6499999999998zM890.9000000000001 728.9C890.9000000000001 798.15 834.5000000000001 854.5 765.2500000000001 854.5C695.9000000000001 854.5 639.6500000000001 798.15 639.6500000000001 728.9C639.6500000000001 659.5 695.9000000000001 603.25 765.2500000000001 603.25C834.5500000000002 603.25 890.85 659.5 890.85 728.9zM765.5 823.5C817.5000000000001 823.5 859.9 781.25 859.9 729.1S817.55 634.7 765.5 634.7C713.3 634.7 671.1 676.95 671.1 729.1S713.35 823.5 765.5 823.5z","horizAdvX":"1200"},"steam-line":{"path":["M0 0H24V24H0z","M17 4c2.761 0 5 2.239 5 5s-2.239 5-5 5c-.304 0-.603-.027-.892-.08l-2.651 1.989c.028.193.043.39.043.591 0 2.21-1.79 4-4 4s-4-1.79-4-4c0-.177.012-.352.034-.524L1.708 14.43l.75-1.854 3.826 1.545C7.013 13.138 8.182 12.5 9.5 12.5c.163 0 .323.01.48.029l2.042-3.061C12.007 9.314 12 9.158 12 9c0-2.761 2.239-5 5-5zM9.5 14.5c-.464 0-.892.158-1.231.424l1.606.649c.512.207.76.79.552 1.302-.207.512-.79.76-1.302.552L7.52 16.78c.136.972.971 1.721 1.981 1.721 1.105 0 2-.895 2-2s-.895-2-2-2zm3.364-2.69l-.983 1.476c.284.21.54.458.758.735l1.36-1.02c-.44-.332-.825-.735-1.135-1.191zM17 6c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm0 1c1.105 0 2 .895 2 2s-.895 2-2 2-2-.895-2-2 .895-2 2-2z"],"unicode":"","glyph":"M850 1000C988.05 1000 1100 888.05 1100 750S988.05 500 850 500C834.8000000000001 500 819.8499999999999 501.3499999999999 805.4 504L672.85 404.55C674.2500000000001 394.9 675 385.0500000000001 675 375C675 264.5 585.5 175 475 175S275 264.5 275 375C275 383.85 275.6 392.6 276.7 401.2000000000001L85.4 478.5L122.9 571.1999999999999L314.2000000000001 493.9499999999999C350.65 543.1 409.1 575 475 575C483.15 575 491.15 574.5 499 573.55L601.1 726.6C600.35 734.3 600 742.1 600 750C600 888.05 711.95 1000 850 1000zM475 475C451.8 475 430.4000000000001 467.1 413.45 453.8000000000001L493.75 421.35C519.35 411 531.75 381.85 521.35 356.25C510.9999999999999 330.65 481.85 318.2499999999999 456.25 328.65L376 361C382.8 312.3999999999999 424.55 274.95 475.05 274.95C530.3 274.95 575.05 319.7 575.05 374.95S530.3 474.9499999999999 475.05 474.9499999999999zM643.2 609.5L594.05 535.6999999999999C608.25 525.1999999999999 621.05 512.8 631.9499999999999 498.9499999999999L699.9499999999999 549.9499999999999C677.9499999999999 566.55 658.6999999999999 586.6999999999999 643.1999999999999 609.5zM850 900C767.15 900 700 832.85 700 750S767.15 600 850 600S1000 667.15 1000 750S932.85 900 850 900zM850 850C905.25 850 950 805.25 950 750S905.25 650 850 650S750 694.75 750 750S794.75 850 850 850z","horizAdvX":"1200"},"steering-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM8 13l-3.938.001A8.004 8.004 0 0 0 11 19.938V16a3 3 0 0 1-3-3zm11.938.001L16 13a3 3 0 0 1-3 3l.001 3.938a8.004 8.004 0 0 0 6.937-6.937zM12 4a8.001 8.001 0 0 0-7.938 7H8a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1h3.938A8.001 8.001 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM400 550L203.1 549.95A400.20000000000005 400.20000000000005 0 0 1 550 203.1V400A150 150 0 0 0 400 550zM996.9 549.95L800 550A150 150 0 0 0 650 400L650.05 203.1A400.20000000000005 400.20000000000005 0 0 1 996.9 549.9500000000002zM600 1000A400.04999999999995 400.04999999999995 0 0 1 203.1 650H400A50 50 0 0 0 450 700H750A50 50 0 0 0 800 650H996.9A400.04999999999995 400.04999999999995 0 0 1 600 1000z","horizAdvX":"1200"},"steering-2-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM8 13l-3.938.001A8.004 8.004 0 0 0 11 19.938V16a3 3 0 0 1-3-3zm11.938.001L16 13a3 3 0 0 1-3 3l.001 3.938a8.004 8.004 0 0 0 6.937-6.937zM14 12h-4v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1zm-2-8a8.001 8.001 0 0 0-7.938 7H8a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1h3.938A8.001 8.001 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM400 550L203.1 549.95A400.20000000000005 400.20000000000005 0 0 1 550 203.1V400A150 150 0 0 0 400 550zM996.9 549.95L800 550A150 150 0 0 0 650 400L650.05 203.1A400.20000000000005 400.20000000000005 0 0 1 996.9 549.9500000000002zM700 600H500V550A50 50 0 0 1 550 500H650A50 50 0 0 1 700 550V600zM600 1000A400.04999999999995 400.04999999999995 0 0 1 203.1 650H400A50 50 0 0 0 450 700H750A50 50 0 0 0 800 650H996.9A400.04999999999995 400.04999999999995 0 0 1 600 1000z","horizAdvX":"1200"},"steering-fill":{"path":["M0 0h24v24H0z","M21.8 14.001a10.009 10.009 0 0 1-8.4 7.902v-2.025A8.01 8.01 0 0 0 19.748 14l2.052.001zm-17.548 0a8.01 8.01 0 0 0 6.247 5.858v2.03A10.01 10.01 0 0 1 2.2 14h2.052zM18 11v2h-1a4 4 0 0 0-3.995 3.8L13 17v1h-2v-1a4 4 0 0 0-3.8-3.995L7 13H6v-2h12zm-6-9c5.185 0 9.449 3.947 9.95 9h-2.012a8.001 8.001 0 0 0-15.876 0H2.049C2.551 5.947 6.815 2 12 2z"],"unicode":"","glyph":"M1090 499.95A500.45 500.45 0 0 0 670 104.8500000000001V206.1A400.5 400.5 0 0 1 987.4 500L1090 499.95zM212.6000000000001 499.95A400.5 400.5 0 0 1 524.9500000000002 207.0500000000001V105.55A500.50000000000006 500.50000000000006 0 0 0 110 500H212.6zM900 650V550H850A200 200 0 0 1 650.25 360L650 350V300H550V350A200 200 0 0 1 360 549.75L350 550H300V650H900zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H102.45C127.55 902.65 340.75 1100 600 1100z","horizAdvX":"1200"},"steering-line":{"path":["M0 0h24v24H0z","M21.8 14.001a10.009 10.009 0 0 1-8.4 7.902v-2.025A8.01 8.01 0 0 0 19.748 14l2.052.001zm-17.548 0a8.01 8.01 0 0 0 6.247 5.858v2.03A10.01 10.01 0 0 1 2.2 14h2.052zM18 11v2h-3a2 2 0 0 0-1.995 1.85L13 15v3h-2v-3a2 2 0 0 0-1.85-1.995L9 13H6v-2h12zm-6-9c5.185 0 9.449 3.947 9.95 9h-2.012a8.001 8.001 0 0 0-15.876 0H2.049C2.551 5.947 6.815 2 12 2z"],"unicode":"","glyph":"M1090 499.95A500.45 500.45 0 0 0 670 104.8500000000001V206.1A400.5 400.5 0 0 1 987.4 500L1090 499.95zM212.6000000000001 499.95A400.5 400.5 0 0 1 524.9500000000002 207.0500000000001V105.55A500.50000000000006 500.50000000000006 0 0 0 110 500H212.6zM900 650V550H750A100 100 0 0 1 650.25 457.5L650 450V300H550V450A100 100 0 0 1 457.5 549.75L450 550H300V650H900zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H102.45C127.55 902.65 340.75 1100 600 1100z","horizAdvX":"1200"},"stethoscope-fill":{"path":["M0 0H24V24H0z","M8 3v2H6v4c0 2.21 1.79 4 4 4s4-1.79 4-4V5h-2V3h3c.552 0 1 .448 1 1v5c0 2.973-2.162 5.44-5 5.917V16.5c0 1.933 1.567 3.5 3.5 3.5 1.497 0 2.775-.94 3.275-2.263C16.728 17.27 16 16.22 16 15c0-1.657 1.343-3 3-3s3 1.343 3 3c0 1.371-.92 2.527-2.176 2.885C19.21 20.252 17.059 22 14.5 22 11.462 22 9 19.538 9 16.5v-1.583C6.162 14.441 4 11.973 4 9V4c0-.552.448-1 1-1h3z"],"unicode":"","glyph":"M400 1050V950H300V750C300 639.5 389.5 550 500 550S700 639.5 700 750V950H600V1050H750C777.6 1050 800 1027.6 800 1000V750C800 601.35 691.9000000000001 477.9999999999999 550 454.15V375C550 278.35 628.35 200 725 200C799.85 200 863.7499999999999 247.0000000000001 888.7499999999999 313.1499999999999C836.4000000000001 336.5 800 389 800 450C800 532.85 867.15 600 950 600S1100 532.85 1100 450C1100 381.4500000000001 1054 323.65 991.2 305.7500000000001C960.5 187.4000000000001 852.95 100 725 100C573.1 100 450 223.1 450 375V454.15C308.1 477.9499999999999 200 601.3499999999999 200 750V1000C200 1027.6 222.4 1050 250 1050H400z","horizAdvX":"1200"},"stethoscope-line":{"path":["M0 0H24V24H0z","M8 3v2H6v4c0 2.21 1.79 4 4 4s4-1.79 4-4V5h-2V3h3c.552 0 1 .448 1 1v5c0 2.973-2.162 5.44-5 5.917V16.5c0 1.933 1.567 3.5 3.5 3.5 1.497 0 2.775-.94 3.275-2.263C16.728 17.27 16 16.22 16 15c0-1.657 1.343-3 3-3s3 1.343 3 3c0 1.371-.92 2.527-2.176 2.885C19.21 20.252 17.059 22 14.5 22 11.462 22 9 19.538 9 16.5v-1.583C6.162 14.441 4 11.973 4 9V4c0-.552.448-1 1-1h3zm11 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M400 1050V950H300V750C300 639.5 389.5 550 500 550S700 639.5 700 750V950H600V1050H750C777.6 1050 800 1027.6 800 1000V750C800 601.35 691.9000000000001 477.9999999999999 550 454.15V375C550 278.35 628.35 200 725 200C799.85 200 863.7499999999999 247.0000000000001 888.7499999999999 313.1499999999999C836.4000000000001 336.5 800 389 800 450C800 532.85 867.15 600 950 600S1100 532.85 1100 450C1100 381.4500000000001 1054 323.65 991.2 305.7500000000001C960.5 187.4000000000001 852.95 100 725 100C573.1 100 450 223.1 450 375V454.15C308.1 477.9499999999999 200 601.3499999999999 200 750V1000C200 1027.6 222.4 1050 250 1050H400zM950 500C922.4 500 900 477.6 900 450S922.4 400 950 400S1000 422.4 1000 450S977.6 500 950 500z","horizAdvX":"1200"},"sticky-note-2-fill":{"path":["M0 0h24v24H0z","M21 16l-5.003 5H3.998A.996.996 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.447.993.999V16z"],"unicode":"","glyph":"M1050 400L799.85 150H199.9A49.800000000000004 49.800000000000004 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.65 1049.9999999999998 1000.05V400z","horizAdvX":"1200"},"sticky-note-2-line":{"path":["M0 0h24v24H0z","M3.998 21A.996.996 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.447.993.999V16l-5.003 5H3.998zM5 19h10.169L19 15.171V5H5v14z"],"unicode":"","glyph":"M199.9 150A49.800000000000004 49.800000000000004 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.65 1049.9999999999998 1000.05V400L799.8499999999998 150H199.9zM250 250H758.45L950 441.4500000000001V950H250V250z","horizAdvX":"1200"},"sticky-note-fill":{"path":["M0 0h24v24H0z","M15 14l-.117.007a1 1 0 0 0-.876.876L14 15v6H3.998A.996.996 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.447.993.999V14h-6zm6 2l-5 4.997V16h5z"],"unicode":"","glyph":"M750 500L744.15 499.65A50 50 0 0 1 700.35 455.85L700 450V150H199.9A49.800000000000004 49.800000000000004 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.65 1049.9999999999998 1000.05V500H749.9999999999998zM1050 400L800 150.1500000000001V400H1050z","horizAdvX":"1200"},"sticky-note-line":{"path":["M0 0h24v24H0z","M21 15l-6 5.996L4.002 21A.998.998 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.456.993 1.002V15zM19 5H5v14h8v-5a1 1 0 0 1 .883-.993L14 13l5-.001V5zm-.829 9.999L15 15v3.169l3.171-3.17z"],"unicode":"","glyph":"M1050 450L750 150.1999999999998L200.1 150A49.900000000000006 49.900000000000006 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.2 1049.9999999999998 999.9V450zM950 950H250V250H650V500A50 50 0 0 0 694.15 549.65L700 550L950 550.05V950zM908.55 450.05L750 450V291.55L908.55 450.05z","horizAdvX":"1200"},"stock-fill":{"path":["M0 0h24v24H0z","M8 5h3v9H8v3H6v-3H3V5h3V2h2v3zm10 5h3v9h-3v3h-2v-3h-3v-9h3V7h2v3z"],"unicode":"","glyph":"M400 950H550V500H400V350H300V500H150V950H300V1100H400V950zM900 700H1050V250H900V100H800V250H650V700H800V850H900V700z","horizAdvX":"1200"},"stock-line":{"path":["M0 0h24v24H0z","M8 5h3v9H8v3H6v-3H3V5h3V2h2v3zM5 7v5h4V7H5zm13 3h3v9h-3v3h-2v-3h-3v-9h3V7h2v3zm-3 2v5h4v-5h-4z"],"unicode":"","glyph":"M400 950H550V500H400V350H300V500H150V950H300V1100H400V950zM250 850V600H450V850H250zM900 700H1050V250H900V100H800V250H650V700H800V850H900V700zM750 600V350H950V600H750z","horizAdvX":"1200"},"stop-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM9 9v6h6V9H9z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM450 750V450H750V750H450z","horizAdvX":"1200"},"stop-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM9 9h6v6H9V9z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 750H750V450H450V750z","horizAdvX":"1200"},"stop-fill":{"path":["M0 0h24v24H0z","M6 5h12a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M300 950H900A50 50 0 0 0 950 900V300A50 50 0 0 0 900 250H300A50 50 0 0 0 250 300V900A50 50 0 0 0 300 950z","horizAdvX":"1200"},"stop-line":{"path":["M0 0h24v24H0z","M7 7v10h10V7H7zM6 5h12a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M350 850V350H850V850H350zM300 950H900A50 50 0 0 0 950 900V300A50 50 0 0 0 900 250H300A50 50 0 0 0 250 300V900A50 50 0 0 0 300 950z","horizAdvX":"1200"},"stop-mini-fill":{"path":["M0 0h24v24H0z","M6 7v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z"],"unicode":"","glyph":"M300 850V350A50 50 0 0 1 350 300H850A50 50 0 0 1 900 350V850A50 50 0 0 1 850 900H350A50 50 0 0 1 300 850z","horizAdvX":"1200"},"stop-mini-line":{"path":["M0 0h24v24H0z","M8 8v8h8V8H8zM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V7z"],"unicode":"","glyph":"M400 800V400H800V800H400zM300 850A50 50 0 0 0 350 900H850A50 50 0 0 0 900 850V350A50 50 0 0 0 850 300H350A50 50 0 0 0 300 350V850z","horizAdvX":"1200"},"store-2-fill":{"path":["M0 0h24v24H0z","M22 20v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242V20h1zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"],"unicode":"","glyph":"M1100 200V100H100V200H150V537.9A224.8 224.8 0 0 0 50 725C50 766.35 61.2 806.2 81.65 840.15L217.25 1075A50 50 0 0 0 260.55 1100H939.5A50 50 0 0 0 982.8 1075L1117.8999999999999 840.9A224.8 224.8 0 0 0 1050 537.9V200H1100zM289.45 1000L167.8 789.35A125 125 0 0 1 391.1 678.5500000000001C407.85 720.4000000000001 467.1 720.4000000000001 483.9 678.5500000000001A125 125 0 0 1 716.1 678.5500000000001C732.8500000000001 720.4000000000001 792.1 720.4000000000001 808.9000000000001 678.5500000000001A125 125 0 1 1 1031.75 790.1500000000001L910.5 1000H289.5z","horizAdvX":"1200"},"store-2-line":{"path":["M0 0h24v24H0z","M21 13.242V20h1v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242zm-2 .73a4.496 4.496 0 0 1-3.75-1.36A4.496 4.496 0 0 1 12 14.001a4.496 4.496 0 0 1-3.25-1.387A4.496 4.496 0 0 1 5 13.973V20h14v-6.027zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"],"unicode":"","glyph":"M1050 537.9V200H1100V100H100V200H150V537.9A224.8 224.8 0 0 0 50 725C50 766.35 61.2 806.2 81.65 840.15L217.25 1075A50 50 0 0 0 260.55 1100H939.5A50 50 0 0 0 982.8 1075L1117.8999999999999 840.9A224.8 224.8 0 0 0 1050 537.9zM950 501.4A224.8 224.8 0 0 0 762.5 569.3999999999999A224.8 224.8 0 0 0 600 499.95A224.8 224.8 0 0 0 437.5 569.3000000000001A224.8 224.8 0 0 0 250 501.3499999999999V200H950V501.35zM289.45 1000L167.8 789.35A125 125 0 0 1 391.1 678.5500000000001C407.85 720.4000000000001 467.1 720.4000000000001 483.9 678.5500000000001A125 125 0 0 1 716.1 678.5500000000001C732.8500000000001 720.4000000000001 792.1 720.4000000000001 808.9000000000001 678.5500000000001A125 125 0 1 1 1031.75 790.1500000000001L910.5 1000H289.5z","horizAdvX":"1200"},"store-3-fill":{"path":["M0 0h24v24H0z","M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm1 1h8v3H6v-3zM3 3h18v2H3V3z"],"unicode":"","glyph":"M1050 550V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V550H100V650L150 900H1050L1100 650V550H1050zM250 550V250H950V550H250zM300 500H700V350H300V500zM150 1050H1050V950H150V1050z","horizAdvX":"1200"},"store-3-line":{"path":["M0 0h24v24H0z","M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm-.96-2h15.92l-.6-3H4.64l-.6 3zM6 14h8v3H6v-3zM3 3h18v2H3V3z"],"unicode":"","glyph":"M1050 550V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V550H100V650L150 900H1050L1100 650V550H1050zM250 550V250H950V550H250zM202 650H998L968 800H232L202 650zM300 500H700V350H300V500zM150 1050H1050V950H150V1050z","horizAdvX":"1200"},"store-fill":{"path":["M0 0h24v24H0z","M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"],"unicode":"","glyph":"M1050 617.6999999999999V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V617.6999999999999A199.25 199.25 0 0 0 100 750V1050A50 50 0 0 0 150 1100H1050A50 50 0 0 0 1100 1050V750C1100 699.3 1081.1 653 1050 617.6999999999999zM700 750A50 50 0 0 0 800 750A100 100 0 1 1 1000 750V1000H200V750A100 100 0 1 1 400 750A50 50 0 1 0 500 750A100 100 0 1 1 700 750z","horizAdvX":"1200"},"store-line":{"path":["M0 0h24v24H0z","M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zm-2 1.228a4.007 4.007 0 0 1-4-1.228A3.99 3.99 0 0 1 12 13a3.99 3.99 0 0 1-3-1.354 3.99 3.99 0 0 1-4 1.228V20h14v-7.126zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"],"unicode":"","glyph":"M1050 617.6999999999999V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V617.6999999999999A199.25 199.25 0 0 0 100 750V1050A50 50 0 0 0 150 1100H1050A50 50 0 0 0 1100 1050V750C1100 699.3 1081.1 653 1050 617.6999999999999zM950 556.3A200.34999999999997 200.34999999999997 0 0 0 750 617.6999999999999A199.5 199.5 0 0 0 600 550A199.5 199.5 0 0 0 450 617.6999999999999A199.5 199.5 0 0 0 250 556.3V200H950V556.3000000000001zM700 750A50 50 0 0 0 800 750A100 100 0 1 1 1000 750V1000H200V750A100 100 0 1 1 400 750A50 50 0 1 0 500 750A100 100 0 1 1 700 750z","horizAdvX":"1200"},"strikethrough-2":{"path":["M0 0h24v24H0z","M13 9h-2V6H5V4h14v2h-6v3zm0 6v5h-2v-5h2zM3 11h18v2H3v-2z"],"unicode":"","glyph":"M650 750H550V900H250V1000H950V900H650V750zM650 450V200H550V450H650zM150 650H1050V550H150V650z","horizAdvX":"1200"},"strikethrough":{"path":["M0 0h24v24H0z","M17.154 14c.23.516.346 1.09.346 1.72 0 1.342-.524 2.392-1.571 3.147C14.88 19.622 13.433 20 11.586 20c-1.64 0-3.263-.381-4.87-1.144V16.6c1.52.877 3.075 1.316 4.666 1.316 2.551 0 3.83-.732 3.839-2.197a2.21 2.21 0 0 0-.648-1.603l-.12-.117H3v-2h18v2h-3.846zm-4.078-3H7.629a4.086 4.086 0 0 1-.481-.522C6.716 9.92 6.5 9.246 6.5 8.452c0-1.236.466-2.287 1.397-3.153C8.83 4.433 10.271 4 12.222 4c1.471 0 2.879.328 4.222.984v2.152c-1.2-.687-2.515-1.03-3.946-1.03-2.48 0-3.719.782-3.719 2.346 0 .42.218.786.654 1.099.436.313.974.562 1.613.75.62.18 1.297.414 2.03.699z"],"unicode":"","glyph":"M857.7 500C869.2 474.2 875 445.5 875 414C875 346.9 848.8 294.3999999999999 796.45 256.65C744 218.9 671.65 200 579.3000000000001 200C497.3 200 416.1500000000001 219.05 335.8 257.2V369.9999999999999C411.8 326.15 489.55 304.2 569.1 304.2C696.6500000000001 304.2 760.6 340.8 761.0500000000001 414.05A110.50000000000001 110.50000000000001 0 0 1 728.6500000000001 494.1999999999999L722.6500000000001 500.05H150V600.05H1050V500.05H857.7zM653.8000000000001 650H381.45A204.3 204.3 0 0 0 357.4 676.1C335.8 704 325 737.7 325 777.4C325 839.2 348.3 891.75 394.85 935.05C441.5 978.35 513.5500000000001 1000 611.1 1000C684.65 1000 755.05 983.6 822.1999999999999 950.8V843.2C762.2 877.55 696.4499999999999 894.7 624.9 894.7C500.8999999999999 894.7 438.95 855.6 438.95 777.4C438.95 756.4 449.85 738.1 471.65 722.45C493.45 706.8 520.35 694.35 552.3 684.95C583.3 675.95 617.15 664.25 653.8 650z","horizAdvX":"1200"},"subscript-2":{"path":["M0 0h24v24H0z","M11 6v13H9V6H3V4h14v2h-6zm8.55 10.58a.8.8 0 1 0-1.32-.36l-1.154.33A2.001 2.001 0 0 1 19 14a2 2 0 0 1 1.373 3.454L18.744 19H21v1h-4v-1l2.55-2.42z"],"unicode":"","glyph":"M550 900V250H450V900H150V1000H850V900H550zM977.5 371.0000000000001A40.00000000000001 40.00000000000001 0 1 1 911.5 389L853.8000000000001 372.5000000000001A100.05000000000001 100.05000000000001 0 0 0 950 500A100 100 0 0 0 1018.65 327.3L937.2 250H1050V200H850V250L977.5 371.0000000000001z","horizAdvX":"1200"},"subscript":{"path":["M0 0h24v24H0z","M5.596 4L10.5 9.928 15.404 4H18l-6.202 7.497L18 18.994V19h-2.59l-4.91-5.934L5.59 19H3v-.006l6.202-7.497L3 4h2.596zM21.55 16.58a.8.8 0 1 0-1.32-.36l-1.155.33A2.001 2.001 0 0 1 21 14a2 2 0 0 1 1.373 3.454L20.744 19H23v1h-4v-1l2.55-2.42z"],"unicode":"","glyph":"M279.8 1000L525 703.5999999999999L770.2 1000H900L589.9 625.15L900 250.3V250H770.5L525 546.7L279.5 250H150V250.3L460.1 625.15L150 1000H279.8zM1077.5 371.0000000000001A40.00000000000001 40.00000000000001 0 1 1 1011.5 389L953.75 372.5000000000001A100.05000000000001 100.05000000000001 0 0 0 1050 500A100 100 0 0 0 1118.65 327.3L1037.2 250H1150V200H950V250L1077.5 371.0000000000001z","horizAdvX":"1200"},"subtract-fill":{"path":["M0 0h24v24H0z","M5 11h14v2H5z"],"unicode":"","glyph":"M250 650H950V550H250z","horizAdvX":"1200"},"subtract-line":{"path":["M0 0h24v24H0z","M5 11h14v2H5z"],"unicode":"","glyph":"M250 650H950V550H250z","horizAdvX":"1200"},"subway-fill":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM11 12V5H7a2 2 0 0 0-2 2v5h6zm2 0h6V7a2 2 0 0 0-2-2h-4v7zm-5.5 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM550 600V950H350A100 100 0 0 1 250 850V600H550zM650 600H950V850A100 100 0 0 1 850 950H650V600zM375 300A75 75 0 1 1 375 450A75 75 0 0 1 375 300zM825 300A75 75 0 1 1 825 450A75 75 0 0 1 825 300z","horizAdvX":"1200"},"subway-line":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM13 5v6h6V7a2 2 0 0 0-2-2h-4zm-2 0H7a2 2 0 0 0-2 2v4h6V5zm8 8H5v5h14v-5zM7.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM650 950V650H950V850A100 100 0 0 1 850 950H650zM550 950H350A100 100 0 0 1 250 850V650H550V950zM950 550H250V300H950V550zM375 350A75 75 0 1 0 375 500A75 75 0 0 0 375 350zM825 350A75 75 0 1 0 825 500A75 75 0 0 0 825 350z","horizAdvX":"1200"},"subway-wifi-fill":{"path":["M0 0h24v24H0z","M13 3v9h8v6a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h6zM7.5 15a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm9 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM11 5H7a2 2 0 0 0-1.995 1.85L5 7v5h6V5zm7.5-4a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M650 1050V600H1050V300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H650zM375 450A75 75 0 1 1 375 300A75 75 0 0 1 375 450zM825 450A75 75 0 1 1 825 300A75 75 0 0 1 825 450zM550 950H350A100 100 0 0 1 250.25 857.5L250 850V600H550V950zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"subway-wifi-line":{"path":["M0 0h24v24H0z","M21 18a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h6v8h8v7zm-2-5H5v5h14v-5zM7.5 14a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm9 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM11 5H7a2 2 0 0 0-1.995 1.85L5 7v4h6V5zm7.5-4a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M1050 300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H650V650H1050V300zM950 550H250V300H950V550zM375 500A75 75 0 1 0 375 350A75 75 0 0 0 375 500zM825 500A75 75 0 1 0 825 350A75 75 0 0 0 825 500zM550 950H350A100 100 0 0 1 250.25 857.5L250 850V650H550V950zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"suitcase-2-fill":{"path":["M0 0H24V24H0z","M18 23h-2v-1H8v1H6v-1H5c-1.105 0-2-.895-2-2V7c0-1.105.895-2 2-2h3V3c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v2h3c1.105 0 2 .895 2 2v13c0 1.105-.895 2-2 2h-1v1zM10 9H8v9h2V9zm6 0h-2v9h2V9zm-2-5h-4v1h4V4z"],"unicode":"","glyph":"M900 50H800V100H400V50H300V100H250C194.75 100 150 144.75 150 200V850C150 905.25 194.75 950 250 950H400V1050C400 1077.6 422.4000000000001 1100 450 1100H750C777.6 1100 800 1077.6 800 1050V950H950C1005.25 950 1050 905.25 1050 850V200C1050 144.75 1005.25 100 950 100H900V50zM500 750H400V300H500V750zM800 750H700V300H800V750zM700 1000H500V950H700V1000z","horizAdvX":"1200"},"suitcase-2-line":{"path":["M0 0H24V24H0z","M18 23h-2v-1H8v1H6v-1H5c-1.105 0-2-.895-2-2V7c0-1.105.895-2 2-2h3V3c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v2h3c1.105 0 2 .895 2 2v13c0 1.105-.895 2-2 2h-1v1zm1-16H5v13h14V7zm-9 2v9H8V9h2zm6 0v9h-2V9h2zm-2-5h-4v1h4V4z"],"unicode":"","glyph":"M900 50H800V100H400V50H300V100H250C194.75 100 150 144.75 150 200V850C150 905.25 194.75 950 250 950H400V1050C400 1077.6 422.4000000000001 1100 450 1100H750C777.6 1100 800 1077.6 800 1050V950H950C1005.25 950 1050 905.25 1050 850V200C1050 144.75 1005.25 100 950 100H900V50zM950 850H250V200H950V850zM500 750V300H400V750H500zM800 750V300H700V750H800zM700 1000H500V950H700V1000z","horizAdvX":"1200"},"suitcase-3-fill":{"path":["M0 0H24V24H0z","M15 1c.552 0 1 .448 1 1v5h1V6h2v1h1c.552 0 1 .448 1 1v12c0 .552-.448 1-1 1h-1v1h-2v-1H7v1H5v-1H4c-.552 0-1-.448-1-1V8c0-.552.448-1 1-1h1V6h2v1h1V2c0-.552.448-1 1-1h6zm-6 9H7v8h2v-8zm4 0h-2v8h2v-8zm4 0h-2v8h2v-8zm-3-7h-4v4h4V3z"],"unicode":"","glyph":"M750 1150C777.6 1150 800 1127.6 800 1100V850H850V900H950V850H1000C1027.6 850 1050 827.5999999999999 1050 800V200C1050 172.4000000000001 1027.6 150 1000 150H950V100H850V150H350V100H250V150H200C172.4 150 150 172.4000000000001 150 200V800C150 827.5999999999999 172.4 850 200 850H250V900H350V850H400V1100C400 1127.6 422.4000000000001 1150 450 1150H750zM450 700H350V300H450V700zM650 700H550V300H650V700zM850 700H750V300H850V700zM700 1050H500V850H700V1050z","horizAdvX":"1200"},"suitcase-3-line":{"path":["M0 0H24V24H0z","M15 1c.552 0 1 .448 1 1v5h1V6h2v1h1c.552 0 1 .448 1 1v12c0 .552-.448 1-1 1h-1v1h-2v-1H7v1H5v-1H4c-.552 0-1-.448-1-1V8c0-.552.448-1 1-1h1V6h2v1h1V2c0-.552.448-1 1-1h6zm4 8H5v10h14V9zM9 10v8H7v-8h2zm4 0v8h-2v-8h2zm4 0v8h-2v-8h2zm-3-7h-4v4h4V3z"],"unicode":"","glyph":"M750 1150C777.6 1150 800 1127.6 800 1100V850H850V900H950V850H1000C1027.6 850 1050 827.5999999999999 1050 800V200C1050 172.4000000000001 1027.6 150 1000 150H950V100H850V150H350V100H250V150H200C172.4 150 150 172.4000000000001 150 200V800C150 827.5999999999999 172.4 850 200 850H250V900H350V850H400V1100C400 1127.6 422.4000000000001 1150 450 1150H750zM950 750H250V250H950V750zM450 700V300H350V700H450zM650 700V300H550V700H650zM850 700V300H750V700H850zM700 1050H500V850H700V1050z","horizAdvX":"1200"},"suitcase-fill":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v13c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V7c0-.552.448-1 1-1h5V4c0-.552.448-1 1-1h6zM8 8H6v11h2V8zm10 0h-2v11h2V8zm-4-3h-4v1h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1050C1077.6 900 1100 877.5999999999999 1100 850V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V850C100 877.5999999999999 122.4 900 150 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM400 800H300V250H400V800zM900 800H800V250H900V800zM700 950H500V900H700V950z","horizAdvX":"1200"},"suitcase-line":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v13c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V7c0-.552.448-1 1-1h5V4c0-.552.448-1 1-1h6zm1 5H8v11h8V8zM4 8v11h2V8H4zm10-3h-4v1h4V5zm4 3v11h2V8h-2z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1050C1077.6 900 1100 877.5999999999999 1100 850V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V850C100 877.5999999999999 122.4 900 150 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM800 800H400V250H800V800zM200 800V250H300V800H200zM700 950H500V900H700V950zM900 800V250H1000V800H900z","horizAdvX":"1200"},"sun-cloudy-fill":{"path":["M0 0h24v24H0z","M9.984 5.06a6.5 6.5 0 1 1 11.286 6.436A5.5 5.5 0 0 1 17.5 21L9 20.999a8 8 0 1 1 .984-15.94zm2.071.544a8.026 8.026 0 0 1 4.403 4.495 5.529 5.529 0 0 1 3.12.307 4.5 4.5 0 0 0-7.522-4.802z"],"unicode":"","glyph":"M499.2 947A325 325 0 1 0 1063.5 625.2A275 275 0 0 0 875 150L450 150.05A400 400 0 1 0 499.2 947.05zM602.75 919.8A401.3 401.3 0 0 0 822.8999999999999 695.05A276.45000000000005 276.45000000000005 0 0 0 978.9 679.6999999999999A225 225 0 0 1 602.8 919.8z","horizAdvX":"1200"},"sun-cloudy-line":{"path":["M0 0h24v24H0z","M9.984 5.06a6.5 6.5 0 1 1 11.286 6.436A5.5 5.5 0 0 1 17.5 21L9 20.999a8 8 0 1 1 .984-15.94zm2.071.544a8.026 8.026 0 0 1 4.403 4.495 5.529 5.529 0 0 1 3.12.307 4.5 4.5 0 0 0-7.522-4.802zM17.5 19a3.5 3.5 0 1 0-2.5-5.95V13a6 6 0 1 0-6 6h8.5z"],"unicode":"","glyph":"M499.2 947A325 325 0 1 0 1063.5 625.2A275 275 0 0 0 875 150L450 150.05A400 400 0 1 0 499.2 947.05zM602.75 919.8A401.3 401.3 0 0 0 822.8999999999999 695.05A276.45000000000005 276.45000000000005 0 0 0 978.9 679.6999999999999A225 225 0 0 1 602.8 919.8zM875 250A175 175 0 1 1 750 547.5V550A300 300 0 1 1 450 250H875z","horizAdvX":"1200"},"sun-fill":{"path":["M0 0h24v24H0z","M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM550 1150H650V1000H550V1150zM550 200H650V50H550V200zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM281.8 352.5L352.5 281.8L246.45 175.75L175.75 246.4500000000001L281.8000000000001 352.5zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"sun-foggy-fill":{"path":["M0 0h24v24H0z","M6.341 14A6 6 0 1 1 12 18v-4H6.341zM6 20h9v2H6v-2zm-5-9h3v2H1v-2zm1 5h8v2H2v-2zm9-15h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3z"],"unicode":"","glyph":"M317.05 500A300 300 0 1 0 600 300V500H317.05zM300 200H750V100H300V200zM50 650H200V550H50V650zM100 400H500V300H100V400zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM1150 650V550H1000V650H1150z","horizAdvX":"1200"},"sun-foggy-line":{"path":["M0 0h24v24H0z","M8 12h2v2H4v-2h2a6 6 0 1 1 6 6v-2a4 4 0 1 0-4-4zm-2 8h9v2H6v-2zm-4-4h8v2H2v-2zm9-15h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3z"],"unicode":"","glyph":"M400 600H500V500H200V600H300A300 300 0 1 0 600 300V400A200 200 0 1 1 400 600zM300 200H750V100H300V200zM100 400H500V300H100V400zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM1150 650V550H1000V650H1150z","horizAdvX":"1200"},"sun-line":{"path":["M0 0h24v24H0z","M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400zM550 1150H650V1000H550V1150zM550 200H650V50H550V200zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM281.8 352.5L352.5 281.8L246.45 175.75L175.75 246.4500000000001L281.8000000000001 352.5zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"superscript-2":{"path":["M0 0h24v24H0z","M11 7v13H9V7H3V5h12v2h-4zm8.55-.42a.8.8 0 1 0-1.32-.36l-1.154.33A2.001 2.001 0 0 1 19 4a2 2 0 0 1 1.373 3.454L18.744 9H21v1h-4V9l2.55-2.42z"],"unicode":"","glyph":"M550 850V200H450V850H150V950H750V850H550zM977.5 871A40.00000000000001 40.00000000000001 0 1 1 911.5 889L853.8000000000001 872.5A100.05000000000001 100.05000000000001 0 0 0 950 1000A100 100 0 0 0 1018.65 827.3L937.2 750H1050V700H850V750L977.5 871z","horizAdvX":"1200"},"superscript":{"path":["M0 0h24v24H0z","M5.596 5l4.904 5.928L15.404 5H18l-6.202 7.497L18 19.994V20h-2.59l-4.91-5.934L5.59 20H3v-.006l6.202-7.497L3 5h2.596zM21.55 6.58a.8.8 0 1 0-1.32-.36l-1.155.33A2.001 2.001 0 0 1 21 4a2 2 0 0 1 1.373 3.454L20.744 9H23v1h-4V9l2.55-2.42z"],"unicode":"","glyph":"M279.8 950L525 653.5999999999999L770.2 950H900L589.9 575.15L900 200.3V200H770.5L525 496.7L279.5 200H150V200.3L460.1 575.15L150 950H279.8zM1077.5 871A40.00000000000001 40.00000000000001 0 1 1 1011.5 889L953.75 872.5A100.05000000000001 100.05000000000001 0 0 0 1050 1000A100 100 0 0 0 1118.65 827.3L1037.2 750H1150V700H950V750L1077.5 871z","horizAdvX":"1200"},"surgical-mask-fill":{"path":["M0 0H24V24H0z","M12.485 3.121l7.758 1.94c.445.11.757.51.757.97V7h1c1.1 0 2 .9 2 2v3c0 1.657-1.343 3-3 3h-.421c-.535 1.35-1.552 2.486-2.896 3.158l-4.789 2.395c-.563.281-1.225.281-1.788 0l-4.79-2.395C4.974 17.486 3.957 16.35 3.422 15H3c-1.657 0-3-1.343-3-3V9c0-1.105.895-2 2-2h1v-.97c0-.458.312-.858.757-.97l7.758-1.939c.318-.08.652-.08.97 0zM3 9H2v3c0 .552.448 1 1 1V9zm19 0h-1v4c.552 0 1-.448 1-1V9z"],"unicode":"","glyph":"M624.25 1043.95L1012.15 946.95C1034.3999999999999 941.45 1050 921.45 1050 898.45V850H1100C1155 850 1200 805 1200 750V600C1200 517.15 1132.85 450 1050 450H1028.95C1002.2 382.4999999999999 951.35 325.7 884.15 292.0999999999999L644.7 172.3499999999999C616.55 158.3 583.45 158.3 555.3 172.3499999999999L315.8 292.0999999999999C248.7 325.7 197.85 382.4999999999999 171.1 450H150C67.15 450 0 517.15 0 600V750C0 805.25 44.75 850 100 850H150V898.5C150 921.4 165.6 941.4 187.85 947L575.75 1043.95C591.65 1047.95 608.35 1047.95 624.2500000000001 1043.95zM150 750H100V600C100 572.4 122.4 550 150 550V750zM1100 750H1050V550C1077.6 550 1100 572.4 1100 600V750z","horizAdvX":"1200"},"surgical-mask-line":{"path":["M0 0H24V24H0z","M12.485 3.121l7.758 1.94c.445.11.757.51.757.97V7h1c1.1 0 2 .9 2 2v3c0 1.657-1.343 3-3 3h-.421c-.535 1.35-1.552 2.486-2.896 3.158l-4.789 2.395c-.563.281-1.225.281-1.788 0l-4.79-2.395C4.974 17.486 3.957 16.35 3.422 15H3c-1.657 0-3-1.343-3-3V9c0-1.105.895-2 2-2h1v-.97c0-.458.312-.858.757-.97l7.758-1.939c.318-.08.652-.08.97 0zM12 5.061l-7 1.75v5.98c0 1.516.856 2.9 2.211 3.579L12 18.764l4.789-2.394C18.144 15.692 19 14.307 19 12.792v-5.98l-7-1.75zM3 9H2v3c0 .552.448 1 1 1V9zm19 0h-1v4c.552 0 1-.448 1-1V9z"],"unicode":"","glyph":"M624.25 1043.95L1012.15 946.95C1034.3999999999999 941.45 1050 921.45 1050 898.45V850H1100C1155 850 1200 805 1200 750V600C1200 517.15 1132.85 450 1050 450H1028.95C1002.2 382.4999999999999 951.35 325.7 884.15 292.0999999999999L644.7 172.3499999999999C616.55 158.3 583.45 158.3 555.3 172.3499999999999L315.8 292.0999999999999C248.7 325.7 197.85 382.4999999999999 171.1 450H150C67.15 450 0 517.15 0 600V750C0 805.25 44.75 850 100 850H150V898.5C150 921.4 165.6 941.4 187.85 947L575.75 1043.95C591.65 1047.95 608.35 1047.95 624.2500000000001 1043.95zM600 946.95L250 859.45V560.4499999999999C250 484.65 292.8 415.45 360.55 381.5L600 261.8000000000001L839.45 381.5000000000001C907.2 415.4 950 484.65 950 560.4V859.4000000000001L600 946.9zM150 750H100V600C100 572.4 122.4 550 150 550V750zM1100 750H1050V550C1077.6 550 1100 572.4 1100 600V750z","horizAdvX":"1200"},"surround-sound-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.05 4.121A6.978 6.978 0 0 0 5 12.071c0 1.933.784 3.683 2.05 4.95l1.414-1.414A4.984 4.984 0 0 1 7 12.07c0-1.38.56-2.63 1.464-3.535L7.05 7.12zm9.9 0l-1.414 1.415A4.984 4.984 0 0 1 17 12.07c0 1.38-.56 2.63-1.464 3.536l1.414 1.414A6.978 6.978 0 0 0 19 12.07a6.978 6.978 0 0 0-2.05-4.95zM12 15.071a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-2a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM352.5 843.95A348.9 348.9 0 0 1 250 596.45C250 499.8000000000001 289.2 412.3000000000001 352.5 348.95L423.2000000000001 419.65A249.2 249.2 0 0 0 350 596.5C350 665.4999999999999 378 728 423.2000000000001 773.25L352.5 844zM847.5 843.95L776.8 773.1999999999999A249.2 249.2 0 0 0 850 596.5C850 527.5 822.0000000000001 465 776.8 419.7000000000001L847.5 349A348.9 348.9 0 0 1 950 596.5A348.9 348.9 0 0 1 847.5 844zM600 446.4500000000001A150 150 0 1 1 600 746.45A150 150 0 0 1 600 446.4500000000001zM600 546.45A50 50 0 1 0 600 646.45A50 50 0 0 0 600 546.45z","horizAdvX":"1200"},"surround-sound-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.05 4.121l1.414 1.415A4.984 4.984 0 0 0 7 12.07c0 1.38.56 2.63 1.464 3.536L7.05 17.02A6.978 6.978 0 0 1 5 12.07c0-1.933.784-3.683 2.05-4.95zm9.9 0a6.978 6.978 0 0 1 2.05 4.95 6.978 6.978 0 0 1-2.05 4.95l-1.414-1.414A4.984 4.984 0 0 0 17 12.07c0-1.38-.56-2.63-1.464-3.535L16.95 7.12zM12 13.071a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM352.5 843.95L423.2000000000001 773.1999999999999A249.2 249.2 0 0 1 350 596.5C350 527.5 378 465 423.2000000000001 419.7000000000001L352.5 349A348.9 348.9 0 0 0 250 596.5C250 693.15 289.2 780.65 352.5 844zM847.5 843.95A348.9 348.9 0 0 0 950 596.4499999999999A348.9 348.9 0 0 0 847.5 348.95L776.8 419.65A249.2 249.2 0 0 1 850 596.5C850 665.4999999999999 822.0000000000001 728 776.8 773.25L847.5 844zM600 546.45A50 50 0 1 1 600 646.45A50 50 0 0 1 600 546.45zM600 446.4500000000001A150 150 0 1 0 600 746.45A150 150 0 0 0 600 446.4500000000001z","horizAdvX":"1200"},"survey-fill":{"path":["M0 0L24 0 24 24 0 24z","M6 4v4h12V4h2.007c.548 0 .993.445.993.993v16.014c0 .548-.445.993-.993.993H3.993C3.445 22 3 21.555 3 21.007V4.993C3 4.445 3.445 4 3.993 4H6zm3 13H7v2h2v-2zm0-3H7v2h2v-2zm0-3H7v2h2v-2zm7-9v4H8V2h8z"],"unicode":"","glyph":"M300 1000V800H900V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001C1050 122.25 1027.75 100.0000000000002 1000.35 100.0000000000002H199.65C172.25 100 150 122.25 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H300zM450 350H350V250H450V350zM450 500H350V400H450V500zM450 650H350V550H450V650zM800 1100V900H400V1100H800z","horizAdvX":"1200"},"survey-line":{"path":["M0 0L24 0 24 24 0 24z","M17 2v2h3.007c.548 0 .993.445.993.993v16.014c0 .548-.445.993-.993.993H3.993C3.445 22 3 21.555 3 21.007V4.993C3 4.445 3.445 4 3.993 4H7V2h10zM7 6H5v14h14V6h-2v2H7V6zm2 10v2H7v-2h2zm0-3v2H7v-2h2zm0-3v2H7v-2h2zm6-6H9v2h6V4z"],"unicode":"","glyph":"M850 1100V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001C1050 122.25 1027.75 100.0000000000002 1000.35 100.0000000000002H199.65C172.25 100 150 122.25 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H350V1100H850zM350 900H250V200H950V900H850V800H350V900zM450 400V300H350V400H450zM450 550V450H350V550H450zM450 700V600H350V700H450zM750 1000H450V900H750V1000z","horizAdvX":"1200"},"swap-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm12 4v2h-4v2h4v2l3.5-3L15 7zM9 17v-2h4v-2H9v-2l-3.5 3L9 17z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM750 850V750H550V650H750V550L925 700L750 850zM450 350V450H650V550H450V650L275 500L450 350z","horizAdvX":"1200"},"swap-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm12 4l3.5 3-3.5 3v-2h-4V9h4V7zM9 17l-3.5-3L9 11v2h4v2H9v2z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM750 850L925 700L750 550V650H550V750H750V850zM450 350L275 500L450 650V550H650V450H450V350z","horizAdvX":"1200"},"swap-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 9h2v4h2V9h2l-3-3.5L7 9zm10 6h-2v-4h-2v4h-2l3 3.5 3-3.5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 750H450V550H550V750H650L500 925L350 750zM850 450H750V650H650V450H550L700 275L850 450z","horizAdvX":"1200"},"swap-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM7 9l3-3.5L13 9h-2v4H9V9H7zm10 6l-3 3.5-3-3.5h2v-4h2v4h2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 750L500 925L650 750H550V550H450V750H350zM850 450L700 275L550 450H650V650H750V450H850z","horizAdvX":"1200"},"switch-fill":{"path":["M0 0h24v24H0z","M13.619 21c-.085 0-.141-.057-.127-.127V3.127c0-.056.042-.113.113-.113h2.785A4.61 4.61 0 0 1 21 7.624v8.766A4.61 4.61 0 0 1 16.39 21H13.62zm3.422-9.926c-1.004 0-1.824.82-1.824 1.824s.82 1.824 1.824 1.824 1.824-.82 1.824-1.824-.82-1.824-1.824-1.824zM5.8 8.4c0-.933.763-1.696 1.696-1.696.934 0 1.697.763 1.697 1.696 0 .934-.763 1.697-1.697 1.697A1.702 1.702 0 0 1 5.8 8.401zM11.54 3c.085 0 .142.057.128.127V20.86c0 .07-.057.127-.128.127H7.61A4.61 4.61 0 0 1 3 16.376V7.61A4.61 4.61 0 0 1 7.61 3h3.93zm-1.315 16.544V4.442H7.61c-.849 0-1.64.34-2.235.933a3.088 3.088 0 0 0-.933 2.235v8.766c0 .849.34 1.64.933 2.234a3.088 3.088 0 0 0 2.235.934h2.615z"],"unicode":"","glyph":"M680.95 150C676.6999999999999 150 673.9 152.8499999999999 674.5999999999999 156.3499999999999V1043.65C674.5999999999999 1046.45 676.6999999999999 1049.3 680.2499999999999 1049.3H819.5A230.50000000000003 230.50000000000003 0 0 0 1050 818.8V380.5A230.50000000000003 230.50000000000003 0 0 0 819.5 150H681zM852.0500000000001 646.3C801.8499999999999 646.3 760.85 605.3 760.85 555.1S801.8499999999999 463.9 852.0500000000001 463.9S943.2500000000002 504.9000000000001 943.2500000000002 555.1S902.2500000000002 646.3 852.0500000000001 646.3zM290 780C290 826.65 328.15 864.8 374.8 864.8C421.5 864.8 459.65 826.65 459.65 780C459.65 733.3 421.5 695.1499999999999 374.8 695.1499999999999A85.1 85.1 0 0 0 290 779.95zM577 1050C581.25 1050 584.0999999999999 1047.15 583.4 1043.65V157C583.4 153.5 580.55 150.6500000000001 577 150.6500000000001H380.5A230.50000000000003 230.50000000000003 0 0 0 150 381.2V819.5A230.50000000000003 230.50000000000003 0 0 0 380.5 1050H577zM511.25 222.8V977.9H380.5C338.05 977.9 298.5000000000001 960.9 268.75 931.25A154.4 154.4 0 0 1 222.1 819.5V381.2000000000002C222.1 338.7500000000001 239.1 299.2000000000001 268.75 269.5A154.4 154.4 0 0 1 380.5 222.8H511.25z","horizAdvX":"1200"},"switch-line":{"path":["M0 0h24v24H0z","M12 3v18H7.6A4.6 4.6 0 0 1 3 16.4V7.6A4.6 4.6 0 0 1 7.6 3H12zm-2 2H7.6A2.6 2.6 0 0 0 5 7.6v8.8A2.6 2.6 0 0 0 7.6 19H10V5zm-2.5 5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM14 3h2.4A4.6 4.6 0 0 1 21 7.6v8.8a4.6 4.6 0 0 1-4.6 4.6H14V3zm3 11.7a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6z"],"unicode":"","glyph":"M600 1050V150H380A230 230 0 0 0 150 380.0000000000001V820A230 230 0 0 0 380 1050H600zM500 950H380A130 130 0 0 1 250 820V380.0000000000001A130 130 0 0 1 380 250H500V950zM375 700A75 75 0 1 0 375 850A75 75 0 0 0 375 700zM700 1050H819.9999999999999A230 230 0 0 0 1050 820V380.0000000000001A230 230 0 0 0 819.9999999999999 150H700V1050zM850 465A90.00000000000001 90.00000000000001 0 1 1 850 645A90.00000000000001 90.00000000000001 0 0 1 850 465z","horizAdvX":"1200"},"sword-fill":{"path":["M0 0h24v24H0z","M7.05 13.406l3.534 3.536-1.413 1.414 1.415 1.415-1.414 1.414-2.475-2.475-2.829 2.829-1.414-1.414 2.829-2.83-2.475-2.474 1.414-1.414 1.414 1.413 1.413-1.414zM3 3l3.546.003 11.817 11.818 1.415-1.414 1.414 1.414-2.474 2.475 2.828 2.829-1.414 1.414-2.829-2.829-2.475 2.475-1.414-1.414 1.414-1.415L3.003 6.531 3 3zm14.457 0L21 3.003l.002 3.523-4.053 4.052-3.536-3.535L17.457 3z"],"unicode":"","glyph":"M352.5 529.6999999999999L529.1999999999999 352.9L458.55 282.2L529.3 211.4499999999999L458.6 140.75L334.85 264.5L193.4 123.05L122.7 193.75L264.15 335.2499999999999L140.4 458.9499999999999L211.1 529.6499999999999L281.8 458.9999999999999L352.45 529.6999999999999zM150 1050L327.3 1049.85L918.15 458.95L988.9 529.65L1059.6 458.95L935.9 335.2000000000001L1077.3 193.75L1006.6 123.05L865.1499999999999 264.5L741.3999999999999 140.75L670.6999999999999 211.4499999999999L741.3999999999999 282.2L150.15 873.45L150 1050zM872.85 1050L1050 1049.85L1050.1 873.7L847.4499999999999 671.1L670.65 847.85L872.85 1050z","horizAdvX":"1200"},"sword-line":{"path":["M0 0h24v24H0z","M17.457 3L21 3.003l.002 3.523-5.467 5.466 2.828 2.829 1.415-1.414 1.414 1.414-2.474 2.475 2.828 2.829-1.414 1.414-2.829-2.829-2.475 2.475-1.414-1.414 1.414-1.415-2.829-2.828-2.828 2.828 1.415 1.415-1.414 1.414-2.475-2.475-2.829 2.829-1.414-1.414 2.829-2.83-2.475-2.474 1.414-1.414 1.414 1.413 2.827-2.828-5.46-5.46L3 3l3.546.003 5.453 5.454L17.457 3zm-7.58 10.406L7.05 16.234l.708.707 2.827-2.828-.707-.707zm9.124-8.405h-.717l-4.87 4.869.706.707 4.881-4.879v-.697zm-14 0v.7l11.241 11.241.707-.707L5.716 5.002l-.715-.001z"],"unicode":"","glyph":"M872.85 1050L1050 1049.85L1050.1 873.7L776.75 600.4L918.15 458.9499999999999L988.9 529.6499999999999L1059.6 458.9499999999999L935.9 335.1999999999998L1077.3 193.7499999999998L1006.6 123.0499999999997L865.1499999999999 264.4999999999998L741.3999999999999 140.7499999999998L670.6999999999999 211.4499999999998L741.3999999999999 282.1999999999997L599.9499999999998 423.5999999999997L458.5499999999999 282.1999999999997L529.3 211.4499999999998L458.6 140.7499999999998L334.85 264.4999999999998L193.4 123.0499999999997L122.7 193.7499999999998L264.15 335.2499999999999L140.4 458.9499999999999L211.1 529.6499999999999L281.8 458.9999999999999L423.15 600.3999999999999L150.15 873.3999999999999L150 1050L327.3 1049.85L599.9499999999999 777.15L872.85 1050zM493.85 529.6999999999999L352.5 388.3L387.9 352.9499999999998L529.25 494.3499999999998L493.9 529.6999999999999zM950.05 949.95H914.2000000000002L670.7 706.5L706 671.1499999999999L950.05 915.1V949.95zM250.0500000000001 949.95V914.95L812.1 352.9L847.45 388.25L285.8 949.9L250.05 949.95z","horizAdvX":"1200"},"syringe-fill":{"path":["M0 0H24V24H0z","M21.678 7.98l-1.415 1.413-2.12-2.12-2.122 2.12 3.535 3.536-1.414 1.414-.707-.707L11.071 20H5.414l-2.121 2.121-1.414-1.414L4 18.586v-5.657l6.364-6.364-.707-.707 1.414-1.414 3.536 3.535 2.12-2.121-2.12-2.121 1.414-1.415 5.657 5.657zM9.657 14.342l-2.829-2.828-1.414 1.414 2.829 2.828 1.414-1.414zm2.828-2.828L9.657 8.686l-1.414 1.415 2.828 2.828 1.414-1.414z"],"unicode":"","glyph":"M1083.9 801L1013.15 730.3499999999999L907.15 836.3499999999999L801.0500000000001 730.3499999999999L977.8 553.55L907.1 482.85L871.7499999999999 518.2L553.55 200H270.7L164.65 93.9500000000001L93.95 164.6500000000001L200 270.7000000000001V553.5500000000001L518.2 871.75L482.85 907.1000000000003L553.55 977.8L730.3499999999999 801.0500000000001L836.35 907.1000000000003L730.3499999999999 1013.15L801.0500000000001 1083.9L1083.9 801.0500000000001zM482.85 482.9L341.4 624.3L270.7 553.5999999999999L412.1500000000001 412.2000000000001L482.85 482.9zM624.25 624.3L482.85 765.7L412.1500000000001 694.95L553.55 553.5500000000001L624.25 624.2500000000001z","horizAdvX":"1200"},"syringe-line":{"path":["M0 0H24V24H0z","M21.678 7.98l-1.415 1.413-2.12-2.12-2.122 2.12 3.535 3.536-1.414 1.414-.707-.707L11.071 20H5.414l-2.121 2.121-1.414-1.414L4 18.586v-5.657l6.364-6.364-.707-.707 1.414-1.414 3.536 3.535 2.12-2.121-2.12-2.121 1.414-1.415 5.657 5.657zm-5.657 4.242l-4.243-4.243-1.414 1.414 2.121 2.122-1.414 1.414-2.121-2.121-1.414 1.414 2.12 2.121-1.413 1.414-2.122-2.121-.121.121V18h4.243l5.778-5.778z"],"unicode":"","glyph":"M1083.9 801L1013.15 730.3499999999999L907.15 836.3499999999999L801.0500000000001 730.3499999999999L977.8 553.55L907.1 482.85L871.7499999999999 518.2L553.55 200H270.7L164.65 93.9500000000001L93.95 164.6500000000001L200 270.7000000000001V553.5500000000001L518.2 871.75L482.85 907.1000000000003L553.55 977.8L730.3499999999999 801.0500000000001L836.35 907.1000000000003L730.3499999999999 1013.15L801.0500000000001 1083.9L1083.9 801.0500000000001zM801.0500000000001 588.9L588.9 801.05L518.2 730.3499999999999L624.2500000000001 624.25L553.5500000000001 553.55L447.5000000000001 659.6L376.8000000000001 588.9L482.8000000000001 482.85L412.1500000000001 412.15L306.0500000000002 518.2L300.0000000000001 512.15V300H512.1500000000001L801.0500000000001 588.9z","horizAdvX":"1200"},"t-box-fill":{"path":["M0 0h24v24H0z","M17 8H7v2h4v7h2v-7h4V8zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M850 800H350V700H550V350H650V700H850V800zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"t-box-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 7v7h-2v-7H7V8h10v2h-4z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM650 700V350H550V700H350V800H850V700H650z","horizAdvX":"1200"},"t-shirt-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-2.001L19 20a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6a3 3 0 0 0 6 0h6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H949.95L950 200A50 50 0 0 0 900 150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450A150 150 0 0 1 750 1050H1050z","horizAdvX":"1200"},"t-shirt-2-line":{"path":["M0 0h24v24H0z","M9 3a3 3 0 0 0 6 0h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-2.001L19 20a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm11 1.999h-3.417l-.017.041a5.002 5.002 0 0 1-4.35 2.955L12 8a5.001 5.001 0 0 1-4.566-2.96L7.416 5H4v5l2.999-.001V19H17l-.001-9L20 9.999v-5z"],"unicode":"","glyph":"M450 1050A150 150 0 0 1 750 1050H1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H949.95L950 200A50 50 0 0 0 900 150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450zM1000 950.05H829.1499999999999L828.3 948A250.09999999999997 250.09999999999997 0 0 0 610.8 800.25L600 800A250.05000000000004 250.05000000000004 0 0 0 371.7 948L370.8 950H200V700L349.9500000000001 700.05V250H850L849.9499999999999 700L1000 700.05V950.05z","horizAdvX":"1200"},"t-shirt-air-fill":{"path":["M0 0h24v24H0z","M12.707 17.793C13.534 18.62 14.295 19 15 19c.378 0 .68-.067 1.237-.276l.392-.152C17.679 18.15 18.209 18 19 18c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 20.38 19.705 20 19 20c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414zM9 3a3 3 0 0 0 6 0h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-9a2 2 0 0 0-1.995 1.85L10 14v7H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm3.707 10.793C13.534 14.62 14.295 15 15 15c.378 0 .68-.067 1.237-.276l.392-.152C17.679 14.15 18.209 14 19 14c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 16.38 19.705 16 19 16c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414z"],"unicode":"","glyph":"M635.35 310.35C676.7 269 714.75 250 750 250C768.9 250 784 253.35 811.8500000000001 263.8L831.45 271.4000000000001C883.9499999999999 292.5000000000001 910.45 300 950 300C1010.7 300 1068.95 272.7499999999999 1124.3 221.0000000000001L1135.3500000000001 210.35L1064.6499999999999 139.6499999999999C1023.3 181 985.2499999999998 200 950 200C931.1 200 916 196.65 888.1499999999999 186.2000000000001L868.55 178.5999999999999C816.05 157.55 789.55 150 749.9999999999999 150C689.2999999999998 150 631.05 177.2500000000001 575.6999999999999 228.9999999999999L564.6499999999999 239.65L635.3499999999999 310.35zM450 1050A150 150 0 0 1 750 1050H1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H600A100 100 0 0 1 500.2499999999999 507.5L500 500V150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450zM635.35 510.35C676.7 469 714.75 450 750 450C768.9 450 784 453.35 811.8500000000001 463.8L831.45 471.4C883.9499999999999 492.5 910.45 500 950 500C1010.7 500 1068.95 472.75 1124.3 421L1135.3500000000001 410.35L1064.6499999999999 339.65C1023.3 381 985.2499999999998 400 950 400C931.1 400 916 396.65 888.1499999999999 386.2000000000001L868.55 378.5999999999999C816.05 357.55 789.55 350 749.9999999999999 350C689.2999999999998 350 631.05 377.2500000000001 575.6999999999999 429L564.6499999999999 439.65L635.3499999999999 510.3499999999999z","horizAdvX":"1200"},"t-shirt-air-line":{"path":["M0 0h24v24H0z","M12.707 17.793C13.534 18.62 14.295 19 15 19c.378 0 .68-.067 1.237-.276l.392-.152C17.679 18.15 18.209 18 19 18c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 20.38 19.705 20 19 20c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414zM9 3a3 3 0 0 0 6 0h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-4.002v-2L20 9.999v-5h-3.417l-.017.041a5.002 5.002 0 0 1-4.35 2.955L12 8a5.001 5.001 0 0 1-4.566-2.96L7.416 5H4v5l2.999-.001V19H10v2H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm3.707 10.793C13.534 14.62 14.295 15 15 15c.378 0 .68-.067 1.237-.276l.392-.152C17.679 14.15 18.209 14 19 14c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 16.38 19.705 16 19 16c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414z"],"unicode":"","glyph":"M635.35 310.35C676.7 269 714.75 250 750 250C768.9 250 784 253.35 811.8500000000001 263.8L831.45 271.4000000000001C883.9499999999999 292.5000000000001 910.45 300 950 300C1010.7 300 1068.95 272.7499999999999 1124.3 221.0000000000001L1135.3500000000001 210.35L1064.6499999999999 139.6499999999999C1023.3 181 985.2499999999998 200 950 200C931.1 200 916 196.65 888.1499999999999 186.2000000000001L868.55 178.5999999999999C816.05 157.55 789.55 150 749.9999999999999 150C689.2999999999998 150 631.05 177.2500000000001 575.6999999999999 228.9999999999999L564.6499999999999 239.65L635.3499999999999 310.35zM450 1050A150 150 0 0 1 750 1050H1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H849.9000000000001V700L1000 700.05V950.05H829.1499999999999L828.3 948A250.09999999999997 250.09999999999997 0 0 0 610.8 800.25L600 800A250.05000000000004 250.05000000000004 0 0 0 371.7 948L370.8 950H200V700L349.9500000000001 700.05V250H500V150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450zM635.35 510.35C676.7 469 714.75 450 750 450C768.9 450 784 453.35 811.8500000000001 463.8L831.45 471.4C883.9499999999999 492.5 910.45 500 950 500C1010.7 500 1068.95 472.75 1124.3 421L1135.3500000000001 410.35L1064.6499999999999 339.65C1023.3 381 985.2499999999998 400 950 400C931.1 400 916 396.65 888.1499999999999 386.2000000000001L868.55 378.5999999999999C816.05 357.55 789.55 350 749.9999999999999 350C689.2999999999998 350 631.05 377.2500000000001 575.6999999999999 429L564.6499999999999 439.65L635.3499999999999 510.3499999999999z","horizAdvX":"1200"},"t-shirt-fill":{"path":["M0 0h24v24H0z","M14.515 5l2.606-2.607a1 1 0 0 1 1.415 0l4.242 4.243a1 1 0 0 1 0 1.414L19 11.828V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9.172L1.222 8.05a1 1 0 0 1 0-1.414l4.242-4.243a1 1 0 0 1 1.415 0L9.485 5h5.03z"],"unicode":"","glyph":"M725.75 950L856.0500000000001 1080.35A50 50 0 0 0 926.8 1080.35L1138.9 868.2A50 50 0 0 0 1138.9 797.5L950 608.6V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V608.6L61.1 797.5A50 50 0 0 0 61.1 868.1999999999999L273.2000000000001 1080.35A50 50 0 0 0 343.9500000000001 1080.35L474.25 950H725.75z","horizAdvX":"1200"},"t-shirt-line":{"path":["M0 0h24v24H0z","M14.515 5l2.606-2.607a1 1 0 0 1 1.415 0l4.242 4.243a1 1 0 0 1 0 1.414L19 11.828V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9.172L1.222 8.05a1 1 0 0 1 0-1.414l4.242-4.243a1 1 0 0 1 1.415 0L9.485 5h5.03zm.828 2H8.657L6.172 4.515 3.343 7.343 7 11v9h10v-9l3.657-3.657-2.829-2.828L15.343 7z"],"unicode":"","glyph":"M725.75 950L856.0500000000001 1080.35A50 50 0 0 0 926.8 1080.35L1138.9 868.2A50 50 0 0 0 1138.9 797.5L950 608.6V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V608.6L61.1 797.5A50 50 0 0 0 61.1 868.1999999999999L273.2000000000001 1080.35A50 50 0 0 0 343.9500000000001 1080.35L474.25 950H725.75zM767.15 850H432.85L308.6 974.25L167.15 832.85L350 650V200H850V650L1032.85 832.85L891.4 974.25L767.15 850z","horizAdvX":"1200"},"table-2":{"path":["M0 0h24v24H0z","M13 10v4h6v-4h-6zm-2 0H5v4h6v-4zm2 9h6v-3h-6v3zm-2 0v-3H5v3h6zm2-14v3h6V5h-6zm-2 0H5v3h6V5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M650 700V500H950V700H650zM550 700H250V500H550V700zM650 250H950V400H650V250zM550 250V400H250V250H550zM650 950V800H950V950H650zM550 950H250V800H550V950zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"table-alt-fill":{"path":["M0 0h24v24H0z","M7 14V3H3a1 1 0 0 0-1 1v10h5zm8 0V3H9v11h6zm7 0V4a1 1 0 0 0-1-1h-4v11h5zm-1 7a1 1 0 0 0 1-1v-4H2v4a1 1 0 0 0 1 1h18z"],"unicode":"","glyph":"M350 500V1050H150A50 50 0 0 1 100 1000V500H350zM750 500V1050H450V500H750zM1100 500V1000A50 50 0 0 1 1050 1050H850V500H1100zM1050 150A50 50 0 0 1 1100 200V400H100V200A50 50 0 0 1 150 150H1050z","horizAdvX":"1200"},"table-alt-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 13H4v3h16v-3zM8 5H4v9h4V5zm6 0h-4v9h4V5zm6 0h-4v9h4V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 400H200V250H1000V400zM400 950H200V500H400V950zM700 950H500V500H700V950zM1000 950H800V500H1000V950z","horizAdvX":"1200"},"table-fill":{"path":["M0 0h24v24H0z","M15 21H9V10h6v11zm2 0V10h5v10a1 1 0 0 1-1 1h-4zM7 21H3a1 1 0 0 1-1-1V10h5v11zM22 8H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4z"],"unicode":"","glyph":"M750 150H450V700H750V150zM850 150V700H1100V200A50 50 0 0 0 1050 150H850zM350 150H150A50 50 0 0 0 100 200V700H350V150zM1100 800H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V800z","horizAdvX":"1200"},"table-line":{"path":["M0 0h24v24H0z","M4 8h16V5H4v3zm10 11v-9h-4v9h4zm2 0h4v-9h-4v9zm-8 0v-9H4v9h4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M200 800H1000V950H200V800zM700 250V700H500V250H700zM800 250H1000V700H800V250zM400 250V700H200V250H400zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050z","horizAdvX":"1200"},"tablet-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm7 15a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM600 350A50 50 0 1 1 600 250A50 50 0 0 1 600 350z","horizAdvX":"1200"},"tablet-line":{"path":["M0 0h24v24H0z","M6 4v16h12V4H6zM5 2h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm7 15a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"],"unicode":"","glyph":"M300 1000V200H900V1000H300zM250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM600 350A50 50 0 1 0 600 250A50 50 0 0 0 600 350z","horizAdvX":"1200"},"takeaway-fill":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,2.999 L22,3 L22,9 L19.98,8.999 L22.7467496,16.595251 C22.9104689,17.0320314 23,17.5050658 23,17.9990113 C23,20.2081503 21.209139,21.9990113 19,21.9990113 C17.1367966,21.9990113 15.5711292,20.7251084 15.1264725,19.0007774 L10.8737865,19.0007613 C10.429479,20.7256022 8.86356525,22 7,22 C5.05513052,22 3.43445123,20.6119768 3.07453347,18.7725019 C2.43557576,18.4390399 2,17.770387 2,17 L2,12 L11,12 C11,12.5128358 11.3860402,12.9355072 11.8833789,12.9932723 L12,13 L14,13 C14.5128358,13 14.9355072,12.6139598 14.9932723,12.1166211 L15,12 L15,3 L12,3 L12,1 L16,1 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M19,16 C17.8954305,16 17,16.8954305 17,18 C17,19.1045695 17.8954305,20 19,20 C20.1045695,20 21,19.1045695 21,18 C21,16.8954305 20.1045695,16 19,16 Z M10,3 C10.5522847,3 11,3.44771525 11,4 L11,11 L2,11 L2,4 C2,3.44771525 2.44771525,3 3,3 L10,3 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z M9,5 L4,5 L4,6 L9,6 L9,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050.05L1100 1050L1100 750L999 750.05L1137.3374800000001 370.23745C1145.523445 348.39843 1150 324.74671 1150 300.049435C1150 189.592485 1060.45695 100.0494350000001 950 100.0494350000001C856.83983 100.0494350000001 778.55646 163.7445800000001 756.323625 249.9611300000001L543.6893249999999 249.961935C521.4739500000001 163.7198899999999 443.1782625 100 350 100C252.756526 100 171.7225615 169.4011599999999 153.7266735 261.3749049999999C121.778788 278.048005 100 311.48065 100 350L100 600L550 600C550 574.35821 569.30201 553.22464 594.168945 550.3363850000001L600 550L700 550C725.64179 550 746.77536 569.30201 749.6636149999999 594.168945L750 600L750 1050L600 1050L600 1150L800 1150zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM950 400C894.771525 400 850 355.228475 850 300C850 244.771525 894.771525 200 950 200C1005.228475 200 1050 244.771525 1050 300C1050 355.228475 1005.228475 400 950 400zM500 1050C527.614235 1050 550 1027.6142375 550 1000L550 650L100 650L100 1000C100 1027.6142375 122.3857625 1050 150 1050L500 1050zM1000 950L850 950L850 850L1000 850L1000 950zM450 950L200 950L200 900L450 900L450 950z","horizAdvX":"1200"},"takeaway-line":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,2.999 L22,3 L22,9 L19.98,8.999 L22.7467496,16.595251 C22.9104689,17.0320314 23,17.5050658 23,17.9990113 C23,20.2081503 21.209139,21.9990113 19,21.9990113 C17.1367966,21.9990113 15.5711292,20.7251084 15.1264725,19.0007774 L10.8737865,19.0007613 C10.429479,20.7256022 8.86356525,22 7,22 C5.05513052,22 3.43445123,20.6119768 3.07453347,18.7725019 C2.43557576,18.4390399 2,17.770387 2,17 L2,4 C2,3.44771525 2.44771525,3 3,3 L10,3 C10.5522847,3 11,3.44771525 11,4 L11,12 C11,12.5128358 11.3860402,12.9355072 11.8833789,12.9932723 L12,13 L14,13 C14.5128358,13 14.9355072,12.6139598 14.9932723,12.1166211 L15,12 L15,3 L12,3 L12,1 L16,1 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M19,15.9990113 C17.8954305,15.9990113 17,16.8944418 17,17.9990113 C17,19.1035808 17.8954305,19.9990113 19,19.9990113 C20.1045695,19.9990113 21,19.1035808 21,17.9990113 C21,16.8944418 20.1045695,15.9990113 19,15.9990113 Z M17.852,8.999 L17,8.999 L17,12 C17,13.6568542 15.6568542,15 14,15 L12,15 C10.6941178,15 9.58311485,14.1656226 9.17102423,13.0009007 L3.99994303,13 L3.99994303,15.3542402 C4.73288889,14.523782 5.80527652,14 7,14 C8.86392711,14 10.4300871,15.2748927 10.8740452,17.0002597 L15.1256964,17.0002597 C15.5693048,15.2743991 17.135711,13.9990113 19,13.9990113 C19.2372818,13.9990113 19.469738,14.019672 19.6956678,14.0592925 L17.852,8.999 Z M9,8 L4,8 L4,11 L9,11 L9,8 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z M9,5 L4,5 L4,6 L9,6 L9,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050.05L1100 1050L1100 750L999 750.05L1137.3374800000001 370.23745C1145.523445 348.39843 1150 324.74671 1150 300.049435C1150 189.592485 1060.45695 100.0494350000001 950 100.0494350000001C856.83983 100.0494350000001 778.55646 163.7445800000001 756.323625 249.9611300000001L543.6893249999999 249.961935C521.4739500000001 163.7198899999999 443.1782625 100 350 100C252.756526 100 171.7225615 169.4011599999999 153.7266735 261.3749049999999C121.778788 278.048005 100 311.48065 100 350L100 1000C100 1027.6142375 122.3857625 1050 150 1050L500 1050C527.614235 1050 550 1027.6142375 550 1000L550 600C550 574.35821 569.30201 553.22464 594.168945 550.3363850000001L600 550L700 550C725.64179 550 746.77536 569.30201 749.6636149999999 594.168945L750 600L750 1050L600 1050L600 1150L800 1150zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM950 400.049435C894.771525 400.049435 850 355.27791 850 300.049435C850 244.82096 894.771525 200.049435 950 200.049435C1005.228475 200.049435 1050 244.82096 1050 300.049435C1050 355.27791 1005.228475 400.049435 950 400.049435zM892.6 750.05L850 750.05L850 600C850 517.15729 782.84271 450 700 450L600 450C534.7058900000001 450 479.1557425 491.7188699999999 458.5512115 549.954965L199.9971515 550L199.9971515 432.2879900000001C236.6444445 473.8108999999999 290.263826 500 350 500C443.1963555000001 500 521.504355 436.255365 543.70226 349.987015L756.2848200000001 349.987015C778.46524 436.280045 856.7855500000001 500.049435 950 500.049435C961.86409 500.049435 973.4869 499.0164 984.78339 497.035375L892.6 750.05zM450 800L200 800L200 650L450 650L450 800zM1000 950L850 950L850 850L1000 850L1000 950zM450 950L200 950L200 900L450 900L450 950z","horizAdvX":"1200"},"taobao-fill":{"path":["M0 0h24v24H0z","M3.576 8.277l-1.193 1.842 2.2 1.371s1.464.754.763 2.169c-.65 1.338-3.846 4.27-3.846 4.27l2.862 1.798c1.984-4.326 1.85-3.75 2.347-5.306.512-1.58.624-2.794-.242-3.677-1.113-1.125-1.238-1.23-2.891-2.467zm1.564-.694c1.04 0 1.883-.758 1.883-1.693 0-.943-.843-1.701-1.883-1.701-1.048 0-1.887.762-1.887 1.701.005.931.84 1.693 1.887 1.693zm17.005.21s-.624-4.87-11.207-1.854c.455-.795.669-1.307.669-1.307l-2.64-.75s-1.07 3.508-2.972 5.14c0 0 1.846 1.073 1.826 1.04a17.07 17.07 0 0 0 1.407-1.596c.424-.19.83-.363 1.226-.524-.492.887-1.278 2.218-2.068 3.056l1.112.984s.762-.738 1.589-1.62h.943v1.636H8.345v1.306h3.685v3.133l-.14-.004c-.408-.02-1.037-.089-1.287-.484-.298-.484-.077-1.359-.064-1.903H7.995l-.093.052s-.935 4.205 2.689 4.113c3.386.092 5.33-.956 6.265-1.677l.37 1.394 2.09-.882-1.416-3.484-1.693.536.314 1.19c-.427.33-.93.572-1.467.754v-2.738h3.592v-1.31h-3.592v-1.637h3.604V9.051h-6.41c.464-.569.822-1.089.92-1.415l-1.122-.307c4.798-1.733 7.47-1.435 7.45 1.403v7.475s.283 2.564-2.636 2.383l-1.58-.343-.367 1.512s6.817 1.967 7.374-3.314c.552-5.282-.142-8.652-.142-8.652z"],"unicode":"","glyph":"M178.8 786.1500000000001L119.15 694.05L229.15 625.5S302.35 587.8 267.3 517.05C234.8 450.15 75 303.55 75 303.55L218.1 213.6499999999999C317.3 429.9499999999998 310.6 401.1499999999999 335.45 478.9499999999998C361.05 557.9499999999998 366.65 618.6499999999999 323.35 662.7999999999998C267.7 719.0499999999998 261.45 724.2999999999998 178.8 786.1499999999999zM257 820.85C309.0000000000001 820.85 351.1500000000001 858.75 351.1500000000001 905.5C351.1500000000001 952.65 309.0000000000001 990.55 257 990.55C204.6 990.55 162.65 952.45 162.65 905.5C162.9 858.95 204.65 820.8500000000001 257 820.8500000000001zM1107.25 810.35S1076.05 1053.8500000000001 546.9 903.05C569.65 942.8 580.3499999999999 968.4 580.3499999999999 968.4L448.3499999999999 1005.9S394.8499999999999 830.5 299.75 748.9000000000001C299.75 748.9000000000001 392.05 695.25 391.05 696.9000000000001A853.5000000000001 853.5000000000001 0 0 1 461.4 776.7C482.6 786.2 502.9 794.8500000000001 522.7 802.9000000000001C498.1 758.5500000000002 458.8 692.0000000000002 419.3000000000001 650.1000000000001L474.9 600.9000000000001S513.0000000000001 637.8000000000001 554.35 681.9000000000001H601.5V600.1000000000001H417.2500000000001V534.8000000000001H601.5V378.1500000000001L594.5 378.3500000000002C574.1 379.3500000000002 542.6500000000001 382.8000000000001 530.1500000000001 402.5500000000002C515.2500000000001 426.7500000000003 526.3000000000001 470.5000000000002 526.95 497.7000000000002H399.75L395.1 495.1000000000003S348.35 284.8500000000002 529.5500000000001 289.4500000000003C698.85 284.8500000000004 796.0500000000001 337.2500000000003 842.8000000000001 373.3000000000002L861.3000000000002 303.6000000000004L965.8000000000002 347.7000000000004L895.0000000000001 521.9000000000004L810.35 495.1000000000004L826.0500000000001 435.6000000000005C804.7 419.1000000000005 779.5500000000001 407.0000000000005 752.7 397.9000000000005V534.8000000000004H932.3V600.3000000000004H752.7V682.1500000000004H932.9V747.45H612.4000000000001C635.6 775.9000000000001 653.5 801.9000000000001 658.4000000000001 818.2L602.3000000000001 833.55C842.2 920.2 975.8 905.3 974.8 763.4000000000001V389.65S988.9500000000002 261.45 843.0000000000001 270.5L764.0000000000001 287.65L745.6500000000002 212.05S1086.5000000000002 113.7000000000001 1114.3500000000001 377.75C1141.95 641.85 1107.2500000000002 810.3499999999999 1107.2500000000002 810.3499999999999z","horizAdvX":"1200"},"taobao-line":{"path":["M0 0h24v24H0z","M17.172 14H14.5v1.375c.55-.221 1.153-.49 1.812-.81l-.082-.238.942-.327zm.828-.287l.12-.042c.641 1.851 1.034 3.012 1.185 3.5l-1.912.59c-.074-.24-.216-.672-.427-1.293-6.081 2.885-8.671 2.054-9.008-1.907l1.993-.17c.1 1.165.344 1.622.897 1.752.393.093.94.063 1.652-.104V14H9v-2h.513l-1.167-1.39c1.043-.876 1.858-1.83 2.448-2.864-.518.135-1.037.28-1.551.435a13.955 13.955 0 0 1-1.754 2.109l-1.4-1.428c1.272-1.248 2.333-2.91 3.176-4.994l1.854.75a21.71 21.71 0 0 1-.48 1.101c3.702-.936 7.275-1.317 9.138-.68 1.223.418 1.919 1.391 2.187 2.584.17.756.313 2.689.313 5.123 0 2.807-.056 3.77-.34 4.622-.297.89-.696 1.418-1.407 1.984-.657.523-1.553.763-2.645.823-.673.037-1.368.003-2.095-.08a19.614 19.614 0 0 1-.596-.075l.264-1.982a57.039 57.039 0 0 0 .556.07c.625.07 1.216.1 1.762.07.714-.04 1.245-.181 1.508-.39.426-.34.591-.558.756-1.054.186-.554.237-1.448.237-3.988 0-2.299-.133-4.102-.264-4.683-.13-.577-.41-.97-.883-1.132-1.207-.412-3.801-.194-6.652.417l.615.262c-.13.302-.273.6-.43.89H18v2h-3.5V12H18v1.713zM12.5 10.5h-1.208A13.685 13.685 0 0 1 9.798 12H12.5v-1.5zm-10.039-.438L3.54 8.377c1.062.679 2.935 2.427 3.338 3.161 1.239 2.26.197 4.176-3.122 7.997l-1.51-1.311c2.687-3.094 3.5-4.59 2.878-5.724-.214-.39-1.857-1.924-2.662-2.438zm2.68-2.479c-1.049 0-1.883-.762-1.888-1.693 0-.94.84-1.701 1.887-1.701 1.04 0 1.883.758 1.883 1.701 0 .935-.843 1.693-1.883 1.693z"],"unicode":"","glyph":"M858.6 500H725V431.25C752.5 442.3 782.65 455.75 815.6 471.75L811.5 483.65L858.6 500zM900 514.35L906 516.45C938.0500000000002 423.9000000000001 957.7 365.85 965.25 341.4500000000001L869.6500000000001 311.9500000000001C865.9499999999999 323.95 858.85 345.5500000000001 848.3000000000001 376.6C544.2500000000001 232.3499999999999 414.7500000000001 273.9000000000001 397.9000000000001 471.95L497.5500000000001 480.45C502.5500000000001 422.2 514.7500000000001 399.3499999999999 542.4000000000001 392.8499999999999C562.0500000000002 388.2 589.4000000000001 389.7000000000001 625.0000000000001 398.05V500H450V600H475.65L417.3 669.5C469.45 713.3 510.2 761 539.7 812.7C513.8 805.95 487.8500000000001 798.7 462.15 790.95A697.75 697.75 0 0 0 374.4500000000001 685.5L304.4500000000001 756.9000000000001C368.05 819.3000000000001 421.1 902.4 463.25 1006.6000000000003L555.95 969.1000000000003A1085.5 1085.5 0 0 0 531.9499999999999 914.05C717.05 960.8500000000003 895.7 979.9 988.85 948.05C1050 927.15 1084.8000000000002 878.5 1098.2 818.85C1106.7000000000003 781.05 1113.8500000000001 684.4 1113.8500000000001 562.7C1113.8500000000001 422.35 1111.05 374.2000000000001 1096.8500000000001 331.6C1082 287.1 1062.05 260.7000000000002 1026.5 232.4000000000002C993.65 206.2500000000002 948.85 194.2500000000001 894.2500000000001 191.2500000000001C860.6000000000001 189.4000000000002 825.8500000000001 191.1000000000001 789.5 195.25A980.7 980.7 0 0 0 759.7 199L772.9 298.1A2851.95 2851.95 0 0 1 800.6999999999999 294.6C831.9499999999999 291.0999999999999 861.5 289.5999999999999 888.8 291.0999999999999C924.4999999999998 293.0999999999999 951.05 300.15 964.2 310.6C985.4999999999998 327.6 993.75 338.5 1002 363.3C1011.3 390.9999999999999 1013.85 435.7 1013.85 562.6999999999999C1013.85 677.6499999999999 1007.2 767.8 1000.6499999999997 796.8499999999999C994.15 825.6999999999998 980.1499999999997 845.3499999999999 956.5 853.4499999999998C896.1499999999999 874.0499999999998 766.4499999999999 863.1499999999999 623.8999999999999 832.5999999999999L654.6499999999999 819.4999999999998C648.1499999999999 804.3999999999999 640.9999999999999 789.4999999999999 633.15 774.9999999999998H900V674.9999999999998H725V600H900V514.3499999999999zM625 675H564.6A684.25 684.25 0 0 0 489.9 600H625V675zM123.05 696.9000000000001L177 781.15C230.1 747.1999999999999 323.75 659.8 343.9 623.1C405.85 510.1 353.75 414.3 187.8 223.25L112.3 288.8C246.65 443.5 287.3 518.3 256.2000000000001 575C245.5 594.5 163.35 671.1999999999999 123.1 696.9000000000001zM257.05 820.85C204.6 820.85 162.9 858.95 162.65 905.5C162.65 952.5 204.65 990.55 257 990.55C309.0000000000001 990.55 351.1500000000001 952.65 351.1500000000001 905.5C351.1500000000001 858.75 309.0000000000001 820.8500000000001 257 820.8500000000001z","horizAdvX":"1200"},"tape-fill":{"path":["M0 0h24v24H0z","M10.83 13A3 3 0 1 0 8 15h8a3 3 0 1 0-2.83-2h-2.34zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13 10a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-8 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M541.5 550A150 150 0 1 1 400 450H800A150 150 0 1 1 658.5 550H541.5zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM800 550A50 50 0 1 0 800 650A50 50 0 0 0 800 550zM400 550A50 50 0 1 0 400 650A50 50 0 0 0 400 550z","horizAdvX":"1200"},"tape-line":{"path":["M0 0h24v24H0z","M10.83 13h2.34A3 3 0 1 1 16 15H8a3 3 0 1 1 2.83-2zM4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M541.5 550H658.5A150 150 0 1 0 800 450H400A150 150 0 1 0 541.5 550zM200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM400 550A50 50 0 1 1 400 650A50 50 0 0 1 400 550zM800 550A50 50 0 1 1 800 650A50 50 0 0 1 800 550z","horizAdvX":"1200"},"task-fill":{"path":["M0 0h24v24H0z","M21 2.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.014c.548 0 .993.444.993.992zm-9.707 10.13l-2.475-2.476-1.414 1.415 3.889 3.889 5.657-5.657-1.414-1.414-4.243 4.242z"],"unicode":"","glyph":"M1050 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4zM564.65 543.9L440.9 667.6999999999999L370.2 596.95L564.65 402.5L847.5 685.35L776.8 756.05L564.65 543.95z","horizAdvX":"1200"},"task-line":{"path":["M0 0h24v24H0z","M21 2.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.014c.548 0 .993.444.993.992zM19 4H5v16h14V4zm-7.707 9.121l4.243-4.242 1.414 1.414-5.657 5.657-3.89-3.89 1.415-1.414 2.475 2.475z"],"unicode":"","glyph":"M1050 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4zM950 1000H250V200H950V1000zM564.65 543.9499999999999L776.8 756.05L847.5 685.3499999999999L564.65 402.5L370.1499999999999 597L440.8999999999999 667.6999999999999L564.6499999999999 543.9499999999999z","horizAdvX":"1200"},"taxi-fill":{"path":["M0 0h24v24H0z","M22 12v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.48-5.788A2 2 0 0 1 6.32 5H9V3h6v2h2.681a2 2 0 0 1 1.838 1.212L22 12zM4.176 12h15.648l-2.143-5H6.32l-2.143 5zM6.5 17a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M1100 600V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V600L224 889.4000000000001A100 100 0 0 0 316 950H450V1050H750V950H884.0500000000001A100 100 0 0 0 975.95 889.4000000000001L1100 600zM208.8 600H991.2L884.0499999999998 850H316L208.85 600zM325 350A75 75 0 1 1 325 500A75 75 0 0 1 325 350zM875 350A75 75 0 1 1 875 500A75 75 0 0 1 875 350z","horizAdvX":"1200"},"taxi-line":{"path":["M0 0h24v24H0z","M22 11v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V11l2.447-4.894A2 2 0 0 1 6.237 5H9V3h6v2h2.764a2 2 0 0 1 1.789 1.106L22 11zm-2 2H4v5h16v-5zM4.236 11h15.528l-2-4H6.236l-2 4zM6.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M1100 650V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V650L222.35 894.7A100 100 0 0 0 311.85 950H450V1050H750V950H888.1999999999999A100 100 0 0 0 977.65 894.7L1100 650zM1000 550H200V300H1000V550zM211.8 650H988.2L888.1999999999999 850H311.8L211.8 650zM325 350A75 75 0 1 0 325 500A75 75 0 0 0 325 350zM875 350A75 75 0 1 0 875 500A75 75 0 0 0 875 350z","horizAdvX":"1200"},"taxi-wifi-fill":{"path":["M0 0h24v24H0z","M12 3v4H6.319l-2.144 5H22v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.48-5.788A2 2 0 0 1 6.32 5H9V3h3zM6.5 14a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm11 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm1-13a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V850H315.95L208.75 600H1100V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V600L224 889.4000000000001A100 100 0 0 0 316 950H450V1050H600zM325 500A75 75 0 1 1 325 350A75 75 0 0 1 325 500zM875 500A75 75 0 1 1 875 350A75 75 0 0 1 875 500zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"taxi-wifi-line":{"path":["M0 0h24v24H0z","M12 3v4H6.236l-2.001 4H22v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V11l2.447-4.894A2 2 0 0 1 6.237 5H9V3h3zm8 10H4v5h16v-5zM6.5 14a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm11 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm1-13a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V850H311.8L211.75 650H1100V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V650L222.35 894.7A100 100 0 0 0 311.85 950H450V1050H600zM1000 550H200V300H1000V550zM325 500A75 75 0 1 0 325 350A75 75 0 0 0 325 500zM875 500A75 75 0 1 0 875 350A75 75 0 0 0 875 500zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"team-fill":{"path":["M0 0h24v24H0z","M12 11a5 5 0 0 1 5 5v6H7v-6a5 5 0 0 1 5-5zm-6.712 3.006a6.983 6.983 0 0 0-.28 1.65L5 16v6H2v-4.5a3.5 3.5 0 0 1 3.119-3.48l.17-.014zm13.424 0A3.501 3.501 0 0 1 22 17.5V22h-3v-6c0-.693-.1-1.362-.288-1.994zM5.5 8a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM12 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8z"],"unicode":"","glyph":"M600 650A250 250 0 0 0 850 400V100H350V400A250 250 0 0 0 600 650zM264.4000000000001 499.7A349.15000000000003 349.15000000000003 0 0 1 250.4 417.2L250 400V100H100V325A175 175 0 0 0 255.95 499L264.45 499.7zM935.6 499.7A175.04999999999998 175.04999999999998 0 0 0 1100 325V100H950V400C950 434.65 944.9999999999998 468.1 935.6 499.7zM275 800A125 125 0 1 0 275 550A125 125 0 0 0 275 800zM925 800A125 125 0 1 0 925 550A125 125 0 0 0 925 800zM600 1100A200 200 0 1 0 600 700A200 200 0 0 0 600 1100z","horizAdvX":"1200"},"team-line":{"path":["M0 0h24v24H0z","M12 11a5 5 0 0 1 5 5v6h-2v-6a3 3 0 0 0-2.824-2.995L12 13a3 3 0 0 0-2.995 2.824L9 16v6H7v-6a5 5 0 0 1 5-5zm-6.5 3c.279 0 .55.033.81.094a5.947 5.947 0 0 0-.301 1.575L6 16v.086a1.492 1.492 0 0 0-.356-.08L5.5 16a1.5 1.5 0 0 0-1.493 1.356L4 17.5V22H2v-4.5A3.5 3.5 0 0 1 5.5 14zm13 0a3.5 3.5 0 0 1 3.5 3.5V22h-2v-4.5a1.5 1.5 0 0 0-1.356-1.493L18.5 16c-.175 0-.343.03-.5.085V16c0-.666-.108-1.306-.309-1.904.259-.063.53-.096.809-.096zm-13-6a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm-13 2a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1zm13 0a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1zM12 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 650A250 250 0 0 0 850 400V100H750V400A150 150 0 0 1 608.8 549.75L600 550A150 150 0 0 1 450.25 408.8L450 400V100H350V400A250 250 0 0 0 600 650zM275 500C288.95 500 302.5 498.35 315.5 495.3000000000001A297.35 297.35 0 0 1 300.4500000000001 416.5500000000001L300 400V395.7000000000001A74.60000000000001 74.60000000000001 0 0 1 282.2 399.7000000000001L275 400A75 75 0 0 1 200.35 332.2L200 325V100H100V325A175 175 0 0 0 275 500zM925 500A175 175 0 0 0 1100 325V100H1000V325A75 75 0 0 1 932.2 399.65L925 400C916.25 400 907.85 398.5 900 395.75V400C900 433.3000000000001 894.6 465.3000000000001 884.55 495.2C897.5 498.35 911.05 500 925 500zM275 800A125 125 0 1 0 275 550A125 125 0 0 0 275 800zM925 800A125 125 0 1 0 925 550A125 125 0 0 0 925 800zM275 700A25 25 0 1 1 275 650A25 25 0 0 1 275 700zM925 700A25 25 0 1 1 925 650A25 25 0 0 1 925 700zM600 1100A200 200 0 1 0 600 700A200 200 0 0 0 600 1100zM600 1000A100 100 0 1 1 600 800A100 100 0 0 1 600 1000z","horizAdvX":"1200"},"telegram-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.11-8.83l.013-.007.87 2.87c.112.311.266.367.453.341.188-.025.287-.126.41-.244l1.188-1.148 2.55 1.888c.466.257.801.124.917-.432l1.657-7.822c.183-.728-.137-1.02-.702-.788l-9.733 3.76c-.664.266-.66.638-.12.803l2.497.78z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM444.5 541.5L445.1500000000001 541.85L488.65 398.3499999999999C494.25 382.8 501.95 379.9999999999999 511.3 381.2999999999999C520.6999999999999 382.5499999999999 525.65 387.5999999999999 531.8 393.4999999999999L591.2 450.8999999999999L718.6999999999999 356.4999999999998C741.9999999999999 343.6499999999998 758.75 350.2999999999999 764.55 378.0999999999997L847.4 769.1999999999996C856.55 805.5999999999997 840.55 820.1999999999996 812.3000000000001 808.5999999999997L325.6500000000001 620.5999999999997C292.4500000000001 607.2999999999997 292.6500000000001 588.6999999999997 319.6500000000001 580.4499999999996L444.5 541.4499999999997z","horizAdvX":"1200"},"telegram-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.11-8.83l-2.498-.779c-.54-.165-.543-.537.121-.804l9.733-3.76c.565-.23.885.061.702.79l-1.657 7.82c-.116.557-.451.69-.916.433l-2.551-1.888-1.189 1.148c-.122.118-.221.219-.409.244-.187.026-.341-.03-.454-.34l-.87-2.871-.012.008z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM444.5 541.5L319.6 580.45C292.6 588.6999999999999 292.45 607.3000000000001 325.65 620.65L812.3000000000001 808.65C840.5500000000002 820.1500000000001 856.5500000000002 805.6 847.4 769.15L764.5500000000001 378.15C758.75 350.3 742 343.6499999999999 718.75 356.5L591.2 450.9L531.75 393.4999999999999C525.65 387.5999999999999 520.6999999999999 382.5499999999999 511.3 381.2999999999999C501.95 379.9999999999999 494.25 382.8 488.5999999999999 398.2999999999999L445.1 541.8499999999999L444.5 541.4499999999999z","horizAdvX":"1200"},"temp-cold-fill":{"path":["M0 0h24v24H0z","M8 10.255V5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0zM8 16a4 4 0 1 0 8 0H8z"],"unicode":"","glyph":"M400 687.25V950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25zM400 400A200 200 0 1 1 800 400H400z","horizAdvX":"1200"},"temp-cold-line":{"path":["M0 0h24v24H0z","M8 5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0V5zm1.144 6.895a5 5 0 1 0 5.712 0L14 11.298V5a2 2 0 1 0-4 0v6.298l-.856.597zM8 16h8a4 4 0 1 1-8 0z"],"unicode":"","glyph":"M400 950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25V950zM457.2 605.25A250 250 0 1 1 742.8 605.25L700 635.1V950A100 100 0 1 1 500 950V635.1L457.2 605.25zM400 400H800A200 200 0 1 0 400 400z","horizAdvX":"1200"},"temp-hot-fill":{"path":["M0 0h24v24H0z","M8 10.255V5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0zm3 1.871A4.002 4.002 0 0 0 12 20a4 4 0 0 0 1-7.874V5h-2v7.126z"],"unicode":"","glyph":"M400 687.25V950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25zM550 593.6999999999999A200.10000000000002 200.10000000000002 0 0 1 600 200A200 200 0 0 1 650 593.6999999999999V950H550V593.6999999999999z","horizAdvX":"1200"},"temp-hot-line":{"path":["M0 0h24v24H0z","M8 5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0V5zm1.144 6.895a5 5 0 1 0 5.712 0L14 11.298V5a2 2 0 1 0-4 0v6.298l-.856.597zm1.856.231V5h2v7.126A4.002 4.002 0 0 1 12 20a4 4 0 0 1-1-7.874zM12 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M400 950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25V950zM457.2 605.25A250 250 0 1 1 742.8 605.25L700 635.1V950A100 100 0 1 1 500 950V635.1L457.2 605.25zM550 593.7V950H650V593.6999999999999A200.10000000000002 200.10000000000002 0 0 0 600 200A200 200 0 0 0 550 593.6999999999999zM600 300A100 100 0 1 1 600 500A100 100 0 0 1 600 300z","horizAdvX":"1200"},"terminal-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 12v2h6v-2h-6zm-3.586-3l-2.828 2.828L7 16.243 11.243 12 7 7.757 5.586 9.172 8.414 12z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM600 450V350H900V450H600zM420.7 600L279.3 458.6L350 387.85L562.15 600L350 812.1500000000001L279.3 741.4L420.7 600z","horizAdvX":"1200"},"terminal-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm8 10h6v2h-6v-2zm-3.333-3L5.838 9.172l1.415-1.415L11.495 12l-4.242 4.243-1.415-1.415L8.667 12z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM600 450H900V350H600V450zM433.35 600L291.9 741.4L362.65 812.15L574.75 600L362.65 387.8499999999999L291.9 458.5999999999999L433.35 600z","horizAdvX":"1200"},"terminal-fill":{"path":["M0 0h24v24H0z","M11 12l-7.071 7.071-1.414-1.414L8.172 12 2.515 6.343 3.929 4.93 11 12zm0 7h10v2H11v-2z"],"unicode":"","glyph":"M550 600L196.45 246.4500000000001L125.75 317.1500000000002L408.6 600L125.75 882.85L196.45 953.5L550 600zM550 250H1050V150H550V250z","horizAdvX":"1200"},"terminal-line":{"path":["M0 0h24v24H0z","M11 12l-7.071 7.071-1.414-1.414L8.172 12 2.515 6.343 3.929 4.93 11 12zm0 7h10v2H11v-2z"],"unicode":"","glyph":"M550 600L196.45 246.4500000000001L125.75 317.1500000000002L408.6 600L125.75 882.85L196.45 953.5L550 600zM550 250H1050V150H550V250z","horizAdvX":"1200"},"terminal-window-fill":{"path":["M0 0h24v24H0z","M20 10H4v9h16v-9zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 3v2h2V6H5zm4 0v2h2V6H9zm-4 5h3v5H5v-5z"],"unicode":"","glyph":"M1000 700H200V250H1000V700zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM250 900V800H350V900H250zM450 900V800H550V900H450zM250 650H400V400H250V650z","horizAdvX":"1200"},"terminal-window-line":{"path":["M0 0h24v24H0z","M20 9V5H4v4h16zm0 2H4v8h16v-8zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 9h3v5H5v-5zm0-6h2v2H5V6zm4 0h2v2H9V6z"],"unicode":"","glyph":"M1000 750V950H200V750H1000zM1000 650H200V250H1000V650zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM250 600H400V350H250V600zM250 900H350V800H250V900zM450 900H550V800H450V900z","horizAdvX":"1200"},"test-tube-fill":{"path":["M0 0H24V24H0z","M17 2v2h-1v14c0 2.21-1.79 4-4 4s-4-1.79-4-4V4H7V2h10zm-4 13c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-2-3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm3-8h-4v4h4V4z"],"unicode":"","glyph":"M850 1100V1000H800V300C800 189.5 710.5 100 600 100S400 189.5 400 300V1000H350V1100H850zM650 450C622.4 450 600 427.6 600 400S622.4 350 650 350S700 372.4 700 400S677.6 450 650 450zM550 600C522.4 600 500 577.6 500 550S522.4 500 550 500S600 522.4 600 550S577.6 600 550 600zM700 1000H500V800H700V1000z","horizAdvX":"1200"},"test-tube-line":{"path":["M0 0H24V24H0z","M17 2v2h-1v14c0 2.21-1.79 4-4 4s-4-1.79-4-4V4H7V2h10zm-3 8h-4v8c0 1.105.895 2 2 2s2-.895 2-2v-8zm-1 5c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm-2-3c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm3-8h-4v4h4V4z"],"unicode":"","glyph":"M850 1100V1000H800V300C800 189.5 710.5 100 600 100S400 189.5 400 300V1000H350V1100H850zM700 700H500V300C500 244.75 544.75 200 600 200S700 244.75 700 300V700zM650 450C677.6 450 700 427.6 700 400S677.6 350 650 350S600 372.4 600 400S622.4 450 650 450zM550 600C577.6 600 600 577.6 600 550S577.6 500 550 500S500 522.4 500 550S522.4 600 550 600zM700 1000H500V800H700V1000z","horizAdvX":"1200"},"text-direction-l":{"path":["M0 0h24v24H0z","M11 5v10H9v-4a4 4 0 1 1 0-8h8v2h-2v10h-2V5h-2zM9 5a2 2 0 1 0 0 4V5zm8 12v-2.5l4 3.5-4 3.5V19H5v-2h12z"],"unicode":"","glyph":"M550 950V450H450V650A200 200 0 1 0 450 1050H850V950H750V450H650V950H550zM450 950A100 100 0 1 1 450 750V950zM850 350V475L1050 300L850 125V250H250V350H850z","horizAdvX":"1200"},"text-direction-r":{"path":["M0 0h24v24H0z","M11 5v10H9v-4a4 4 0 1 1 0-8h8v2h-2v10h-2V5h-2zM9 5a2 2 0 1 0 0 4V5zM7 17h12v2H7v2.5L3 18l4-3.5V17z"],"unicode":"","glyph":"M550 950V450H450V650A200 200 0 1 0 450 1050H850V950H750V450H650V950H550zM450 950A100 100 0 1 1 450 750V950zM350 350H950V250H350V125L150 300L350 475V350z","horizAdvX":"1200"},"text-spacing":{"path":["M0 0h24v24H0z","M7 17h10v-2.5l3.5 3.5-3.5 3.5V19H7v2.5L3.5 18 7 14.5V17zm6-11v9h-2V6H5V4h14v2h-6z"],"unicode":"","glyph":"M350 350H850V475L1025 300L850 125V250H350V125L175 300L350 475V350zM650 900V450H550V900H250V1000H950V900H650z","horizAdvX":"1200"},"text-wrap":{"path":["M0 0h24v24H0z","M15 18h1.5a2.5 2.5 0 1 0 0-5H3v-2h13.5a4.5 4.5 0 1 1 0 9H15v2l-4-3 4-3v2zM3 4h18v2H3V4zm6 14v2H3v-2h6z"],"unicode":"","glyph":"M750 300H825A125 125 0 1 1 825 550H150V650H825A225 225 0 1 0 825 200H750V100L550 250L750 400V300zM150 1000H1050V900H150V1000zM450 300V200H150V300H450z","horizAdvX":"1200"},"text":{"path":["M0 0h24v24H0z","M13 6v15h-2V6H5V4h14v2z"],"unicode":"","glyph":"M650 900V150H550V900H250V1000H950V900z","horizAdvX":"1200"},"thermometer-fill":{"path":["M0 0H24V24H0z","M20.556 3.444c1.562 1.562 1.562 4.094 0 5.657l-8.2 8.2c-.642.642-1.484 1.047-2.387 1.147l-3.378.374-2.298 2.3c-.39.39-1.024.39-1.414 0-.39-.391-.39-1.024 0-1.415l2.298-2.299.375-3.377c.1-.903.505-1.745 1.147-2.387l8.2-8.2c1.563-1.562 4.095-1.562 5.657 0zm-9.192 9.192L9.95 14.05l2.121 2.122 1.414-1.415-2.121-2.121zm2.828-2.828l-1.414 1.414 2.121 2.121 1.415-1.414-2.122-2.121zm2.829-2.829l-1.414 1.414 2.12 2.122L19.143 9.1l-2.121-2.122z"],"unicode":"","glyph":"M1027.8 1027.8C1105.9 949.7 1105.9 823.0999999999999 1027.8 744.95L617.8000000000001 334.9500000000001C585.7000000000002 302.8500000000002 543.6000000000001 282.6 498.45 277.6000000000002L329.5500000000001 258.9000000000002L214.6500000000001 143.9000000000001C195.15 124.4000000000001 163.4500000000001 124.4000000000001 143.9500000000001 143.9000000000001C124.4500000000001 163.4500000000003 124.4500000000001 195.1000000000003 143.9500000000001 214.6500000000001L258.8500000000001 329.6000000000002L277.6000000000001 498.45C282.6 543.6000000000001 302.8500000000001 585.7000000000002 334.9500000000001 617.8000000000001L744.95 1027.8C823.1 1105.9 949.7 1105.9 1027.8 1027.8zM568.2 568.2L497.4999999999999 497.5L603.55 391.4L674.25 462.15L568.1999999999999 568.1999999999999zM709.6 709.6L638.9 638.9L744.95 532.85L815.7 603.55L709.6 709.6zM851.0500000000001 851.0500000000001L780.35 780.3500000000001L886.35 674.2500000000001L957.15 745L851.1000000000001 851.1z","horizAdvX":"1200"},"thermometer-line":{"path":["M0 0H24V24H0z","M20.556 3.444c1.562 1.562 1.562 4.094 0 5.657l-8.2 8.2c-.642.642-1.484 1.047-2.387 1.147l-3.378.374-2.298 2.3c-.39.39-1.024.39-1.414 0-.39-.391-.39-1.024 0-1.415l2.298-2.299.375-3.377c.1-.903.505-1.745 1.147-2.387l8.2-8.2c1.563-1.562 4.095-1.562 5.657 0zm-4.242 1.414l-8.2 8.2c-.322.321-.524.742-.574 1.193l-.276 2.485 2.485-.276c.45-.05.872-.252 1.193-.573l.422-.423L9.95 14.05l1.414-1.414 1.414 1.414 1.414-1.414-1.414-1.414 1.414-1.414 1.415 1.414 1.414-1.415-1.414-1.414L17.02 6.98l1.414 1.414.707-.707c.781-.78.781-2.047 0-2.828-.78-.781-2.047-.781-2.828 0z"],"unicode":"","glyph":"M1027.8 1027.8C1105.9 949.7 1105.9 823.0999999999999 1027.8 744.95L617.8000000000001 334.9500000000001C585.7000000000002 302.8500000000002 543.6000000000001 282.6 498.45 277.6000000000002L329.5500000000001 258.9000000000002L214.6500000000001 143.9000000000001C195.15 124.4000000000001 163.4500000000001 124.4000000000001 143.9500000000001 143.9000000000001C124.4500000000001 163.4500000000003 124.4500000000001 195.1000000000003 143.9500000000001 214.6500000000001L258.8500000000001 329.6000000000002L277.6000000000001 498.45C282.6 543.6000000000001 302.8500000000001 585.7000000000002 334.9500000000001 617.8000000000001L744.95 1027.8C823.1 1105.9 949.7 1105.9 1027.8 1027.8zM815.7 957.1L405.7000000000001 547.1C389.6 531.0500000000001 379.5000000000001 510 377.0000000000001 487.45L363.2000000000001 363.2L487.45 377C509.95 379.5 531.0500000000001 389.5999999999999 547.1 405.65L568.2 426.8L497.4999999999999 497.5L568.1999999999999 568.1999999999999L638.9 497.5L709.5999999999999 568.1999999999999L638.9 638.9L709.5999999999999 709.5999999999999L780.3499999999999 638.9L851.0500000000001 709.6499999999999L780.35 780.3499999999999L851 851L921.7 780.3L957.05 815.65C996.1 854.65 996.1 918 957.05 957.05C918.05 996.1 854.7 996.1 815.6500000000001 957.05z","horizAdvX":"1200"},"thumb-down-fill":{"path":["M0 0h24v24H0z","M22 15h-3V3h3a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1zm-5.293 1.293l-6.4 6.4a.5.5 0 0 1-.654.047L8.8 22.1a1.5 1.5 0 0 1-.553-1.57L9.4 16H3a2 2 0 0 1-2-2v-2.104a2 2 0 0 1 .15-.762L4.246 3.62A1 1 0 0 1 5.17 3H16a1 1 0 0 1 1 1v11.586a1 1 0 0 1-.293.707z"],"unicode":"","glyph":"M1100 450H950V1050H1100A50 50 0 0 0 1150 1000V500A50 50 0 0 0 1100 450zM835.35 385.35L515.35 65.3500000000001A25 25 0 0 0 482.65 63L440.0000000000001 95A75 75 0 0 0 412.35 173.5L470 400H150A100 100 0 0 0 50 500V605.1999999999999A100 100 0 0 0 57.5 643.3L212.3 1019A50 50 0 0 0 258.5 1050H800A50 50 0 0 0 850 1000V420.7A50 50 0 0 0 835.35 385.35z","horizAdvX":"1200"},"thumb-down-line":{"path":["M0 0h24v24H0z","M9.4 16H3a2 2 0 0 1-2-2v-2.104a2 2 0 0 1 .15-.762L4.246 3.62A1 1 0 0 1 5.17 3H22a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3.482a1 1 0 0 0-.817.423l-5.453 7.726a.5.5 0 0 1-.632.159L9.802 22.4a2.5 2.5 0 0 1-1.305-2.853L9.4 16zm7.6-2.588V5H5.84L3 11.896V14h6.4a2 2 0 0 1 1.938 2.493l-.903 3.548a.5.5 0 0 0 .261.571l.661.33 4.71-6.672c.25-.354.57-.644.933-.858zM19 13h2V5h-2v8z"],"unicode":"","glyph":"M470 400H150A100 100 0 0 0 50 500V605.1999999999999A100 100 0 0 0 57.5 643.3L212.3 1019A50 50 0 0 0 258.5 1050H1100A50 50 0 0 0 1150 1000V500A50 50 0 0 0 1100 450H925.9A50 50 0 0 1 885.0500000000001 428.85L612.4000000000001 42.55A25 25 0 0 0 580.8000000000001 34.5999999999999L490.1 80A125 125 0 0 0 424.85 222.6500000000001L470 400zM850 529.4000000000001V950H292L150 605.1999999999999V500H470A100 100 0 0 0 566.9000000000001 375.35L521.75 197.9500000000002A25 25 0 0 1 534.8 169.4000000000001L567.8499999999999 152.9000000000001L803.35 486.5000000000002C815.85 504.2000000000002 831.85 518.7000000000002 850 529.4000000000002zM950 550H1050V950H950V550z","horizAdvX":"1200"},"thumb-up-fill":{"path":["M0 0h24v24H0z","M2 9h3v12H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm5.293-1.293l6.4-6.4a.5.5 0 0 1 .654-.047l.853.64a1.5 1.5 0 0 1 .553 1.57L14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H8a1 1 0 0 1-1-1V8.414a1 1 0 0 1 .293-.707z"],"unicode":"","glyph":"M100 750H250V150H100A50 50 0 0 0 50 200V700A50 50 0 0 0 100 750zM364.6500000000001 814.6500000000001L684.6500000000001 1134.65A25 25 0 0 0 717.35 1137L760 1105A75 75 0 0 0 787.6500000000001 1026.5L730 800H1050A100 100 0 0 0 1150 700V594.8000000000001A100 100 0 0 0 1142.5 556.7L987.7500000000002 180.9500000000001A50 50 0 0 0 941.5000000000002 150H400A50 50 0 0 0 350 200V779.3A50 50 0 0 0 364.6500000000001 814.6500000000001z","horizAdvX":"1200"},"thumb-up-line":{"path":["M0 0h24v24H0z","M14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h3.482a1 1 0 0 0 .817-.423L11.752.85a.5.5 0 0 1 .632-.159l1.814.907a2.5 2.5 0 0 1 1.305 2.853L14.6 8zM7 10.588V19h11.16L21 12.104V10h-6.4a2 2 0 0 1-1.938-2.493l.903-3.548a.5.5 0 0 0-.261-.571l-.661-.33-4.71 6.672c-.25.354-.57.644-.933.858zM5 11H3v8h2v-8z"],"unicode":"","glyph":"M730 800H1050A100 100 0 0 0 1150 700V594.8000000000001A100 100 0 0 0 1142.5 556.7L987.7500000000002 180.9500000000001A50 50 0 0 0 941.5000000000002 150H100A50 50 0 0 0 50 200V700A50 50 0 0 0 100 750H274.1A50 50 0 0 1 314.9500000000001 771.15L587.6 1157.5A25 25 0 0 0 619.2 1165.45L709.9 1120.1A125 125 0 0 0 775.15 977.45L730 800zM350 670.6V250H908L1050 594.8000000000001V700H730A100 100 0 0 0 633.0999999999999 824.6500000000001L678.25 1002.05A25 25 0 0 1 665.2 1030.6L632.1500000000001 1047.1L396.6500000000001 713.5C384.1500000000001 695.8 368.1500000000001 681.3 350.0000000000001 670.5999999999999zM250 650H150V250H250V650z","horizAdvX":"1200"},"thunderstorms-fill":{"path":["M0 0h24v24H0z","M16.988 18l1.216-1.58a1.5 1.5 0 0 0-1.189-2.415H15v-3.976a1.5 1.5 0 0 0-2.69-.914l-6.365 8.281A8.002 8.002 0 0 1 9 2a8.003 8.003 0 0 1 7.458 5.099A5.5 5.5 0 1 1 17.5 18h-.512zM13 16.005h3l-5 6.5v-4.5H8l5-6.505v4.505z"],"unicode":"","glyph":"M849.4 300L910.2 378.9999999999999A75 75 0 0 1 850.75 499.7499999999999H750V698.5499999999998A75 75 0 0 1 615.5 744.2499999999998L297.25 330.1999999999998A400.1 400.1 0 0 0 450 1100A400.15000000000003 400.15000000000003 0 0 0 822.8999999999999 845.05A275 275 0 1 0 875 300H849.4zM650 399.75H800L550 74.75V299.75H400L650 625V399.75z","horizAdvX":"1200"},"thunderstorms-line":{"path":["M0 0h24v24H0z","M17 18v-2h.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-8 5.659v2.089a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001zm-4-1.995h3l-5 6.5v-4.5H8l5-6.505v4.505z"],"unicode":"","glyph":"M850 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 350 417.0500000000001V312.6000000000002A400 400 0 1 0 822.8999999999999 845.1000000000001A275 275 0 1 0 875 300L850 299.95zM650 399.75H800L550 74.75V299.75H400L650 625V399.75z","horizAdvX":"1200"},"ticket-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18zm-5 6H8v6h8V9z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050zM800 750H400V450H800V750z","horizAdvX":"1200"},"ticket-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18zm-1 2H4v2.968l.156.081a4.5 4.5 0 0 1 2.34 3.74L6.5 12a4.499 4.499 0 0 1-2.344 3.95L4 16.032V19h16v-2.969l-.156-.08a4.5 4.5 0 0 1-2.34-3.74L17.5 12c0-1.704.947-3.187 2.344-3.95L20 7.967V5zm-4 4v6H8V9h8z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V801.6L207.8 797.55A225 225 0 0 0 324.8 610.5500000000001L325 600A224.94999999999996 224.94999999999996 0 0 0 207.8000000000001 402.5L200 398.4V250H1000V398.4500000000001L992.2 402.4500000000001A225 225 0 0 0 875.2 589.45L875 600C875 685.2 922.35 759.3499999999999 992.2 797.5L1000 801.6500000000001V950zM800 750V450H400V750H800z","horizAdvX":"1200"},"ticket-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"ticket-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18zm-1 2H4v2.968l.156.081a4.5 4.5 0 0 1 2.34 3.74L6.5 12a4.499 4.499 0 0 1-2.344 3.95L4 16.032V19h16v-2.969l-.156-.08a4.5 4.5 0 0 1-2.34-3.74L17.5 12c0-1.704.947-3.187 2.344-3.95L20 7.967V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V801.6L207.8 797.55A225 225 0 0 0 324.8 610.5500000000001L325 600A224.94999999999996 224.94999999999996 0 0 0 207.8000000000001 402.5L200 398.4V250H1000V398.4500000000001L992.2 402.4500000000001A225 225 0 0 0 875.2 589.45L875 600C875 685.2 922.35 759.3499999999999 992.2 797.5L1000 801.6500000000001V950z","horizAdvX":"1200"},"time-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1-10V7h-2v7h6v-2h-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM650 600V850H550V500H850V600H650z","horizAdvX":"1200"},"time-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-8h4v2h-6V7h2v5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 600H850V500H550V850H650V600z","horizAdvX":"1200"},"timer-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm3.536 5.05L10.586 12 12 13.414l4.95-4.95-1.414-1.414z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM776.8 847.5L529.3000000000001 600L600 529.3000000000001L847.5 776.8000000000001L776.8 847.5z","horizAdvX":"1200"},"timer-2-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm3.536-12.95l1.414 1.414-4.95 4.95L10.586 12l4.95-4.95z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM776.8 847.5L847.5 776.8L600 529.3L529.3000000000001 600L776.8000000000001 847.5z","horizAdvX":"1200"},"timer-fill":{"path":["M0 0h24v24H0z","M17.618 5.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-1.414-1.414zM11 8v6h2V8h-2zM8 1h8v2H8V1z"],"unicode":"","glyph":"M880.9 901.6L953.55 974.25L1024.25 903.55L951.6 830.9000000000001A450 450 0 1 0 880.9 901.6zM550 800V500H650V800H550zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"timer-flash-fill":{"path":["M0 0h24v24H0z","M6.382 5.968A8.962 8.962 0 0 1 12 4c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-14.064 0L3.515 5.93l1.414-1.414 1.453 1.453zM13 12V7.495L8 14h3v4.5l5-6.5h-3zM8 1h8v2H8V1z"],"unicode":"","glyph":"M319.1 901.6A448.1 448.1 0 0 0 600 1000C706.25 1000 803.9 963.2 880.9000000000001 901.6L953.55 974.25L1024.2500000000002 903.55L951.6000000000003 830.9000000000001A450 450 0 1 0 248.4000000000002 830.9000000000001L175.75 903.5L246.45 974.2L319.1 901.55zM650 600V825.25L400 500H550V275L800 600H650zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"timer-flash-line":{"path":["M0 0h24v24H0z","M6.382 5.968A8.962 8.962 0 0 1 12 4c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-14.064 0L3.515 5.93l1.414-1.414 1.453 1.453zM12 20a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm1-8h3l-5 6.5V14H8l5-6.505V12zM8 1h8v2H8V1z"],"unicode":"","glyph":"M319.1 901.6A448.1 448.1 0 0 0 600 1000C706.25 1000 803.9 963.2 880.9000000000001 901.6L953.55 974.25L1024.2500000000002 903.55L951.6000000000003 830.9000000000001A450 450 0 1 0 248.4000000000002 830.9000000000001L175.75 903.5L246.45 974.2L319.1 901.55zM600 200A350 350 0 1 1 600 900A350 350 0 0 1 600 200zM650 600H800L550 275V500H400L650 825.25V600zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"timer-line":{"path":["M0 0h24v24H0z","M17.618 5.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-1.414-1.414zM12 20a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM11 8h2v6h-2V8zM8 1h8v2H8V1z"],"unicode":"","glyph":"M880.9 901.6L953.55 974.25L1024.25 903.55L951.6 830.9000000000001A450 450 0 1 0 880.9 901.6zM600 200A350 350 0 1 1 600 900A350 350 0 0 1 600 200zM550 800H650V500H550V800zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"todo-fill":{"path":["M0 0h24v24H0z","M17 2h3a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3V0h2v2h6V0h2v2zM7 8v2h10V8H7zm0 4v2h10v-2H7z"],"unicode":"","glyph":"M850 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H350V1200H450V1100H750V1200H850V1100zM350 800V700H850V800H350zM350 600V500H850V600H350z","horizAdvX":"1200"},"todo-line":{"path":["M0 0h24v24H0z","M17 2h3a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3V0h2v2h6V0h2v2zm0 2v2h-2V4H9v2H7V4H5v16h14V4h-2zM7 8h10v2H7V8zm0 4h10v2H7v-2z"],"unicode":"","glyph":"M850 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H350V1200H450V1100H750V1200H850V1100zM850 1000V900H750V1000H450V900H350V1000H250V200H950V1000H850zM350 800H850V700H350V800zM350 600H850V500H350V600z","horizAdvX":"1200"},"toggle-fill":{"path":["M0 0h24v24H0z","M8 5h8a7 7 0 0 1 0 14H8A7 7 0 0 1 8 5zm8 10a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M400 950H800A350 350 0 0 0 800 250H400A350 350 0 0 0 400 950zM800 450A150 150 0 1 1 800 750A150 150 0 0 1 800 450z","horizAdvX":"1200"},"toggle-line":{"path":["M0 0h24v24H0z","M8 7a5 5 0 1 0 0 10h8a5 5 0 0 0 0-10H8zm0-2h8a7 7 0 0 1 0 14H8A7 7 0 0 1 8 5zm0 10a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M400 850A250 250 0 1 1 400 350H800A250 250 0 0 1 800 850H400zM400 950H800A350 350 0 0 0 800 250H400A350 350 0 0 0 400 950zM400 450A150 150 0 1 0 400 750A150 150 0 0 0 400 450z","horizAdvX":"1200"},"tools-fill":{"path":["M0 0h24v24H0z","M5.33 3.271a3.5 3.5 0 0 1 4.472 4.474L20.647 18.59l-2.122 2.121L7.68 9.867a3.5 3.5 0 0 1-4.472-4.474L5.444 7.63a1.5 1.5 0 1 0 2.121-2.121L5.329 3.27zm10.367 1.884l3.182-1.768 1.414 1.414-1.768 3.182-1.768.354-2.12 2.121-1.415-1.414 2.121-2.121.354-1.768zm-7.071 7.778l2.121 2.122-4.95 4.95A1.5 1.5 0 0 1 3.58 17.99l.097-.107 4.95-4.95z"],"unicode":"","glyph":"M266.5 1036.45A175 175 0 0 0 490.1 812.75L1032.35 270.5L926.2499999999998 164.4500000000001L384 706.65A175 175 0 0 0 160.4 930.35L272.2 818.5A75 75 0 1 1 378.25 924.55L266.45 1036.5zM784.85 942.25L943.95 1030.65L1014.65 959.95L926.2500000000002 800.8500000000001L837.85 783.1500000000001L731.85 677.1000000000001L661.1 747.8000000000001L767.1500000000001 853.8500000000001L784.85 942.25zM431.3000000000001 553.35L537.3500000000001 447.25L289.8500000000001 199.75A75 75 0 0 0 179 300.5000000000001L183.85 305.85L431.35 553.35z","horizAdvX":"1200"},"tools-line":{"path":["M0 0h24v24H0z","M5.33 3.271a3.5 3.5 0 0 1 4.254 4.963l10.709 10.71-1.414 1.414-10.71-10.71a3.502 3.502 0 0 1-4.962-4.255L5.444 7.63a1.5 1.5 0 1 0 2.121-2.121L5.329 3.27zm10.367 1.884l3.182-1.768 1.414 1.414-1.768 3.182-1.768.354-2.12 2.121-1.415-1.414 2.121-2.121.354-1.768zm-6.718 8.132l1.414 1.414-5.303 5.303a1 1 0 0 1-1.492-1.327l.078-.087 5.303-5.303z"],"unicode":"","glyph":"M266.5 1036.45A175 175 0 0 0 479.2 788.3L1014.65 252.7999999999999L943.95 182.0999999999998L408.4499999999998 717.5999999999999A175.1 175.1 0 0 0 160.3499999999999 930.35L272.2 818.5A75 75 0 1 1 378.25 924.55L266.45 1036.5zM784.85 942.25L943.95 1030.65L1014.65 959.95L926.2500000000002 800.8500000000001L837.85 783.1500000000001L731.85 677.1000000000001L661.1 747.8000000000001L767.1500000000001 853.8500000000001L784.85 942.25zM448.9500000000001 535.6500000000001L519.6500000000001 464.95L254.5000000000001 199.8000000000001A50 50 0 0 0 179.9 266.15L183.8000000000001 270.5L448.9500000000001 535.6500000000001z","horizAdvX":"1200"},"tornado-fill":{"path":["M0 0h24v24H0z","M2 3h20v2H2V3zm2 4h16v2H4V7zm4 4h14v2H8v-2zm2 4h8v2h-8v-2zm-2 4h6v2H8v-2z"],"unicode":"","glyph":"M100 1050H1100V950H100V1050zM200 850H1000V750H200V850zM400 650H1100V550H400V650zM500 450H900V350H500V450zM400 250H700V150H400V250z","horizAdvX":"1200"},"tornado-line":{"path":["M0 0h24v24H0z","M2 3h20v2H2V3zm2 4h16v2H4V7zm4 4h14v2H8v-2zm2 4h8v2h-8v-2zm-2 4h6v2H8v-2z"],"unicode":"","glyph":"M100 1050H1100V950H100V1050zM200 850H1000V750H200V850zM400 650H1100V550H400V650zM500 450H900V350H500V450zM400 250H700V150H400V250z","horizAdvX":"1200"},"trademark-fill":{"path":["M0 0h24v24H0z","M10 6v2H6v10H4V8H0V6h10zm2 0h2.5l3 5.196L20.5 6H23v12h-2V9.133l-3.5 6.063L14 9.135V18h-2V6z"],"unicode":"","glyph":"M500 900V800H300V300H200V800H0V900H500zM600 900H725L875 640.2L1025 900H1150V300H1050V743.35L875 440.2000000000001L700 743.25V300H600V900z","horizAdvX":"1200"},"trademark-line":{"path":["M0 0h24v24H0z","M10 6v2H6v10H4V8H0V6h10zm2 0h2.5l3 5.196L20.5 6H23v12h-2V9.133l-3.5 6.063L14 9.135V18h-2V6z"],"unicode":"","glyph":"M500 900V800H300V300H200V800H0V900H500zM600 900H725L875 640.2L1025 900H1150V300H1050V743.35L875 440.2000000000001L700 743.25V300H600V900z","horizAdvX":"1200"},"traffic-light-fill":{"path":["M0 0h24v24H0z","M7 4V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v1h3c0 2.5-2.5 3.5-3 3.5V10h3c0 2.5-2.5 3.5-3 3.5V16h3c0 2.5-2.5 3.5-3 3.5V21a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-1.5c-.5 0-3-1-3-3.5h3v-2.5c-.5 0-3-1-3-3.5h3V7.5c-.5 0-3-1-3-3.5h3zm5 16a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M350 1000V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V1000H1000C1000 875 875 825 850 825V700H1000C1000 575 875 525 850 525V400H1000C1000 275 875 225 850 225V150A50 50 0 0 0 800 100H400A50 50 0 0 0 350 150V225C325 225 200 275 200 400H350V525C325 525 200 575 200 700H350V825C325 825 200 875 200 1000H350zM600 200A100 100 0 1 1 600 400A100 100 0 0 1 600 200zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"traffic-light-line":{"path":["M0 0h24v24H0z","M7 4V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v1h3c0 2.5-2.5 3.5-3 3.5V10h3c0 2.5-2.5 3.5-3 3.5V16h3c0 2.5-2.5 3.5-3 3.5V21a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-1.5c-.5 0-3-1-3-3.5h3v-2.5c-.5 0-3-1-3-3.5h3V7.5c-.5 0-3-1-3-3.5h3zm5 16a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M350 1000V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V1000H1000C1000 875 875 825 850 825V700H1000C1000 575 875 525 850 525V400H1000C1000 275 875 225 850 225V150A50 50 0 0 0 800 100H400A50 50 0 0 0 350 150V225C325 225 200 275 200 400H350V525C325 525 200 575 200 700H350V825C325 825 200 875 200 1000H350zM600 200A100 100 0 1 1 600 400A100 100 0 0 1 600 200zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"train-fill":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM5 7v4h14V7H5zm7 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM250 850V650H950V850H250zM600 300A100 100 0 1 1 600 500A100 100 0 0 1 600 300z","horizAdvX":"1200"},"train-line":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM7 5a2 2 0 0 0-2 2v11h14V7a2 2 0 0 0-2-2H7zm5 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zM6 7h12v4H6V7z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM350 950A100 100 0 0 1 250 850V300H950V850A100 100 0 0 1 850 950H350zM600 350A100 100 0 1 0 600 550A100 100 0 0 0 600 350zM300 850H900V650H300V850z","horizAdvX":"1200"},"train-wifi-fill":{"path":["M0 0h24v24H0z","M12.498 3a6.518 6.518 0 0 0-.324 4H5v4h10.035a6.47 6.47 0 0 0 3.465 1 6.48 6.48 0 0 0 2.5-.498V18a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h5.498zM12 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm6.5-13a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M624.9 1050A325.90000000000003 325.90000000000003 0 0 1 608.6999999999999 850H250V650H751.75A323.5 323.5 0 0 1 925 600A324 324 0 0 1 1050 624.9V300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H624.9000000000001zM600 500A100 100 0 1 1 600 300A100 100 0 0 1 600 500zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"train-wifi-line":{"path":["M0 0h24v24H0z","M12.498 3a6.464 6.464 0 0 0-.479 2H7a2 2 0 0 0-1.995 1.85L5 7v11h14v-6.019a6.463 6.463 0 0 0 2-.48V18a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h5.498zM12 13a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm.174-6a6.51 6.51 0 0 0 2.862 4.001L6 11V7h6.174zM18.5 1a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M624.9 1050A323.20000000000005 323.20000000000005 0 0 1 600.95 950H350A100 100 0 0 1 250.25 857.5L250 850V300H950V600.95A323.15 323.15 0 0 1 1050 624.95V300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H624.9000000000001zM600 550A100 100 0 1 0 600 350A100 100 0 0 0 600 550zM608.6999999999999 850A325.49999999999994 325.49999999999994 0 0 1 751.8 649.9499999999999L300 650V850H608.6999999999999zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"translate-2":{"path":["M0 0h24v24H0z","M18.5 10l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16.5 10h2zM10 2v2h6v2h-1.968a18.222 18.222 0 0 1-3.62 6.301 14.864 14.864 0 0 0 2.336 1.707l-.751 1.878A17.015 17.015 0 0 1 9 13.725a16.676 16.676 0 0 1-6.201 3.548l-.536-1.929a14.7 14.7 0 0 0 5.327-3.042A18.078 18.078 0 0 1 4.767 8h2.24A16.032 16.032 0 0 0 9 10.877a16.165 16.165 0 0 0 2.91-4.876L2 6V4h6V2h2zm7.5 10.885L16.253 16h2.492L17.5 12.885z"],"unicode":"","glyph":"M925 700L1145 150H1037.2499999999998L977.1999999999998 300H772.6999999999998L712.7499999999999 150H605.0499999999998L825 700H925zM500 1100V1000H800V900H701.6A911.1000000000001 911.1000000000001 0 0 0 520.5999999999999 584.95A743.2 743.2 0 0 1 637.4 499.5999999999999L599.85 405.7A850.75 850.75 0 0 0 450 513.75A833.8000000000001 833.8000000000001 0 0 0 139.95 336.35L113.15 432.8000000000001A735 735 0 0 1 379.5 584.9A903.9 903.9 0 0 0 238.35 800H350.35A801.6 801.6 0 0 1 450 656.15A808.2499999999999 808.2499999999999 0 0 1 595.5 899.95L100 900V1000H400V1100H500zM875 555.75L812.65 400H937.25L875 555.75z","horizAdvX":"1200"},"translate":{"path":["M0 0h24v24H0z","M5 15v2a2 2 0 0 0 1.85 1.995L7 19h3v2H7a4 4 0 0 1-4-4v-2h2zm13-5l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16 10h2zm-1 2.885L15.753 16h2.492L17 12.885zM8 2v2h4v7H8v3H6v-3H2V4h4V2h2zm9 1a4 4 0 0 1 4 4v2h-2V7a2 2 0 0 0-2-2h-3V3h3zM6 6H4v3h2V6zm4 0H8v3h2V6z"],"unicode":"","glyph":"M250 450V350A100 100 0 0 1 342.5 250.25L350 250H500V150H350A200 200 0 0 0 150 350V450H250zM900 700L1120 150H1012.2499999999998L952.1999999999998 300H747.6999999999998L687.7499999999999 150H580.0499999999998L800 700H900zM850 555.75L787.65 400H912.25L850 555.75zM400 1100V1000H600V650H400V500H300V650H100V1000H300V1100H400zM850 1050A200 200 0 0 0 1050 850V750H950V850A100 100 0 0 1 850 950H700V1050H850zM300 900H200V750H300V900zM500 900H400V750H500V900z","horizAdvX":"1200"},"travesti-fill":{"path":["M0 0h24v24H0z","M7.537 9.95L4.66 7.076 2.186 9.55.772 8.136l6.364-6.364L8.55 3.186 6.075 5.661l2.876 2.876A7.5 7.5 0 1 1 7.537 9.95z"],"unicode":"","glyph":"M376.85 702.5L233 846.2L109.3 722.5L38.6 793.2L356.8 1111.4L427.5000000000001 1040.7L303.75 916.95L447.55 773.1500000000001A375 375 0 1 0 376.85 702.5z","horizAdvX":"1200"},"travesti-line":{"path":["M0 0h24v24H0z","M8.95 8.537A7.5 7.5 0 1 1 7.537 9.95L4.662 7.075 2.186 9.55.772 8.136l6.364-6.364L8.55 3.186 6.075 5.661l2.876 2.876zM13.5 20a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M447.5 773.15A375 375 0 1 0 376.85 702.5L233.1 846.25L109.3 722.5L38.6 793.2L356.8 1111.4L427.5000000000001 1040.7L303.75 916.95L447.55 773.1500000000001zM675 200A275 275 0 1 1 675 750A275 275 0 0 1 675 200z","horizAdvX":"1200"},"treasure-map-fill":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm4 6v2h2v-2H6zm4 0v2h2v-2h-2zm6-.06l-1.237-1.238-1.061 1.06L14.939 12l-1.237 1.237 1.06 1.061L16 13.061l1.237 1.237 1.061-1.06L17.061 12l1.237-1.237-1.06-1.061L16 10.939z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM300 650V550H400V650H300zM500 650V550H600V650H500zM800 653L738.15 714.9L685.1 661.9L746.95 600L685.1 538.15L738.1 485.1L800 546.95L861.8500000000001 485.1L914.9 538.1L853.05 600L914.9 661.85L861.9000000000002 714.9L800 653.05z","horizAdvX":"1200"},"treasure-map-line":{"path":["M0 0h24v24H0z","M14.935 7.204l-6-3L4 6.319v12.648l5.065-2.17 6 3L20 17.68V5.033l-5.065 2.17zM2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm4 6h2v2H6v-2zm4 0h2v2h-2v-2zm5.998-.063L17.236 9.7l1.06 1.06-1.237 1.238 1.237 1.238-1.06 1.06-1.238-1.237-1.237 1.237-1.061-1.06 1.237-1.238-1.237-1.237L14.76 9.7l1.238 1.237z"],"unicode":"","glyph":"M746.75 839.8L446.75 989.8L200 884.05V251.6500000000001L453.2500000000001 360.1500000000001L753.2500000000001 210.1500000000001L1000 316V948.35L746.7499999999999 839.8499999999999zM100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM300 650H400V550H300V650zM500 650H600V550H500V650zM799.9000000000001 653.15L861.8000000000001 715L914.8 662L852.9499999999998 600.1L914.8 538.2L861.8000000000001 485.2L799.9000000000001 547.0500000000001L738.0500000000001 485.2L685 538.2L746.85 600.1L685 661.95L738 715L799.9 653.15z","horizAdvX":"1200"},"trello-fill":{"path":["M0 0h24v24H0z","M5.25 3h13.5A2.25 2.25 0 0 1 21 5.25v13.5A2.25 2.25 0 0 1 18.75 21H5.25A2.25 2.25 0 0 1 3 18.75V5.25A2.25 2.25 0 0 1 5.25 3zm7.92 3.42v5.76c0 .596.484 1.08 1.08 1.08h3.33a1.08 1.08 0 0 0 1.08-1.08V6.42a1.08 1.08 0 0 0-1.08-1.08h-3.33a1.08 1.08 0 0 0-1.08 1.08zm-7.83 0v10.26c0 .596.484 1.08 1.08 1.08h3.33a1.08 1.08 0 0 0 1.08-1.08V6.42a1.08 1.08 0 0 0-1.08-1.08H6.42a1.08 1.08 0 0 0-1.08 1.08z"],"unicode":"","glyph":"M262.5 1050H937.5A112.5 112.5 0 0 0 1050 937.5V262.5A112.5 112.5 0 0 0 937.5 150H262.5A112.5 112.5 0 0 0 150 262.5V937.5A112.5 112.5 0 0 0 262.5 1050zM658.5 879V591C658.5 561.2 682.7 537 712.5 537H878.9999999999999A54 54 0 0 1 932.9999999999998 591V879A54 54 0 0 1 878.9999999999999 933H712.4999999999999A54 54 0 0 1 658.4999999999999 879zM267 879V366C267 336.2000000000001 291.2 312.0000000000001 321 312.0000000000001H487.5A54 54 0 0 1 541.5 366V879A54 54 0 0 1 487.5 933H321A54 54 0 0 1 267 879z","horizAdvX":"1200"},"trello-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zm0-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm3 4h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1zm6 0h2a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 950V250H950V950H250zM250 1050H950A100 100 0 0 0 1050 950V250A100 100 0 0 0 950 150H250A100 100 0 0 0 150 250V950A100 100 0 0 0 250 1050zM400 850H500A50 50 0 0 0 550 800V400A50 50 0 0 0 500 350H400A50 50 0 0 0 350 400V800A50 50 0 0 0 400 850zM700 850H800A50 50 0 0 0 850 800V600A50 50 0 0 0 800 550H700A50 50 0 0 0 650 600V800A50 50 0 0 0 700 850z","horizAdvX":"1200"},"trophy-fill":{"path":["M0 0h24v24H0z","M13 16.938V19h5v2H6v-2h5v-2.062A8.001 8.001 0 0 1 4 9V3h16v6a8.001 8.001 0 0 1-7 7.938zM1 5h2v4H1V5zm20 0h2v4h-2V5z"],"unicode":"","glyph":"M650 353.1V250H900V150H300V250H550V353.1A400.04999999999995 400.04999999999995 0 0 0 200 750V1050H1000V750A400.04999999999995 400.04999999999995 0 0 0 650 353.1zM50 950H150V750H50V950zM1050 950H1150V750H1050V950z","horizAdvX":"1200"},"trophy-line":{"path":["M0 0h24v24H0z","M13 16.938V19h5v2H6v-2h5v-2.062A8.001 8.001 0 0 1 4 9V3h16v6a8.001 8.001 0 0 1-7 7.938zM6 5v4a6 6 0 1 0 12 0V5H6zM1 5h2v4H1V5zm20 0h2v4h-2V5z"],"unicode":"","glyph":"M650 353.1V250H900V150H300V250H550V353.1A400.04999999999995 400.04999999999995 0 0 0 200 750V1050H1000V750A400.04999999999995 400.04999999999995 0 0 0 650 353.1zM300 950V750A300 300 0 1 1 900 750V950H300zM50 950H150V750H50V950zM1050 950H1150V750H1050V950z","horizAdvX":"1200"},"truck-fill":{"path":["M0 0h24v24H0z","M17 8h3l3 4.056V18h-2.035a3.5 3.5 0 0 1-6.93 0h-5.07a3.5 3.5 0 0 1-6.93 0H1V6a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2zm0 2v3h4v-.285L18.992 10H17z"],"unicode":"","glyph":"M850 800H1000L1150 597.1999999999999V300H1048.25A175 175 0 0 0 701.75 300H448.25A175 175 0 0 0 101.75 300H50V900A50 50 0 0 0 100 950H800A50 50 0 0 0 850 900V800zM850 700V550H1050V564.25L949.6 700H850z","horizAdvX":"1200"},"truck-line":{"path":["M0 0h24v24H0z","M8.965 18a3.5 3.5 0 0 1-6.93 0H1V6a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2h3l3 4.056V18h-2.035a3.5 3.5 0 0 1-6.93 0h-5.07zM15 7H3v8.05a3.5 3.5 0 0 1 5.663.95h5.674c.168-.353.393-.674.663-.95V7zm2 6h4v-.285L18.992 10H17v3zm.5 6a1.5 1.5 0 1 0 0-3.001 1.5 1.5 0 0 0 0 3.001zM7 17.5a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0z"],"unicode":"","glyph":"M448.25 300A175 175 0 0 0 101.75 300H50V900A50 50 0 0 0 100 950H800A50 50 0 0 0 850 900V800H1000L1150 597.1999999999999V300H1048.25A175 175 0 0 0 701.75 300H448.25zM750 850H150V447.5A175 175 0 0 0 433.1500000000001 400H716.85C725.25 417.65 736.5 433.7 750 447.5V850zM850 550H1050V564.25L949.6 700H850V550zM875 250A75 75 0 1 1 875 400.05A75 75 0 0 1 875 250zM350 325A75 75 0 1 1 200 325A75 75 0 0 1 350 325z","horizAdvX":"1200"},"tumblr-fill":{"path":["M0 0h24v24H0z","M6.27 7.63A5.76 5.76 0 0 0 10.815 2h3.03v5.152h3.637v3.636h-3.636v5.454c0 .515.197 1.207.909 1.667.474.307 1.484.458 3.03.455V22h-4.242a4.545 4.545 0 0 1-4.546-4.545v-6.667H6.27V7.63z"],"unicode":"","glyph":"M313.5 818.5A288 288 0 0 1 540.75 1100H692.25V842.4H874.0999999999999V660.6H692.3V387.9C692.3 362.15 702.15 327.55 737.75 304.5499999999999C761.45 289.2 811.95 281.65 889.25 281.8V100H677.15A227.25000000000003 227.25000000000003 0 0 0 449.85 327.2500000000001V660.6H313.5V818.5z","horizAdvX":"1200"},"tumblr-line":{"path":["M0 0h24v24H0z","M8 8c1.075 0 3.497-.673 3.497-4.5V2h1.5v6H18v2h-5.003v2.91C13 15.39 13 16.595 13 17c-.002 2.208 1.615 3.4 4.785 3.4V22h-2.242c-2.402.002-4.546-2.035-4.546-4.545V10H7V8h1z"],"unicode":"","glyph":"M400 800C453.7499999999999 800 574.85 833.65 574.85 1025V1100H649.85V800H900V700H649.85V554.5C650 430.5 650 370.25 650 350C649.9 239.6000000000002 730.75 180.0000000000001 889.25 180.0000000000001V100H777.15C657.05 99.9000000000001 549.85 201.75 549.85 327.2500000000001V700H350V800H400z","horizAdvX":"1200"},"tv-2-fill":{"path":["M0 0h24v24H0z","M2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 18V4zm3 16h14v2H5v-2z"],"unicode":"","glyph":"M100 1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H149.6A49.7 49.7 0 0 0 100 300V1000zM250 200H950V100H250V200z","horizAdvX":"1200"},"tv-2-line":{"path":["M0 0h24v24H0z","M2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 18V4zm2 1v12h16V5H4zm1 15h14v2H5v-2z"],"unicode":"","glyph":"M100 1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H149.6A49.7 49.7 0 0 0 100 300V1000zM200 950V350H1000V950H200zM250 200H950V100H250V200z","horizAdvX":"1200"},"tv-fill":{"path":["M0 0h24v24H0z","M15.414 5h5.594c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6c0-.552.455-1 .992-1h5.594L6.05 2.464 7.464 1.05 11.414 5h1.172l3.95-3.95 1.414 1.414L15.414 5z"],"unicode":"","glyph":"M770.6999999999999 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900C100 927.6 122.75 950 149.6 950H429.3L302.5 1076.8L373.2000000000001 1147.5L570.6999999999999 950H629.3000000000001L826.8000000000001 1147.5L897.5000000000001 1076.8L770.6999999999999 950z","horizAdvX":"1200"},"tv-line":{"path":["M0 0h24v24H0z","M15.414 5h5.594c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6c0-.552.455-1 .992-1h5.594L6.05 2.464 7.464 1.05 11.414 5h1.172l3.95-3.95 1.414 1.414L15.414 5zM4 7v12h16V7H4z"],"unicode":"","glyph":"M770.6999999999999 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900C100 927.6 122.75 950 149.6 950H429.3L302.5 1076.8L373.2000000000001 1147.5L570.6999999999999 950H629.3000000000001L826.8000000000001 1147.5L897.5000000000001 1076.8L770.6999999999999 950zM200 850V250H1000V850H200z","horizAdvX":"1200"},"twitch-fill":{"path":["M0 0h24v24H0z","M21 3v11.74l-4.696 4.695h-3.913l-2.437 2.348H6.913v-2.348H3V6.13L4.227 3H21zm-1.565 1.565H6.13v11.74h3.13v2.347l2.349-2.348h4.695l3.13-3.13V4.565zm-3.13 3.13v4.696h-1.566V7.696h1.565zm-3.914 0v4.696h-1.565V7.696h1.565z"],"unicode":"","glyph":"M1050 1050V463L815.2 228.2499999999999H619.5500000000001L497.7000000000001 110.8499999999999H345.6500000000001V228.2499999999999H150V893.5L211.35 1050H1050zM971.7499999999998 971.75H306.5V384.75H463V267.4L580.45 384.8H815.2L971.7 541.2999999999998V971.75zM815.25 815.25V580.45H736.9499999999999V815.2H815.1999999999999zM619.55 815.25V580.45H541.3000000000001V815.2H619.55z","horizAdvX":"1200"},"twitch-line":{"path":["M0 0h24v24H0z","M4.3 3H21v11.7l-4.7 4.7h-3.9l-2.5 2.4H7v-2.4H3V6.2L4.3 3zM5 17.4h4v2.4h.095l2.5-2.4h3.877L19 13.872V5H5v12.4zM15 8h2v4.7h-2V8zm0 0h2v4.7h-2V8zm-5 0h2v4.7h-2V8z"],"unicode":"","glyph":"M215 1050H1050V465L815 230.0000000000001H620L495 110.0000000000002H350V230.0000000000001H150V890L215 1050zM250 330.0000000000001H450V210.0000000000001H454.7500000000001L579.75 330.0000000000001H773.6L950 506.4V950H250V330.0000000000001zM750 800H850V565H750V800zM750 800H850V565H750V800zM500 800H600V565H500V800z","horizAdvX":"1200"},"twitter-fill":{"path":["M0 0h24v24H0z","M22.162 5.656a8.384 8.384 0 0 1-2.402.658A4.196 4.196 0 0 0 21.6 4c-.82.488-1.719.83-2.656 1.015a4.182 4.182 0 0 0-7.126 3.814 11.874 11.874 0 0 1-8.62-4.37 4.168 4.168 0 0 0-.566 2.103c0 1.45.738 2.731 1.86 3.481a4.168 4.168 0 0 1-1.894-.523v.052a4.185 4.185 0 0 0 3.355 4.101 4.21 4.21 0 0 1-1.89.072A4.185 4.185 0 0 0 7.97 16.65a8.394 8.394 0 0 1-6.191 1.732 11.83 11.83 0 0 0 6.41 1.88c7.693 0 11.9-6.373 11.9-11.9 0-.18-.005-.362-.013-.54a8.496 8.496 0 0 0 2.087-2.165z"],"unicode":"","glyph":"M1108.1 917.2A419.2 419.2 0 0 0 987.9999999999998 884.3A209.8 209.8 0 0 1 1080 1000C1039 975.6 994.05 958.5 947.2000000000002 949.25A209.10000000000005 209.10000000000005 0 0 1 590.9000000000001 758.55A593.7 593.7 0 0 0 159.9000000000001 977.05A208.40000000000003 208.40000000000003 0 0 1 131.6000000000001 871.8999999999999C131.6000000000001 799.4 168.5000000000001 735.3499999999999 224.6000000000001 697.8499999999999A208.40000000000003 208.40000000000003 0 0 0 129.9000000000001 724V721.4A209.24999999999997 209.24999999999997 0 0 1 297.6500000000002 516.3499999999999A210.5 210.5 0 0 0 203.1500000000002 512.75A209.24999999999997 209.24999999999997 0 0 1 398.5 367.5000000000001A419.7 419.7 0 0 0 88.95 280.9000000000001A591.5 591.5 0 0 1 409.45 186.9000000000002C794.1 186.9000000000002 1004.45 505.5500000000002 1004.45 781.9000000000001C1004.45 790.9000000000001 1004.2 800.0000000000002 1003.7999999999998 808.9000000000001A424.8 424.8 0 0 1 1108.1499999999999 917.1500000000002z","horizAdvX":"1200"},"twitter-line":{"path":["M0 0h24v24H0z","M15.3 5.55a2.9 2.9 0 0 0-2.9 2.847l-.028 1.575a.6.6 0 0 1-.68.583l-1.561-.212c-2.054-.28-4.022-1.226-5.91-2.799-.598 3.31.57 5.603 3.383 7.372l1.747 1.098a.6.6 0 0 1 .034.993L7.793 18.17c.947.059 1.846.017 2.592-.131 4.718-.942 7.855-4.492 7.855-10.348 0-.478-1.012-2.141-2.94-2.141zm-4.9 2.81a4.9 4.9 0 0 1 8.385-3.355c.711-.005 1.316.175 2.669-.645-.335 1.64-.5 2.352-1.214 3.331 0 7.642-4.697 11.358-9.463 12.309-3.268.652-8.02-.419-9.382-1.841.694-.054 3.514-.357 5.144-1.55C5.16 15.7-.329 12.47 3.278 3.786c1.693 1.977 3.41 3.323 5.15 4.037 1.158.475 1.442.465 1.973.538z"],"unicode":"","glyph":"M765 922.5A145 145 0 0 1 620 780.15L618.6 701.4000000000001A30 30 0 0 0 584.6 672.25L506.55 682.85C403.85 696.8499999999999 305.45 744.15 211.05 822.8C181.15 657.3 239.55 542.65 380.2 454.1999999999999L467.5500000000001 399.3000000000001A30 30 0 0 0 469.2500000000001 349.6500000000001L389.6500000000001 291.4999999999999C437 288.5499999999999 481.95 290.65 519.25 298.05C755.15 345.15 912.0000000000002 522.65 912.0000000000002 815.45C912.0000000000002 839.3499999999999 861.4000000000001 922.5 765.0000000000001 922.5zM520 782A245 245 0 0 0 939.25 949.75C974.8 950 1005.05 941 1072.7 982C1055.95 900 1047.7 864.4000000000001 1012.0000000000002 815.45C1012.0000000000002 433.3500000000002 777.1500000000001 247.5500000000001 538.8500000000001 200C375.4500000000002 167.3999999999999 137.8500000000002 220.9500000000001 69.7500000000002 292.0500000000001C104.4500000000002 294.75 245.4500000000002 309.9 326.9500000000002 369.5500000000001C258 415 -16.45 576.5 163.9 1010.7C248.55 911.85 334.4000000000001 844.55 421.4000000000001 808.8499999999999C479.3 785.1 493.5000000000001 785.5999999999999 520.0500000000001 781.95z","horizAdvX":"1200"},"typhoon-fill":{"path":["M0 0h24v24H0z","M17.654 1.7l-2.782 2.533a9.137 9.137 0 0 1 3.49 1.973c3.512 3.2 3.512 8.388 0 11.588-2.592 2.36-6.598 3.862-12.016 4.506l2.782-2.533a9.137 9.137 0 0 1-3.49-1.973c-3.512-3.2-3.533-8.369 0-11.588C8.23 3.846 12.237 2.344 17.655 1.7zM12 8c-2.485 0-4.5 1.79-4.5 4s2.015 4 4.5 4 4.5-1.79 4.5-4-2.015-4-4.5-4z"],"unicode":"","glyph":"M882.7 1115L743.6 988.35A456.85 456.85 0 0 0 918.1000000000003 889.7C1093.7 729.7 1093.7 470.3000000000001 918.1000000000003 310.3000000000002C788.5000000000001 192.3000000000002 588.2000000000002 117.2000000000001 317.3000000000001 85.0000000000002L456.4000000000001 211.6500000000002A456.85 456.85 0 0 0 281.9000000000001 310.3000000000002C106.3000000000001 470.3000000000001 105.2500000000001 728.7500000000001 281.9000000000001 889.7C411.5 1007.7 611.85 1082.8 882.75 1115zM600 800C475.75 800 375 710.5 375 600S475.75 400 600 400S825 489.5 825 600S724.25 800 600 800z","horizAdvX":"1200"},"typhoon-line":{"path":["M0 0h24v24H0z","M17.654 1.7l-2.782 2.533a9.137 9.137 0 0 1 3.49 1.973c3.512 3.2 3.512 8.388 0 11.588-2.592 2.36-6.598 3.862-12.016 4.506l2.782-2.533a9.137 9.137 0 0 1-3.49-1.973c-3.512-3.2-3.533-8.369 0-11.588C8.23 3.846 12.237 2.344 17.655 1.7zM12 6c-3.866 0-7 2.686-7 6s3.134 6 7 6 7-2.686 7-6-3.134-6-7-6zm0 2.3c2.21 0 4 1.657 4 3.7s-1.79 3.7-4 3.7-4-1.657-4-3.7 1.79-3.7 4-3.7zm0 2c-1.138 0-2 .797-2 1.7 0 .903.862 1.7 2 1.7s2-.797 2-1.7c0-.903-.862-1.7-2-1.7z"],"unicode":"","glyph":"M882.7 1115L743.6 988.35A456.85 456.85 0 0 0 918.1000000000003 889.7C1093.7 729.7 1093.7 470.3000000000001 918.1000000000003 310.3000000000002C788.5000000000001 192.3000000000002 588.2000000000002 117.2000000000001 317.3000000000001 85.0000000000002L456.4000000000001 211.6500000000002A456.85 456.85 0 0 0 281.9000000000001 310.3000000000002C106.3000000000001 470.3000000000001 105.2500000000001 728.7500000000001 281.9000000000001 889.7C411.5 1007.7 611.85 1082.8 882.75 1115zM600 900C406.7000000000001 900 250 765.7 250 600S406.7000000000001 300 600 300S950 434.3 950 600S793.3 900 600 900zM600 785C710.5 785 800 702.15 800 600S710.5 415 600 415S400 497.85 400 600S489.4999999999999 785 600 785zM600 685C543.1 685 500 645.15 500 600C500 554.85 543.1 515 600 515S700 554.85 700 600C700 645.15 656.9 685 600 685z","horizAdvX":"1200"},"u-disk-fill":{"path":["M0 0h24v24H0z","M4 12h16a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1zM5 2h14v8H5V2zm4 3v2h2V5H9zm4 0v2h2V5h-2z"],"unicode":"","glyph":"M200 600H1000A50 50 0 0 0 1050 550V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V550A50 50 0 0 0 200 600zM250 1100H950V700H250V1100zM450 950V850H550V950H450zM650 950V850H750V950H650z","horizAdvX":"1200"},"u-disk-line":{"path":["M0 0h24v24H0z","M19 12H5v8h14v-8zM5 10V2h14v8h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1zm2 0h10V4H7v6zm2-4h2v2H9V6zm4 0h2v2h-2V6z"],"unicode":"","glyph":"M950 600H250V200H950V600zM250 700V1100H950V700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250zM350 700H850V1000H350V700zM450 900H550V800H450V900zM650 900H750V800H650V900z","horizAdvX":"1200"},"ubuntu-fill":{"path":["M0 0h24v24H0z","M22 12c0 5.522-4.477 10-10 10S2 17.522 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10zM5.2 10.664a1.335 1.335 0 1 0 0 2.67 1.335 1.335 0 0 0 0-2.67zm9.533 6.069a1.334 1.334 0 1 0 1.334 2.31 1.334 1.334 0 0 0-1.334-2.31zM8.1 12c0-1.32.656-2.485 1.659-3.19l-.976-1.636a5.813 5.813 0 0 0-2.399 3.371 1.875 1.875 0 0 1 0 2.91 5.813 5.813 0 0 0 2.398 3.371l.977-1.636A3.892 3.892 0 0 1 8.1 12zM12 8.1a3.9 3.9 0 0 1 3.884 3.554l1.903-.028a5.781 5.781 0 0 0-1.723-3.762A1.872 1.872 0 0 1 13.55 6.41a5.829 5.829 0 0 0-4.12.39l.927 1.663A3.885 3.885 0 0 1 12 8.1zm0 7.8c-.587 0-1.143-.13-1.643-.363l-.927 1.662a5.774 5.774 0 0 0 4.12.39 1.872 1.872 0 0 1 2.514-1.454 5.782 5.782 0 0 0 1.723-3.762l-1.903-.027A3.898 3.898 0 0 1 12 15.9zm2.732-8.633a1.335 1.335 0 1 0 1.335-2.312 1.335 1.335 0 0 0-1.335 2.312z"],"unicode":"","glyph":"M1100 600C1100 323.9000000000001 876.15 100 600 100S100 323.9000000000001 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600zM260 666.8000000000001A66.75 66.75 0 1 1 260 533.3000000000001A66.75 66.75 0 0 1 260 666.8000000000001zM736.65 363.35A66.69999999999999 66.69999999999999 0 1 1 803.35 247.85A66.69999999999999 66.69999999999999 0 0 1 736.65 363.35zM405 600C405 666 437.8 724.25 487.95 759.5L439.1500000000001 841.3A290.65 290.65 0 0 1 319.2000000000001 672.75A93.75 93.75 0 0 0 319.2000000000001 527.25A290.65 290.65 0 0 1 439.1000000000001 358.7L487.9500000000001 440.4999999999999A194.6 194.6 0 0 0 405 600zM600 795A195 195 0 0 0 794.2 617.3L889.3499999999999 618.7A289.04999999999995 289.04999999999995 0 0 1 803.2 806.8000000000001A93.60000000000001 93.60000000000001 0 0 0 677.5 879.5A291.45000000000005 291.45000000000005 0 0 1 471.5 860L517.8499999999999 776.85A194.24999999999997 194.24999999999997 0 0 0 600 795zM600 405.0000000000001C570.65 405.0000000000001 542.8499999999999 411.5000000000001 517.8499999999999 423.1500000000001L471.5 340.0500000000001A288.7 288.7 0 0 1 677.5 320.5500000000001A93.60000000000001 93.60000000000001 0 0 0 803.2 393.2500000000001A289.1 289.1 0 0 1 889.3499999999999 581.3500000000001L794.1999999999999 582.7A194.9 194.9 0 0 0 600 405zM736.5999999999999 836.6500000000001A66.75 66.75 0 1 1 803.35 952.25A66.75 66.75 0 0 1 736.5999999999999 836.6500000000001z","horizAdvX":"1200"},"ubuntu-line":{"path":["M0 0h24v24H0z","M8.667 19.273l1.006-1.742a6.001 6.001 0 0 0 8.282-4.781h2.012A7.97 7.97 0 0 1 18.928 16a8 8 0 0 1-1.452 1.835 2.493 2.493 0 0 0-1.976.227 2.493 2.493 0 0 0-1.184 1.596 7.979 7.979 0 0 1-5.65-.385zm-1.3-.75a7.979 7.979 0 0 1-3.156-4.7C4.696 13.367 5 12.72 5 12c0-.72-.304-1.369-.791-1.825A8 8 0 0 1 5.072 8a7.97 7.97 0 0 1 2.295-2.524l1.006 1.742a6.001 6.001 0 0 0 0 9.563l-1.005 1.742zm1.3-13.796a8.007 8.007 0 0 1 5.648-.387c.152.65.562 1.238 1.185 1.598.623.36 1.337.42 1.976.227a8.007 8.007 0 0 1 2.49 5.085h-2.013A5.99 5.99 0 0 0 15 6.804a5.99 5.99 0 0 0-5.327-.335L8.667 4.727zM16 5.072a1.5 1.5 0 1 1 1.5-2.598A1.5 1.5 0 0 1 16 5.072zM4 12a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm12 6.928a1.5 1.5 0 1 1 1.5 2.598 1.5 1.5 0 0 1-1.5-2.598z"],"unicode":"","glyph":"M433.35 236.35L483.65 323.4500000000001A300.05 300.05 0 0 1 897.7499999999999 562.5H998.35A398.5 398.5 0 0 0 946.4 400A400 400 0 0 0 873.8 308.25A124.64999999999999 124.64999999999999 0 0 1 775 296.9A124.64999999999999 124.64999999999999 0 0 1 715.8000000000001 217.0999999999999A398.95 398.95 0 0 0 433.3 236.35zM368.35 273.85A398.95 398.95 0 0 0 210.55 508.85C234.8 531.65 250 564 250 600C250 636 234.8 668.45 210.45 691.25A400 400 0 0 0 253.6 800A398.5 398.5 0 0 0 368.35 926.2L418.65 839.1A300.05 300.05 0 0 1 418.65 360.9500000000001L368.4 273.85zM433.35 963.65A400.34999999999997 400.34999999999997 0 0 0 715.75 983C723.3499999999999 950.5 743.8499999999999 921.1 775 903.1C806.1500000000001 885.1 841.85 882.1 873.8 891.75A400.34999999999997 400.34999999999997 0 0 0 998.3 637.5H897.6500000000001A299.50000000000006 299.50000000000006 0 0 1 750 859.8A299.50000000000006 299.50000000000006 0 0 1 483.65 876.55L433.35 963.65zM800 946.4A75 75 0 1 0 875 1076.3A75 75 0 0 0 800 946.4zM200 600A75 75 0 1 0 50 600A75 75 0 0 0 200 600zM800 253.5999999999999A75 75 0 1 0 875 123.7000000000001A75 75 0 0 0 800 253.5999999999999z","horizAdvX":"1200"},"umbrella-fill":{"path":["M0 0h24v24H0z","M13 2.05c5.053.501 9 4.765 9 9.95v1h-9v6a2 2 0 1 0 4 0v-1h2v1a4 4 0 1 1-8 0v-6H2v-1c0-5.185 3.947-9.449 9-9.95V2a1 1 0 0 1 2 0v.05z"],"unicode":"","glyph":"M650 1097.5C902.65 1072.45 1100 859.25 1100 600V550H650V250A100 100 0 1 1 850 250V300H950V250A200 200 0 1 0 550 250V550H100V600C100 859.25 297.35 1072.45 550 1097.5V1100A50 50 0 0 0 650 1100V1097.5z","horizAdvX":"1200"},"umbrella-line":{"path":["M0 0h24v24H0z","M13 2.05c5.053.501 9 4.765 9 9.95v1h-9v6a2 2 0 1 0 4 0v-1h2v1a4 4 0 1 1-8 0v-6H2v-1c0-5.185 3.947-9.449 9-9.95V2a1 1 0 0 1 2 0v.05zM19.938 11a8.001 8.001 0 0 0-15.876 0h15.876z"],"unicode":"","glyph":"M650 1097.5C902.65 1072.45 1100 859.25 1100 600V550H650V250A100 100 0 1 1 850 250V300H950V250A200 200 0 1 0 550 250V550H100V600C100 859.25 297.35 1072.45 550 1097.5V1100A50 50 0 0 0 650 1100V1097.5zM996.9 650A400.04999999999995 400.04999999999995 0 0 1 203.1 650H996.9z","horizAdvX":"1200"},"underline":{"path":["M0 0h24v24H0z","M8 3v9a4 4 0 1 0 8 0V3h2v9a6 6 0 1 1-12 0V3h2zM4 20h16v2H4v-2z"],"unicode":"","glyph":"M400 1050V600A200 200 0 1 1 800 600V1050H900V600A300 300 0 1 0 300 600V1050H400zM200 200H1000V100H200V200z","horizAdvX":"1200"},"uninstall-fill":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16zm-1 14H5v4h14v-4zm-2 1v2h-2v-2h2zM12 2L8 6h3v5h2V6h3l-4-4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000zM950 400H250V200H950V400zM850 350V250H750V350H850zM600 1100L400 900H550V650H650V900H800L600 1100z","horizAdvX":"1200"},"uninstall-line":{"path":["M0 0h24v24H0z","M8 2v2H5l-.001 10h14L19 4h-3V2h4a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h4zm10.999 14h-14L5 20h14l-.001-4zM17 17v2h-2v-2h2zM12 2l4 4h-3v5h-2V6H8l4-4z"],"unicode":"","glyph":"M400 1100V1000H250L249.95 500H949.95L950 1000H800V1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H400zM949.9500000000002 400H249.9500000000001L250 200H950L949.95 400zM850 350V250H750V350H850zM600 1100L800 900H650V650H550V900H400L600 1100z","horizAdvX":"1200"},"unsplash-fill":{"path":["M0 0H24V24H0z","M8.5 11v5h7v-5H21v10H3V11h5.5zm7-8v5h-7V3h7z"],"unicode":"","glyph":"M425 650V400H775V650H1050V150H150V650H425zM775 1050V800H425V1050H775z","horizAdvX":"1200"},"unsplash-line":{"path":["M0 0H24V24H0z","M10 10v4h4v-4h7v11H3V10h7zm-2 2H5v7h14v-7h-3l-.001 4H8v-4zm8-9v6H8V3h8zm-2 2h-4v2h4V5z"],"unicode":"","glyph":"M500 700V500H700V700H1050V150H150V700H500zM400 600H250V250H950V600H800L799.95 400H400V600zM800 1050V750H400V1050H800zM700 950H500V850H700V950z","horizAdvX":"1200"},"upload-2-fill":{"path":["M0 0h24v24H0z","M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7zM14 9v6h-4V9H5l7-7 7 7h-5z"],"unicode":"","glyph":"M200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250zM700 750V450H500V750H250L600 1100L950 750H700z","horizAdvX":"1200"},"upload-2-line":{"path":["M0 0h24v24H0z","M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7zm9-10v7h-2V9H6l6-6 6 6h-5z"],"unicode":"","glyph":"M200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250zM650 750V400H550V750H300L600 1050L900 750H650z","horizAdvX":"1200"},"upload-cloud-2-fill":{"path":["M0 0h24v24H0z","M12 12.586l4.243 4.242-1.415 1.415L13 16.415V22h-2v-5.587l-1.828 1.83-1.415-1.415L12 12.586zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784L18 17a6 6 0 0 0-11.996-.225L6 17v1.978a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M600 570.6999999999999L812.1500000000001 358.6L741.4000000000001 287.85L650 379.25V100H550V379.35L458.6 287.8499999999999L387.85 358.5999999999999L600 570.6999999999999zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999L900 350A300 300 0 0 1 300.2 361.2500000000001L300 350V251.0999999999999A275 275 0 0 0 252.3 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"upload-cloud-2-line":{"path":["M0 0h24v24H0z","M12 12.586l4.243 4.242-1.415 1.415L13 16.415V22h-2v-5.587l-1.828 1.83-1.415-1.415L12 12.586zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784v-2.014a3.5 3.5 0 1 0-1.112-6.91 5 5 0 1 0-9.777 0 3.5 3.5 0 0 0-1.292 6.88l.18.03v2.014a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M600 570.6999999999999L812.1500000000001 358.6L741.4000000000001 287.85L650 379.25V100H550V379.35L458.6 287.8499999999999L387.85 358.5999999999999L600 570.6999999999999zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999V351.7999999999999A175 175 0 1 1 844.4500000000002 697.3A250 250 0 1 1 355.6000000000002 697.3A175 175 0 0 1 291.0000000000002 353.3L300.0000000000002 351.7999999999999V251.0999999999999A275 275 0 0 0 252.3000000000002 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"upload-cloud-fill":{"path":["M0 0h24v24H0z","M7 20.981a6.5 6.5 0 0 1-2.936-12 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12V21H7v-.019zM13 13h3l-4-5-4 5h3v4h2v-4z"],"unicode":"","glyph":"M350 150.9499999999998A325 325 0 0 0 203.2 750.9499999999999A400.04999999999995 400.04999999999995 0 0 0 996.8 750.9499999999999A325 325 0 0 0 850 150.9499999999998V150H350V150.9499999999998zM650 550H800L600 800L400 550H550V350H650V550z","horizAdvX":"1200"},"upload-cloud-line":{"path":["M0 0h24v24H0z","M1 14.5a6.496 6.496 0 0 1 3.064-5.519 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12L7 21c-3.356-.274-6-3.078-6-6.5zm15.848 4.487a4.5 4.5 0 0 0 2.03-8.309l-.807-.503-.12-.942a6.001 6.001 0 0 0-11.903 0l-.12.942-.805.503a4.5 4.5 0 0 0 2.029 8.309l.173.013h9.35l.173-.013zM13 13v4h-2v-4H8l4-5 4 5h-3z"],"unicode":"","glyph":"M50 475A324.8 324.8 0 0 0 203.2 750.95A400.04999999999995 400.04999999999995 0 0 0 996.8 750.95A325 325 0 0 0 850 150.9499999999998L350 150C182.2 163.7000000000001 50 303.9 50 475zM842.4 250.6499999999999A225 225 0 0 1 943.9 666.0999999999999L903.55 691.2499999999999L897.5500000000001 738.3499999999999A300.05 300.05 0 0 1 302.4 738.3499999999999L296.4 691.2499999999999L256.1500000000001 666.0999999999999A225 225 0 0 1 357.6 250.6499999999999L366.25 249.9999999999998H833.75L842.4 250.6499999999999zM650 550V350H550V550H400L600 800L800 550H650z","horizAdvX":"1200"},"upload-fill":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zm10-9v8h-2v-8H4l8-8 8 8h-7z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 700V300H550V700H200L600 1100L1000 700H650z","horizAdvX":"1200"},"upload-line":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zM13 5.828V17h-2V5.828L4.929 11.9l-1.414-1.414L12 2l8.485 8.485-1.414 1.414L13 5.83z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 908.6V350H550V908.6L246.45 605L175.75 675.6999999999999L600 1100L1024.25 675.75L953.55 605.0500000000001L650 908.5z","horizAdvX":"1200"},"usb-fill":{"path":["M0 0H24V24H0z","M12 1l3 5h-2v7.381l3-1.499-.001-.882H15V7h4v4h-1.001L18 13.118l-5 2.5v1.553c1.166.412 2 1.523 2 2.829 0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.187.69-2.213 1.69-2.7L6 14l-.001-2.268C5.402 11.386 5 10.74 5 10c0-1.105.895-2 2-2s2 .895 2 2c0 .74-.402 1.387-1 1.732V13l3 2.086V6H9l3-5z"],"unicode":"","glyph":"M600 1150L750 900H650V530.95L800 605.9L799.95 650H750V850H950V650H899.9499999999999L900 544.1L650 419.1V341.4500000000001C708.3000000000001 320.8500000000002 750 265.3000000000001 750 200C750 117.1500000000001 682.85 50 600 50S450 117.1500000000001 450 200C450 259.35 484.5 310.6500000000001 534.5 335L300 500L299.95 613.4000000000001C270.1 630.7 250 663 250 700C250 755.25 294.75 800 350 800S450 755.25 450 700C450 663 429.9000000000001 630.65 400 613.4000000000001V550L550 445.7V900H450L600 1150z","horizAdvX":"1200"},"usb-line":{"path":["M0 0H24V24H0z","M12 1l3 5h-2v7.381l3-1.499-.001-.882H15V7h4v4h-1.001L18 13.118l-5 2.5v1.553c1.166.412 2 1.523 2 2.829 0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.187.69-2.213 1.69-2.7L6 14l-.001-2.268C5.402 11.386 5 10.74 5 10c0-1.105.895-2 2-2s2 .895 2 2c0 .74-.402 1.387-1 1.732V13l3 2.086V6H9l3-5zm0 18c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M600 1150L750 900H650V530.95L800 605.9L799.95 650H750V850H950V650H899.9499999999999L900 544.1L650 419.1V341.4500000000001C708.3000000000001 320.8500000000002 750 265.3000000000001 750 200C750 117.1500000000001 682.85 50 600 50S450 117.1500000000001 450 200C450 259.35 484.5 310.6500000000001 534.5 335L300 500L299.95 613.4000000000001C270.1 630.7 250 663 250 700C250 755.25 294.75 800 350 800S450 755.25 450 700C450 663 429.9000000000001 630.65 400 613.4000000000001V550L550 445.7V900H450L600 1150zM600 250C572.4 250 550 227.6 550 200S572.4 150 600 150S650 172.4000000000001 650 200S627.6 250 600 250z","horizAdvX":"1200"},"user-2-fill":{"path":["M0 0h24v24H0z","M11 14.062V20h2v-5.938c3.946.492 7 3.858 7 7.938H4a8.001 8.001 0 0 1 7-7.938zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6z"],"unicode":"","glyph":"M550 496.9V200H650V496.9C847.3000000000001 472.3 1000 303.9999999999999 1000 100H200A400.04999999999995 400.04999999999995 0 0 0 550 496.9zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550z","horizAdvX":"1200"},"user-2-line":{"path":["M0 0h24v24H0z","M4 22a8 8 0 1 1 16 0H4zm9-5.917V20h4.659A6.009 6.009 0 0 0 13 16.083zM11 20v-3.917A6.009 6.009 0 0 0 6.341 20H11zm1-7c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"],"unicode":"","glyph":"M200 100A400 400 0 1 0 1000 100H200zM650 395.8500000000002V200H882.9499999999999A300.45000000000005 300.45000000000005 0 0 1 650 395.8500000000002zM550 200V395.8500000000002A300.45000000000005 300.45000000000005 0 0 1 317.05 200H550zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650z","horizAdvX":"1200"},"user-3-fill":{"path":["M0 0h24v24H0z","M20 22H4v-2a5 5 0 0 1 5-5h6a5 5 0 0 1 5 5v2zm-8-9a6 6 0 1 1 0-12 6 6 0 0 1 0 12z"],"unicode":"","glyph":"M1000 100H200V200A250 250 0 0 0 450 450H750A250 250 0 0 0 1000 200V100zM600 550A300 300 0 1 0 600 1150A300 300 0 0 0 600 550z","horizAdvX":"1200"},"user-3-line":{"path":["M0 0h24v24H0z","M20 22h-2v-2a3 3 0 0 0-3-3H9a3 3 0 0 0-3 3v2H4v-2a5 5 0 0 1 5-5h6a5 5 0 0 1 5 5v2zm-8-9a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M1000 100H900V200A150 150 0 0 1 750 350H450A150 150 0 0 1 300 200V100H200V200A250 250 0 0 0 450 450H750A250 250 0 0 0 1000 200V100zM600 550A300 300 0 1 0 600 1150A300 300 0 0 0 600 550zM600 650A200 200 0 1 1 600 1050A200 200 0 0 1 600 650z","horizAdvX":"1200"},"user-4-fill":{"path":["M0 0h24v24H0z","M5 20h14v2H5v-2zm7-2a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"],"unicode":"","glyph":"M250 200H950V100H250V200zM600 300A400 400 0 1 0 600 1100A400 400 0 0 0 600 300z","horizAdvX":"1200"},"user-4-line":{"path":["M0 0h24v24H0z","M5 20h14v2H5v-2zm7-2a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm0-2a6 6 0 1 0 0-12 6 6 0 0 0 0 12z"],"unicode":"","glyph":"M250 200H950V100H250V200zM600 300A400 400 0 1 0 600 1100A400 400 0 0 0 600 300zM600 400A300 300 0 1 1 600 1000A300 300 0 0 1 600 400z","horizAdvX":"1200"},"user-5-fill":{"path":["M0 0h24v24H0z","M7.39 16.539a8 8 0 1 1 9.221 0l2.083 4.76a.5.5 0 0 1-.459.701H5.765a.5.5 0 0 1-.459-.7l2.083-4.761zm.729-5.569a4.002 4.002 0 0 0 7.762 0l-1.94-.485a2 2 0 0 1-3.882 0l-1.94.485z"],"unicode":"","glyph":"M369.5 373.05A400 400 0 1 0 830.5500000000001 373.05L934.7000000000002 135.05A25 25 0 0 0 911.7500000000002 100H288.25A25 25 0 0 0 265.3 135L369.45 373.05zM405.95 651.4999999999999A200.10000000000002 200.10000000000002 0 0 1 794.05 651.4999999999999L697.0500000000001 675.7499999999999A100 100 0 0 0 502.95 675.7499999999999L405.9500000000001 651.4999999999999z","horizAdvX":"1200"},"user-5-line":{"path":["M0 0h24v24H0z","M7.39 16.539a8 8 0 1 1 9.221 0l2.083 4.76a.5.5 0 0 1-.459.701H5.765a.5.5 0 0 1-.459-.7l2.083-4.761zm6.735-.693l1.332-.941a6 6 0 1 0-6.913 0l1.331.941L8.058 20h7.884l-1.817-4.154zM8.119 10.97l1.94-.485a2 2 0 0 0 3.882 0l1.94.485a4.002 4.002 0 0 1-7.762 0z"],"unicode":"","glyph":"M369.5 373.05A400 400 0 1 0 830.5500000000001 373.05L934.7000000000002 135.05A25 25 0 0 0 911.7500000000002 100H288.25A25 25 0 0 0 265.3 135L369.45 373.05zM706.25 407.7L772.85 454.75A300 300 0 1 1 427.2000000000001 454.75L493.75 407.7L402.9 200H797.1L706.25 407.7000000000001zM405.95 651.5L502.95 675.7499999999999A100 100 0 0 1 697.05 675.7499999999999L794.05 651.5A200.10000000000002 200.10000000000002 0 0 0 405.95 651.5z","horizAdvX":"1200"},"user-6-fill":{"path":["M0 0h24v24H0z","M12 17c3.662 0 6.865 1.575 8.607 3.925l-1.842.871C17.347 20.116 14.847 19 12 19c-2.847 0-5.347 1.116-6.765 2.796l-1.841-.872C5.136 18.574 8.338 17 12 17zm0-15a5 5 0 0 1 5 5v3a5 5 0 0 1-10 0V7a5 5 0 0 1 5-5z"],"unicode":"","glyph":"M600 350C783.0999999999999 350 943.2500000000002 271.25 1030.35 153.75L938.25 110.2000000000001C867.35 194.2000000000001 742.35 250 600 250C457.65 250 332.65 194.2000000000001 261.75 110.2000000000001L169.7 153.8C256.8 271.3 416.9 350 600 350zM600 1100A250 250 0 0 0 850 850V700A250 250 0 0 0 350 700V850A250 250 0 0 0 600 1100z","horizAdvX":"1200"},"user-6-line":{"path":["M0 0h24v24H0z","M12 17c3.662 0 6.865 1.575 8.607 3.925l-1.842.871C17.347 20.116 14.847 19 12 19c-2.847 0-5.347 1.116-6.765 2.796l-1.841-.872C5.136 18.574 8.338 17 12 17zm0-15a5 5 0 0 1 5 5v3a5 5 0 0 1-4.783 4.995L12 15a5 5 0 0 1-5-5V7a5 5 0 0 1 4.783-4.995L12 2zm0 2a3 3 0 0 0-2.995 2.824L9 7v3a3 3 0 0 0 5.995.176L15 10V7a3 3 0 0 0-3-3z"],"unicode":"","glyph":"M600 350C783.0999999999999 350 943.2500000000002 271.25 1030.35 153.75L938.25 110.2000000000001C867.35 194.2000000000001 742.35 250 600 250C457.65 250 332.65 194.2000000000001 261.75 110.2000000000001L169.7 153.8C256.8 271.3 416.9 350 600 350zM600 1100A250 250 0 0 0 850 850V700A250 250 0 0 0 610.8499999999999 450.25L600 450A250 250 0 0 0 350 700V850A250 250 0 0 0 589.1500000000001 1099.75L600 1100zM600 1000A150 150 0 0 1 450.25 858.8L450 850V700A150 150 0 0 1 749.75 691.2L750 700V850A150 150 0 0 1 600 1000z","horizAdvX":"1200"},"user-add-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm6 4v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM900 350V500H1000V350H1150V250H1000V100H900V250H750V350H900z","horizAdvX":"1200"},"user-add-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6 6v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM900 350V500H1000V350H1150V250H1000V100H900V250H750V350H900z","horizAdvX":"1200"},"user-fill":{"path":["M0 0h24v24H0z","M4 22a8 8 0 1 1 16 0H4zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6z"],"unicode":"","glyph":"M200 100A400 400 0 1 0 1000 100H200zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550z","horizAdvX":"1200"},"user-follow-fill":{"path":["M0 0h24v24H0z","M13 14.062V22H4a8 8 0 0 1 9-7.938zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm5.793 6.914l3.535-3.535 1.415 1.414-4.95 4.95-3.536-3.536 1.415-1.414 2.12 2.121z"],"unicode":"","glyph":"M650 496.9V100H200A400 400 0 0 0 650 496.9zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM889.65 204.3L1066.3999999999999 381.05L1137.1499999999999 310.3499999999999L889.65 62.8499999999999L712.85 239.65L783.6 310.35L889.6000000000001 204.3000000000001z","horizAdvX":"1200"},"user-follow-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm5.793 8.914l3.535-3.535 1.415 1.414-4.95 4.95-3.536-3.536 1.415-1.414 2.12 2.121z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM889.65 204.3L1066.3999999999999 381.05L1137.1499999999999 310.3499999999999L889.65 62.8499999999999L712.85 239.65L783.6 310.35L889.6000000000001 204.3000000000001z","horizAdvX":"1200"},"user-heart-fill":{"path":["M0 0h24v24H0z","M17.841 15.659l.176.177.178-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359-3.358-3.359a2.25 2.25 0 0 1 3.182-3.182zM12 14v8H4a8 8 0 0 1 7.75-7.996L12 14zm0-13c3.315 0 6 2.685 6 6s-2.685 6-6 6-6-2.685-6-6 2.685-6 6-6z"],"unicode":"","glyph":"M892.0500000000001 417.05L900.85 408.2L909.75 417.05A112.5 112.5 0 0 0 1068.85 257.95L900.85 89.9999999999998L732.9499999999999 257.95A112.5 112.5 0 0 0 892.0499999999998 417.05zM600 500V100H200A400 400 0 0 0 587.5 499.8000000000001L600 500zM600 1150C765.75 1150 900 1015.75 900 850S765.75 550 600 550S300 684.25 300 850S434.25 1150 600 1150z","horizAdvX":"1200"},"user-heart-line":{"path":["M0 0h24v24H0z","M17.841 15.659l.176.177.178-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359-3.358-3.359a2.25 2.25 0 0 1 3.182-3.182zM12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 7.75-7.996L12 14zm0-13c3.315 0 6 2.685 6 6a5.998 5.998 0 0 1-5.775 5.996L12 13c-3.315 0-6-2.685-6-6a5.998 5.998 0 0 1 5.775-5.996L12 1zm0 2C9.79 3 8 4.79 8 7s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"],"unicode":"","glyph":"M892.0500000000001 417.05L900.85 408.2L909.75 417.05A112.5 112.5 0 0 0 1068.85 257.95L900.85 89.9999999999998L732.9499999999999 257.95A112.5 112.5 0 0 0 892.0499999999998 417.05zM600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 587.5 499.8000000000001L600 500zM600 1150C765.75 1150 900 1015.75 900 850A299.90000000000003 299.90000000000003 0 0 0 611.25 550.1999999999999L600 550C434.25 550 300 684.25 300 850A299.90000000000003 299.90000000000003 0 0 0 588.75 1149.8L600 1150zM600 1050C489.4999999999999 1050 400 960.5 400 850S489.4999999999999 650 600 650S800 739.5 800 850S710.5 1050 600 1050z","horizAdvX":"1200"},"user-line":{"path":["M0 0h24v24H0z","M4 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H4zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"],"unicode":"","glyph":"M200 100A400 400 0 1 0 1000 100H900A300 300 0 1 1 300 100H200zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650z","horizAdvX":"1200"},"user-location-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm8.828 7.828L18 23.657l-2.828-2.829a4 4 0 1 1 5.656 0zM18 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1041.3999999999999 158.6000000000001L900 17.1500000000001L758.6 158.6000000000001A200 200 0 1 0 1041.3999999999999 158.6000000000001zM900 350A50 50 0 1 1 900 250A50 50 0 0 1 900 350z","horizAdvX":"1200"},"user-location-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm8.828 10.071L18 24l-2.828-2.929c-1.563-1.618-1.563-4.24 0-5.858a3.904 3.904 0 0 1 5.656 0c1.563 1.618 1.563 4.24 0 5.858zm-1.438-1.39c.813-.842.813-2.236 0-3.078a1.904 1.904 0 0 0-2.78 0c-.813.842-.813 2.236 0 3.079L18 21.12l1.39-1.44z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1041.3999999999999 146.4500000000001L900 0L758.6 146.4499999999998C680.45 227.3499999999999 680.45 358.4499999999998 758.6 439.3499999999999A195.2 195.2 0 0 0 1041.3999999999999 439.3499999999999C1119.55 358.4500000000001 1119.55 227.3499999999999 1041.3999999999999 146.4499999999998zM969.5 215.9500000000002C1010.15 258.0500000000001 1010.15 327.7500000000001 969.5 369.8500000000002A95.19999999999999 95.19999999999999 0 0 1 830.5 369.8500000000002C789.8499999999999 327.7500000000001 789.8499999999999 258.0500000000001 830.5 215.9000000000001L900 144L969.5 216z","horizAdvX":"1200"},"user-received-2-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm8 4h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"user-received-2-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm8 6h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"user-received-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm7.418 4h3.586v2h-3.586l1.829 1.828-1.414 1.415L15.59 18l4.243-4.243 1.414 1.415L19.418 17z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM970.9 350H1150.1999999999998V250H970.9L1062.35 158.6000000000001L991.6499999999997 87.8500000000001L779.5 300L991.6499999999997 512.15L1062.35 441.4L970.9 350z","horizAdvX":"1200"},"user-received-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm7.418 6h3.586v2h-3.586l1.829 1.828-1.414 1.415L15.59 18l4.243-4.243 1.414 1.415L19.418 17z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM970.9 350H1150.1999999999998V250H970.9L1062.35 158.6000000000001L991.6499999999997 87.8500000000001L779.5 300L991.6499999999997 512.15L1062.35 441.4L970.9 350z","horizAdvX":"1200"},"user-search-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm9.446 7.032l1.504 1.504-1.414 1.414-1.504-1.504a4 4 0 1 1 1.414-1.414zM18 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1072.3 198.4L1147.5 123.1999999999998L1076.8 52.4999999999998L1001.5999999999998 127.6999999999998A200 200 0 1 0 1072.3 198.4zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"user-search-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm9.446 9.032l1.504 1.504-1.414 1.414-1.504-1.504a4 4 0 1 1 1.414-1.414zM18 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1072.3 198.4L1147.5 123.1999999999998L1076.8 52.4999999999998L1001.5999999999998 127.6999999999998A200 200 0 1 0 1072.3 198.4zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"user-settings-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm2.595 5.812a3.51 3.51 0 0 1 0-1.623l-.992-.573 1-1.732.992.573A3.496 3.496 0 0 1 17 14.645V13.5h2v1.145c.532.158 1.012.44 1.405.812l.992-.573 1 1.732-.992.573a3.51 3.51 0 0 1 0 1.622l.992.573-1 1.732-.992-.573a3.496 3.496 0 0 1-1.405.812V22.5h-2v-1.145a3.496 3.496 0 0 1-1.405-.812l-.992.573-1-1.732.992-.572zM18 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM729.75 259.4A175.49999999999997 175.49999999999997 0 0 0 729.75 340.55L680.1500000000001 369.2000000000001L730.1500000000001 455.8L779.7500000000001 427.15A174.8 174.8 0 0 0 850 467.75V525H950V467.75C976.6 459.85 1000.6 445.75 1020.25 427.1500000000001L1069.8500000000001 455.8000000000001L1119.8500000000001 369.2000000000001L1070.25 340.55A175.49999999999997 175.49999999999997 0 0 0 1070.25 259.4500000000001L1119.8500000000001 230.8L1069.8500000000001 144.2000000000001L1020.25 172.8500000000001A174.8 174.8 0 0 0 950 132.25V75H850V132.25A174.8 174.8 0 0 0 779.75 172.8500000000001L730.1500000000001 144.2000000000001L680.1500000000001 230.8L729.7500000000001 259.4zM900 350A50 50 0 1 1 900 250A50 50 0 0 1 900 350z","horizAdvX":"1200"},"user-settings-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm2.595 7.812a3.51 3.51 0 0 1 0-1.623l-.992-.573 1-1.732.992.573A3.496 3.496 0 0 1 17 14.645V13.5h2v1.145c.532.158 1.012.44 1.405.812l.992-.573 1 1.732-.992.573a3.51 3.51 0 0 1 0 1.622l.992.573-1 1.732-.992-.573a3.496 3.496 0 0 1-1.405.812V22.5h-2v-1.145a3.496 3.496 0 0 1-1.405-.812l-.992.573-1-1.732.992-.572zM18 19.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM729.75 259.4A175.49999999999997 175.49999999999997 0 0 0 729.75 340.55L680.1500000000001 369.2000000000001L730.1500000000001 455.8L779.7500000000001 427.15A174.8 174.8 0 0 0 850 467.75V525H950V467.75C976.6 459.85 1000.6 445.75 1020.25 427.1500000000001L1069.8500000000001 455.8000000000001L1119.8500000000001 369.2000000000001L1070.25 340.55A175.49999999999997 175.49999999999997 0 0 0 1070.25 259.4500000000001L1119.8500000000001 230.8L1069.8500000000001 144.2000000000001L1020.25 172.8500000000001A174.8 174.8 0 0 0 950 132.25V75H850V132.25A174.8 174.8 0 0 0 779.75 172.8500000000001L730.1500000000001 144.2000000000001L680.1500000000001 230.8L729.7500000000001 259.4zM900 225A75 75 0 1 1 900 375A75 75 0 0 1 900 225z","horizAdvX":"1200"},"user-shared-2-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm6 4v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"user-shared-2-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6 6v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"user-shared-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm6.586 4l-1.829-1.828 1.415-1.415L22.414 18l-4.242 4.243-1.415-1.415L18.586 19H15v-2h3.586z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM929.3 350L837.8499999999999 441.4L908.6 512.15L1120.7 300L908.6 87.8499999999999L837.85 158.5999999999999L929.3 250H750V350H929.3z","horizAdvX":"1200"},"user-shared-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6.586 6l-1.829-1.828 1.415-1.415L22.414 18l-4.242 4.243-1.415-1.415L18.586 19H15v-2h3.586z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM929.3 350L837.8499999999999 441.4L908.6 512.15L1120.7 300L908.6 87.8499999999999L837.85 158.5999999999999L929.3 250H750V350H929.3z","horizAdvX":"1200"},"user-smile-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 600A250 250 0 0 1 850 600H750A150 150 0 0 0 450 600H350z","horizAdvX":"1200"},"user-smile-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-8h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 600H450A150 150 0 0 1 750 600H850A250 250 0 0 0 350 600z","horizAdvX":"1200"},"user-star-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm6 7.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L18 14l1.47 2.977 3.285.478-2.377 2.318.56 3.272L18 21.5zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM900 125L753.05 47.75L781.1 211.3499999999998L662.25 327.2499999999999L826.5500000000001 351.15L900 500L973.5 351.15L1137.75 327.2499999999999L1018.9 211.3499999999998L1046.8999999999999 47.75L900 125zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550z","horizAdvX":"1200"},"user-star-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6 10.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L18 14l1.47 2.977 3.285.478-2.377 2.318.56 3.272L18 21.5z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM900 125L753.05 47.75L781.1 211.3499999999998L662.25 327.2499999999999L826.5500000000001 351.15L900 500L973.5 351.15L1137.75 327.2499999999999L1018.9 211.3499999999998L1046.8999999999999 47.75L900 125z","horizAdvX":"1200"},"user-unfollow-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm7 3.586l2.121-2.122 1.415 1.415L20.414 18l2.122 2.121-1.415 1.415L19 19.414l-2.121 2.122-1.415-1.415L17.586 18l-2.122-2.121 1.415-1.415L19 16.586z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM950 370.7000000000001L1056.05 476.8000000000001L1126.8 406.0500000000001L1020.7 300L1126.8000000000002 193.9500000000001L1056.0500000000002 123.2000000000001L950 229.3L843.95 123.1999999999998L773.2000000000002 193.9499999999999L879.3 300L773.1999999999999 406.0500000000001L843.9499999999999 476.8000000000001L950 370.7000000000001z","horizAdvX":"1200"},"user-unfollow-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm7 6.586l2.121-2.122 1.415 1.415L20.414 19l2.122 2.121-1.415 1.415L19 20.414l-2.121 2.122-1.415-1.415L17.586 19l-2.122-2.121 1.415-1.415L19 17.586z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM950 320.7000000000001L1056.05 426.8000000000001L1126.8 356.0500000000001L1020.7 250L1126.8000000000002 143.9500000000001L1056.0500000000002 73.2000000000001L950 179.3L843.95 73.1999999999998L773.2000000000002 143.9499999999998L879.3 250L773.1999999999999 356.05L843.9499999999999 426.7999999999999L950 320.7000000000001z","horizAdvX":"1200"},"user-voice-fill":{"path":["M0 0h24v24H0z","M1 22a8 8 0 1 1 16 0H1zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm9.246-9.816A9.97 9.97 0 0 1 19 7a9.97 9.97 0 0 1-.754 3.816l-1.677-1.22A7.99 7.99 0 0 0 17 7a7.99 7.99 0 0 0-.43-2.596l1.676-1.22zm3.302-2.4A13.942 13.942 0 0 1 23 7c0 2.233-.523 4.344-1.452 6.216l-1.645-1.196A11.955 11.955 0 0 0 21 7c0-1.792-.393-3.493-1.097-5.02L21.548.784z"],"unicode":"","glyph":"M50 100A400 400 0 1 0 850 100H50zM450 550C284.25 550 150 684.25 150 850S284.25 1150 450 1150S750 1015.75 750 850S615.75 550 450 550zM912.3 1040.8A498.5 498.5 0 0 0 950 850A498.5 498.5 0 0 0 912.3 659.2L828.4499999999999 720.2A399.5 399.5 0 0 1 850 850A399.5 399.5 0 0 1 828.5 979.8L912.3 1040.8zM1077.4 1160.8A697.1 697.1 0 0 0 1150 850C1150 738.3499999999999 1123.85 632.8 1077.4 539.1999999999999L995.15 598.9999999999999A597.75 597.75 0 0 1 1050 850C1050 939.6 1030.35 1024.65 995.15 1101L1077.3999999999999 1160.8z","horizAdvX":"1200"},"user-voice-line":{"path":["M0 0h24v24H0z","M1 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H1zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zM21.548.784A13.942 13.942 0 0 1 23 7c0 2.233-.523 4.344-1.452 6.216l-1.645-1.196A11.955 11.955 0 0 0 21 7c0-1.792-.393-3.493-1.097-5.02L21.548.784zm-3.302 2.4A9.97 9.97 0 0 1 19 7a9.97 9.97 0 0 1-.754 3.816l-1.677-1.22A7.99 7.99 0 0 0 17 7a7.99 7.99 0 0 0-.43-2.596l1.676-1.22z"],"unicode":"","glyph":"M50 100A400 400 0 1 0 850 100H750A300 300 0 1 1 150 100H50zM450 550C284.25 550 150 684.25 150 850S284.25 1150 450 1150S750 1015.75 750 850S615.75 550 450 550zM450 650C560.5 650 650 739.5 650 850S560.5 1050 450 1050S250 960.5 250 850S339.5 650 450 650zM1077.3999999999999 1160.8A697.1 697.1 0 0 0 1150 850C1150 738.3499999999999 1123.85 632.8 1077.4 539.1999999999999L995.15 598.9999999999999A597.75 597.75 0 0 1 1050 850C1050 939.6 1030.35 1024.65 995.15 1101L1077.3999999999999 1160.8zM912.3 1040.8A498.5 498.5 0 0 0 950 850A498.5 498.5 0 0 0 912.3 659.2L828.4499999999999 720.2A399.5 399.5 0 0 1 850 850A399.5 399.5 0 0 1 828.5 979.8L912.3 1040.8z","horizAdvX":"1200"},"video-add-fill":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zM8 8v3H5v2h2.999L8 16h2l-.001-3H13v-2h-3V8H8z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM400 800V650H250V550H399.9500000000001L400 400H500L499.95 550H650V650H500V800H400z","horizAdvX":"1200"},"video-add-line":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-1 2H3v12h12V6zM8 8h2v3h3v2H9.999L10 16H8l-.001-3H5v-2h3V8zm13 .841l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM750 900H150V300H750V900zM400 800H500V650H650V550H499.95L500 400H400L399.95 550H250V650H400V800zM1050 757.95L850 617.95V582.0500000000001L1050 442.0500000000001V758z","horizAdvX":"1200"},"video-chat-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM14 10.25V8H7v6h7v-2.25L17 14V8l-3 2.25z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM700 687.5V800H350V500H700V612.5L850 500V800L700 687.5z","horizAdvX":"1200"},"video-chat-line":{"path":["M0 0h24v24H0z","M14 10.25L17 8v6l-3-2.25V14H7V8h7v2.25zM5.763 17H20V5H4v13.385L5.763 17zm.692 2L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455z"],"unicode":"","glyph":"M700 687.5L850 800V500L700 612.5V500H350V800H700V687.5zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75z","horizAdvX":"1200"},"video-download-fill":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-6 4H8v4H5l4 4 4-4h-3V8z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM500 800H400V600H250L450 400L650 600H500V800z","horizAdvX":"1200"},"video-download-line":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-1 2H3v12h12V6zm-5 2v4h3l-4 4-4-4h3V8h2zm11 .841l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM750 900H150V300H750V900zM500 800V600H650L450 400L250 600H400V800H500zM1050 757.95L850 617.95V582.0500000000001L1050 442.0500000000001V758z","horizAdvX":"1200"},"video-fill":{"path":["M0 0h24v24H0z","M3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zm7.622 4.422a.4.4 0 0 0-.622.332v6.506a.4.4 0 0 0 .622.332l4.879-3.252a.4.4 0 0 0 0-.666l-4.88-3.252z"],"unicode":"","glyph":"M150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM531.1 779.25A20.000000000000004 20.000000000000004 0 0 1 500 762.65V437.35A20.000000000000004 20.000000000000004 0 0 1 531.1 420.75L775.05 583.3499999999999A20.000000000000004 20.000000000000004 0 0 1 775.05 616.6499999999999L531.05 779.2499999999999z","horizAdvX":"1200"},"video-line":{"path":["M0 0h24v24H0z","M3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zM5 5v14h14V5H5zm5.622 3.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"],"unicode":"","glyph":"M150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM250 950V250H950V950H250zM531.1 779.25L775.05 616.6500000000001A20.000000000000004 20.000000000000004 0 0 0 775.05 583.3500000000001L531.05 420.7500000000001A20.000000000000004 20.000000000000004 0 0 0 499.9999999999999 437.3500000000002V762.65A20.000000000000004 20.000000000000004 0 0 0 531.0999999999999 779.25z","horizAdvX":"1200"},"video-upload-fill":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zM9 8l-4 4h3v4h2v-4h3L9 8z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM450 800L250 600H400V400H500V600H650L450 800z","horizAdvX":"1200"},"video-upload-line":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-1 2H3v12h12V6zM9 8l4 4h-3v4H8v-4H5l4-4zm12 .841l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM750 900H150V300H750V900zM450 800L650 600H500V400H400V600H250L450 800zM1050 757.95L850 617.95V582.0500000000001L1050 442.0500000000001V758z","horizAdvX":"1200"},"vidicon-2-fill":{"path":["M0 0h24v24H0z","M13 6V4H5V2h10v4h1a1 1 0 0 1 1 1v2.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h11zm-8 4v2h2v-2H5z"],"unicode":"","glyph":"M650 900V1000H250V1100H750V900H800A50 50 0 0 0 850 850V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V850A50 50 0 0 0 100 900H650zM250 700V600H350V700H250z","horizAdvX":"1200"},"vidicon-2-line":{"path":["M0 0h24v24H0z","M13 6V4H5V2h10v4h1a1 1 0 0 1 1 1v2.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h11zm2 2H3v10h12V8zm2 4.359l4 2.8V8.84l-4 2.8v.718zM5 10h2v2H5v-2z"],"unicode":"","glyph":"M650 900V1000H250V1100H750V900H800A50 50 0 0 0 850 850V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V850A50 50 0 0 0 100 900H650zM750 800H150V300H750V800zM850 582.05L1050 442.0500000000001V758L850 618V582.1zM250 700H350V600H250V700z","horizAdvX":"1200"},"vidicon-fill":{"path":["M0 0h24v24H0z","M17 9.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4.2zM5 8v2h2V8H5z"],"unicode":"","glyph":"M850 740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800A50 50 0 0 0 850 950V740zM250 800V700H350V800H250z","horizAdvX":"1200"},"vidicon-line":{"path":["M0 0h24v24H0z","M17 9.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4.2zm0 3.159l4 2.8V8.84l-4 2.8v.718zM3 6v12h12V6H3zm2 2h2v2H5V8z"],"unicode":"","glyph":"M850 740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800A50 50 0 0 0 850 950V740zM850 582.0500000000001L1050 442.0500000000001V758L850 618V582.1zM150 900V300H750V900H150zM250 800H350V700H250V800z","horizAdvX":"1200"},"vimeo-fill":{"path":["M0 0H24V24H0z","M1.173 8.301c-.281-.413-.252-.413.328-.922 1.232-1.082 2.394-2.266 3.736-3.212 1.215-.852 2.826-1.402 3.927-.047 1.014 1.249 1.038 3.142 1.295 4.65.257 1.564.503 3.164 1.051 4.66.152.421.443 1.217.968 1.284.678.093 1.368-1.096 1.683-1.54.817-1.18 1.925-2.769 1.785-4.286-.138-1.612-1.878-1.309-2.966-.924.175-1.809 1.858-3.843 3.48-4.53 1.72-.714 4.276-.702 5.14 1.237.923 2.102.093 4.543-.912 6.448-1.097 2.068-2.509 3.982-4.018 5.77-1.331 1.588-2.906 3.33-4.89 4.089-2.267.864-3.61-.82-4.382-2.77-.843-2.123-1.262-4.506-1.87-6.717-.256-.934-.56-1.997-1.167-2.768-.792-.995-1.692-.06-2.474.477-.269-.267-.491-.607-.714-.899z"],"unicode":"","glyph":"M58.65 784.95C44.6 805.6 46.05 805.6 75.05 831.05C136.65 885.15 194.75 944.35 261.85 991.65C322.6 1034.25 403.1500000000001 1061.75 458.2 994C508.9 931.55 510.1 836.9 522.9499999999999 761.5C535.8 683.3000000000001 548.1 603.3000000000001 575.5 528.5C583.0999999999999 507.45 597.65 467.65 623.9 464.3C657.8000000000001 459.65 692.3 519.1 708.05 541.3000000000001C748.9 600.3 804.3 679.75 797.3 755.6C790.4 836.2 703.4 821.05 649 801.8C657.75 892.25 741.9000000000001 993.95 823 1028.3C909 1064 1036.8 1063.4 1080 966.45C1126.15 861.35 1084.65 739.3000000000001 1034.4 644.05C979.55 540.65 908.95 444.9500000000001 833.5000000000001 355.5500000000001C766.9500000000002 276.15 688.2 189.05 589 151.0999999999999C475.6500000000001 107.8999999999999 408.5000000000001 192.0999999999999 369.9000000000001 289.5999999999999C327.7500000000001 395.75 306.8000000000001 514.8999999999999 276.4000000000001 625.4499999999998C263.6000000000001 672.1499999999997 248.4000000000001 725.2999999999998 218.0500000000001 763.8499999999999C178.4500000000001 813.5999999999999 133.4500000000001 766.8499999999999 94.3500000000001 739.9999999999999C80.9000000000001 753.3499999999999 69.8000000000001 770.3499999999998 58.6500000000001 784.9499999999999z","horizAdvX":"1200"},"vimeo-line":{"path":["M0 0H24V24H0z","M17.993 3.004c2.433 0 4.005 1.512 4.005 4.496 0 1.72-.998 3.94-1.832 5.235-2.789 4.333-6.233 8.74-9.643 8.74-3.706 0-4.67-6.831-5.092-8.432-.422-1.601-.533-2.21-1.17-3.233-.317.22-.76.529-1.33.93-.224.157-.533.105-.693-.117L.925 8.807C.789 8.62.8 8.363.952 8.187 3.779 4.915 6.128 3.278 8 3.278c2.392 0 3.124 2.816 3.324 4.223.3 2.117.69 4.738 1.244 5.872.557-.792 2.18-2.888 1.967-3.99-.094-.486-1.317.183-1.887.078-.425-.08-.806-.402-.806-1.026 0-1.31 1.852-5.43 6.151-5.43zm.007 2c-2.195 0-3.251 1.533-3.653 2.208 1.25.046 1.97.818 2.133 1.803.389 2.33-1.916 4.92-2.339 5.565-.396.603-3.061 3.328-4.25-3.36-.112-.629-.367-2.163-.665-4.186-.17-1.151-.873-1.763-1.23-1.763-.842 0-1.92.65-3.855 2.515 1.905-.115 2.545 2.276 2.916 3.633.816 2.984 1.571 8.056 3.62 8.056 1.727 0 4.439-2.646 7.37-7.04.209-.311 1.966-3.024 1.966-5.036 0-2.395-1.469-2.395-2.013-2.395z"],"unicode":"","glyph":"M899.65 1049.8C1021.3 1049.8 1099.8999999999999 974.2 1099.8999999999999 825C1099.8999999999999 739 1049.9999999999998 628 1008.2999999999998 563.25C868.8499999999998 346.6000000000002 696.6499999999999 126.25 526.1499999999999 126.25C340.8499999999999 126.25 292.6499999999998 467.8 271.5499999999999 547.8499999999999C250.4499999999999 627.9 244.8999999999998 658.3499999999999 213.0499999999999 709.5C197.1999999999998 698.5 175.0499999999999 683.05 146.5499999999998 663C135.3499999999998 655.15 119.8999999999998 657.75 111.8999999999998 668.85L46.25 759.65C39.45 769 40 781.85 47.6 790.6500000000001C188.95 954.25 306.4 1036.1 400 1036.1C519.6 1036.1 556.2 895.3 566.2 824.95C581.2 719.1000000000001 600.6999999999999 588.05 628.4 531.35C656.25 570.95 737.4 675.75 726.75 730.85C722.0500000000001 755.1500000000001 660.9 721.7 632.4 726.95C611.15 730.95 592.0999999999999 747.05 592.0999999999999 778.25C592.0999999999999 843.7500000000001 684.6999999999999 1049.75 899.65 1049.75zM900 949.8C790.25 949.8 737.45 873.1500000000001 717.35 839.4000000000001C779.85 837.1 815.85 798.5 824 749.25C843.45 632.75 728.2 503.25 707.05 470.9999999999999C687.25 440.8499999999999 554 304.5999999999999 494.55 638.9999999999999C488.95 670.4499999999998 476.2 747.1499999999999 461.3 848.3C452.8 905.85 417.65 936.4499999999998 399.8 936.4499999999998C357.7 936.4499999999998 303.8 903.9499999999998 207.0499999999999 810.6999999999998C302.2999999999999 816.4499999999998 334.2999999999999 696.8999999999999 352.8499999999999 629.0499999999998C393.6499999999999 479.8499999999998 431.3999999999999 226.2499999999999 533.85 226.2499999999999C620.2 226.2499999999999 755.8 358.55 902.35 578.2499999999999C912.8 593.7999999999998 1000.65 729.4499999999999 1000.65 830.0499999999998C1000.65 949.7999999999998 927.2 949.7999999999998 900 949.7999999999998z","horizAdvX":"1200"},"vip-crown-2-fill":{"path":["M0 0h24v24H0z","M2.8 5.2L7 8l4.186-5.86a1 1 0 0 1 1.628 0L17 8l4.2-2.8a1 1 0 0 1 1.547.95l-1.643 13.967a1 1 0 0 1-.993.883H3.889a1 1 0 0 1-.993-.883L1.253 6.149A1 1 0 0 1 2.8 5.2zM12 15a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M140 940L350 800L559.3 1093A50 50 0 0 0 640.7 1093L850 800L1060 940A50 50 0 0 0 1137.35 892.5L1055.2 194.15A50 50 0 0 0 1005.55 150H194.45A50 50 0 0 0 144.8 194.15L62.65 892.55A50 50 0 0 0 140 940zM600 450A100 100 0 1 1 600 650A100 100 0 0 1 600 450z","horizAdvX":"1200"},"vip-crown-2-line":{"path":["M0 0h24v24H0z","M3.492 8.065L4.778 19h14.444l1.286-10.935-4.01 2.673L12 4.441l-4.498 6.297-4.01-2.673zM2.801 5.2L7 8l4.186-5.86a1 1 0 0 1 1.628 0L17 8l4.2-2.8a1 1 0 0 1 1.547.95l-1.643 13.967a1 1 0 0 1-.993.883H3.889a1 1 0 0 1-.993-.883L1.253 6.149A1 1 0 0 1 2.8 5.2zM12 15a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M174.6 796.75L238.9 250H961.1L1025.4 796.75L824.9000000000002 663.1L600 977.95L375.1 663.1L174.6 796.75zM140.05 940L350 800L559.3 1093A50 50 0 0 0 640.7 1093L850 800L1060 940A50 50 0 0 0 1137.35 892.5L1055.2 194.15A50 50 0 0 0 1005.55 150H194.45A50 50 0 0 0 144.8 194.15L62.65 892.55A50 50 0 0 0 140 940zM600 450A100 100 0 1 0 600 650A100 100 0 0 0 600 450z","horizAdvX":"1200"},"vip-crown-fill":{"path":["M0 0h24v24H0z","M2 19h20v2H2v-2zM2 5l5 3 5-6 5 6 5-3v12H2V5z"],"unicode":"","glyph":"M100 250H1100V150H100V250zM100 950L350 800L600 1100L850 800L1100 950V350H100V950z","horizAdvX":"1200"},"vip-crown-line":{"path":["M0 0h24v24H0z","M2 19h20v2H2v-2zM2 5l5 3.5L12 2l5 6.5L22 5v12H2V5zm2 3.841V15h16V8.841l-3.42 2.394L12 5.28l-4.58 5.955L4 8.84z"],"unicode":"","glyph":"M100 250H1100V150H100V250zM100 950L350 775L600 1100L850 775L1100 950V350H100V950zM200 757.9499999999999V450H1000V757.95L828.9999999999999 638.25L600 936L371 638.25L200 758z","horizAdvX":"1200"},"vip-diamond-fill":{"path":["M0 0h24v24H0z","M4.873 3h14.254a1 1 0 0 1 .809.412l3.823 5.256a.5.5 0 0 1-.037.633L12.367 21.602a.5.5 0 0 1-.734 0L.278 9.302a.5.5 0 0 1-.037-.634l3.823-5.256A1 1 0 0 1 4.873 3z"],"unicode":"","glyph":"M243.65 1050H956.35A50 50 0 0 0 996.8 1029.4L1187.95 766.6A25 25 0 0 0 1186.1000000000001 734.95L618.35 119.9000000000001A25 25 0 0 0 581.6500000000001 119.9000000000001L13.9 734.9000000000001A25 25 0 0 0 12.05 766.6L203.2 1029.4A50 50 0 0 0 243.65 1050z","horizAdvX":"1200"},"vip-diamond-line":{"path":["M0 0h24v24H0z","M4.873 3h14.254a1 1 0 0 1 .809.412l3.823 5.256a.5.5 0 0 1-.037.633L12.367 21.602a.5.5 0 0 1-.706.028c-.007-.006-3.8-4.115-11.383-12.329a.5.5 0 0 1-.037-.633l3.823-5.256A1 1 0 0 1 4.873 3zm.51 2l-2.8 3.85L12 19.05 21.417 8.85 18.617 5H5.383z"],"unicode":"","glyph":"M243.65 1050H956.35A50 50 0 0 0 996.8 1029.4L1187.95 766.6A25 25 0 0 0 1186.1000000000001 734.95L618.35 119.9000000000001A25 25 0 0 0 583.0500000000001 118.5C582.7 118.8 393.0500000000001 324.25 13.9000000000001 734.95A25 25 0 0 0 12.0500000000001 766.6L203.2000000000001 1029.4A50 50 0 0 0 243.65 1050zM269.15 950L129.15 757.5L600 247.5L1070.8500000000001 757.5L930.85 950H269.15z","horizAdvX":"1200"},"vip-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 5.5v7h2v-7h-2zm-.285 0H8.601l-1.497 4.113L5.607 8.5H3.493l2.611 6.964h2L10.715 8.5zm5.285 5h1.5a2.5 2.5 0 1 0 0-5H14v7h2v-2zm0-2v-1h1.5a.5.5 0 1 1 0 1H16z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM550 775V425H650V775H550zM535.75 775H430.0500000000001L355.2000000000001 569.35L280.35 775H174.65L305.2 426.8H405.2L535.75 775zM800 525H875A125 125 0 1 1 875 775H700V425H800V525zM800 625V675H875A25 25 0 1 0 875 625H800z","horizAdvX":"1200"},"vip-line":{"path":["M0 0h24v24H0z","M2 19h20v2H2v-2zm9-11h2v8h-2V8zM7.965 8h2.125l-2.986 7.964h-2L2.118 8h2.125l1.861 5.113L7.965 8zM17 14v2h-2V8h4a3 3 0 0 1 0 6h-2zm0-4v2h2a1 1 0 0 0 0-2h-2zM2 3h20v2H2V3z"],"unicode":"","glyph":"M100 250H1100V150H100V250zM550 800H650V400H550V800zM398.25 800H504.5L355.2 401.8H255.2L105.9 800H212.15L305.2 544.35L398.25 800zM850 500V400H750V800H950A150 150 0 0 0 950 500H850zM850 700V600H950A50 50 0 0 1 950 700H850zM100 1050H1100V950H100V1050z","horizAdvX":"1200"},"virus-fill":{"path":["M0 0H24V24H0z","M13.717 1.947l3.734 1.434-.717 1.867-.934-.359-.746 1.945c.779.462 1.444 1.094 1.945 1.846l1.903-.847-.407-.914 1.827-.813 1.627 3.654-1.827.813-.407-.913-1.902.847c.122.477.187.978.187 1.493 0 .406-.04.803-.117 1.187l1.944.746.358-.933 1.868.717-1.434 3.734-1.867-.717.358-.933-1.944-.747c-.462.779-1.094 1.444-1.846 1.945l.847 1.903.914-.407.813 1.827-3.654 1.627-.813-1.827.913-.407-.847-1.902c-.477.122-.978.187-1.493.187-.407 0-.804-.04-1.188-.118l-.746 1.945.934.358-.717 1.868-3.734-1.434.717-1.867.932.358.748-1.944C8.167 16.704 7.502 16.072 7 15.32l-1.903.847.407.914-1.827.813-1.627-3.654 1.827-.813.406.914 1.903-.848C6.065 13.016 6 12.515 6 12c0-.406.04-.803.117-1.187l-1.945-.746-.357.933-1.868-.717L3.381 6.55l1.867.717-.359.933 1.945.747C7.296 8.167 7.928 7.502 8.68 7l-.847-1.903-.914.407-.813-1.827L9.76 2.051l.813 1.827-.913.407.847 1.902C10.984 6.065 11.485 6 12 6c.406 0 .803.04 1.187.117l.745-1.945L13 3.815l.717-1.868zm-3.583 11.285c-.276.478-.112 1.09.366 1.366s1.09.112 1.366-.366.112-1.09-.366-1.366-1.09-.112-1.366.366zM14 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-3.5-1.598c-.478.276-.642.888-.366 1.366.276.478.888.642 1.366.366.478-.276.642-.888.366-1.366-.276-.478-.888-.642-1.366-.366z"],"unicode":"","glyph":"M685.85 1102.65L872.5500000000001 1030.95L836.7 937.6L790.0000000000001 955.55L752.7 858.3C791.6500000000001 835.2 824.9000000000001 803.5999999999999 849.9500000000002 766L945.1 808.3499999999999L924.75 854.05L1016.1000000000003 894.7L1097.45 712L1006.1 671.3499999999999L985.75 716.9999999999999L890.65 674.65C896.7499999999999 650.8 900 625.7499999999999 900 599.9999999999999C900 579.6999999999999 898 559.8499999999999 894.15 540.65L991.35 503.3499999999999L1009.2499999999998 549.9999999999999L1102.6499999999999 514.1499999999999L1030.9499999999998 327.45L937.5999999999998 363.3L955.4999999999998 409.95L858.2999999999998 447.3C835.1999999999998 408.3499999999999 803.5999999999998 375.0999999999999 765.9999999999999 350.0499999999999L808.3499999999999 254.9L854.05 275.25L894.6999999999999 183.8999999999999L711.9999999999999 102.55L671.3499999999999 193.9L716.9999999999999 214.25L674.65 309.35C650.8 303.2500000000001 625.7499999999999 300 599.9999999999999 300C579.6499999999999 300 559.8 302 540.5999999999999 305.9L503.2999999999998 208.6499999999999L549.9999999999998 190.7499999999999L514.1499999999997 97.3499999999999L327.4499999999998 169.05L363.2999999999998 262.4000000000001L409.8999999999998 244.5L447.2999999999998 341.7C408.35 364.8 375.1 396.4000000000001 350 434L254.85 391.6499999999999L275.2 345.9499999999998L183.85 305.3L102.5 487.9999999999999L193.85 528.65L214.15 482.9499999999999L309.3 525.35C303.25 549.2 300 574.25 300 600C300 620.3000000000001 302 640.1500000000001 305.85 659.35L208.6 696.65L190.75 650L97.35 685.85L169.05 872.5L262.4 836.6500000000001L244.45 790L341.7 752.6500000000001C364.8 791.6500000000001 396.4 824.9000000000001 434 850L391.6500000000001 945.15L345.9500000000001 924.8L305.3 1016.15L488 1097.45L528.65 1006.1L483 985.75L525.35 890.65C549.2 896.75 574.25 900 600 900C620.3000000000001 900 640.1500000000001 898 659.35 894.15L696.5999999999999 991.4L650 1009.25L685.85 1102.65zM506.7 538.4000000000001C492.9 514.5 501.1 483.9000000000001 525 470.1S579.5 464.5 593.3 488.4000000000001S598.9 542.9 575 556.7S520.5 562.3000000000001 506.7 538.4000000000001zM700 650C672.4 650 650 627.6 650 600S672.4 550 700 550S750 572.4 750 600S727.6 650 700 650zM525 729.9000000000001C501.1 716.1 492.9 685.5 506.7 661.6C520.5 637.7 551.1 629.5000000000001 575 643.3000000000001C598.9 657.1 607.1 687.7 593.3 711.6000000000001C579.5 735.5 548.9 743.7 525 729.9000000000001z","horizAdvX":"1200"},"virus-line":{"path":["M0 0H24V24H0z","M13.717 1.947l3.734 1.434-.717 1.867-.934-.359-.746 1.945c.779.462 1.444 1.094 1.945 1.846l1.903-.847-.407-.914 1.827-.813 1.627 3.654-1.827.813-.407-.913-1.902.847c.122.477.187.978.187 1.493 0 .406-.04.803-.117 1.187l1.944.746.358-.933 1.868.717-1.434 3.734-1.867-.717.358-.933-1.944-.747c-.462.779-1.094 1.444-1.846 1.945l.847 1.903.914-.407.813 1.827-3.654 1.627-.813-1.827.913-.407-.847-1.902c-.477.122-.978.187-1.493.187-.407 0-.804-.04-1.188-.118l-.746 1.945.934.358-.717 1.868-3.734-1.434.717-1.867.932.358.748-1.944C8.167 16.704 7.502 16.072 7 15.32l-1.903.847.407.914-1.827.813-1.627-3.654 1.827-.813.406.914 1.903-.848C6.065 13.016 6 12.515 6 12c0-.406.04-.803.117-1.187l-1.945-.746-.357.933-1.868-.717L3.381 6.55l1.867.717-.359.933 1.945.747C7.296 8.167 7.928 7.502 8.68 7l-.847-1.903-.914.407-.813-1.827L9.76 2.051l.813 1.827-.913.407.847 1.902C10.984 6.065 11.485 6 12 6c.406 0 .803.04 1.187.117l.745-1.945L13 3.815l.717-1.868zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-.5 4.866c.478.276.642.888.366 1.366-.276.478-.888.642-1.366.366-.478-.276-.642-.888-.366-1.366.276-.478.888-.642 1.366-.366zM14 11c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm-2.134-1.232c.276.478.112 1.09-.366 1.366s-1.09.112-1.366-.366-.112-1.09.366-1.366 1.09-.112 1.366.366z"],"unicode":"","glyph":"M685.85 1102.65L872.5500000000001 1030.95L836.7 937.6L790.0000000000001 955.55L752.7 858.3C791.6500000000001 835.2 824.9000000000001 803.5999999999999 849.9500000000002 766L945.1 808.3499999999999L924.75 854.05L1016.1000000000003 894.7L1097.45 712L1006.1 671.3499999999999L985.75 716.9999999999999L890.65 674.65C896.7499999999999 650.8 900 625.7499999999999 900 599.9999999999999C900 579.6999999999999 898 559.8499999999999 894.15 540.65L991.35 503.3499999999999L1009.2499999999998 549.9999999999999L1102.6499999999999 514.1499999999999L1030.9499999999998 327.45L937.5999999999998 363.3L955.4999999999998 409.95L858.2999999999998 447.3C835.1999999999998 408.3499999999999 803.5999999999998 375.0999999999999 765.9999999999999 350.0499999999999L808.3499999999999 254.9L854.05 275.25L894.6999999999999 183.8999999999999L711.9999999999999 102.55L671.3499999999999 193.9L716.9999999999999 214.25L674.65 309.35C650.8 303.2500000000001 625.7499999999999 300 599.9999999999999 300C579.6499999999999 300 559.8 302 540.5999999999999 305.9L503.2999999999998 208.6499999999999L549.9999999999998 190.7499999999999L514.1499999999997 97.3499999999999L327.4499999999998 169.05L363.2999999999998 262.4000000000001L409.8999999999998 244.5L447.2999999999998 341.7C408.35 364.8 375.1 396.4000000000001 350 434L254.85 391.6499999999999L275.2 345.9499999999998L183.85 305.3L102.5 487.9999999999999L193.85 528.65L214.15 482.9499999999999L309.3 525.35C303.25 549.2 300 574.25 300 600C300 620.3000000000001 302 640.1500000000001 305.85 659.35L208.6 696.65L190.75 650L97.35 685.85L169.05 872.5L262.4 836.6500000000001L244.45 790L341.7 752.6500000000001C364.8 791.6500000000001 396.4 824.9000000000001 434 850L391.6500000000001 945.15L345.9500000000001 924.8L305.3 1016.15L488 1097.45L528.65 1006.1L483 985.75L525.35 890.65C549.2 896.75 574.25 900 600 900C620.3000000000001 900 640.1500000000001 898 659.35 894.15L696.5999999999999 991.4L650 1009.25L685.85 1102.65zM600 800C489.4999999999999 800 400 710.5 400 600S489.4999999999999 400 600 400S800 489.5 800 600S710.5 800 600 800zM575 556.7C598.9 542.9 607.1 512.3000000000001 593.3 488.4000000000001C579.5 464.5 548.9 456.3000000000001 525 470.1C501.1 483.9000000000001 492.9 514.5 506.7 538.4000000000001C520.5 562.3000000000001 551.1 570.5 575 556.7zM700 650C727.6 650 750 627.6 750 600S727.6 550 700 550S650 572.4 650 600S672.4 650 700 650zM593.3 711.5999999999999C607.1 687.6999999999999 598.9 657.1 575 643.3S520.5 637.6999999999999 506.7 661.5999999999999S501.1 716.0999999999999 525 729.9S579.5 735.5 593.3 711.5999999999999z","horizAdvX":"1200"},"visa-fill":{"path":["M0 0h24v24H0z","M1 4h22v2H1V4zm0 14h22v2H1v-2zm18.622-3.086l-.174-.87h-1.949l-.31.863-1.562.003c1.005-2.406 1.75-4.19 2.236-5.348.127-.303.353-.457.685-.455.254.002.669.002 1.245 0L21 14.912l-1.378.003zm-1.684-2.062h1.256l-.47-2.18-.786 2.18zM7.872 9.106l1.57.002-2.427 5.806-1.59-.001c-.537-2.07-.932-3.606-1.184-4.605-.077-.307-.23-.521-.526-.622-.263-.09-.701-.23-1.315-.419v-.16h2.509c.434 0 .687.21.769.64l.62 3.289 1.574-3.93zm3.727.002l-1.24 5.805-1.495-.002 1.24-5.805 1.495.002zM14.631 9c.446 0 1.01.138 1.334.267l-.262 1.204c-.293-.118-.775-.277-1.18-.27-.59.009-.954.256-.954.493 0 .384.632.578 1.284.999.743.48.84.91.831 1.378-.01.971-.831 1.929-2.564 1.929-.791-.012-1.076-.078-1.72-.306l.272-1.256c.656.274.935.361 1.495.361.515 0 .956-.207.96-.568.002-.257-.155-.384-.732-.702-.577-.317-1.385-.756-1.375-1.64C12.033 9.759 13.107 9 14.63 9z"],"unicode":"","glyph":"M50 1000H1150V900H50V1000zM50 300H1150V200H50V300zM981.1 454.3000000000001L972.4 497.8H874.9499999999999L859.45 454.65L781.35 454.5C831.6 574.8000000000001 868.8500000000001 664 893.15 721.8999999999999C899.4999999999999 737.05 910.8 744.75 927.3999999999997 744.6499999999999C940.1 744.55 960.85 744.55 989.65 744.6499999999999L1050 454.4L981.1 454.25zM896.9 557.4H959.7L936.2 666.4L896.9 557.4zM393.6 744.7L472.1 744.5999999999999L350.75 454.3L271.2500000000001 454.3499999999999C244.4000000000001 557.8499999999999 224.65 634.6499999999999 212.0500000000001 684.5999999999999C208.2 699.9499999999999 200.55 710.65 185.75 715.6999999999999C172.6000000000001 720.1999999999999 150.7000000000001 727.1999999999999 120.0000000000001 736.6499999999999V744.6499999999999H245.4500000000001C267.1500000000001 744.6499999999999 279.8000000000001 734.1499999999999 283.9000000000001 712.6499999999999L314.9000000000001 548.1999999999999L393.6 744.6999999999999zM579.95 744.5999999999999L517.95 454.35L443.2000000000001 454.45L505.2 744.7L579.95 744.5999999999999zM731.55 750C753.85 750 782.05 743.1 798.25 736.6500000000001L785.15 676.45C770.5 682.35 746.4 690.3 726.15 689.95C696.65 689.5 678.4499999999999 677.15 678.4499999999999 665.3C678.4499999999999 646.0999999999999 710.05 636.4 742.65 615.3499999999999C779.8 591.3499999999999 784.65 569.8499999999999 784.1999999999999 546.4499999999999C783.6999999999999 497.8999999999999 742.65 449.9999999999999 656 449.9999999999999C616.4499999999999 450.5999999999999 602.1999999999999 453.8999999999999 569.9999999999999 465.2999999999998L583.5999999999999 528.0999999999999C616.4 514.3999999999999 630.3499999999999 510.0499999999998 658.3499999999999 510.0499999999998C684.0999999999999 510.0499999999998 706.1499999999999 520.3999999999999 706.3499999999999 538.4499999999998C706.4499999999999 551.2999999999998 698.6 557.6499999999999 669.75 573.5499999999998C640.9 589.3999999999999 600.5 611.3499999999998 601 655.5499999999998C601.65 712.05 655.3499999999999 750 731.5 750z","horizAdvX":"1200"},"visa-line":{"path":["M0 0h24v24H0z","M22.222 15.768l-.225-1.125h-2.514l-.4 1.117-2.015.004a4199.19 4199.19 0 0 1 2.884-6.918c.164-.391.455-.59.884-.588.328.003.863.003 1.606.001L24 15.765l-1.778.003zm-2.173-2.666h1.62l-.605-2.82-1.015 2.82zM7.06 8.257l2.026.002-3.132 7.51-2.051-.002a950.849 950.849 0 0 1-1.528-5.956c-.1-.396-.298-.673-.679-.804C1.357 8.89.792 8.71 0 8.465V8.26h3.237c.56 0 .887.271.992.827.106.557.372 1.975.8 4.254L7.06 8.257zm4.81.002l-1.602 7.508-1.928-.002L9.94 8.257l1.93.002zm3.91-.139c.577 0 1.304.18 1.722.345l-.338 1.557c-.378-.152-1-.357-1.523-.35-.76.013-1.23.332-1.23.638 0 .498.816.749 1.656 1.293.959.62 1.085 1.177 1.073 1.782-.013 1.256-1.073 2.495-3.309 2.495-1.02-.015-1.388-.101-2.22-.396l.352-1.625c.847.355 1.206.468 1.93.468.663 0 1.232-.268 1.237-.735.004-.332-.2-.497-.944-.907-.744-.411-1.788-.98-1.774-2.122.017-1.462 1.402-2.443 3.369-2.443z"],"unicode":"","glyph":"M1111.1000000000001 411.5999999999999L1099.85 467.8499999999999H974.15L954.15 411.9999999999999L853.4000000000001 411.8A209959.5 209959.5 0 0 0 997.6000000000003 757.7C1005.8000000000002 777.25 1020.35 787.2 1041.8000000000002 787.0999999999999C1058.2 786.9499999999999 1084.95 786.9499999999999 1122.1000000000001 787.05L1200 411.75L1111.1000000000001 411.5999999999999zM1002.45 544.9H1083.45L1053.2 685.9L1002.45 544.9zM353 787.1500000000001L454.3 787.05L297.7 411.55L195.1499999999999 411.65A47542.450000000004 47542.450000000004 0 0 0 118.7499999999999 709.45C113.7499999999999 729.25 103.8499999999999 743.1 84.7999999999999 749.6500000000001C67.85 755.5 39.6 764.5 0 776.75V787H161.85C189.85 787 206.2 773.45 211.45 745.6500000000001C216.75 717.8 230.05 646.9 251.45 532.95L353 787.1500000000001zM593.5 787.05L513.4 411.65L417 411.7500000000001L497 787.1500000000001L593.5 787.05zM789 794C817.8499999999999 794 854.1999999999999 785 875.0999999999999 776.75L858.1999999999999 698.8999999999999C839.2999999999998 706.4999999999999 808.1999999999999 716.7499999999999 782.05 716.3999999999999C744.05 715.7499999999999 720.5499999999998 699.7999999999998 720.5499999999998 684.4999999999999C720.5499999999998 659.5999999999999 761.3499999999999 647.0499999999998 803.3499999999998 619.8499999999999C851.2999999999998 588.8499999999999 857.5999999999999 561 856.9999999999999 530.7499999999999C856.3499999999998 467.9499999999999 803.3499999999998 405.9999999999999 691.5499999999998 405.9999999999999C640.5499999999998 406.7499999999999 622.1499999999997 411.05 580.5499999999997 425.8L598.1499999999997 507.05C640.4999999999998 489.2999999999998 658.4499999999997 483.6499999999999 694.6499999999997 483.6499999999999C727.7999999999997 483.6499999999999 756.2499999999998 497.05 756.4999999999998 520.3999999999999C756.6999999999997 536.9999999999999 746.4999999999998 545.2499999999999 709.2999999999998 565.7499999999999C672.0999999999998 586.2999999999998 619.8999999999999 614.7499999999999 620.5999999999998 671.8499999999999C621.4499999999997 744.9499999999998 690.6999999999997 793.9999999999999 789.0499999999997 793.9999999999999z","horizAdvX":"1200"},"voice-recognition-fill":{"path":["M0 0h24v24H0z","M21 3v18H3V3h18zm-8 3h-2v12h2V6zM9 9H7v6h2V9zm8 0h-2v6h2V9z"],"unicode":"","glyph":"M1050 1050V150H150V1050H1050zM650 900H550V300H650V900zM450 750H350V450H450V750zM850 750H750V450H850V750z","horizAdvX":"1200"},"voice-recognition-line":{"path":["M0 0h24v24H0z","M5 15v4h4v2H3v-6h2zm16 0v6h-6v-2h4v-4h2zm-8-9v12h-2V6h2zM9 9v6H7V9h2zm8 0v6h-2V9h2zM9 3v2H5v4H3V3h6zm12 0v6h-2V5h-4V3h6z"],"unicode":"","glyph":"M250 450V250H450V150H150V450H250zM1050 450V150H750V250H950V450H1050zM650 900V300H550V900H650zM450 750V450H350V750H450zM850 750V450H750V750H850zM450 1050V950H250V750H150V1050H450zM1050 1050V750H950V950H750V1050H1050z","horizAdvX":"1200"},"voiceprint-fill":{"path":["M0 0h24v24H0z","M5 7h2v10H5V7zm-4 3h2v4H1v-4zm8-8h2v18H9V2zm4 2h2v18h-2V4zm4 3h2v10h-2V7zm4 3h2v4h-2v-4z"],"unicode":"","glyph":"M250 850H350V350H250V850zM50 700H150V500H50V700zM450 1100H550V200H450V1100zM650 1000H750V100H650V1000zM850 850H950V350H850V850zM1050 700H1150V500H1050V700z","horizAdvX":"1200"},"voiceprint-line":{"path":["M0 0h24v24H0z","M5 7h2v10H5V7zm-4 3h2v4H1v-4zm8-8h2v18H9V2zm4 2h2v18h-2V4zm4 3h2v10h-2V7zm4 3h2v4h-2v-4z"],"unicode":"","glyph":"M250 850H350V350H250V850zM50 700H150V500H50V700zM450 1100H550V200H450V1100zM650 1000H750V100H650V1000zM850 850H950V350H850V850zM1050 700H1150V500H1050V700z","horizAdvX":"1200"},"volume-down-fill":{"path":["M0 0h24v24H0z","M8.889 16H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L8.89 16zm9.974.591l-1.422-1.422A3.993 3.993 0 0 0 19 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 21 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M444.45 400H250A50 50 0 0 0 200 450V750A50 50 0 0 0 250 800H444.45L709.15 1016.6A25 25 0 0 0 750 997.25V202.75A25 25 0 0 0 709.15 183.4L444.5 400zM943.15 370.45L872.05 441.55A199.64999999999998 199.64999999999998 0 0 1 950 600C950 671.5 912.5 734.25 856 769.5999999999999L927.95 841.55A299.54999999999995 299.54999999999995 0 0 0 1050 600C1050 507.9 1008.5000000000002 425.5 943.15 370.45z","horizAdvX":"1200"},"volume-down-line":{"path":["M0 0h24v24H0z","M13 7.22L9.603 10H6v4h3.603L13 16.78V7.22zM8.889 16H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L8.89 16zm9.974.591l-1.422-1.422A3.993 3.993 0 0 0 19 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 21 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M650 839L480.15 700H300V500H480.15L650 361V839zM444.45 400H250A50 50 0 0 0 200 450V750A50 50 0 0 0 250 800H444.45L709.15 1016.6A25 25 0 0 0 750 997.25V202.75A25 25 0 0 0 709.15 183.4L444.5 400zM943.15 370.45L872.05 441.55A199.64999999999998 199.64999999999998 0 0 1 950 600C950 671.5 912.5 734.25 856 769.5999999999999L927.95 841.55A299.54999999999995 299.54999999999995 0 0 0 1050 600C1050 507.9 1008.5000000000002 425.5 943.15 370.45z","horizAdvX":"1200"},"volume-mute-fill":{"path":["M0 0h24v24H0z","M5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm14.525-4l3.536 3.536-1.414 1.414L19 13.414l-3.536 3.536-1.414-1.414L17.586 12 14.05 8.464l1.414-1.414L19 10.586l3.536-3.536 1.414 1.414L20.414 12z"],"unicode":"","glyph":"M294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM1020.7 600L1197.5000000000002 423.2000000000001L1126.8000000000002 352.5L950 529.3000000000001L773.2 352.5L702.5 423.2000000000001L879.3 600L702.5 776.8L773.2 847.5L950 670.6999999999999L1126.8000000000002 847.5L1197.5000000000002 776.8L1020.7 600z","horizAdvX":"1200"},"volume-mute-line":{"path":["M0 0h24v24H0z","M10 7.22L6.603 10H3v4h3.603L10 16.78V7.22zM5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm14.525-4l3.536 3.536-1.414 1.414L19 13.414l-3.536 3.536-1.414-1.414L17.586 12 14.05 8.464l1.414-1.414L19 10.586l3.536-3.536 1.414 1.414L20.414 12z"],"unicode":"","glyph":"M500 839L330.15 700H150V500H330.15L500 361V839zM294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM1020.7 600L1197.5000000000002 423.2000000000001L1126.8000000000002 352.5L950 529.3000000000001L773.2 352.5L702.5 423.2000000000001L879.3 600L702.5 776.8L773.2 847.5L950 670.6999999999999L1126.8000000000002 847.5L1197.5000000000002 776.8L1020.7 600z","horizAdvX":"1200"},"volume-off-vibrate-fill":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zM13 19.945a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1l2.584-.002-3.776-3.776 1.414-1.414L13 12.586v7.359zm-.113-16.206a.5.5 0 0 1 .113.316v5.702L9.282 6.04l2.901-2.372a.5.5 0 0 1 .704.07z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM650 202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800L279.2 800.0999999999999L90.4 988.9L161.1 1059.6L650 570.6999999999999V202.75zM644.35 1013.05A25 25 0 0 0 650 997.25V712.1499999999999L464.1 898L609.15 1016.6A25 25 0 0 0 644.35 1013.1z","horizAdvX":"1200"},"volume-off-vibrate-line":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zM13 19.945a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1l2.584-.002-3.776-3.776 1.414-1.414L13 12.586v7.359zM7.584 9.998L4 10V14l3.603-.001L11 16.779v-3.365L7.584 9.998zm5.303-6.26a.5.5 0 0 1 .113.317v5.702l-2-2V7.22l-.296.241-1.421-1.42 2.9-2.373a.5.5 0 0 1 .704.07z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM650 202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800L279.2 800.0999999999999L90.4 988.9L161.1 1059.6L650 570.6999999999999V202.75zM379.2 700.1L200 700V500L380.15 500.05L550 361.05V529.3000000000001L379.2 700.1zM644.35 1013.1A25 25 0 0 0 650 997.25V712.1500000000001L550 812.1500000000001V839L535.2 826.95L464.1500000000001 897.95L609.1500000000001 1016.6A25 25 0 0 0 644.3500000000001 1013.1z","horizAdvX":"1200"},"volume-up-fill":{"path":["M0 0h24v24H0z","M5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm13.517 4.134l-1.416-1.416A8.978 8.978 0 0 0 21 12a8.982 8.982 0 0 0-3.304-6.968l1.42-1.42A10.976 10.976 0 0 1 23 12c0 3.223-1.386 6.122-3.594 8.134zm-3.543-3.543l-1.422-1.422A3.993 3.993 0 0 0 16 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 18 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM970.3 193.3L899.4999999999999 264.1A448.9 448.9 0 0 1 1050 600A449.09999999999997 449.09999999999997 0 0 1 884.8000000000001 948.4L955.8 1019.4A548.8000000000001 548.8000000000001 0 0 0 1150 600C1150 438.85 1080.7 293.9 970.3 193.3zM793.15 370.45L722.05 441.55A199.64999999999998 199.64999999999998 0 0 1 800 600C800 671.5 762.5 734.25 706 769.5999999999999L777.95 841.55A299.54999999999995 299.54999999999995 0 0 0 900 600C900 507.9 858.5000000000001 425.5 793.15 370.45z","horizAdvX":"1200"},"volume-up-line":{"path":["M0 0h24v24H0z","M10 7.22L6.603 10H3v4h3.603L10 16.78V7.22zM5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm13.517 4.134l-1.416-1.416A8.978 8.978 0 0 0 21 12a8.982 8.982 0 0 0-3.304-6.968l1.42-1.42A10.976 10.976 0 0 1 23 12c0 3.223-1.386 6.122-3.594 8.134zm-3.543-3.543l-1.422-1.422A3.993 3.993 0 0 0 16 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 18 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M500 839L330.15 700H150V500H330.15L500 361V839zM294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM970.3 193.3L899.4999999999999 264.1A448.9 448.9 0 0 1 1050 600A449.09999999999997 449.09999999999997 0 0 1 884.8000000000001 948.4L955.8 1019.4A548.8000000000001 548.8000000000001 0 0 0 1150 600C1150 438.85 1080.7 293.9 970.3 193.3zM793.15 370.45L722.05 441.55A199.64999999999998 199.64999999999998 0 0 1 800 600C800 671.5 762.5 734.25 706 769.5999999999999L777.95 841.55A299.54999999999995 299.54999999999995 0 0 0 900 600C900 507.9 858.5000000000001 425.5 793.15 370.45z","horizAdvX":"1200"},"volume-vibrate-fill":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zm-6.503.578a.5.5 0 0 1 .113.316v15.89a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .704.07z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM644.35 1013.05A25 25 0 0 0 650 997.25V202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800H344.45L609.15 1016.6A25 25 0 0 0 644.35 1013.1z","horizAdvX":"1200"},"volume-vibrate-line":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zm-6.503.578a.5.5 0 0 1 .113.316v15.89a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .704.07zM11 7.22L7.603 9.999H4V14l3.603-.001L11 16.779V7.22z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM644.35 1013.05A25 25 0 0 0 650 997.25V202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800H344.45L609.15 1016.6A25 25 0 0 0 644.35 1013.1zM550 839L380.15 700.05H200V500L380.15 500.05L550 361.05V839z","horizAdvX":"1200"},"vuejs-fill":{"path":["M0 0h24v24H0z","M1 3h4l7 12 7-12h4L12 22 1 3zm8.667 0L12 7l2.333-4h4.035L12 14 5.632 3h4.035z"],"unicode":"","glyph":"M50 1050H250L600 450L950 1050H1150L600 100L50 1050zM483.35 1050L600 850L716.65 1050H918.4L600 500L281.6 1050H483.35z","horizAdvX":"1200"},"vuejs-line":{"path":["M0 0h24v24H0z","M3.316 3L12 18l8.684-15H23L12 22 1 3h2.316zm4.342 0L12 10.5 16.342 3h2.316L12 14.5 5.342 3h2.316z"],"unicode":"","glyph":"M165.8 1050L600 300L1034.1999999999998 1050H1150L600 100L50 1050H165.8zM382.9 1050L600 675L817.0999999999999 1050H932.8999999999997L600 475L267.1 1050H382.9z","horizAdvX":"1200"},"walk-fill":{"path":["M0 0h24v24H0z","M7.617 8.712l3.205-2.328A1.995 1.995 0 0 1 12.065 6a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.697 3.955 2.061 1.73 2.223 6.108-1.88.684-2.04-5.604-3.39-2.845a2 2 0 0 1-.713-1.904l.509-2.885-.677.492-2.127 2.928-1.618-1.176L7.6 8.7l.017.012zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-2.972 13.181l-3.214 3.83-1.532-1.285 2.976-3.546.746-2.18 1.791 1.5-.767 1.681z"],"unicode":"","glyph":"M380.85 764.4000000000001L541.0999999999999 880.8A99.75 99.75 0 0 0 603.25 900A130.8 130.8 0 0 0 724.5999999999999 809C733.9 779.8499999999999 742.4 760.15 750.0999999999999 749.9A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L645.05 479.6L748.1 393.1000000000002L859.2499999999999 87.7000000000001L765.25 53.5L663.25 333.7L493.75 475.95A100 100 0 0 0 458.1 571.15L483.5500000000001 715.4L449.7000000000001 690.8L343.3500000000001 544.3999999999999L262.4500000000001 603.1999999999999L380 765L380.85 764.4000000000001zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925zM526.4 265.9500000000002L365.7 74.4500000000003L289.1 138.7000000000003L437.9 316.0000000000003L475.2 425.0000000000003L564.75 350.0000000000003L526.4 265.9500000000002z","horizAdvX":"1200"},"walk-line":{"path":["M0 0h24v24H0z","M7.617 8.712l3.205-2.328A1.995 1.995 0 0 1 12.065 6a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.697 3.955 2.061 1.73 2.223 6.108-1.88.684-2.04-5.604-3.39-2.845a2 2 0 0 1-.713-1.904l.509-2.885-.677.492-2.127 2.928-1.618-1.176L7.6 8.7l.017.012zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-2.972 13.181l-3.214 3.83-1.532-1.285 2.976-3.546.746-2.18 1.791 1.5-.767 1.681z"],"unicode":"","glyph":"M380.85 764.4000000000001L541.0999999999999 880.8A99.75 99.75 0 0 0 603.25 900A130.8 130.8 0 0 0 724.5999999999999 809C733.9 779.8499999999999 742.4 760.15 750.0999999999999 749.9A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L645.05 479.6L748.1 393.1000000000002L859.2499999999999 87.7000000000001L765.25 53.5L663.25 333.7L493.75 475.95A100 100 0 0 0 458.1 571.15L483.5500000000001 715.4L449.7000000000001 690.8L343.3500000000001 544.3999999999999L262.4500000000001 603.1999999999999L380 765L380.85 764.4000000000001zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925zM526.4 265.9500000000002L365.7 74.4500000000003L289.1 138.7000000000003L437.9 316.0000000000003L475.2 425.0000000000003L564.75 350.0000000000003L526.4 265.9500000000002z","horizAdvX":"1200"},"wallet-2-fill":{"path":["M0 0h24v24H0z","M22 8h-9a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h9v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4zm-7 3h3v2h-3v-2z"],"unicode":"","glyph":"M1100 800H650A50 50 0 0 1 600 750V450A50 50 0 0 1 650 400H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V800zM750 650H900V550H750V650z","horizAdvX":"1200"},"wallet-2-line":{"path":["M0 0h24v24H0z","M20 7V5H4v14h16v-2h-8a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h8zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm10 6v6h7V9h-7zm2 2h3v2h-3v-2z"],"unicode":"","glyph":"M1000 850V950H200V250H1000V350H600A50 50 0 0 0 550 400V800A50 50 0 0 0 600 850H1000zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM650 750V450H1000V750H650zM750 650H900V550H750V650z","horizAdvX":"1200"},"wallet-3-fill":{"path":["M0 0h24v24H0z","M22 6h-7a6 6 0 1 0 0 12h7v2a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v2zm-7 2h8v8h-8a4 4 0 1 1 0-8zm0 3v2h3v-2h-3z"],"unicode":"","glyph":"M1100 900H750A300 300 0 1 1 750 300H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V900zM750 800H1150V400H750A200 200 0 1 0 750 800zM750 650V550H900V650H750z","horizAdvX":"1200"},"wallet-3-line":{"path":["M0 0h24v24H0z","M22 7h1v10h-1v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v3zm-2 10h-6a5 5 0 0 1 0-10h6V5H4v14h16v-2zm1-2V9h-7a3 3 0 0 0 0 6h7zm-7-4h3v2h-3v-2z"],"unicode":"","glyph":"M1100 850H1150V350H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V850zM1000 350H700A250 250 0 0 0 700 850H1000V950H200V250H1000V350zM1050 450V750H700A150 150 0 0 1 700 450H1050zM700 650H850V550H700V650z","horizAdvX":"1200"},"wallet-fill":{"path":["M0 0h24v24H0z","M2 9h19a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V9zm1-6h15v4H2V4a1 1 0 0 1 1-1zm12 11v2h3v-2h-3z"],"unicode":"","glyph":"M100 750H1050A50 50 0 0 0 1100 700V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V750zM150 1050H900V850H100V1000A50 50 0 0 0 150 1050zM750 500V400H900V500H750z","horizAdvX":"1200"},"wallet-line":{"path":["M0 0h24v24H0z","M18 7h3a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h15v4zM4 9v10h16V9H4zm0-4v2h12V5H4zm11 8h3v2h-3v-2z"],"unicode":"","glyph":"M900 850H1050A50 50 0 0 0 1100 800V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H900V850zM200 750V250H1000V750H200zM200 950V850H800V950H200zM750 550H900V450H750V550z","horizAdvX":"1200"},"water-flash-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0zM13 11V6.5L8.5 13H11v4.5l4.5-6.5H13z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2zM650 650V875L425 550H550V325L775 650H650z","horizAdvX":"1200"},"water-flash-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272zM13 11h2.5L11 17.5V13H8.5L13 6.5V11z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4zM650 650H775L550 325V550H425L650 875V650z","horizAdvX":"1200"},"webcam-fill":{"path":["M0 0h24v24H0z","M11 21v-1.07A7.002 7.002 0 0 1 5 13V8a7 7 0 1 1 14 0v5a7.002 7.002 0 0 1-6 6.93V21h4v2H7v-2h4zm1-12a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 2a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M550 150V203.5A350.09999999999997 350.09999999999997 0 0 0 250 550V800A350 350 0 1 0 950 800V550A350.09999999999997 350.09999999999997 0 0 0 650 203.5V150H850V50H350V150H550zM600 750A50 50 0 1 0 600 850A50 50 0 0 0 600 750zM600 650A150 150 0 1 1 600 950A150 150 0 0 1 600 650z","horizAdvX":"1200"},"webcam-line":{"path":["M0 0h24v24H0z","M11 21v-1.07A7.002 7.002 0 0 1 5 13V8a7 7 0 1 1 14 0v5a7.002 7.002 0 0 1-6 6.93V21h4v2H7v-2h4zm1-18a5 5 0 0 0-5 5v5a5 5 0 0 0 10 0V8a5 5 0 0 0-5-5zm0 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M550 150V203.5A350.09999999999997 350.09999999999997 0 0 0 250 550V800A350 350 0 1 0 950 800V550A350.09999999999997 350.09999999999997 0 0 0 650 203.5V150H850V50H350V150H550zM600 1050A250 250 0 0 1 350 800V550A250 250 0 0 1 850 550V800A250 250 0 0 1 600 1050zM600 750A50 50 0 1 1 600 850A50 50 0 0 1 600 750zM600 650A150 150 0 1 0 600 950A150 150 0 0 0 600 650z","horizAdvX":"1200"},"wechat-2-fill":{"path":["M0 0h24v24H0z","M5.457 18.185C3.358 16.677 2 14.4 2 11.908 2 7.323 6.475 3.6 12 3.6s10 3.723 10 8.308c0 4.584-4.475 8.307-10 8.307a11.36 11.36 0 0 1-3.272-.461c-.092-.03-.216-.03-.308-.03-.185 0-.37.06-.525.153l-2.191 1.261a.44.44 0 0 1-.185.062.342.342 0 0 1-.34-.338c0-.093.03-.154.062-.247.03-.03.308-1.046.463-1.661 0-.062.03-.154.03-.216 0-.246-.092-.43-.277-.553zm3.21-7.674c.717 0 1.285-.568 1.285-1.285 0-.718-.568-1.286-1.285-1.286-.718 0-1.285.568-1.285 1.286 0 .717.567 1.285 1.285 1.285zm6.666 0c.718 0 1.285-.568 1.285-1.285 0-.718-.567-1.286-1.285-1.286-.717 0-1.285.568-1.285 1.286 0 .717.568 1.285 1.285 1.285z"],"unicode":"","glyph":"M272.85 290.7500000000001C167.9 366.15 100 480 100 604.6C100 833.8499999999999 323.75 1020 600 1020S1100 833.8499999999999 1100 604.6C1100 375.4000000000001 876.2499999999999 189.25 600 189.25A567.9999999999999 567.9999999999999 0 0 0 436.4 212.3C431.8 213.8 425.6 213.8 421 213.8C411.75 213.8 402.5000000000001 210.8000000000001 394.75 206.1500000000001L285.2 143.1000000000001A22 22 0 0 0 275.95 140A17.1 17.1 0 0 0 258.95 156.9000000000001C258.95 161.5500000000002 260.4500000000001 164.6000000000001 262.05 169.25C263.5500000000001 170.7500000000002 277.4500000000001 221.5500000000001 285.2000000000001 252.3000000000002C285.2000000000001 255.4000000000002 286.7000000000001 260.0000000000001 286.7000000000001 263.1000000000003C286.7000000000001 275.4000000000001 282.1000000000001 284.6000000000002 272.85 290.7500000000003zM433.35 674.45C469.2 674.45 497.6 702.85 497.6 738.7C497.6 774.6 469.2 803 433.35 803C397.45 803 369.1 774.6 369.1 738.7C369.1 702.85 397.45 674.45 433.35 674.45zM766.65 674.45C802.5500000000001 674.45 830.9 702.85 830.9 738.7C830.9 774.6 802.55 803 766.6499999999999 803C730.7999999999998 803 702.3999999999999 774.6 702.3999999999999 738.7C702.3999999999999 702.85 730.7999999999998 674.45 766.6499999999999 674.45z","horizAdvX":"1200"},"wechat-2-line":{"path":["M0 0h24v24H0z","M8.667 11.511a1.276 1.276 0 0 1-1.285-1.285c0-.718.567-1.286 1.285-1.286.717 0 1.285.568 1.285 1.286 0 .717-.568 1.285-1.285 1.285zm6.666 0a1.276 1.276 0 0 1-1.285-1.285c0-.718.568-1.286 1.285-1.286.718 0 1.285.568 1.285 1.286 0 .717-.567 1.285-1.285 1.285zm-8.51 7.704l.715-.436a4 4 0 0 1 2.705-.536c.212.033.386.059.52.076.406.054.82.081 1.237.081 4.42 0 7.9-3.022 7.9-6.6S16.42 5.2 12 5.2s-7.9 3.022-7.9 6.6c0 1.366.5 2.673 1.432 3.781.048.057.12.137.214.235a4 4 0 0 1 1.101 3.102l-.025.297zm-.63 2.727a1 1 0 0 1-1.527-.93l.188-2.26a2 2 0 0 0-.55-1.551A6.993 6.993 0 0 1 4 16.868C2.806 15.447 2.1 13.695 2.1 11.8c0-4.75 4.432-8.6 9.9-8.6s9.9 3.85 9.9 8.6-4.432 8.6-9.9 8.6c-.51 0-1.01-.033-1.499-.098a23.61 23.61 0 0 1-.569-.084 2 2 0 0 0-1.353.268l-2.387 1.456z"],"unicode":"","glyph":"M433.35 624.45A63.8 63.8 0 0 0 369.1 688.7C369.1 724.6 397.45 753 433.35 753C469.2 753 497.6 724.6 497.6 688.7C497.6 652.85 469.2 624.45 433.35 624.45zM766.65 624.45A63.8 63.8 0 0 0 702.4 688.7C702.4 724.6 730.8 753 766.65 753C802.5500000000001 753 830.9 724.6 830.9 688.7C830.9 652.85 802.55 624.45 766.6499999999999 624.45zM341.1500000000001 239.25L376.9000000000001 261.05A200 200 0 0 0 512.15 287.85C522.75 286.2000000000001 531.4499999999999 284.9 538.15 284.0500000000001C558.45 281.3500000000002 579.15 280.0000000000001 600 280.0000000000001C821.0000000000001 280.0000000000001 994.9999999999998 431.1000000000002 994.9999999999998 610S821.0000000000001 940 600 940S205 788.9000000000001 205 610C205 541.6999999999999 230 476.3499999999999 276.6 420.95C279 418.0999999999999 282.6 414.0999999999999 287.3 409.2A200 200 0 0 0 342.35 254.1L341.1 239.25zM309.6500000000001 102.9000000000001A50 50 0 0 0 233.3 149.4000000000001L242.7 262.3999999999999A100 100 0 0 1 215.2 339.9499999999998A349.65000000000003 349.65000000000003 0 0 0 200 356.6C140.3 427.6500000000001 105 515.25 105 610C105 847.5 326.6 1040 600 1040S1095 847.5 1095 610S873.3999999999999 180.0000000000001 599.9999999999999 180.0000000000001C574.4999999999999 180.0000000000001 549.4999999999999 181.6500000000001 525.0499999999998 184.9A1180.5 1180.5 0 0 0 496.5999999999999 189.1A100 100 0 0 1 428.95 175.7000000000001L309.5999999999999 102.9000000000001z","horizAdvX":"1200"},"wechat-fill":{"path":["M0 0h24v24H0z","M18.574 13.711a.91.91 0 0 0 .898-.898c0-.498-.399-.898-.898-.898s-.898.4-.898.898c0 .5.4.898.898.898zm-4.425 0a.91.91 0 0 0 .898-.898c0-.498-.4-.898-.898-.898-.5 0-.898.4-.898.898 0 .5.399.898.898.898zm6.567 5.04a.347.347 0 0 0-.172.37c0 .048 0 .097.025.147.098.417.294 1.081.294 1.106 0 .073.025.122.025.172a.22.22 0 0 1-.221.22c-.05 0-.074-.024-.123-.048l-1.449-.836a.799.799 0 0 0-.344-.098c-.073 0-.147 0-.196.024-.688.197-1.4.295-2.161.295-3.66 0-6.607-2.457-6.607-5.505 0-3.047 2.947-5.505 6.607-5.505 3.659 0 6.606 2.458 6.606 5.505 0 1.647-.884 3.146-2.284 4.154zM16.673 8.099a9.105 9.105 0 0 0-.28-.005c-4.174 0-7.606 2.86-7.606 6.505 0 .554.08 1.09.228 1.6h-.089a9.963 9.963 0 0 1-2.584-.368c-.074-.025-.148-.025-.222-.025a.832.832 0 0 0-.418.123l-1.748 1.005c-.05.025-.099.05-.148.05a.273.273 0 0 1-.27-.27c0-.074.024-.123.049-.197.024-.024.246-.834.369-1.324 0-.05.024-.123.024-.172a.556.556 0 0 0-.221-.442C2.058 13.376 1 11.586 1 9.598 1 5.945 4.57 3 8.95 3c3.765 0 6.93 2.169 7.723 5.098zm-5.154.418c.573 0 1.026-.477 1.026-1.026 0-.573-.453-1.026-1.026-1.026s-1.026.453-1.026 1.026.453 1.026 1.026 1.026zm-5.26 0c.573 0 1.027-.477 1.027-1.026 0-.573-.454-1.026-1.027-1.026-.572 0-1.026.453-1.026 1.026s.454 1.026 1.026 1.026z"],"unicode":"","glyph":"M928.7 514.4499999999999A45.5 45.5 0 0 1 973.6 559.35C973.6 584.2499999999999 953.65 604.25 928.7 604.25S883.8000000000001 584.2499999999999 883.8000000000001 559.35C883.8000000000001 534.35 903.8 514.4499999999999 928.7 514.4499999999999zM707.45 514.4499999999999A45.5 45.5 0 0 1 752.35 559.35C752.35 584.2499999999999 732.35 604.25 707.45 604.25C682.45 604.25 662.5500000000001 584.2499999999999 662.5500000000001 559.35C662.5500000000001 534.35 682.5000000000001 514.4499999999999 707.45 514.4499999999999zM1035.8 262.45A17.35 17.35 0 0 1 1027.2 243.95C1027.2 241.55 1027.2 239.0999999999998 1028.45 236.5999999999999C1033.35 215.7499999999999 1043.15 182.55 1043.15 181.2999999999999C1043.15 177.6499999999999 1044.3999999999999 175.1999999999998 1044.3999999999999 172.6999999999998A11 11 0 0 0 1033.35 161.6999999999998C1030.85 161.6999999999998 1029.6499999999999 162.8999999999999 1027.1999999999998 164.0999999999999L954.7499999999998 205.8999999999998A39.95 39.95 0 0 1 937.5499999999998 210.7999999999997C933.8999999999996 210.7999999999997 930.1999999999998 210.7999999999997 927.7499999999995 209.5999999999997C893.3499999999997 199.7499999999997 857.7499999999997 194.8499999999996 819.6999999999996 194.8499999999996C636.6999999999996 194.8499999999996 489.3499999999996 317.6999999999996 489.3499999999996 470.0999999999996C489.3499999999996 622.4499999999996 636.6999999999996 745.3499999999995 819.6999999999996 745.3499999999995C1002.6499999999996 745.3499999999995 1149.9999999999995 622.4499999999995 1149.9999999999995 470.0999999999996C1149.9999999999995 387.7499999999996 1105.7999999999997 312.7999999999995 1035.7999999999997 262.3999999999995zM833.6499999999999 795.05A455.25 455.25 0 0 1 819.6499999999999 795.3C610.9499999999999 795.3 439.3499999999999 652.3000000000001 439.3499999999999 470.05C439.3499999999999 442.35 443.3499999999999 415.55 450.7499999999998 390.05H446.2999999999999A498.15 498.15 0 0 0 317.0999999999999 408.45C313.3999999999999 409.7 309.6999999999999 409.7 305.9999999999999 409.7A41.6 41.6 0 0 1 285.0999999999998 403.55L197.6999999999998 353.3C195.1999999999998 352.0500000000001 192.7499999999998 350.8 190.2999999999998 350.8A13.65 13.65 0 0 0 176.7999999999998 364.2999999999999C176.7999999999998 368 177.9999999999998 370.45 179.2499999999998 374.1499999999999C180.4499999999998 375.3499999999999 191.5499999999998 415.8499999999998 197.6999999999998 440.3499999999998C197.6999999999998 442.8499999999999 198.8999999999998 446.4999999999998 198.8999999999998 448.9499999999998A27.800000000000004 27.800000000000004 0 0 1 187.8499999999998 471.0499999999998C102.9 531.2 50 620.6999999999999 50 720.0999999999999C50 902.75 228.5 1050 447.5 1050C635.75 1050 794 941.55 833.6499999999999 795.1zM575.9499999999999 774.1500000000001C604.5999999999999 774.1500000000001 627.2499999999999 798 627.2499999999999 825.45C627.2499999999999 854.1 604.5999999999999 876.75 575.9499999999999 876.75S524.65 854.0999999999999 524.65 825.45S547.3 774.1500000000001 575.9499999999999 774.1500000000001zM312.95 774.1500000000001C341.6 774.1500000000001 364.3 798 364.3 825.45C364.3 854.1 341.6 876.75 312.95 876.75C284.3499999999999 876.75 261.6499999999999 854.0999999999999 261.6499999999999 825.45S284.3499999999999 774.1500000000001 312.95 774.1500000000001z","horizAdvX":"1200"},"wechat-line":{"path":["M0 0h24v24H0z","M10 14.676v-.062c0-2.508 2.016-4.618 4.753-5.233C14.389 7.079 11.959 5.2 8.9 5.2 5.58 5.2 3 7.413 3 9.98c0 .969.36 1.9 1.04 2.698.032.038.083.094.152.165a3.568 3.568 0 0 1 1.002 2.238 3.612 3.612 0 0 1 2.363-.442c.166.026.302.046.405.06A7.254 7.254 0 0 0 10 14.675zm.457 1.951a9.209 9.209 0 0 1-2.753.055 19.056 19.056 0 0 1-.454-.067 1.612 1.612 0 0 0-1.08.212l-1.904 1.148a.806.806 0 0 1-.49.117.791.791 0 0 1-.729-.851l.15-1.781a1.565 1.565 0 0 0-.439-1.223 5.537 5.537 0 0 1-.241-.262C1.563 12.855 1 11.473 1 9.979 1 6.235 4.537 3.2 8.9 3.2c4.06 0 7.403 2.627 7.85 6.008 3.372.153 6.05 2.515 6.05 5.406 0 1.193-.456 2.296-1.229 3.19-.051.06-.116.13-.195.21a1.24 1.24 0 0 0-.356.976l.121 1.423a.635.635 0 0 1-.59.68.66.66 0 0 1-.397-.094l-1.543-.917a1.322 1.322 0 0 0-.874-.169c-.147.023-.27.04-.368.053-.316.04-.64.062-.969.062-2.694 0-4.998-1.408-5.943-3.401zm6.977 1.31a3.325 3.325 0 0 1 1.676.174 3.25 3.25 0 0 1 .841-1.502c.05-.05.087-.09.106-.112.489-.565.743-1.213.743-1.883 0-1.804-1.903-3.414-4.4-3.414-2.497 0-4.4 1.61-4.4 3.414s1.903 3.414 4.4 3.414c.241 0 .48-.016.714-.046.08-.01.188-.025.32-.046z"],"unicode":"","glyph":"M500 466.2V469.3C500 594.6999999999999 600.8 700.2 737.65 730.95C719.4499999999999 846.05 597.9499999999999 940 445 940C279 940 150 829.3499999999999 150 701C150 652.55 168 606 202 566.0999999999999C203.6 564.1999999999999 206.15 561.4 209.6 557.85A178.4 178.4 0 0 0 259.7 445.9500000000001A180.6 180.6 0 0 0 377.85 468.0500000000001C386.1500000000001 466.75 392.95 465.7500000000001 398.1 465.05A362.7 362.7 0 0 1 500 466.25zM522.85 368.6500000000001A460.44999999999993 460.44999999999993 0 0 0 385.2000000000001 365.9000000000001A952.8 952.8 0 0 0 362.5000000000001 369.2500000000001A80.6 80.6 0 0 1 308.5000000000001 358.6500000000001L213.3000000000001 301.2500000000001A40.3 40.3 0 0 0 188.8000000000001 295.4000000000001A39.55 39.55 0 0 0 152.35 337.9500000000001L159.85 427A78.25 78.25 0 0 1 137.9 488.1500000000001A276.84999999999997 276.84999999999997 0 0 0 125.85 501.2500000000001C78.15 557.25 50 626.3499999999999 50 701.0500000000001C50 888.25 226.85 1040 445 1040C648 1040 815.1500000000001 908.65 837.5 739.5999999999999C1006.1 731.95 1140 613.8499999999999 1140 469.3C1140 409.65 1117.2 354.5 1078.5500000000002 309.8C1076.0000000000002 306.8 1072.75 303.3 1068.8 299.2999999999999A62 62 0 0 1 1051 250.4999999999999L1057.05 179.3499999999998A31.75 31.75 0 0 0 1027.55 145.3499999999999A33 33 0 0 0 1007.7 150.05L930.55 195.9A66.1 66.1 0 0 1 886.8500000000001 204.35C879.5000000000002 203.2000000000001 873.3500000000001 202.35 868.4500000000002 201.6999999999999C852.6500000000002 199.7000000000001 836.4500000000002 198.5999999999999 820.0000000000001 198.5999999999999C685.3000000000002 198.5999999999999 570.1 269 522.8500000000001 368.6499999999999zM871.7 303.1500000000001A166.25 166.25 0 0 0 955.5 294.4500000000002A162.5 162.5 0 0 0 997.55 369.5500000000001C1000.05 372.0500000000002 1001.9 374.0500000000001 1002.8500000000003 375.15C1027.3000000000002 403.4 1040 435.8000000000001 1040 469.3C1040 559.5 944.8500000000003 640 819.9999999999999 640C695.15 640 599.9999999999999 559.5 599.9999999999999 469.3S695.15 298.5999999999999 819.9999999999999 298.5999999999999C832.05 298.5999999999999 844 299.3999999999998 855.6999999999998 300.8999999999999C859.6999999999998 301.4 865.0999999999998 302.1499999999998 871.6999999999998 303.1999999999998z","horizAdvX":"1200"},"wechat-pay-fill":{"path":["M0 0h24v24H0z","M9.27 14.669a.662.662 0 0 1-.88-.269l-.043-.095-1.818-3.998a.473.473 0 0 1 0-.145.327.327 0 0 1 .335-.328.305.305 0 0 1 .196.066l2.18 1.527a.989.989 0 0 0 .546.167.894.894 0 0 0 .342-.066l10.047-4.5a10.73 10.73 0 0 0-8.171-3.526C6.478 3.502 2 7.232 2 11.87a7.83 7.83 0 0 0 3.46 6.296.662.662 0 0 1 .24.727l-.45 1.701a.945.945 0 0 0-.051.24.327.327 0 0 0 .334.334.414.414 0 0 0 .19-.058l2.18-1.265c.16-.098.343-.151.531-.152.099 0 .197.014.29.043 1.063.3 2.161.452 3.265.45 5.525 0 10.01-3.729 10.01-8.33a7.226 7.226 0 0 0-1.097-3.883L9.35 14.625l-.08.044z"],"unicode":"","glyph":"M463.5 466.55A33.1 33.1 0 0 0 419.5 480L417.35 484.75L326.45 684.6500000000001A23.65 23.65 0 0 0 326.45 691.9000000000001A16.35 16.35 0 0 0 343.2 708.3A15.25 15.25 0 0 0 353 705L462 628.65A49.45 49.45 0 0 1 489.3 620.3000000000001A44.7 44.7 0 0 1 506.4 623.6L1008.75 848.6000000000001A536.5 536.5 0 0 1 600.2 1024.9C323.9 1024.9 100 838.4 100 606.5A391.5 391.5 0 0 1 273 291.7A33.1 33.1 0 0 0 285 255.3499999999999L262.5 170.3A47.25 47.25 0 0 1 259.95 158.3A16.35 16.35 0 0 1 276.65 141.6000000000001A20.7 20.7 0 0 1 286.15 144.5L395.1500000000001 207.75C403.1500000000001 212.65 412.3 215.3000000000001 421.7000000000001 215.3500000000001C426.6500000000001 215.3500000000001 431.55 214.6500000000001 436.2 213.2000000000002C489.35 198.2000000000002 544.25 190.6 599.45 190.7000000000002C875.7000000000002 190.7000000000002 1099.95 377.1500000000001 1099.95 607.2000000000002A361.3 361.3 0 0 1 1045.1000000000001 801.3500000000001L467.5 468.75L463.5 466.55z","horizAdvX":"1200"},"wechat-pay-line":{"path":["M0 0h24v24H0z","M19.145 8.993l-9.799 5.608-.07.046a.646.646 0 0 1-.3.068.655.655 0 0 1-.58-.344l-.046-.092-1.83-3.95c-.024-.046-.024-.092-.024-.138 0-.184.139-.321.324-.321.07 0 .14.023.209.069l2.155 1.515c.162.092.348.161.556.161a.937.937 0 0 0 .348-.069l8.275-3.648C16.934 6.273 14.634 5.2 12 5.2c-4.42 0-7.9 3.022-7.9 6.6 0 1.366.5 2.673 1.432 3.781.048.057.12.137.214.235a4 4 0 0 1 1.101 3.102l-.025.297.716-.436a4 4 0 0 1 2.705-.536c.212.033.386.059.52.076.406.054.82.081 1.237.081 4.42 0 7.9-3.022 7.9-6.6 0-.996-.27-1.95-.755-2.807zM6.192 21.943a1 1 0 0 1-1.526-.932l.188-2.259a2 2 0 0 0-.55-1.551A6.993 6.993 0 0 1 4 16.868C2.806 15.447 2.1 13.695 2.1 11.8c0-4.75 4.432-8.6 9.9-8.6s9.9 3.85 9.9 8.6-4.432 8.6-9.9 8.6c-.51 0-1.01-.033-1.499-.098a23.61 23.61 0 0 1-.569-.084 2 2 0 0 0-1.353.268l-2.387 1.456z"],"unicode":"","glyph":"M957.25 750.3499999999999L467.3 469.95L463.8 467.6500000000001A32.300000000000004 32.300000000000004 0 0 0 448.8 464.2500000000001A32.75 32.75 0 0 0 419.8 481.45L417.5 486.0500000000001L326 683.5500000000002C324.8 685.8500000000001 324.8 688.1500000000001 324.8 690.4500000000002C324.8 699.6500000000001 331.75 706.5000000000001 341 706.5000000000001C344.5 706.5000000000001 348 705.3500000000001 351.45 703.0500000000001L459.2 627.3000000000001C467.3 622.7 476.6 619.2500000000001 486.9999999999999 619.2500000000001A46.85 46.85 0 0 1 504.4 622.7000000000002L918.15 805.1000000000001C846.7 886.35 731.7 940 600 940C379 940 205 788.9000000000001 205 610C205 541.6999999999999 230 476.3499999999999 276.6 420.95C279 418.0999999999999 282.6 414.0999999999999 287.3 409.2A200 200 0 0 0 342.35 254.1L341.1 239.25L376.9000000000001 261.05A200 200 0 0 0 512.15 287.85C522.75 286.2000000000001 531.4499999999999 284.9 538.15 284.0500000000001C558.45 281.3500000000002 579.15 280.0000000000001 600 280.0000000000001C821.0000000000001 280.0000000000001 994.9999999999998 431.1000000000002 994.9999999999998 610C994.9999999999998 659.8000000000001 981.5 707.5 957.25 750.3500000000001zM309.6 102.8499999999999A50 50 0 0 0 233.3 149.4499999999998L242.7 262.3999999999999A100 100 0 0 1 215.2 339.9499999999998A349.65000000000003 349.65000000000003 0 0 0 200 356.6C140.3 427.6500000000001 105 515.25 105 610C105 847.5 326.6 1040 600 1040S1095 847.5 1095 610S873.3999999999999 180.0000000000001 599.9999999999999 180.0000000000001C574.4999999999999 180.0000000000001 549.4999999999999 181.6500000000001 525.0499999999998 184.9A1180.5 1180.5 0 0 0 496.5999999999999 189.1A100 100 0 0 1 428.95 175.7000000000001L309.5999999999999 102.9000000000001z","horizAdvX":"1200"},"weibo-fill":{"path":["M0 0h24v24H0z","M17.525 11.378c1.263.392 2.669 1.336 2.669 3.004 0 2.763-3.98 6.239-9.964 6.239-4.565 0-9.23-2.213-9.23-5.852 0-1.902 1.204-4.102 3.277-6.177 2.773-2.77 6.004-4.033 7.219-2.816.537.537.588 1.464.244 2.572-.178.557.525.25.525.25 2.24-.938 4.196-.994 4.909.027.38.543.343 1.306-.008 2.19-.163.407.048.471.36.563zm-7.282 7.939c3.641-.362 6.401-2.592 6.167-4.983-.237-2.391-3.382-4.038-7.023-3.677-3.64.36-6.403 2.59-6.167 4.98.237 2.394 3.382 4.039 7.023 3.68zM6.16 14.438c.754-1.527 2.712-2.39 4.446-1.94 1.793.463 2.707 2.154 1.976 3.8-.744 1.682-2.882 2.578-4.695 1.993-1.752-.566-2.493-2.294-1.727-3.853zm1.446 2.587c.568.257 1.325.013 1.676-.55.346-.568.163-1.217-.407-1.459-.563-.237-1.291.008-1.64.553-.354.547-.189 1.202.371 1.456zm2.206-1.808c.219.092.501-.012.628-.231.123-.22.044-.466-.178-.548-.216-.084-.486.018-.613.232-.123.214-.054.458.163.547zM19.873 9.5a.725.725 0 1 1-1.378-.451 1.38 1.38 0 0 0-.288-1.357 1.395 1.395 0 0 0-1.321-.425.723.723 0 1 1-.303-1.416 2.836 2.836 0 0 1 3.29 3.649zm-3.916-6.575A5.831 5.831 0 0 1 21.5 4.72a5.836 5.836 0 0 1 1.22 5.704.838.838 0 0 1-1.06.54.844.844 0 0 1-.542-1.062 4.143 4.143 0 0 0-4.807-5.327.845.845 0 0 1-.354-1.65z"],"unicode":"","glyph":"M876.2499999999999 631.1C939.3999999999997 611.5 1009.7 564.3 1009.7 480.9C1009.7 342.75 810.6999999999999 168.9500000000001 511.4999999999999 168.9500000000001C283.2499999999999 168.9500000000001 49.9999999999999 279.6000000000002 49.9999999999999 461.5500000000001C49.9999999999999 556.6500000000001 110.1999999999999 666.6500000000001 213.8499999999999 770.4000000000001C352.5 908.9 514.05 972.05 574.8 911.2C601.65 884.3500000000001 604.1999999999999 838 586.9999999999999 782.6C578.0999999999999 754.75 613.2499999999999 770.1 613.2499999999999 770.1C725.25 817 823.05 819.8000000000001 858.6999999999999 768.7500000000001C877.6999999999999 741.6000000000001 875.85 703.4500000000002 858.3000000000001 659.2500000000001C850.15 638.9000000000001 860.6999999999999 635.7000000000002 876.3 631.1000000000001zM512.15 234.15C694.1999999999999 252.2499999999999 832.1999999999999 363.7499999999999 820.4999999999998 483.3000000000001C808.6499999999999 602.85 651.3999999999999 685.2 469.3499999999999 667.15C287.3499999999998 649.15 149.1999999999999 537.65 160.9999999999999 418.15C172.8499999999999 298.4500000000001 330.0999999999999 216.1999999999999 512.1499999999999 234.15zM308 478.1C345.7 554.4499999999999 443.6 597.6 530.3 575.0999999999999C619.9499999999999 551.9499999999999 665.65 467.4 629.1 385.0999999999999C591.9000000000001 301 485.0000000000001 256.2 394.35 285.45C306.7500000000001 313.7499999999999 269.7 400.15 308 478.1zM380.3 348.7499999999999C408.7 335.8999999999999 446.55 348.0999999999998 464.1 376.2499999999999C481.4 404.6499999999999 472.25 437.0999999999999 443.75 449.2C415.6 461.05 379.2 448.8 361.75 421.5499999999999C344.05 394.1999999999998 352.3 361.45 380.3 348.7499999999999zM490.6 439.1499999999999C501.55 434.5499999999999 515.65 439.7499999999999 522 450.6999999999999C528.15 461.6999999999999 524.2 473.9999999999999 513.0999999999999 478.0999999999999C502.3 482.2999999999998 488.7999999999999 477.1999999999998 482.4499999999999 466.4999999999999C476.3 455.7999999999998 479.7499999999999 443.5999999999999 490.6 439.1499999999999zM993.65 725A36.25 36.25 0 1 0 924.75 747.55A68.99999999999999 68.99999999999999 0 0 1 910.35 815.4000000000001A69.75 69.75 0 0 1 844.3 836.6500000000001A36.150000000000006 36.150000000000006 0 1 0 829.1499999999999 907.45A141.79999999999998 141.79999999999998 0 0 0 993.6499999999997 725zM797.85 1053.75A291.55 291.55 0 0 0 1075 964A291.8 291.8 0 0 0 1136 678.8000000000001A41.9 41.9 0 0 0 1083 651.8000000000001A42.2 42.2 0 0 0 1055.8999999999999 704.9000000000001A207.14999999999998 207.14999999999998 0 0 1 815.55 971.25A42.24999999999999 42.24999999999999 0 0 0 797.85 1053.75z","horizAdvX":"1200"},"weibo-line":{"path":["M0 0h24v24H0z","M20.194 14.197c0 3.362-4.53 6.424-9.926 6.424C5.318 20.62 1 18.189 1 14.534c0-1.947 1.18-4.087 3.24-6.088 2.832-2.746 6.229-4.033 7.858-2.448.498.482.723 1.122.719 1.858 1.975-.576 3.65-.404 4.483.752.449.623.532 1.38.326 2.207 1.511.61 2.568 1.77 2.568 3.382zm-4.44-2.07c-.386-.41-.4-.92-.198-1.41.208-.508.213-.812.12-.94-.264-.368-1.533-.363-3.194.311a2.043 2.043 0 0 1-.509.14c-.344.046-.671.001-.983-.265-.419-.359-.474-.855-.322-1.316.215-.67.18-1.076.037-1.215-.186-.18-.777-.191-1.659.143-1.069.405-2.298 1.224-3.414 2.306C3.925 11.54 3 13.218 3 14.534c0 2.242 3.276 4.087 7.268 4.087 4.42 0 7.926-2.37 7.926-4.424 0-.738-.637-1.339-1.673-1.652-.394-.113-.536-.171-.767-.417zm7.054-1.617a1 1 0 0 1-1.936-.502 4 4 0 0 0-4.693-4.924 1 1 0 1 1-.407-1.958 6 6 0 0 1 7.036 7.384z"],"unicode":"","glyph":"M1009.7 490.1500000000001C1009.7 322.0500000000002 783.1999999999999 168.9500000000001 513.4 168.9500000000001C265.9 169 50 290.55 50 473.3C50 570.65 109 677.65 212 777.6999999999999C353.6 915 523.45 979.35 604.9 900.0999999999999C629.8 876 641.05 844 640.8499999999999 807.1999999999999C739.5999999999999 835.9999999999999 823.3499999999999 827.3999999999999 864.9999999999999 769.5999999999999C887.4499999999999 738.4499999999999 891.5999999999999 700.5999999999999 881.2999999999998 659.2499999999999C956.8499999999998 628.75 1009.7 570.75 1009.7 490.15zM787.6999999999999 593.6500000000001C768.4 614.1500000000001 767.6999999999998 639.6500000000001 777.7999999999998 664.1500000000001C788.1999999999999 689.55 788.4499999999998 704.75 783.7999999999998 711.1500000000001C770.5999999999999 729.5500000000001 707.1499999999999 729.3 624.0999999999998 695.6A102.15 102.15 0 0 0 598.6499999999997 688.6C581.4499999999998 686.3000000000001 565.0999999999998 688.5500000000001 549.4999999999998 701.85C528.5499999999997 719.8000000000001 525.7999999999997 744.6000000000001 533.3999999999997 767.6500000000001C544.1499999999997 801.1500000000001 542.3999999999997 821.45 535.2499999999998 828.4000000000001C525.9499999999998 837.4000000000001 496.3999999999999 837.95 452.2999999999998 821.25C398.8499999999998 801 337.3999999999998 760.0500000000002 281.5999999999998 705.95C196.25 623 150 539.1 150 473.3C150 361.2000000000001 313.8 268.95 513.4000000000001 268.95C734.4 268.95 909.7000000000002 387.45 909.7000000000002 490.1499999999999C909.7000000000002 527.0499999999998 877.8500000000001 557.0999999999999 826.0500000000001 572.7499999999998C806.3500000000001 578.3999999999997 799.2500000000001 581.2999999999998 787.7 593.5999999999998zM1140.4 674.5000000000001A50 50 0 0 0 1043.6 699.6000000000001A200 200 0 0 1 808.95 945.8000000000002A50 50 0 1 0 788.6000000000001 1043.7000000000003A300 300 0 0 0 1140.4 674.5000000000001z","horizAdvX":"1200"},"whatsapp-fill":{"path":["M0 0h24v24H0z","M2.004 22l1.352-4.968A9.954 9.954 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.954 9.954 0 0 1-5.03-1.355L2.004 22zM8.391 7.308a.961.961 0 0 0-.371.1 1.293 1.293 0 0 0-.294.228c-.12.113-.188.211-.261.306A2.729 2.729 0 0 0 6.9 9.62c.002.49.13.967.33 1.413.409.902 1.082 1.857 1.971 2.742.214.213.423.427.648.626a9.448 9.448 0 0 0 3.84 2.046l.569.087c.185.01.37-.004.556-.013a1.99 1.99 0 0 0 .833-.231c.166-.088.244-.132.383-.22 0 0 .043-.028.125-.09.135-.1.218-.171.33-.288.083-.086.155-.187.21-.302.078-.163.156-.474.188-.733.024-.198.017-.306.014-.373-.004-.107-.093-.218-.19-.265l-.582-.261s-.87-.379-1.401-.621a.498.498 0 0 0-.177-.041.482.482 0 0 0-.378.127v-.002c-.005 0-.072.057-.795.933a.35.35 0 0 1-.368.13 1.416 1.416 0 0 1-.191-.066c-.124-.052-.167-.072-.252-.109l-.005-.002a6.01 6.01 0 0 1-1.57-1c-.126-.11-.243-.23-.363-.346a6.296 6.296 0 0 1-1.02-1.268l-.059-.095a.923.923 0 0 1-.102-.205c-.038-.147.061-.265.061-.265s.243-.266.356-.41a4.38 4.38 0 0 0 .263-.373c.118-.19.155-.385.093-.536-.28-.684-.57-1.365-.868-2.041-.059-.134-.234-.23-.393-.249-.054-.006-.108-.012-.162-.016a3.385 3.385 0 0 0-.403.004z"],"unicode":"","glyph":"M100.2 100L167.8 348.4A497.7000000000001 497.7000000000001 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.7000000000001 497.7000000000001 0 0 0 348.5 167.75L100.2 100zM419.55 834.6A48.05 48.05 0 0 1 401 829.6A64.65 64.65 0 0 1 386.3 818.2C380.3 812.55 376.9000000000001 807.6500000000001 373.25 802.9000000000001A136.45000000000002 136.45000000000002 0 0 1 345 719C345.1 694.5 351.5 670.65 361.5 648.35C381.95 603.2500000000001 415.6000000000001 555.5000000000001 460.05 511.2500000000001C470.7500000000001 500.6000000000001 481.2 489.9000000000001 492.45 479.95A472.40000000000003 472.40000000000003 0 0 1 684.45 377.6500000000001L712.9 373.3000000000001C722.15 372.8 731.3999999999999 373.5000000000001 740.7 373.9500000000002A99.50000000000001 99.50000000000001 0 0 1 782.35 385.5000000000003C790.65 389.9000000000003 794.55 392.1000000000003 801.5 396.5000000000001C801.5 396.5000000000001 803.65 397.9000000000001 807.75 401.0000000000001C814.5000000000001 406.0000000000001 818.6500000000001 409.5500000000002 824.25 415.4000000000002C828.3999999999999 419.7000000000002 832 424.7500000000001 834.75 430.5000000000001C838.65 438.6500000000002 842.55 454.2000000000002 844.15 467.1500000000002C845.35 477.0500000000002 844.9999999999999 482.4500000000002 844.8499999999999 485.8000000000002C844.6499999999999 491.1500000000001 840.1999999999999 496.7000000000002 835.3499999999999 499.0500000000002L806.2499999999998 512.1000000000001S762.7499999999999 531.0500000000001 736.1999999999998 543.1500000000002A24.900000000000002 24.900000000000002 0 0 1 727.3499999999999 545.2000000000002A24.1 24.1 0 0 1 708.4499999999998 538.8500000000001V538.9500000000002C708.1999999999998 538.9500000000002 704.8499999999999 536.1000000000001 668.6999999999998 492.3000000000002A17.499999999999996 17.499999999999996 0 0 0 650.2999999999998 485.8000000000002A70.8 70.8 0 0 0 640.7499999999998 489.1000000000001C634.5499999999997 491.7000000000002 632.3999999999999 492.7000000000002 628.1499999999997 494.5500000000002L627.8999999999997 494.6500000000002A300.5 300.5 0 0 0 549.3999999999997 544.6500000000002C543.0999999999997 550.1500000000002 537.2499999999997 556.1500000000002 531.2499999999998 561.9500000000003A314.8 314.8 0 0 0 480.2499999999998 625.3500000000003L477.2999999999998 630.1000000000003A46.15 46.15 0 0 0 472.1999999999998 640.3500000000003C470.2999999999998 647.7000000000003 475.2499999999998 653.6000000000004 475.2499999999998 653.6000000000004S487.3999999999998 666.9000000000003 493.0499999999998 674.1000000000004A219 219 0 0 1 506.1999999999998 692.7500000000002C512.0999999999998 702.2500000000002 513.9499999999997 712.0000000000002 510.8499999999997 719.5500000000003C496.8499999999998 753.7500000000002 482.3499999999997 787.8000000000003 467.4499999999998 821.6000000000004C464.4999999999998 828.3000000000003 455.7499999999998 833.1000000000004 447.7999999999998 834.0500000000003C445.0999999999997 834.3500000000004 442.3999999999997 834.6500000000003 439.6999999999997 834.8500000000003A169.25 169.25 0 0 1 419.5499999999997 834.6500000000003z","horizAdvX":"1200"},"whatsapp-line":{"path":["M0 0h24v24H0z","M7.253 18.494l.724.423A7.953 7.953 0 0 0 12 20a8 8 0 1 0-8-8c0 1.436.377 2.813 1.084 4.024l.422.724-.653 2.401 2.4-.655zM2.004 22l1.352-4.968A9.954 9.954 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.954 9.954 0 0 1-5.03-1.355L2.004 22zM8.391 7.308c.134-.01.269-.01.403-.004.054.004.108.01.162.016.159.018.334.115.393.249.298.676.588 1.357.868 2.04.062.152.025.347-.093.537a4.38 4.38 0 0 1-.263.372c-.113.145-.356.411-.356.411s-.099.118-.061.265c.014.056.06.137.102.205l.059.095c.256.427.6.86 1.02 1.268.12.116.237.235.363.346.468.413.998.75 1.57 1l.005.002c.085.037.128.057.252.11.062.026.126.049.191.066a.35.35 0 0 0 .367-.13c.724-.877.79-.934.796-.934v.002a.482.482 0 0 1 .378-.127c.06.004.121.015.177.04.531.243 1.4.622 1.4.622l.582.261c.098.047.187.158.19.265.004.067.01.175-.013.373-.032.259-.11.57-.188.733a1.155 1.155 0 0 1-.21.302 2.378 2.378 0 0 1-.33.288 3.71 3.71 0 0 1-.125.09 5.024 5.024 0 0 1-.383.22 1.99 1.99 0 0 1-.833.23c-.185.01-.37.024-.556.014-.008 0-.568-.087-.568-.087a9.448 9.448 0 0 1-3.84-2.046c-.226-.199-.435-.413-.649-.626-.89-.885-1.562-1.84-1.97-2.742A3.47 3.47 0 0 1 6.9 9.62a2.729 2.729 0 0 1 .564-1.68c.073-.094.142-.192.261-.305.127-.12.207-.184.294-.228a.961.961 0 0 1 .371-.1z"],"unicode":"","glyph":"M362.65 275.3L398.85 254.1500000000001A397.65000000000003 397.65000000000003 0 0 1 600 200A400 400 0 1 1 200 600C200 528.2 218.85 459.35 254.2 398.8L275.3 362.5999999999999L242.65 242.55L362.65 275.3zM100.2 100L167.8 348.4A497.7000000000001 497.7000000000001 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.7000000000001 497.7000000000001 0 0 0 348.5 167.75L100.2 100zM419.55 834.6C426.25 835.1 433 835.1 439.7000000000001 834.8C442.4000000000001 834.6 445.1 834.3 447.8000000000001 834C455.7500000000001 833.1 464.5000000000001 828.25 467.4500000000001 821.55C482.3500000000001 787.75 496.8500000000001 753.7 510.8500000000001 719.55C513.95 711.95 512.1000000000001 702.2 506.2000000000001 692.6999999999999A219 219 0 0 0 493.0500000000001 674.0999999999999C487.4000000000001 666.85 475.2500000000001 653.55 475.2500000000001 653.55S470.3000000000001 647.65 472.2000000000002 640.3C472.9000000000001 637.5 475.2000000000002 633.4499999999999 477.3000000000001 630.05L480.2500000000001 625.3C493.0500000000001 603.9499999999999 510.2500000000001 582.3 531.2500000000001 561.8999999999999C537.25 556.0999999999999 543.1000000000001 550.1499999999999 549.4000000000001 544.5999999999999C572.8000000000001 523.9499999999998 599.3000000000001 507.0999999999999 627.9000000000001 494.5999999999999L628.1500000000001 494.4999999999999C632.4000000000002 492.6499999999999 634.5500000000002 491.6499999999999 640.7500000000001 488.9999999999999C643.8500000000001 487.6999999999999 647.0500000000002 486.55 650.3000000000002 485.6999999999998A17.499999999999996 17.499999999999996 0 0 1 668.6500000000002 492.1999999999999C704.8500000000003 536.05 708.1500000000002 538.8999999999999 708.4500000000002 538.8999999999999V538.7999999999998A24.1 24.1 0 0 0 727.3500000000003 545.1499999999999C730.3500000000003 544.9499999999998 733.4000000000002 544.3999999999999 736.2000000000002 543.1499999999999C762.7500000000002 530.9999999999999 806.2000000000002 512.0499999999998 806.2000000000002 512.0499999999998L835.3000000000002 498.9999999999999C840.2 496.6499999999999 844.6500000000002 491.0999999999999 844.8000000000002 485.7499999999999C845.0000000000002 482.3999999999999 845.3000000000003 476.9999999999999 844.1500000000001 467.0999999999999C842.5500000000002 454.1499999999999 838.6500000000002 438.5999999999999 834.7500000000002 430.45A57.75000000000001 57.75000000000001 0 0 0 824.2500000000001 415.3499999999999A118.9 118.9 0 0 0 807.7500000000002 400.95A185.5 185.5 0 0 0 801.5000000000002 396.45A251.2 251.2 0 0 0 782.3500000000003 385.45A99.50000000000001 99.50000000000001 0 0 0 740.7000000000003 373.95C731.4500000000003 373.45 722.2000000000003 372.7499999999999 712.9000000000003 373.25C712.5000000000003 373.25 684.5000000000003 377.6 684.5000000000003 377.6A472.40000000000003 472.40000000000003 0 0 0 492.5000000000003 479.9C481.2000000000003 489.8499999999999 470.7500000000003 500.55 460.0500000000004 511.1999999999999C415.5500000000004 555.4499999999999 381.9500000000004 603.1999999999999 361.5500000000004 648.2999999999998A173.50000000000003 173.50000000000003 0 0 0 345 719A136.45000000000002 136.45000000000002 0 0 0 373.2000000000001 803C376.85 807.7 380.3 812.6 386.25 818.25C392.6 824.25 396.6 827.45 400.95 829.65A48.05 48.05 0 0 0 419.5 834.65z","horizAdvX":"1200"},"wheelchair-fill":{"path":["M0 0H24V24H0z","M8 10.341v2.194C6.804 13.227 6 14.52 6 16c0 2.21 1.79 4 4 4 1.48 0 2.773-.804 3.465-2h2.193c-.823 2.33-3.046 4-5.658 4-3.314 0-6-2.686-6-6 0-2.613 1.67-4.835 4-5.659zM12 17c-1.657 0-3-1.343-3-3v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v5h1.434c.648 0 1.253.314 1.626.836l.089.135 2.708 4.515-1.714 1.028L16.433 17H12zm0-15c1.38 0 2.5 1.12 2.5 2.5S13.38 7 12 7 9.5 5.88 9.5 4.5 10.62 2 12 2z"],"unicode":"","glyph":"M400 682.95V573.25C340.2 538.65 300 474 300 400C300 289.5 389.5 200 500 200C574 200 638.65 240.2 673.25 300H782.9C741.75 183.5000000000001 630.6 100 500 100C334.3 100 200 234.3 200 400C200 530.65 283.5 641.75 400 682.9499999999999zM600 350C517.15 350 450 417.15 450 500V700C450 782.85 517.15 850 600 850S750 782.85 750 700V450H821.7C854.1 450 884.35 434.3 903.0000000000002 408.2L907.45 401.4500000000001L1042.85 175.7000000000001L957.15 124.3L821.65 350H600zM600 1100C669 1100 725 1044 725 975S669 850 600 850S475 906 475 975S531 1100 600 1100z","horizAdvX":"1200"},"wheelchair-line":{"path":["M0 0H24V24H0z","M8 10.341v2.194C6.804 13.227 6 14.52 6 16c0 2.21 1.79 4 4 4 1.48 0 2.773-.804 3.465-2h2.193c-.823 2.33-3.046 4-5.658 4-3.314 0-6-2.686-6-6 0-2.613 1.67-4.835 4-5.659zM12 17c-1.657 0-3-1.343-3-3v-4c0-1.044.534-1.964 1.343-2.501C9.533 6.964 9 6.044 9 5c0-1.657 1.343-3 3-3s3 1.343 3 3c0 1.044-.534 1.964-1.343 2.501C14.467 8.036 15 8.956 15 10v4.999l1.434.001c.648 0 1.253.314 1.626.836l.089.135 2.708 4.515-1.714 1.028L16.433 17 15 16.999 12 17zm0-8c-.552 0-1 .448-1 1v4c0 .552.448 1 1 1h.999L13 10c0-.552-.448-1-1-1zm0-5c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M400 682.95V573.25C340.2 538.65 300 474 300 400C300 289.5 389.5 200 500 200C574 200 638.65 240.2 673.25 300H782.9C741.75 183.5000000000001 630.6 100 500 100C334.3 100 200 234.3 200 400C200 530.65 283.5 641.75 400 682.9499999999999zM600 350C517.15 350 450 417.15 450 500V700C450 752.2 476.7 798.2 517.15 825.05C476.65 851.8 450 897.8 450 950C450 1032.85 517.15 1100 600 1100S750 1032.85 750 950C750 897.8 723.3 851.8 682.85 824.95C723.35 798.2 750 752.2 750 700V450.0500000000001L821.7 450.0000000000001C854.1 450.0000000000001 884.35 434.3000000000001 903.0000000000002 408.2000000000001L907.45 401.4500000000001L1042.85 175.7000000000001L957.15 124.3000000000002L821.65 350L750 350.0500000000001L600 350zM600 750C572.4 750 550 727.5999999999999 550 700V500C550 472.4 572.4 450 600 450H649.95L650 700C650 727.5999999999999 627.6 750 600 750zM600 1000C572.4 1000 550 977.6 550 950S572.4 900 600 900S650 922.4 650 950S627.6 1000 600 1000z","horizAdvX":"1200"},"wifi-fill":{"path":["M0 0h24v24H0z","M.69 6.997A17.925 17.925 0 0 1 12 3c4.285 0 8.22 1.497 11.31 3.997L21.425 9.33A14.937 14.937 0 0 0 12 6C8.43 6 5.15 7.248 2.575 9.33L.69 6.997zm3.141 3.89A12.946 12.946 0 0 1 12 8c3.094 0 5.936 1.081 8.169 2.886l-1.885 2.334A9.958 9.958 0 0 0 12 11c-2.38 0-4.566.832-6.284 2.22l-1.885-2.334zm3.142 3.89A7.967 7.967 0 0 1 12 13c1.904 0 3.653.665 5.027 1.776l-1.885 2.334A4.98 4.98 0 0 0 12 16a4.98 4.98 0 0 0-3.142 1.11l-1.885-2.334zm3.142 3.89A2.987 2.987 0 0 1 12 18c.714 0 1.37.25 1.885.666L12 21l-1.885-2.334z"],"unicode":"","glyph":"M34.5 850.15A896.25 896.25 0 0 0 600 1050C814.25 1050 1011 975.15 1165.5 850.15L1071.25 733.5A746.85 746.85 0 0 1 600 900C421.5 900 257.5 837.5999999999999 128.75 733.5L34.5 850.15zM191.55 655.65A647.3000000000001 647.3000000000001 0 0 0 600 800C754.6999999999999 800 896.8 745.95 1008.45 655.7L914.2 539A497.90000000000003 497.90000000000003 0 0 1 600 650C481.0000000000001 650 371.7 608.4 285.8 539L191.55 655.6999999999999zM348.65 461.15A398.34999999999997 398.34999999999997 0 0 0 600 550C695.2 550 782.65 516.75 851.35 461.2L757.1 344.5A249.00000000000003 249.00000000000003 0 0 1 600 400A249.00000000000003 249.00000000000003 0 0 1 442.9000000000001 344.5L348.6500000000001 461.2zM505.75 266.6499999999999A149.35 149.35 0 0 0 600 300C635.7 300 668.5 287.5 694.25 266.7L600 150L505.75 266.7z","horizAdvX":"1200"},"wifi-line":{"path":["M0 0h24v24H0z","M.69 6.997A17.925 17.925 0 0 1 12 3c4.285 0 8.22 1.497 11.31 3.997l-1.256 1.556A15.933 15.933 0 0 0 12 5C8.191 5 4.694 6.33 1.946 8.553L.69 6.997zm3.141 3.89A12.946 12.946 0 0 1 12 8c3.094 0 5.936 1.081 8.169 2.886l-1.257 1.556A10.954 10.954 0 0 0 12 10c-2.618 0-5.023.915-6.912 2.442l-1.257-1.556zm3.142 3.89A7.967 7.967 0 0 1 12 13c1.904 0 3.653.665 5.027 1.776l-1.257 1.556A5.975 5.975 0 0 0 12 15c-1.428 0-2.74.499-3.77 1.332l-1.257-1.556zm3.142 3.89A2.987 2.987 0 0 1 12 18c.714 0 1.37.25 1.885.666L12 21l-1.885-2.334z"],"unicode":"","glyph":"M34.5 850.15A896.25 896.25 0 0 0 600 1050C814.25 1050 1011 975.15 1165.5 850.15L1102.7 772.3499999999999A796.65 796.65 0 0 1 600 950C409.55 950 234.7 883.5 97.3 772.3499999999999L34.5 850.15zM191.55 655.65A647.3000000000001 647.3000000000001 0 0 0 600 800C754.6999999999999 800 896.8 745.95 1008.45 655.7L945.6 577.9A547.7 547.7 0 0 1 600 700C469.1 700 348.85 654.25 254.4 577.9L191.55 655.7zM348.65 461.15A398.34999999999997 398.34999999999997 0 0 0 600 550C695.2 550 782.65 516.75 851.35 461.2L788.5000000000001 383.4A298.75 298.75 0 0 1 600 450C528.5999999999999 450 463 425.05 411.5 383.4L348.6500000000001 461.2zM505.75 266.6499999999999A149.35 149.35 0 0 0 600 300C635.7 300 668.5 287.5 694.25 266.7L600 150L505.75 266.7z","horizAdvX":"1200"},"wifi-off-fill":{"path":["M0 0h24v24H0z","M12 18c.714 0 1.37.25 1.886.666L12 21l-1.886-2.334A2.987 2.987 0 0 1 12 18zM2.808 1.393l17.677 17.678-1.414 1.414-3.682-3.68-.247.306A4.98 4.98 0 0 0 12 16a4.98 4.98 0 0 0-3.141 1.11l-1.885-2.334a7.963 7.963 0 0 1 4.622-1.766l-1.773-1.772a9.963 9.963 0 0 0-4.106 1.982L3.83 10.887A12.984 12.984 0 0 1 7.416 8.83L5.885 7.3a15 15 0 0 0-3.31 2.031L.689 6.997c.915-.74 1.903-1.391 2.952-1.942L1.393 2.808l1.415-1.415zM16.084 11.87l-3.868-3.867L12 8c3.095 0 5.937 1.081 8.17 2.887l-1.886 2.334a10 10 0 0 0-2.2-1.352zM12 3c4.285 0 8.22 1.497 11.31 3.997L21.426 9.33A14.937 14.937 0 0 0 12 6c-.572 0-1.136.032-1.69.094L7.723 3.511C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M600 300C635.7 300 668.5 287.5 694.3 266.7L600 150L505.7 266.7A149.35 149.35 0 0 0 600 300zM140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L769.4499999999999 359.7499999999999L757.0999999999999 344.4499999999998A249.00000000000003 249.00000000000003 0 0 1 600 400A249.00000000000003 249.00000000000003 0 0 1 442.95 344.5L348.7 461.2A398.15 398.15 0 0 0 579.8 549.5L491.15 638.1A498.15 498.15 0 0 1 285.85 539L191.5 655.65A649.2 649.2 0 0 0 370.8 758.5L294.25 835A750 750 0 0 1 128.75 733.45L34.45 850.15C80.2 887.1500000000001 129.6 919.7 182.05 947.25L69.65 1059.6L140.4 1130.35zM804.1999999999999 606.5L610.8 799.85L600 800C754.75 800 896.85 745.95 1008.5000000000002 655.65L914.2000000000002 538.95A500 500 0 0 1 804.2000000000002 606.55zM600 1050C814.25 1050 1011 975.15 1165.5 850.15L1071.3 733.5A746.85 746.85 0 0 1 600 900C571.4000000000001 900 543.2 898.4 515.5 895.3L386.15 1024.45C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"wifi-off-line":{"path":["M0 0h24v24H0z","M12 18c.714 0 1.37.25 1.886.666L12 21l-1.886-2.334A2.987 2.987 0 0 1 12 18zM2.808 1.393l17.677 17.678-1.414 1.414-5.18-5.18A5.994 5.994 0 0 0 12 15c-1.428 0-2.74.499-3.77 1.332l-1.256-1.556a7.963 7.963 0 0 1 4.622-1.766L9 10.414a10.969 10.969 0 0 0-3.912 2.029L3.83 10.887A12.984 12.984 0 0 1 7.416 8.83L5.132 6.545a16.009 16.009 0 0 0-3.185 2.007L.689 6.997c.915-.74 1.903-1.391 2.952-1.942L1.393 2.808l1.415-1.415zM14.5 10.285l-2.284-2.283L12 8c3.095 0 5.937 1.081 8.17 2.887l-1.258 1.556a10.96 10.96 0 0 0-4.412-2.158zM12 3c4.285 0 8.22 1.497 11.31 3.997l-1.257 1.555A15.933 15.933 0 0 0 12 5c-.878 0-1.74.07-2.58.207L7.725 3.51C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M600 300C635.7 300 668.5 287.5 694.3 266.7L600 150L505.7 266.7A149.35 149.35 0 0 0 600 300zM140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L694.55 434.7499999999999A299.70000000000005 299.70000000000005 0 0 1 600 450C528.5999999999999 450 463 425.05 411.5 383.4L348.7 461.2A398.15 398.15 0 0 0 579.8 549.5L450 679.3000000000001A548.45 548.45 0 0 1 254.4 577.85L191.5 655.65A649.2 649.2 0 0 0 370.8 758.5L256.6 872.75A800.45 800.45 0 0 1 97.35 772.4000000000001L34.45 850.15C80.2 887.1500000000001 129.6 919.7 182.05 947.25L69.65 1059.6L140.4 1130.35zM725 685.75L610.8000000000001 799.9L600 800C754.75 800 896.85 745.95 1008.5000000000002 655.65L945.6000000000003 577.8499999999999A548.0000000000001 548.0000000000001 0 0 1 725.0000000000002 685.7499999999999zM600 1050C814.25 1050 1011 975.15 1165.5 850.15L1102.65 772.4000000000001A796.65 796.65 0 0 1 600 950C556.1 950 513 946.5 471 939.65L386.25 1024.5C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"window-2-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 7H4v9h16v-9zm-5-4v2h4V6h-4z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 700H200V250H1000V700zM750 900V800H950V900H750z","horizAdvX":"1200"},"window-2-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 8H4v8h16v-8zm0-2V5H4v4h16zm-5-3h4v2h-4V6z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 650H200V250H1000V650zM1000 750V950H200V750H1000zM750 900H950V800H750V900z","horizAdvX":"1200"},"window-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 7H4v9h16v-9zM5 6v2h2V6H5zm4 0v2h2V6H9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 700H200V250H1000V700zM250 900V800H350V900H250zM450 900V800H550V900H450z","horizAdvX":"1200"},"window-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 8H4v8h16v-8zm0-2V5H4v4h16zM9 6h2v2H9V6zM5 6h2v2H5V6z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 650H200V250H1000V650zM1000 750V950H200V750H1000zM450 900H550V800H450V900zM250 900H350V800H250V900z","horizAdvX":"1200"},"windows-fill":{"path":["M0 0H24V24H0z","M3 5.479l7.377-1.016v7.127H3V5.48zm0 13.042l7.377 1.017v-7.04H3v6.023zm8.188 1.125L21 21v-8.502h-9.812v7.148zm0-15.292v7.236H21V3l-9.812 1.354z"],"unicode":"","glyph":"M150 926.05L518.8499999999999 976.85V620.5H150V926zM150 273.95L518.8499999999999 223.1V575.0999999999999H150V273.95zM559.4 217.6999999999999L1050 150V575.1H559.4V217.6999999999999zM559.4 982.3V620.5H1050V1050L559.4 982.3z","horizAdvX":"1200"},"windows-line":{"path":["M0 0H24V24H0z","M21 2.5v19l-18-2v-15l18-2zm-2 10.499L12 13v5.487l7 .778V13zm-14 4.71l5 .556V13l-5-.001v4.71zM19 11V4.735l-7 .777V11l7-.001zm-9-5.265L5 6.29V11L10 11V5.734z"],"unicode":"","glyph":"M1050 1075V125L150 225V975L1050 1075zM950 550.05L600 550V275.6499999999999L950 236.75V550zM250 314.5500000000001L500 286.75V550L250 550.05V314.5500000000001zM950 650V963.25L600 924.4V650L950 650.05zM500 913.25L250 885.5V650L500 650V913.3z","horizAdvX":"1200"},"windy-fill":{"path":["M0 0h24v24H0z","M10.5 17H4v-2h6.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 10.5 17zM5 11h13.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 18.5 13H5a3 3 0 0 1 0-6h8.5a1.5 1.5 0 1 0-1.405-2.027l-1.873-.702A3.501 3.501 0 0 1 17 5.5 3.5 3.5 0 0 1 13.5 9H5a1 1 0 1 0 0 2z"],"unicode":"","glyph":"M525 350H200V450H525A175 175 0 1 0 361.1 213.5L454.7499999999999 248.65A75 75 0 1 1 525 350zM250 650H925A175 175 0 1 0 761.1 413.5L854.75 448.65A75 75 0 1 1 925 550H250A150 150 0 0 0 250 850H675A75 75 0 1 1 604.75 951.35L511.1000000000001 986.45A175.04999999999998 175.04999999999998 0 0 0 850 925A175 175 0 0 0 675 750H250A50 50 0 1 1 250 650z","horizAdvX":"1200"},"windy-line":{"path":["M0 0h24v24H0z","M10.5 17H4v-2h6.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 10.5 17zM5 11h13.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 18.5 13H5a3 3 0 0 1 0-6h8.5a1.5 1.5 0 1 0-1.405-2.027l-1.873-.702A3.501 3.501 0 0 1 17 5.5 3.5 3.5 0 0 1 13.5 9H5a1 1 0 1 0 0 2z"],"unicode":"","glyph":"M525 350H200V450H525A175 175 0 1 0 361.1 213.5L454.7499999999999 248.65A75 75 0 1 1 525 350zM250 650H925A175 175 0 1 0 761.1 413.5L854.75 448.65A75 75 0 1 1 925 550H250A150 150 0 0 0 250 850H675A75 75 0 1 1 604.75 951.35L511.1000000000001 986.45A175.04999999999998 175.04999999999998 0 0 0 850 925A175 175 0 0 0 675 750H250A50 50 0 1 1 250 650z","horizAdvX":"1200"},"wireless-charging-fill":{"path":["M0 0L24 0 24 24 0 24z","M3.929 4.929l1.414 1.414C3.895 7.791 3 9.791 3 12c0 2.21.895 4.21 2.343 5.657L3.93 19.07C2.119 17.261 1 14.761 1 12s1.12-5.261 2.929-7.071zm16.142 0C21.881 6.739 23 9.239 23 12s-1.12 5.262-2.929 7.071l-1.414-1.414C20.105 16.209 21 14.209 21 12s-.895-4.208-2.342-5.656L20.07 4.93zM13 5v6h3l-5 8v-6H8l5-8zM6.757 7.757l1.415 1.415C7.448 9.895 7 10.895 7 12c0 1.105.448 2.105 1.172 2.828l-1.415 1.415C5.672 15.157 5 13.657 5 12c0-1.657.672-3.157 1.757-4.243zm10.487.001C18.329 8.844 19 10.344 19 12c0 1.657-.672 3.157-1.757 4.243l-1.415-1.415C16.552 14.105 17 13.105 17 12c0-1.104-.447-2.104-1.17-2.827l1.414-1.415z"],"unicode":"","glyph":"M196.45 953.55L267.15 882.85C194.75 810.45 150 710.45 150 600C150 489.5 194.75 389.5 267.15 317.15L196.5 246.5C105.95 336.9500000000001 50 461.95 50 600S106 863.05 196.45 953.55zM1003.55 953.55C1094.05 863.05 1150 738.05 1150 600S1094 336.9 1003.55 246.4500000000001L932.85 317.1500000000002C1005.25 389.5500000000001 1050 489.5500000000001 1050 600S1005.25 810.4000000000001 932.9 882.8L1003.5 953.5zM650 950V650H800L550 250V550H400L650 950zM337.85 812.1500000000001L408.6 741.4C372.4000000000001 705.25 350 655.25 350 600C350 544.75 372.4000000000001 494.75 408.6 458.6L337.85 387.85C283.6 442.15 250 517.15 250 600C250 682.85 283.6 757.85 337.85 812.1500000000001zM862.2 812.1C916.45 757.8 950 682.8000000000001 950 600C950 517.15 916.4 442.15 862.15 387.8499999999999L791.4 458.5999999999999C827.6 494.75 850 544.75 850 600C850 655.1999999999999 827.6500000000001 705.1999999999999 791.5 741.35L862.2 812.1z","horizAdvX":"1200"},"wireless-charging-line":{"path":["M0 0L24 0 24 24 0 24z","M3.929 4.929l1.414 1.414C3.895 7.791 3 9.791 3 12c0 2.21.895 4.21 2.343 5.657L3.93 19.07C2.119 17.261 1 14.761 1 12s1.12-5.261 2.929-7.071zm16.142 0C21.881 6.739 23 9.239 23 12s-1.12 5.262-2.929 7.071l-1.414-1.414C20.105 16.209 21 14.209 21 12s-.895-4.208-2.342-5.656L20.07 4.93zM13 5v6h3l-5 8v-6H8l5-8zM6.757 7.757l1.415 1.415C7.448 9.895 7 10.895 7 12c0 1.105.448 2.105 1.172 2.828l-1.415 1.415C5.672 15.157 5 13.657 5 12c0-1.657.672-3.157 1.757-4.243zm10.487.001C18.329 8.844 19 10.344 19 12c0 1.657-.672 3.157-1.757 4.243l-1.415-1.415C16.552 14.105 17 13.105 17 12c0-1.104-.447-2.104-1.17-2.827l1.414-1.415z"],"unicode":"","glyph":"M196.45 953.55L267.15 882.85C194.75 810.45 150 710.45 150 600C150 489.5 194.75 389.5 267.15 317.15L196.5 246.5C105.95 336.9500000000001 50 461.95 50 600S106 863.05 196.45 953.55zM1003.55 953.55C1094.05 863.05 1150 738.05 1150 600S1094 336.9 1003.55 246.4500000000001L932.85 317.1500000000002C1005.25 389.5500000000001 1050 489.5500000000001 1050 600S1005.25 810.4000000000001 932.9 882.8L1003.5 953.5zM650 950V650H800L550 250V550H400L650 950zM337.85 812.1500000000001L408.6 741.4C372.4000000000001 705.25 350 655.25 350 600C350 544.75 372.4000000000001 494.75 408.6 458.6L337.85 387.85C283.6 442.15 250 517.15 250 600C250 682.85 283.6 757.85 337.85 812.1500000000001zM862.2 812.1C916.45 757.8 950 682.8000000000001 950 600C950 517.15 916.4 442.15 862.15 387.8499999999999L791.4 458.5999999999999C827.6 494.75 850 544.75 850 600C850 655.1999999999999 827.6500000000001 705.1999999999999 791.5 741.35L862.2 812.1z","horizAdvX":"1200"},"women-fill":{"path":["M0 0h24v24H0z","M11 15.934A7.501 7.501 0 0 1 12 1a7.5 7.5 0 0 1 1 14.934V18h5v2h-5v4h-2v-4H6v-2h5v-2.066z"],"unicode":"","glyph":"M550 403.3000000000001A375.04999999999995 375.04999999999995 0 0 0 600 1150A375 375 0 0 0 650 403.3000000000001V300H900V200H650V0H550V200H300V300H550V403.3z","horizAdvX":"1200"},"women-line":{"path":["M0 0h24v24H0z","M11 15.934A7.501 7.501 0 0 1 12 1a7.5 7.5 0 0 1 1 14.934V18h5v2h-5v4h-2v-4H6v-2h5v-2.066zM12 14a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M550 403.3000000000001A375.04999999999995 375.04999999999995 0 0 0 600 1150A375 375 0 0 0 650 403.3000000000001V300H900V200H650V0H550V200H300V300H550V403.3zM600 500A275 275 0 1 1 600 1050A275 275 0 0 1 600 500z","horizAdvX":"1200"},"wubi-input":{"path":["M0 0h24v24H0z","M3 21v-2h3.662l1.234-7H5v-2h3.249l.881-5H4V3h16v2h-8.839l-.882 5H18v9h3v2H3zm13-9H9.927l-1.235 7H16v-7z"],"unicode":"","glyph":"M150 150V250H333.1L394.8 600H250V700H412.4500000000001L456.5000000000001 950H200V1050H1000V950H558.05L513.95 700H900V250H1050V150H150zM800 600H496.35L434.6 250H800V600z","horizAdvX":"1200"},"xbox-fill":{"path":["M0 0h24v24H0z","M5.418 19.527A9.956 9.956 0 0 0 12 22a9.967 9.967 0 0 0 6.585-2.473c1.564-1.593-3.597-7.257-6.585-9.514-2.985 2.257-8.15 7.921-6.582 9.514zm9.3-12.005c2.084 2.468 6.237 8.595 5.064 10.76A9.952 9.952 0 0 0 22 12.003a9.958 9.958 0 0 0-2.975-7.113s-.022-.018-.068-.035a.686.686 0 0 0-.235-.038c-.493 0-1.654.362-4.004 2.705zM5.045 4.856c-.048.017-.068.034-.072.035A9.963 9.963 0 0 0 2 12.003c0 2.379.832 4.561 2.218 6.278C3.05 16.11 7.2 9.988 9.284 7.523 6.934 5.178 5.771 4.818 5.28 4.818a.604.604 0 0 0-.234.039v-.002zM12 4.959S9.546 3.523 7.63 3.455c-.753-.027-1.212.246-1.268.282C8.149 2.538 10.049 2 11.987 2H12c1.945 0 3.838.538 5.638 1.737-.056-.038-.512-.31-1.266-.282-1.917.068-4.372 1.5-4.372 1.5v.004z"],"unicode":"","glyph":"M270.9000000000001 223.65A497.8 497.8 0 0 1 600 100A498.35 498.35 0 0 1 929.25 223.65C1007.45 303.3 749.4000000000001 586.4999999999999 600 699.3499999999999C450.75 586.4999999999999 192.5 303.3 270.9000000000001 223.65zM735.9 823.9C840.1 700.5 1047.75 394.15 989.1 285.9A497.59999999999997 497.59999999999997 0 0 1 1100 599.85A497.90000000000003 497.90000000000003 0 0 1 951.2499999999998 955.5S950.15 956.4 947.85 957.25A34.300000000000004 34.300000000000004 0 0 1 936.1 959.15C911.45 959.15 853.3999999999999 941.05 735.8999999999999 823.9000000000001zM252.25 957.2C249.85 956.35 248.85 955.5 248.65 955.45A498.15 498.15 0 0 1 100 599.85C100 480.9 141.6 371.8 210.9 285.9500000000001C152.5 394.5 360 700.6 464.2 823.85C346.7 941.1 288.55 959.1 264 959.1A30.2 30.2 0 0 1 252.3 957.15V957.25zM600 952.05S477.3 1023.85 381.5 1027.25C343.85 1028.6 320.9000000000001 1014.95 318.1 1013.15C407.45 1073.1 502.45 1100 599.35 1100H600C697.25 1100 791.9000000000001 1073.1 881.8999999999999 1013.15C879.0999999999999 1015.05 856.2999999999998 1028.65 818.6 1027.25C722.75 1023.85 600 952.25 600 952.25V952.05z","horizAdvX":"1200"},"xbox-line":{"path":["M0 0h24v24H0z","M4.797 15.485c1.124-2.52 3.2-5.44 4.487-6.962-1.248-1.246-2.162-1.931-2.818-2.3A7.977 7.977 0 0 0 4 12c0 1.25.286 2.432.797 3.485zm4.051-10.84C10.448 5.05 12 5.959 12 5.959v-.005s1.552-.904 3.151-1.31A7.974 7.974 0 0 0 12 4c-1.12 0-2.185.23-3.152.645zm8.686 1.578c-.655.37-1.568 1.055-2.816 2.3 1.287 1.523 3.362 4.441 4.486 6.961A7.968 7.968 0 0 0 20 12c0-2.27-.946-4.32-2.466-5.777zm.408 11.133c-1.403-2.236-4.09-4.944-5.942-6.343-1.85 1.4-4.539 4.108-5.941 6.345A7.98 7.98 0 0 0 12 20a7.98 7.98 0 0 0 5.942-2.644zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M239.85 425.75C296.05 551.75 399.85 697.7500000000001 464.1999999999999 773.85C401.8 836.1500000000001 356.1 870.4000000000001 323.3 888.85A398.84999999999997 398.84999999999997 0 0 1 200 600C200 537.5 214.3 478.4 239.85 425.75zM442.4 967.75C522.4 947.5 600 902.05 600 902.05V902.3S677.6 947.5 757.55 967.8A398.70000000000005 398.70000000000005 0 0 1 600 1000C544 1000 490.75 988.5 442.4 967.75zM876.6999999999999 888.85C843.9499999999999 870.35 798.3 836.1 735.9 773.85C800.25 697.7 903.9999999999998 551.8000000000001 960.2 425.8A398.40000000000003 398.40000000000003 0 0 1 1000 600C1000 713.5 952.7 816 876.6999999999999 888.85zM897.1 332.2000000000001C826.95 444.0000000000001 692.6 579.4000000000001 600 649.3500000000001C507.5 579.35 373.05 443.9500000000001 302.95 332.1000000000002A399 399 0 0 1 600 200A399 399 0 0 1 897.1 332.2zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"xing-fill":{"path":["M0 0h24v24H0z","M20.462 3.23c.153 0 .307.078.384.155a.49.49 0 0 1 0 .461l-6.077 10.77 3.846 7.076a.49.49 0 0 1 0 .462.588.588 0 0 1-.384.154h-2.77c-.384 0-.615-.308-.769-.539l-3.923-7.154C11 14.308 16.923 3.77 16.923 3.77c.154-.307.385-.538.77-.538h2.769zM8.923 7c.385 0 .615.308.77.538l1.922 3.308c-.153.154-3 5.23-3 5.23-.153.232-.384.54-.769.54H5.154a.588.588 0 0 1-.385-.154.49.49 0 0 1 0-.462l2.846-5.154-1.846-3.23a.49.49 0 0 1 0-.462A.588.588 0 0 1 6.154 7h2.77z"],"unicode":"","glyph":"M1023.1 1038.5C1030.75 1038.5 1038.4499999999998 1034.6 1042.3 1030.75A24.5 24.5 0 0 0 1042.3 1007.7L738.45 469.2L930.7500000000002 115.4000000000001A24.5 24.5 0 0 0 930.7500000000002 92.3A29.39999999999999 29.39999999999999 0 0 0 911.55 84.5999999999999H773.0500000000001C753.8500000000001 84.5999999999999 742.3000000000001 100 734.6000000000001 111.5500000000002L538.45 469.2500000000001C550 484.6 846.1499999999999 1011.5 846.1499999999999 1011.5C853.8499999999999 1026.85 865.4 1038.4 884.6499999999999 1038.4H1023.0999999999998zM446.15 850C465.4 850 476.9 834.6 484.65 823.0999999999999L580.75 657.7C573.1 650 430.75 396.2 430.75 396.2C423.1 384.6 411.55 369.2000000000001 392.3 369.2000000000001H257.7A29.39999999999999 29.39999999999999 0 0 0 238.45 376.9A24.5 24.5 0 0 0 238.45 400L380.75 657.7L288.45 819.2A24.5 24.5 0 0 0 288.45 842.3A29.39999999999999 29.39999999999999 0 0 0 307.7 850H446.2z","horizAdvX":"1200"},"xing-line":{"path":["M0 0h24v24H0z","M20.444 3.5L13.81 14.99 17.857 22h-2.31l-4.045-7.009H11.5L18.134 3.5h2.31zM8.31 7l2.422 4.196-.002.001L7.67 16.5H5.361l3.06-5.305L6.002 7H8.31z"],"unicode":"","glyph":"M1022.2 1025L690.5 450.5L892.8499999999999 100H777.3499999999999L575.0999999999999 450.45H575L906.7 1025H1022.2zM415.5 850L536.6 640.2L536.5 640.1500000000001L383.5 375H268.05L421.05 640.25L300.1 850H415.5z","horizAdvX":"1200"},"youtube-fill":{"path":["M0 0h24v24H0z","M21.543 6.498C22 8.28 22 12 22 12s0 3.72-.457 5.502c-.254.985-.997 1.76-1.938 2.022C17.896 20 12 20 12 20s-5.893 0-7.605-.476c-.945-.266-1.687-1.04-1.938-2.022C2 15.72 2 12 2 12s0-3.72.457-5.502c.254-.985.997-1.76 1.938-2.022C6.107 4 12 4 12 4s5.896 0 7.605.476c.945.266 1.687 1.04 1.938 2.022zM10 15.5l6-3.5-6-3.5v7z"],"unicode":"","glyph":"M1077.1499999999999 875.0999999999999C1100 786 1100 600 1100 600S1100 414 1077.1499999999999 324.9000000000001C1064.4499999999998 275.6500000000001 1027.3 236.9 980.25 223.8000000000002C894.8000000000001 200 600 200 600 200S305.35 200 219.75 223.8C172.5 237.0999999999999 135.4 275.8 122.85 324.8999999999999C100 414 100 600 100 600S100 786 122.85 875.0999999999999C135.55 924.35 172.7 963.1 219.75 976.2C305.35 1000 600 1000 600 1000S894.8000000000001 1000 980.25 976.2C1027.5 962.9 1064.6000000000001 924.2 1077.1499999999999 875.1zM500 425L800 600L500 775V425z","horizAdvX":"1200"},"youtube-line":{"path":["M0 0h24v24H0z","M19.606 6.995c-.076-.298-.292-.523-.539-.592C18.63 6.28 16.5 6 12 6s-6.628.28-7.069.403c-.244.068-.46.293-.537.592C4.285 7.419 4 9.196 4 12s.285 4.58.394 5.006c.076.297.292.522.538.59C5.372 17.72 7.5 18 12 18s6.629-.28 7.069-.403c.244-.068.46-.293.537-.592C19.715 16.581 20 14.8 20 12s-.285-4.58-.394-5.005zm1.937-.497C22 8.28 22 12 22 12s0 3.72-.457 5.502c-.254.985-.997 1.76-1.938 2.022C17.896 20 12 20 12 20s-5.893 0-7.605-.476c-.945-.266-1.687-1.04-1.938-2.022C2 15.72 2 12 2 12s0-3.72.457-5.502c.254-.985.997-1.76 1.938-2.022C6.107 4 12 4 12 4s5.896 0 7.605.476c.945.266 1.687 1.04 1.938 2.022zM10 15.5v-7l6 3.5-6 3.5z"],"unicode":"","glyph":"M980.3 850.25C976.5 865.15 965.7 876.4 953.35 879.8499999999999C931.5 886 825 900 600 900S268.6 886 246.55 879.8499999999999C234.35 876.45 223.55 865.2 219.7 850.25C214.25 829.05 200 740.2 200 600S214.25 371.0000000000001 219.7 349.7000000000001C223.5 334.8499999999999 234.3 323.6 246.6 320.2000000000001C268.6 314 375 300 600 300S931.45 314 953.45 320.15C965.65 323.55 976.45 334.8 980.3 349.7499999999999C985.75 370.9500000000001 1000 460 1000 600S985.75 829 980.3 850.25zM1077.15 875.0999999999999C1100 786 1100 600 1100 600S1100 414 1077.1499999999999 324.9000000000001C1064.4499999999998 275.6500000000001 1027.3 236.9 980.25 223.8000000000002C894.8000000000001 200 600 200 600 200S305.35 200 219.75 223.8C172.5 237.0999999999999 135.4 275.8 122.85 324.8999999999999C100 414 100 600 100 600S100 786 122.85 875.0999999999999C135.55 924.35 172.7 963.1 219.75 976.2C305.35 1000 600 1000 600 1000S894.8000000000001 1000 980.25 976.2C1027.5 962.9 1064.6000000000001 924.2 1077.1499999999999 875.1zM500 425V775L800 600L500 425z","horizAdvX":"1200"},"zcool-fill":{"path":["M0 0h24v24H0z","M9.902 21.839A7.903 7.903 0 0 1 2 13.935C2 10.29 4.467 7.06 7.824 6.31 11.745 5.43 13.528 4.742 14.9 2c.998 1.935.323 3.71 0 4.677 4.698-1.129 6.371-3.28 6.774-3.548 0 3.952-1.231 6.452-2.419 8.065 1.476-.056 2.009-.484 2.744-.587-.325 1.448-1.5 3.49-4.33 4.795a7.905 7.905 0 0 1-7.768 6.437zm3.71-6.452c0 .323-.053.484-.403.484l-3.15.002 2.96-3.248c.86-.86.86-1.29.86-2.388 0-.334-.048-.717.048-1.05.047-.144-.048-.192-.191-.144-.335.095-.908.095-1.863.095H7.575c-.239 0-.335-.143-.239-.334 0-.048 0-.191-.096-.191-.62.286-.764 1.576-.716 2.388 0 .43.239.669.573.669h3.391l-3.486 3.725c-.24.287-.478.669-.478 1.194v1.051c0 .478.287.764.812.86h5.988c.555 0 .933-.233.933-.855v-1.129c0-.208 0-.968-.645-1.129z"],"unicode":"","glyph":"M495.1 108.0500000000002A395.15 395.15 0 0 0 100 503.25C100 685.5 223.35 847 391.2 884.5C587.25 928.5 676.4 962.9 745 1100C794.9 1003.25 761.1500000000001 914.5 745 866.1500000000001C979.9 922.6 1063.55 1030.15 1083.7 1043.55C1083.7 845.95 1022.1499999999997 720.95 962.75 640.3000000000001C1036.55 643.1 1063.2 664.5 1099.95 669.6500000000001C1083.7 597.25 1024.95 495.15 883.4499999999998 429.9000000000001A395.25000000000006 395.25000000000006 0 0 0 495.0499999999998 108.0500000000002zM680.5999999999999 430.6500000000001C680.5999999999999 414.5 677.9499999999998 406.4500000000001 660.4499999999999 406.4500000000001L502.9499999999999 406.35L650.9499999999999 568.75C693.9499999999999 611.75 693.9499999999999 633.25 693.9499999999999 688.15C693.9499999999999 704.8499999999999 691.5499999999998 724 696.3499999999999 740.6500000000001C698.6999999999999 747.85 693.9499999999999 750.25 686.7999999999998 747.85C670.0499999999998 743.1 641.3999999999999 743.1 593.6499999999999 743.1H378.75C366.8 743.1 362 750.25 366.8 759.8C366.8 762.2 366.8 769.35 362 769.35C331 755.0500000000001 323.8 690.55 326.2 649.95C326.2 628.45 338.15 616.5 354.85 616.5H524.4L350.1 430.25C338.0999999999999 415.9 326.2 396.8 326.2 370.5500000000001V318.0000000000001C326.2 294.1 340.55 279.8000000000002 366.8 275.0000000000003H666.2C693.9499999999999 275.0000000000003 712.85 286.6500000000002 712.85 317.7500000000003V374.2000000000003C712.85 384.6000000000002 712.85 422.6000000000003 680.6 430.6500000000002z","horizAdvX":"1200"},"zcool-line":{"path":["M0 0h24v24H0z","M8.26 8.26C5.838 8.803 4 11.208 4 13.935a5.903 5.903 0 0 0 11.703 1.098 2 2 0 0 1 1.129-1.448c.482-.222.91-.473 1.284-.743-.863-.603-1.186-1.862-.47-2.834a9.796 9.796 0 0 0 1.391-2.651 19.04 19.04 0 0 1-3.668 1.265c-1.261.303-2.392-.638-2.466-1.814-1.18.572-2.67 1.01-4.642 1.452zm10.996 2.934c1.166 0 1.917-.424 2.744-.587-.325 1.448-1.5 3.49-4.33 4.795A7.903 7.903 0 0 1 2 13.936C2 10.29 4.467 7.06 7.824 6.308 11.745 5.43 13.528 4.742 14.9 2c.689 1.333.689 2.892 0 4.677 2.816-.67 5.074-1.852 6.774-3.548 0 4.802-1.822 7.186-2.419 8.065zm-5.84 3.932c.584.145.584.832.584 1.02v1.022c0 .561-.342.773-.844.773H7.742c-.475-.087-.734-.346-.734-.778v-.95c0-.475.216-.82.432-1.08l3.152-3.369H7.526c-.302 0-.518-.216-.518-.604-.044-.735.086-1.9.647-2.16.087 0 .087.13.087.173-.087.173 0 .302.216.302h3.887c.863 0 1.381 0 1.684-.086.13-.043.216 0 .173.13-.087.302-.044.647-.044.95 0 .993 0 1.382-.777 2.159l-2.678 2.937 2.85-.002c.316 0 .364-.146.364-.437z"],"unicode":"","glyph":"M413 787C291.9 759.8499999999999 200 639.6 200 503.25A295.15 295.15 0 0 1 785.15 448.3499999999999A100 100 0 0 0 841.6 520.75C865.7 531.8499999999999 887.1 544.4 905.8 557.9C862.65 588.05 846.5 651 882.3000000000001 699.5999999999999A489.79999999999995 489.79999999999995 0 0 1 951.85 832.1499999999999A952 952 0 0 0 768.45 768.8999999999999C705.4 753.7499999999999 648.85 800.8 645.15 859.5999999999999C586.15 831 511.6499999999999 809.0999999999999 413.05 787zM962.8 640.3000000000001C1021.1 640.3000000000001 1058.65 661.5 1100 669.6500000000001C1083.75 597.25 1025 495.15 883.5000000000001 429.9000000000001A395.15 395.15 0 0 0 100 503.2C100 685.5 223.35 847 391.2 884.6C587.25 928.5 676.4 962.9 745 1100C779.45 1033.35 779.45 955.4 745 866.1500000000001C885.8000000000001 899.6500000000001 998.7 958.75 1083.7 1043.55C1083.7 803.45 992.6 684.25 962.75 640.3000000000001zM670.8000000000001 443.7000000000001C700 436.4500000000001 700 402.1 700 392.7V341.6C700 313.5500000000001 682.9 302.9500000000001 657.8000000000001 302.9500000000001H387.1C363.35 307.3000000000001 350.4 320.25 350.4 341.85V389.3499999999999C350.4 413.0999999999999 361.2 430.3499999999999 372 443.3499999999999L529.6 611.8H376.3C361.2 611.8 350.4 622.5999999999999 350.4 641.9999999999999C348.2000000000001 678.7499999999999 354.7 737 382.75 749.9999999999999C387.1 749.9999999999999 387.1 743.4999999999999 387.1 741.3499999999999C382.75 732.6999999999999 387.1 726.25 397.9000000000001 726.25H592.25C635.4 726.25 661.3000000000001 726.25 676.45 730.55C682.95 732.6999999999999 687.25 730.55 685.1 724.05C680.75 708.9499999999999 682.9 691.6999999999998 682.9 676.55C682.9 626.9 682.9 607.4499999999999 644.05 568.6L510.15 421.75L652.65 421.85C668.45 421.85 670.85 429.1500000000001 670.85 443.7000000000001z","horizAdvX":"1200"},"zhihu-fill":{"path":["M0 0h24v24H0z","M13.373 18.897h1.452l.478 1.637 2.605-1.637h3.07V5.395h-7.605v13.502zM14.918 6.86h4.515v10.57h-1.732l-1.73 1.087-.314-1.084-.739-.003V6.861zm-2.83 4.712H8.846a70.3 70.3 0 0 0 .136-4.56h3.172s.122-1.4-.532-1.384H6.135c.216-.814.488-1.655.813-2.524 0 0-1.493 0-2 1.339-.211.552-.82 2.677-1.904 4.848.365-.04 1.573-.073 2.284-1.378.131-.366.156-.413.318-.902h1.79c0 .651-.074 4.151-.104 4.558h-3.24c-.729 0-.965 1.466-.965 1.466h4.066C6.92 16.131 5.456 18.74 2.8 20.8c1.27.363 2.536-.057 3.162-.614 0 0 1.425-1.297 2.206-4.298l3.346 4.03s.49-1.668-.077-2.481c-.47-.554-1.74-2.052-2.281-2.595l-.907.72c.27-.867.433-1.71.488-2.524h3.822s-.005-1.466-.47-1.466z"],"unicode":"","glyph":"M668.65 255.1500000000001H741.25L765.15 173.3L895.3999999999999 255.1500000000001H1048.8999999999999V930.25H668.6499999999999V255.1500000000001zM745.9 857H971.65V328.5H885.0500000000001L798.55 274.15L782.85 328.35L745.9 328.5V856.95zM604.4 621.4000000000001H442.3A3514.9999999999995 3514.9999999999995 0 0 1 449.1 849.4000000000001H607.7S613.8 919.4 581.1 918.6H306.75C317.55 959.3 331.15 1001.35 347.4 1044.8C347.4 1044.8 272.75 1044.8 247.4 977.85C236.85 950.25 206.4 844 152.2 735.45C170.45 737.4499999999999 230.85 739.1 266.4 804.3499999999999C272.95 822.65 274.2 825 282.3 849.45H371.8C371.8 816.9 368.1 641.9000000000001 366.6 621.5500000000001H204.5999999999999C168.1499999999999 621.5500000000001 156.3499999999999 548.2500000000001 156.3499999999999 548.2500000000001H359.6499999999999C346 393.4500000000001 272.8 263.0000000000001 140 160C203.5 141.8499999999999 266.8 162.8499999999999 298.1 190.7000000000001C298.1 190.7000000000001 369.35 255.5500000000001 408.4 405.6L575.6999999999999 204.1S600.1999999999999 287.5 571.85 328.1500000000001C548.3499999999999 355.85 484.85 430.7500000000001 457.8 457.9000000000002L412.45 421.9000000000001C425.95 465.2500000000001 434.0999999999999 507.4000000000002 436.8499999999999 548.1000000000001H627.9499999999998S627.6999999999998 621.4000000000001 604.4499999999998 621.4000000000001z","horizAdvX":"1200"},"zhihu-line":{"path":["M0 0h24v24H0z","M12.344 17.963l-1.688 1.074-2.131-3.35c-.44 1.402-1.172 2.665-2.139 3.825-.402.483-.82.918-1.301 1.375-.155.147-.775.717-.878.82l-1.414-1.414c.139-.139.787-.735.915-.856.43-.408.795-.79 1.142-1.206 1.266-1.518 2.03-3.21 2.137-5.231H3v-2h4V7h-.868c-.689 1.266-1.558 2.222-2.618 2.857L2.486 8.143c1.395-.838 2.425-2.604 3.038-5.36l1.952.434c-.14.633-.303 1.227-.489 1.783H11.5v2H9v4h2.5v2H9.185l3.159 4.963zm3.838-.07L17.298 17H19V7h-4v10h.736l.446.893zM13 5h8v14h-3l-2.5 2-1-2H13V5z"],"unicode":"","glyph":"M617.1999999999999 301.8499999999999L532.8 248.1499999999999L426.25 415.6499999999999C404.25 345.5499999999999 367.6499999999999 282.3999999999999 319.3 224.3999999999998C299.2 200.2499999999998 278.3 178.4999999999999 254.25 155.6499999999999C246.5 148.3 215.5 119.8 210.3499999999999 114.6499999999999L139.65 185.3499999999999C146.6 192.2999999999999 179 222.0999999999998 185.4 228.15C206.9 248.55 225.15 267.6499999999999 242.5 288.45C305.8 364.3499999999999 344 448.95 349.35 549.9999999999999H150V649.9999999999999H350V850H306.6C272.15 786.7 228.7 738.9000000000001 175.7 707.1500000000001L124.3 792.8499999999999C194.05 834.75 245.55 923.05 276.2 1060.85L373.8 1039.15C366.8 1007.5 358.65 977.8 349.35 950H575V850H450V650H575V550H459.25L617.2 301.8499999999999zM809.0999999999999 305.3499999999999L864.8999999999999 350H950V850H750V350H786.8000000000001L809.1000000000001 305.3499999999999zM650 950H1050V250H900L775 150L725 250H650V950z","horizAdvX":"1200"},"zoom-in-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zM10 10H7v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM500 700H350V600H500V450H600V600H750V700H600V850H500V700z","horizAdvX":"1200"},"zoom-in-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15zM10 10V7h2v3h3v2h-3v3h-2v-3H7v-2h3z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001zM500 700V850H600V700H750V600H600V450H500V600H350V700H500z","horizAdvX":"1200"},"zoom-out-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zM7 10v2h8v-2H7z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM350 700V600H750V700H350z","horizAdvX":"1200"},"zoom-out-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15zM7 10h8v2H7v-2z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001zM350 700H750V600H350V700z","horizAdvX":"1200"},"zzz-fill":{"path":["M0 0H24V24H0z","M11 11v2l-5.327 6H11v2H3v-2l5.326-6H3v-2h8zm10-8v2l-5.327 6H21v2h-8v-2l5.326-6H13V3h8z"],"unicode":"","glyph":"M550 650V550L283.65 250H550V150H150V250L416.3 550H150V650H550zM1050 1050V950L783.65 650H1050V550H650V650L916.3 950H650V1050H1050z","horizAdvX":"1200"},"zzz-line":{"path":["M0 0H24V24H0z","M11 11v2l-5.327 6H11v2H3v-2l5.326-6H3v-2h8zm10-8v2l-5.327 6H21v2h-8v-2l5.326-6H13V3h8z"],"unicode":"","glyph":"M550 650V550L283.65 250H550V150H150V250L416.3 550H150V650H550zM1050 1050V950L783.65 650H1050V550H650V650L916.3 950H650V1050H1050z","horizAdvX":"1200"}} \ No newline at end of file diff --git a/ui/dist/fonts/remixicon/remixicon.svg b/ui/dist/fonts/remixicon/remixicon.svg deleted file mode 100644 index a3483349bb02bb75343d02fa9c7be478fa64e18e..0000000000000000000000000000000000000000 --- a/ui/dist/fonts/remixicon/remixicon.svg +++ /dev/null @@ -1,6835 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ui/dist/fonts/remixicon/remixicon.symbol.svg b/ui/dist/fonts/remixicon/remixicon.symbol.svg deleted file mode 100644 index 2522b6cf960fd6a69845340dddc91821df3f5540..0000000000000000000000000000000000000000 --- a/ui/dist/fonts/remixicon/remixicon.symbol.svg +++ /dev/null @@ -1,11356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ui/dist/fonts/remixicon/remixicon.ttf b/ui/dist/fonts/remixicon/remixicon.ttf deleted file mode 100644 index c461f40e1fd354885d0291e58cc38522cc476082..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/remixicon/remixicon.ttf and /dev/null differ diff --git a/ui/dist/fonts/remixicon/remixicon.woff b/ui/dist/fonts/remixicon/remixicon.woff deleted file mode 100644 index 62a756bd30d9e0b3214fd459b18fa87d0e6046fe..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/remixicon/remixicon.woff and /dev/null differ diff --git a/ui/dist/fonts/remixicon/remixicon.woff2 b/ui/dist/fonts/remixicon/remixicon.woff2 deleted file mode 100644 index 89a0b99ec69859ae7275c1eb548bd206a19ad9a0..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/remixicon/remixicon.woff2 and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff deleted file mode 100644 index a47ff7a4d5eabb43eb76f7d123ce06c27632e8a3..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2 b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2 deleted file mode 100644 index fa47ce3b35760ccf45a892f5a272d57d72fd5412..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2 and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff deleted file mode 100644 index 991af33e62367689cca30364f9bed635dd9cdd33..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2 b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2 deleted file mode 100644 index 24d31a67adba439186b26d4ad27aa04424d1c482..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2 and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff deleted file mode 100644 index 8a6441395e473d5051e974fb6580d42a58373db8..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2 b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2 deleted file mode 100644 index 85d5600f212c0fc70df7073e9ca95ce32223f820..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2 and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff deleted file mode 100644 index 353d68c2fb92b62df64250f0be591661e4eb50f3..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2 b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2 deleted file mode 100644 index be6b9a79aa4e61a10acb8aa1b6f44252d94c2ce1..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2 and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff deleted file mode 100644 index e4a7bb928e0f91a76330110b988a23943115f9c3..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2 b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2 deleted file mode 100644 index c39c467e3f67134a9cb2575be3f4609e9d6a4de7..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2 and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff deleted file mode 100644 index a8dbc9a5994bcf4157052f087ded3cc29a7edc6e..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff and /dev/null differ diff --git a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2 b/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2 deleted file mode 100644 index e39d1b48b6d7b84c6bf13e2e24cd242d8ad48691..0000000000000000000000000000000000000000 Binary files a/ui/dist/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2 and /dev/null differ diff --git a/ui/dist/images/avatars/avatar0.svg b/ui/dist/images/avatars/avatar0.svg deleted file mode 100644 index c950e612cea15c2f5d3bbe200f495b33ea38f145..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar0.svg +++ /dev/null @@ -1 +0,0 @@ -Mary Roebling diff --git a/ui/dist/images/avatars/avatar1.svg b/ui/dist/images/avatars/avatar1.svg deleted file mode 100644 index 4293650428e853ea5712e0a57896ded2cece2735..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar1.svg +++ /dev/null @@ -1 +0,0 @@ -Nellie Bly diff --git a/ui/dist/images/avatars/avatar2.svg b/ui/dist/images/avatars/avatar2.svg deleted file mode 100644 index b9847d2bfc081a9ef2265cb7285038c315e26a35..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar2.svg +++ /dev/null @@ -1 +0,0 @@ -Elizabeth Peratrovich diff --git a/ui/dist/images/avatars/avatar3.svg b/ui/dist/images/avatars/avatar3.svg deleted file mode 100644 index a59f1d7982e0d548f03d9d75043d6225916742f9..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar3.svg +++ /dev/null @@ -1 +0,0 @@ -Amelia Boynton diff --git a/ui/dist/images/avatars/avatar4.svg b/ui/dist/images/avatars/avatar4.svg deleted file mode 100644 index 8722ef34701621c85224efbecce105efc2662678..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar4.svg +++ /dev/null @@ -1 +0,0 @@ -Victoria Woodhull diff --git a/ui/dist/images/avatars/avatar5.svg b/ui/dist/images/avatars/avatar5.svg deleted file mode 100644 index 5147a3ffe1e6eb7ad9a0907164a150fe908460b1..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar5.svg +++ /dev/null @@ -1 +0,0 @@ -Chien-Shiung diff --git a/ui/dist/images/avatars/avatar6.svg b/ui/dist/images/avatars/avatar6.svg deleted file mode 100644 index d0252d7aa0fe5b16ea7ac608f75b0855a6b286ef..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar6.svg +++ /dev/null @@ -1 +0,0 @@ -Hetty Green diff --git a/ui/dist/images/avatars/avatar7.svg b/ui/dist/images/avatars/avatar7.svg deleted file mode 100644 index fa3350f7affd4a86f27bd6806637f5f69bf5e248..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar7.svg +++ /dev/null @@ -1 +0,0 @@ -Elizabeth Peratrovich diff --git a/ui/dist/images/avatars/avatar8.svg b/ui/dist/images/avatars/avatar8.svg deleted file mode 100644 index fa36d56b201e214efef26dbd0f3caa547b02b1b9..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar8.svg +++ /dev/null @@ -1 +0,0 @@ -Jane Johnston diff --git a/ui/dist/images/avatars/avatar9.svg b/ui/dist/images/avatars/avatar9.svg deleted file mode 100644 index 35a648f081e63dac8b4426bc6961fed9d2813578..0000000000000000000000000000000000000000 --- a/ui/dist/images/avatars/avatar9.svg +++ /dev/null @@ -1 +0,0 @@ -Virginia Apgar diff --git a/ui/dist/images/favicon/android-chrome-192x192.png b/ui/dist/images/favicon/android-chrome-192x192.png deleted file mode 100644 index 699777f34826cdc6bb21a8e190cd356fcaf1a94d..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/android-chrome-192x192.png and /dev/null differ diff --git a/ui/dist/images/favicon/android-chrome-512x512.png b/ui/dist/images/favicon/android-chrome-512x512.png deleted file mode 100644 index 5e6b696e96fca8b16c322b22fda3026e3bedbb6f..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/android-chrome-512x512.png and /dev/null differ diff --git a/ui/dist/images/favicon/apple-touch-icon.png b/ui/dist/images/favicon/apple-touch-icon.png deleted file mode 100644 index 1e41b7917a858738767c3c10ba1fc84d055e9c26..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/apple-touch-icon.png and /dev/null differ diff --git a/ui/dist/images/favicon/browserconfig.xml b/ui/dist/images/favicon/browserconfig.xml deleted file mode 100644 index 1b34ba8b5a2039b36c04e4a7ce9bc6b5f1fbcd9c..0000000000000000000000000000000000000000 --- a/ui/dist/images/favicon/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #ffffff - - - diff --git a/ui/dist/images/favicon/favicon-16x16.png b/ui/dist/images/favicon/favicon-16x16.png deleted file mode 100644 index 9ab99725626d5e850a2c44ce45733c03e8ffe843..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/favicon-16x16.png and /dev/null differ diff --git a/ui/dist/images/favicon/favicon-32x32.png b/ui/dist/images/favicon/favicon-32x32.png deleted file mode 100644 index e6520daab2ed9955cc1ceddc99c5d0767fec3f97..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/favicon-32x32.png and /dev/null differ diff --git a/ui/dist/images/favicon/favicon.ico b/ui/dist/images/favicon/favicon.ico deleted file mode 100644 index a43854ebf8a76aac1f6bff35ad366620b2a90cb6..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/favicon.ico and /dev/null differ diff --git a/ui/dist/images/favicon/mstile-144x144.png b/ui/dist/images/favicon/mstile-144x144.png deleted file mode 100644 index 31f31a28ee6a42eb7568d5898f15619bb07435c8..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/mstile-144x144.png and /dev/null differ diff --git a/ui/dist/images/favicon/mstile-150x150.png b/ui/dist/images/favicon/mstile-150x150.png deleted file mode 100644 index 5f2ea4e1a7f163f829e199410754fa2877710acb..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/mstile-150x150.png and /dev/null differ diff --git a/ui/dist/images/favicon/mstile-310x150.png b/ui/dist/images/favicon/mstile-310x150.png deleted file mode 100644 index 6c0b26604196e7ef97ea71edfb4fc84229802a7a..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/mstile-310x150.png and /dev/null differ diff --git a/ui/dist/images/favicon/mstile-310x310.png b/ui/dist/images/favicon/mstile-310x310.png deleted file mode 100644 index 6dc4705d98a978c568422c02401793af4efc99bd..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/mstile-310x310.png and /dev/null differ diff --git a/ui/dist/images/favicon/mstile-70x70.png b/ui/dist/images/favicon/mstile-70x70.png deleted file mode 100644 index d59d662b30ae93ace98a1dfd9db3f9bf5efa6782..0000000000000000000000000000000000000000 Binary files a/ui/dist/images/favicon/mstile-70x70.png and /dev/null differ diff --git a/ui/dist/images/favicon/safari-pinned-tab.svg b/ui/dist/images/favicon/safari-pinned-tab.svg deleted file mode 100644 index 69d5d722630ef76900455599a4b6d8daa7b58771..0000000000000000000000000000000000000000 --- a/ui/dist/images/favicon/safari-pinned-tab.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - - - diff --git a/ui/dist/images/favicon/site.webmanifest b/ui/dist/images/favicon/site.webmanifest deleted file mode 100644 index c9d27bd22eafb08a92cfe0f72519d1753ca3bf92..0000000000000000000000000000000000000000 --- a/ui/dist/images/favicon/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "", - "short_name": "", - "icons": [ - { - "src": "/_/images/favicon/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/_/images/favicon/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/ui/dist/images/logo.svg b/ui/dist/images/logo.svg deleted file mode 100644 index 5b5de956be9559dcd24af65b67875992b244f2c1..0000000000000000000000000000000000000000 --- a/ui/dist/images/logo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/ui/dist/index.html b/ui/dist/index.html deleted file mode 100644 index 89eceac74a18a4541c269ba9f37f75200314e528..0000000000000000000000000000000000000000 --- a/ui/dist/index.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - PocketBase - - - - - - - - - - - - - - - - -
    - - - diff --git a/ui/embed.go b/ui/embed.go deleted file mode 100644 index 5d1cb45fd63a60914adba5a4708289f91b2c9952..0000000000000000000000000000000000000000 --- a/ui/embed.go +++ /dev/null @@ -1,14 +0,0 @@ -// Package ui handles the PocketBase Admin frontend embedding. -package ui - -import ( - "embed" - - "github.com/labstack/echo/v5" -) - -//go:embed all:dist -var distDir embed.FS - -// DistDirFS contains the embedded dist directory files (without the "dist" prefix) -var DistDirFS = echo.MustSubFS(distDir, "dist") diff --git a/ui/index.html b/ui/index.html deleted file mode 100644 index 1f56ccfa7d021884d60b72bede37403615305986..0000000000000000000000000000000000000000 --- a/ui/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - PocketBase - - - - - - - - - - - - - - -
    - - - diff --git a/ui/package-lock.json b/ui/package-lock.json deleted file mode 100644 index 59cd07daa9e935282b30e9ec6fd88ab903d15cd6..0000000000000000000000000000000000000000 --- a/ui/package-lock.json +++ /dev/null @@ -1,1986 +0,0 @@ -{ - "name": "pocketbase-admin", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "pocketbase-admin", - "devDependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/lang-html": "^6.1.0", - "@codemirror/lang-javascript": "^6.0.2", - "@codemirror/language": "^6.0.0", - "@codemirror/legacy-modes": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@sveltejs/vite-plugin-svelte": "^1.0.1", - "chart.js": "^3.7.1", - "chartjs-adapter-luxon": "^1.2.0", - "luxon": "^2.3.2", - "pocketbase": "^0.8.2", - "prismjs": "^1.28.0", - "sass": "^1.45.0", - "svelte": "^3.44.0", - "svelte-flatpickr": "^3.2.6", - "svelte-spa-router": "^3.2.0", - "vite": "^3.0.0" - } - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.3.4.tgz", - "integrity": "sha512-irxKsTSjS0OkfMWWt9YxtNK97++/E+XIHfKnRpSVfZyHzda/amYF0BR+T8mMkrGQWidx2zApxHx08GT13egyQA==", - "dev": true, - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.6.0", - "@lezer/common": "^1.0.0" - }, - "peerDependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.1.2.tgz", - "integrity": "sha512-sO3jdX1s0pam6lIdeSJLMN3DQ6mPEbM4yLvyKkdqtmd/UDwhXA5+AwFJ89rRXm6vTeOXBsE5cAmlos/t7MJdgg==", - "dev": true, - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-css": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.0.1.tgz", - "integrity": "sha512-rlLq1Dt0WJl+2epLQeAsfqIsx3lGu4HStHCJu95nGGuz2P2fNugbU3dQYafr2VRjM4eMC9HviI6jvS98CNtG5w==", - "dev": true, - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/css": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-html": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.0.tgz", - "integrity": "sha512-HHged0d9AQ/mpjYLTYDVdtI7235dO0COFNgc5uuiGokgjWx3L/sjMSw5aS/Nk7JG++LhsohG5HMNTCuqAq3Tcg==", - "dev": true, - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.2.2", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-javascript": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.1.1.tgz", - "integrity": "sha512-F4+kiuC5d5dUSJmff96tJQwpEXs/tX/4bapMRnZWW6bHKK1Fx6MunTzopkCUWRa9bF87GPmb9m7Qtg7Yv8f3uQ==", - "dev": true, - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.3.1.tgz", - "integrity": "sha512-MK+G1QKaGfSEUg9YEFaBkMBI6j1ge4VMBPZv9fDYotw7w695c42x5Ba1mmwBkesYnzYFBfte6Hh9TDcKa6xORQ==", - "dev": true, - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/legacy-modes": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.3.1.tgz", - "integrity": "sha512-icXmCs4Mhst2F8mE0TNpmG6l7YTj1uxam3AbZaFaabINH5oWAdg2CfR/PVi+d/rqxJ+TuTnvkKK5GILHrNThtw==", - "dev": true, - "dependencies": { - "@codemirror/language": "^6.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.1.0.tgz", - "integrity": "sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==", - "dev": true, - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.2.3.tgz", - "integrity": "sha512-V9n9233lopQhB1dyjsBK2Wc1i+8hcCqxl1wQ46c5HWWLePoe4FluV3TGHoZ04rBRlGjNyz9DTmpJErig8UE4jw==", - "dev": true, - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.4.tgz", - "integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==", - "dev": true - }, - "node_modules/@codemirror/view": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.6.0.tgz", - "integrity": "sha512-40VaFVZI3rkyjO5GHFAbNwaW+YgZexjKyx5gxLU2DvfuXAEZX0kW0apOXb0SBRLnKIQJ+U/n2nPfxgBVFHERrg==", - "dev": true, - "dependencies": { - "@codemirror/state": "^6.1.4", - "style-mod": "^4.0.0", - "w3c-keyname": "^2.2.4" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.16.tgz", - "integrity": "sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz", - "integrity": "sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@lezer/common": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.2.tgz", - "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==", - "dev": true - }, - "node_modules/@lezer/css": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.0.tgz", - "integrity": "sha512-3dc6l8ZQOOAZUhNk6ekrkaZ6iJScn0QKxsmKgmn0BsaIXePqgPPk3d1iqo/d7laICE6eYrLpxm5HrGyNyR0hfQ==", - "dev": true, - "dependencies": { - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.3.tgz", - "integrity": "sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==", - "dev": true, - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/html": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.2.0.tgz", - "integrity": "sha512-T6sseEJQPTFayX3h9DINh7KyFBwCjEtrqQRD+7USmtkJh1xHDutsB6KYHKveSd+TbsedIPAcZwar+gkHl1rVSw==", - "dev": true, - "dependencies": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/javascript": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.3.1.tgz", - "integrity": "sha512-3Z6OggGxRuqMntAuadxW0Oy7Zbs56KJSwujDc6vwhVfbi5upHOEzNIrNLvphDU/HozLoTCGQcjNmjLkb2Zr5pg==", - "dev": true, - "dependencies": { - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.5.tgz", - "integrity": "sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==", - "dev": true, - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.3.1.tgz", - "integrity": "sha512-2Uu2sDdIR+XQWF7QWOVSF2jR9EU6Ciw1yWfYnfLYj8HIgnNxkh/8g22Fw2pBUI8QNyW/KxtqJUWBI+8ypamSrQ==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "deepmerge": "^4.2.2", - "kleur": "^4.1.5", - "magic-string": "^0.26.7", - "svelte-hmr": "^0.15.1", - "vitefu": "^0.2.2" - }, - "engines": { - "node": "^14.18.0 || >= 16" - }, - "peerDependencies": { - "diff-match-patch": "^1.0.5", - "svelte": "^3.44.0", - "vite": "^3.0.0" - }, - "peerDependenciesMeta": { - "diff-match-patch": { - "optional": true - } - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chart.js": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", - "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==", - "dev": true - }, - "node_modules/chartjs-adapter-luxon": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/chartjs-adapter-luxon/-/chartjs-adapter-luxon-1.3.0.tgz", - "integrity": "sha512-TPqS8S7aw4a07LhFzG5DZU6Kduk1xFkaGTn8y/gfhBRvfyCkqnwFqfXqG9Gl+gmnj5DRXgPscApJUE6bsgzKjQ==", - "dev": true, - "peerDependencies": { - "chart.js": ">=3.0.0", - "luxon": ">=1.0.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/crelt": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", - "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esbuild": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.16.tgz", - "integrity": "sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.15.16", - "@esbuild/linux-loong64": "0.15.16", - "esbuild-android-64": "0.15.16", - "esbuild-android-arm64": "0.15.16", - "esbuild-darwin-64": "0.15.16", - "esbuild-darwin-arm64": "0.15.16", - "esbuild-freebsd-64": "0.15.16", - "esbuild-freebsd-arm64": "0.15.16", - "esbuild-linux-32": "0.15.16", - "esbuild-linux-64": "0.15.16", - "esbuild-linux-arm": "0.15.16", - "esbuild-linux-arm64": "0.15.16", - "esbuild-linux-mips64le": "0.15.16", - "esbuild-linux-ppc64le": "0.15.16", - "esbuild-linux-riscv64": "0.15.16", - "esbuild-linux-s390x": "0.15.16", - "esbuild-netbsd-64": "0.15.16", - "esbuild-openbsd-64": "0.15.16", - "esbuild-sunos-64": "0.15.16", - "esbuild-windows-32": "0.15.16", - "esbuild-windows-64": "0.15.16", - "esbuild-windows-arm64": "0.15.16" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz", - "integrity": "sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz", - "integrity": "sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz", - "integrity": "sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz", - "integrity": "sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz", - "integrity": "sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz", - "integrity": "sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz", - "integrity": "sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz", - "integrity": "sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz", - "integrity": "sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz", - "integrity": "sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz", - "integrity": "sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz", - "integrity": "sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz", - "integrity": "sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz", - "integrity": "sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz", - "integrity": "sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz", - "integrity": "sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz", - "integrity": "sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz", - "integrity": "sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz", - "integrity": "sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz", - "integrity": "sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flatpickr": { - "version": "4.6.13", - "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", - "integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/luxon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz", - "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/magic-string": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pocketbase": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.8.2.tgz", - "integrity": "sha512-3fk/Jg9ZUkICAq0wNHwm4rNWWEy1IfUKSPgIpZx/0HUdwDivNArlY6I2DefPScfenaB/gqvTWBsB+jf7RpvCyQ==", - "dev": true - }, - "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regexparam": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.1.tgz", - "integrity": "sha512-zRgSaYemnNYxUv+/5SeoHI0eJIgTL/A2pUtXUPLHQxUldagouJ9p+K6IbIZ/JiQuCEv2E2B1O11SjVQy3aMCkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/style-mod": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", - "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", - "dev": true - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svelte": { - "version": "3.53.1", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.53.1.tgz", - "integrity": "sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/svelte-flatpickr": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/svelte-flatpickr/-/svelte-flatpickr-3.2.6.tgz", - "integrity": "sha512-0ePUyE9OjInYFqQwRKOxnFSu4dQX9+/rzFMynq2fKYXx406ZUThzSx72gebtjr0DoAQbsH2///BBZa5qk4qZXg==", - "dev": true, - "dependencies": { - "flatpickr": "^4.5.2" - }, - "peerDependencies": { - "svelte": "^3.31.0" - } - }, - "node_modules/svelte-hmr": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", - "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", - "dev": true, - "engines": { - "node": "^12.20 || ^14.13.1 || >= 16" - }, - "peerDependencies": { - "svelte": ">=3.19.0" - } - }, - "node_modules/svelte-spa-router": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-3.3.0.tgz", - "integrity": "sha512-cwRNe7cxD43sCvSfEeaKiNZg3FCizGxeMcf7CPiWRP3jKXjEma3vxyyuDtPOam6nWbVxl9TNM3hlE/i87ZlqcQ==", - "dev": true, - "dependencies": { - "regexparam": "2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ItalyPaleAle" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/vite": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", - "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", - "dev": true, - "dependencies": { - "esbuild": "^0.15.9", - "postcss": "^8.4.18", - "resolve": "^1.22.1", - "rollup": "^2.79.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vitefu": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.2.tgz", - "integrity": "sha512-8CKEIWPm4B4DUDN+h+hVJa9pyNi7rzc5MYmbxhs1wcMakueGFNWB5/DL30USm9qU3xUPnL4/rrLEAwwFiD1tag==", - "dev": true, - "peerDependencies": { - "vite": "^3.0.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, - "node_modules/w3c-keyname": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz", - "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==", - "dev": true - } - }, - "dependencies": { - "@codemirror/autocomplete": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.3.4.tgz", - "integrity": "sha512-irxKsTSjS0OkfMWWt9YxtNK97++/E+XIHfKnRpSVfZyHzda/amYF0BR+T8mMkrGQWidx2zApxHx08GT13egyQA==", - "dev": true, - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.6.0", - "@lezer/common": "^1.0.0" - } - }, - "@codemirror/commands": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.1.2.tgz", - "integrity": "sha512-sO3jdX1s0pam6lIdeSJLMN3DQ6mPEbM4yLvyKkdqtmd/UDwhXA5+AwFJ89rRXm6vTeOXBsE5cAmlos/t7MJdgg==", - "dev": true, - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "@codemirror/lang-css": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.0.1.tgz", - "integrity": "sha512-rlLq1Dt0WJl+2epLQeAsfqIsx3lGu4HStHCJu95nGGuz2P2fNugbU3dQYafr2VRjM4eMC9HviI6jvS98CNtG5w==", - "dev": true, - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/css": "^1.0.0" - } - }, - "@codemirror/lang-html": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.0.tgz", - "integrity": "sha512-HHged0d9AQ/mpjYLTYDVdtI7235dO0COFNgc5uuiGokgjWx3L/sjMSw5aS/Nk7JG++LhsohG5HMNTCuqAq3Tcg==", - "dev": true, - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.2.2", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.1.0" - } - }, - "@codemirror/lang-javascript": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.1.1.tgz", - "integrity": "sha512-F4+kiuC5d5dUSJmff96tJQwpEXs/tX/4bapMRnZWW6bHKK1Fx6MunTzopkCUWRa9bF87GPmb9m7Qtg7Yv8f3uQ==", - "dev": true, - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "@codemirror/language": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.3.1.tgz", - "integrity": "sha512-MK+G1QKaGfSEUg9YEFaBkMBI6j1ge4VMBPZv9fDYotw7w695c42x5Ba1mmwBkesYnzYFBfte6Hh9TDcKa6xORQ==", - "dev": true, - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "@codemirror/legacy-modes": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.3.1.tgz", - "integrity": "sha512-icXmCs4Mhst2F8mE0TNpmG6l7YTj1uxam3AbZaFaabINH5oWAdg2CfR/PVi+d/rqxJ+TuTnvkKK5GILHrNThtw==", - "dev": true, - "requires": { - "@codemirror/language": "^6.0.0" - } - }, - "@codemirror/lint": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.1.0.tgz", - "integrity": "sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==", - "dev": true, - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/search": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.2.3.tgz", - "integrity": "sha512-V9n9233lopQhB1dyjsBK2Wc1i+8hcCqxl1wQ46c5HWWLePoe4FluV3TGHoZ04rBRlGjNyz9DTmpJErig8UE4jw==", - "dev": true, - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/state": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.4.tgz", - "integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==", - "dev": true - }, - "@codemirror/view": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.6.0.tgz", - "integrity": "sha512-40VaFVZI3rkyjO5GHFAbNwaW+YgZexjKyx5gxLU2DvfuXAEZX0kW0apOXb0SBRLnKIQJ+U/n2nPfxgBVFHERrg==", - "dev": true, - "requires": { - "@codemirror/state": "^6.1.4", - "style-mod": "^4.0.0", - "w3c-keyname": "^2.2.4" - } - }, - "@esbuild/android-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.16.tgz", - "integrity": "sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz", - "integrity": "sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==", - "dev": true, - "optional": true - }, - "@lezer/common": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.2.tgz", - "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==", - "dev": true - }, - "@lezer/css": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.0.tgz", - "integrity": "sha512-3dc6l8ZQOOAZUhNk6ekrkaZ6iJScn0QKxsmKgmn0BsaIXePqgPPk3d1iqo/d7laICE6eYrLpxm5HrGyNyR0hfQ==", - "dev": true, - "requires": { - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/highlight": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.3.tgz", - "integrity": "sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==", - "dev": true, - "requires": { - "@lezer/common": "^1.0.0" - } - }, - "@lezer/html": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.2.0.tgz", - "integrity": "sha512-T6sseEJQPTFayX3h9DINh7KyFBwCjEtrqQRD+7USmtkJh1xHDutsB6KYHKveSd+TbsedIPAcZwar+gkHl1rVSw==", - "dev": true, - "requires": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/javascript": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.3.1.tgz", - "integrity": "sha512-3Z6OggGxRuqMntAuadxW0Oy7Zbs56KJSwujDc6vwhVfbi5upHOEzNIrNLvphDU/HozLoTCGQcjNmjLkb2Zr5pg==", - "dev": true, - "requires": { - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/lr": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.5.tgz", - "integrity": "sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==", - "dev": true, - "requires": { - "@lezer/common": "^1.0.0" - } - }, - "@sveltejs/vite-plugin-svelte": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.3.1.tgz", - "integrity": "sha512-2Uu2sDdIR+XQWF7QWOVSF2jR9EU6Ciw1yWfYnfLYj8HIgnNxkh/8g22Fw2pBUI8QNyW/KxtqJUWBI+8ypamSrQ==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "deepmerge": "^4.2.2", - "kleur": "^4.1.5", - "magic-string": "^0.26.7", - "svelte-hmr": "^0.15.1", - "vitefu": "^0.2.2" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chart.js": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", - "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==", - "dev": true - }, - "chartjs-adapter-luxon": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/chartjs-adapter-luxon/-/chartjs-adapter-luxon-1.3.0.tgz", - "integrity": "sha512-TPqS8S7aw4a07LhFzG5DZU6Kduk1xFkaGTn8y/gfhBRvfyCkqnwFqfXqG9Gl+gmnj5DRXgPscApJUE6bsgzKjQ==", - "dev": true, - "requires": {} - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "crelt": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", - "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "esbuild": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.16.tgz", - "integrity": "sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.15.16", - "@esbuild/linux-loong64": "0.15.16", - "esbuild-android-64": "0.15.16", - "esbuild-android-arm64": "0.15.16", - "esbuild-darwin-64": "0.15.16", - "esbuild-darwin-arm64": "0.15.16", - "esbuild-freebsd-64": "0.15.16", - "esbuild-freebsd-arm64": "0.15.16", - "esbuild-linux-32": "0.15.16", - "esbuild-linux-64": "0.15.16", - "esbuild-linux-arm": "0.15.16", - "esbuild-linux-arm64": "0.15.16", - "esbuild-linux-mips64le": "0.15.16", - "esbuild-linux-ppc64le": "0.15.16", - "esbuild-linux-riscv64": "0.15.16", - "esbuild-linux-s390x": "0.15.16", - "esbuild-netbsd-64": "0.15.16", - "esbuild-openbsd-64": "0.15.16", - "esbuild-sunos-64": "0.15.16", - "esbuild-windows-32": "0.15.16", - "esbuild-windows-64": "0.15.16", - "esbuild-windows-arm64": "0.15.16" - } - }, - "esbuild-android-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz", - "integrity": "sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz", - "integrity": "sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz", - "integrity": "sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz", - "integrity": "sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz", - "integrity": "sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz", - "integrity": "sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz", - "integrity": "sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz", - "integrity": "sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz", - "integrity": "sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz", - "integrity": "sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz", - "integrity": "sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz", - "integrity": "sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz", - "integrity": "sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz", - "integrity": "sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz", - "integrity": "sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz", - "integrity": "sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz", - "integrity": "sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz", - "integrity": "sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz", - "integrity": "sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz", - "integrity": "sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "flatpickr": { - "version": "4.6.13", - "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", - "integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true - }, - "luxon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz", - "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==", - "dev": true - }, - "magic-string": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pocketbase": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.8.2.tgz", - "integrity": "sha512-3fk/Jg9ZUkICAq0wNHwm4rNWWEy1IfUKSPgIpZx/0HUdwDivNArlY6I2DefPScfenaB/gqvTWBsB+jf7RpvCyQ==", - "dev": true - }, - "postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regexparam": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.1.tgz", - "integrity": "sha512-zRgSaYemnNYxUv+/5SeoHI0eJIgTL/A2pUtXUPLHQxUldagouJ9p+K6IbIZ/JiQuCEv2E2B1O11SjVQy3aMCkw==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "style-mod": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", - "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", - "dev": true - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svelte": { - "version": "3.53.1", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.53.1.tgz", - "integrity": "sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw==", - "dev": true - }, - "svelte-flatpickr": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/svelte-flatpickr/-/svelte-flatpickr-3.2.6.tgz", - "integrity": "sha512-0ePUyE9OjInYFqQwRKOxnFSu4dQX9+/rzFMynq2fKYXx406ZUThzSx72gebtjr0DoAQbsH2///BBZa5qk4qZXg==", - "dev": true, - "requires": { - "flatpickr": "^4.5.2" - } - }, - "svelte-hmr": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", - "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", - "dev": true, - "requires": {} - }, - "svelte-spa-router": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-3.3.0.tgz", - "integrity": "sha512-cwRNe7cxD43sCvSfEeaKiNZg3FCizGxeMcf7CPiWRP3jKXjEma3vxyyuDtPOam6nWbVxl9TNM3hlE/i87ZlqcQ==", - "dev": true, - "requires": { - "regexparam": "2.0.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "vite": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", - "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", - "dev": true, - "requires": { - "esbuild": "^0.15.9", - "fsevents": "~2.3.2", - "postcss": "^8.4.18", - "resolve": "^1.22.1", - "rollup": "^2.79.1" - } - }, - "vitefu": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.2.tgz", - "integrity": "sha512-8CKEIWPm4B4DUDN+h+hVJa9pyNi7rzc5MYmbxhs1wcMakueGFNWB5/DL30USm9qU3xUPnL4/rrLEAwwFiD1tag==", - "dev": true, - "requires": {} - }, - "w3c-keyname": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz", - "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==", - "dev": true - } - } -} diff --git a/ui/package.json b/ui/package.json deleted file mode 100644 index 725de7f8d20d91430f3e8b6b282a70aa7b277cfb..0000000000000000000000000000000000000000 --- a/ui/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "pocketbase-admin", - "private": true, - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "prettier": { - "tabWidth": 4, - "printWidth": 110, - "svelteBracketNewLine": true - }, - "devDependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/lang-html": "^6.1.0", - "@codemirror/lang-javascript": "^6.0.2", - "@codemirror/language": "^6.0.0", - "@codemirror/legacy-modes": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@sveltejs/vite-plugin-svelte": "^1.0.1", - "chart.js": "^3.7.1", - "chartjs-adapter-luxon": "^1.2.0", - "luxon": "^2.3.2", - "pocketbase": "^0.8.2", - "prismjs": "^1.28.0", - "sass": "^1.45.0", - "svelte": "^3.44.0", - "svelte-flatpickr": "^3.2.6", - "svelte-spa-router": "^3.2.0", - "vite": "^3.0.0" - } -} diff --git a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff b/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff deleted file mode 100644 index f45202d1288533bab575d7384f83f689ee707ff5..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff and /dev/null differ diff --git a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2 b/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2 deleted file mode 100644 index 46e7760e44dbee7a254ac9a1c54c12d45593f83b..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2 and /dev/null differ diff --git a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff b/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff deleted file mode 100644 index 1f3ca80d15447ac59740a039fefc9455857d9ace..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff and /dev/null differ diff --git a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2 b/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2 deleted file mode 100644 index ab691d23bb9bc2655916c560873aa12e1e428cb7..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2 and /dev/null differ diff --git a/ui/public/fonts/remixicon/remixicon.eot b/ui/public/fonts/remixicon/remixicon.eot deleted file mode 100644 index 40629af2b93f9f3e977246ae380ad89f35362313..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/remixicon/remixicon.eot and /dev/null differ diff --git a/ui/public/fonts/remixicon/remixicon.glyph.json b/ui/public/fonts/remixicon/remixicon.glyph.json deleted file mode 100644 index 81e05921d4402d8bea7d2563f10d7d29767c5521..0000000000000000000000000000000000000000 --- a/ui/public/fonts/remixicon/remixicon.glyph.json +++ /dev/null @@ -1 +0,0 @@ -{"24-hours-fill":{"path":["M0 0H24V24H0z","M12 13c1.657 0 3 1.343 3 3 0 .85-.353 1.616-.92 2.162L12.17 20H15v2H9v-1.724l3.693-3.555c.19-.183.307-.438.307-.721 0-.552-.448-1-1-1s-1 .448-1 1H9c0-1.657 1.343-3 3-3zm6 0v4h2v-4h2v9h-2v-3h-4v-6h2zM4 12c0 2.527 1.171 4.78 3 6.246v2.416C4.011 18.933 2 15.702 2 12h2zm8-10c5.185 0 9.449 3.947 9.95 9h-2.012C19.446 7.054 16.08 4 12 4 9.536 4 7.332 5.114 5.865 6.865L8 9H2V3l2.447 2.446C6.28 3.336 8.984 2 12 2z"],"unicode":"","glyph":"M600 550C682.85 550 750 482.85 750 400C750 357.4999999999999 732.35 319.2000000000001 704 291.9000000000001L608.5 200H750V100H450V186.2000000000001L634.65 363.9500000000001C644.15 373.1 650 385.8499999999999 650 400C650 427.6 627.6 450 600 450S550 427.6 550 400H450C450 482.85 517.15 550 600 550zM900 550V350H1000V550H1100V100H1000V250H800V550H900zM200 600C200 473.65 258.55 361 350 287.7V166.8999999999999C200.55 253.35 100 414.9 100 600H200zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9C972.3 847.3 803.9999999999999 1000 600 1000C476.8 1000 366.6 944.3 293.25 856.75L400 750H100V1050L222.35 927.7C314 1033.2 449.2 1100 600 1100z","horizAdvX":"1200"},"24-hours-line":{"path":["M0 0H24V24H0z","M12 13c1.657 0 3 1.343 3 3 0 .85-.353 1.616-.92 2.162L12.17 20H15v2H9v-1.724l3.693-3.555c.19-.183.307-.438.307-.721 0-.552-.448-1-1-1s-1 .448-1 1H9c0-1.657 1.343-3 3-3zm6 0v4h2v-4h2v9h-2v-3h-4v-6h2zM4 12c0 2.527 1.171 4.78 3 6.246v2.416C4.011 18.933 2 15.702 2 12h2zm8-10c5.185 0 9.449 3.947 9.95 9h-2.012C19.446 7.054 16.08 4 12 4 9.25 4 6.824 5.387 5.385 7.5H8v2H2v-6h2V6c1.824-2.43 4.729-4 8-4z"],"unicode":"","glyph":"M600 550C682.85 550 750 482.85 750 400C750 357.4999999999999 732.35 319.2000000000001 704 291.9000000000001L608.5 200H750V100H450V186.2000000000001L634.65 363.9500000000001C644.15 373.1 650 385.8499999999999 650 400C650 427.6 627.6 450 600 450S550 427.6 550 400H450C450 482.85 517.15 550 600 550zM900 550V350H1000V550H1100V100H1000V250H800V550H900zM200 600C200 473.65 258.55 361 350 287.7V166.8999999999999C200.55 253.35 100 414.9 100 600H200zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9C972.3 847.3 803.9999999999999 1000 600 1000C462.5 1000 341.2 930.65 269.25 825H400V725H100V1025H200V900C291.2 1021.5 436.45 1100 600 1100z","horizAdvX":"1200"},"4k-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8.5 10.5V12h-1V9H9v3H7.5V9H6v4.5h3V15h1.5v-1.5h1zM18 15l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5v-2.25L16.25 15H18z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM575 525V600H525V750H450V600H375V750H300V525H450V450H525V525H575zM900 450L787.5 600L900 750H812.5L725 637.5V750H650V450H725V562.5L812.5 450H900z","horizAdvX":"1200"},"4k-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8.5 10.5h-1V15H9v-1.5H6V9h1.5v3H9V9h1.5v3h1v1.5zM18 15h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM575 525H525V450H450V525H300V750H375V600H450V750H525V600H575V525zM900 450H812.5L725 562.5V450H650V750H725V637.5L812.5 750H900L787.5 600L900 450z","horizAdvX":"1200"},"a-b":{"path":["M0 0h24v24H0z","M5 15v2c0 1.054.95 2 2 2h3v2H7a4 4 0 0 1-4-4v-2h2zm13-5l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16 10h2zm-1 2.885L15.753 16h2.492L17 12.885zM3 3h6a3 3 0 0 1 2.235 5A3 3 0 0 1 9 13H3V3zm6 6H5v2h4a1 1 0 0 0 0-2zm8-6a4 4 0 0 1 4 4v2h-2V7a2 2 0 0 0-2-2h-3V3h3zM9 5H5v2h4a1 1 0 1 0 0-2z"],"unicode":"","glyph":"M250 450V350C250 297.3000000000001 297.5 250 350 250H500V150H350A200 200 0 0 0 150 350V450H250zM900 700L1120 150H1012.2499999999998L952.1999999999998 300H747.6999999999998L687.7499999999999 150H580.0499999999998L800 700H900zM850 555.75L787.65 400H912.25L850 555.75zM150 1050H450A150 150 0 0 0 561.75 800A150 150 0 0 0 450 550H150V1050zM450 750H250V650H450A50 50 0 0 1 450 750zM850 1050A200 200 0 0 0 1050 850V750H950V850A100 100 0 0 1 850 950H700V1050H850zM450 950H250V850H450A50 50 0 1 1 450 950z","horizAdvX":"1200"},"account-box-fill":{"path":["M0 0h24v24H0z","M3 4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H4.995A1.995 1.995 0 0 1 3 19.005V4.995zM6.357 18h11.49a6.992 6.992 0 0 0-5.745-3 6.992 6.992 0 0 0-5.745 3zM12 13a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M150 950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25zM317.85 300H892.35A349.6 349.6 0 0 1 605.1 450A349.6 349.6 0 0 1 317.85 300zM600 550A175 175 0 1 1 600 900A175 175 0 0 1 600 550z","horizAdvX":"1200"},"account-box-line":{"path":["M0 0h24v24H0z","M3 4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H4.995A1.995 1.995 0 0 1 3 19.005V4.995zM5 5v14h14V5H5zm2.972 13.18a9.983 9.983 0 0 1-1.751-.978A6.994 6.994 0 0 1 12.102 14c2.4 0 4.517 1.207 5.778 3.047a9.995 9.995 0 0 1-1.724 1.025A4.993 4.993 0 0 0 12.102 16c-1.715 0-3.23.864-4.13 2.18zM12 13a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M150 950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25zM250 950V250H950V950H250zM398.6 291A499.15 499.15 0 0 0 311.05 339.9000000000001A349.70000000000005 349.70000000000005 0 0 0 605.1 500C725.1 500 830.95 439.65 894 347.65A499.74999999999994 499.74999999999994 0 0 0 807.8 296.4000000000001A249.65000000000003 249.65000000000003 0 0 1 605.1 400C519.35 400 443.6 356.8 398.6 291zM600 550A175 175 0 1 0 600 900A175 175 0 0 0 600 550zM600 650A75 75 0 1 1 600 800A75 75 0 0 1 600 650z","horizAdvX":"1200"},"account-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zM6.023 15.416C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM301.15 429.2C374.55 319.7 484.75 250 608 250C731.2 250 841.45 319.6500000000001 914.8 429.2A448.3999999999999 448.3999999999999 0 0 1 608 550A448.3999999999999 448.3999999999999 0 0 1 301.1500000000001 429.2zM600 650A150 150 0 1 1 600 950A150 150 0 0 1 600 650z","horizAdvX":"1200"},"account-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4.987-3.744A7.966 7.966 0 0 0 12 20c1.97 0 3.773-.712 5.167-1.892A6.979 6.979 0 0 0 12.16 16a6.981 6.981 0 0 0-5.147 2.256zM5.616 16.82A8.975 8.975 0 0 1 12.16 14a8.972 8.972 0 0 1 6.362 2.634 8 8 0 1 0-12.906.187zM12 13a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350.65 287.2000000000001A398.29999999999995 398.29999999999995 0 0 1 600 200C698.5 200 788.65 235.6 858.3500000000001 294.6A348.95 348.95 0 0 1 608 400A349.04999999999995 349.04999999999995 0 0 1 350.65 287.2000000000001zM280.8 359A448.75 448.75 0 0 0 608 500A448.6 448.6 0 0 0 926.1 368.3A400 400 0 1 1 280.7999999999999 358.95zM600 550A200 200 0 1 0 600 950A200 200 0 0 0 600 550zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"account-pin-box-fill":{"path":["M0 0h24v24H0z","M14 21l-2 2-2-2H4.995A1.995 1.995 0 0 1 3 19.005V4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H14zm-7.643-3h11.49a6.992 6.992 0 0 0-5.745-3 6.992 6.992 0 0 0-5.745 3zM12 13a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M700 150L600 50L500 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H700zM317.85 300H892.35A349.6 349.6 0 0 1 605.1 450A349.6 349.6 0 0 1 317.85 300zM600 550A175 175 0 1 1 600 900A175 175 0 0 1 600 550z","horizAdvX":"1200"},"account-pin-box-line":{"path":["M0 0h24v24H0z","M14 21l-2 2-2-2H4.995A1.995 1.995 0 0 1 3 19.005V4.995C3 3.893 3.893 3 4.995 3h14.01C20.107 3 21 3.893 21 4.995v14.01A1.995 1.995 0 0 1 19.005 21H14zm5-2V5H5v14h5.828L12 20.172 13.172 19H19zm-11.028-.82a9.983 9.983 0 0 1-1.751-.978A6.994 6.994 0 0 1 12.102 14c2.4 0 4.517 1.207 5.778 3.047a9.995 9.995 0 0 1-1.724 1.025A4.993 4.993 0 0 0 12.102 16c-1.715 0-3.23.864-4.13 2.18zM12 13a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M700 150L600 50L500 150H249.75A99.75 99.75 0 0 0 150 249.75V950.25C150 1005.35 194.65 1050 249.75 1050H950.25C1005.35 1050 1050 1005.35 1050 950.25V249.75A99.75 99.75 0 0 0 950.25 150H700zM950 250V950H250V250H541.4L600 191.4L658.6 250H950zM398.6 291A499.15 499.15 0 0 0 311.05 339.9000000000001A349.70000000000005 349.70000000000005 0 0 0 605.1 500C725.1 500 830.95 439.65 894 347.65A499.74999999999994 499.74999999999994 0 0 0 807.8 296.4000000000001A249.65000000000003 249.65000000000003 0 0 1 605.1 400C519.35 400 443.6 356.8 398.6 291zM600 550A175 175 0 1 0 600 900A175 175 0 0 0 600 550zM600 650A75 75 0 1 1 600 800A75 75 0 0 1 600 650z","horizAdvX":"1200"},"account-pin-circle-fill":{"path":["M0 0h24v24H0z","M14.256 21.744L12 24l-2.256-2.256C5.31 20.72 2 16.744 2 12 2 6.48 6.48 2 12 2s10 4.48 10 10c0 4.744-3.31 8.72-7.744 9.744zm-8.233-6.328C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M712.8 112.8L600 0L487.2 112.8C265.5 164 100 362.8 100 600C100 876 324 1100 600 1100S1100 876 1100 600C1100 362.8 934.5000000000002 164 712.8 112.8zM301.15 429.2C374.55 319.7 484.75 250 608 250C731.2 250 841.45 319.6500000000001 914.8 429.2A448.3999999999999 448.3999999999999 0 0 1 608 550A448.3999999999999 448.3999999999999 0 0 1 301.1500000000001 429.2zM600 650A150 150 0 1 1 600 950A150 150 0 0 1 600 650z","horizAdvX":"1200"},"account-pin-circle-line":{"path":["M0 0h24v24H0z","M9.745 21.745C5.308 20.722 2 16.747 2 12 2 6.477 6.477 2 12 2s10 4.477 10 10c0 4.747-3.308 8.722-7.745 9.745L12 24l-2.255-2.255zm-2.733-3.488a7.953 7.953 0 0 0 3.182 1.539l.56.129L12 21.172l1.247-1.247.56-.13a7.956 7.956 0 0 0 3.36-1.686A6.979 6.979 0 0 0 12.16 16c-2.036 0-3.87.87-5.148 2.257zM5.616 16.82A8.975 8.975 0 0 1 12.16 14a8.972 8.972 0 0 1 6.362 2.634 8 8 0 1 0-12.906.187zM12 13a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M487.2499999999999 112.75C265.4 163.8999999999999 100 362.65 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600C1100 362.65 934.6 163.8999999999999 712.75 112.7500000000002L600 0L487.2500000000001 112.75zM350.5999999999999 287.15A397.65000000000003 397.65000000000003 0 0 1 509.6999999999999 210.1999999999998L537.6999999999999 203.7499999999998L600 141.3999999999999L662.35 203.75L690.35 210.2499999999999A397.80000000000007 397.80000000000007 0 0 1 858.3500000000001 294.55A348.95 348.95 0 0 1 608 400C506.2 400 414.5 356.5 350.6 287.15zM280.8 359A448.75 448.75 0 0 0 608 500A448.6 448.6 0 0 0 926.1 368.3A400 400 0 1 1 280.7999999999999 358.95zM600 550A200 200 0 1 0 600 950A200 200 0 0 0 600 550zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"add-box-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7 8H7v2h4v4h2v-4h4v-2h-4V7h-2v4z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550 650H350V550H550V350H650V550H850V650H650V850H550V650z","horizAdvX":"1200"},"add-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6 6V7h2v4h4v2h-4v4h-2v-4H7v-2h4z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM550 650V850H650V650H850V550H650V350H550V550H350V650H550z","horizAdvX":"1200"},"add-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11H7v2h4v4h2v-4h4v-2h-4V7h-2v4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 650H350V550H550V350H650V550H850V650H650V850H550V650z","horizAdvX":"1200"},"add-circle-line":{"path":["M0 0h24v24H0z","M11 11V7h2v4h4v2h-4v4h-2v-4H7v-2h4zm1 11C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"],"unicode":"","glyph":"M550 650V850H650V650H850V550H650V350H550V550H350V650H550zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200z","horizAdvX":"1200"},"add-fill":{"path":["M0 0h24v24H0z","M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"],"unicode":"","glyph":"M550 650V950H650V650H950V550H650V250H550V550H250V650z","horizAdvX":"1200"},"add-line":{"path":["M0 0h24v24H0z","M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"],"unicode":"","glyph":"M550 650V950H650V650H950V550H650V250H550V550H250V650z","horizAdvX":"1200"},"admin-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm9 4h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1050 350H1100V100H700V350H750V400A150 150 0 0 0 1050 400V350zM950 350V400A50 50 0 0 1 850 400V350H950z","horizAdvX":"1200"},"admin-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm9 6h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1050 350H1100V100H700V350H750V400A150 150 0 0 0 1050 400V350zM950 350V400A50 50 0 0 1 850 400V350H950z","horizAdvX":"1200"},"advertisement-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM9.399 8h-2l-3.2 8h2.154l.4-1h3.29l.4 1h2.155L9.399 8zM19 8h-2v2h-1a3 3 0 0 0-.176 5.995L16 16h3V8zm-2 4v2h-1l-.117-.007a1 1 0 0 1 0-1.986L16 12h1zm-8.601-1.115L9.244 13H7.552l.847-2.115z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM469.9499999999999 800H369.95L209.95 400H317.6499999999999L337.65 450H502.15L522.15 400H629.9L469.9499999999999 800zM950 800H850V700H800A150 150 0 0 1 791.2 400.25L800 400H950V800zM850 600V500H800L794.15 500.35A50 50 0 0 0 794.15 599.65L800 600H850zM419.95 655.75L462.2 550H377.6L419.95 655.75z","horizAdvX":"1200"},"advertisement-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zM9.399 8l3.199 8h-2.155l-.4-1h-3.29l-.4 1H4.199l3.2-8h2zM19 8v8h-3a3 3 0 0 1 0-6h.999L17 8h2zm-2 4h-1a1 1 0 0 0-.117 1.993L16 14h1v-2zm-8.601-1.115L7.552 13h1.692l-.845-2.115z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM469.9499999999999 800L629.9 400H522.15L502.15 450H337.65L317.6499999999999 400H209.95L369.95 800H469.95zM950 800V400H800A150 150 0 0 0 800 700H849.9499999999999L850 800H950zM850 600H800A50 50 0 0 1 794.15 500.35L800 500H850V600zM419.95 655.75L377.6 550H462.2L419.95 655.75z","horizAdvX":"1200"},"airplay-fill":{"path":["M0 0h24v24H0z","M12.4 13.533l5 6.667a.5.5 0 0 1-.4.8H7a.5.5 0 0 1-.4-.8l5-6.667a.5.5 0 0 1 .8 0zM18 19v-2h2V5H4v12h2v2H2.992A.994.994 0 0 1 2 18V4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H18z"],"unicode":"","glyph":"M620 523.35L869.9999999999999 190A25 25 0 0 0 850 150H350A25 25 0 0 0 330 190L580 523.35A25 25 0 0 0 620 523.35zM900 250V350H1000V950H200V350H300V250H149.6A49.7 49.7 0 0 0 100 300V1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H900z","horizAdvX":"1200"},"airplay-line":{"path":["M0 0h24v24H0z","M12.4 13.533l5 6.667a.5.5 0 0 1-.4.8H7a.5.5 0 0 1-.4-.8l5-6.667a.5.5 0 0 1 .8 0zM12 16.33L10 19h4l-2-2.67zM18 19v-2h2V5H4v12h2v2H2.992A.994.994 0 0 1 2 18V4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H18z"],"unicode":"","glyph":"M620 523.35L869.9999999999999 190A25 25 0 0 0 850 150H350A25 25 0 0 0 330 190L580 523.35A25 25 0 0 0 620 523.35zM600 383.5000000000001L500 250H700L600 383.5000000000001zM900 250V350H1000V950H200V350H300V250H149.6A49.7 49.7 0 0 0 100 300V1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H900z","horizAdvX":"1200"},"alarm-fill":{"path":["M0 0h24v24H0z","M12 22a9 9 0 1 1 0-18 9 9 0 0 1 0 18zm1-9V8h-2v7h5v-2h-3zM1.747 6.282l3.535-3.535 1.415 1.414L3.16 7.697 1.747 6.282zm16.97-3.535l3.536 3.535-1.414 1.415-3.536-3.536 1.415-1.414z"],"unicode":"","glyph":"M600 100A450 450 0 1 0 600 1000A450 450 0 0 0 600 100zM650 550V800H550V450H800V550H650zM87.35 885.9L264.1 1062.65L334.85 991.95L158 815.15L87.35 885.9zM935.85 1062.65L1112.65 885.9L1041.9499999999998 815.15L865.1499999999999 991.95L935.8999999999997 1062.65z","horizAdvX":"1200"},"alarm-line":{"path":["M0 0h24v24H0z","M12 22a9 9 0 1 1 0-18 9 9 0 0 1 0 18zm0-2a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm1-7h3v2h-5V8h2v5zM1.747 6.282l3.535-3.535 1.415 1.414L3.16 7.697 1.747 6.282zm16.97-3.535l3.536 3.535-1.414 1.415-3.536-3.536 1.415-1.414z"],"unicode":"","glyph":"M600 100A450 450 0 1 0 600 1000A450 450 0 0 0 600 100zM600 200A350 350 0 1 1 600 900A350 350 0 0 1 600 200zM650 550H800V450H550V800H650V550zM87.35 885.9L264.1 1062.65L334.85 991.95L158 815.15L87.35 885.9zM935.85 1062.65L1112.65 885.9L1041.9499999999998 815.15L865.1499999999999 991.95L935.8999999999997 1062.65z","horizAdvX":"1200"},"alarm-warning-fill":{"path":["M0 0h24v24H0z","M4 20v-6a8 8 0 1 1 16 0v6h1v2H3v-2h1zm2-6h2a4 4 0 0 1 4-4V8a6 6 0 0 0-6 6zm5-12h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222z"],"unicode":"","glyph":"M200 200V500A400 400 0 1 0 1000 500V200H1050V100H150V200H200zM300 500H400A200 200 0 0 0 600 700V800A300 300 0 0 1 300 500zM550 1100H650V950H550V1100zM988.9 959.6L1059.6 888.9000000000001L953.6 782.85L882.85 853.55L988.9 959.6zM140.4 888.9L211.1 959.6L317.15 853.5999999999999L246.5 782.8L140.4 888.9z","horizAdvX":"1200"},"alarm-warning-line":{"path":["M0 0h24v24H0z","M4 20v-6a8 8 0 1 1 16 0v6h1v2H3v-2h1zm2 0h12v-6a6 6 0 1 0-12 0v6zm5-18h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222zM7 14a5 5 0 0 1 5-5v2a3 3 0 0 0-3 3H7z"],"unicode":"","glyph":"M200 200V500A400 400 0 1 0 1000 500V200H1050V100H150V200H200zM300 200H900V500A300 300 0 1 1 300 500V200zM550 1100H650V950H550V1100zM988.9 959.6L1059.6 888.9000000000001L953.6 782.85L882.85 853.55L988.9 959.6zM140.4 888.9L211.1 959.6L317.15 853.5999999999999L246.5 782.8L140.4 888.9zM350 500A250 250 0 0 0 600 750V650A150 150 0 0 1 450 500H350z","horizAdvX":"1200"},"album-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 14c2.213 0 4-1.787 4-4s-1.787-4-4-4-4 1.787-4 4 1.787 4 4 4zm0-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 400C710.6500000000001 400 800 489.3499999999999 800 600S710.6500000000001 800 600 800S400 710.6500000000001 400 600S489.35 400 600 400zM600 650C627.5 650 650 627.5 650 600S627.5 550 600 550S550 572.5 550 600S572.5 650 600 650z","horizAdvX":"1200"},"album-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400z","horizAdvX":"1200"},"alert-fill":{"path":["M0 0h24v24H0z","M12.866 3l9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0zM11 16v2h2v-2h-2zm0-7v5h2V9h-2z"],"unicode":"","glyph":"M643.3 1050L1119.6 225A50 50 0 0 0 1076.3 150H123.7A50 50 0 0 0 80.4 225L556.7 1050A50 50 0 0 0 643.3 1050zM550 400V300H650V400H550zM550 750V500H650V750H550z","horizAdvX":"1200"},"alert-line":{"path":["M0 0h24v24H0z","M12.866 3l9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0zm-8.66 16h15.588L12 5.5 4.206 19zM11 16h2v2h-2v-2zm0-7h2v5h-2V9z"],"unicode":"","glyph":"M643.3 1050L1119.6 225A50 50 0 0 0 1076.3 150H123.7A50 50 0 0 0 80.4 225L556.7 1050A50 50 0 0 0 643.3 1050zM210.3 250H989.6999999999998L600 925L210.3 250zM550 400H650V300H550V400zM550 750H650V500H550V750z","horizAdvX":"1200"},"aliens-fill":{"path":["M0 0h24v24H0z","M12 2a8.5 8.5 0 0 1 8.5 8.5c0 6.5-5.5 12-8.5 12s-8.5-5.5-8.5-12A8.5 8.5 0 0 1 12 2zm5.5 10a4.5 4.5 0 0 0-4.475 4.975 4.5 4.5 0 0 0 4.95-4.95A4.552 4.552 0 0 0 17.5 12zm-11 0c-.16 0-.319.008-.475.025a4.5 4.5 0 0 0 4.95 4.95A4.5 4.5 0 0 0 6.5 12z"],"unicode":"","glyph":"M600 1100A424.99999999999994 424.99999999999994 0 0 0 1025 675C1025 350 750 75 600 75S175 350 175 675A424.99999999999994 424.99999999999994 0 0 0 600 1100zM875 600A225 225 0 0 1 651.25 351.2499999999999A225 225 0 0 1 898.7500000000001 598.7499999999999A227.6 227.6 0 0 1 875 600zM325 600C317 600 309.05 599.6 301.25 598.75A225 225 0 0 1 548.7500000000001 351.2499999999999A225 225 0 0 1 325 600z","horizAdvX":"1200"},"aliens-line":{"path":["M0 0h24v24H0z","M12 2a8.5 8.5 0 0 1 8.5 8.5c0 6.5-5.5 12-8.5 12s-8.5-5.5-8.5-12A8.5 8.5 0 0 1 12 2zm0 2a6.5 6.5 0 0 0-6.5 6.5c0 4.794 4.165 10 6.5 10s6.5-5.206 6.5-10A6.5 6.5 0 0 0 12 4zm5.5 7c.16 0 .319.008.475.025a4.5 4.5 0 0 1-4.95 4.95A4.5 4.5 0 0 1 17.5 11zm-11 0a4.5 4.5 0 0 1 4.475 4.975 4.5 4.5 0 0 1-4.95-4.95C6.18 11.008 6.34 11 6.5 11z"],"unicode":"","glyph":"M600 1100A424.99999999999994 424.99999999999994 0 0 0 1025 675C1025 350 750 75 600 75S175 350 175 675A424.99999999999994 424.99999999999994 0 0 0 600 1100zM600 1000A325 325 0 0 1 275 675C275 435.3 483.2499999999999 175 600 175S925 435.3 925 675A325 325 0 0 1 600 1000zM875 650C883 650 890.9499999999999 649.6 898.7500000000001 648.75A225 225 0 0 0 651.2500000000001 401.2499999999999A225 225 0 0 0 875 650zM325 650A225 225 0 0 0 548.75 401.25A225 225 0 0 0 301.25 648.7500000000001C309 649.6 317 650 325 650z","horizAdvX":"1200"},"align-bottom":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zm5-6h3l-4 4-4-4h3V3h2v10zm10 0h3l-4 4-4-4h3V3h2v10z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM400 550H550L350 350L150 550H300V1050H400V550zM900 550H1050L850 350L650 550H800V1050H900V550z","horizAdvX":"1200"},"align-center":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm2 15h14v2H5v-2zm-2-5h18v2H3v-2zm2-5h14v2H5V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM250 250H950V150H250V250zM150 500H1050V400H150V500zM250 750H950V650H250V750z","horizAdvX":"1200"},"align-justify":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h18v2H3v-2zm0-5h18v2H3v-2zm0-5h18v2H3V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H1050V150H150V250zM150 500H1050V400H150V500zM150 750H1050V650H150V750z","horizAdvX":"1200"},"align-left":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h14v2H3v-2zm0-5h18v2H3v-2zm0-5h14v2H3V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H850V150H150V250zM150 500H1050V400H150V500zM150 750H850V650H150V750z","horizAdvX":"1200"},"align-right":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm4 15h14v2H7v-2zm-4-5h18v2H3v-2zm4-5h14v2H7V9z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM350 250H1050V150H350V250zM150 500H1050V400H150V500zM350 750H1050V650H350V750z","horizAdvX":"1200"},"align-top":{"path":["M0 0h24v24H0z","M3 3h18v2H3V3zm5 8v10H6V11H3l4-4 4 4H8zm10 0v10h-2V11h-3l4-4 4 4h-3z"],"unicode":"","glyph":"M150 1050H1050V950H150V1050zM400 650V150H300V650H150L350 850L550 650H400zM900 650V150H800V650H650L850 850L1050 650H900z","horizAdvX":"1200"},"align-vertically":{"path":["M0 0h24v24H0z","M3 11h18v2H3v-2zm15 7v3h-2v-3h-3l4-4 4 4h-3zM8 18v3H6v-3H3l4-4 4 4H8zM18 6h3l-4 4-4-4h3V3h2v3zM8 6h3l-4 4-4-4h3V3h2v3z"],"unicode":"","glyph":"M150 650H1050V550H150V650zM900 300V150H800V300H650L850 500L1050 300H900zM400 300V150H300V300H150L350 500L550 300H400zM900 900H1050L850 700L650 900H800V1050H900V900zM400 900H550L350 700L150 900H300V1050H400V900z","horizAdvX":"1200"},"alipay-fill":{"path":["M0 0h24v24H0z","M21.422 15.358c-3.83-1.153-6.055-1.84-6.678-2.062a12.41 12.41 0 0 0 1.32-3.32H12.8V8.872h4v-.68h-4V6.344h-1.536c-.28 0-.312.248-.312.248v1.592H7.2v.68h3.752v1.104H7.88v.616h6.224a10.972 10.972 0 0 1-.888 2.176c-1.408-.464-2.192-.784-3.912-.944-3.256-.312-4.008 1.48-4.128 2.576C5 16.064 6.48 17.424 8.688 17.424s3.68-1.024 5.08-2.72c1.167.558 3.338 1.525 6.514 2.902A9.99 9.99 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.983 9.983 0 0 1-.578 3.358zm-12.99 1.01c-2.336 0-2.704-1.48-2.584-2.096.12-.616.8-1.416 2.104-1.416 1.496 0 2.832.384 4.44 1.16-1.136 1.48-2.52 2.352-3.96 2.352z"],"unicode":"","glyph":"M1071.1000000000001 432.1C879.5999999999999 489.75 768.35 524.0999999999999 737.2 535.1999999999999A620.5 620.5 0 0 1 803.2 701.1999999999999H640V756.4H840V790.4H640V882.8H563.2C549.2 882.8 547.6000000000001 870.4 547.6000000000001 870.4V790.8H360V756.8H547.6V701.6H394V670.8000000000001H705.1999999999999A548.6 548.6 0 0 0 660.8 562C590.4 585.2 551.1999999999999 601.2 465.1999999999999 609.2C302.3999999999999 624.8000000000001 264.7999999999999 535.2 258.7999999999999 480.4C250 396.8 324 328.8000000000001 434.4000000000001 328.8000000000001S618.4 380.0000000000001 688.4000000000001 464.8000000000001C746.75 436.9000000000001 855.3000000000001 388.5500000000001 1014.1 319.7000000000001A499.5000000000001 499.5000000000001 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600A499.15 499.15 0 0 0 1071.1000000000001 432.1zM421.6 381.5999999999999C304.8 381.5999999999999 286.4 455.5999999999999 292.4000000000001 486.3999999999999C298.4000000000001 517.1999999999999 332.4000000000001 557.1999999999999 397.6 557.1999999999999C472.4 557.1999999999999 539.2 537.9999999999999 619.6 499.1999999999999C562.8000000000001 425.2 493.6000000000001 381.5999999999999 421.6000000000002 381.5999999999999z","horizAdvX":"1200"},"alipay-line":{"path":["M0 0h24v24H0z","M18.408 16.79c-2.173-.95-3.72-1.646-4.64-2.086-1.4 1.696-2.872 2.72-5.08 2.72S5 16.064 5.176 14.392c.12-1.096.872-2.888 4.128-2.576 1.72.16 2.504.48 3.912.944.36-.664.664-1.4.888-2.176H7.88v-.616h3.072V8.864H7.2v-.68h3.752V6.592s.032-.248.312-.248H12.8v1.848h4v.68h-4v1.104h3.264a12.41 12.41 0 0 1-1.32 3.32c.51.182 2.097.676 4.76 1.483a8 8 0 1 0-1.096 2.012zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.568-5.632c1.44 0 2.824-.872 3.96-2.352-1.608-.776-2.944-1.16-4.44-1.16-1.304 0-1.984.8-2.104 1.416-.12.616.248 2.096 2.584 2.096z"],"unicode":"","glyph":"M920.4 360.5C811.75 408 734.4 442.8000000000001 688.4000000000001 464.8000000000001C618.4 380.0000000000001 544.8000000000001 328.8000000000001 434.4000000000001 328.8000000000001S250 396.8 258.8 480.4C264.8 535.2 302.4 624.8000000000001 465.2 609.2C551.2 601.2 590.4 585.2 660.8000000000001 562.0000000000001C678.8000000000001 595.2 694 632.0000000000001 705.2 670.8000000000001H394V701.6000000000001H547.6V756.8H360V790.8H547.6V870.4000000000001S549.2 882.8 563.1999999999999 882.8H640V790.4H840V756.4H640V701.2H803.2A620.5 620.5 0 0 0 737.2 535.2C762.6999999999999 526.1 842.0500000000001 501.4 975.2 461.05A400 400 0 1 1 920.3999999999997 360.45zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM421.6 381.5999999999999C493.6 381.5999999999999 562.8 425.2 619.6 499.1999999999999C539.1999999999999 537.9999999999999 472.4 557.1999999999999 397.6 557.1999999999999C332.3999999999999 557.1999999999999 298.4 517.1999999999999 292.4 486.3999999999999C286.3999999999999 455.5999999999999 304.8 381.5999999999999 421.5999999999999 381.5999999999999z","horizAdvX":"1200"},"amazon-fill":{"path":["M0 0h24v24H0z","M21.996 18.23c0 .727-.405 2.127-1.314 2.896-.182.14-.365.061-.285-.143.265-.648.872-2.147.587-2.492-.2-.262-1.03-.243-1.738-.182-.324.041-.607.06-.828.105-.203.017-.245-.163-.041-.303.262-.185.545-.325.87-.428 1.15-.344 2.48-.137 2.67.083.036.042.08.16.08.463zm-1.921 1.294a7.426 7.426 0 0 1-.83.55c-2.122 1.275-4.87 1.943-7.258 1.943-3.843 0-7.28-1.417-9.888-3.788-.223-.182-.038-.446.223-.303 2.81 1.64 6.288 2.632 9.889 2.632 2.265 0 4.708-.424 7.035-1.336.162-.061.344-.144.503-.202.367-.165.69.243.326.504zm-6.17-11.03c0-1.041.041-1.654-.304-2.18-.306-.433-.833-.693-1.568-.652-.798.044-1.655.567-1.874 1.526-.042.22-.171.436-.436.483l-2.436-.31c-.174-.04-.438-.173-.352-.521C7.458 4.088 9.81 3.129 12.033 3h.523c1.22 0 2.787.349 3.79 1.264 1.217 1.136 1.088 2.662 1.088 4.32v3.927c0 1.178.477 1.7.958 2.314.13.219.174.477-.045.655-.48.435-1.394 1.219-1.917 1.654-.174.133-.488.147-.61.045-.77-.645-.958-1.003-1.435-1.658-.83.871-1.526 1.352-2.355 1.613a7.035 7.035 0 0 1-1.784.216c-2.09 0-3.746-1.303-3.746-3.88 0-2.049 1.09-3.442 2.7-4.101 1.61-.66 3.95-.87 4.704-.874zm-.478 5.192c.52-.872.477-1.586.477-3.185-.651 0-1.306.045-1.871.178-1.045.303-1.874.961-1.874 2.355 0 1.09.567 1.832 1.525 1.832.132 0 .248-.016.349-.045.67-.186 1.088-.522 1.394-1.135z"],"unicode":"","glyph":"M1099.8 288.5C1099.8 252.15 1079.55 182.1500000000001 1034.1 143.7000000000001C1025 136.6999999999998 1015.85 140.6499999999999 1019.85 150.8499999999999C1033.1 183.25 1063.4499999999998 258.2 1049.1999999999998 275.4500000000001C1039.2 288.5500000000001 997.6999999999998 287.5999999999999 962.3 284.55C946.1 282.4999999999999 931.95 281.55 920.9 279.3C910.75 278.45 908.6499999999997 287.45 918.85 294.45C931.95 303.7 946.1 310.7 962.35 315.85C1019.85 333.0500000000001 1086.35 322.7000000000001 1095.8500000000001 311.7000000000001C1097.65 309.6 1099.85 303.7000000000001 1099.85 288.5500000000001zM1003.75 223.8A371.3 371.3 0 0 0 962.25 196.3C856.1500000000001 132.55 718.75 99.1499999999999 599.3500000000001 99.1499999999999C407.2000000000001 99.1499999999999 235.3500000000001 170 104.9500000000001 288.5499999999999C93.8000000000001 297.6499999999998 103.0500000000001 310.8499999999999 116.1000000000001 303.7C256.6000000000001 221.6999999999998 430.5000000000002 172.0999999999999 610.5500000000001 172.0999999999999C723.8000000000002 172.0999999999999 845.9500000000002 193.2999999999999 962.3 238.8999999999998C970.4 241.9499999999997 979.5000000000002 246.0999999999997 987.4500000000002 248.9999999999999C1005.8000000000002 257.2499999999998 1021.9500000000002 236.8499999999999 1003.7500000000002 223.7999999999997zM695.25 775.3C695.25 827.3499999999999 697.3 858 680.05 884.3C664.75 905.9499999999998 638.4 918.9499999999998 601.65 916.8999999999997C561.75 914.7 518.9 888.55 507.9499999999999 840.5999999999999C505.85 829.5999999999999 499.4 818.8 486.15 816.4499999999999L364.35 831.9499999999999C355.6499999999999 833.9499999999999 342.45 840.5999999999999 346.75 858C372.9000000000001 995.6 490.5 1043.55 601.65 1050H627.8C688.8 1050 767.15 1032.55 817.3 986.8C878.15 930 871.7 853.7 871.7 770.8V574.45C871.7 515.55 895.5500000000001 489.45 919.6 458.75C926.1 447.8000000000001 928.3 434.9 917.35 426.0000000000001C893.3499999999999 404.25 847.65 365.0500000000001 821.4999999999998 343.3C812.7999999999998 336.65 797.0999999999998 335.9500000000001 790.9999999999999 341.05C752.4999999999999 373.2999999999999 743.0999999999998 391.2 719.2499999999998 423.9499999999998C677.7499999999998 380.3999999999999 642.9499999999998 356.3499999999999 601.4999999999998 343.2999999999999A351.75 351.75 0 0 0 512.2999999999997 332.4999999999998C407.7999999999998 332.4999999999998 324.9999999999997 397.6499999999998 324.9999999999997 526.4999999999997C324.9999999999997 628.9499999999997 379.4999999999997 698.5999999999997 459.9999999999998 731.5499999999997C540.4999999999998 764.5499999999997 657.4999999999998 775.0499999999996 695.1999999999998 775.2499999999997zM671.35 515.6999999999999C697.3499999999999 559.3 695.2 594.9999999999999 695.2 674.9499999999999C662.65 674.9499999999999 629.9 672.6999999999999 601.65 666.05C549.4 650.8999999999999 507.9499999999999 617.9999999999999 507.9499999999999 548.2999999999998C507.9499999999999 493.7999999999998 536.3 456.6999999999998 584.1999999999999 456.6999999999998C590.8 456.6999999999998 596.5999999999999 457.4999999999999 601.65 458.9499999999998C635.15 468.2499999999999 656.05 485.0499999999998 671.35 515.6999999999998z","horizAdvX":"1200"},"amazon-line":{"path":["M0 0h24v24H0z","M15.625 14.62c-1.107 1.619-2.728 2.384-4.625 2.384-2.304 0-4.276-1.773-3.993-4.124.315-2.608 2.34-3.73 5.708-4.143.601-.073.85-.094 2.147-.19l.138-.01v-.215C15 6.526 13.932 5.3 12.5 5.3c-1.437 0-2.44.747-3.055 2.526l-1.89-.652C8.442 4.604 10.193 3.3 12.5 3.3c2.603 0 4.5 2.178 4.5 5.022 0 2.649.163 4.756.483 5.557.356.892.486 1.117.884 1.613l-1.56 1.251c-.523-.652-.753-1.049-1.181-2.122v-.001zm5.632 5.925c-.271.2-.742.081-.529-.44.265-.648.547-1.408.262-1.752-.21-.255-.467-.382-1.027-.382-.46 0-.69.06-.995.08-.204.013-.293-.297-.091-.44a2.96 2.96 0 0 1 .87-.428c1.15-.344 2.505-.155 2.67.083.365.53-.199 2.569-1.16 3.28zm-1.182-1.084a7.555 7.555 0 0 1-.83.695c-2.122 1.616-4.87 2.46-7.258 2.46-3.843 0-7.28-1.793-9.888-4.795-.223-.23-.038-.566.223-.384 2.81 2.077 6.288 3.333 9.889 3.333 2.265 0 4.708-.537 7.035-1.693.162-.076.344-.18.503-.254.367-.21.69.306.326.638zm-5.065-8.92c-1.258.094-1.496.113-2.052.181-2.552.313-3.797 1.003-3.965 2.398-.126 1.043.81 1.884 2.007 1.884 2.039 0 3.517-1.228 4.022-4.463h-.012z"],"unicode":"","glyph":"M781.25 469C725.9000000000001 388.05 644.85 349.8000000000001 550 349.8000000000001C434.8 349.8000000000001 336.2 438.4500000000001 350.35 556C366.1 686.4000000000001 467.35 742.5 635.75 763.1500000000001C665.8 766.8000000000002 678.25 767.8500000000001 743.1 772.6500000000001L750 773.1500000000001V783.9000000000001C750 873.7 696.6 935 625 935C553.15 935 503 897.6500000000001 472.25 808.7L377.7500000000001 841.3C422.1 969.8 509.65 1035 625 1035C755.15 1035 850 926.1 850 783.9000000000001C850 651.45 858.15 546.1 874.15 506.0500000000001C891.9500000000002 461.45 898.45 450.2000000000001 918.35 425.4000000000001L840.3500000000001 362.85C814.2000000000002 395.4500000000002 802.7 415.3000000000001 781.3000000000001 468.95V469zM1062.85 172.75C1049.3 162.7500000000002 1025.7499999999998 168.7000000000001 1036.3999999999999 194.7500000000001C1049.6499999999999 227.1500000000001 1063.75 265.1500000000002 1049.5 282.3500000000002C1038.9999999999998 295.1 1026.15 301.4500000000002 998.1499999999997 301.4500000000002C975.1499999999997 301.4500000000002 963.6499999999997 298.4500000000003 948.3999999999997 297.4500000000003C938.1999999999998 296.8000000000002 933.7499999999998 312.3000000000003 943.8499999999998 319.4500000000003A148 148 0 0 0 987.3499999999998 340.8500000000004C1044.8499999999997 358.0500000000004 1112.5999999999997 348.6000000000004 1120.8499999999997 336.7000000000005C1139.0999999999997 310.2000000000004 1110.8999999999996 208.2500000000005 1062.8499999999997 172.7000000000003zM1003.75 226.9500000000001A377.74999999999994 377.74999999999994 0 0 0 962.25 192.2000000000001C856.1500000000001 111.4000000000001 718.75 69.2000000000001 599.3500000000001 69.2000000000001C407.2000000000001 69.2000000000001 235.3500000000001 158.8499999999999 104.9500000000001 308.9500000000001C93.8000000000001 320.4500000000002 103.0500000000001 337.25 116.1000000000001 328.1500000000001C256.6000000000001 224.3000000000002 430.5000000000002 161.5000000000002 610.5500000000001 161.5000000000002C723.8000000000002 161.5000000000002 845.9500000000002 188.3500000000001 962.3 246.1500000000003C970.4 249.9500000000003 979.5000000000002 255.1500000000002 987.4500000000002 258.8500000000004C1005.8000000000002 269.3500000000004 1021.9500000000002 243.5500000000003 1003.7500000000002 226.9500000000003zM750.4999999999999 672.95C687.5999999999999 668.2500000000001 675.6999999999999 667.3000000000001 647.8999999999999 663.9000000000001C520.3 648.2500000000001 458.0499999999999 613.7500000000001 449.6499999999999 544.0000000000001C443.35 491.8500000000001 490.15 449.8000000000001 549.9999999999999 449.8000000000001C651.9499999999999 449.8000000000001 725.8499999999999 511.2 751.0999999999999 672.9500000000002H750.4999999999999z","horizAdvX":"1200"},"anchor-fill":{"path":["M0 0h24v24H0z","M13 9.874v10.054c3.619-.453 6.487-3.336 6.938-6.972H17L20.704 7A10.041 10.041 0 0 1 22 11.95C22 17.5 17.523 22 12 22S2 17.5 2 11.95c0-1.8.471-3.489 1.296-4.95L7 12.956H4.062c.451 3.636 3.32 6.519 6.938 6.972V9.874A4.002 4.002 0 0 1 12 2a4 4 0 0 1 1 7.874zM12 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M650 706.3V203.5999999999999C830.95 226.2499999999999 974.3500000000003 370.3999999999999 996.9 552.2H850L1035.2 850A502.05000000000007 502.05000000000007 0 0 0 1100 602.5C1100 325 876.15 100 600 100S100 325 100 602.5C100 692.5 123.55 776.95 164.8 850L350 552.2H203.1C225.65 370.4000000000001 369.1 226.2499999999999 550 203.5999999999999V706.3A200.10000000000002 200.10000000000002 0 0 0 600 1100A200 200 0 0 0 650 706.3000000000001zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"anchor-line":{"path":["M0 0h24v24H0z","M2.05 11H7v2H4.062A8.004 8.004 0 0 0 11 19.938V9.874A4.002 4.002 0 0 1 12 2a4 4 0 0 1 1 7.874v10.064A8.004 8.004 0 0 0 19.938 13H17v-2h4.95c.033.329.05.663.05 1 0 5.523-4.477 10-10 10S2 17.523 2 12c0-.337.017-.671.05-1zM12 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M102.5 650H350V550H203.1A400.20000000000005 400.20000000000005 0 0 1 550 203.1V706.3A200.10000000000002 200.10000000000002 0 0 0 600 1100A200 200 0 0 0 650 706.3000000000001V203.1A400.20000000000005 400.20000000000005 0 0 1 996.9 550H850V650H1097.5C1099.15 633.55 1100 616.85 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600C100 616.85 100.85 633.55 102.5 650zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"ancient-gate-fill":{"path":["M0 0h24v24H0z","M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-6v-2a3 3 0 0 0-5.995-.176L9 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-1.865-7a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072z"],"unicode":"","glyph":"M945.05 700A149.95000000000002 149.95000000000002 0 0 1 1148.8 644.35A175 175 0 0 0 1050.05 466.85L1050 150H750V250A150 150 0 0 1 450.25 258.8L450 250V150H150V466.8000000000001A175 175 0 0 0 51.05 644.4499999999999A149.95000000000002 149.95000000000002 0 0 1 254.9 700H945.05zM851.8000000000001 1050A175 175 0 0 1 1074.1 907A175 175 0 0 0 909.6 750.25L900 750H300A175 175 0 0 0 125.9 907A175 175 0 0 1 348.2000000000001 1050H851.8000000000001z","horizAdvX":"1200"},"ancient-gate-line":{"path":["M0 0h24v24H0z","M18.901 10a2.999 2.999 0 0 0 4.075 1.113 3.5 3.5 0 0 1-1.975 3.55L21 21h-7v-2a2 2 0 0 0-1.85-1.995L12 17a2 2 0 0 0-1.995 1.85L10 19v2H3v-6.336a3.5 3.5 0 0 1-1.979-3.553A2.999 2.999 0 0 0 5.098 10h13.803zm-.971 2H6.069l-.076.079c-.431.42-.935.76-1.486 1.002l-.096.039.589.28-.001 5.6 3.002-.001v-.072l.01-.223c.149-2.016 1.78-3.599 3.854-3.698l.208-.005.223.01a4 4 0 0 1 3.699 3.787l.004.201L19 19l.001-5.6.587-.28-.095-.04a5.002 5.002 0 0 1-1.486-1.001L17.93 12zm-.894-9a3.5 3.5 0 0 0 4.446 2.86 3.5 3.5 0 0 1-3.29 3.135L18 9H6a3.5 3.5 0 0 1-3.482-3.14A3.5 3.5 0 0 0 6.964 3h10.072zM15.6 5H8.399a5.507 5.507 0 0 1-1.49 1.816L6.661 7h10.677l-.012-.008a5.518 5.518 0 0 1-1.579-1.722L15.6 5z"],"unicode":"","glyph":"M945.05 700A149.95000000000002 149.95000000000002 0 0 1 1148.8 644.35A175 175 0 0 0 1050.05 466.85L1050 150H700V250A100 100 0 0 1 607.5 349.75L600 350A100 100 0 0 1 500.2499999999999 257.4999999999999L500 250V150H150V466.8000000000001A175 175 0 0 0 51.05 644.4499999999999A149.95000000000002 149.95000000000002 0 0 1 254.9 700H945.05zM896.5 600H303.45L299.6500000000001 596.05C278.1 575.05 252.9 558.05 225.35 545.9499999999999L220.55 544L250 530L249.95 250L400.05 250.0500000000001V253.65L400.55 264.8C408 365.5999999999999 489.55 444.75 593.2499999999999 449.7000000000001L603.65 449.9500000000001L614.8 449.4500000000001A200 200 0 0 0 799.75 260.1000000000002L799.9499999999999 250.0500000000001L950 250L950.05 530L979.4 544L974.65 545.9999999999999A250.09999999999997 250.09999999999997 0 0 0 900.35 596.0499999999998L896.5 600zM851.8000000000001 1050A175 175 0 0 1 1074.1 907A175 175 0 0 0 909.6 750.25L900 750H300A175 175 0 0 0 125.9 907A175 175 0 0 1 348.2000000000001 1050H851.8000000000001zM780 950H419.95A275.34999999999997 275.34999999999997 0 0 0 345.45 859.2L333.05 850H866.9000000000001L866.3000000000001 850.4A275.90000000000003 275.90000000000003 0 0 0 787.35 936.5L780 950z","horizAdvX":"1200"},"ancient-pavilion-fill":{"path":["M0 0h24v24H0z","M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7z"],"unicode":"","glyph":"M625.65 1099.95A450.2 450.2 0 0 1 1124.15 806.1A225.05 225.05 0 0 0 950 605.6V250L1050 249.95V149.9500000000001H150V249.95H250V605.5999999999999A225.15 225.15 0 0 0 75.8 806.0999999999999A450.2 450.2 0 0 1 574.4 1099.8999999999999H625.65zM850 600H350V250H850V600z","horizAdvX":"1200"},"ancient-pavilion-line":{"path":["M0 0h24v24H0z","M12.513 2.001a9.004 9.004 0 0 0 9.97 5.877A4.501 4.501 0 0 1 19 11.888V19l2 .001v2H3v-2h2v-7.113a4.503 4.503 0 0 1-3.484-4.01 9.004 9.004 0 0 0 9.972-5.876h1.025zM17 12H7V19h10v-7zm-5-6.673l-.11.155A11.012 11.012 0 0 1 5.4 9.736l-.358.073.673.19h12.573l.668-.19-.011-.002a11.01 11.01 0 0 1-6.836-4.326L12 5.326z"],"unicode":"","glyph":"M625.65 1099.95A450.2 450.2 0 0 1 1124.15 806.1A225.05 225.05 0 0 0 950 605.6V250L1050 249.95V149.9500000000001H150V249.95H250V605.5999999999999A225.15 225.15 0 0 0 75.8 806.0999999999999A450.2 450.2 0 0 1 574.4 1099.8999999999999H625.65zM850 600H350V250H850V600zM600 933.65L594.5 925.9A550.6 550.6 0 0 0 270 713.2L252.1 709.55L285.7500000000001 700.05H914.4L947.8 709.55L947.25 709.65A550.5 550.5 0 0 0 605.45 925.95L600 933.7z","horizAdvX":"1200"},"android-fill":{"path":["M0 0h24v24H0z","M6.382 3.968A8.962 8.962 0 0 1 12 2c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453A8.962 8.962 0 0 1 21 11v1H3v-1c0-2.125.736-4.078 1.968-5.618L3.515 3.93l1.414-1.414 1.453 1.453zM3 14h18v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7zm6-5a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm6 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M319.1 1001.6A448.1 448.1 0 0 0 600 1100C706.25 1100 803.9 1063.2 880.9000000000001 1001.6L953.55 1074.25L1024.2500000000002 1003.55L951.6000000000003 930.9A448.1 448.1 0 0 0 1050 650V600H150V650C150 756.25 186.8 853.9000000000001 248.4 930.9L175.75 1003.5L246.45 1074.2L319.1 1001.55zM150 500H1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V500zM450 750A50 50 0 1 1 450 850A50 50 0 0 1 450 750zM750 750A50 50 0 1 1 750 850A50 50 0 0 1 750 750z","horizAdvX":"1200"},"android-line":{"path":["M0 0h24v24H0z","M19 13H5v7h14v-7zm0-2a7 7 0 0 0-14 0h14zM6.382 3.968A8.962 8.962 0 0 1 12 2c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453A8.962 8.962 0 0 1 21 11v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11c0-2.125.736-4.078 1.968-5.618L3.515 3.93l1.414-1.414 1.453 1.453zM9 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm6 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M950 550H250V200H950V550zM950 650A350 350 0 0 1 250 650H950zM319.1 1001.6A448.1 448.1 0 0 0 600 1100C706.25 1100 803.9 1063.2 880.9000000000001 1001.6L953.55 1074.25L1024.2500000000002 1003.55L951.6000000000003 930.9A448.1 448.1 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650C150 756.25 186.8 853.9000000000001 248.4 930.9L175.75 1003.5L246.45 1074.2L319.1 1001.55zM450 750A50 50 0 1 0 450 850A50 50 0 0 0 450 750zM750 750A50 50 0 1 0 750 850A50 50 0 0 0 750 750z","horizAdvX":"1200"},"angularjs-fill":{"path":["M0 0h24v24H0z","M12 2l9.3 3.32-1.418 12.31L12 22l-7.882-4.37L2.7 5.32 12 2zm0 2.21L6.186 17.26h2.168l1.169-2.92h4.934l1.17 2.92h2.167L12 4.21zm1.698 8.33h-3.396L12 8.45l1.698 4.09z"],"unicode":"","glyph":"M600 1100L1065 934L994.1 318.4999999999999L600 100L205.9 318.5L135 934L600 1100zM600 989.5L309.3 336.9999999999999H417.7L476.15 482.9999999999999H722.85L781.35 336.9999999999999H889.7L600 989.5zM684.9 573H515.1L600 777.5L684.9 573z","horizAdvX":"1200"},"angularjs-line":{"path":["M0 0h24v24H0z","M17.523 16.65l.49-.27 1.118-9.71L12 4.123 4.869 6.669l1.119 9.71.473.263L12 4.21l5.523 12.44zm-1.099.61h-.798l-1.169-2.92H9.523l-1.17 2.92h-.777L12 19.713l4.424-2.453zM12 2l9.3 3.32-1.418 12.31L12 22l-7.882-4.37L2.7 5.32 12 2zm1.698 10.54L12 8.45l-1.698 4.09h3.396z"],"unicode":"","glyph":"M876.15 367.5000000000001L900.6499999999999 381L956.5499999999998 866.5000000000001L600 993.85L243.45 866.55L299.4 381.05L323.05 367.8999999999999L600 989.5L876.15 367.5000000000001zM821.1999999999999 337.0000000000001H781.3L722.8499999999999 483.0000000000001H476.15L417.65 337.0000000000001H378.8L600 214.3499999999999L821.1999999999999 336.9999999999999zM600 1100L1065 934L994.1 318.4999999999999L600 100L205.9 318.5L135 934L600 1100zM684.9 573L600 777.5L515.1 573H684.9z","horizAdvX":"1200"},"anticlockwise-2-fill":{"path":["M0 0h24v24H0z","M14 4h2a5 5 0 0 1 5 5v4h-2V9a3 3 0 0 0-3-3h-2v3L9 5l5-4v3zm1 7v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1z"],"unicode":"","glyph":"M700 1000H800A250 250 0 0 0 1050 750V550H950V750A150 150 0 0 1 800 900H700V750L450 950L700 1150V1000zM750 650V150A50 50 0 0 0 700 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H700A50 50 0 0 0 750 650z","horizAdvX":"1200"},"anticlockwise-2-line":{"path":["M0 0h24v24H0z","M13.414 6l1.829 1.828-1.415 1.415L9.586 5 13.828.757l1.415 1.415L13.414 4H16a5 5 0 0 1 5 5v4h-2V9a3 3 0 0 0-3-3h-2.586zM15 11v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1zm-2 1H5v8h8v-8z"],"unicode":"","glyph":"M670.6999999999999 900L762.15 808.5999999999999L691.4 737.8499999999999L479.3 950L691.4 1162.15L762.15 1091.4L670.6999999999999 1000H800A250 250 0 0 0 1050 750V550H950V750A150 150 0 0 1 800 900H670.6999999999999zM750 650V150A50 50 0 0 0 700 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H700A50 50 0 0 0 750 650zM650 600H250V200H650V600z","horizAdvX":"1200"},"anticlockwise-fill":{"path":["M0 0h24v24H0z","M6 10h3l-4 5-4-5h3V8a5 5 0 0 1 5-5h4v2H9a3 3 0 0 0-3 3v2zm5-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H11a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M300 700H450L250 450L50 700H200V800A250 250 0 0 0 450 1050H650V950H450A150 150 0 0 1 300 800V700zM550 750H1050A50 50 0 0 0 1100 700V200A50 50 0 0 0 1050 150H550A50 50 0 0 0 500 200V700A50 50 0 0 0 550 750z","horizAdvX":"1200"},"anticlockwise-line":{"path":["M0 0h24v24H0z","M11 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H11a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm1 2v8h8v-8h-8zm-6-.414l1.828-1.829 1.415 1.415L5 14.414.757 10.172l1.415-1.415L4 10.586V8a5 5 0 0 1 5-5h4v2H9a3 3 0 0 0-3 3v2.586z"],"unicode":"","glyph":"M550 750H1050A50 50 0 0 0 1100 700V200A50 50 0 0 0 1050 150H550A50 50 0 0 0 500 200V700A50 50 0 0 0 550 750zM600 650V250H1000V650H600zM300 670.6999999999999L391.4000000000001 762.1500000000001L462.15 691.4L250 479.3000000000001L37.85 691.4L108.6 762.1499999999999L200 670.6999999999999V800A250 250 0 0 0 450 1050H650V950H450A150 150 0 0 1 300 800V670.6999999999999z","horizAdvX":"1200"},"app-store-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM8.823 15.343c-.395-.477-.886-.647-1.479-.509l-.15.041-.59 1.016a.823.823 0 0 0 1.366.916l.062-.093.79-1.371zM13.21 8.66c-.488.404-.98 1.597-.29 2.787l3.04 5.266a.824.824 0 0 0 1.476-.722l-.049-.1-.802-1.392h1.19a.82.82 0 0 0 .822-.823.82.82 0 0 0-.72-.816l-.103-.006h-2.14L13.44 9.057l-.23-.396zm.278-3.044a.825.825 0 0 0-1.063.21l-.062.092-.367.633-.359-.633a.824.824 0 0 0-1.476.722l.049.1.838 1.457-2.685 4.653H6.266a.82.82 0 0 0-.822.822c0 .421.312.766.719.817l.103.006h7.48c.34-.64-.06-1.549-.81-1.638l-.121-.007h-2.553l3.528-6.11a.823.823 0 0 0-.302-1.124z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM441.1500000000001 432.85C421.4000000000001 456.7 396.85 465.2 367.2 458.3000000000001L359.7 456.25L330.2 405.4500000000001A41.15 41.15 0 0 1 398.5000000000001 359.6500000000001L401.6 364.3000000000001L441.1 432.8500000000002zM660.5 767C636.1 746.8 611.5 687.15 646.0000000000001 627.6500000000001L798 364.3499999999999A41.199999999999996 41.199999999999996 0 0 1 871.8 400.45L869.35 405.45L829.25 475.0499999999998H888.7500000000001A40.99999999999999 40.99999999999999 0 0 1 929.85 516.1999999999999A40.99999999999999 40.99999999999999 0 0 1 893.8500000000001 556.9999999999999L888.7 557.3H781.7L672 747.15L660.5 766.95zM674.4000000000001 919.2A41.25 41.25 0 0 1 621.25 908.7L618.1500000000001 904.1L599.8000000000001 872.45L581.8500000000001 904.1A41.199999999999996 41.199999999999996 0 0 1 508.0500000000001 868L510.5000000000001 863L552.4 790.1500000000001L418.15 557.5000000000001H313.3A40.99999999999999 40.99999999999999 0 0 1 272.2 516.4000000000001C272.2 495.3500000000001 287.8 478.1000000000001 308.1500000000001 475.5500000000002L313.3 475.2500000000001H687.3000000000001C704.3000000000001 507.2500000000001 684.3 552.7 646.8 557.1500000000001L640.75 557.5000000000001H513.1L689.5 863.0000000000001A41.15 41.15 0 0 1 674.4000000000001 919.2z","horizAdvX":"1200"},"app-store-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zM8.823 15.343l-.79 1.37a.823.823 0 1 1-1.428-.822l.589-1.016c.66-.206 1.201-.048 1.629.468zM13.21 8.66l2.423 4.194h2.141a.82.82 0 0 1 .823.822.82.82 0 0 1-.823.823h-1.19l.803 1.391a.824.824 0 0 1-1.427.823l-3.04-5.266c-.69-1.19-.198-2.383.29-2.787zm.278-3.044c.395.226.528.73.302 1.125l-3.528 6.109h2.553c.826 0 1.29.972.931 1.645h-7.48a.82.82 0 0 1-.822-.823.82.82 0 0 1 .822-.822h2.097l2.685-4.653-.838-1.456a.824.824 0 0 1 1.427-.823l.359.633.367-.633a.823.823 0 0 1 1.125-.302z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM441.1500000000001 432.85L401.6500000000001 364.3499999999999A41.15 41.15 0 1 0 330.2500000000001 405.45L359.7000000000001 456.2499999999999C392.7000000000001 466.5499999999998 419.7500000000001 458.6499999999999 441.1500000000001 432.8499999999999zM660.5 767L781.6500000000001 557.3000000000001H888.7A40.99999999999999 40.99999999999999 0 0 0 929.85 516.2A40.99999999999999 40.99999999999999 0 0 0 888.7 475.0500000000001H829.1999999999999L869.35 405.5000000000001A41.199999999999996 41.199999999999996 0 0 0 798 364.3500000000002L646.0000000000001 627.6500000000001C611.5000000000001 687.1500000000001 636.1 746.8000000000002 660.5 767.0000000000002zM674.4000000000001 919.2C694.1500000000001 907.9 700.8000000000001 882.7 689.5 862.95L513.1 557.5H640.7500000000001C682.0500000000001 557.5 705.25 508.9000000000001 687.3000000000001 475.25H313.3000000000001A40.99999999999999 40.99999999999999 0 0 0 272.2000000000001 516.4000000000001A40.99999999999999 40.99999999999999 0 0 0 313.3000000000001 557.5H418.1500000000001L552.4000000000001 790.1500000000001L510.5000000000001 862.95A41.199999999999996 41.199999999999996 0 0 0 581.8500000000001 904.1L599.8000000000001 872.45L618.1500000000002 904.1A41.15 41.15 0 0 0 674.4000000000002 919.2z","horizAdvX":"1200"},"apple-fill":{"path":["M0 0h24v24H0z","M11.624 7.222c-.876 0-2.232-.996-3.66-.96-1.884.024-3.612 1.092-4.584 2.784-1.956 3.396-.504 8.412 1.404 11.172.936 1.344 2.04 2.856 3.504 2.808 1.404-.06 1.932-.912 3.636-.912 1.692 0 2.172.912 3.66.876 1.512-.024 2.472-1.368 3.396-2.724 1.068-1.56 1.512-3.072 1.536-3.156-.036-.012-2.94-1.128-2.976-4.488-.024-2.808 2.292-4.152 2.4-4.212-1.32-1.932-3.348-2.148-4.056-2.196-1.848-.144-3.396 1.008-4.26 1.008zm3.12-2.832c.78-.936 1.296-2.244 1.152-3.54-1.116.048-2.46.744-3.264 1.68-.72.828-1.344 2.16-1.176 3.432 1.236.096 2.508-.636 3.288-1.572z"],"unicode":"","glyph":"M581.2 838.9C537.4000000000001 838.9 469.6 888.6999999999999 398.2000000000001 886.9C304 885.7 217.6 832.3 169 747.7C71.2000000000001 577.9 143.8000000000001 327.1000000000002 239.2000000000001 189.1C286.0000000000001 121.8999999999999 341.2000000000001 46.3000000000002 414.4000000000001 48.7C484.6 51.7 511.0000000000001 94.3 596.1999999999999 94.3C680.8 94.3 704.8 48.7 779.1999999999999 50.5C854.8 51.7 902.8 118.8999999999999 949 186.6999999999999C1002.4 264.6999999999998 1024.6000000000001 340.2999999999999 1025.8000000000002 344.4999999999999C1024 345.0999999999999 878.8000000000001 400.8999999999999 877.0000000000001 568.8999999999999C875.8000000000001 709.2999999999998 991.6 776.4999999999999 997.0000000000002 779.4999999999998C931 876.0999999999999 829.6000000000001 886.8999999999999 794.2 889.2999999999997C701.8 896.4999999999998 624.4 838.8999999999999 581.2 838.8999999999999zM737.2 980.5C776.1999999999999 1027.3 802 1092.7 794.8 1157.5C739 1155.1 671.8 1120.3 631.6 1073.5C595.5999999999999 1032.1 564.4 965.5 572.8 901.9C634.6 897.1 698.1999999999999 933.7 737.2 980.5z","horizAdvX":"1200"},"apple-line":{"path":["M0 0h24v24H0z","M15.729 8.208c-.473-.037-.981.076-1.759.373.066-.025-.742.29-.968.37-.502.175-.915.271-1.378.271-.458 0-.88-.092-1.366-.255-.155-.053-.311-.11-.505-.186-.082-.032-.382-.152-.448-.177-.648-.254-1.013-.35-1.316-.342-1.152.015-2.243.68-2.876 1.782-1.292 2.244-.577 6.299 1.312 9.031 1.006 1.444 1.556 1.96 1.778 1.953.222-.01.385-.057.783-.225l.167-.071c1.005-.429 1.71-.618 2.771-.618 1.021 0 1.703.186 2.668.602l.168.072c.398.17.542.208.792.202.358-.005.799-.417 1.778-1.854.268-.391.505-.803.71-1.22a7.354 7.354 0 0 1-.392-.347c-1.289-1.228-2.086-2.884-2.108-4.93a6.625 6.625 0 0 1 1.41-4.181 4.124 4.124 0 0 0-1.221-.25zm.155-1.994c.708.048 2.736.264 4.056 2.196-.108.06-2.424 1.404-2.4 4.212.036 3.36 2.94 4.476 2.976 4.488-.024.084-.468 1.596-1.536 3.156-.924 1.356-1.884 2.7-3.396 2.724-1.488.036-1.968-.876-3.66-.876-1.704 0-2.232.852-3.636.912-1.464.048-2.568-1.464-3.504-2.808-1.908-2.76-3.36-7.776-1.404-11.172.972-1.692 2.7-2.76 4.584-2.784 1.428-.036 2.784.96 3.66.96.864 0 2.412-1.152 4.26-1.008zm-1.14-1.824c-.78.936-2.052 1.668-3.288 1.572-.168-1.272.456-2.604 1.176-3.432.804-.936 2.148-1.632 3.264-1.68.144 1.296-.372 2.604-1.152 3.54z"],"unicode":"","glyph":"M786.4499999999999 789.5999999999999C762.8 791.45 737.4 785.8 698.5 770.95C701.8 772.2 661.3999999999999 756.45 650.0999999999999 752.45C624.9999999999999 743.7 604.35 738.9000000000001 581.1999999999999 738.9000000000001C558.3 738.9000000000001 537.1999999999999 743.5 512.9 751.6500000000001C505.15 754.3000000000002 497.35 757.1500000000001 487.6499999999999 760.95C483.5499999999999 762.5500000000001 468.55 768.55 465.2499999999999 769.8000000000001C432.8499999999999 782.5 414.5999999999999 787.3 399.45 786.9000000000001C341.8499999999999 786.1500000000001 287.3 752.9000000000001 255.6499999999999 697.8000000000001C191.0499999999999 585.6 226.7999999999999 382.85 321.2499999999999 246.25C371.5499999999999 174.0500000000002 399.0499999999999 148.25 410.1499999999999 148.6000000000001C421.2499999999999 149.1000000000001 429.3999999999999 151.4500000000001 449.2999999999999 159.8500000000001L457.6499999999999 163.4000000000003C507.8999999999999 184.8500000000001 543.1499999999997 194.3000000000002 596.1999999999998 194.3000000000002C647.2499999999999 194.3000000000002 681.3499999999998 185.0000000000001 729.5999999999998 164.2000000000001L737.9999999999998 160.6000000000001C757.8999999999997 152.1000000000001 765.0999999999997 150.2000000000003 777.5999999999997 150.5C795.4999999999998 150.75 817.5499999999997 171.3500000000001 866.4999999999998 243.2000000000001C879.8999999999997 262.7500000000001 891.7499999999997 283.3500000000002 901.9999999999998 304.2A367.7 367.7 0 0 0 882.3999999999999 321.5500000000001C817.9499999999997 382.9500000000002 778.0999999999998 465.7500000000001 776.9999999999998 568.0500000000001A331.25 331.25 0 0 0 847.4999999999998 777.1000000000001A206.19999999999996 206.19999999999996 0 0 1 786.4499999999998 789.6000000000001zM794.1999999999999 889.3C829.5999999999999 886.9 930.9999999999998 876.0999999999999 996.9999999999998 779.5C991.6 776.5 875.8 709.3 877 568.9C878.8000000000001 400.9000000000001 1024 345.1 1025.8 344.5C1024.6 340.3000000000001 1002.3999999999997 264.7000000000001 948.9999999999998 186.7000000000001C902.7999999999998 118.9000000000001 854.7999999999998 51.7 779.1999999999998 50.5C704.7999999999998 48.7 680.7999999999998 94.3000000000002 596.1999999999998 94.3000000000002C510.9999999999998 94.3000000000002 484.5999999999999 51.7 414.3999999999999 48.7000000000003C341.1999999999998 46.3000000000002 285.9999999999999 121.9000000000001 239.1999999999999 189.1000000000001C143.7999999999999 327.1000000000002 71.1999999999999 577.9000000000002 168.9999999999999 747.7000000000003C217.5999999999999 832.3000000000002 303.9999999999999 885.7000000000003 398.1999999999998 886.9000000000002C469.5999999999998 888.7000000000002 537.3999999999999 838.9000000000002 581.1999999999998 838.9000000000002C624.3999999999999 838.9000000000002 701.7999999999998 896.5000000000002 794.1999999999998 889.3000000000002zM737.1999999999999 980.5C698.1999999999999 933.7 634.5999999999999 897.0999999999999 572.7999999999998 901.9C564.4 965.5 595.5999999999999 1032.1 631.5999999999999 1073.5C671.8 1120.3 738.9999999999999 1155.1 794.7999999999998 1157.5C801.9999999999998 1092.7 776.1999999999998 1027.3 737.1999999999999 980.5z","horizAdvX":"1200"},"apps-2-fill":{"path":["M0 0h24v24H0z","M7 11.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10-10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z"],"unicode":"","glyph":"M350 625A225 225 0 1 0 350 1075A225 225 0 0 0 350 625zM350 125A225 225 0 1 0 350 575A225 225 0 0 0 350 125zM850 625A225 225 0 1 0 850 1075A225 225 0 0 0 850 625zM850 125A225 225 0 1 0 850 575A225 225 0 0 0 850 125z","horizAdvX":"1200"},"apps-2-line":{"path":["M0 0h24v24H0z","M6.5 11.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm.5 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10-10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0 10a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zM6.5 9.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm.5 10a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm10-10a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 10a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M325 625A225 225 0 1 0 325 1075A225 225 0 0 0 325 625zM350 125A225 225 0 1 0 350 575A225 225 0 0 0 350 125zM850 625A225 225 0 1 0 850 1075A225 225 0 0 0 850 625zM850 125A225 225 0 1 0 850 575A225 225 0 0 0 850 125zM325 725A125 125 0 1 1 325 975A125 125 0 0 1 325 725zM350 225A125 125 0 1 1 350 475A125 125 0 0 1 350 225zM850 725A125 125 0 1 1 850 975A125 125 0 0 1 850 725zM850 225A125 125 0 1 1 850 475A125 125 0 0 1 850 225z","horizAdvX":"1200"},"apps-fill":{"path":["M0 0h24v24H0z","M6.75 2.5A4.25 4.25 0 0 1 11 6.75V11H6.75a4.25 4.25 0 1 1 0-8.5zm0 10.5H11v4.25A4.25 4.25 0 1 1 6.75 13zm10.5-10.5a4.25 4.25 0 1 1 0 8.5H13V6.75a4.25 4.25 0 0 1 4.25-4.25zM13 13h4.25A4.25 4.25 0 1 1 13 17.25V13z"],"unicode":"","glyph":"M337.5 1075A212.49999999999997 212.49999999999997 0 0 0 550 862.5V650H337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 1075zM337.5 550H550V337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 550zM862.5 1075A212.49999999999997 212.49999999999997 0 1 0 862.5 650H650V862.5A212.49999999999997 212.49999999999997 0 0 0 862.5 1075zM650 550H862.5A212.49999999999997 212.49999999999997 0 1 0 650 337.5V550z","horizAdvX":"1200"},"apps-line":{"path":["M0 0h24v24H0z","M6.75 2.5A4.25 4.25 0 0 1 11 6.75V11H6.75a4.25 4.25 0 1 1 0-8.5zM9 9V6.75A2.25 2.25 0 1 0 6.75 9H9zm-2.25 4H11v4.25A4.25 4.25 0 1 1 6.75 13zm0 2A2.25 2.25 0 1 0 9 17.25V15H6.75zm10.5-12.5a4.25 4.25 0 1 1 0 8.5H13V6.75a4.25 4.25 0 0 1 4.25-4.25zm0 6.5A2.25 2.25 0 1 0 15 6.75V9h2.25zM13 13h4.25A4.25 4.25 0 1 1 13 17.25V13zm2 2v2.25A2.25 2.25 0 1 0 17.25 15H15z"],"unicode":"","glyph":"M337.5 1075A212.49999999999997 212.49999999999997 0 0 0 550 862.5V650H337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 1075zM450 750V862.5A112.5 112.5 0 1 1 337.5 750H450zM337.5 550H550V337.5A212.49999999999997 212.49999999999997 0 1 0 337.5 550zM337.5 450A112.5 112.5 0 1 1 450 337.5V450H337.5zM862.5 1075A212.49999999999997 212.49999999999997 0 1 0 862.5 650H650V862.5A212.49999999999997 212.49999999999997 0 0 0 862.5 1075zM862.5 750A112.5 112.5 0 1 1 750 862.5V750H862.5zM650 550H862.5A212.49999999999997 212.49999999999997 0 1 0 650 337.5V550zM750 450V337.5A112.5 112.5 0 1 1 862.5 450H750z","horizAdvX":"1200"},"archive-drawer-fill":{"path":["M0 0h24v24H0z","M3 13h18v8.002c0 .551-.445.998-.993.998H3.993A.995.995 0 0 1 3 21.002V13zM3 2.998C3 2.447 3.445 2 3.993 2h16.014c.548 0 .993.446.993.998V11H3V2.998zM9 5v2h6V5H9zm0 11v2h6v-2H9z"],"unicode":"","glyph":"M150 550H1050V149.8999999999999C1050 122.3499999999999 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65A49.75000000000001 49.75000000000001 0 0 0 150 149.9000000000001V550zM150 1050.1C150 1077.65 172.25 1100 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.7 1049.9999999999998 1050.1V650H150V1050.1zM450 950V850H750V950H450zM450 400V300H750V400H450z","horizAdvX":"1200"},"archive-drawer-line":{"path":["M0 0h24v24H0z","M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z"],"unicode":"","glyph":"M150 1050.4C150 1077.8 172.25 1100 199.65 1100H1000.35A50 50 0 0 0 1049.9999999999998 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM950 650V1000H250V650H950zM950 550H250V200H950V550zM450 900H750V800H450V900zM450 450H750V350H450V450z","horizAdvX":"1200"},"archive-fill":{"path":["M0 0h24v24H0z","M3 10h18v10.004c0 .55-.445.996-.993.996H3.993A.994.994 0 0 1 3 20.004V10zm6 2v2h6v-2H9zM2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.444.992 1v4H2V4z"],"unicode":"","glyph":"M150 700H1050V199.8000000000001C1050 172.3000000000002 1027.75 150.0000000000002 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.8V700zM450 600V500H750V600H450zM100 1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.8 1100 1000V800H100V1000z","horizAdvX":"1200"},"archive-line":{"path":["M0 0h24v24H0z","M3 10H2V4.003C2 3.449 2.455 3 2.992 3h18.016A.99.99 0 0 1 22 4.003V10h-1v10.001a.996.996 0 0 1-.993.999H3.993A.996.996 0 0 1 3 20.001V10zm16 0H5v9h14v-9zM4 5v3h16V5H4zm5 7h6v2H9v-2z"],"unicode":"","glyph":"M150 700H100V999.85C100 1027.55 122.75 1050 149.6 1050H1050.3999999999999A49.5 49.5 0 0 0 1100 999.85V700H1050V199.9500000000002A49.800000000000004 49.800000000000004 0 0 0 1000.35 150.0000000000002H199.65A49.800000000000004 49.800000000000004 0 0 0 150 199.9499999999999V700zM950 700H250V250H950V700zM200 950V800H1000V950H200zM450 600H750V500H450V600z","horizAdvX":"1200"},"arrow-down-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm1 10V8h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM650 600V800H550V600H400L600 400L800 600H650z","horizAdvX":"1200"},"arrow-down-circle-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm1-8h3l-4 4-4-4h3V8h2v4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM650 600H800L600 400L400 600H550V800H650V600z","horizAdvX":"1200"},"arrow-down-fill":{"path":["M0 0h24v24H0z","M13 12h7l-8 8-8-8h7V4h2z"],"unicode":"","glyph":"M650 600H1000L600 200L200 600H550V1000H650z","horizAdvX":"1200"},"arrow-down-line":{"path":["M0 0h24v24H0z","M13 16.172l5.364-5.364 1.414 1.414L12 20l-7.778-7.778 1.414-1.414L11 16.172V4h2v12.172z"],"unicode":"","glyph":"M650 391.4L918.2 659.6L988.9 588.9L600 200L211.1 588.9L281.8 659.5999999999999L550 391.4V1000H650V391.4z","horizAdvX":"1200"},"arrow-down-s-fill":{"path":["M0 0h24v24H0z","M12 16l-6-6h12z"],"unicode":"","glyph":"M600 400L300 700H900z","horizAdvX":"1200"},"arrow-down-s-line":{"path":["M0 0h24v24H0z","M12 13.172l4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z"],"unicode":"","glyph":"M600 541.4L847.5 788.8999999999999L918.2 718.1999999999999L600 400L281.8 718.2L352.5 788.9000000000001z","horizAdvX":"1200"},"arrow-drop-down-fill":{"path":["M0 0h24v24H0z","M12 14l-4-4h8z"],"unicode":"","glyph":"M600 500L400 700H800z","horizAdvX":"1200"},"arrow-drop-down-line":{"path":["M0 0h24v24H0z","M12 15l-4.243-4.243 1.415-1.414L12 12.172l2.828-2.829 1.415 1.414z"],"unicode":"","glyph":"M600 450L387.85 662.15L458.6 732.85L600 591.4L741.4 732.85L812.15 662.15z","horizAdvX":"1200"},"arrow-drop-left-fill":{"path":["M0 0h24v24H0z","M9 12l4-4v8z"],"unicode":"","glyph":"M450 600L650 800V400z","horizAdvX":"1200"},"arrow-drop-left-line":{"path":["M0 0h24v24H0z","M11.828 12l2.829 2.828-1.414 1.415L9 12l4.243-4.243 1.414 1.415L11.828 12z"],"unicode":"","glyph":"M591.4 600L732.85 458.6L662.15 387.85L450 600L662.15 812.1500000000001L732.85 741.4L591.4 600z","horizAdvX":"1200"},"arrow-drop-right-fill":{"path":["M0 0h24v24H0z","M14 12l-4 4V8z"],"unicode":"","glyph":"M700 600L500 400V800z","horizAdvX":"1200"},"arrow-drop-right-line":{"path":["M0 0h24v24H0z","M12.172 12L9.343 9.172l1.414-1.415L15 12l-4.243 4.243-1.414-1.415z"],"unicode":"","glyph":"M608.6 600L467.15 741.4L537.85 812.15L750 600L537.85 387.8499999999999L467.15 458.5999999999999z","horizAdvX":"1200"},"arrow-drop-up-fill":{"path":["M0 0h24v24H0z","M12 10l4 4H8z"],"unicode":"","glyph":"M600 700L800 500H400z","horizAdvX":"1200"},"arrow-drop-up-line":{"path":["M0 0h24v24H0z","M12 11.828l-2.828 2.829-1.415-1.414L12 9l4.243 4.243-1.415 1.414L12 11.828z"],"unicode":"","glyph":"M600 608.6L458.6 467.15L387.85 537.85L600 750L812.1500000000001 537.85L741.4000000000001 467.15L600 608.6z","horizAdvX":"1200"},"arrow-go-back-fill":{"path":["M0 0h24v24H0z","M8 7v4L2 6l6-5v4h5a8 8 0 1 1 0 16H4v-2h9a6 6 0 1 0 0-12H8z"],"unicode":"","glyph":"M400 850V650L100 900L400 1150V950H650A400 400 0 1 0 650 150H200V250H650A300 300 0 1 1 650 850H400z","horizAdvX":"1200"},"arrow-go-back-line":{"path":["M0 0h24v24H0z","M5.828 7l2.536 2.536L6.95 10.95 2 6l4.95-4.95 1.414 1.414L5.828 5H13a8 8 0 1 1 0 16H4v-2h9a6 6 0 1 0 0-12H5.828z"],"unicode":"","glyph":"M291.4000000000001 850L418.2000000000001 723.2L347.5 652.5L100 900L347.5 1147.5L418.2000000000001 1076.8L291.4000000000001 950H650A400 400 0 1 0 650 150H200V250H650A300 300 0 1 1 650 850H291.4000000000001z","horizAdvX":"1200"},"arrow-go-forward-fill":{"path":["M0 0h24v24H0z","M16 7h-5a6 6 0 1 0 0 12h9v2h-9a8 8 0 1 1 0-16h5V1l6 5-6 5V7z"],"unicode":"","glyph":"M800 850H550A300 300 0 1 1 550 250H1000V150H550A400 400 0 1 0 550 950H800V1150L1100 900L800 650V850z","horizAdvX":"1200"},"arrow-go-forward-line":{"path":["M0 0h24v24H0z","M18.172 7H11a6 6 0 1 0 0 12h9v2h-9a8 8 0 1 1 0-16h7.172l-2.536-2.536L17.05 1.05 22 6l-4.95 4.95-1.414-1.414L18.172 7z"],"unicode":"","glyph":"M908.6 850H550A300 300 0 1 1 550 250H1000V150H550A400 400 0 1 0 550 950H908.6L781.8000000000001 1076.8L852.5 1147.5L1100 900L852.5 652.5L781.8000000000001 723.2L908.6 850z","horizAdvX":"1200"},"arrow-left-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 9V8l-4 4 4 4v-3h4v-2h-4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 650V800L400 600L600 400V550H800V650H600z","horizAdvX":"1200"},"arrow-left-circle-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm0-9h4v2h-4v3l-4-4 4-4v3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM600 650H800V550H600V400L400 600L600 800V650z","horizAdvX":"1200"},"arrow-left-down-fill":{"path":["M0 0h24v24H0z","M12.36 13.05L17.31 18H5.998V6.688l4.95 4.95 5.656-5.657 1.415 1.414z"],"unicode":"","glyph":"M618 547.5L865.4999999999999 300H299.9000000000001V865.6L547.4 618.1L830.1999999999999 900.95L900.95 830.25z","horizAdvX":"1200"},"arrow-left-down-line":{"path":["M0 0h24v24H0z","M9 13.59l8.607-8.607 1.414 1.414-8.607 8.607H18v2H7v-11h2v7.585z"],"unicode":"","glyph":"M450 520.5L880.3499999999999 950.85L951.05 880.15L520.7 449.8000000000001H900V349.8000000000001H350V899.8000000000002H450V520.5500000000001z","horizAdvX":"1200"},"arrow-left-fill":{"path":["M0 0h24v24H0z","M12 13v7l-8-8 8-8v7h8v2z"],"unicode":"","glyph":"M600 550V200L200 600L600 1000V650H1000V550z","horizAdvX":"1200"},"arrow-left-line":{"path":["M0 0h24v24H0z","M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z"],"unicode":"","glyph":"M391.4000000000001 650H1000V550H391.4000000000001L659.6 281.8L588.9 211.0999999999999L200 600L588.9 988.9L659.5999999999999 918.2z","horizAdvX":"1200"},"arrow-left-right-fill":{"path":["M0 0h24v24H0z","M16 16v-4l5 5-5 5v-4H4v-2h12zM8 2v3.999L20 6v2H8v4L3 7l5-5z"],"unicode":"","glyph":"M800 400V600L1050 350L800 100V300H200V400H800zM400 1100V900.05L1000 900V800H400V600L150 850L400 1100z","horizAdvX":"1200"},"arrow-left-right-line":{"path":["M0 0h24v24H0z","M16.05 12.05L21 17l-4.95 4.95-1.414-1.414 2.536-2.537L4 18v-2h13.172l-2.536-2.536 1.414-1.414zm-8.1-10l1.414 1.414L6.828 6 20 6v2H6.828l2.536 2.536L7.95 11.95 3 7l4.95-4.95z"],"unicode":"","glyph":"M802.5 597.5L1050 350L802.5 102.5L731.8000000000001 173.2000000000001L858.6 300.0500000000001L200 300V400H858.6L731.8000000000001 526.8L802.5 597.5zM397.5000000000001 1097.5L468.2 1026.8L341.4000000000001 900L1000 900V800H341.4000000000001L468.2 673.2L397.5 602.5L150 850L397.5 1097.5z","horizAdvX":"1200"},"arrow-left-s-fill":{"path":["M0 0h24v24H0z","M8 12l6-6v12z"],"unicode":"","glyph":"M400 600L700 900V300z","horizAdvX":"1200"},"arrow-left-s-line":{"path":["M0 0h24v24H0z","M10.828 12l4.95 4.95-1.414 1.414L8 12l6.364-6.364 1.414 1.414z"],"unicode":"","glyph":"M541.4 600L788.9 352.5L718.1999999999999 281.8L400 600L718.2 918.2L788.9 847.5z","horizAdvX":"1200"},"arrow-left-up-fill":{"path":["M0 0h24v24H0z","M12.36 10.947l5.658 5.656-1.415 1.415-5.656-5.657-4.95 4.95V5.997H17.31z"],"unicode":"","glyph":"M618 652.6500000000001L900.9 369.8500000000002L830.1500000000001 299.1000000000002L547.3500000000001 581.9500000000002L299.8500000000002 334.4500000000002V900.15H865.4999999999999z","horizAdvX":"1200"},"arrow-left-up-line":{"path":["M0 0h24v24H0z","M9.414 8l8.607 8.607-1.414 1.414L8 9.414V17H6V6h11v2z"],"unicode":"","glyph":"M470.7 800L901.05 369.6500000000001L830.3499999999999 298.95L400 729.3V350H300V900H850V800z","horizAdvX":"1200"},"arrow-right-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 9H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 650H400V550H600V400L800 600L600 800V650z","horizAdvX":"1200"},"arrow-right-circle-line":{"path":["M0 0h24v24H0z","M12 11V8l4 4-4 4v-3H8v-2h4zm0-9c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8z"],"unicode":"","glyph":"M600 650V800L800 600L600 400V550H400V650H600zM600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200z","horizAdvX":"1200"},"arrow-right-down-fill":{"path":["M0 0h24v24H0z","M11.637 13.05L5.98 7.395 7.394 5.98l5.657 5.657L18 6.687V18H6.687z"],"unicode":"","glyph":"M581.85 547.5L299 830.25L369.7 901L652.55 618.15L900 865.65V300H334.35z","horizAdvX":"1200"},"arrow-right-down-line":{"path":["M0 0h24v24H0z","M14.59 16.004L5.982 7.397l1.414-1.414 8.607 8.606V7.004h2v11h-11v-2z"],"unicode":"","glyph":"M729.5 399.8L299.1 830.15L369.8 900.85L800.15 470.55V849.8H900.15V299.8000000000001H350.15V399.8000000000001z","horizAdvX":"1200"},"arrow-right-fill":{"path":["M0 0h24v24H0z","M12 13H4v-2h8V4l8 8-8 8z"],"unicode":"","glyph":"M600 550H200V650H600V1000L1000 600L600 200z","horizAdvX":"1200"},"arrow-right-line":{"path":["M0 0h24v24H0z","M16.172 11l-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"],"unicode":"","glyph":"M808.6 650L540.4 918.2L611.1 988.9L1000 600L611.1 211.1L540.4000000000001 281.8000000000002L808.6 550H200V650z","horizAdvX":"1200"},"arrow-right-s-fill":{"path":["M0 0h24v24H0z","M16 12l-6 6V6z"],"unicode":"","glyph":"M800 600L500 300V900z","horizAdvX":"1200"},"arrow-right-s-line":{"path":["M0 0h24v24H0z","M13.172 12l-4.95-4.95 1.414-1.414L16 12l-6.364 6.364-1.414-1.414z"],"unicode":"","glyph":"M658.6 600L411.1000000000001 847.5L481.8000000000001 918.2L800 600L481.8 281.8L411.1 352.5z","horizAdvX":"1200"},"arrow-right-up-fill":{"path":["M0 0h24v24H0z","M13.05 12.36l-5.656 5.658-1.414-1.415 5.657-5.656-4.95-4.95H18V17.31z"],"unicode":"","glyph":"M652.5 582L369.7000000000001 299.0999999999999L299.0000000000001 369.8499999999999L581.85 652.6499999999999L334.35 900.1499999999999H900V334.5000000000001z","horizAdvX":"1200"},"arrow-right-up-line":{"path":["M0 0h24v24H0z","M16.004 9.414l-8.607 8.607-1.414-1.414L14.589 8H7.004V6h11v11h-2V9.414z"],"unicode":"","glyph":"M800.2 729.3L369.8500000000001 298.95L299.1500000000001 369.6500000000001L729.45 800H350.2V900H900.1999999999999V350H800.1999999999999V729.3z","horizAdvX":"1200"},"arrow-up-circle-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm1 10h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM650 600H800L600 800L400 600H550V400H650V600z","horizAdvX":"1200"},"arrow-up-circle-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm1-8v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM650 600V400H550V600H400L600 800L800 600H650z","horizAdvX":"1200"},"arrow-up-down-fill":{"path":["M0 0h24v24H0z","M12 8H8.001L8 20H6V8H2l5-5 5 5zm10 8l-5 5-5-5h4V4h2v12h4z"],"unicode":"","glyph":"M600 800H400.05L400 200H300V800H100L350 1050L600 800zM1100 400L850 150L600 400H800V1000H900V400H1100z","horizAdvX":"1200"},"arrow-up-down-line":{"path":["M0 0h24v24H0z","M11.95 7.95l-1.414 1.414L8 6.828 8 20H6V6.828L3.465 9.364 2.05 7.95 7 3l4.95 4.95zm10 8.1L17 21l-4.95-4.95 1.414-1.414 2.537 2.536L16 4h2v13.172l2.536-2.536 1.414 1.414z"],"unicode":"","glyph":"M597.5 802.5L526.8 731.8L400 858.5999999999999L400 200H300V858.5999999999999L173.25 731.8L102.5 802.5L350 1050L597.5 802.5zM1097.5 397.5L850 150L602.5 397.5L673.2 468.1999999999999L800.0500000000001 341.4L800 1000H900V341.4L1026.8000000000002 468.1999999999999L1097.5000000000002 397.5z","horizAdvX":"1200"},"arrow-up-fill":{"path":["M0 0h24v24H0z","M13 12v8h-2v-8H4l8-8 8 8z"],"unicode":"","glyph":"M650 600V200H550V600H200L600 1000L1000 600z","horizAdvX":"1200"},"arrow-up-line":{"path":["M0 0h24v24H0z","M13 7.828V20h-2V7.828l-5.364 5.364-1.414-1.414L12 4l7.778 7.778-1.414 1.414L13 7.828z"],"unicode":"","glyph":"M650 808.5999999999999V200H550V808.5999999999999L281.8 540.4L211.1 611.1L600 1000L988.9 611.1L918.1999999999998 540.4000000000001L650 808.5999999999999z","horizAdvX":"1200"},"arrow-up-s-fill":{"path":["M0 0h24v24H0z","M12 8l6 6H6z"],"unicode":"","glyph":"M600 800L900 500H300z","horizAdvX":"1200"},"arrow-up-s-line":{"path":["M0 0h24v24H0z","M12 10.828l-4.95 4.95-1.414-1.414L12 8l6.364 6.364-1.414 1.414z"],"unicode":"","glyph":"M600 658.6L352.5 411.1L281.8 481.8000000000001L600 800L918.2 481.8L847.5 411.1z","horizAdvX":"1200"},"artboard-2-fill":{"path":["M0 0h24v24H0z","M6 6h12v12H6V6zm0-4h2v3H6V2zm0 17h2v3H6v-3zM2 6h3v2H2V6zm0 10h3v2H2v-2zM19 6h3v2h-3V6zm0 10h3v2h-3v-2zM16 2h2v3h-2V2zm0 17h2v3h-2v-3z"],"unicode":"","glyph":"M300 900H900V300H300V900zM300 1100H400V950H300V1100zM300 250H400V100H300V250zM100 900H250V800H100V900zM100 400H250V300H100V400zM950 900H1100V800H950V900zM950 400H1100V300H950V400zM800 1100H900V950H800V1100zM800 250H900V100H800V250z","horizAdvX":"1200"},"artboard-2-line":{"path":["M0 0h24v24H0z","M8 8v8h8V8H8zM6 6h12v12H6V6zm0-4h2v3H6V2zm0 17h2v3H6v-3zM2 6h3v2H2V6zm0 10h3v2H2v-2zM19 6h3v2h-3V6zm0 10h3v2h-3v-2zM16 2h2v3h-2V2zm0 17h2v3h-2v-3z"],"unicode":"","glyph":"M400 800V400H800V800H400zM300 900H900V300H300V900zM300 1100H400V950H300V1100zM300 250H400V100H300V250zM100 900H250V800H100V900zM100 400H250V300H100V400zM950 900H1100V800H950V900zM950 400H1100V300H950V400zM800 1100H900V950H800V1100zM800 250H900V100H800V250z","horizAdvX":"1200"},"artboard-fill":{"path":["M0 0h24v24H0z","M8.586 17H3v-2h18v2h-5.586l3.243 3.243-1.414 1.414L13 17.414V20h-2v-2.586l-4.243 4.243-1.414-1.414L8.586 17zM5 3h14a1 1 0 0 1 1 1v10H4V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M429.3 350H150V450H1050V350H770.6999999999999L932.85 187.85L862.15 117.1500000000001L650 329.3V200H550V329.3L337.85 117.1499999999999L267.15 187.8499999999999L429.3 350zM250 1050H950A50 50 0 0 0 1000 1000V500H200V1000A50 50 0 0 0 250 1050z","horizAdvX":"1200"},"artboard-line":{"path":["M0 0h24v24H0z","M8.586 17H3v-2h18v2h-5.586l3.243 3.243-1.414 1.414L13 17.414V20h-2v-2.586l-4.243 4.243-1.414-1.414L8.586 17zM5 3h14a1 1 0 0 1 1 1v10H4V4a1 1 0 0 1 1-1zm1 2v7h12V5H6z"],"unicode":"","glyph":"M429.3 350H150V450H1050V350H770.6999999999999L932.85 187.85L862.15 117.1500000000001L650 329.3V200H550V329.3L337.85 117.1499999999999L267.15 187.8499999999999L429.3 350zM250 1050H950A50 50 0 0 0 1000 1000V500H200V1000A50 50 0 0 0 250 1050zM300 950V600H900V950H300z","horizAdvX":"1200"},"article-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM7 6v4h4V6H7zm0 6v2h10v-2H7zm0 4v2h10v-2H7zm6-9v2h4V7h-4z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM350 900V700H550V900H350zM350 600V500H850V600H350zM350 400V300H850V400H350zM650 850V750H850V850H650z","horizAdvX":"1200"},"article-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM7 6h4v4H7V6zm0 6h10v2H7v-2zm0 4h10v2H7v-2zm6-9h4v2h-4V7z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM350 900H550V700H350V900zM350 600H850V500H350V600zM350 400H850V300H350V400zM650 850H850V750H650V850z","horizAdvX":"1200"},"aspect-ratio-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-3 9h-2v3h-3v2h5v-5zm-7-5H6v5h2V9h3V7z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM900 600H800V450H650V350H900V600zM550 850H300V600H400V750H550V850z","horizAdvX":"1200"},"aspect-ratio-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-7 12v-2h3v-3h2v5h-5zM11 7v2H8v3H6V7h5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM650 350V450H800V600H900V350H650zM550 850V750H400V600H300V850H550z","horizAdvX":"1200"},"asterisk":{"path":["M0 0h24v24H0z","M13 3v7.267l6.294-3.633 1 1.732-6.293 3.633 6.293 3.635-1 1.732L13 13.732V21h-2v-7.268l-6.294 3.634-1-1.732L9.999 12 3.706 8.366l1-1.732L11 10.267V3z"],"unicode":"","glyph":"M650 1050V686.65L964.7 868.3L1014.7 781.7L700.0500000000001 600.0500000000001L1014.7 418.3000000000001L964.7 331.7000000000001L650 513.4000000000001V150H550V513.4000000000001L235.3 331.7000000000001L185.3 418.3L499.95 600L185.3 781.7L235.3 868.3L550 686.65V1050z","horizAdvX":"1200"},"at-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm8-10a8 8 0 1 0-3.968 6.911l-1.008-1.727A6 6 0 1 1 18 12v1a1 1 0 0 1-2 0V9h-1.354a4 4 0 1 0 .066 5.94A3 3 0 0 0 20 13v-1zm-8-2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM1000 600A400 400 0 1 1 801.6 254.45L751.2 340.8A300 300 0 1 0 900 600V550A50 50 0 0 0 800 550V750H732.3000000000001A200 200 0 1 1 735.6 452.9999999999999A150 150 0 0 1 1000 550V600zM600 700A100 100 0 1 0 600 500A100 100 0 0 0 600 700z","horizAdvX":"1200"},"at-line":{"path":["M0 0h24v24H0z","M20 12a8 8 0 1 0-3.562 6.657l1.11 1.664A9.953 9.953 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10v1.5a3.5 3.5 0 0 1-6.396 1.966A5 5 0 1 1 15 8H17v5.5a1.5 1.5 0 0 0 3 0V12zm-8-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"],"unicode":"","glyph":"M1000 600A400 400 0 1 1 821.9 267.15L877.3999999999999 183.9499999999999A497.65 497.65 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600V525A175 175 0 0 0 780.1999999999999 426.7000000000001A250 250 0 1 0 750 800H850V525A75 75 0 0 1 1000 525V600zM600 750A150 150 0 1 1 600 450A150 150 0 0 1 600 750z","horizAdvX":"1200"},"attachment-2":{"path":["M0 0h24v24H0z","M14.828 7.757l-5.656 5.657a1 1 0 1 0 1.414 1.414l5.657-5.656A3 3 0 1 0 12 4.929l-5.657 5.657a5 5 0 1 0 7.071 7.07L19.071 12l1.414 1.414-5.657 5.657a7 7 0 1 1-9.9-9.9l5.658-5.656a5 5 0 0 1 7.07 7.07L12 16.244A3 3 0 1 1 7.757 12l5.657-5.657 1.414 1.414z"],"unicode":"","glyph":"M741.4 812.1500000000001L458.6 529.3000000000001A50 50 0 1 1 529.3000000000001 458.6L812.1500000000001 741.4A150 150 0 1 1 600 953.55L317.15 670.6999999999999A250 250 0 1 1 670.6999999999999 317.2000000000001L953.55 600L1024.2500000000002 529.3000000000001L741.4000000000001 246.4500000000001A350 350 0 1 0 246.4000000000001 741.45L529.3000000000001 1024.25A250 250 0 0 0 882.8000000000001 670.7500000000001L600 387.8A150 150 0 1 0 387.85 600L670.6999999999999 882.85L741.4 812.1500000000001z","horizAdvX":"1200"},"attachment-fill":{"path":["M0 0h24v24H0z","M20.997 2.992L21 21.008a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.01c.549 0 .994.444.994.992zM9 13V9a1 1 0 1 1 2 0v4a1 1 0 0 0 2 0V9a3 3 0 0 0-6 0v4a5 5 0 0 0 10 0V8h-2v5a3 3 0 0 1-6 0z"],"unicode":"","glyph":"M1049.85 1050.4L1050 149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.15C1027.6 1100 1049.85 1077.8 1049.85 1050.4zM450 550V750A50 50 0 1 0 550 750V550A50 50 0 0 1 650 550V750A150 150 0 0 1 350 750V550A250 250 0 0 1 850 550V800H750V550A150 150 0 0 0 450 550z","horizAdvX":"1200"},"attachment-line":{"path":["M0 0h24v24H0z","M14 13.5V8a4 4 0 1 0-8 0v5.5a6.5 6.5 0 1 0 13 0V4h2v9.5a8.5 8.5 0 1 1-17 0V8a6 6 0 1 1 12 0v5.5a3.5 3.5 0 0 1-7 0V8h2v5.5a1.5 1.5 0 0 0 3 0z"],"unicode":"","glyph":"M700 525V800A200 200 0 1 1 300 800V525A325 325 0 1 1 950 525V1000H1050V525A424.99999999999994 424.99999999999994 0 1 0 200 525V800A300 300 0 1 0 800 800V525A175 175 0 0 0 450 525V800H550V525A75 75 0 0 1 700 525z","horizAdvX":"1200"},"auction-fill":{"path":["M0 0h24v24H0z","M14 20v2H2v-2h12zM14.586.686l7.778 7.778L20.95 9.88l-1.06-.354L17.413 12l5.657 5.657-1.414 1.414L16 13.414l-2.404 2.404.283 1.132-1.415 1.414-7.778-7.778 1.415-1.414 1.13.282 6.294-6.293-.353-1.06L14.586.686z"],"unicode":"","glyph":"M700 200V100H100V200H700zM729.3000000000001 1165.7L1118.2 776.8L1047.5 706L994.5 723.6999999999999L870.65 600L1153.5 317.15L1082.8 246.45L800 529.3000000000001L679.8 409.1L693.9499999999999 352.5L623.1999999999999 281.8L234.3 670.6999999999999L305.05 741.3999999999999L361.55 727.3L676.2499999999999 1041.9499999999998L658.5999999999999 1094.9499999999998L729.3000000000001 1165.7z","horizAdvX":"1200"},"auction-line":{"path":["M0 0h24v24H0z","M14 20v2H2v-2h12zM14.586.686l7.778 7.778L20.95 9.88l-1.06-.354L17.413 12l5.657 5.657-1.414 1.414L16 13.414l-2.404 2.404.283 1.132-1.415 1.414-7.778-7.778 1.415-1.414 1.13.282 6.294-6.293-.353-1.06L14.586.686zm.707 3.536l-7.071 7.07 3.535 3.536 7.071-7.07-3.535-3.536z"],"unicode":"","glyph":"M700 200V100H100V200H700zM729.3000000000001 1165.7L1118.2 776.8L1047.5 706L994.5 723.6999999999999L870.65 600L1153.5 317.15L1082.8 246.45L800 529.3000000000001L679.8 409.1L693.9499999999999 352.5L623.1999999999999 281.8L234.3 670.6999999999999L305.05 741.3999999999999L361.55 727.3L676.2499999999999 1041.9499999999998L658.5999999999999 1094.9499999999998L729.3000000000001 1165.7zM764.6500000000001 988.9L411.1000000000001 635.3999999999999L587.85 458.5999999999999L941.4 812.0999999999999L764.6500000000001 988.8999999999997z","horizAdvX":"1200"},"award-fill":{"path":["M0 0h24v24H0z","M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M850 437.75V94.1500000000001A25 25 0 0 0 812.15 72.7000000000003L600 200L387.85 72.7000000000001A25 25 0 0 0 350 94.2000000000001V437.7000000000001A400 400 0 1 0 850 437.7000000000001zM600 450A300 300 0 1 1 600 1050A300 300 0 0 1 600 450zM600 550A200 200 0 1 0 600 950A200 200 0 0 0 600 550z","horizAdvX":"1200"},"award-line":{"path":["M0 0h24v24H0z","M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zm-8 1.173v3.05l3-1.8 3 1.8v-3.05A7.978 7.978 0 0 1 12 17a7.978 7.978 0 0 1-3-.582zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12z"],"unicode":"","glyph":"M850 437.75V94.1500000000001A25 25 0 0 0 812.15 72.7000000000003L600 200L387.85 72.7000000000001A25 25 0 0 0 350 94.2000000000001V437.7000000000001A400 400 0 1 0 850 437.7000000000001zM450 379.1V226.6L600 316.6L750 226.6V379.1A398.90000000000003 398.90000000000003 0 0 0 600 350A398.90000000000003 398.90000000000003 0 0 0 450 379.1zM600 450A300 300 0 1 1 600 1050A300 300 0 0 1 600 450z","horizAdvX":"1200"},"baidu-fill":{"path":["M0 0h24v24H0z","M5.927 12.497c2.063-.443 1.782-2.909 1.72-3.448-.101-.83-1.078-2.282-2.405-2.167-1.67.15-1.913 2.561-1.913 2.561-.226 1.115.54 3.497 2.598 3.054zm2.19 4.288c-.06.173-.195.616-.078 1.002.23.866.982.905.982.905h1.08v-2.64H8.944c-.52.154-.77.559-.827.733zm1.638-8.422c1.14 0 2.06-1.312 2.06-2.933 0-1.62-.92-2.93-2.06-2.93-1.137 0-2.06 1.31-2.06 2.93 0 1.621.923 2.933 2.06 2.933zm4.908.193c1.522.198 2.501-1.427 2.696-2.659.199-1.23-.784-2.658-1.862-2.904-1.08-.248-2.429 1.483-2.552 2.61-.147 1.38.197 2.758 1.718 2.953zm0 3.448c-1.865-2.905-4.513-1.723-5.4-.245-.881 1.477-2.256 2.41-2.451 2.658-.198.244-2.846 1.673-2.258 4.284.587 2.609 2.652 2.56 2.652 2.56s1.521.15 3.286-.246c1.766-.391 3.286.098 3.286.098s4.125 1.38 5.253-1.278c1.128-2.66-.637-4.038-.637-4.038s-2.356-1.823-3.732-3.793zm-6.008 7.75c-1.158-.231-1.619-1.021-1.677-1.156-.057-.137-.386-.772-.212-1.853.5-1.619 1.927-1.735 1.927-1.735h1.428v-1.755l1.215.02v6.479h-2.68zm4.59-.019c-1.196-.308-1.251-1.158-1.251-1.158v-3.412l1.251-.02v3.066c.077.328.483.387.483.387h1.271v-3.433h1.332v4.57h-3.086zm7.454-9.11c0-.59-.49-2.364-2.305-2.364-1.819 0-2.062 1.675-2.062 2.859 0 1.13.095 2.707 2.354 2.657 2.26-.05 2.013-2.56 2.013-3.152z"],"unicode":"","glyph":"M296.35 575.15C399.5 597.3 385.45 720.5999999999999 382.35 747.55C377.3 789.05 328.45 861.6500000000001 262.1 855.9000000000001C178.6 848.4 166.4499999999999 727.85 166.4499999999999 727.85C155.15 672.1 193.4499999999999 553 296.3499999999999 575.15zM405.85 360.75C402.8499999999999 352.1000000000002 396.1 329.9500000000001 401.95 310.6500000000001C413.45 267.35 451.05 265.4 451.05 265.4H505.05V397.4H447.2000000000001C421.2000000000001 389.7000000000001 408.7000000000001 369.45 405.85 360.75zM487.7499999999999 781.85C544.75 781.85 590.75 847.45 590.75 928.5C590.75 1009.5 544.75 1075 487.7499999999999 1075C430.8999999999999 1075 384.75 1009.5 384.75 928.5C384.75 847.45 430.8999999999999 781.85 487.7499999999999 781.85zM733.15 772.2C809.2499999999999 762.3 858.2 843.55 867.95 905.15C877.9000000000002 966.65 828.7500000000001 1038.05 774.8500000000001 1050.35C720.8500000000001 1062.75 653.4000000000001 976.2 647.2500000000001 919.85C639.9000000000001 850.85 657.1 781.95 733.1500000000001 772.2zM733.15 599.8000000000001C639.9 745.05 507.5 685.95 463.15 612.05C419.1 538.1999999999999 350.35 491.55 340.6 479.15C330.7 466.95 198.3 395.5 227.7 264.95C257.05 134.5 360.3 136.9500000000001 360.3 136.9500000000001S436.35 129.4500000000001 524.5999999999999 149.25C612.9 168.8 688.9 144.3499999999999 688.9 144.3499999999999S895.15 75.3500000000001 951.55 208.25C1007.95 341.25 919.7 410.15 919.7 410.15S801.8999999999999 501.3 733.0999999999999 599.8zM432.7500000000001 212.3000000000001C374.8500000000001 223.8500000000001 351.8000000000001 263.3500000000002 348.9000000000001 270.1C346.0500000000001 276.9500000000001 329.6000000000001 308.7 338.3000000000001 362.7500000000001C363.3000000000001 443.7000000000002 434.6500000000001 449.5000000000001 434.6500000000001 449.5000000000001H506.0500000000001V537.25L566.8000000000001 536.2500000000001V212.3000000000001H432.8000000000002zM662.25 213.25C602.45 228.65 599.7 271.1500000000001 599.7 271.1500000000001V441.75L662.25 442.75V289.4500000000001C666.1 273.0500000000001 686.4000000000001 270.1 686.4000000000001 270.1H749.9500000000002V441.75H816.5500000000002V213.25H662.2500000000001zM1034.95 668.75C1034.95 698.25 1010.4500000000002 786.95 919.7 786.95C828.7500000000001 786.95 816.6 703.2 816.6 644C816.6 587.5 821.35 508.6500000000001 934.3 511.1500000000001C1047.3 513.6500000000001 1034.9499999999998 639.1500000000001 1034.9499999999998 668.75z","horizAdvX":"1200"},"baidu-line":{"path":["M0 0h24v24H0z","M7.564 19.28a9.69 9.69 0 0 0 2.496-.217 8.8 8.8 0 0 1 2.98-.131c.547.067.985.165 1.288.257 1.078.275 2.61.223 3.005-.41.291-.468.253-.787-.026-1.199a1.886 1.886 0 0 0-.212-.26 25.006 25.006 0 0 1-.743-.618 25.618 25.618 0 0 1-1.753-1.66 16.151 16.151 0 0 1-1.577-1.893l-.036-.053c-.742-1.139-1.558-1.067-2.002-.317a9.604 9.604 0 0 1-.955 1.331c-.41.482-.83.89-1.305 1.297-.123.105-.503.42-.412.344-.004.003-.017.015.051-.071-.098.12-.95.877-1.2 1.162-.515.583-.723 1.08-.645 1.48.072.376.219.587.45.745a1.432 1.432 0 0 0 .48.206l.116.007zm7.098-7.276c1.376 1.97 3.732 3.793 3.732 3.793s2.063 1.748.637 4.038c-1.426 2.29-5.253 1.278-5.253 1.278s-1.52-.49-3.286-.098c-1.765.395-3.286.245-3.286.245S5 21.015 4.554 18.701c-.446-2.314 2.06-4.04 2.258-4.284.195-.247 1.512-1.073 2.452-2.658.94-1.586 3.583-2.54 5.398.245zm5.539-1.42c0 .458.19 2.393-1.553 2.432-1.742.038-1.816-1.178-1.816-2.05 0-.913.188-2.205 1.59-2.205 1.4 0 1.779 1.369 1.779 1.824zm-5.43-2.777c-1.18-.152-1.447-1.222-1.333-2.293.096-.875 1.143-2.219 1.981-2.026.837.19 1.6 1.3 1.446 2.254-.151.957-.911 2.218-2.094 2.065zM9.755 7.44c-.86 0-1.56-.993-1.56-2.22 0-1.227.699-2.22 1.56-2.22.863 0 1.56.993 1.56 2.22 0 1.227-.697 2.22-1.56 2.22zm-3.793 4.566c-1.695.365-2.326-1.597-2.14-2.515 0 0 .2-1.987 1.576-2.11 1.093-.095 1.898 1.101 1.981 1.785.051.444.283 2.475-1.417 2.84z"],"unicode":"","glyph":"M378.2 236A484.49999999999994 484.49999999999994 0 0 1 503 246.8499999999999A440 440 0 0 0 652 253.3999999999999C679.35 250.0499999999999 701.25 245.15 716.4000000000001 240.5499999999999C770.3000000000001 226.7999999999999 846.9000000000001 229.3999999999999 866.6500000000001 261.0499999999999C881.2000000000002 284.4499999999998 879.3000000000001 300.3999999999998 865.3500000000001 320.9999999999999A94.3 94.3 0 0 1 854.7500000000001 334A1250.3 1250.3 0 0 0 817.6000000000001 364.8999999999999A1280.9 1280.9 0 0 0 729.9500000000002 447.8999999999999A807.55 807.55 0 0 0 651.1000000000001 542.55L649.3000000000002 545.2C612.2000000000002 602.15 571.4000000000002 598.55 549.2000000000003 561.05A480.2 480.2 0 0 0 501.4500000000003 494.5C480.9500000000003 470.4000000000001 459.9500000000003 450 436.2000000000003 429.65C430.0500000000003 424.4 411.0500000000003 408.65 415.6000000000003 412.4500000000001C415.4000000000003 412.3000000000001 414.7500000000003 411.7000000000001 418.1500000000003 416C413.2500000000003 410 370.6500000000003 372.1500000000001 358.1500000000003 357.9000000000001C332.4000000000003 328.7500000000001 322.0000000000003 303.9000000000001 325.9000000000002 283.9000000000001C329.5000000000003 265.1 336.8500000000003 254.5500000000001 348.4000000000002 246.65A71.6 71.6 0 0 1 372.4000000000002 236.35L378.2000000000002 236zM733.0999999999999 599.8C801.9 501.3 919.7 410.15 919.7 410.15S1022.85 322.7499999999999 951.55 208.25C880.25 93.75 688.9 144.3499999999999 688.9 144.3499999999999S612.9 168.8499999999999 524.5999999999999 149.25C436.3499999999999 129.5 360.3 137 360.3 137S250 149.25 227.7 264.95C205.4 380.65 330.7000000000001 466.9499999999999 340.6 479.1499999999999C350.35 491.4999999999999 416.2 532.8 463.2 612.0499999999998C510.1999999999999 691.3499999999999 642.35 739.05 733.0999999999999 599.8zM1010.05 670.8C1010.05 647.8999999999999 1019.55 551.15 932.4 549.1999999999999C845.3 547.3 841.6 608.0999999999999 841.6 651.6999999999999C841.6 697.3499999999999 851 761.9499999999999 921.1 761.9499999999999C991.1 761.9499999999999 1010.05 693.5 1010.05 670.75zM738.5500000000001 809.6499999999999C679.5500000000001 817.25 666.2 870.75 671.9 924.3C676.7 968.05 729.0500000000001 1035.25 770.95 1025.6C812.8 1016.1 850.95 960.6 843.2500000000001 912.9C835.7000000000002 865.05 797.7000000000002 802 738.5500000000002 809.65zM487.7500000000001 828C444.7500000000001 828 409.75 877.65 409.75 939C409.75 1000.35 444.7 1050 487.7500000000001 1050C530.9 1050 565.7500000000001 1000.35 565.7500000000001 939C565.7500000000001 877.65 530.9000000000001 828 487.7500000000001 828zM298.1 599.7C213.35 581.4499999999999 181.8000000000001 679.55 191.1 725.45C191.1 725.45 201.1 824.8 269.9000000000001 830.95C324.55 835.7 364.8 775.9000000000001 368.9500000000001 741.7C371.5000000000001 719.5 383.1 617.95 298.1 599.7z","horizAdvX":"1200"},"ball-pen-fill":{"path":["M0 0h24v24H0z","M17.849 11.808l-.707-.707-9.9 9.9H3v-4.243L14.313 5.444l5.657 5.657a1 1 0 0 1 0 1.414l-7.07 7.071-1.415-1.414 6.364-6.364zm.707-9.192l2.829 2.828a1 1 0 0 1 0 1.414L19.97 8.273 15.728 4.03l1.414-1.414a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M892.45 609.6L857.1 644.95L362.1 149.9500000000001H150V362.1000000000003L715.65 927.8L998.5 644.95A50 50 0 0 0 998.5 574.2500000000001L644.9999999999999 220.7000000000001L574.25 291.4000000000001L892.45 609.6000000000001zM927.8 1069.2L1069.25 927.8A50 50 0 0 0 1069.25 857.1000000000001L998.5 786.35L786.4 998.5L857.1 1069.2A50 50 0 0 0 927.8 1069.2z","horizAdvX":"1200"},"ball-pen-line":{"path":["M0 0h24v24H0z","M17.849 11.808l-.707-.707-9.9 9.9H3v-4.243L14.313 5.444l5.657 5.657a1 1 0 0 1 0 1.414l-7.07 7.071-1.415-1.414 6.364-6.364zm-2.121-2.121l-1.415-1.414L5 17.586v1.415h1.414l9.314-9.314zm2.828-7.071l2.829 2.828a1 1 0 0 1 0 1.414L19.97 8.273 15.728 4.03l1.414-1.414a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M892.45 609.6L857.1 644.95L362.1 149.9500000000001H150V362.1000000000003L715.65 927.8L998.5 644.95A50 50 0 0 0 998.5 574.2500000000001L644.9999999999999 220.7000000000001L574.25 291.4000000000001L892.45 609.6000000000001zM786.4 715.6500000000001L715.65 786.35L250 320.7000000000001V249.9500000000002H320.7L786.4 715.6500000000001zM927.8 1069.2L1069.25 927.8A50 50 0 0 0 1069.25 857.1000000000001L998.5 786.35L786.4 998.5L857.1 1069.2A50 50 0 0 0 927.8 1069.2z","horizAdvX":"1200"},"bank-card-2-fill":{"path":["M0 0h24v24H0z","M22 11v9a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9h20zm0-4H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v3z"],"unicode":"","glyph":"M1100 650V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V650H1100zM1100 850H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V850z","horizAdvX":"1200"},"bank-card-2-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 9H4v7h16v-7zm0-4V5H4v3h16z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 600H200V250H1000V600zM1000 800V950H200V800H1000z","horizAdvX":"1200"},"bank-card-fill":{"path":["M0 0h24v24H0z","M22 10v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10h20zm0-2H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4zm-7 8v2h4v-2h-4z"],"unicode":"","glyph":"M1100 700V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V700H1100zM1100 800H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V800zM750 400V300H950V400H750z","horizAdvX":"1200"},"bank-card-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 8H4v8h16v-8zm0-2V5H4v4h16zm-6 6h4v2h-4v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 650H200V250H1000V650zM1000 750V950H200V750H1000zM700 450H900V350H700V450z","horizAdvX":"1200"},"bank-fill":{"path":["M0 0h24v24H0z","M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm10 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 200H1100V100H100V200zM200 600H300V250H200V600zM450 600H550V250H450V600zM650 600H750V250H650V600zM900 600H1000V250H900V600zM100 850L600 1100L1100 850V650H100V850zM600 800A50 50 0 1 1 600 900A50 50 0 0 1 600 800z","horizAdvX":"1200"},"bank-line":{"path":["M0 0h24v24H0z","M2 20h20v2H2v-2zm2-8h2v7H4v-7zm5 0h2v7H9v-7zm4 0h2v7h-2v-7zm5 0h2v7h-2v-7zM2 7l10-5 10 5v4H2V7zm2 1.236V9h16v-.764l-8-4-8 4zM12 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M100 200H1100V100H100V200zM200 600H300V250H200V600zM450 600H550V250H450V600zM650 600H750V250H650V600zM900 600H1000V250H900V600zM100 850L600 1100L1100 850V650H100V850zM200 788.2V750H1000V788.2L600 988.2L200 788.2zM600 800A50 50 0 1 0 600 900A50 50 0 0 0 600 800z","horizAdvX":"1200"},"bar-chart-2-fill":{"path":["M0 0h24v24H0z","M2 13h6v8H2v-8zM9 3h6v18H9V3zm7 5h6v13h-6V8z"],"unicode":"","glyph":"M100 550H400V150H100V550zM450 1050H750V150H450V1050zM800 800H1100V150H800V800z","horizAdvX":"1200"},"bar-chart-2-line":{"path":["M0 0h24v24H0z","M2 13h6v8H2v-8zm14-5h6v13h-6V8zM9 3h6v18H9V3zM4 15v4h2v-4H4zm7-10v14h2V5h-2zm7 5v9h2v-9h-2z"],"unicode":"","glyph":"M100 550H400V150H100V550zM800 800H1100V150H800V800zM450 1050H750V150H450V1050zM200 450V250H300V450H200zM550 950V250H650V950H550zM900 700V250H1000V700H900z","horizAdvX":"1200"},"bar-chart-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 10v4h2v-4H7zm4-6v10h2V7h-2zm4 3v7h2v-7h-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM350 550V350H450V550H350zM550 850V350H650V850H550zM750 700V350H850V700H750z","horizAdvX":"1200"},"bar-chart-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm3 8h2v4H7v-4zm4-6h2v10h-2V7zm4 3h2v7h-2v-7z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM350 550H450V350H350V550zM550 850H650V350H550V850zM750 700H850V350H750V700z","horizAdvX":"1200"},"bar-chart-fill":{"path":["M0 0h24v24H0z","M3 12h4v9H3v-9zm14-4h4v13h-4V8zm-7-6h4v19h-4V2z"],"unicode":"","glyph":"M150 600H350V150H150V600zM850 800H1050V150H850V800zM500 1100H700V150H500V1100z","horizAdvX":"1200"},"bar-chart-grouped-fill":{"path":["M0 0h24v24H0z","M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"],"unicode":"","glyph":"M100 600H200V150H100V600zM250 500H350V150H250V500zM800 800H900V150H800V800zM950 700H1050V150H950V700zM450 1100H550V150H450V1100zM600 1000H700V150H600V1000z","horizAdvX":"1200"},"bar-chart-grouped-line":{"path":["M0 0h24v24H0z","M2 12h2v9H2v-9zm3 2h2v7H5v-7zm11-6h2v13h-2V8zm3 2h2v11h-2V10zM9 2h2v19H9V2zm3 2h2v17h-2V4z"],"unicode":"","glyph":"M100 600H200V150H100V600zM250 500H350V150H250V500zM800 800H900V150H800V800zM950 700H1050V150H950V700zM450 1100H550V150H450V1100zM600 1000H700V150H600V1000z","horizAdvX":"1200"},"bar-chart-horizontal-fill":{"path":["M0 0h24v24H0z","M12 3v4H3V3h9zm4 14v4H3v-4h13zm6-7v4H3v-4h19z"],"unicode":"","glyph":"M600 1050V850H150V1050H600zM800 350V150H150V350H800zM1100 700V500H150V700H1100z","horizAdvX":"1200"},"bar-chart-horizontal-line":{"path":["M0 0h24v24H0z","M12 3v2H3V3h9zm4 16v2H3v-2h13zm6-8v2H3v-2h19z"],"unicode":"","glyph":"M600 1050V950H150V1050H600zM800 250V150H150V250H800zM1100 650V550H150V650H1100z","horizAdvX":"1200"},"bar-chart-line":{"path":["M0 0h24v24H0z","M3 12h2v9H3v-9zm16-4h2v13h-2V8zm-8-6h2v19h-2V2z"],"unicode":"","glyph":"M150 600H250V150H150V600zM950 800H1050V150H950V800zM550 1100H650V150H550V1100z","horizAdvX":"1200"},"barcode-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 4v10h3V7H6zm4 0v10h2V7h-2zm3 0v10h1V7h-1zm2 0v10h3V7h-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM300 850V350H450V850H300zM500 850V350H600V850H500zM650 850V350H700V850H650zM750 850V350H900V850H750z","horizAdvX":"1200"},"barcode-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 4h3v10H6V7zm4 0h2v10h-2V7zm3 0h1v10h-1V7zm2 0h3v10h-3V7z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM300 850H450V350H300V850zM500 850H600V350H500V850zM650 850H700V350H650V850zM750 850H900V350H750V850z","horizAdvX":"1200"},"barcode-fill":{"path":["M0 0h24v24H0z","M2 4h2v16H2V4zm4 0h2v16H6V4zm3 0h3v16H9V4zm4 0h2v16h-2V4zm3 0h2v16h-2V4zm3 0h3v16h-3V4z"],"unicode":"","glyph":"M100 1000H200V200H100V1000zM300 1000H400V200H300V1000zM450 1000H600V200H450V1000zM650 1000H750V200H650V1000zM800 1000H900V200H800V1000zM950 1000H1100V200H950V1000z","horizAdvX":"1200"},"barcode-line":{"path":["M0 0h24v24H0z","M2 4h2v16H2V4zm4 0h1v16H6V4zm2 0h2v16H8V4zm3 0h2v16h-2V4zm3 0h2v16h-2V4zm3 0h1v16h-1V4zm2 0h3v16h-3V4z"],"unicode":"","glyph":"M100 1000H200V200H100V1000zM300 1000H350V200H300V1000zM400 1000H500V200H400V1000zM550 1000H650V200H550V1000zM700 1000H800V200H700V1000zM850 1000H900V200H850V1000zM950 1000H1100V200H950V1000z","horizAdvX":"1200"},"barricade-fill":{"path":["M0 0h24v24H0z","M19.556 19H21v2H3v-2h1.444l.89-4h13.333l.889 4zM17.333 9l.89 4H5.777l.889-4h10.666zm-.444-2H7.11l.715-3.217A1 1 0 0 1 8.802 3h6.396a1 1 0 0 1 .976.783L16.889 7z"],"unicode":"","glyph":"M977.8 250H1050V150H150V250H222.2L266.7 450H933.3500000000003L977.8 250zM866.6499999999999 750L911.15 550H288.85L333.3 750H866.6zM844.4499999999999 850H355.5L391.25 1010.85A50 50 0 0 0 440.1 1050H759.9A50 50 0 0 0 808.6999999999999 1010.85L844.4499999999999 850z","horizAdvX":"1200"},"barricade-line":{"path":["M0 0h24v24H0z","M6.493 19h11.014l-.667-3H7.16l-.667 3zm13.063 0H21v2H3v-2h1.444L7.826 3.783A1 1 0 0 1 8.802 3h6.396a1 1 0 0 1 .976.783L19.556 19zM7.604 14h8.792l-.89-4H8.494l-.889 4zm1.334-6h6.124l-.666-3H9.604l-.666 3z"],"unicode":"","glyph":"M324.6500000000001 250H875.3499999999999L841.9999999999998 400H358L324.6500000000001 250zM977.8 250H1050V150H150V250H222.2L391.3 1010.85A50 50 0 0 0 440.1 1050H759.9A50 50 0 0 0 808.6999999999999 1010.85L977.8 250zM380.2 500H819.8000000000001L775.3 700H424.7L380.25 500zM446.9000000000001 800H753.1L719.8000000000001 950H480.1999999999999L446.8999999999999 800z","horizAdvX":"1200"},"base-station-fill":{"path":["M0 0h24v24H0z","M12 13l6 9H6l6-9zm-1.06-2.44a1.5 1.5 0 1 1 2.12-2.12 1.5 1.5 0 0 1-2.12 2.12zM5.281 2.783l1.415 1.415a7.5 7.5 0 0 0 0 10.606l-1.415 1.415a9.5 9.5 0 0 1 0-13.436zm13.436 0a9.5 9.5 0 0 1 0 13.436l-1.415-1.415a7.5 7.5 0 0 0 0-10.606l1.415-1.415zM8.11 5.611l1.414 1.414a3.5 3.5 0 0 0 0 4.95l-1.414 1.414a5.5 5.5 0 0 1 0-7.778zm7.778 0a5.5 5.5 0 0 1 0 7.778l-1.414-1.414a3.5 3.5 0 0 0 0-4.95l1.414-1.414z"],"unicode":"","glyph":"M600 550L900 100H300L600 550zM547 672A75 75 0 1 0 652.9999999999999 778A75 75 0 0 0 546.9999999999999 671.9999999999999zM264.05 1060.85L334.8 990.1A375 375 0 0 1 334.8 459.8L264.05 389.05A474.99999999999994 474.99999999999994 0 0 0 264.05 1060.85zM935.85 1060.85A474.99999999999994 474.99999999999994 0 0 0 935.85 389.05L865.1 459.8A375 375 0 0 1 865.1 990.1L935.85 1060.85zM405.5 919.45L476.1999999999999 848.75A175 175 0 0 1 476.1999999999999 601.25L405.5 530.5500000000001A275 275 0 0 0 405.5 919.45zM794.3999999999999 919.45A275 275 0 0 0 794.3999999999999 530.5500000000001L723.6999999999999 601.25A175 175 0 0 1 723.6999999999999 848.75L794.3999999999999 919.45z","horizAdvX":"1200"},"base-station-line":{"path":["M0 0h24v24H0z","M12 13l6 9H6l6-9zm0 3.6L9.74 20h4.52L12 16.6zm-1.06-6.04a1.5 1.5 0 1 1 2.12-2.12 1.5 1.5 0 0 1-2.12 2.12zM5.281 2.783l1.415 1.415a7.5 7.5 0 0 0 0 10.606l-1.415 1.415a9.5 9.5 0 0 1 0-13.436zm13.436 0a9.5 9.5 0 0 1 0 13.436l-1.415-1.415a7.5 7.5 0 0 0 0-10.606l1.415-1.415zM8.11 5.611l1.414 1.414a3.5 3.5 0 0 0 0 4.95l-1.414 1.414a5.5 5.5 0 0 1 0-7.778zm7.778 0a5.5 5.5 0 0 1 0 7.778l-1.414-1.414a3.5 3.5 0 0 0 0-4.95l1.414-1.414z"],"unicode":"","glyph":"M600 550L900 100H300L600 550zM600 369.9999999999999L487 200H713L600 369.9999999999999zM547 671.9999999999999A75 75 0 1 0 652.9999999999999 778A75 75 0 0 0 546.9999999999999 671.9999999999999zM264.05 1060.85L334.8 990.1A375 375 0 0 1 334.8 459.8L264.05 389.05A474.99999999999994 474.99999999999994 0 0 0 264.05 1060.85zM935.85 1060.85A474.99999999999994 474.99999999999994 0 0 0 935.85 389.05L865.1 459.8A375 375 0 0 1 865.1 990.1L935.85 1060.85zM405.5 919.45L476.1999999999999 848.75A175 175 0 0 1 476.1999999999999 601.25L405.5 530.5500000000001A275 275 0 0 0 405.5 919.45zM794.3999999999999 919.45A275 275 0 0 0 794.3999999999999 530.5500000000001L723.6999999999999 601.25A175 175 0 0 1 723.6999999999999 848.75L794.3999999999999 919.45z","horizAdvX":"1200"},"basketball-fill":{"path":["M0 0h24v24H0z","M12.366 13.366l1.775 1.025a9.98 9.98 0 0 0-.311 7.44A9.911 9.911 0 0 1 12 22a9.964 9.964 0 0 1-4.11-.88l4.476-7.754zm3.517 2.032l4.234 2.444a10.033 10.033 0 0 1-4.363 3.43 7.988 7.988 0 0 1 .008-5.57l.121-.304zM8.86 11.342l1.775 1.024-4.476 7.75a10.026 10.026 0 0 1-3.59-4.785 9.978 9.978 0 0 0 6.085-3.713l.206-.276zm13.046-.726c.063.453.095.915.095 1.384a9.964 9.964 0 0 1-.88 4.11l-4.236-2.445a7.985 7.985 0 0 1 4.866-3.021l.155-.028zM2.881 7.891l4.235 2.445a7.99 7.99 0 0 1-5.021 3.05A10.14 10.14 0 0 1 2 12c0-1.465.315-2.856.88-4.11zm14.961-4.008a10.026 10.026 0 0 1 3.59 4.785 9.985 9.985 0 0 0-6.086 3.715l-.205.276-1.775-1.025 4.476-7.75zM12 2c1.465 0 2.856.315 4.11.88l-4.476 7.754L9.859 9.61a9.98 9.98 0 0 0 .311-7.442A9.922 9.922 0 0 1 12 2zm-3.753.73a7.992 7.992 0 0 1-.01 5.57l-.12.303-4.234-2.445a10.036 10.036 0 0 1 4.164-3.346l.2-.083z"],"unicode":"","glyph":"M618.3 531.7L707.05 480.45A499 499 0 0 1 691.5 108.4500000000001A495.55 495.55 0 0 0 600 100A498.2 498.2 0 0 0 394.5 144L618.3 531.6999999999999zM794.15 430.1L1005.85 307.9000000000001A501.65 501.65 0 0 0 787.6999999999999 136.4000000000001A399.40000000000003 399.40000000000003 0 0 0 788.0999999999998 414.9000000000001L794.1499999999999 430.1000000000002zM443 632.9L531.75 581.7L307.95 194.2000000000001A501.3 501.3 0 0 0 128.45 433.4500000000001A498.9 498.9 0 0 1 432.7 619.1L443 632.9000000000001zM1095.3 669.2C1098.4499999999998 646.5500000000001 1100.05 623.45 1100.05 600A498.2 498.2 0 0 0 1056.05 394.5L844.2499999999999 516.75A399.25 399.25 0 0 0 1087.55 667.8000000000001L1095.3 669.2000000000002zM144.05 805.45L355.8 683.1999999999999A399.5 399.5 0 0 0 104.75 530.7A507.00000000000006 507.00000000000006 0 0 0 100 600C100 673.25 115.75 742.8 144 805.5zM892.0999999999999 1005.85A501.3 501.3 0 0 0 1071.6 766.6A499.25 499.25 0 0 1 767.3 580.85L757.05 567.0500000000001L668.2999999999998 618.3000000000001L892.0999999999999 1005.8zM600 1100C673.25 1100 742.8 1084.25 805.5 1056L581.7 668.3L492.95 719.5A499 499 0 0 1 508.5 1091.6000000000001A496.1 496.1 0 0 0 600 1100zM412.35 1063.5A399.6 399.6 0 0 0 411.85 785L405.85 769.8499999999999L194.15 892.0999999999999A501.8 501.8 0 0 0 402.35 1059.3999999999999L412.35 1063.55z","horizAdvX":"1200"},"basketball-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm.366 11.366l-3.469 6.01a8.053 8.053 0 0 0 4.459.51 9.937 9.937 0 0 1 .784-5.494l-1.774-1.026zm3.518 2.031a7.956 7.956 0 0 0-.587 3.894 8.022 8.022 0 0 0 3.077-2.456l-2.49-1.438zm-7.025-4.055a9.95 9.95 0 0 1-4.365 3.428 8.01 8.01 0 0 0 2.671 3.604l3.469-6.008-1.775-1.024zm11.103-.13l-.258.12a7.947 7.947 0 0 0-2.82 2.333l2.492 1.439a7.975 7.975 0 0 0 .586-3.893zM4 12c0 .266.013.53.038.789a7.95 7.95 0 0 0 3.078-2.454L4.624 8.897A7.975 7.975 0 0 0 4 12zm12.835-6.374l-3.469 6.008 1.775 1.025a9.95 9.95 0 0 1 4.366-3.43 8.015 8.015 0 0 0-2.419-3.402l-.253-.201zM12 4c-.463 0-.916.04-1.357.115a9.928 9.928 0 0 1-.784 5.494l1.775 1.025 3.469-6.01A7.975 7.975 0 0 0 12 4zm-3.297.71l-.191.088a8.033 8.033 0 0 0-2.886 2.367l2.49 1.438a7.956 7.956 0 0 0 .587-3.893z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM618.3 531.7L444.85 231.2000000000002A402.65000000000003 402.65000000000003 0 0 1 667.8 205.7000000000001A496.84999999999997 496.84999999999997 0 0 0 707 480.4L618.3 531.7zM794.2 430.15A397.80000000000007 397.80000000000007 0 0 1 764.85 235.45A401.1 401.1 0 0 1 918.7000000000002 358.25L794.2000000000002 430.15zM442.95 632.9A497.49999999999994 497.49999999999994 0 0 0 224.7 461.5A400.5 400.5 0 0 1 358.25 281.3000000000001L531.6999999999999 581.7L442.95 632.9000000000001zM998.1 639.4L985.2 633.4000000000001A397.35 397.35 0 0 1 844.2 516.75L968.8 444.8000000000001A398.74999999999994 398.74999999999994 0 0 1 998.1 639.45zM200 600C200 586.7 200.65 573.5 201.9 560.5500000000001A397.5 397.5 0 0 1 355.8 683.25L231.2 755.15A398.74999999999994 398.74999999999994 0 0 1 200 600zM841.75 918.7L668.3000000000001 618.3L757.0500000000001 567.05A497.49999999999994 497.49999999999994 0 0 0 975.35 738.55A400.75 400.75 0 0 1 854.4000000000001 908.65L841.75 918.7zM600 1000C576.85 1000 554.1999999999999 998 532.1500000000001 994.25A496.40000000000003 496.40000000000003 0 0 0 492.95 719.55L581.7 668.3L755.15 968.8A398.74999999999994 398.74999999999994 0 0 1 600 1000zM435.15 964.5L425.5999999999999 960.1A401.65 401.65 0 0 1 281.3 841.75L405.8 769.85A397.80000000000007 397.80000000000007 0 0 1 435.15 964.5z","horizAdvX":"1200"},"battery-2-charge-fill":{"path":["M0 0h24v24H0z","M9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3zm4 8V7l-5 7h3v5l5-7h-3z"],"unicode":"","glyph":"M450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450zM650 600V850L400 500H550V250L800 600H650z","horizAdvX":"1200"},"battery-2-charge-line":{"path":["M0 0h24v24H0z","M13 12h3l-5 7v-5H8l5-7v5zm-2-6H7v14h10V6h-4V4h-2v2zM9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3z"],"unicode":"","glyph":"M650 600H800L550 250V500H400L650 850V600zM550 900H350V200H850V900H650V1000H550V900zM450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450z","horizAdvX":"1200"},"battery-2-fill":{"path":["M0 0h24v24H0z","M9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3z"],"unicode":"","glyph":"M450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450z","horizAdvX":"1200"},"battery-2-line":{"path":["M0 0h24v24H0z","M11 6H7v14h10V6h-4V4h-2v2zM9 4V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3z"],"unicode":"","glyph":"M550 900H350V200H850V900H650V1000H550V900zM450 1000V1050A50 50 0 0 0 500 1100H700A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450z","horizAdvX":"1200"},"battery-charge-fill":{"path":["M0 0h24v24H0z","M12 11V5l-5 8h3v6l5-8h-3zM3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm18 4h2v6h-2V9z"],"unicode":"","glyph":"M600 650V950L350 550H500V250L750 650H600zM150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-charge-line":{"path":["M0 0h24v24H0z","M8 19H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h6.625L8.458 7H4v10h4v2zm4.375 0l1.167-2H18V7h-4V5h5a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-6.625zM21 9h2v6h-2V9zm-9 2h3l-5 8v-6H7l5-8v6z"],"unicode":"","glyph":"M400 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950H481.25L422.9000000000001 850H200V350H400V250zM618.75 250L677.1 350H900V850H700V950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H618.75zM1050 750H1150V450H1050V750zM600 650H750L500 250V550H350L600 950V650z","horizAdvX":"1200"},"battery-fill":{"path":["M0 0h24v24H0z","M3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm18 4h2v6h-2V9z"],"unicode":"","glyph":"M150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-line":{"path":["M0 0h24v24H0z","M4 7v10h14V7H4zM3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm18 4h2v6h-2V9z"],"unicode":"","glyph":"M200 850V350H900V850H200zM150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-low-fill":{"path":["M0 0h24v24H0z","M3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm2 3v8h4V8H5zm16 1h2v6h-2V9z"],"unicode":"","glyph":"M150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM250 800V400H450V800H250zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-low-line":{"path":["M0 0h24v24H0z","M4 7v10h14V7H4zM3 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm2 3h4v8H5V8zm16 1h2v6h-2V9z"],"unicode":"","glyph":"M200 850V350H900V850H200zM150 950H950A50 50 0 0 0 1000 900V300A50 50 0 0 0 950 250H150A50 50 0 0 0 100 300V900A50 50 0 0 0 150 950zM250 800H450V400H250V800zM1050 750H1150V450H1050V750z","horizAdvX":"1200"},"battery-saver-fill":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4zm-1 7h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700zM650 750H550V600H400V500H550V350H650V500H800V600H650V750z","horizAdvX":"1200"},"battery-saver-line":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4zm-1 2h-2v2H7v14h10V6h-4V4zm0 5v3h3v2h-3v3h-2v-3H8v-2h3V9h2z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700zM650 1000H550V900H350V200H850V900H650V1000zM650 750V600H800V500H650V350H550V500H400V600H550V750H650z","horizAdvX":"1200"},"battery-share-fill":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v6.2L15 8v3h-1c-2.142 0-4 1.79-4 4v3h2v-3c0-1.05.95-2 2-2h1v3l4-3.2V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V640L750 800V650H700C592.9 650 500 560.5 500 450V300H600V450C600 502.5 647.5 550 700 550H750V400L950 560V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700z","horizAdvX":"1200"},"battery-share-line":{"path":["M0 0h24v24H0z","M14 2a1 1 0 0 1 1 1v1h3a1 1 0 0 1 1 1v2h-2V6h-4V4h-2v2H7v14h10v-3h2v4a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h4zm1 6l5 4-5 4v-3h-1c-1.054 0-2 .95-2 2v3h-2v-3a4 4 0 0 1 4-4h1V8z"],"unicode":"","glyph":"M700 1100A50 50 0 0 0 750 1050V1000H900A50 50 0 0 0 950 950V850H850V900H650V1000H550V900H350V200H850V350H950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V950A50 50 0 0 0 300 1000H450V1050A50 50 0 0 0 500 1100H700zM750 800L1000 600L750 400V550H700C647.3 550 600 502.5 600 450V300H500V450A200 200 0 0 0 700 650H750V800z","horizAdvX":"1200"},"bear-smile-fill":{"path":["M0 0h24v24H0z","M17.5 2a4.5 4.5 0 0 1 2.951 7.897c.355.967.549 2.013.549 3.103A9 9 0 1 1 3.55 9.897a4.5 4.5 0 1 1 6.791-5.744 9.05 9.05 0 0 1 3.32 0A4.494 4.494 0 0 1 17.5 2zM10 13H8a4 4 0 0 0 7.995.2L16 13h-2a2 2 0 0 1-3.995.15L10 13z"],"unicode":"","glyph":"M875 1100A225 225 0 0 0 1022.55 705.15C1040.3 656.8 1050 604.5 1050 550A450 450 0 1 0 177.5 705.15A225 225 0 1 0 517.0500000000001 992.35A452.50000000000006 452.50000000000006 0 0 0 683.0500000000001 992.35A224.70000000000002 224.70000000000002 0 0 0 875 1100zM500 550H400A200 200 0 0 1 799.75 540L800 550H700A100 100 0 0 0 500.2499999999999 542.5L500 550z","horizAdvX":"1200"},"bear-smile-line":{"path":["M0 0h24v24H0z","M17.5 2a4.5 4.5 0 0 1 2.951 7.897c.355.967.549 2.013.549 3.103A9 9 0 1 1 3.55 9.897a4.5 4.5 0 1 1 6.791-5.744 9.05 9.05 0 0 1 3.32 0A4.494 4.494 0 0 1 17.5 2zm0 2c-.823 0-1.575.4-2.038 1.052l-.095.144-.718 1.176-1.355-.253a7.05 7.05 0 0 0-2.267-.052l-.316.052-1.356.255-.72-1.176A2.5 2.5 0 1 0 4.73 8.265l.131.123 1.041.904-.475 1.295A7 7 0 1 0 19 13c0-.716-.107-1.416-.314-2.083l-.112-.33-.475-1.295 1.04-.904A2.5 2.5 0 0 0 17.5 4zM10 13a2 2 0 1 0 4 0h2a4 4 0 1 1-8 0h2z"],"unicode":"","glyph":"M875 1100A225 225 0 0 0 1022.55 705.15C1040.3 656.8 1050 604.5 1050 550A450 450 0 1 0 177.5 705.15A225 225 0 1 0 517.0500000000001 992.35A452.50000000000006 452.50000000000006 0 0 0 683.0500000000001 992.35A224.70000000000002 224.70000000000002 0 0 0 875 1100zM875 1000C833.85 1000 796.25 980 773.1 947.4L768.3499999999999 940.2L732.4499999999999 881.4L664.6999999999999 894.05A352.5 352.5 0 0 1 551.3499999999999 896.65L535.55 894.05L467.7499999999999 881.3L431.7499999999999 940.1A125 125 0 1 1 236.5000000000001 786.75L243.0500000000001 780.6L295.1 735.4000000000001L271.3500000000001 670.65A350 350 0 1 1 950 550C950 585.8 944.65 620.8000000000001 934.3 654.15L928.7 670.65L904.95 735.4000000000001L956.95 780.6A125 125 0 0 1 875 1000zM500 550A100 100 0 1 1 700 550H800A200 200 0 1 0 400 550H500z","horizAdvX":"1200"},"behance-fill":{"path":["M0 0h24v24H0z","M7.443 5.35c.639 0 1.23.05 1.77.198a3.83 3.83 0 0 1 1.377.544c.394.247.689.594.885 1.039.197.445.295.99.295 1.583 0 .693-.147 1.286-.491 1.731-.295.446-.787.841-1.377 1.138.836.248 1.475.693 1.868 1.286.394.594.64 1.336.64 2.177 0 .693-.148 1.286-.394 1.781-.246.495-.639.94-1.082 1.237a5.078 5.078 0 0 1-1.573.692c-.59.149-1.18.248-1.77.248H1V5.35h6.443zm-.394 5.54c.541 0 .984-.148 1.328-.395.344-.247.492-.693.492-1.237 0-.297-.05-.594-.148-.791-.098-.198-.246-.347-.442-.495-.197-.099-.394-.198-.64-.247-.246-.05-.491-.05-.787-.05H4v3.216h3.05zm.148 5.838c.295 0 .59-.05.836-.099a1.72 1.72 0 0 0 .688-.297 1.76 1.76 0 0 0 .492-.544c.098-.247.197-.544.197-.89 0-.693-.197-1.188-.59-1.534-.394-.297-.935-.445-1.574-.445H4v3.81h3.197zm9.492-.05c.393.396.983.594 1.77.594.541 0 1.033-.148 1.426-.395.394-.297.64-.594.738-.891h2.41c-.394 1.187-.984 2.028-1.77 2.572-.788.495-1.722.792-2.853.792a5.753 5.753 0 0 1-2.115-.396 3.93 3.93 0 0 1-1.574-1.088 3.93 3.93 0 0 1-.983-1.633c-.246-.643-.345-1.335-.345-2.127 0-.742.099-1.434.345-2.078a5.34 5.34 0 0 1 1.032-1.682c.443-.445.984-.84 1.574-1.088a5.49 5.49 0 0 1 2.066-.396c.836 0 1.574.149 2.213.495.64.346 1.131.742 1.525 1.336a6.01 6.01 0 0 1 .885 1.88c.098.692.147 1.385.098 2.176H16c0 .792.295 1.534.689 1.93zm3.098-5.194c-.344-.346-.885-.544-1.525-.544-.442 0-.787.099-1.082.247-.295.149-.491.347-.688.545a1.322 1.322 0 0 0-.344.692c-.05.248-.099.445-.099.643h4.426c-.098-.742-.344-1.236-.688-1.583zM15.459 6.29h5.508v1.336H15.46V6.29z"],"unicode":"","glyph":"M372.15 932.5C404.1 932.5 433.65 930 460.65 922.6A191.5 191.5 0 0 0 529.5 895.4C549.2 883.05 563.95 865.6999999999999 573.75 843.45C583.5999999999999 821.2 588.5 793.95 588.5 764.3C588.5 729.65 581.15 700 563.95 677.75C549.2 655.45 524.5999999999999 635.7 495.1 620.85C536.9 608.45 568.8499999999999 586.2 588.5 556.55C608.1999999999999 526.85 620.5 489.75 620.5 447.7000000000001C620.5 413.0500000000001 613.1 383.4 600.8 358.6500000000001C588.5 333.9000000000001 568.85 311.65 546.6999999999999 296.8A253.9 253.9 0 0 0 468.05 262.2000000000001C438.55 254.75 409.05 249.8 379.55 249.8H50V932.5H372.15zM352.45 655.5C379.5 655.5 401.65 662.9 418.85 675.25C436.0499999999999 687.5999999999999 443.45 709.8999999999999 443.45 737.0999999999999C443.45 751.95 440.95 766.8 436.05 776.65C431.15 786.55 423.75 794 413.95 801.4C404.1 806.3499999999999 394.25 811.3 381.95 813.75C369.6500000000001 816.25 357.4000000000001 816.25 342.6 816.25H200V655.4499999999999H352.5zM359.85 363.5999999999999C374.6 363.5999999999999 389.35 366.0999999999999 401.65 368.55A86 86 0 0 1 436.05 383.4A88 88 0 0 1 460.65 410.6C465.5500000000001 422.95 470.5 437.8 470.5 455.1C470.5 489.75 460.65 514.5 441 531.8000000000001C421.3 546.6500000000001 394.25 554.0500000000001 362.3 554.0500000000001H200V363.5500000000001H359.85zM834.45 366.0999999999999C854.1 346.3 883.6 336.3999999999999 922.95 336.3999999999999C950 336.3999999999999 974.6 343.7999999999999 994.2499999999998 356.1499999999999C1013.9499999999998 370.9999999999999 1026.25 385.8499999999999 1031.1499999999999 400.7H1151.6499999999999C1131.95 341.3499999999999 1102.45 299.2999999999999 1063.1499999999999 272.0999999999998C1023.7499999999998 247.3499999999998 977.0499999999998 232.4999999999998 920.4999999999998 232.4999999999998A287.65000000000003 287.65000000000003 0 0 0 814.7499999999998 252.2999999999999A196.5 196.5 0 0 0 736.0499999999997 306.6999999999998A196.5 196.5 0 0 0 686.8999999999997 388.3499999999998C674.5999999999997 420.4999999999998 669.6499999999996 455.0999999999998 669.6499999999996 494.6999999999997C669.6499999999996 531.7999999999997 674.5999999999997 566.3999999999997 686.8999999999997 598.5999999999997A267 267 0 0 0 738.4999999999997 682.6999999999997C760.6499999999996 704.9499999999998 787.6999999999997 724.6999999999997 817.1999999999997 737.0999999999997A274.50000000000006 274.50000000000006 0 0 0 920.4999999999995 756.8999999999997C962.2999999999996 756.8999999999997 999.1999999999998 749.4499999999998 1031.1499999999996 732.1499999999997C1063.1499999999996 714.8499999999997 1087.6999999999998 695.0499999999998 1107.3999999999996 665.3499999999998A300.5 300.5 0 0 0 1151.6499999999996 571.3499999999998C1156.5499999999997 536.7499999999998 1158.9999999999995 502.0999999999998 1156.5499999999997 462.5499999999998H800C800 422.9499999999998 814.7500000000001 385.8499999999998 834.45 366.0499999999998zM989.35 625.8C972.1499999999997 643.0999999999999 945.1 652.9999999999999 913.1 652.9999999999999C891 652.9999999999999 873.7500000000001 648.05 859 640.65C844.2499999999999 633.1999999999999 834.45 623.3 824.6 613.4A66.1 66.1 0 0 1 807.4 578.8C804.9 566.4 802.4499999999999 556.55 802.4499999999999 546.6499999999999H1023.7500000000002C1018.8500000000003 583.7499999999999 1006.55 608.4499999999999 989.3500000000003 625.8zM772.9499999999999 885.5H1048.35V818.7H773V885.5z","horizAdvX":"1200"},"behance-line":{"path":["M0 0h24v24H0z","M7.5 11a2 2 0 1 0 0-4H3v4h4.5zm1 2H3v4h5.5a2 2 0 1 0 0-4zm2.063-1.428A4 4 0 0 1 8.5 19H1V5h6.5a4 4 0 0 1 3.063 6.572zM15.5 6H21v1.5h-5.5V6zm7.5 8.5h-7.5v.25A2.75 2.75 0 0 0 20.7 16h2.134a4.752 4.752 0 0 1-9.334-1.25v-1.5a4.75 4.75 0 1 1 9.5 0v1.25zm-2.104-2a2.751 2.751 0 0 0-5.292 0h5.292z"],"unicode":"","glyph":"M375 650A100 100 0 1 1 375 850H150V650H375zM425 550H150V350H425A100 100 0 1 1 425 550zM528.15 621.4000000000001A200 200 0 0 0 425 250H50V950H375A200 200 0 0 0 528.15 621.4000000000001zM775 900H1050V825H775V900zM1150 475H775V462.5A137.5 137.5 0 0 1 1035 400H1141.7A237.60000000000002 237.60000000000002 0 0 0 675 462.5V537.5A237.49999999999997 237.49999999999997 0 1 0 1150 537.5V475zM1044.8 575A137.54999999999998 137.54999999999998 0 0 1 780.2 575H1044.8z","horizAdvX":"1200"},"bell-fill":{"path":["M0 0h24v24H0z","M13.414 10.586l.48.486.465.485.459.492c3.458 3.764 5.472 7.218 4.607 8.083-.4.4-1.356.184-2.64-.507a9.006 9.006 0 0 1-10.403-.592l2.98-2.98a2 2 0 1 0-1.45-1.569l.035.155-2.979 2.98a9.007 9.007 0 0 1-.592-10.405c-.692-1.283-.908-2.238-.508-2.639.977-.976 5.25 1.715 9.546 6.01zm6.364-6.364a2 2 0 0 1-.164 2.976 9.015 9.015 0 0 1 .607 8.47c-1.189-1.954-3.07-4.174-5.393-6.496l-.537-.532c-2.128-2.079-4.156-3.764-5.958-4.86a9.015 9.015 0 0 1 8.471.607 2 2 0 0 1 2.974-.165z"],"unicode":"","glyph":"M670.6999999999999 670.6999999999999L694.7 646.4L717.95 622.15L740.9 597.5500000000001C913.8 409.35 1014.5 236.65 971.25 193.4000000000001C951.2500000000002 173.4000000000001 903.45 184.2000000000001 839.25 218.7500000000002A450.3 450.3 0 0 0 319.1 248.3500000000002L468.1 397.3500000000002A100 100 0 1 1 395.6 475.8000000000001L397.35 468.0500000000001L248.4 319.0500000000002A450.34999999999997 450.34999999999997 0 0 0 218.8 839.3000000000002C184.2 903.4500000000002 173.4 951.2000000000002 193.4 971.2500000000002C242.2500000000001 1020.0500000000002 455.9 885.5000000000001 670.6999999999999 670.7500000000001zM988.9 988.9A100 100 0 0 0 980.6999999999998 840.0999999999999A450.74999999999994 450.74999999999994 0 0 0 1011.0499999999998 416.5999999999999C951.5999999999998 514.3 857.5499999999998 625.3 741.3999999999997 741.4L714.5499999999997 768C608.1499999999997 871.95 506.7499999999997 956.2 416.6499999999998 1011A450.74999999999994 450.74999999999994 0 0 0 840.1999999999997 980.65A100 100 0 0 0 988.8999999999997 988.9z","horizAdvX":"1200"},"bell-line":{"path":["M0 0h24v24H0z","M14.121 9.879c4.296 4.295 6.829 8.728 5.657 9.9-.475.474-1.486.34-2.807-.273a9.008 9.008 0 0 1-10.59-.474l-.038.04-1.414-1.415.038-.04A9.006 9.006 0 0 1 4.495 7.03c-.614-1.322-.748-2.333-.273-2.808 1.128-1.128 5.277 1.177 9.417 5.182l.482.475zm-1.414 1.414C10.823 9.409 8.87 7.842 7.236 6.87l-.186.18a7.002 7.002 0 0 0-.657 9.142l1.846-1.846a2 2 0 1 1 1.416 1.415l-1.848 1.846a7.002 7.002 0 0 0 9.143-.657l.179-.188-.053-.089c-.976-1.615-2.52-3.53-4.369-5.38zm7.071-7.071a2 2 0 0 1-.164 2.976 9.015 9.015 0 0 1 .662 8.345 21.168 21.168 0 0 0-1.386-2.306 6.99 6.99 0 0 0-1.94-6.187 6.992 6.992 0 0 0-6.187-1.94 21.092 21.092 0 0 0-2.306-1.386 9.016 9.016 0 0 1 8.347.663 2 2 0 0 1 2.974-.165z"],"unicode":"","glyph":"M706.0500000000001 706.05C920.8500000000003 491.3000000000001 1047.5 269.6500000000001 988.9 211.05C965.1499999999997 187.35 914.6 194.05 848.55 224.7000000000001A450.4 450.4 0 0 0 319.05 248.4L317.15 246.4000000000001L246.45 317.15L248.35 319.15A450.3 450.3 0 0 0 224.75 848.5C194.05 914.6 187.35 965.15 211.1 988.9C267.5 1045.3 474.95 930.05 681.9499999999999 729.8L706.05 706.05zM635.35 635.35C541.15 729.55 443.5 807.9000000000001 361.8 856.5L352.5 847.5A350.09999999999997 350.09999999999997 0 0 1 319.65 390.4L411.9500000000001 482.7A100 100 0 1 0 482.7500000000001 411.9500000000001L390.3500000000001 319.6500000000001A350.09999999999997 350.09999999999997 0 0 1 847.5000000000001 352.5L856.45 361.9L853.8000000000001 366.3499999999999C805.0000000000001 447.0999999999999 727.8000000000001 542.8499999999999 635.35 635.3499999999999zM988.9 988.9A100 100 0 0 0 980.6999999999998 840.1A450.74999999999994 450.74999999999994 0 0 0 1013.7999999999998 422.85A1058.3999999999999 1058.3999999999999 0 0 1 944.4999999999998 538.1500000000001A349.50000000000006 349.50000000000006 0 0 1 847.4999999999998 847.5000000000001A349.6 349.6 0 0 1 538.1499999999997 944.5000000000002A1054.6 1054.6 0 0 1 422.8499999999997 1013.8000000000002A450.8 450.8 0 0 0 840.1999999999997 980.65A100 100 0 0 0 988.8999999999997 988.9z","horizAdvX":"1200"},"bike-fill":{"path":["M0 0h24v24H0z","M5.5 12H4V7H2V5h6v2H6v2.795l9.813-2.629L15.233 5H12V3h3.978a1 1 0 0 1 .988.741l1.553 5.796-1.932.517-.256-.956L5.5 12zM5 21a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm13 3a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-4a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M275 600H200V850H100V950H400V850H300V710.25L790.65 841.7L761.65 950H600V1050H798.9A50 50 0 0 0 848.3000000000001 1012.95L925.95 723.15L829.3500000000001 697.3L816.5500000000002 745.0999999999999L275 600zM250 150A200 200 0 1 0 250 550A200 200 0 0 0 250 150zM250 300A50 50 0 1 1 250 400A50 50 0 0 1 250 300zM900 150A250 250 0 1 0 900 650A250 250 0 0 0 900 150zM900 350A50 50 0 1 1 900 450A50 50 0 0 1 900 350z","horizAdvX":"1200"},"bike-line":{"path":["M0 0h24v24H0z","M5.5 12H4V7H2V5h6v2H6v2.795l9.813-2.629L15.233 5H12V3h3.978a1 1 0 0 1 .988.741l1.553 5.796-1.932.517-.256-.956L5.5 12zM5 19a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm13-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M275 600H200V850H100V950H400V850H300V710.25L790.65 841.7L761.65 950H600V1050H798.9A50 50 0 0 0 848.3000000000001 1012.95L925.95 723.15L829.3500000000001 697.3L816.5500000000002 745.0999999999999L275 600zM250 250A100 100 0 1 1 250 450A100 100 0 0 1 250 250zM250 150A200 200 0 1 0 250 550A200 200 0 0 0 250 150zM900 250A150 150 0 1 1 900 550A150 150 0 0 1 900 250zM900 150A250 250 0 1 0 900 650A250 250 0 0 0 900 150z","horizAdvX":"1200"},"bilibili-fill":{"path":["M0 0h24v24H0z","M18.223 3.086a1.25 1.25 0 0 1 0 1.768L17.08 5.996h1.17A3.75 3.75 0 0 1 22 9.747v7.5a3.75 3.75 0 0 1-3.75 3.75H5.75A3.75 3.75 0 0 1 2 17.247v-7.5a3.75 3.75 0 0 1 3.75-3.75h1.166L5.775 4.855a1.25 1.25 0 1 1 1.767-1.768l2.652 2.652c.079.079.145.165.198.257h3.213c.053-.092.12-.18.199-.258l2.651-2.652a1.25 1.25 0 0 1 1.768 0zm.027 5.42H5.75a1.25 1.25 0 0 0-1.247 1.157l-.003.094v7.5c0 .659.51 1.199 1.157 1.246l.093.004h12.5a1.25 1.25 0 0 0 1.247-1.157l.003-.093v-7.5c0-.69-.56-1.25-1.25-1.25zm-10 2.5c.69 0 1.25.56 1.25 1.25v1.25a1.25 1.25 0 1 1-2.5 0v-1.25c0-.69.56-1.25 1.25-1.25zm7.5 0c.69 0 1.25.56 1.25 1.25v1.25a1.25 1.25 0 1 1-2.5 0v-1.25c0-.69.56-1.25 1.25-1.25z"],"unicode":"","glyph":"M911.15 1045.7A62.5 62.5 0 0 0 911.15 957.3L853.9999999999999 900.2H912.5A187.5 187.5 0 0 0 1100 712.65V337.65A187.5 187.5 0 0 0 912.5 150.1500000000001H287.5A187.5 187.5 0 0 0 100 337.65V712.65A187.5 187.5 0 0 0 287.5 900.15H345.8L288.75 957.25A62.5 62.5 0 1 0 377.1 1045.65L509.6999999999999 913.05C513.65 909.1 516.9499999999999 904.8 519.6 900.2H680.25C682.9000000000001 904.8 686.25 909.2 690.2 913.1L822.7499999999999 1045.7A62.5 62.5 0 0 0 911.15 1045.7zM912.5 774.7H287.5A62.5 62.5 0 0 1 225.15 716.8499999999999L225 712.1500000000001V337.1500000000001C225 304.2000000000002 250.5 277.2000000000001 282.85 274.8500000000002L287.5 274.6500000000001H912.5A62.5 62.5 0 0 1 974.85 332.5000000000001L975 337.1500000000001V712.1500000000001C975 746.6500000000001 947.0000000000002 774.6500000000001 912.5 774.6500000000001zM412.5 649.7C447 649.7 475 621.6999999999999 475 587.2V524.7A62.5 62.5 0 1 0 350 524.7V587.2C350 621.6999999999999 378 649.7 412.5 649.7zM787.5 649.7C822.0000000000001 649.7 850 621.6999999999999 850 587.2V524.7A62.5 62.5 0 1 0 725 524.7V587.2C725 621.6999999999999 753 649.7 787.5 649.7z","horizAdvX":"1200"},"bilibili-line":{"path":["M0 0h24v24H0z","M7.172 2.757L10.414 6h3.171l3.243-3.242a1 1 0 0 1 1.415 1.415l-1.829 1.827L18.5 6A3.5 3.5 0 0 1 22 9.5v8a3.5 3.5 0 0 1-3.5 3.5h-13A3.5 3.5 0 0 1 2 17.5v-8A3.5 3.5 0 0 1 5.5 6h2.085L5.757 4.171a1 1 0 0 1 1.415-1.415zM18.5 8h-13a1.5 1.5 0 0 0-1.493 1.356L4 9.5v8a1.5 1.5 0 0 0 1.356 1.493L5.5 19h13a1.5 1.5 0 0 0 1.493-1.356L20 17.5v-8A1.5 1.5 0 0 0 18.5 8zM8 11a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1zm8 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M358.6 1062.15L520.6999999999999 900H679.25L841.4 1062.1A50 50 0 0 0 912.15 991.35L820.6999999999999 900L925 900A175 175 0 0 0 1100 725V325A175 175 0 0 0 925 150H275A175 175 0 0 0 100 325V725A175 175 0 0 0 275 900H379.25L287.85 991.45A50 50 0 0 0 358.6 1062.2zM925 800H275A75 75 0 0 1 200.35 732.2L200 725V325A75 75 0 0 1 267.8 250.35L275 250H925A75 75 0 0 1 999.65 317.8000000000001L1000 325V725A75 75 0 0 1 925 800zM400 650A50 50 0 0 0 450 600V500A50 50 0 0 0 350 500V600A50 50 0 0 0 400 650zM800 650A50 50 0 0 0 850 600V500A50 50 0 0 0 750 500V600A50 50 0 0 0 800 650z","horizAdvX":"1200"},"bill-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM8 9v2h8V9H8zm0 4v2h8v-2H8z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM400 750V650H800V750H400zM400 550V450H800V550H400z","horizAdvX":"1200"},"bill-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM8 9h8v2H8V9zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM400 750H800V650H400V750zM400 550H800V450H400V550z","horizAdvX":"1200"},"billiards-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 1.75a2.5 2.5 0 0 1 1.88 4.148c.565.456.92 1.117.92 1.852 0 1.38-1.254 2.5-2.8 2.5-1.546 0-2.8-1.12-2.8-2.5 0-.735.355-1.396.92-1.853A2.5 2.5 0 0 1 12 7.75zm0 5c-.753 0-1.3.488-1.3 1s.547 1 1.3 1 1.3-.488 1.3-1-.547-1-1.3-1zm0-3.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 900A300 300 0 1 1 600 300A300 300 0 0 1 600 900zM600 812.5A125 125 0 0 0 694 605.1C722.2499999999999 582.3000000000001 740 549.25 740 512.5C740 443.5 677.3 387.5 600 387.5C522.7 387.5 459.9999999999999 443.5 459.9999999999999 512.5C459.9999999999999 549.25 477.75 582.3000000000001 505.9999999999999 605.15A125 125 0 0 0 600 812.5zM600 562.5C562.35 562.5 535 538.1 535 512.5S562.35 462.5 600 462.5S665 486.9 665 512.5S637.65 562.5 600 562.5zM600 737.5A50 50 0 1 1 600 637.5A50 50 0 0 1 600 737.5z","horizAdvX":"1200"},"billiards-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 2a6 6 0 1 1 0 12 6 6 0 0 1 0-12zm0 1.75a2.5 2.5 0 0 0-1.88 4.147c-.565.457-.92 1.118-.92 1.853 0 1.38 1.254 2.5 2.8 2.5 1.546 0 2.8-1.12 2.8-2.5 0-.735-.355-1.396-.92-1.852A2.5 2.5 0 0 0 12 7.75zm0 5c.753 0 1.3.488 1.3 1s-.547 1-1.3 1-1.3-.488-1.3-1 .547-1 1.3-1zm0-3.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 900A300 300 0 1 0 600 300A300 300 0 0 0 600 900zM600 812.5A125 125 0 0 1 506.0000000000001 605.15C477.7500000000001 582.3 460.0000000000001 549.25 460.0000000000001 512.5C460.0000000000001 443.5 522.7 387.5 600 387.5C677.3 387.5 740 443.5 740 512.5C740 549.25 722.25 582.3000000000001 694 605.1A125 125 0 0 1 600 812.5zM600 562.5C637.65 562.5 665 538.1 665 512.5S637.65 462.5 600 462.5S535 486.9 535 512.5S562.35 562.5 600 562.5zM600 737.5A50 50 0 1 0 600 637.5A50 50 0 0 0 600 737.5z","horizAdvX":"1200"},"bit-coin-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-6v2h2v-2h1a2.5 2.5 0 0 0 2-4 2.5 2.5 0 0 0-2-4h-1V6h-2v2H8v8h3zm-1-3h4a.5.5 0 1 1 0 1h-4v-1zm0-3h4a.5.5 0 1 1 0 1h-4v-1z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 400V300H650V400H700A125 125 0 0 1 800 600A125 125 0 0 1 700 800H650V900H550V800H400V400H550zM500 550H700A25 25 0 1 0 700 500H500V550zM500 700H700A25 25 0 1 0 700 650H500V700z","horizAdvX":"1200"},"bit-coin-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-4H8V8h3V6h2v2h1a2.5 2.5 0 0 1 2 4 2.5 2.5 0 0 1-2 4h-1v2h-2v-2zm-1-3v1h4a.5.5 0 1 0 0-1h-4zm0-3v1h4a.5.5 0 1 0 0-1h-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 400H400V800H550V900H650V800H700A125 125 0 0 0 800 600A125 125 0 0 0 700 400H650V300H550V400zM500 550V500H700A25 25 0 1 1 700 550H500zM500 700V650H700A25 25 0 1 1 700 700H500z","horizAdvX":"1200"},"blaze-fill":{"path":["M0 0h24v24H0z","M18.5 9c1 1.06 1.5 2.394 1.5 4 0 3.466-3.7 4.276-5.5 9-.667-.575-1-1.408-1-2.5 0-3.482 5-5.29 5-10.5zm-4-4c1.2 1.238 1.8 2.572 1.8 4 0 4.951-6.045 5.692-4.8 13C9.833 20.84 9 19.173 9 17c0-3.325 5.5-6 5.5-12zM10 1c1.333 1.667 2 3.167 2 4.5 0 6.25-8.5 8.222-4 16.5-2.616-.58-4.5-3-4.5-6C3.5 9.5 10 8.5 10 1z"],"unicode":"","glyph":"M925 750C975 697 1000 630.3 1000 550C1000 376.7 815 336.2000000000001 725 100C691.65 128.75 675 170.4000000000001 675 225C675 399.0999999999999 925 489.5 925 750zM725 950C785 888.1 815 821.4 815 750C815 502.4499999999999 512.75 465.4 575 100C491.65 158 450 241.3500000000002 450 350C450 516.25 725 650 725 950zM500 1150C566.65 1066.65 600 991.65 600 925C600 612.5 175 513.9 400 100C269.2000000000001 129 175 250 175 400C175 725 500 775 500 1150z","horizAdvX":"1200"},"blaze-line":{"path":["M0 0h24v24H0z","M19 9c.667 1.06 1 2.394 1 4 0 3-3.5 4-5 9-.667-.575-1-1.408-1-2.5 0-3.482 5-5.29 5-10.5zm-4.5-4a8.31 8.31 0 0 1 1 4c0 5-6 6-4 13C9.833 20.84 9 19.173 9 17c0-3.325 5.5-6 5.5-12zM10 1c.667 1.333 1 2.833 1 4.5 0 6-9 7.5-3 16.5-2.5-.5-4.5-3-4.5-6C3.5 9.5 10 8.5 10 1z"],"unicode":"","glyph":"M950 750C983.3500000000003 697 1000 630.3 1000 550C1000 400 825 350 750 100C716.65 128.75 700 170.4000000000001 700 225C700 399.0999999999999 950 489.5 950 750zM725 950A415.5 415.5 0 0 0 775 750C775 500 475 450 575 100C491.65 158 450 241.3500000000002 450 350C450 516.25 725 650 725 950zM500 1150C533.35 1083.35 550 1008.35 550 925C550 625 100 550 400 100C275 125 175 250 175 400C175 725 500 775 500 1150z","horizAdvX":"1200"},"bluetooth-connect-fill":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657zM19.5 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-13 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25zM975 525A75 75 0 1 0 975 675A75 75 0 0 0 975 525zM325 525A75 75 0 1 0 325 675A75 75 0 0 0 325 525z","horizAdvX":"1200"},"bluetooth-connect-line":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657zM19.5 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-13 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25zM975 525A75 75 0 1 0 975 675A75 75 0 0 0 975 525zM325 525A75 75 0 1 0 325 675A75 75 0 0 0 325 525z","horizAdvX":"1200"},"bluetooth-fill":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25z","horizAdvX":"1200"},"bluetooth-line":{"path":["M0 0h24v24H0z","M14.341 12.03l4.343 4.343-5.656 5.656h-2v-6.686l-4.364 4.364-1.415-1.414 5.779-5.778v-.97L5.249 5.765l1.415-1.414 4.364 4.364V2.029h2l5.656 5.657-4.343 4.343zm-1.313 1.514v5.657l2.828-2.828-2.828-2.829zm0-3.03l2.828-2.828-2.828-2.828v5.657z"],"unicode":"","glyph":"M717.05 598.5L934.1999999999998 381.3500000000002L651.4 98.5500000000002H551.4V432.8500000000002L333.2 214.6500000000001L262.45 285.3500000000003L551.4 574.2500000000001V622.7500000000002L262.45 911.75L333.2 982.45L551.4 764.25V1098.55H651.4L934.1999999999998 815.7L717.0499999999998 598.55zM651.4 522.8000000000001V239.95L792.8 381.3499999999999L651.4 522.8zM651.4 674.3000000000001L792.8 815.7L651.4 957.1V674.25z","horizAdvX":"1200"},"blur-off-fill":{"path":["M0 0h24v24H0z","M5.432 6.846L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.038-3.04A9 9 0 0 1 5.432 6.848zM8.243 4.03L12 .272l6.364 6.364a9.002 9.002 0 0 1 2.05 9.564L8.244 4.03z"],"unicode":"","glyph":"M271.6 857.7L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L907.7 221.6499999999999A450 450 0 0 0 271.6 857.6zM412.1500000000001 998.5L600 1186.4L918.2 868.2A450.1 450.1 0 0 0 1020.7 390L412.2 998.5z","horizAdvX":"1200"},"blur-off-line":{"path":["M0 0h24v24H0z","M18.154 19.568A9 9 0 0 1 5.432 6.846L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.038-3.04zM6.847 8.262a7 7 0 0 0 9.891 9.89l-9.89-9.89zM20.414 16.2l-1.599-1.599a6.995 6.995 0 0 0-1.865-6.55L12 3.1 9.657 5.443 8.243 4.03 12 .272l6.364 6.364a9.002 9.002 0 0 1 2.05 9.564z"],"unicode":"","glyph":"M907.7 221.5999999999999A450 450 0 0 0 271.6 857.7L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L907.7 221.6499999999999zM342.35 786.9A350 350 0 0 1 836.9 292.4L342.4 786.9zM1020.7 390L940.7500000000002 469.95A349.75 349.75 0 0 1 847.5000000000001 797.45L600 1045L482.85 927.85L412.1500000000001 998.5L600 1186.4L918.2 868.2A450.1 450.1 0 0 0 1020.7 390z","horizAdvX":"1200"},"body-scan-fill":{"path":["M0 0h24v24H0z","M4 16v4h4v2H2v-6h2zm18 0v6h-6v-2h4v-4h2zM7.5 7a4.5 4.5 0 0 0 9 0h2a6.5 6.5 0 0 1-3.499 5.767L15 19H9v-6.232A6.5 6.5 0 0 1 5.5 7h2zM12 5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM8 2v2l-4-.001V8H2V2h6zm14 0v6h-2V4h-4V2h6z"],"unicode":"","glyph":"M200 400V200H400V100H100V400H200zM1100 400V100H800V200H1000V400H1100zM375 850A225 225 0 0 1 825 850H925A325 325 0 0 0 750.05 561.65L750 250H450V561.5999999999999A325 325 0 0 0 275 850H375zM600 950A125 125 0 1 0 600 700A125 125 0 0 0 600 950zM400 1100V1000L200 1000.05V800H100V1100H400zM1100 1100V800H1000V1000H800V1100H1100z","horizAdvX":"1200"},"body-scan-line":{"path":["M0 0h24v24H0z","M4 16v4h4v2H2v-6h2zm18 0v6h-6v-2h4v-4h2zM7.5 7a4.502 4.502 0 0 0 3.5 4.389V17h2l.001-5.612A4.502 4.502 0 0 0 16.5 7h2a6.5 6.5 0 0 1-3.499 5.767L15 19H9v-6.232A6.5 6.5 0 0 1 5.5 7h2zM12 5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM8 2v2l-4-.001V8H2V2h6zm14 0v6h-2V4h-4V2h6z"],"unicode":"","glyph":"M200 400V200H400V100H100V400H200zM1100 400V100H800V200H1000V400H1100zM375 850A225.1 225.1 0 0 1 550 630.5500000000001V350H650L650.05 630.6A225.1 225.1 0 0 1 825 850H925A325 325 0 0 0 750.05 561.65L750 250H450V561.5999999999999A325 325 0 0 0 275 850H375zM600 950A125 125 0 1 0 600 700A125 125 0 0 0 600 950zM400 1100V1000L200 1000.05V800H100V1100H400zM1100 1100V800H1000V1000H800V1100H1100z","horizAdvX":"1200"},"bold":{"path":["M0 0h24v24H0z","M8 11h4.5a2.5 2.5 0 1 0 0-5H8v5zm10 4.5a4.5 4.5 0 0 1-4.5 4.5H6V4h6.5a4.5 4.5 0 0 1 3.256 7.606A4.498 4.498 0 0 1 18 15.5zM8 13v5h5.5a2.5 2.5 0 1 0 0-5H8z"],"unicode":"","glyph":"M400 650H625A125 125 0 1 1 625 900H400V650zM900 425A225 225 0 0 0 675 200H300V1000H625A225 225 0 0 0 787.8 619.7A224.90000000000003 224.90000000000003 0 0 0 900 425zM400 550V300H675A125 125 0 1 1 675 550H400z","horizAdvX":"1200"},"book-2-fill":{"path":["M0 0h24v24H0z","M21 18H6a1 1 0 0 0 0 2h15v2H6a3 3 0 0 1-3-3V4a2 2 0 0 1 2-2h16v16zm-5-9V7H8v2h8z"],"unicode":"","glyph":"M1050 300H300A50 50 0 0 1 300 200H1050V100H300A150 150 0 0 0 150 250V1000A100 100 0 0 0 250 1100H1050V300zM800 750V850H400V750H800z","horizAdvX":"1200"},"book-2-line":{"path":["M0 0h24v24H0z","M21 18H6a1 1 0 0 0 0 2h15v2H6a3 3 0 0 1-3-3V4a2 2 0 0 1 2-2h16v16zM5 16.05c.162-.033.329-.05.5-.05H19V4H5v12.05zM16 9H8V7h8v2z"],"unicode":"","glyph":"M1050 300H300A50 50 0 0 1 300 200H1050V100H300A150 150 0 0 0 150 250V1000A100 100 0 0 0 250 1100H1050V300zM250 397.5C258.1 399.15 266.45 400 275 400H950V1000H250V397.5zM800 750H400V850H800V750z","horizAdvX":"1200"},"book-3-fill":{"path":["M0 0h24v24H0z","M21 4H7a2 2 0 1 0 0 4h14v13a1 1 0 0 1-1 1H7a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h13a1 1 0 0 1 1 1v1zm-1 3H7a1 1 0 1 1 0-2h13v2z"],"unicode":"","glyph":"M1050 1000H350A100 100 0 1 1 350 800H1050V150A50 50 0 0 0 1000 100H350A200 200 0 0 0 150 300V900A200 200 0 0 0 350 1100H1000A50 50 0 0 0 1050 1050V1000zM1000 850H350A50 50 0 1 0 350 950H1000V850z","horizAdvX":"1200"},"book-3-line":{"path":["M0 0h24v24H0z","M21 4H7a2 2 0 1 0 0 4h14v13a1 1 0 0 1-1 1H7a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h13a1 1 0 0 1 1 1v1zM5 18a2 2 0 0 0 2 2h12V10H7a3.982 3.982 0 0 1-2-.535V18zM20 7H7a1 1 0 1 1 0-2h13v2z"],"unicode":"","glyph":"M1050 1000H350A100 100 0 1 1 350 800H1050V150A50 50 0 0 0 1000 100H350A200 200 0 0 0 150 300V900A200 200 0 0 0 350 1100H1000A50 50 0 0 0 1050 1050V1000zM250 300A100 100 0 0 1 350 200H950V700H350A199.10000000000002 199.10000000000002 0 0 0 250 726.75V300zM1000 850H350A50 50 0 1 0 350 950H1000V850z","horizAdvX":"1200"},"book-fill":{"path":["M0 0h24v24H0z","M20 22H6.5A3.5 3.5 0 0 1 3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-3H6.5a1.5 1.5 0 0 0 0 3H19z"],"unicode":"","glyph":"M1000 100H325A175 175 0 0 0 150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V350H325A75 75 0 0 1 325 200H950z","horizAdvX":"1200"},"book-line":{"path":["M0 0h24v24H0z","M3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5A3.5 3.5 0 0 1 3 18.5zM19 20v-3H6.5a1.5 1.5 0 0 0 0 3H19zM5 15.337A3.486 3.486 0 0 1 6.5 15H19V4H6a1 1 0 0 0-1 1v10.337z"],"unicode":"","glyph":"M150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H325A175 175 0 0 0 150 275zM950 200V350H325A75 75 0 0 1 325 200H950zM250 433.15A174.3 174.3 0 0 0 325 450H950V1000H300A50 50 0 0 1 250 950V433.15z","horizAdvX":"1200"},"book-mark-fill":{"path":["M0 0h24v24H0z","M20 22H6.5A3.5 3.5 0 0 1 3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-3H6.5a1.5 1.5 0 0 0 0 3H19zM10 4v8l3.5-2 3.5 2V4h-7z"],"unicode":"","glyph":"M1000 100H325A175 175 0 0 0 150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V350H325A75 75 0 0 1 325 200H950zM500 1000V600L675 700L850 600V1000H500z","horizAdvX":"1200"},"book-mark-line":{"path":["M0 0h24v24H0z","M3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5A3.5 3.5 0 0 1 3 18.5zM19 20v-3H6.5a1.5 1.5 0 0 0 0 3H19zM10 4H6a1 1 0 0 0-1 1v10.337A3.486 3.486 0 0 1 6.5 15H19V4h-2v8l-3.5-2-3.5 2V4z"],"unicode":"","glyph":"M150 275V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H325A175 175 0 0 0 150 275zM950 200V350H325A75 75 0 0 1 325 200H950zM500 1000H300A50 50 0 0 1 250 950V433.15A174.3 174.3 0 0 0 325 450H950V1000H850V600L675 700L500 600V1000z","horizAdvX":"1200"},"book-open-fill":{"path":["M0 0h24v24H0z","M21 21h-8V6a3 3 0 0 1 3-3h5a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zm-10 0H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a3 3 0 0 1 3 3v15zm0 0h2v2h-2v-2z"],"unicode":"","glyph":"M1050 150H650V900A150 150 0 0 0 800 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150zM550 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H400A150 150 0 0 0 550 900V150zM550 150H650V50H550V150z","horizAdvX":"1200"},"book-open-line":{"path":["M0 0h24v24H0z","M13 21v2h-2v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6a3.99 3.99 0 0 1 3 1.354A3.99 3.99 0 0 1 15 3h6a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-8zm7-2V5h-5a2 2 0 0 0-2 2v12h7zm-9 0V7a2 2 0 0 0-2-2H4v14h7z"],"unicode":"","glyph":"M650 150V50H550V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H450A199.5 199.5 0 0 0 600 982.3A199.5 199.5 0 0 0 750 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H650zM1000 250V950H750A100 100 0 0 1 650 850V250H1000zM550 250V850A100 100 0 0 1 450 950H200V250H550z","horizAdvX":"1200"},"book-read-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM12 5v14h8V5h-8zm1 2h6v2h-6V7zm0 3h6v2h-6v-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM600 950V250H1000V950H600zM650 850H950V750H650V850zM650 700H950V600H650V700z","horizAdvX":"1200"},"book-read-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM11 5H4v14h7V5zm2 0v14h7V5h-7zm1 2h5v2h-5V7zm0 3h5v2h-5v-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM550 950H200V250H550V950zM650 950V250H1000V950H650zM700 850H950V750H700V850zM700 700H950V600H700V700z","horizAdvX":"1200"},"booklet-fill":{"path":["M0 0h24v24H0z","M8 2v20H4v-4H2v-2h2v-3H2v-2h2V8H2V6h2V2h4zm12.005 0C21.107 2 22 2.898 22 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H10V2h10.005z"],"unicode":"","glyph":"M400 1100V100H200V300H100V400H200V550H100V650H200V800H100V900H200V1100H400zM1000.2500000000002 1100C1055.35 1100 1100 1055.1 1100 1000.5V199.5000000000001C1100 144.5500000000002 1055.35 100.0000000000002 1000.25 100.0000000000002H500V1100H1000.2500000000002z","horizAdvX":"1200"},"booklet-line":{"path":["M0 0h24v24H0z","M20.005 2C21.107 2 22 2.898 22 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H4v-4H2v-2h2v-3H2v-2h2V8H2V6h2V2h16.005zM8 4H6v16h2V4zm12 0H10v16h10V4z"],"unicode":"","glyph":"M1000.25 1100C1055.35 1100 1100 1055.1 1100 1000.5V199.5000000000001C1100 144.5500000000002 1055.35 100.0000000000002 1000.25 100.0000000000002H200V300.0000000000003H100V400.0000000000003H200V550.0000000000002H100V650.0000000000002H200V800H100V900H200V1100H1000.25zM400 1000H300V200H400V1000zM1000 1000H500V200H1000V1000z","horizAdvX":"1200"},"bookmark-2-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm3 7v2h8V9H8z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100zM400 750V650H800V750H400z","horizAdvX":"1200"},"bookmark-2-line":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm13 2H6v15.432l6-3.761 6 3.761V4zM8 9h8v2H8V9z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100zM900 1000H300V228.3999999999999L600 416.4499999999998L900 228.3999999999999V1000zM400 750H800V650H400V750z","horizAdvX":"1200"},"bookmark-3-fill":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v19.276a.5.5 0 0 1-.704.457L12 19.03l-8.296 3.702A.5.5 0 0 1 3 22.276V3a1 1 0 0 1 1-1zm8 11.5l2.939 1.545-.561-3.272 2.377-2.318-3.286-.478L12 6l-1.47 2.977-3.285.478 2.377 2.318-.56 3.272L12 13.5z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V86.2000000000001A25 25 0 0 0 1014.8 63.3499999999999L600 248.5L185.2000000000001 63.4000000000001A25 25 0 0 0 150 86.2000000000001V1050A50 50 0 0 0 200 1100zM600 525L746.95 447.75L718.9 611.35L837.75 727.25L673.4499999999999 751.15L600 900L526.5 751.15L362.25 727.25L481.1 611.35L453.1 447.75L600 525z","horizAdvX":"1200"},"bookmark-3-line":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v19.276a.5.5 0 0 1-.704.457L12 19.03l-8.296 3.702A.5.5 0 0 1 3 22.276V3a1 1 0 0 1 1-1zm15 17.965V4H5v15.965l7-3.124 7 3.124zM12 13.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L12 6l1.47 2.977 3.285.478-2.377 2.318.56 3.272L12 13.5z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V86.2000000000001A25 25 0 0 0 1014.8 63.3499999999999L600 248.5L185.2000000000001 63.4000000000001A25 25 0 0 0 150 86.2000000000001V1050A50 50 0 0 0 200 1100zM950 201.75V1000H250V201.75L600 357.95L950 201.75zM600 525L453.05 447.75L481.1 611.35L362.25 727.25L526.5500000000001 751.15L600 900L673.5 751.15L837.7500000000001 727.25L718.9000000000002 611.35L746.9000000000002 447.75L600 525z","horizAdvX":"1200"},"bookmark-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100z","horizAdvX":"1200"},"bookmark-line":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1zm13 2H6v15.432l6-3.761 6 3.761V4z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V92.8499999999999A25 25 0 0 0 961.7 71.6500000000001L600 298.5L238.3 71.6999999999998A25 25 0 0 0 200 92.8499999999999V1050A50 50 0 0 0 250 1100zM900 1000H300V228.3999999999999L600 416.4499999999998L900 228.3999999999999V1000z","horizAdvX":"1200"},"boxing-fill":{"path":["M0 0h24v24H0z","M9.5 11l.144.007a1.5 1.5 0 0 1 1.35 1.349L11 12.5l-.007.144a1.5 1.5 0 0 1-1.349 1.35L9.5 14H6v2h3.5c1.7 0 3.117-1.212 3.434-2.819l.03-.18L19 13c.711 0 1.388-.149 2-.416V17a3.001 3.001 0 0 1-2 2.829V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-1.17A3.001 3.001 0 0 1 3 17v-4a2 2 0 0 1 2-2h4.5zM22 7.5V8l-.005.176a3 3 0 0 1-2.819 2.819L19 11h-6.337a3.501 3.501 0 0 0-2.955-1.994L9.5 9H5c-.729 0-1.412.195-2.001.536L3 6a4 4 0 0 1 4-4h9.5A5.5 5.5 0 0 1 22 7.5z"],"unicode":"","glyph":"M475 650L482.2 649.65A75 75 0 0 0 549.7 582.2L550 575L549.65 567.8A75 75 0 0 0 482.2 500.3L475 500H300V400H475C560 400 630.85 460.6 646.7 540.9499999999999L648.2 549.9499999999999L950 550C985.55 550 1019.3999999999997 557.4499999999999 1050 570.8000000000001V350A150.04999999999998 150.04999999999998 0 0 0 950 208.55V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V208.5000000000001A150.04999999999998 150.04999999999998 0 0 0 150 350V550A100 100 0 0 0 250 650H475zM1100 825V800L1099.75 791.2A150 150 0 0 0 958.8 650.25L950 650H633.15A175.04999999999998 175.04999999999998 0 0 1 485.4 749.7L475 750H250C213.55 750 179.4 740.25 149.95 723.2L150 900A200 200 0 0 0 350 1100H825A275 275 0 0 0 1100 825z","horizAdvX":"1200"},"boxing-line":{"path":["M0 0h24v24H0z","M16.5 2A5.5 5.5 0 0 1 22 7.5V10c0 .888-.386 1.686-1 2.235V17a3.001 3.001 0 0 1-2 2.829V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-1.17A3.001 3.001 0 0 1 3 17V6a4 4 0 0 1 4-4h9.5zm-7 9H5v6a1 1 0 0 0 .883.993L6 18h12a1 1 0 0 0 .993-.883L19 17v-4h-6.036A3.5 3.5 0 0 1 9.5 16H6v-2h3.5a1.5 1.5 0 0 0 1.493-1.356L11 12.5a1.5 1.5 0 0 0-1.356-1.493L9.5 11zm7-7H7a2 2 0 0 0-1.995 1.85L5 6v3h4.5a3.5 3.5 0 0 1 3.163 2H19a1 1 0 0 0 .993-.883L20 10V7.5a3.5 3.5 0 0 0-3.308-3.495L16.5 4z"],"unicode":"","glyph":"M825 1100A275 275 0 0 0 1100 825V700C1100 655.6 1080.7 615.7 1050 588.25V350A150.04999999999998 150.04999999999998 0 0 0 950 208.55V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V208.5000000000001A150.04999999999998 150.04999999999998 0 0 0 150 350V900A200 200 0 0 0 350 1100H825zM475 650H250V350A50 50 0 0 1 294.15 300.35L300 300H900A50 50 0 0 1 949.65 344.15L950 350V550H648.2A175 175 0 0 0 475 400H300V500H475A75 75 0 0 1 549.65 567.8L550 575A75 75 0 0 1 482.2 649.65L475 650zM825 1000H350A100 100 0 0 1 250.25 907.5L250 900V750H475A175 175 0 0 0 633.15 650H950A50 50 0 0 1 999.65 694.15L1000 700V825A175 175 0 0 1 834.6 999.75L825 1000z","horizAdvX":"1200"},"braces-fill":{"path":["M0 0h24v24H0z","M4 18v-3.7a1.5 1.5 0 0 0-1.5-1.5H2v-1.6h.5A1.5 1.5 0 0 0 4 9.7V6a3 3 0 0 1 3-3h1v2H7a1 1 0 0 0-1 1v4.1A2 2 0 0 1 4.626 12 2 2 0 0 1 6 13.9V18a1 1 0 0 0 1 1h1v2H7a3 3 0 0 1-3-3zm16-3.7V18a3 3 0 0 1-3 3h-1v-2h1a1 1 0 0 0 1-1v-4.1a2 2 0 0 1 1.374-1.9A2 2 0 0 1 18 10.1V6a1 1 0 0 0-1-1h-1V3h1a3 3 0 0 1 3 3v3.7a1.5 1.5 0 0 0 1.5 1.5h.5v1.6h-.5a1.5 1.5 0 0 0-1.5 1.5z"],"unicode":"","glyph":"M200 300V485A75 75 0 0 1 125 560H100V640H125A75 75 0 0 1 200 715V900A150 150 0 0 0 350 1050H400V950H350A50 50 0 0 1 300 900V695A100 100 0 0 0 231.3 600A100 100 0 0 0 300 505V300A50 50 0 0 1 350 250H400V150H350A150 150 0 0 0 200 300zM1000 485V300A150 150 0 0 0 850 150H800V250H850A50 50 0 0 1 900 300V505A100 100 0 0 0 968.7 600A100 100 0 0 0 900 695V900A50 50 0 0 1 850 950H800V1050H850A150 150 0 0 0 1000 900V715A75 75 0 0 1 1075 640H1100V560H1075A75 75 0 0 1 1000 485z","horizAdvX":"1200"},"braces-line":{"path":["M0 0h24v24H0z","M4 18v-3.7a1.5 1.5 0 0 0-1.5-1.5H2v-1.6h.5A1.5 1.5 0 0 0 4 9.7V6a3 3 0 0 1 3-3h1v2H7a1 1 0 0 0-1 1v4.1A2 2 0 0 1 4.626 12 2 2 0 0 1 6 13.9V18a1 1 0 0 0 1 1h1v2H7a3 3 0 0 1-3-3zm16-3.7V18a3 3 0 0 1-3 3h-1v-2h1a1 1 0 0 0 1-1v-4.1a2 2 0 0 1 1.374-1.9A2 2 0 0 1 18 10.1V6a1 1 0 0 0-1-1h-1V3h1a3 3 0 0 1 3 3v3.7a1.5 1.5 0 0 0 1.5 1.5h.5v1.6h-.5a1.5 1.5 0 0 0-1.5 1.5z"],"unicode":"","glyph":"M200 300V485A75 75 0 0 1 125 560H100V640H125A75 75 0 0 1 200 715V900A150 150 0 0 0 350 1050H400V950H350A50 50 0 0 1 300 900V695A100 100 0 0 0 231.3 600A100 100 0 0 0 300 505V300A50 50 0 0 1 350 250H400V150H350A150 150 0 0 0 200 300zM1000 485V300A150 150 0 0 0 850 150H800V250H850A50 50 0 0 1 900 300V505A100 100 0 0 0 968.7 600A100 100 0 0 0 900 695V900A50 50 0 0 1 850 950H800V1050H850A150 150 0 0 0 1000 900V715A75 75 0 0 1 1075 640H1100V560H1075A75 75 0 0 1 1000 485z","horizAdvX":"1200"},"brackets-fill":{"path":["M0 0h24v24H0z","M9 3v2H6v14h3v2H4V3h5zm6 0h5v18h-5v-2h3V5h-3V3z"],"unicode":"","glyph":"M450 1050V950H300V250H450V150H200V1050H450zM750 1050H1000V150H750V250H900V950H750V1050z","horizAdvX":"1200"},"brackets-line":{"path":["M0 0h24v24H0z","M9 3v2H6v14h3v2H4V3h5zm6 0h5v18h-5v-2h3V5h-3V3z"],"unicode":"","glyph":"M450 1050V950H300V250H450V150H200V1050H450zM750 1050H1000V150H750V250H900V950H750V1050z","horizAdvX":"1200"},"briefcase-2-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm10 8v-3h-2v3H9v-3H7v3H4v6h16v-6h-3zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM850 550V700H750V550H450V700H350V550H200V250H1000V550H850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-2-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm13 8H4v6h16v-6zm0-6H4v4h3V9h2v2h6V9h2v2h3V7zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM1000 550H200V250H1000V550zM1000 850H200V650H350V750H450V650H750V750H850V650H1000V850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-3-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm10 2v5h3V7h-3zm-2 0H9v5h6V7zM7 7H4v5h3V7zm2-4v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM850 850V600H1000V850H850zM750 850H450V600H750V850zM350 850H200V600H350V850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-3-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm8 2H9v12h6V7zM7 7H4v12h3V7zm10 0v12h3V7h-3zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM750 850H450V250H750V850zM350 850H200V250H350V850zM850 850V250H1000V850H850zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-4-fill":{"path":["M0 0h24v24H0z","M9 13v3h6v-3h7v7a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7h7zm2-2h2v3h-2v-3zM7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v5h-7V9H9v2H2V6a1 1 0 0 1 1-1h4zm2-2v2h6V3H9z"],"unicode":"","glyph":"M450 550V400H750V550H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V550H450zM550 650H650V500H550V650zM350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V650H750V750H450V650H100V900A50 50 0 0 0 150 950H350zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-4-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm2 8H4v6h16v-6h-5v3H9v-3zm11-6H4v4h5V9h6v2h5V7zm-9 4v3h2v-3h-2zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM450 550H200V250H1000V550H750V400H450V550zM1000 850H200V650H450V750H750V650H1000V850zM550 650V500H650V650H550zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-5-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm-1 8V7H4v6h2zm2-6v6h3v-2h2v2h3V7H8zm10 6h2V7h-2v6zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM300 550V850H200V550H300zM400 850V550H550V650H650V550H800V850H400zM900 550H1000V850H900V550zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-5-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zm9 10h-3v1h-2v-1H8v4h8v-4zM8 7v6h3v-1h2v1h3V7H8zm-2 6V7H4v6h2zm12 0h2V7h-2v6zM6 15H4v4h2v-4zm12 0v4h2v-4h-2zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM800 450H650V400H550V450H400V250H800V450zM400 850V550H550V600H650V550H800V850H400zM300 550V850H200V550H300zM900 550H1000V850H900V550zM300 450H200V250H300V450zM900 450V250H1000V450H900zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-fill":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zM4 15v4h16v-4H4zm7-4v2h2v-2h-2zM9 3v2h6V3H9z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM200 450V250H1000V450H200zM550 650V550H650V650H550zM450 1050V950H750V1050H450z","horizAdvX":"1200"},"briefcase-line":{"path":["M0 0h24v24H0z","M7 5V2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4zM4 16v3h16v-3H4zm0-2h16V7H4v7zM9 3v2h6V3H9zm2 8h2v2h-2v-2z"],"unicode":"","glyph":"M350 950V1100A50 50 0 0 0 400 1150H800A50 50 0 0 0 850 1100V950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350zM200 400V250H1000V400H200zM200 500H1000V850H200V500zM450 1050V950H750V1050H450zM550 650H650V550H550V650z","horizAdvX":"1200"},"bring-forward":{"path":["M0 0H24V24H0z","M14 3c.552 0 1 .448 1 1v5h5c.552 0 1 .448 1 1v10c0 .552-.448 1-1 1H10c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h10zm-1 2H5v8h8V5z"],"unicode":"","glyph":"M700 1050C727.6 1050 750 1027.6 750 1000V750H1000C1027.6 750 1050 727.5999999999999 1050 700V200C1050 172.4000000000001 1027.6 150 1000 150H500C472.4 150 450 172.4000000000001 450 200V450H200C172.4 450 150 472.4 150 500V1000C150 1027.6 172.4 1050 200 1050H700zM650 950H250V550H650V950z","horizAdvX":"1200"},"bring-to-front":{"path":["M0 0H24V24H0z","M11 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v5h2c.552 0 1 .448 1 1v7c0 .552-.448 1-1 1h-7c-.552 0-1-.448-1-1v-2H7c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7zm5 5H8v8h8V8z"],"unicode":"","glyph":"M550 1050C577.6 1050 600 1027.6 600 1000V900H850C877.6 900 900 877.5999999999999 900 850V600H1000C1027.6 600 1050 577.6 1050 550V200C1050 172.4000000000001 1027.6 150 1000 150H650C622.4 150 600 172.4000000000001 600 200V300H350C322.4000000000001 300 300 322.4 300 350V600H200C172.4 600 150 622.4 150 650V1000C150 1027.6 172.4 1050 200 1050H550zM800 800H400V400H800V800z","horizAdvX":"1200"},"broadcast-fill":{"path":["M0 0h24v24H0z","M4.929 2.929l1.414 1.414A7.975 7.975 0 0 0 4 10c0 2.21.895 4.21 2.343 5.657L4.93 17.07A9.969 9.969 0 0 1 2 10a9.969 9.969 0 0 1 2.929-7.071zm14.142 0A9.969 9.969 0 0 1 22 10a9.969 9.969 0 0 1-2.929 7.071l-1.414-1.414A7.975 7.975 0 0 0 20 10c0-2.21-.895-4.21-2.343-5.657L19.07 2.93zM7.757 5.757l1.415 1.415A3.987 3.987 0 0 0 8 10c0 1.105.448 2.105 1.172 2.828l-1.415 1.415A5.981 5.981 0 0 1 6 10c0-1.657.672-3.157 1.757-4.243zm8.486 0A5.981 5.981 0 0 1 18 10a5.981 5.981 0 0 1-1.757 4.243l-1.415-1.415A3.987 3.987 0 0 0 16 10a3.987 3.987 0 0 0-1.172-2.828l1.415-1.415zM12 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 2c.58 0 1.077.413 1.184.983L14.5 22h-5l1.316-7.017c.107-.57.604-.983 1.184-.983z"],"unicode":"","glyph":"M246.45 1053.55L317.15 982.85A398.74999999999994 398.74999999999994 0 0 1 200 700C200 589.5 244.75 489.5 317.15 417.15L246.5 346.5A498.45 498.45 0 0 0 100 700A498.45 498.45 0 0 0 246.45 1053.55zM953.55 1053.55A498.45 498.45 0 0 0 1100 700A498.45 498.45 0 0 0 953.55 346.4500000000001L882.85 417.1500000000001A398.74999999999994 398.74999999999994 0 0 1 1000 700C1000 810.5 955.25 910.5 882.85 982.85L953.5 1053.5zM387.85 912.15L458.6 841.4000000000001A199.35000000000002 199.35000000000002 0 0 1 400 700C400 644.75 422.4000000000001 594.75 458.6 558.6L387.85 487.85A299.05 299.05 0 0 0 300 700C300 782.85 333.6 857.85 387.85 912.15zM812.1500000000001 912.15A299.05 299.05 0 0 0 900 700A299.05 299.05 0 0 0 812.15 487.85L741.4 558.6A199.35000000000002 199.35000000000002 0 0 1 800 700A199.35000000000002 199.35000000000002 0 0 1 741.4 841.4L812.15 912.15zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600zM600 500C629 500 653.85 479.35 659.1999999999999 450.85L725 100H475L540.8000000000001 450.85C546.15 479.35 571 500 600 500z","horizAdvX":"1200"},"broadcast-line":{"path":["M0 0h24v24H0z","M4.929 2.929l1.414 1.414A7.975 7.975 0 0 0 4 10c0 2.21.895 4.21 2.343 5.657L4.93 17.07A9.969 9.969 0 0 1 2 10a9.969 9.969 0 0 1 2.929-7.071zm14.142 0A9.969 9.969 0 0 1 22 10a9.969 9.969 0 0 1-2.929 7.071l-1.414-1.414A7.975 7.975 0 0 0 20 10c0-2.21-.895-4.21-2.343-5.657L19.07 2.93zM7.757 5.757l1.415 1.415A3.987 3.987 0 0 0 8 10c0 1.105.448 2.105 1.172 2.828l-1.415 1.415A5.981 5.981 0 0 1 6 10c0-1.657.672-3.157 1.757-4.243zm8.486 0A5.981 5.981 0 0 1 18 10a5.981 5.981 0 0 1-1.757 4.243l-1.415-1.415A3.987 3.987 0 0 0 16 10a3.987 3.987 0 0 0-1.172-2.828l1.415-1.415zM12 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-1 2h2v8h-2v-8z"],"unicode":"","glyph":"M246.45 1053.55L317.15 982.85A398.74999999999994 398.74999999999994 0 0 1 200 700C200 589.5 244.75 489.5 317.15 417.15L246.5 346.5A498.45 498.45 0 0 0 100 700A498.45 498.45 0 0 0 246.45 1053.55zM953.55 1053.55A498.45 498.45 0 0 0 1100 700A498.45 498.45 0 0 0 953.55 346.4500000000001L882.85 417.1500000000001A398.74999999999994 398.74999999999994 0 0 1 1000 700C1000 810.5 955.25 910.5 882.85 982.85L953.5 1053.5zM387.85 912.15L458.6 841.4000000000001A199.35000000000002 199.35000000000002 0 0 1 400 700C400 644.75 422.4000000000001 594.75 458.6 558.6L387.85 487.85A299.05 299.05 0 0 0 300 700C300 782.85 333.6 857.85 387.85 912.15zM812.1500000000001 912.15A299.05 299.05 0 0 0 900 700A299.05 299.05 0 0 0 812.15 487.85L741.4 558.6A199.35000000000002 199.35000000000002 0 0 1 800 700A199.35000000000002 199.35000000000002 0 0 1 741.4 841.4L812.15 912.15zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600zM550 500H650V100H550V500z","horizAdvX":"1200"},"brush-2-fill":{"path":["M0 0h24v24H0z","M16.536 15.95l2.12-2.122-3.181-3.182 3.535-3.535-2.12-2.121-3.536 3.535-3.182-3.182L8.05 7.464l8.486 8.486zM13.354 5.697l2.828-2.829a1 1 0 0 1 1.414 0l3.536 3.536a1 1 0 0 1 0 1.414l-2.829 2.828 2.475 2.475a1 1 0 0 1 0 1.415L13 22.314a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l7.778-7.778a1 1 0 0 1 1.415 0l2.475 2.475z"],"unicode":"","glyph":"M826.8000000000001 402.5L932.8 508.6L773.7500000000001 667.7L950.5000000000002 844.45L844.5 950.5000000000002L667.7 773.75L508.6 932.8500000000003L402.5000000000001 826.8L826.8000000000001 402.5zM667.6999999999999 915.15L809.0999999999999 1056.6A50 50 0 0 0 879.8 1056.6L1056.6000000000001 879.8A50 50 0 0 0 1056.6000000000001 809.1L915.15 667.7L1038.9 543.95A50 50 0 0 0 1038.9 473.2000000000002L650 84.3A50 50 0 0 0 579.3000000000001 84.3L84.3 579.3000000000001A50 50 0 0 0 84.3 650L473.1999999999999 1038.9A50 50 0 0 0 543.9499999999999 1038.9L667.6999999999998 915.15z","horizAdvX":"1200"},"brush-2-line":{"path":["M0 0h24v24H0z","M16.536 15.95l2.12-2.122-3.181-3.182 3.535-3.535-2.12-2.121-3.536 3.535-3.182-3.182L8.05 7.464l8.486 8.486zm-1.415 1.414L6.636 8.879l-2.828 2.828 8.485 8.485 2.828-2.828zM13.354 5.697l2.828-2.829a1 1 0 0 1 1.414 0l3.536 3.536a1 1 0 0 1 0 1.414l-2.829 2.828 2.475 2.475a1 1 0 0 1 0 1.415L13 22.314a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l7.778-7.778a1 1 0 0 1 1.415 0l2.475 2.475z"],"unicode":"","glyph":"M826.8000000000001 402.5L932.8 508.6L773.7500000000001 667.7L950.5000000000002 844.45L844.5 950.5000000000002L667.7 773.75L508.6 932.8500000000003L402.5000000000001 826.8L826.8000000000001 402.5zM756.0500000000001 331.8L331.8 756.05L190.4 614.6500000000001L614.65 190.4L756.05 331.8zM667.6999999999999 915.15L809.0999999999999 1056.6A50 50 0 0 0 879.8 1056.6L1056.6000000000001 879.8A50 50 0 0 0 1056.6000000000001 809.1L915.15 667.7L1038.9 543.95A50 50 0 0 0 1038.9 473.2000000000002L650 84.3A50 50 0 0 0 579.3000000000001 84.3L84.3 579.3000000000001A50 50 0 0 0 84.3 650L473.1999999999999 1038.9A50 50 0 0 0 543.9499999999999 1038.9L667.6999999999998 915.15z","horizAdvX":"1200"},"brush-3-fill":{"path":["M0 0h24v24H0z","M20 11V8h-6V4h-4v4H4v3h16zm1 2v8a1 1 0 0 1-1 1H10v-6H8v6H4a1 1 0 0 1-1-1v-8H2V7a1 1 0 0 1 1-1h5V3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v3h5a1 1 0 0 1 1 1v6h-1z"],"unicode":"","glyph":"M1000 650V800H700V1000H500V800H200V650H1000zM1050 550V150A50 50 0 0 0 1000 100H500V400H400V100H200A50 50 0 0 0 150 150V550H100V850A50 50 0 0 0 150 900H400V1050A50 50 0 0 0 450 1100H750A50 50 0 0 0 800 1050V900H1050A50 50 0 0 0 1100 850V550H1050z","horizAdvX":"1200"},"brush-3-line":{"path":["M0 0h24v24H0z","M8 20v-5h2v5h9v-7H5v7h3zm-4-9h16V8h-6V4h-4v4H4v3zM3 21v-8H2V7a1 1 0 0 1 1-1h5V3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v3h5a1 1 0 0 1 1 1v6h-1v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z"],"unicode":"","glyph":"M400 200V450H500V200H950V550H250V200H400zM200 650H1000V800H700V1000H500V800H200V650zM150 150V550H100V850A50 50 0 0 0 150 900H400V1050A50 50 0 0 0 450 1100H750A50 50 0 0 0 800 1050V900H1050A50 50 0 0 0 1100 850V550H1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150z","horizAdvX":"1200"},"brush-4-fill":{"path":["M0 0h24v24H0z","M20 16H4v2h16v-2zM3 14V4a1 1 0 0 1 1-1h3v8.273h2V3h11a1 1 0 0 1 1 1v10h1v5a1 1 0 0 1-1 1h-8v3h-2v-3H3a1 1 0 0 1-1-1v-5h1z"],"unicode":"","glyph":"M1000 400H200V300H1000V400zM150 500V1000A50 50 0 0 0 200 1050H350V636.35H450V1050H1000A50 50 0 0 0 1050 1000V500H1100V250A50 50 0 0 0 1050 200H650V50H550V200H150A50 50 0 0 0 100 250V500H150z","horizAdvX":"1200"},"brush-4-line":{"path":["M0 0h24v24H0z","M9 5v6.273H7V5H5v9h14V5H9zm11 11H4v2h16v-2zM3 14V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10h1v5a1 1 0 0 1-1 1h-8v3h-2v-3H3a1 1 0 0 1-1-1v-5h1z"],"unicode":"","glyph":"M450 950V636.35H350V950H250V500H950V950H450zM1000 400H200V300H1000V400zM150 500V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V500H1100V250A50 50 0 0 0 1050 200H650V50H550V200H150A50 50 0 0 0 100 250V500H150z","horizAdvX":"1200"},"brush-fill":{"path":["M0 0h24v24H0z","M13.289 6.216l4.939-3.841a1 1 0 0 1 1.32.082l2.995 2.994a1 1 0 0 1 .082 1.321l-3.84 4.938a7.505 7.505 0 0 1-7.283 9.292C8 21.002 3.5 19.5 1 18c3.98-3 3.047-4.81 3.5-6.5 1.058-3.95 4.842-6.257 8.789-5.284zm3.413 1.879c.065.063.13.128.193.194l1.135 1.134 2.475-3.182-1.746-1.746-3.182 2.475 1.125 1.125z"],"unicode":"","glyph":"M664.4499999999999 889.2L911.4 1081.25A50 50 0 0 0 977.4 1077.15L1127.15 927.45A50 50 0 0 0 1131.2500000000002 861.4L939.2500000000002 614.5A375.25 375.25 0 0 0 575.1000000000001 149.8999999999999C400 149.9000000000001 175 225 50 300C249.0000000000001 450 202.35 540.4999999999999 225 625C277.9 822.5 467.0999999999999 937.85 664.4499999999999 889.2zM835.0999999999999 795.25C838.35 792.0999999999999 841.5999999999999 788.8499999999999 844.75 785.55L901.5 728.8499999999999L1025.2500000000002 887.9499999999999L937.9500000000002 975.25L778.8500000000001 851.5L835.1000000000003 795.25z","horizAdvX":"1200"},"brush-line":{"path":["M0 0h24v24H0z","M15.456 9.678l-.142-.142a5.475 5.475 0 0 0-2.39-1.349c-2.907-.778-5.699.869-6.492 3.83-.043.16-.066.34-.104.791-.154 1.87-.594 3.265-1.8 4.68 2.26.888 4.938 1.514 6.974 1.514a5.505 5.505 0 0 0 5.31-4.078 5.497 5.497 0 0 0-1.356-5.246zM13.29 6.216l4.939-3.841a1 1 0 0 1 1.32.082l2.995 2.994a1 1 0 0 1 .082 1.321l-3.84 4.938a7.505 7.505 0 0 1-7.283 9.292C8 21.002 3.5 19.5 1 18c3.98-3 3.047-4.81 3.5-6.5 1.058-3.95 4.842-6.257 8.789-5.284zm3.413 1.879c.065.063.13.128.193.194l1.135 1.134 2.475-3.182-1.746-1.746-3.182 2.475 1.125 1.125z"],"unicode":"","glyph":"M772.8 716.0999999999999L765.7 723.1999999999999A273.75 273.75 0 0 1 646.1999999999999 790.6499999999999C500.85 829.55 361.25 747.1999999999999 321.6 599.15C319.45 591.15 318.3 582.15 316.4 559.5999999999999C308.7 466.0999999999999 286.7 396.35 226.4 325.6C339.4 281.2 473.3 249.9000000000001 575.0999999999999 249.9000000000001A275.25 275.25 0 0 1 840.5999999999999 453.8000000000001A274.84999999999997 274.84999999999997 0 0 1 772.7999999999998 716.1zM664.5 889.2L911.45 1081.25A50 50 0 0 0 977.45 1077.15L1127.2 927.45A50 50 0 0 0 1131.3 861.4L939.3 614.5A375.25 375.25 0 0 0 575.15 149.8999999999999C400 149.9000000000001 175 225 50 300C249.0000000000001 450 202.35 540.4999999999999 225 625C277.9 822.5 467.0999999999999 937.85 664.4499999999999 889.2zM835.15 795.25C838.4000000000001 792.0999999999999 841.6499999999999 788.8499999999999 844.8000000000001 785.55L901.55 728.8499999999999L1025.3000000000002 887.9499999999999L938.0000000000002 975.25L778.9000000000002 851.5L835.1500000000001 795.25z","horizAdvX":"1200"},"bubble-chart-fill":{"path":["M0 0L24 0 24 24 0 24z","M16 16c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3zM6 12c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm8.5-10C17.538 2 20 4.462 20 7.5S17.538 13 14.5 13 9 10.538 9 7.5 11.462 2 14.5 2z"],"unicode":"","glyph":"M800 400C882.85 400 950 332.85 950 250S882.85 100 800 100S650 167.1500000000001 650 250S717.15 400 800 400zM300 600C410.5000000000001 600 500 510.5 500 400S410.5000000000001 200 300 200S100 289.5 100 400S189.5 600 300 600zM725 1100C876.9 1100 1000 976.9 1000 825S876.9 550 725 550S450 673.1 450 825S573.1 1100 725 1100z","horizAdvX":"1200"},"bubble-chart-line":{"path":["M0 0L24 0 24 24 0 24z","M16 16c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3zM6 12c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm10 6c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM6 14c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm8.5-12C17.538 2 20 4.462 20 7.5S17.538 13 14.5 13 9 10.538 9 7.5 11.462 2 14.5 2zm0 2C12.567 4 11 5.567 11 7.5s1.567 3.5 3.5 3.5S18 9.433 18 7.5 16.433 4 14.5 4z"],"unicode":"","glyph":"M800 400C882.85 400 950 332.85 950 250S882.85 100 800 100S650 167.1500000000001 650 250S717.15 400 800 400zM300 600C410.5000000000001 600 500 510.5 500 400S410.5000000000001 200 300 200S100 289.5 100 400S189.5 600 300 600zM800 300C772.4 300 750 277.6 750 250S772.4 200 800 200S850 222.4 850 250S827.6 300 800 300zM300 500C244.75 500 200 455.25 200 400S244.75 300 300 300S400 344.75 400 400S355.25 500 300 500zM725 1100C876.9 1100 1000 976.9 1000 825S876.9 550 725 550S450 673.1 450 825S573.1 1100 725 1100zM725 1000C628.35 1000 550 921.65 550 825S628.35 650 725 650S900 728.35 900 825S821.65 1000 725 1000z","horizAdvX":"1200"},"bug-2-fill":{"path":["M0 0h24v24H0z","M5.07 16A7.06 7.06 0 0 1 5 15v-1H3v-2h2v-1c0-.34.024-.673.07-1H3V8h2.674a7.03 7.03 0 0 1 2.84-3.072l-1.05-1.05L8.88 2.465l1.683 1.684a7.03 7.03 0 0 1 2.876 0l1.683-1.684 1.415 1.415-1.05 1.05A7.03 7.03 0 0 1 18.326 8H21v2h-2.07c.046.327.07.66.07 1v1h2v2h-2v1c0 .34-.024.673-.07 1H21v2h-2.674a7 7 0 0 1-12.652 0H3v-2h2.07zM9 10v2h6v-2H9zm0 4v2h6v-2H9z"],"unicode":"","glyph":"M253.5 400A353 353 0 0 0 250 450V500H150V600H250V650C250 667 251.2 683.65 253.5 700H150V800H283.7A351.5 351.5 0 0 0 425.7 953.6L373.2 1006.1L444.0000000000001 1076.75L528.15 992.55A351.5 351.5 0 0 0 671.95 992.55L756.1 1076.75L826.8499999999999 1006L774.3499999999999 953.5A351.5 351.5 0 0 0 916.3 800H1050V700H946.5C948.8 683.65 950 667 950 650V600H1050V500H950V450C950 433 948.8 416.35 946.5 400H1050V300H916.3A350 350 0 0 0 283.7000000000001 300H150V400H253.5zM450 700V600H750V700H450zM450 500V400H750V500H450z","horizAdvX":"1200"},"bug-2-line":{"path":["M0 0h24v24H0z","M10.562 4.148a7.03 7.03 0 0 1 2.876 0l1.683-1.684 1.415 1.415-1.05 1.05A7.03 7.03 0 0 1 18.326 8H21v2h-2.07c.046.327.07.66.07 1v1h2v2h-2v1c0 .34-.024.673-.07 1H21v2h-2.674a7 7 0 0 1-12.652 0H3v-2h2.07A7.06 7.06 0 0 1 5 15v-1H3v-2h2v-1c0-.34.024-.673.07-1H3V8h2.674a7.03 7.03 0 0 1 2.84-3.072l-1.05-1.05L8.88 2.465l1.683 1.684zM12 6a5 5 0 0 0-5 5v4a5 5 0 0 0 10 0v-4a5 5 0 0 0-5-5zm-3 8h6v2H9v-2zm0-4h6v2H9v-2z"],"unicode":"","glyph":"M528.1 992.6A351.5 351.5 0 0 0 671.9 992.6L756.05 1076.8L826.7999999999998 1006.05L774.2999999999998 953.55A351.5 351.5 0 0 0 916.3 800H1050V700H946.5C948.8 683.65 950 667 950 650V600H1050V500H950V450C950 433 948.8 416.35 946.5 400H1050V300H916.3A350 350 0 0 0 283.7000000000001 300H150V400H253.5A353 353 0 0 0 250 450V500H150V600H250V650C250 667 251.2 683.65 253.5 700H150V800H283.7A351.5 351.5 0 0 0 425.7 953.6L373.2 1006.1L444.0000000000001 1076.75L528.15 992.55zM600 900A250 250 0 0 1 350 650V450A250 250 0 0 1 850 450V650A250 250 0 0 1 600 900zM450 500H750V400H450V500zM450 700H750V600H450V700z","horizAdvX":"1200"},"bug-fill":{"path":["M0 0h24v24H0z","M6.056 8.3a7.01 7.01 0 0 1 .199-.3h11.49c.069.098.135.199.199.3l2.02-1.166 1 1.732-2.213 1.278c.162.59.249 1.213.249 1.856v1h3v2h-3c0 .953-.19 1.862-.536 2.69l2.5 1.444-1 1.732-2.526-1.458A6.992 6.992 0 0 1 13 21.929V14h-2v7.93a6.992 6.992 0 0 1-4.438-2.522l-2.526 1.458-1-1.732 2.5-1.443A6.979 6.979 0 0 1 5 15H2v-2h3v-1c0-.643.087-1.265.249-1.856L3.036 8.866l1-1.732L6.056 8.3zM8 6a4 4 0 1 1 8 0H8z"],"unicode":"","glyph":"M302.8 785A350.5 350.5 0 0 0 312.75 800H887.25C890.7 795.0999999999999 894.0000000000001 790.05 897.2000000000002 785L998.2000000000002 843.3L1048.2 756.7L937.55 692.8C945.65 663.3 950 632.1500000000001 950 600V550H1100V450H950C950 402.35 940.4999999999998 356.8999999999999 923.2 315.4999999999999L1048.1999999999998 243.3L998.2 156.7000000000001L871.9 229.5999999999999A349.6 349.6 0 0 0 650 103.5500000000002V500H550V103.5A349.6 349.6 0 0 0 328.1 229.5999999999999L201.8 156.7000000000001L151.8 243.3L276.8 315.4500000000001A348.95 348.95 0 0 0 250 450H100V550H250V600C250 632.1500000000001 254.35 663.25 262.45 692.8L151.8 756.7L201.8 843.3L302.8 785zM400 900A200 200 0 1 0 800 900H400z","horizAdvX":"1200"},"bug-line":{"path":["M0 0h24v24H0z","M13 19.9a5.002 5.002 0 0 0 4-4.9v-3a4.98 4.98 0 0 0-.415-2h-9.17A4.98 4.98 0 0 0 7 12v3a5.002 5.002 0 0 0 4 4.9V14h2v5.9zm-7.464-2.21A6.979 6.979 0 0 1 5 15H2v-2h3v-1c0-.643.087-1.265.249-1.856L3.036 8.866l1-1.732L6.056 8.3a7.01 7.01 0 0 1 .199-.3h11.49c.069.098.135.199.199.3l2.02-1.166 1 1.732-2.213 1.278c.162.59.249 1.213.249 1.856v1h3v2h-3c0 .953-.19 1.862-.536 2.69l2.5 1.444-1 1.732-2.526-1.458A6.986 6.986 0 0 1 12 22a6.986 6.986 0 0 1-5.438-2.592l-2.526 1.458-1-1.732 2.5-1.443zM8 6a4 4 0 1 1 8 0H8z"],"unicode":"","glyph":"M650 205.0000000000001A250.09999999999997 250.09999999999997 0 0 1 850 450.0000000000001V600.0000000000001A249.00000000000003 249.00000000000003 0 0 1 829.25 700.0000000000001H370.7500000000001A249.00000000000003 249.00000000000003 0 0 1 350 600V450A250.09999999999997 250.09999999999997 0 0 1 550 205.0000000000001V500H650V205.0000000000001zM276.8 315.5000000000001A348.95 348.95 0 0 0 250 450H100V550H250V600C250 632.1500000000001 254.35 663.25 262.45 692.8L151.8 756.7L201.8 843.3L302.8 785A350.5 350.5 0 0 0 312.75 800H887.25C890.7 795.0999999999999 894.0000000000001 790.05 897.2000000000002 785L998.2000000000002 843.3L1048.2 756.7L937.55 692.8C945.65 663.3 950 632.1500000000001 950 600V550H1100V450H950C950 402.35 940.4999999999998 356.8999999999999 923.2 315.4999999999999L1048.1999999999998 243.3L998.2 156.7000000000001L871.9 229.5999999999999A349.29999999999995 349.29999999999995 0 0 0 600 100A349.29999999999995 349.29999999999995 0 0 0 328.1 229.5999999999999L201.8 156.7000000000001L151.8 243.3L276.8 315.4500000000001zM400 900A200 200 0 1 0 800 900H400z","horizAdvX":"1200"},"building-2-fill":{"path":["M0 0h24v24H0z","M12 19h2V6l6.394 2.74a1 1 0 0 1 .606.92V19h2v2H1v-2h2V5.65a1 1 0 0 1 .594-.914l7.703-3.424A.5.5 0 0 1 12 1.77V19z"],"unicode":"","glyph":"M600 250H700V900L1019.7 763A50 50 0 0 0 1050 717V250H1150V150H50V250H150V917.5A50 50 0 0 0 179.7 963.2L564.85 1134.3999999999999A25 25 0 0 0 600 1111.5V250z","horizAdvX":"1200"},"building-2-line":{"path":["M0 0h24v24H0z","M3 19V5.7a1 1 0 0 1 .658-.94l9.671-3.516a.5.5 0 0 1 .671.47v4.953l6.316 2.105a1 1 0 0 1 .684.949V19h2v2H1v-2h2zm2 0h7V3.855L5 6.401V19zm14 0v-8.558l-5-1.667V19h5z"],"unicode":"","glyph":"M150 250V915A50 50 0 0 0 182.9 962L666.4499999999999 1137.8A25 25 0 0 0 699.9999999999999 1114.3V866.6500000000001L1015.8 761.4A50 50 0 0 0 1050 713.95V250H1150V150H50V250H150zM250 250H600V1007.25L250 879.95V250zM950 250V677.9L700 761.25V250H950z","horizAdvX":"1200"},"building-3-fill":{"path":["M0 0h24v24H0z","M10 10.111V1l11 6v14H3V7z"],"unicode":"","glyph":"M500 694.45V1150L1050 850V150H150V850z","horizAdvX":"1200"},"building-3-line":{"path":["M0 0h24v24H0z","M10 10.111V1l11 6v14H3V7l7 3.111zm2-5.742v8.82l-7-3.111V19h14V8.187L12 4.37z"],"unicode":"","glyph":"M500 694.45V1150L1050 850V150H150V850L500 694.45zM600 981.55V540.55L250 696.1V250H950V790.6500000000001L600 981.5z","horizAdvX":"1200"},"building-4-fill":{"path":["M0 0h24v24H0z","M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM8 11v2h3v-2H8zm0-4v2h3V7H8zm0 8v2h3v-2H8zm5 0v2h3v-2h-3zm0-4v2h3v-2h-3zm0-4v2h3V7h-3z"],"unicode":"","glyph":"M1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM400 650V550H550V650H400zM400 850V750H550V850H400zM400 450V350H550V450H400zM650 450V350H800V450H650zM650 650V550H800V650H650zM650 850V750H800V850H650z","horizAdvX":"1200"},"building-4-line":{"path":["M0 0h24v24H0z","M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zm-2 0V4H5v16h14zM8 11h3v2H8v-2zm0-4h3v2H8V7zm0 8h3v2H8v-2zm5 0h3v2h-3v-2zm0-4h3v2h-3v-2zm0-4h3v2h-3V7z"],"unicode":"","glyph":"M1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM950 200V1000H250V200H950zM400 650H550V550H400V650zM400 850H550V750H400V850zM400 450H550V350H400V450zM650 450H800V350H650V450zM650 650H800V550H650V650zM650 850H800V750H650V850z","horizAdvX":"1200"},"building-fill":{"path":["M0 0h24v24H0z","M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h2V9h3a1 1 0 0 1 1 1v9zM7 11v2h4v-2H7zm0-4v2h4V7H7z"],"unicode":"","glyph":"M1050 250H1150V150H50V250H150V1000A50 50 0 0 0 200 1050H700A50 50 0 0 0 750 1000V250H850V750H1000A50 50 0 0 0 1050 700V250zM350 650V550H550V650H350zM350 850V750H550V850H350z","horizAdvX":"1200"},"building-line":{"path":["M0 0h24v24H0z","M21 19h2v2H1v-2h2V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v15h4v-8h-2V9h3a1 1 0 0 1 1 1v9zM5 5v14h8V5H5zm2 6h4v2H7v-2zm0-4h4v2H7V7z"],"unicode":"","glyph":"M1050 250H1150V150H50V250H150V1000A50 50 0 0 0 200 1050H700A50 50 0 0 0 750 1000V250H950V650H850V750H1000A50 50 0 0 0 1050 700V250zM250 950V250H650V950H250zM350 650H550V550H350V650zM350 850H550V750H350V850z","horizAdvX":"1200"},"bus-2-fill":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v9a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-1zM5 5v7h14V5H5zm2.5 13a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H200A50 50 0 0 0 150 150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V150A50 50 0 0 0 1000 100H900A50 50 0 0 0 850 150V200zM250 950V600H950V950H250zM375 300A75 75 0 1 1 375 450A75 75 0 0 1 375 300zM825 300A75 75 0 1 1 825 450A75 75 0 0 1 825 300z","horizAdvX":"1200"},"bus-2-line":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v9a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-1zM5 5v6h14V5H5zm14 8H5v5h14v-5zM7.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H200A50 50 0 0 0 150 150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V150A50 50 0 0 0 1000 100H900A50 50 0 0 0 850 150V200zM250 950V650H950V950H250zM950 550H250V300H950V550zM375 350A75 75 0 1 0 375 500A75 75 0 0 0 375 350zM825 350A75 75 0 1 0 825 500A75 75 0 0 0 825 350z","horizAdvX":"1200"},"bus-fill":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zM5 5v9h14V5H5zm0 11v2h4v-2H5zm10 0v2h4v-2h-4z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200zM250 950V500H950V950H250zM250 400V300H450V400H250zM750 400V300H950V400H750z","horizAdvX":"1200"},"bus-line":{"path":["M0 0h24v24H0z","M17 20H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3h1v4h-1v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm2-8V5H5v7h14zm0 2H5v4h14v-4zM6 15h4v2H6v-2zm8 0h4v2h-4v-2z"],"unicode":"","glyph":"M850 200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H950A100 100 0 0 0 1050 950V800H1100V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200zM950 600V950H250V600H950zM950 500H250V300H950V500zM300 450H500V350H300V450zM700 450H900V350H700V450z","horizAdvX":"1200"},"bus-wifi-fill":{"path":["M0 0h24v24H0z","M12 3v2H5v9h14v-2h2v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h7zM9 16H5v2h4v-2zm10 0h-4v2h4v-2zm-.5-15a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V950H250V500H950V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H600zM450 400H250V300H450V400zM950 400H750V300H950V400zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"bus-wifi-line":{"path":["M0 0h24v24H0z","M12 3v2H5v7h16v8h-1v1a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H7v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1H3v-8H2V8h1V5a2 2 0 0 1 2-2h7zm7 11H5v4h14v-4zm-9 1v2H6v-2h4zm8 0v2h-4v-2h4zm.5-14a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V950H250V600H1050V200H1000V150A50 50 0 0 0 950 100H900A50 50 0 0 0 850 150V200H350V150A50 50 0 0 0 300 100H250A50 50 0 0 0 200 150V200H150V600H100V800H150V950A100 100 0 0 0 250 1050H600zM950 500H250V300H950V500zM500 450V350H300V450H500zM900 450V350H700V450H900zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"cactus-fill":{"path":["M0 0H24V24H0z","M12 2c2.21 0 4 1.79 4 4v9h1c.55 0 1-.45 1-1V8c0-.552.448-1 1-1s1 .448 1 1v6c0 1.657-1.343 3-3 3h-1v3h2v2H6v-2h2v-6H7c-1.657 0-3-1.343-3-3V9c0-.552.448-1 1-1s1 .448 1 1v2c0 .55.45 1 1 1h1V6c0-2.21 1.79-4 4-4z"],"unicode":"","glyph":"M600 1100C710.5 1100 800 1010.5 800 900V450H850C877.5 450 900 472.5 900 500V800C900 827.5999999999999 922.4 850 950 850S1000 827.5999999999999 1000 800V500C1000 417.15 932.85 350 850 350H800V200H900V100H300V200H400V500H350C267.15 500 200 567.15 200 650V750C200 777.5999999999999 222.4 800 250 800S300 777.5999999999999 300 750V650C300 622.5 322.5 600 350 600H400V900C400 1010.5 489.4999999999999 1100 600 1100z","horizAdvX":"1200"},"cactus-line":{"path":["M0 0H24V24H0z","M12 2c2.21 0 4 1.79 4 4v9h1c.55 0 1-.45 1-1V8c0-.552.448-1 1-1s1 .448 1 1v6c0 1.66-1.34 3-3 3h-1v3h2v2H6v-2h2v-6H7c-1.657 0-3-1.343-3-3V9c0-.552.448-1 1-1s1 .448 1 1v2c0 .55.45 1 1 1h1V6c0-2.21 1.79-4 4-4zm0 2c-1.105 0-2 .895-2 2v14h4V6c0-1.105-.895-2-2-2z"],"unicode":"","glyph":"M600 1100C710.5 1100 800 1010.5 800 900V450H850C877.5 450 900 472.5 900 500V800C900 827.5999999999999 922.4 850 950 850S1000 827.5999999999999 1000 800V500C1000 417 933 350 850 350H800V200H900V100H300V200H400V500H350C267.15 500 200 567.15 200 650V750C200 777.5999999999999 222.4 800 250 800S300 777.5999999999999 300 750V650C300 622.5 322.5 600 350 600H400V900C400 1010.5 489.4999999999999 1100 600 1100zM600 1000C544.75 1000 500 955.25 500 900V200H700V900C700 955.25 655.25 1000 600 1000z","horizAdvX":"1200"},"cake-2-fill":{"path":["M0 0h24v24H0z","M8 6v3.999h3V6h2v3.999h3V6h2v3.999L19 10a3 3 0 0 1 2.995 2.824L22 13v1c0 1.014-.377 1.94-.999 2.645L21 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4.36a4.025 4.025 0 0 1-.972-2.182l-.022-.253L2 14v-1a3 3 0 0 1 2.824-2.995L5 10l1-.001V6h2zm11 6H5a1 1 0 0 0-.993.883L4 13v.971l.003.147A2 2 0 0 0 6 16a1.999 1.999 0 0 0 1.98-1.7l.015-.153.005-.176c.036-1.248 1.827-1.293 1.989-.134l.01.134.004.147a2 2 0 0 0 3.992.031l.012-.282c.124-1.156 1.862-1.156 1.986 0l.012.282a2 2 0 0 0 3.99 0L20 14v-1a1 1 0 0 0-.883-.993L19 12zM7 1c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 0 1-2.898-.776C5.85 2.002 7 2.5 7 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C10.85 2.002 12 2.5 12 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C15.85 2.002 17 2.5 17 1z"],"unicode":"","glyph":"M400 900V700.05H550V900H650V700.05H800V900H900V700.05L950 700A150 150 0 0 0 1099.75 558.8L1100 550V500C1100 449.3000000000001 1081.15 403 1050.05 367.75L1050 150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V368A201.25000000000003 201.25000000000003 0 0 0 101.4 477.1L100.3 489.75L100 500V550A150 150 0 0 0 241.2 699.75L250 700L300 700.05V900H400zM950 600H250A50 50 0 0 1 200.35 555.85L200 550V501.45L200.15 494.1A100 100 0 0 1 300 400A99.95000000000002 99.95000000000002 0 0 1 399 485L399.75 492.65L400 501.45C401.8 563.8499999999999 491.35 566.0999999999999 499.45 508.15L499.95 501.45L500.15 494.1A100 100 0 0 1 699.75 492.55L700.35 506.65C706.5500000000001 564.4499999999999 793.45 564.4499999999999 799.6500000000001 506.65L800.2500000000001 492.55A100 100 0 0 1 999.7500000000002 492.55L1000 500V550A50 50 0 0 1 955.85 599.65L950 600zM350 1150C416 1106.45 433.1500000000001 1045.6 422.45 1005.6A75 75 0 0 0 277.55 1044.4C292.5 1099.9 350 1075 350 1150zM600 1150C666 1106.45 683.15 1045.6 672.45 1005.6A75 75 0 1 0 527.55 1044.4C542.5 1099.9 600 1075 600 1150zM850 1150C916 1106.45 933.15 1045.6 922.45 1005.6A75 75 0 1 0 777.5500000000001 1044.4C792.5 1099.9 850 1075 850 1150z","horizAdvX":"1200"},"cake-2-line":{"path":["M0 0h24v24H0z","M8 6v3.999h3V6h2v3.999h3V6h2v3.999L19 10a3 3 0 0 1 2.995 2.824L22 13v1c0 1.014-.377 1.94-.999 2.645L21 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4.36a4.025 4.025 0 0 1-.972-2.182l-.022-.253L2 14v-1a3 3 0 0 1 2.824-2.995L5 10l1-.001V6h2zm1.002 10.641l-.054.063a3.994 3.994 0 0 1-2.514 1.273l-.23.018L6 18c-.345 0-.68-.044-1-.126V20h14v-2.126a4.007 4.007 0 0 1-3.744-.963l-.15-.15-.106-.117-.107.118a3.99 3.99 0 0 1-2.451 1.214l-.242.02L12 18a3.977 3.977 0 0 1-2.797-1.144l-.15-.157-.051-.058zM19 12H5a1 1 0 0 0-.993.883L4 13v.971l.003.147A2 2 0 0 0 6 16a1.999 1.999 0 0 0 1.98-1.7l.015-.153.005-.176c.036-1.248 1.827-1.293 1.989-.134l.01.134.004.147a2 2 0 0 0 3.992.031l.012-.282c.124-1.156 1.862-1.156 1.986 0l.012.282a2 2 0 0 0 3.99 0L20 14v-1a1 1 0 0 0-.883-.993L19 12zM7 1c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 0 1-2.898-.776C5.85 2.002 7 2.5 7 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C10.85 2.002 12 2.5 12 1zm5 0c1.32.871 1.663 2.088 1.449 2.888a1.5 1.5 0 1 1-2.898-.776C15.85 2.002 17 2.5 17 1z"],"unicode":"","glyph":"M400 900V700.05H550V900H650V700.05H800V900H900V700.05L950 700A150 150 0 0 0 1099.75 558.8L1100 550V500C1100 449.3000000000001 1081.15 403 1050.05 367.75L1050 150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V368A201.25000000000003 201.25000000000003 0 0 0 101.4 477.1L100.3 489.75L100 500V550A150 150 0 0 0 241.2 699.75L250 700L300 700.05V900H400zM450.1 367.9500000000001L447.4000000000001 364.8000000000002A199.70000000000002 199.70000000000002 0 0 0 321.7000000000001 301.1500000000002L310.2000000000001 300.2500000000001L300 300C282.75 300 266 302.2000000000001 250 306.3000000000001V200H950V306.3000000000001A200.34999999999997 200.34999999999997 0 0 0 762.8 354.4500000000002L755.3 361.9500000000001L750 367.8000000000001L744.6500000000001 361.9000000000002A199.5 199.5 0 0 0 622.1 301.2000000000003L610 300.2000000000003L600 300A198.85 198.85 0 0 0 460.15 357.2L452.65 365.05L450.1 367.95zM950 600H250A50 50 0 0 1 200.35 555.85L200 550V501.45L200.15 494.1A100 100 0 0 1 300 400A99.95000000000002 99.95000000000002 0 0 1 399 485L399.75 492.65L400 501.45C401.8 563.8499999999999 491.35 566.0999999999999 499.45 508.15L499.95 501.45L500.15 494.1A100 100 0 0 1 699.75 492.55L700.35 506.65C706.5500000000001 564.4499999999999 793.45 564.4499999999999 799.6500000000001 506.65L800.2500000000001 492.55A100 100 0 0 1 999.7500000000002 492.55L1000 500V550A50 50 0 0 1 955.85 599.65L950 600zM350 1150C416 1106.45 433.1500000000001 1045.6 422.45 1005.6A75 75 0 0 0 277.55 1044.4C292.5 1099.9 350 1075 350 1150zM600 1150C666 1106.45 683.15 1045.6 672.45 1005.6A75 75 0 1 0 527.55 1044.4C542.5 1099.9 600 1075 600 1150zM850 1150C916 1106.45 933.15 1045.6 922.45 1005.6A75 75 0 1 0 777.5500000000001 1044.4C792.5 1099.9 850 1075 850 1150z","horizAdvX":"1200"},"cake-3-fill":{"path":["M0 0h24v24H0z","M15.5 2a3.5 3.5 0 0 1 3.437 4.163l-.015.066a4.502 4.502 0 0 1 .303 8.428l-1.086 6.507a1 1 0 0 1-.986.836H6.847a1 1 0 0 1-.986-.836l-1.029-6.17a3 3 0 0 1-.829-5.824L4 9a6 6 0 0 1 8.575-5.42A3.493 3.493 0 0 1 15.5 2zM11 15H9v5h2v-5zm4 0h-2v5h2v-5zm2.5-2a2.5 2.5 0 1 0-.956-4.81l-.175.081a2 2 0 0 1-2.663-.804l-.07-.137A4 4 0 0 0 10 5C7.858 5 6.109 6.684 6.005 8.767L6 8.964l.003.17a2 2 0 0 1-1.186 1.863l-.15.059A1.001 1.001 0 0 0 5 13h12.5z"],"unicode":"","glyph":"M775 1100A175 175 0 0 0 946.85 891.8499999999999L946.1 888.55A225.1 225.1 0 0 0 961.2500000000002 467.15L906.9500000000002 141.8A50 50 0 0 0 857.6500000000001 100H342.35A50 50 0 0 0 293.05 141.8L241.6 450.3A150 150 0 0 0 200.1500000000001 741.4999999999999L200 750A300 300 0 0 0 628.75 1021A174.64999999999998 174.64999999999998 0 0 0 775 1100zM550 450H450V200H550V450zM750 450H650V200H750V450zM875 550A125 125 0 1 1 827.2 790.5L818.45 786.4499999999999A100 100 0 0 0 685.3 826.65L681.8 833.5A200 200 0 0 1 500 950C392.9 950 305.45 865.8 300.25 761.6500000000001L300 751.8L300.15 743.3A100 100 0 0 0 240.85 650.15L233.35 647.2A50.05 50.05 0 0 1 250 550H875z","horizAdvX":"1200"},"cake-3-line":{"path":["M0 0h24v24H0z","M15.5 2a3.5 3.5 0 0 1 3.437 4.163l-.015.066a4.502 4.502 0 0 1 .303 8.428l-1.086 6.507a1 1 0 0 1-.986.836H6.847a1 1 0 0 1-.986-.836l-1.029-6.17a3 3 0 0 1-.829-5.824L4 9a6 6 0 0 1 8.574-5.421A3.496 3.496 0 0 1 15.5 2zM9 15H6.86l.834 5H9v-5zm4 0h-2v5h2v-5zm4.139 0H15v5h1.305l.834-5zM10 5C7.858 5 6.109 6.684 6.005 8.767L6 8.964l.003.17a2 2 0 0 1-1.186 1.863l-.15.059A1.001 1.001 0 0 0 5 13h12.5a2.5 2.5 0 1 0-.956-4.81l-.175.081a2 2 0 0 1-2.663-.804l-.07-.137A4 4 0 0 0 10 5zm5.5-1a1.5 1.5 0 0 0-1.287.729 6.006 6.006 0 0 1 1.24 1.764c.444-.228.93-.384 1.446-.453A1.5 1.5 0 0 0 15.5 4z"],"unicode":"","glyph":"M775 1100A175 175 0 0 0 946.85 891.8499999999999L946.1 888.55A225.1 225.1 0 0 0 961.2500000000002 467.15L906.9500000000002 141.8A50 50 0 0 0 857.6500000000001 100H342.35A50 50 0 0 0 293.05 141.8L241.6 450.3A150 150 0 0 0 200.1500000000001 741.4999999999999L200 750A300 300 0 0 0 628.7 1021.05A174.8 174.8 0 0 0 775 1100zM450 450H343L384.7 200H450V450zM650 450H550V200H650V450zM856.9499999999999 450H750V200H815.25L856.9499999999999 450zM500 950C392.9 950 305.45 865.8 300.25 761.6500000000001L300 751.8L300.15 743.3A100 100 0 0 0 240.85 650.15L233.35 647.2A50.05 50.05 0 0 1 250 550H875A125 125 0 1 1 827.2 790.5L818.45 786.4499999999999A100 100 0 0 0 685.3 826.65L681.8 833.5A200 200 0 0 1 500 950zM775 1000A75 75 0 0 1 710.6500000000001 963.55A300.3 300.3 0 0 0 772.6500000000001 875.3499999999999C794.8500000000001 886.75 819.1500000000001 894.55 844.95 898A75 75 0 0 1 775 1000z","horizAdvX":"1200"},"cake-fill":{"path":["M0 0h24v24H0z","M13 7v4h7a1 1 0 0 1 1 1v8h2v2H1v-2h2v-8a1 1 0 0 1 1-1h7V7h2zm.83-6.598A3 3 0 0 1 12.732 4.5L11 5.5a3 3 0 0 1 1.098-4.098l1.732-1z"],"unicode":"","glyph":"M650 850V650H1000A50 50 0 0 0 1050 600V200H1150V100H50V200H150V600A50 50 0 0 0 200 650H550V850H650zM691.5 1179.9A150 150 0 0 0 636.5999999999999 975L550 925A150 150 0 0 0 604.9000000000001 1129.9L691.5 1179.9z","horizAdvX":"1200"},"cake-line":{"path":["M0 0h24v24H0z","M13 7v4h7a1 1 0 0 1 1 1v8h2v2H1v-2h2v-8a1 1 0 0 1 1-1h7V7h2zm6 6H5v7h14v-7zM13.83.402A3 3 0 0 1 12.732 4.5L11 5.5a3 3 0 0 1 1.098-4.098l1.732-1z"],"unicode":"","glyph":"M650 850V650H1000A50 50 0 0 0 1050 600V200H1150V100H50V200H150V600A50 50 0 0 0 200 650H550V850H650zM950 550H250V200H950V550zM691.5 1179.9A150 150 0 0 0 636.5999999999999 975L550 925A150 150 0 0 0 604.9000000000001 1129.9L691.5 1179.9z","horizAdvX":"1200"},"calculator-fill":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm3 10v2h2v-2H7zm0 4v2h2v-2H7zm4-4v2h2v-2h-2zm0 4v2h2v-2h-2zm4-4v6h2v-6h-2zM7 6v4h10V6H7z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM350 600V500H450V600H350zM350 400V300H450V400H350zM550 600V500H650V600H550zM550 400V300H650V400H550zM750 600V300H850V600H750zM350 900V700H850V900H350z","horizAdvX":"1200"},"calculator-line":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm1 2v16h14V4H5zm2 2h10v4H7V6zm0 6h2v2H7v-2zm0 4h2v2H7v-2zm4-4h2v2h-2v-2zm0 4h2v2h-2v-2zm4-4h2v6h-2v-6z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM250 1000V200H950V1000H250zM350 900H850V700H350V900zM350 600H450V500H350V600zM350 400H450V300H350V400zM550 600H650V500H550V600zM550 400H650V300H550V400zM750 600H850V300H750V600z","horizAdvX":"1200"},"calendar-2-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM200 750V250H1000V750H200zM300 650H400V550H300V650zM550 650H650V550H550V650zM800 650H900V550H800V650z","horizAdvX":"1200"},"calendar-2-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm3 8H4v8h16v-8zm-5-6H9v2H7V5H4v4h16V5h-3v2h-2V5zm-9 8h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM1000 650H200V250H1000V650zM750 950H450V850H350V950H200V750H1000V950H850V850H750V950zM300 550H400V450H300V550zM550 550H650V450H550V550zM800 550H900V450H800V550z","horizAdvX":"1200"},"calendar-check-fill":{"path":["M0 0h24v24H0z","M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2zm11 7H4v11h16V8zm-4.964 2.136l1.414 1.414-4.95 4.95-3.536-3.536L9.38 11.55l2.121 2.122 3.536-3.536z"],"unicode":"","glyph":"M450 1150V1050H750V1150H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450zM1000 800H200V250H1000V800zM751.8 693.2L822.5 622.5L575 375L398.2000000000001 551.8L469.0000000000001 622.5L575.0500000000001 516.4L751.85 693.1999999999999z","horizAdvX":"1200"},"calendar-check-line":{"path":["M0 0h24v24H0z","M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2zm11 9H4v9h16v-9zm-4.964 1.136l1.414 1.414-4.95 4.95-3.536-3.536L9.38 12.55l2.121 2.122 3.536-3.536zM7 5H4v3h16V5h-3v1h-2V5H9v1H7V5z"],"unicode":"","glyph":"M450 1150V1050H750V1150H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450zM1000 700H200V250H1000V700zM751.8 643.2L822.5 572.5L575 325L398.2000000000001 501.8L469.0000000000001 572.5L575.0500000000001 466.4L751.85 643.1999999999999zM350 950H200V800H1000V950H850V900H750V950H450V900H350V950z","horizAdvX":"1200"},"calendar-event-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 4h5v4H6v-4z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM200 750V250H1000V750H200zM300 550H550V350H300V550z","horizAdvX":"1200"},"calendar-event-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm3 6V5h-3v2h-2V5H9v2H7V5H4v4h16zm0 2H4v8h16v-8zM6 13h5v4H6v-4z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM1000 750V950H850V850H750V950H450V850H350V950H200V750H1000zM1000 650H200V250H1000V650zM300 550H550V350H300V550z","horizAdvX":"1200"},"calendar-fill":{"path":["M0 0h24v24H0z","M2 11h20v9a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9zm15-8h4a1 1 0 0 1 1 1v5H2V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2z"],"unicode":"","glyph":"M100 650H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V650zM850 1050H1050A50 50 0 0 0 1100 1000V750H100V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050z","horizAdvX":"1200"},"calendar-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM750 950H450V850H350V950H200V750H1000V950H850V850H750V950zM1000 650H200V250H1000V650z","horizAdvX":"1200"},"calendar-todo-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm0 4h2v2H6v-2zm4-4h8v2h-8v-2zm0 4h5v2h-5v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM200 750V250H1000V750H200zM300 650H400V550H300V650zM300 450H400V350H300V450zM500 650H900V550H500V650zM500 450H750V350H500V450z","horizAdvX":"1200"},"calendar-todo-line":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8zM6 14h2v2H6v-2zm4 0h8v2h-8v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V1150H450V1050H750V1150H850V1050zM750 950H450V850H350V950H200V750H1000V950H850V850H750V950zM1000 650H200V250H1000V650zM300 500H400V400H300V500zM500 500H900V400H500V500z","horizAdvX":"1200"},"camera-2-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 2a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm6-12v2h2V5h-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 350A250 250 0 1 1 600 850A250 250 0 0 1 600 350zM900 950V850H1000V950H900z","horizAdvX":"1200"},"camera-2-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm8 10a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm5-11h2v2h-2V6z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350zM850 900H950V800H850V900z","horizAdvX":"1200"},"camera-3-fill":{"path":["M0 0h24v24H0z","M2 6c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6zm12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zM4 7v2h3V7H4zm0-5h6v2H4V2z"],"unicode":"","glyph":"M100 900C100 927.6 122.75 950 149.6 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900zM700 300A250 250 0 1 1 700 800A250 250 0 0 1 700 300zM200 850V750H350V850H200zM200 1100H500V1000H200V1100z","horizAdvX":"1200"},"camera-3-line":{"path":["M0 0h24v24H0z","M2 6c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6zm2 1v12h16V7H4zm10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zM4 2h6v2H4V2z"],"unicode":"","glyph":"M100 900C100 927.6 122.75 950 149.6 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900zM200 850V250H1000V850H200zM700 400A150 150 0 1 1 700 700A150 150 0 0 1 700 400zM700 300A250 250 0 1 0 700 800A250 250 0 0 0 700 300zM200 1100H500V1000H200V1100z","horizAdvX":"1200"},"camera-fill":{"path":["M0 0h24v24H0z","M9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm3 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM600 250A300 300 0 1 1 600 850A300 300 0 0 1 600 250zM600 350A200 200 0 1 0 600 750A200 200 0 0 0 600 350z","horizAdvX":"1200"},"camera-lens-fill":{"path":["M0 0h24v24H0z","M9.827 21.763L14.31 14l3.532 6.117A9.955 9.955 0 0 1 12 22c-.746 0-1.473-.082-2.173-.237zM7.89 21.12A10.028 10.028 0 0 1 2.458 15h8.965L7.89 21.119zM2.05 13a9.964 9.964 0 0 1 2.583-7.761L9.112 13H2.05zm4.109-9.117A9.955 9.955 0 0 1 12 2c.746 0 1.473.082 2.173.237L9.69 10 6.159 3.883zM16.11 2.88A10.028 10.028 0 0 1 21.542 9h-8.965l3.533-6.119zM21.95 11a9.964 9.964 0 0 1-2.583 7.761L14.888 11h7.064z"],"unicode":"","glyph":"M491.35 111.8499999999999L715.5 500L892.0999999999999 194.15A497.74999999999994 497.74999999999994 0 0 0 600 100C562.6999999999999 100 526.3499999999999 104.1000000000001 491.35 111.8499999999999zM394.5 144A501.40000000000003 501.40000000000003 0 0 0 122.9 450H571.15L394.5 144.05zM102.5 550A498.2 498.2 0 0 0 231.65 938.05L455.6 550H102.5zM307.95 1005.85A497.74999999999994 497.74999999999994 0 0 0 600 1100C637.3000000000001 1100 673.6500000000001 1095.9 708.65 1088.15L484.5 700L307.95 1005.85zM805.5 1056A501.40000000000003 501.40000000000003 0 0 0 1077.1000000000001 750H628.8500000000001L805.5000000000001 1055.95zM1097.5 650A498.2 498.2 0 0 0 968.35 261.9500000000001L744.4 650H1097.6z","horizAdvX":"1200"},"camera-lens-line":{"path":["M0 0h24v24H0z","M9.858 19.71L12 16H5.07a8.018 8.018 0 0 0 4.788 3.71zM4.252 14h4.284L5.07 7.999A7.963 7.963 0 0 0 4 12c0 .69.088 1.36.252 2zm2.143-7.708L8.535 10 12 4a7.974 7.974 0 0 0-5.605 2.292zm7.747-2.002L12 8h6.93a8.018 8.018 0 0 0-4.788-3.71zM19.748 10h-4.284l3.465 6.001A7.963 7.963 0 0 0 20 12c0-.69-.088-1.36-.252-2zm-2.143 7.708L15.465 14 12 20a7.974 7.974 0 0 0 5.605-2.292zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1.155-12h-2.31l-1.154 2 1.154 2h2.31l1.154-2-1.154-2z"],"unicode":"","glyph":"M492.9 214.5L600 400H253.5A400.90000000000003 400.90000000000003 0 0 1 492.9 214.5zM212.6 500H426.8L253.5 800.05A398.15 398.15 0 0 1 200 600C200 565.5 204.4 532 212.6 500zM319.75 885.4000000000001L426.75 700L600 1000A398.70000000000005 398.70000000000005 0 0 1 319.75 885.4000000000001zM707.1 985.5L600 800H946.5A400.90000000000003 400.90000000000003 0 0 1 707.1 985.5zM987.4 700H773.2000000000002L946.45 399.95A398.15 398.15 0 0 1 1000 600C1000 634.5 995.6 668 987.4 700zM880.25 314.6000000000002L773.25 500L600 200A398.70000000000005 398.70000000000005 0 0 1 880.25 314.6000000000002zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM657.75 700H542.25L484.55 600L542.25 500H657.75L715.4499999999999 600L657.75 700z","horizAdvX":"1200"},"camera-line":{"path":["M0 0h24v24H0z","M9.828 5l-2 2H4v12h16V7h-3.828l-2-2H9.828zM9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm3 15a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11zm0-2a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M491.4 950L391.4 850H200V250H1000V850H808.6L708.6 950H491.4zM450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM600 300A275 275 0 1 0 600 850A275 275 0 0 0 600 300zM600 400A175 175 0 1 1 600 750A175 175 0 0 1 600 400z","horizAdvX":"1200"},"camera-off-fill":{"path":["M0 0h24v24H0z","M19.586 21H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h.586L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L19.586 21zM7.556 8.97a6 6 0 0 0 8.475 8.475l-1.417-1.417a4 4 0 0 1-5.642-5.642L7.555 8.97zM22 17.785l-4.045-4.045a6 6 0 0 0-6.695-6.695L8.106 3.892 9 3h6l2 2h4a1 1 0 0 1 1 1v11.786zm-8.492-8.492a4.013 4.013 0 0 1 2.198 2.198l-2.198-2.198z"],"unicode":"","glyph":"M979.3 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H179.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L979.3 150zM377.8 751.5A300 300 0 0 1 801.55 327.75L730.6999999999999 398.6A200 200 0 0 0 448.5999999999999 680.7L377.75 751.5zM1100 310.75L897.7499999999999 513A300 300 0 0 1 562.9999999999999 847.75L405.3 1005.4L450 1050H750L850 950H1050A50 50 0 0 0 1100 900V310.7zM675.4 735.35A200.65 200.65 0 0 0 785.3 625.45L675.4 735.35z","horizAdvX":"1200"},"camera-off-line":{"path":["M0 0h24v24H0z","M19.586 21H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h.586L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L19.586 21zm-14-14H4v12h13.586l-2.18-2.18A5.5 5.5 0 0 1 7.68 9.094L5.586 7zm3.524 3.525a3.5 3.5 0 0 0 4.865 4.865L9.11 10.525zM22 17.785l-2-2V7h-3.828l-2-2H9.828l-.307.307-1.414-1.414L9 3h6l2 2h4a1 1 0 0 1 1 1v11.786zM11.263 7.05a5.5 5.5 0 0 1 6.188 6.188l-2.338-2.338a3.515 3.515 0 0 0-1.512-1.512l-2.338-2.338z"],"unicode":"","glyph":"M979.3 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H179.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L979.3 150zM279.3 850H200V250H879.3L770.3 359A275 275 0 0 0 384 745.3L279.3 850zM455.5 673.75A175 175 0 0 1 698.75 430.5L455.5 673.75zM1100 310.75L1000 410.75V850H808.6L708.6 950H491.4L476.05 934.65L405.35 1005.35L450 1050H750L850 950H1050A50 50 0 0 0 1100 900V310.7zM563.15 847.5A275 275 0 0 0 872.5500000000001 538.1L755.65 655.0000000000001A175.75 175.75 0 0 1 680.05 730.6000000000001L563.1499999999999 847.5000000000001z","horizAdvX":"1200"},"camera-switch-fill":{"path":["M0 0h24v24H0z","M9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm5.684 15.368l-.895-1.79A4 4 0 0 1 8 13h2.001L7.839 8.677a6 6 0 0 0 6.845 9.69zM9.316 7.632l.895 1.79A4 4 0 0 1 16 13h-2.001l2.161 4.323a6 6 0 0 0-6.845-9.69z"],"unicode":"","glyph":"M450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM734.2 281.5999999999999L689.45 371.0999999999999A200 200 0 0 0 400 550H500.05L391.9500000000001 766.1500000000001A300 300 0 0 1 734.2 281.6500000000001zM465.8 818.4000000000001L510.55 728.9A200 200 0 0 0 800 550H699.95L808 333.85A300 300 0 0 1 465.7500000000001 818.3499999999999z","horizAdvX":"1200"},"camera-switch-line":{"path":["M0 0h24v24H0z","M9.828 5l-2 2H4v12h16V7h-3.828l-2-2H9.828zM9 3h6l2 2h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4l2-2zm.64 4.53a5.5 5.5 0 0 1 6.187 8.92L13.75 12.6h1.749l.001-.1a3.5 3.5 0 0 0-4.928-3.196L9.64 7.53zm4.677 9.96a5.5 5.5 0 0 1-6.18-8.905L10.25 12.5H8.5a3.5 3.5 0 0 0 4.886 3.215l.931 1.774z"],"unicode":"","glyph":"M491.4 950L391.4 850H200V250H1000V850H808.6L708.6 950H491.4zM450 1050H750L850 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V900A50 50 0 0 0 150 950H350L450 1050zM482 823.5A275 275 0 0 0 791.3500000000001 377.5L687.5 570H774.95L775 575A175 175 0 0 1 528.5999999999999 734.8L482 823.5zM715.85 325.4999999999999A275 275 0 0 0 406.85 770.7499999999999L512.5 575H425A175 175 0 0 1 669.3 414.25L715.85 325.55z","horizAdvX":"1200"},"capsule-fill":{"path":["M0 0H24V24H0z","M19.778 4.222c2.343 2.343 2.343 6.142 0 8.485l-2.122 2.12-4.949 4.951c-2.343 2.343-6.142 2.343-8.485 0-2.343-2.343-2.343-6.142 0-8.485l7.07-7.071c2.344-2.343 6.143-2.343 8.486 0zm-4.95 10.606L9.172 9.172l-3.536 3.535c-1.562 1.562-1.562 4.095 0 5.657 1.562 1.562 4.095 1.562 5.657 0l3.535-3.536z"],"unicode":"","glyph":"M988.9 988.9C1106.05 871.75 1106.05 681.8 988.9 564.65L882.8 458.6499999999999L635.3499999999999 211.0999999999999C518.1999999999999 93.9499999999998 328.25 93.9499999999998 211.1 211.0999999999999C93.95 328.2499999999999 93.95 518.1999999999998 211.1 635.3499999999999L564.6 988.8999999999997C681.8 1106.0499999999997 871.7499999999999 1106.0499999999997 988.9 988.8999999999997zM741.4 458.6L458.6 741.4L281.8000000000001 564.65C203.7000000000001 486.55 203.7000000000001 359.9 281.8000000000001 281.8C359.9000000000001 203.6999999999999 486.5500000000001 203.6999999999999 564.6500000000001 281.8L741.4000000000001 458.5999999999999z","horizAdvX":"1200"},"capsule-line":{"path":["M0 0H24V24H0z","M19.778 4.222c2.343 2.343 2.343 6.142 0 8.485l-7.07 7.071c-2.344 2.343-6.143 2.343-8.486 0-2.343-2.343-2.343-6.142 0-8.485l7.07-7.071c2.344-2.343 6.143-2.343 8.486 0zm-5.656 11.313L8.465 9.878l-2.829 2.83c-1.562 1.561-1.562 4.094 0 5.656 1.562 1.562 4.095 1.562 5.657 0l2.829-2.83zm4.242-9.899c-1.562-1.562-4.095-1.562-5.657 0L9.88 8.464l5.657 5.657 2.828-2.828c1.562-1.562 1.562-4.095 0-5.657z"],"unicode":"","glyph":"M988.9 988.9C1106.05 871.75 1106.05 681.8 988.9 564.65L635.3999999999999 211.1C518.1999999999999 93.9500000000001 328.25 93.9500000000001 211.0999999999999 211.1C93.9499999999999 328.2500000000001 93.9499999999999 518.2 211.0999999999999 635.35L564.5999999999999 988.9C681.7999999999998 1106.05 871.7499999999999 1106.05 988.9 988.9zM706.1 423.25L423.25 706.1L281.8 564.6C203.7 486.55 203.7 359.9 281.8 281.8C359.9 203.6999999999999 486.5499999999999 203.6999999999999 564.65 281.8L706.1 423.3zM918.2 918.2C840.1 996.3 713.45 996.3 635.35 918.2L494.0000000000001 776.8L776.85 493.9499999999999L918.2500000000002 635.3499999999999C996.3500000000003 713.4499999999999 996.3500000000003 840.0999999999999 918.2500000000002 918.2z","horizAdvX":"1200"},"car-fill":{"path":["M0 0h24v24H0z","M19 20H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.513-6.702A2 2 0 0 1 6.386 4h11.228a2 2 0 0 1 1.873 1.298L22 12v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zM4.136 12h15.728l-2.25-6H6.386l-2.25 6zM6.5 17a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M950 200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V600L225.65 935.1A100 100 0 0 0 319.3 1000H880.7A100 100 0 0 0 974.3500000000003 935.1L1100 600V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200zM206.8 600H993.2L880.7 900H319.3L206.8 600zM325 350A75 75 0 1 1 325 500A75 75 0 0 1 325 350zM875 350A75 75 0 1 1 875 500A75 75 0 0 1 875 350z","horizAdvX":"1200"},"car-line":{"path":["M0 0h24v24H0z","M19 20H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V11l2.48-5.788A2 2 0 0 1 6.32 4H17.68a2 2 0 0 1 1.838 1.212L22 11v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm1-7H4v5h16v-5zM4.176 11h15.648l-2.143-5H6.32l-2.143 5zM6.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M950 200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V650L224 939.4A100 100 0 0 0 316 1000H884A100 100 0 0 0 975.9 939.4L1100 650V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200zM1000 550H200V300H1000V550zM208.8 650H991.2L884.0499999999998 900H316L208.85 650zM325 350A75 75 0 1 0 325 500A75 75 0 0 0 325 350zM875 350A75 75 0 1 0 875 500A75 75 0 0 0 875 350z","horizAdvX":"1200"},"car-washing-fill":{"path":["M0 0h24v24H0z","M19 21H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.417-4.029A2 2 0 0 1 6.132 8h11.736a2 2 0 0 1 1.715.971L22 13v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zM4.332 13h15.336l-1.8-3H6.132l-1.8 3zM6.5 18a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM5.44 3.44L6.5 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0L12 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0l1.06-1.061 1.06 1.06a1.5 1.5 0 1 1-2.121 0z"],"unicode":"","glyph":"M950 150H250V100A50 50 0 0 0 200 50H150A50 50 0 0 0 100 100V550L220.85 751.45A100 100 0 0 0 306.6 800H893.4000000000001A100 100 0 0 0 979.15 751.45L1100 550V100A50 50 0 0 0 1050 50H1000A50 50 0 0 0 950 100V150zM216.6 550H983.4L893.4 700H306.6L216.6 550zM325 300A75 75 0 1 1 325 450A75 75 0 0 1 325 300zM875 300A75 75 0 1 1 875 450A75 75 0 0 1 875 300zM272 1028L325 1081.1L378 1028.1A75 75 0 1 0 271.95 1028.1zM547.0000000000001 1028L600 1081.1L653 1028.1A75 75 0 1 0 546.95 1028.1zM822.0000000000001 1028L875 1081.05L927.9999999999998 1028.05A75 75 0 1 0 821.95 1028.05z","horizAdvX":"1200"},"car-washing-line":{"path":["M0 0h24v24H0z","M19 21H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V12l2.417-4.029A2 2 0 0 1 6.132 7h11.736a2 2 0 0 1 1.715.971L22 12v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm1-7H4v5h16v-5zM4.332 12h15.336l-1.8-3H6.132l-1.8 3zM5.44 3.44L6.5 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0L12 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zm5.5 0L17.5 2.378l1.06 1.06a1.5 1.5 0 1 1-2.121 0zM6.5 18a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M950 150H250V100A50 50 0 0 0 200 50H150A50 50 0 0 0 100 100V600L220.85 801.45A100 100 0 0 0 306.6 850H893.4000000000001A100 100 0 0 0 979.15 801.45L1100 600V100A50 50 0 0 0 1050 50H1000A50 50 0 0 0 950 100V150zM1000 500H200V250H1000V500zM216.6 600H983.4L893.4 750H306.6L216.6 600zM272 1028L325 1081.1L378 1028.1A75 75 0 1 0 271.95 1028.1zM547.0000000000001 1028L600 1081.1L653 1028.1A75 75 0 1 0 546.95 1028.1zM822.0000000000001 1028L875 1081.1L927.9999999999998 1028.1A75 75 0 1 0 821.95 1028.1zM325 300A75 75 0 1 0 325 450A75 75 0 0 0 325 300zM875 300A75 75 0 1 0 875 450A75 75 0 0 0 875 300z","horizAdvX":"1200"},"caravan-fill":{"path":["M0 0L24 0 24 24 0 24z","M14.172 3c.53 0 1.039.21 1.414.586l4.828 4.828c.375.375.586.884.586 1.414V17h2v2h-8.126c-.445 1.726-2.01 3-3.874 3-1.864 0-3.43-1.274-3.874-3H3c-.552 0-1-.448-1-1V5c0-1.105.895-2 2-2h10.172zM11 16c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm3-9H6v6h8V7zm-2 2v2H8V9h4z"],"unicode":"","glyph":"M708.6 1050C735.1 1050 760.5500000000001 1039.5 779.3000000000001 1020.7L1020.7 779.3C1039.45 760.55 1050 735.1 1050 708.6V350H1150V250H743.7C721.45 163.7000000000001 643.2 100 550 100C456.8 100 378.5 163.7000000000001 356.3 250H150C122.4 250 100 272.4 100 300V950C100 1005.25 144.75 1050 200 1050H708.6zM550 400C494.75 400 450 355.25 450 300S494.75 200 550 200S650 244.75 650 300S605.25 400 550 400zM700 850H300V550H700V850zM600 750V650H400V750H600z","horizAdvX":"1200"},"caravan-line":{"path":["M0 0L24 0 24 24 0 24z","M14.172 3c.53 0 1.039.21 1.414.586l4.828 4.828c.375.375.586.884.586 1.414V17h2v2h-8.126c-.445 1.726-2.01 3-3.874 3-1.864 0-3.43-1.274-3.874-3H3c-.552 0-1-.448-1-1V5c0-1.105.895-2 2-2h10.172zM11 16c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm3.172-11H4v12h3.126c.444-1.725 2.01-3 3.874-3 1.864 0 3.43 1.275 3.874 3H19V9.828L14.172 5zM14 7v6H6V7h8zm-2 2H8v2h4V9z"],"unicode":"","glyph":"M708.6 1050C735.1 1050 760.5500000000001 1039.5 779.3000000000001 1020.7L1020.7 779.3C1039.45 760.55 1050 735.1 1050 708.6V350H1150V250H743.7C721.45 163.7000000000001 643.2 100 550 100C456.8 100 378.5 163.7000000000001 356.3 250H150C122.4 250 100 272.4 100 300V950C100 1005.25 144.75 1050 200 1050H708.6zM550 400C494.75 400 450 355.25 450 300S494.75 200 550 200S650 244.75 650 300S605.25 400 550 400zM708.6 950H200V350H356.3C378.5 436.25 456.8 500 550 500C643.2 500 721.5 436.25 743.7 350H950V708.6L708.6 950zM700 850V550H300V850H700zM600 750H400V650H600V750z","horizAdvX":"1200"},"cast-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-6a13.1 13.1 0 0 0-.153-2H20V5H4v3.153A13.1 13.1 0 0 0 2 8V4a1 1 0 0 1 1-1zm10 18h-2a9 9 0 0 0-9-9v-2c6.075 0 11 4.925 11 11zm-4 0H7a5 5 0 0 0-5-5v-2a7 7 0 0 1 7 7zm-4 0H2v-3a3 3 0 0 1 3 3zm9.373-4A13.032 13.032 0 0 0 6 8.627V7h12v10h-3.627z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H750A655 655 0 0 1 742.35 250H1000V950H200V792.3499999999999A655 655 0 0 1 100 800V1000A50 50 0 0 0 150 1050zM650 150H550A450 450 0 0 1 100 600V700C403.75 700 650 453.75 650 150zM450 150H350A250 250 0 0 1 100 400V500A350 350 0 0 0 450 150zM250 150H100V300A150 150 0 0 0 250 150zM718.65 350A651.6 651.6 0 0 1 300 768.65V850H900V350H718.6500000000001z","horizAdvX":"1200"},"cast-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-6a13.1 13.1 0 0 0-.153-2H20V5H4v3.153A13.1 13.1 0 0 0 2 8V4a1 1 0 0 1 1-1zm10 18h-2a9 9 0 0 0-9-9v-2c6.075 0 11 4.925 11 11zm-4 0H7a5 5 0 0 0-5-5v-2a7 7 0 0 1 7 7zm-4 0H2v-3a3 3 0 0 1 3 3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H750A655 655 0 0 1 742.35 250H1000V950H200V792.3499999999999A655 655 0 0 1 100 800V1000A50 50 0 0 0 150 1050zM650 150H550A450 450 0 0 1 100 600V700C403.75 700 650 453.75 650 150zM450 150H350A250 250 0 0 1 100 400V500A350 350 0 0 0 450 150zM250 150H100V300A150 150 0 0 0 250 150z","horizAdvX":"1200"},"cellphone-fill":{"path":["M0 0h24v24H0z","M7 2h11a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V0h2v2zm0 2v5h10V4H7z"],"unicode":"","glyph":"M350 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1200H350V1100zM350 1000V750H850V1000H350z","horizAdvX":"1200"},"cellphone-line":{"path":["M0 0h24v24H0z","M7 2h11a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V0h2v2zm0 7h10V4H7v5zm0 2v9h10v-9H7z"],"unicode":"","glyph":"M350 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1200H350V1100zM350 750H850V1000H350V750zM350 650V200H850V650H350z","horizAdvX":"1200"},"celsius-fill":{"path":["M0 0h24v24H0z","M4.5 10a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM22 10h-2a4 4 0 1 0-8 0v5a4 4 0 1 0 8 0h2a6 6 0 1 1-12 0v-5a6 6 0 1 1 12 0z"],"unicode":"","glyph":"M225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800zM1100 700H1000A200 200 0 1 1 600 700V450A200 200 0 1 1 1000 450H1100A300 300 0 1 0 500 450V700A300 300 0 1 0 1100 700z","horizAdvX":"1200"},"celsius-line":{"path":["M0 0h24v24H0z","M4.5 10a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM22 10h-2a4 4 0 1 0-8 0v5a4 4 0 1 0 8 0h2a6 6 0 1 1-12 0v-5a6 6 0 1 1 12 0z"],"unicode":"","glyph":"M225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800zM1100 700H1000A200 200 0 1 1 600 700V450A200 200 0 1 1 1000 450H1100A300 300 0 1 0 500 450V700A300 300 0 1 0 1100 700z","horizAdvX":"1200"},"centos-fill":{"path":["M0 0H24V24H0z","M12 13.06l4.47 4.471L12 22l-4.47-4.47L12 13.06zm-8 3.06L7.879 20H4v-3.88zm16 0V20h-3.88L20 16.12zm-2.47-8.59L22 12l-4.469 4.47-4.47-4.47 4.469-4.47zm-11.06 0L10.94 12l-4.471 4.469L2 12l4.47-4.47zM12 2l4.469 4.469L12 10.939 7.53 6.47 12 2zM7.879 4l-3.88 3.879L4 4h3.879zM20 4v3.879l-3.88-3.88L20 4z"],"unicode":"","glyph":"M600 547L823.5 323.4500000000001L600 100L376.5 323.5L600 547zM200 394L393.95 200H200V394zM1000 394V200H806L1000 394zM876.5 823.5L1100 600L876.55 376.5L653.05 600L876.5 823.5zM323.5000000000001 823.5L547 600L323.45 376.55L100 600L323.5 823.5zM600 1100L823.45 876.55L600 653.05L376.5 876.5L600 1100zM393.95 1000L199.95 806.05L200 1000H393.95zM1000 1000V806.05L806 1000.05L1000 1000z","horizAdvX":"1200"},"centos-line":{"path":["M0 0H24V24H0z","M12 2l4.292 4.292 1.061-1.06L16.121 4H20v3.879l-1.233-1.233-1.06 1.061L22 12l-4.292 4.293 1.059 1.059L20 16.121V20h-3.88l1.232-1.233-1.059-1.06L12 22l-4.293-4.293-1.061 1.06L7.879 20H4v-3.88l1.231 1.232 1.061-1.06L2 12l4.293-4.293-1.062-1.061L4 7.879V4h3.879L6.646 5.23l1.062 1.062L12 2zm0 11.413l-2.88 2.879 2.88 2.88 2.879-2.88L12 13.412zM7.707 9.12L4.828 12l2.878 2.878 2.88-2.88-2.879-2.877zm8.585 0l-2.877 2.878 2.878 2.879L19.172 12l-2.88-2.879zM12 4.828L9.122 7.707l2.879 2.878 2.877-2.879L12 4.828z"],"unicode":"","glyph":"M600 1100L814.6000000000001 885.4000000000001L867.6500000000001 938.4L806.05 1000H1000V806.05L938.35 867.7L885.35 814.6500000000001L1100 600L885.3999999999999 385.35L938.35 332.4L1000 393.9500000000001V200H806L867.6 261.65L814.65 314.65L600 100L385.35 314.65L332.3 261.65L393.95 200H200V394L261.55 332.4L314.6 385.3999999999999L100 600L314.6500000000001 814.6500000000001L261.55 867.7L200 806.05V1000H393.95L332.3 938.5L385.4000000000001 885.4L600 1100zM600 529.35L456.0000000000001 385.3999999999999L600 241.4L743.9499999999999 385.3999999999999L600 529.4zM385.35 744L241.4 600L385.3 456.1L529.3000000000001 600.0999999999999L385.35 743.9499999999998zM814.6000000000001 744L670.7500000000001 600.1L814.6500000000001 456.1500000000001L958.6 600L814.6000000000001 743.95zM600 958.6L456.1 814.6500000000001L600.05 670.75L743.9 814.6999999999999L600 958.6z","horizAdvX":"1200"},"character-recognition-fill":{"path":["M0 0h24v24H0z","M21 3v18H3V3h18zm-8.001 3h-2L6.6 17h2.154l1.199-3h4.09l1.201 3h2.155l-4.4-11zm-1 2.885L13.244 12h-2.492l1.247-3.115z"],"unicode":"","glyph":"M1050 1050V150H150V1050H1050zM649.95 900H549.95L330 350H437.7L497.65 500H702.15L762.2 350H869.95L649.95 900zM599.95 755.75L662.2 600H537.5999999999999L599.9499999999999 755.75z","horizAdvX":"1200"},"character-recognition-line":{"path":["M0 0h24v24H0z","M5 15v4h4v2H3v-6h2zm16 0v6h-6v-2h4v-4h2zm-8.001-9l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3H6.6l4.399-11h2zm-1 2.885L10.752 12h2.492l-1.245-3.115zM9 3v2H5v4H3V3h6zm12 0v6h-2V5h-4V3h6z"],"unicode":"","glyph":"M250 450V250H450V150H150V450H250zM1050 450V150H750V250H950V450H1050zM649.95 900L869.95 350H762.2L702.1500000000001 500H497.65L437.7000000000001 350H330L549.9499999999999 900H649.9499999999999zM599.95 755.75L537.6 600H662.2L599.9499999999999 755.75zM450 1050V950H250V750H150V1050H450zM1050 1050V750H950V950H750V1050H1050z","horizAdvX":"1200"},"charging-pile-2-fill":{"path":["M0 0h24v24H0z","M20 11h-1V7h1V4h2v3h1v4h-1v7a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7zM9 11V7l-4 6h3v4l4-6H9z"],"unicode":"","glyph":"M1000 650H950V850H1000V1000H1100V850H1150V650H1100V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650zM450 650V850L250 550H400V350L600 650H450z","horizAdvX":"1200"},"charging-pile-2-line":{"path":["M0 0h24v24H0z","M20 11h-1V7h1V4h2v3h1v4h-1v7a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7zm-8 8V5H5v14h7zm-3-8h3l-4 6v-4H5l4-6v4z"],"unicode":"","glyph":"M1000 650H950V850H1000V1000H1100V850H1150V650H1100V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650zM600 250V950H250V250H600zM450 650H600L400 350V550H250L450 850V650z","horizAdvX":"1200"},"charging-pile-fill":{"path":["M0 0h24v24H0z","M3 19V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1zm6-8V7l-4 6h3v4l4-6H9z"],"unicode":"","glyph":"M150 250V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150zM450 650V850L250 550H400V350L600 650H450z","horizAdvX":"1200"},"charging-pile-line":{"path":["M0 0h24v24H0z","M14 19h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5zm-9 0h7V5H5v14zm4-8h3l-4 6v-4H5l4-6v4z"],"unicode":"","glyph":"M700 250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250zM250 250H600V950H250V250zM450 650H600L400 350V550H250L450 850V650z","horizAdvX":"1200"},"chat-1-fill":{"path":["M0 0h24v24H0z","M10 3h4a8 8 0 1 1 0 16v3.5c-5-2-12-5-12-11.5a8 8 0 0 1 8-8z"],"unicode":"","glyph":"M500 1050H700A400 400 0 1 0 700 250V75C450 175 100 325 100 650A400 400 0 0 0 500 1050z","horizAdvX":"1200"},"chat-1-line":{"path":["M0 0h24v24H0z","M10 3h4a8 8 0 1 1 0 16v3.5c-5-2-12-5-12-11.5a8 8 0 0 1 8-8zm2 14h2a6 6 0 1 0 0-12h-4a6 6 0 0 0-6 6c0 3.61 2.462 5.966 8 8.48V17z"],"unicode":"","glyph":"M500 1050H700A400 400 0 1 0 700 250V75C450 175 100 325 100 650A400 400 0 0 0 500 1050zM600 350H700A300 300 0 1 1 700 950H500A300 300 0 0 1 200 650C200 469.5 323.1 351.7 600 226V350z","horizAdvX":"1200"},"chat-2-fill":{"path":["M0 0h24v24H0z","M14.45 19L12 22.5 9.55 19H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-6.55z"],"unicode":"","glyph":"M722.5 250L600 75L477.5000000000001 250H150A50 50 0 0 0 100 300V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H722.5z","horizAdvX":"1200"},"chat-2-line":{"path":["M0 0h24v24H0z","M14.45 19L12 22.5 9.55 19H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-6.55zm-1.041-2H20V5H4v12h6.591L12 19.012 13.409 17z"],"unicode":"","glyph":"M722.5 250L600 75L477.5000000000001 250H150A50 50 0 0 0 100 300V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H722.5zM670.4499999999999 350H1000V950H200V350H529.5500000000001L600 249.4L670.45 350z","horizAdvX":"1200"},"chat-3-fill":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8z","horizAdvX":"1200"},"chat-3-line":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176zm.29-2.113l.653.35A7.955 7.955 0 0 0 12 20a8 8 0 1 0-8-8c0 1.334.325 2.618.94 3.766l.349.653-.655 2.947 2.947-.655z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8zM379.05 264.45L411.7 246.9499999999998A397.75 397.75 0 0 1 600 200A400 400 0 1 1 200 600C200 533.3000000000001 216.25 469.1 247 411.7000000000001L264.45 379.05L231.7 231.7000000000001L379.05 264.4500000000001z","horizAdvX":"1200"},"chat-4-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75z","horizAdvX":"1200"},"chat-4-line":{"path":["M0 0h24v24H0z","M5.763 17H20V5H4v13.385L5.763 17zm.692 2L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455z"],"unicode":"","glyph":"M288.15 350H1000V950H200V280.7500000000001L288.15 350zM322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75z","horizAdvX":"1200"},"chat-check-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm4.838-6.879L8.818 9.646l-1.414 1.415 3.889 3.889 5.657-5.657-1.414-1.414-4.243 4.242z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM564.65 593.9499999999999L440.9 717.6999999999999L370.2 646.95L564.65 452.5L847.5 735.35L776.8 806.05L564.65 593.95z","horizAdvX":"1200"},"chat-check-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zm5.53-4.879l4.243-4.242 1.414 1.414-5.657 5.657-3.89-3.89 1.415-1.414 2.475 2.475z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM564.65 593.9499999999999L776.8 806.05L847.5 735.3499999999999L564.65 452.5L370.1499999999999 647L440.8999999999999 717.6999999999999L564.6499999999999 593.9499999999999z","horizAdvX":"1200"},"chat-delete-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm6.96-8l2.474-2.475-1.414-1.414L12 9.586 9.525 7.11 8.111 8.525 10.586 11 8.11 13.475l1.414 1.414L12 12.414l2.475 2.475 1.414-1.414L13.414 11z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM670.75 650L794.4499999999999 773.75L723.75 844.45L600 720.7L476.25 844.5L405.55 773.75L529.3000000000001 650L405.5 526.25L476.1999999999999 455.5500000000001L600 579.3000000000001L723.75 455.5500000000001L794.4499999999999 526.25L670.6999999999999 650z","horizAdvX":"1200"},"chat-delete-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM13.414 11l2.475 2.475-1.414 1.414L12 12.414 9.525 14.89l-1.414-1.414L10.586 11 8.11 8.525l1.414-1.414L12 9.586l2.475-2.475 1.414 1.414L13.414 11z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM670.6999999999999 650L794.4499999999999 526.25L723.75 455.5500000000001L600 579.3000000000001L476.25 455.5L405.55 526.1999999999999L529.3000000000001 650L405.5 773.75L476.1999999999999 844.45L600 720.7L723.75 844.45L794.4499999999999 773.75L670.6999999999999 650z","horizAdvX":"1200"},"chat-download-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM13 11V7h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM650 650V850H550V650H400L600 450L800 650H650z","horizAdvX":"1200"},"chat-download-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM13 11h3l-4 4-4-4h3V7h2v4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM650 650H800L600 450L400 650H550V850H650V650z","horizAdvX":"1200"},"chat-follow-up-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-4 4h-2v8h2V7zm-6 1H9v1.999L7 10v2l2-.001V14h2v-2.001L13 12v-2l-2-.001V8z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM850 850H750V450H850V850zM550 800H450V700.05L350 700V600L450 600.05V500H550V600.05L650 600V700L550 700.05V800z","horizAdvX":"1200"},"chat-follow-up-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-3 2v8h-2V7h2zm-6 1v1.999L13 10v2l-2-.001V14H9v-2.001L7 12v-2l2-.001V8h2z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V280.7500000000001L288.15 350H1000V950zM850 850V450H750V850H850zM550 800V700.05L650 700V600L550 600.05V500H450V600.05L350 600V700L450 700.05V800H550z","horizAdvX":"1200"},"chat-forward-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM12 10H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM600 700H400V600H600V450L800 650L600 850V700z","horizAdvX":"1200"},"chat-forward-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM12 10V7l4 4-4 4v-3H8v-2h4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM600 700V850L800 650L600 450V600H400V700H600z","horizAdvX":"1200"},"chat-heart-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm5.563-4.3l3.359-3.359a2.25 2.25 0 0 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 0 0-3.182 3.182l3.359 3.359z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM600.9000000000001 465L768.85 632.95A112.5 112.5 0 0 1 609.75 792.0500000000001L600.9000000000001 783.2L592.0500000000001 792.0500000000001A112.5 112.5 0 0 1 432.9500000000001 632.95L600.9000000000001 465z","horizAdvX":"1200"},"chat-heart-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zm8.018-3.685L8.659 11.34a2.25 2.25 0 0 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM600.9000000000001 465L432.9500000000001 633A112.5 112.5 0 0 0 592.0500000000001 792.1L600.9000000000001 783.25L609.75 792.1A112.5 112.5 0 0 0 768.85 633L600.85 465.05z","horizAdvX":"1200"},"chat-history-fill":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm1 5h-2v7h6v-2h-4V7z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM650 850H550V500H850V600H650V850z","horizAdvX":"1200"},"chat-history-line":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm1 3v5h4v2h-6V7h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600C200 533.25 216.3 469.1 247 411.7000000000001L264.5 378.9999999999999L231.7 231.6999999999998L379.1 264.3999999999999L411.75 246.9499999999998C469.15 216.2499999999998 533.25 199.9999999999998 600 199.9999999999998C820.9 199.9999999999998 1000 379.0999999999999 1000 599.9999999999998S820.9 999.9999999999998 600 999.9999999999998zM650 850V600H850V500H550V850H650z","horizAdvX":"1200"},"chat-new-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 10H8v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 700H400V600H550V450H650V600H800V700H650V850H550V700z","horizAdvX":"1200"},"chat-new-line":{"path":["M0 0h24v24H0z","M14 3v2H4v13.385L5.763 17H20v-7h2v8a1 1 0 0 1-1 1H6.455L2 22.5V4a1 1 0 0 1 1-1h11zm5 0V0h2v3h3v2h-3v3h-2V5h-3V3h3z"],"unicode":"","glyph":"M700 1050V950H200V280.7500000000001L288.15 350H1000V700H1100V300A50 50 0 0 0 1050 250H322.75L100 75V1000A50 50 0 0 0 150 1050H700zM950 1050V1200H1050V1050H1200V950H1050V800H950V950H800V1050H950z","horizAdvX":"1200"},"chat-off-fill":{"path":["M0 0h24v24H0z","M2.808 1.393l19.799 19.8-1.415 1.414-3.608-3.608L6.455 19 2 22.5V4c0-.17.042-.329.116-.469l-.723-.723 1.415-1.415zM21 3a1 1 0 0 1 1 1v13.785L7.214 3H21z"],"unicode":"","glyph":"M140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L879.1999999999999 250.0499999999999L322.75 250L100 75V1000C100 1008.5 102.1 1016.45 105.8 1023.45L69.65 1059.6L140.4 1130.35zM1050 1050A50 50 0 0 0 1100 1000V310.75L360.7000000000001 1050H1050z","horizAdvX":"1200"},"chat-off-line":{"path":["M0 0h24v24H0z","M2.808 1.393l19.799 19.8-1.415 1.414-3.608-3.608L6.455 19 2 22.5V4c0-.17.042-.329.116-.469l-.723-.723 1.415-1.415zm1.191 4.02L4 18.385 5.763 17h9.821L4 5.412zM21 3a1 1 0 0 1 1 1v13.785l-2-2V5L9.213 4.999 7.214 3H21z"],"unicode":"","glyph":"M140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L879.1999999999999 250.0499999999999L322.75 250L100 75V1000C100 1008.5 102.1 1016.45 105.8 1023.45L69.65 1059.6L140.4 1130.35zM199.95 929.35L200 280.7499999999999L288.15 350H779.1999999999999L200 929.4zM1050 1050A50 50 0 0 0 1100 1000V310.75L1000 410.75V950L460.65 950.05L360.7000000000001 1050H1050z","horizAdvX":"1200"},"chat-poll-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-8 4h-2v8h2V7zm4 2h-2v6h2V9zm-8 2H7v4h2v-4z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM650 850H550V450H650V850zM850 750H750V450H850V750zM450 650H350V450H450V650z","horizAdvX":"1200"},"chat-poll-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-7 2v8h-2V7h2zm4 2v6h-2V9h2zm-8 2v4H7v-4h2z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V280.7500000000001L288.15 350H1000V950zM650 850V450H550V850H650zM850 750V450H750V750H850zM450 650V450H350V650H450z","horizAdvX":"1200"},"chat-private-fill":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 5c-1.598 0-3 1.34-3 3v1H8v5h8v-5h-1v-1c0-1.657-1.343-3-3-3zm2 6v1h-4v-1h4zm-2-4c.476 0 1 .49 1 1v1h-2v-1c0-.51.487-1 1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM600 850C520.0999999999999 850 450 783 450 700V650H400V400H800V650H750V700C750 782.85 682.85 850 600 850zM700 550V500H500V550H700zM600 750C623.8 750 650 725.5 650 700V650H550V700C550 725.5 574.35 750 600 750z","horizAdvX":"1200"},"chat-private-line":{"path":["M0 0L24 0 24 24 0 24z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm0 3c1.657 0 3 1.343 3 3v1h1v5H8v-5h1v-1c0-1.657 1.343-3 3-3zm2 6h-4v1h4v-1zm-2-4c-.552 0-1 .45-1 1v1h2v-1c0-.552-.448-1-1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C514.9 100 434.75 121.25 364.6 158.75L100 100L158.8 364.5C121.3 434.7000000000001 100 514.85 100 600C100 876.15 323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600C200 533.25 216.3 469.1 247 411.7000000000001L264.5 378.9999999999999L231.7 231.6999999999998L379.1 264.3999999999999L411.75 246.9499999999998C469.15 216.2499999999998 533.25 199.9999999999998 600 199.9999999999998C820.9 199.9999999999998 1000 379.0999999999999 1000 599.9999999999998S820.9 999.9999999999998 600 999.9999999999998zM600 850C682.85 850 750 782.85 750 700V650H800V400H400V650H450V700C450 782.85 517.15 850 600 850zM700 550H500V500H700V550zM600 750C572.4 750 550 727.5 550 700V650H650V700C650 727.5999999999999 627.6 750 600 750z","horizAdvX":"1200"},"chat-quote-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zM10.962 8.1l-.447-.688C8.728 8.187 7.5 9.755 7.5 11.505c0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01v-.092c.006-.422.092-1.633 1.454-2.466l.185-.107-.447-.688zm4.553-.688c-1.787.775-3.015 2.343-3.015 4.093 0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01 0-.313-.029-1.762 1.639-2.665z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM548.1 795L525.75 829.4C436.4 790.6500000000001 375 712.25 375 624.75C375 575 388.85 544.3 414.6 516.9499999999999C430.8 499.75 456.45 487.4999999999999 483.3 487.4999999999999C531.6 487.4999999999999 570.8000000000001 526.6999999999999 570.8000000000001 574.9999999999999C570.8000000000001 620.9999999999999 535.25 658.0499999999998 490.1 662.2499999999999C482.1 662.9999999999999 473.9 662.8499999999999 466.15 661.7499999999999V666.3499999999999C466.45 687.4499999999999 470.7500000000001 747.9999999999999 538.85 789.65L548.1 795L525.7500000000001 829.3999999999999zM775.75 829.4C686.4000000000001 790.6500000000001 625 712.25 625 624.75C625 575.0000000000001 638.8499999999999 544.3000000000001 664.6 516.95C680.8 499.75 706.4499999999999 487.5 733.3000000000001 487.5C781.6 487.5 820.8000000000001 526.7 820.8000000000001 575C820.8000000000001 621 785.25 658.05 740.1 662.25C732.1 663.0000000000001 723.9 662.85 716.15 661.7500000000001C716.15 677.4000000000001 714.7 749.8500000000001 798.1 795.0000000000001z","horizAdvX":"1200"},"chat-quote-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-9.485 2.412l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093zm5 0l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V300C1100 272.4 1077.6 250 1050 250H322.75L100 75V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V280.7500000000001L288.15 350H1000V950zM525.75 829.4L548.1 795C464.7 749.85 466.15 677.4 466.15 661.8000000000001C473.9 662.8 482.05 663 490.15 662.25C535.25 658.0500000000001 570.8000000000001 621.0000000000001 570.8000000000001 575C570.8000000000001 526.7 531.6 487.5 483.3 487.5C456.45 487.5 430.8 499.75 414.6 517C388.85 544.3 375 575 375 624.75C375 712.25 436.4 790.6499999999999 525.75 829.4zM775.75 829.4L798.1 795C714.7 749.85 716.15 677.4 716.15 661.8000000000001C723.9 662.8 732.05 663 740.1500000000001 662.25C785.25 658.0500000000001 820.8000000000001 621.0000000000001 820.8000000000001 575C820.8000000000001 526.7 781.6 487.5 733.3000000000001 487.5C706.4499999999999 487.5 680.8 499.75 664.6 517C638.8499999999999 544.3 625 575 625 624.75C625 712.25 686.4 790.6499999999999 775.75 829.4z","horizAdvX":"1200"},"chat-settings-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm1.69-6.929l-.975.563 1 1.732.976-.563c.501.51 1.14.887 1.854 1.071V16h2v-1.126a3.996 3.996 0 0 0 1.854-1.071l.976.563 1-1.732-.975-.563a4.004 4.004 0 0 0 0-2.142l.975-.563-1-1.732-.976.563A3.996 3.996 0 0 0 13 7.126V6h-2v1.126a3.996 3.996 0 0 0-1.854 1.071l-.976-.563-1 1.732.975.563a4.004 4.004 0 0 0 0 2.142zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM407.25 596.45L358.5 568.3L408.5 481.7L457.3000000000001 509.85C482.35 484.35 514.3000000000001 465.5 550 456.3000000000001V400H650V456.3A199.8 199.8 0 0 1 742.6999999999999 509.8499999999999L791.4999999999999 481.6999999999999L841.4999999999999 568.2999999999998L792.7499999999999 596.4499999999999A200.2 200.2 0 0 1 792.7499999999999 703.55L841.4999999999999 731.6999999999999L791.4999999999999 818.3L742.6999999999999 790.15A199.8 199.8 0 0 1 650 843.7V900H550V843.7A199.8 199.8 0 0 1 457.3000000000001 790.1500000000001L408.5000000000001 818.3L358.5000000000001 731.7L407.2500000000001 703.55A200.2 200.2 0 0 1 407.2500000000001 596.45zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"chat-settings-line":{"path":["M0 0h24v24H0z","M22 12h-2V5H4v13.385L5.763 17H12v2H6.455L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8zm-7.855 7.071a4.004 4.004 0 0 1 0-2.142l-.975-.563 1-1.732.976.563A3.996 3.996 0 0 1 17 14.126V13h2v1.126c.715.184 1.353.56 1.854 1.071l.976-.563 1 1.732-.975.563a4.004 4.004 0 0 1 0 2.142l.975.563-1 1.732-.976-.563c-.501.51-1.14.887-1.854 1.071V23h-2v-1.126a3.996 3.996 0 0 1-1.854-1.071l-.976.563-1-1.732.975-.563zM18 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M1100 600H1000V950H200V280.7500000000001L288.15 350H600V250H322.75L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V600zM707.25 246.4500000000001A200.2 200.2 0 0 0 707.25 353.5500000000001L658.5 381.7000000000001L708.5 468.3L757.3000000000001 440.15A199.8 199.8 0 0 0 850 493.7V550H950V493.7C985.75 484.5000000000001 1017.65 465.7 1042.7 440.1500000000001L1091.5 468.3000000000001L1141.5 381.7000000000001L1092.7499999999998 353.5500000000001A200.2 200.2 0 0 0 1092.7499999999998 246.4500000000001L1141.5 218.3000000000002L1091.5 131.7000000000003L1042.7 159.8500000000001C1017.6499999999997 134.3500000000001 985.7 115.5 950 106.3V50H850V106.3A199.8 199.8 0 0 0 757.3000000000001 159.8500000000001L708.5000000000001 131.7000000000003L658.5000000000001 218.3000000000002L707.2500000000001 246.4500000000001zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"chat-smile-2-fill":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8zM350 600A250 250 0 0 1 850 600H750A150 150 0 0 0 450 600H350z","horizAdvX":"1200"},"chat-smile-2-line":{"path":["M0 0h24v24H0z","M7.291 20.824L2 22l1.176-5.291A9.956 9.956 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.956 9.956 0 0 1-4.709-1.176zm.29-2.113l.653.35A7.955 7.955 0 0 0 12 20a8 8 0 1 0-8-8c0 1.334.325 2.618.94 3.766l.349.653-.655 2.947 2.947-.655zM7 12h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M364.55 158.8L100 100L158.8 364.5500000000001A497.8 497.8 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.8 497.8 0 0 0 364.55 158.8zM379.05 264.45L411.7 246.9499999999998A397.75 397.75 0 0 1 600 200A400 400 0 1 1 200 600C200 533.3000000000001 216.25 469.1 247 411.7000000000001L264.45 379.05L231.7 231.7000000000001L379.05 264.4500000000001zM350 600H450A150 150 0 0 1 750 600H850A250 250 0 0 0 350 600z","horizAdvX":"1200"},"chat-smile-3-fill":{"path":["M0 0h24v24H0z","M4.929 19.071A9.969 9.969 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929zM8 13a4 4 0 1 0 8 0H8z"],"unicode":"","glyph":"M246.45 246.45A498.45 498.45 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45zM400 550A200 200 0 1 1 800 550H400z","horizAdvX":"1200"},"chat-smile-3-line":{"path":["M0 0h24v24H0z","M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929A9.969 9.969 0 0 1 2 12zm4.828 8H12a8 8 0 1 0-8-8c0 2.152.851 4.165 2.343 5.657l1.414 1.414-.929.929zM8 13h8a4 4 0 1 1-8 0z"],"unicode":"","glyph":"M100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45A498.45 498.45 0 0 0 100 600zM341.4000000000001 200H600A400 400 0 1 1 200 600C200 492.4 242.55 391.75 317.15 317.15L387.85 246.45L341.4 200zM400 550H800A200 200 0 1 0 400 550z","horizAdvX":"1200"},"chat-smile-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM7 10a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM350 700A250 250 0 0 1 850 700H750A150 150 0 0 0 450 700H350z","horizAdvX":"1200"},"chat-smile-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM7 10h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM350 700H450A150 150 0 0 1 750 700H850A250 250 0 0 0 350 700z","horizAdvX":"1200"},"chat-upload-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM13 11h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM650 650H800L600 850L400 650H550V450H650V650z","horizAdvX":"1200"},"chat-upload-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM13 11v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM650 650V450H550V650H400L600 850L800 650H650z","horizAdvX":"1200"},"chat-voice-fill":{"path":["M0 0h24v24H0z","M4.929 19.071A9.969 9.969 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929zM11 6v12h2V6h-2zM7 9v6h2V9H7zm8 0v6h2V9h-2z"],"unicode":"","glyph":"M246.45 246.45A498.45 498.45 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45zM550 900V300H650V900H550zM350 750V450H450V750H350zM750 750V450H850V750H750z","horizAdvX":"1200"},"chat-voice-line":{"path":["M0 0h24v24H0z","M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10H2l2.929-2.929A9.969 9.969 0 0 1 2 12zm4.828 8H12a8 8 0 1 0-8-8c0 2.152.851 4.165 2.343 5.657l1.414 1.414-.929.929zM11 6h2v12h-2V6zM7 9h2v6H7V9zm8 0h2v6h-2V9z"],"unicode":"","glyph":"M100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100H100L246.45 246.45A498.45 498.45 0 0 0 100 600zM341.4000000000001 200H600A400 400 0 1 1 200 600C200 492.4 242.55 391.75 317.15 317.15L387.85 246.45L341.4 200zM550 900H650V300H550V900zM350 750H450V450H350V750zM750 750H850V450H750V750z","horizAdvX":"1200"},"check-double-fill":{"path":["M0 0h24v24H0z","M11.602 13.76l1.412 1.412 8.466-8.466 1.414 1.414-9.88 9.88-6.364-6.364 1.414-1.414 2.125 2.125 1.413 1.412zm.002-2.828l4.952-4.953 1.41 1.41-4.952 4.953-1.41-1.41zm-2.827 5.655L7.364 18 1 11.636l1.414-1.414 1.413 1.413-.001.001 4.951 4.951z"],"unicode":"","glyph":"M580.1 512L650.6999999999999 441.4L1073.9999999999998 864.6999999999999L1144.6999999999998 794L650.6999999999999 300L332.4999999999999 618.2L403.2 688.9000000000001L509.4499999999999 582.65L580.0999999999999 512.05zM580.2 653.4L827.8000000000001 901.05L898.3000000000001 830.55L650.7 582.9L580.2 653.4zM438.85 370.65L368.2 300L50 618.2L120.7 688.9000000000001L191.35 618.25L191.3 618.2L438.85 370.65z","horizAdvX":"1200"},"check-double-line":{"path":["M0 0h24v24H0z","M11.602 13.76l1.412 1.412 8.466-8.466 1.414 1.414-9.88 9.88-6.364-6.364 1.414-1.414 2.125 2.125 1.413 1.412zm.002-2.828l4.952-4.953 1.41 1.41-4.952 4.953-1.41-1.41zm-2.827 5.655L7.364 18 1 11.636l1.414-1.414 1.413 1.413-.001.001 4.951 4.951z"],"unicode":"","glyph":"M580.1 512L650.6999999999999 441.4L1073.9999999999998 864.6999999999999L1144.6999999999998 794L650.6999999999999 300L332.4999999999999 618.2L403.2 688.9000000000001L509.4499999999999 582.65L580.0999999999999 512.05zM580.2 653.4L827.8000000000001 901.05L898.3000000000001 830.55L650.7 582.9L580.2 653.4zM438.85 370.65L368.2 300L50 618.2L120.7 688.9000000000001L191.35 618.25L191.3 618.2L438.85 370.65z","horizAdvX":"1200"},"check-fill":{"path":["M0 0h24v24H0z","M10 15.172l9.192-9.193 1.415 1.414L10 18l-6.364-6.364 1.414-1.414z"],"unicode":"","glyph":"M500 441.4L959.6 901.05L1030.35 830.3499999999999L500 300L181.8 618.2L252.5 688.9000000000001z","horizAdvX":"1200"},"check-line":{"path":["M0 0h24v24H0z","M10 15.172l9.192-9.193 1.415 1.414L10 18l-6.364-6.364 1.414-1.414z"],"unicode":"","glyph":"M500 441.4L959.6 901.05L1030.35 830.3499999999999L500 300L181.8 618.2L252.5 688.9000000000001z","horizAdvX":"1200"},"checkbox-blank-circle-fill":{"path":["M0 0h24v24H0z"],"unicode":"","glyph":"M100 600A500 500 0 0 1 1100 600A500 500 0 0 1 100 600","horizAdvX":"1200"},"checkbox-blank-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200z","horizAdvX":"1200"},"checkbox-blank-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"checkbox-blank-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250z","horizAdvX":"1200"},"checkbox-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-.997-6l7.07-7.071-1.414-1.414-5.656 5.657-2.829-2.829-1.414 1.414L11.003 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550.15 400L903.65 753.55L832.9499999999999 824.25L550.15 541.4L408.7 682.85L338 612.15L550.15 400z","horizAdvX":"1200"},"checkbox-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-.997-4L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550.15 400L338 612.15L408.7 682.85L550.15 541.4L832.9499999999999 824.25L903.7 753.55L550.15 400z","horizAdvX":"1200"},"checkbox-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7.003 13l7.07-7.071-1.414-1.414-5.656 5.657-2.829-2.829-1.414 1.414L11.003 16z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550.15 400L903.65 753.55L832.9499999999999 824.25L550.15 541.4L408.7 682.85L338 612.15L550.15 400z","horizAdvX":"1200"},"checkbox-indeterminate-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 8v2h10v-2H7z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM350 650V550H850V650H350z","horizAdvX":"1200"},"checkbox-indeterminate-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm2 6h10v2H7v-2z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM350 650H850V550H350V650z","horizAdvX":"1200"},"checkbox-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM550.15 400L338 612.15L408.7 682.85L550.15 541.4L832.9499999999999 824.25L903.7 753.55L550.15 400z","horizAdvX":"1200"},"checkbox-multiple-blank-fill":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850z","horizAdvX":"1200"},"checkbox-multiple-blank-line":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3zM4.003 9L4 20h11V9H4.003z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850zM200.15 750L200 200H750V750H200.15z","horizAdvX":"1200"},"checkbox-multiple-fill":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3zm-.497 11l5.656-5.657-1.414-1.414-4.242 4.243L6.38 13.05l-1.414 1.414L8.503 18z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850zM425.15 300L707.9499999999999 582.85L637.25 653.55L425.15 441.4L319 547.5L248.3 476.8L425.15 300z","horizAdvX":"1200"},"checkbox-multiple-line":{"path":["M0 0h24v24H0z","M7 7V3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4v3.993c0 .556-.449 1.007-1.007 1.007H3.007A1.006 1.006 0 0 1 2 20.993l.003-12.986C2.003 7.451 2.452 7 3.01 7H7zm2 0h6.993C16.549 7 17 7.449 17 8.007V15h3V4H9v3zm6 2H4.003L4 20h11V9zm-6.497 9l-3.536-3.536 1.414-1.414 2.122 2.122 4.242-4.243 1.414 1.414L8.503 18z"],"unicode":"","glyph":"M350 850V1050A50 50 0 0 0 400 1100H1050A50 50 0 0 0 1100 1050V400A50 50 0 0 0 1050 350H850V150.3500000000001C850 122.55 827.55 100 799.65 100H150.35A50.3 50.3 0 0 0 100 150.3500000000001L100.15 799.6500000000001C100.15 827.45 122.6 850 150.5 850H350zM450 850H799.65C827.4499999999999 850 850 827.55 850 799.6500000000001V450H1000V1000H450V850zM750 750H200.15L200 200H750V750zM425.15 300L248.35 476.8L319.05 547.5L425.15 441.4L637.25 653.55L707.95 582.85L425.15 300z","horizAdvX":"1200"},"china-railway-fill":{"path":["M0 0h24v24H0z","M11 19v-6l-2-1V9h6v3l-2 1v6l5 1v2H6v-2l5-1zM10 2.223V1h4v1.223a9.003 9.003 0 0 1 2.993 16.266l-1.11-1.664a7 7 0 1 0-7.767 0l-1.109 1.664A9.003 9.003 0 0 1 10 2.223z"],"unicode":"","glyph":"M550 250V550L450 600V750H750V600L650 550V250L900 200V100H300V200L550 250zM500 1088.85V1150H700V1088.85A450.15 450.15 0 0 0 849.65 275.5500000000002L794.15 358.7500000000003A350 350 0 1 1 405.8 358.7500000000003L350.35 275.5500000000002A450.15 450.15 0 0 0 500 1088.85z","horizAdvX":"1200"},"china-railway-line":{"path":["M0 0h24v24H0z","M11 20v-7H9v-3h6v3h-2v7h5v2H6v-2h5zM10 2.223V1h4v1.223a9.003 9.003 0 0 1 2.993 16.266l-1.11-1.664a7 7 0 1 0-7.767 0l-1.109 1.664A9.003 9.003 0 0 1 10 2.223z"],"unicode":"","glyph":"M550 200V550H450V700H750V550H650V200H900V100H300V200H550zM500 1088.85V1150H700V1088.85A450.15 450.15 0 0 0 849.65 275.5500000000002L794.15 358.7500000000003A350 350 0 1 1 405.8 358.7500000000003L350.35 275.5500000000002A450.15 450.15 0 0 0 500 1088.85z","horizAdvX":"1200"},"chrome-fill":{"path":["M0 0h24v24H0z","M9.827 21.763C5.35 20.771 2 16.777 2 12c0-1.822.487-3.53 1.339-5.002l4.283 7.419a4.999 4.999 0 0 0 4.976 2.548l-2.77 4.798zM12 22l4.287-7.425A4.977 4.977 0 0 0 17 12a4.978 4.978 0 0 0-1-3h5.542c.298.947.458 1.955.458 3 0 5.523-4.477 10-10 10zm2.572-8.455a2.999 2.999 0 0 1-5.17-.045l-.029-.05a3 3 0 1 1 5.225.05l-.026.045zm-9.94-8.306A9.974 9.974 0 0 1 12 2a9.996 9.996 0 0 1 8.662 5H12a5.001 5.001 0 0 0-4.599 3.035L4.632 5.239z"],"unicode":"","glyph":"M491.35 111.8499999999999C267.5 161.4500000000001 100 361.15 100 600C100 691.0999999999999 124.35 776.5 166.95 850.0999999999999L381.1 479.15A249.94999999999996 249.94999999999996 0 0 1 629.9 351.75L491.4 111.8500000000001zM600 100L814.3499999999999 471.25A248.85000000000005 248.85000000000005 0 0 1 850 600A248.9 248.9 0 0 1 800 750H1077.1000000000001C1092 702.6500000000001 1100 652.25 1100 600C1100 323.85 876.15 100 600 100zM728.5999999999999 522.75A149.95000000000002 149.95000000000002 0 0 0 470.1 525L468.65 527.5A150 150 0 1 0 729.9 525L728.5999999999999 522.75zM231.6 938.05A498.69999999999993 498.69999999999993 0 0 0 600 1100A499.8 499.8 0 0 0 1033.1 850H600A250.05000000000004 250.05000000000004 0 0 1 370.05 698.25L231.6 938.05z","horizAdvX":"1200"},"chrome-line":{"path":["M0 0h24v24H0z","M10.365 19.833l1.93-3.342a4.499 4.499 0 0 1-4.234-2.315L4.794 8.52a8.003 8.003 0 0 0 5.57 11.313zm2.225.146A8 8 0 0 0 19.602 9.5h-3.86A4.48 4.48 0 0 1 16.5 12a4.48 4.48 0 0 1-.642 2.318l-3.268 5.66zm1.553-6.691l.022-.038a2.5 2.5 0 1 0-4.354-.042l.024.042a2.499 2.499 0 0 0 4.308.038zm-8.108-6.62l1.929 3.34A4.5 4.5 0 0 1 12 7.5h6.615A7.992 7.992 0 0 0 12 4a7.98 7.98 0 0 0-5.965 2.669zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M518.25 208.3500000000001L614.75 375.4500000000001A224.94999999999996 224.94999999999996 0 0 0 403.05 491.2L239.7 774A400.15000000000003 400.15000000000003 0 0 1 518.2 208.3500000000001zM629.5 201.0500000000001A400 400 0 0 1 980.1 725H787.1A224.00000000000003 224.00000000000003 0 0 0 825 600A224.00000000000003 224.00000000000003 0 0 0 792.9 484.1L629.5 201.0999999999999zM707.1500000000001 535.6L708.25 537.5A125 125 0 1 1 490.55 539.6L491.7499999999999 537.5A124.95 124.95 0 0 1 707.15 535.6zM301.75 866.5999999999999L398.2000000000001 699.6A225 225 0 0 0 600 825H930.7500000000002A399.6 399.6 0 0 1 600 1000A399 399 0 0 1 301.75 866.55zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"clapperboard-fill":{"path":["M0 0h24v24H0z","M17.998 7l2.31-4h.7c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h3.006l-2.31 4h2.31l2.31-4h3.69l-2.31 4h2.31l2.31-4h3.69l-2.31 4h2.31z"],"unicode":"","glyph":"M899.9000000000001 850L1015.4 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H299.9L184.4 850H299.9L415.4 1050H599.9L484.3999999999999 850H599.9L715.4 1050H899.9000000000001L784.4 850H899.9000000000001z","horizAdvX":"1200"},"clapperboard-line":{"path":["M0 0h24v24H0z","M5.998 7l2.31-4h3.69l-2.31 4h-3.69zm6 0l2.31-4h3.69l-2.31 4h-3.69zm6 0l2.31-4h.7c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h3.006L4 6.46V19h16V7h-2.002z"],"unicode":"","glyph":"M299.9000000000001 850L415.4 1050H599.9L484.3999999999999 850H299.9zM599.9000000000001 850L715.4000000000001 1050H899.9000000000001L784.4 850H599.9000000000001zM899.9000000000001 850L1015.4 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H299.9L200 877V250H1000V850H899.9000000000001z","horizAdvX":"1200"},"clipboard-fill":{"path":["M0 0h24v24H0z","M6 4v4h12V4h2.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H6zm2-2h8v4H8V2z"],"unicode":"","glyph":"M300 1000V800H900V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001A49.7 49.7 0 0 0 1000.35 100.0000000000002H199.65A49.7 49.7 0 0 0 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H300zM400 1100H800V900H400V1100z","horizAdvX":"1200"},"clipboard-line":{"path":["M0 0h24v24H0z","M7 4V2h10v2h3.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4H7zm0 2H5v14h14V6h-2v2H7V6zm2-2v2h6V4H9z"],"unicode":"","glyph":"M350 1000V1100H850V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001A49.7 49.7 0 0 0 1000.35 100.0000000000002H199.65A49.7 49.7 0 0 0 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H350zM350 900H250V200H950V900H850V800H350V900zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"clockwise-2-fill":{"path":["M0 0h24v24H0z","M10 4V1l5 4-5 4V6H8a3 3 0 0 0-3 3v4H3V9a5 5 0 0 1 5-5h2zm-1 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H10a1 1 0 0 1-1-1V11z"],"unicode":"","glyph":"M500 1000V1150L750 950L500 750V900H400A150 150 0 0 1 250 750V550H150V750A250 250 0 0 0 400 1000H500zM450 650A50 50 0 0 0 500 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H500A50 50 0 0 0 450 150V650z","horizAdvX":"1200"},"clockwise-2-line":{"path":["M0 0h24v24H0z","M10.586 4L8.757 2.172 10.172.757 14.414 5l-4.242 4.243-1.415-1.415L10.586 6H8a3 3 0 0 0-3 3v4H3V9a5 5 0 0 1 5-5h2.586zM9 11a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H10a1 1 0 0 1-1-1V11zm2 1v8h8v-8h-8z"],"unicode":"","glyph":"M529.3000000000001 1000L437.85 1091.4L508.6 1162.15L720.6999999999999 950L508.6 737.8499999999999L437.8500000000001 808.5999999999999L529.3000000000001 900H400A150 150 0 0 1 250 750V550H150V750A250 250 0 0 0 400 1000H529.3000000000001zM450 650A50 50 0 0 0 500 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H500A50 50 0 0 0 450 150V650zM550 600V200H950V600H550z","horizAdvX":"1200"},"clockwise-fill":{"path":["M0 0h24v24H0z","M20 10h3l-4 5-4-5h3V8a3 3 0 0 0-3-3h-4V3h4a5 5 0 0 1 5 5v2zm-7-1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h10z"],"unicode":"","glyph":"M1000 700H1150L950 450L750 700H900V800A150 150 0 0 1 750 950H550V1050H750A250 250 0 0 0 1000 800V700zM650 750A50 50 0 0 0 700 700V200A50 50 0 0 0 650 150H150A50 50 0 0 0 100 200V700A50 50 0 0 0 150 750H650z","horizAdvX":"1200"},"clockwise-line":{"path":["M0 0h24v24H0z","M20 10.586l1.828-1.829 1.415 1.415L19 14.414l-4.243-4.242 1.415-1.415L18 10.586V8a3 3 0 0 0-3-3h-4V3h4a5 5 0 0 1 5 5v2.586zM13 9a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h10zm-1 2H4v8h8v-8z"],"unicode":"","glyph":"M1000 670.6999999999999L1091.3999999999999 762.1500000000001L1162.1499999999999 691.4L950 479.3000000000001L737.85 691.4L808.6 762.1499999999999L900 670.6999999999999V800A150 150 0 0 1 750 950H550V1050H750A250 250 0 0 0 1000 800V670.6999999999999zM650 750A50 50 0 0 0 700 700V200A50 50 0 0 0 650 150H150A50 50 0 0 0 100 200V700A50 50 0 0 0 150 750H650zM600 650H200V250H600V650z","horizAdvX":"1200"},"close-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415L12 10.586z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 670.6999999999999L458.6 812.1500000000001L387.85 741.4L529.3000000000001 600L387.85 458.6L458.6 387.85L600 529.3000000000001L741.4 387.85L812.15 458.6L670.6999999999999 600L812.15 741.4L741.4 812.15L600 670.6999999999999z","horizAdvX":"1200"},"close-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-9.414l2.828-2.829 1.415 1.415L13.414 12l2.829 2.828-1.415 1.415L12 13.414l-2.828 2.829-1.415-1.415L10.586 12 7.757 9.172l1.415-1.415L12 10.586z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 670.6999999999999L741.4 812.1500000000001L812.15 741.4L670.6999999999999 600L812.15 458.6L741.4 387.85L600 529.3000000000001L458.6 387.85L387.85 458.6L529.3000000000001 600L387.85 741.4L458.6 812.15L600 670.6999999999999z","horizAdvX":"1200"},"close-fill":{"path":["M0 0h24v24H0z","M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"],"unicode":"","glyph":"M600 670.6999999999999L847.5 918.2L918.2 847.5L670.7 600L918.2 352.5L847.5 281.8L600 529.3L352.5 281.8L281.8 352.5L529.3000000000001 600L281.8 847.5L352.5 918.2z","horizAdvX":"1200"},"close-line":{"path":["M0 0h24v24H0z","M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"],"unicode":"","glyph":"M600 670.6999999999999L847.5 918.2L918.2 847.5L670.7 600L918.2 352.5L847.5 281.8L600 529.3L352.5 281.8L281.8 352.5L529.3000000000001 600L281.8 847.5L352.5 918.2z","horizAdvX":"1200"},"closed-captioning-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zM9 8c-2.208 0-4 1.792-4 4s1.792 4 4 4c1.1 0 2.1-.45 2.828-1.172l-1.414-1.414C10.053 13.776 9.553 14 9 14c-1.105 0-2-.895-2-2s.895-2 2-2c.55 0 1.048.22 1.415.587l1.414-1.414C11.105 8.448 10.105 8 9 8zm7 0c-2.208 0-4 1.792-4 4s1.792 4 4 4c1.104 0 2.104-.448 2.828-1.172l-1.414-1.414c-.362.362-.862.586-1.414.586-1.105 0-2-.895-2-2s.895-2 2-2c.553 0 1.053.224 1.415.587l1.414-1.414C18.105 8.448 17.105 8 16 8z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM450 800C339.6 800 250 710.4000000000001 250 600S339.6 400 450 400C505 400 555 422.5 591.4 458.6L520.6999999999999 529.3000000000001C502.65 511.2 477.65 500 450 500C394.75 500 350 544.75 350 600S394.75 700 450 700C477.5000000000001 700 502.4 689 520.75 670.65L591.4499999999999 741.35C555.25 777.5999999999999 505.25 800 450 800zM800 800C689.6 800 600 710.4000000000001 600 600S689.6 400 800 400C855.1999999999999 400 905.2 422.4 941.4 458.6L870.6999999999999 529.3000000000001C852.6 511.2 827.6 500 799.9999999999999 500C744.7499999999999 500 699.9999999999999 544.75 699.9999999999999 600S744.7499999999999 700 799.9999999999999 700C827.6499999999999 700 852.6499999999999 688.8 870.75 670.65L941.45 741.35C905.25 777.5999999999999 855.25 800 800 800z","horizAdvX":"1200"},"closed-captioning-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zm-1 2H4v14h16V5zM9 8c1.105 0 2.105.448 2.829 1.173l-1.414 1.414C10.053 10.224 9.553 10 9 10c-1.105 0-2 .895-2 2s.895 2 2 2c.553 0 1.053-.224 1.414-.586l1.414 1.414C11.104 15.552 10.104 16 9 16c-2.208 0-4-1.792-4-4s1.792-4 4-4zm7 0c1.105 0 2.105.448 2.829 1.173l-1.414 1.414C17.053 10.224 16.553 10 16 10c-1.105 0-2 .895-2 2s.895 2 2 2c.552 0 1.052-.224 1.414-.586l1.414 1.414C18.104 15.552 17.104 16 16 16c-2.208 0-4-1.792-4-4s1.792-4 4-4z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H200V250H1000V950zM450 800C505.25 800 555.25 777.5999999999999 591.45 741.35L520.75 670.65C502.65 688.8 477.65 700 450 700C394.75 700 350 655.25 350 600S394.75 500 450 500C477.65 500 502.65 511.2 520.6999999999999 529.3000000000001L591.4 458.6C555.1999999999999 422.4 505.1999999999999 400 450 400C339.6 400 250 489.6 250 600S339.6 800 450 800zM800 800C855.25 800 905.25 777.5999999999999 941.45 741.35L870.75 670.65C852.6500000000001 688.8 827.6500000000001 700 800 700C744.75 700 700 655.25 700 600S744.75 500 800 500C827.6 500 852.6 511.2 870.7 529.3000000000001L941.4 458.6C905.2 422.4 855.1999999999999 400 800 400C689.6 400 600 489.6 600 600S689.6 800 800 800z","horizAdvX":"1200"},"cloud-fill":{"path":["M0 0h24v24H0z","M17 7a8.003 8.003 0 0 0-7.493 5.19l1.874.703A6.002 6.002 0 0 1 23 15a6 6 0 0 1-6 6H7A6 6 0 0 1 5.008 9.339a7 7 0 0 1 13.757-2.143A8.027 8.027 0 0 0 17 7z"],"unicode":"","glyph":"M850 850A400.15000000000003 400.15000000000003 0 0 1 475.35 590.4999999999999L569.05 555.3499999999999A300.09999999999997 300.09999999999997 0 0 0 1150 450A300 300 0 0 0 850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 0 0 938.25 840.2A401.34999999999997 401.34999999999997 0 0 1 850 850z","horizAdvX":"1200"},"cloud-line":{"path":["M0 0h24v24H0z","M17 21H7A6 6 0 0 1 5.008 9.339a7 7 0 1 1 13.984 0A6 6 0 0 1 17 21zm0-12a5 5 0 1 0-9.994.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10a4 4 0 1 0-3.796-5.265l-1.898-.633A6.003 6.003 0 0 1 17 9z"],"unicode":"","glyph":"M850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 1 0 949.6 733.05A300 300 0 0 0 850 150zM850 750A250 250 0 1 1 350.3 737.8499999999999L353.8 663.45L283.6 638.75A200.10000000000002 200.10000000000002 0 0 1 350 250H850A200 200 0 1 1 660.2 513.25L565.3000000000001 544.9A300.15000000000003 300.15000000000003 0 0 0 850 750z","horizAdvX":"1200"},"cloud-off-fill":{"path":["M0 0h24v24H0z","M3.515 2.1l19.092 19.092-1.415 1.415-2.014-2.015A5.985 5.985 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339a6.992 6.992 0 0 1 .353-2.563L2.1 3.514 3.515 2.1zM17 9a6.003 6.003 0 0 1 5.204 8.989L14.01 9.796C14.89 9.29 15.91 9 17 9zm-5-7a7.003 7.003 0 0 1 6.765 5.195 8.027 8.027 0 0 0-6.206 1.15L7.694 3.48A6.97 6.97 0 0 1 12 2z"],"unicode":"","glyph":"M175.75 1095L1130.35 140.4000000000001L1059.6 69.6500000000001L958.9 170.4000000000001A299.25 299.25 0 0 0 850 150H350A300 300 0 0 0 250.4 733.05A349.6 349.6 0 0 0 268.05 861.2L105 1024.3L175.75 1095zM850 750A300.15000000000003 300.15000000000003 0 0 0 1110.2 300.55L700.5 710.2C744.5 735.5 795.5 750 850 750zM600 1100A350.15 350.15 0 0 0 938.25 840.25A401.34999999999997 401.34999999999997 0 0 1 627.95 782.75L384.7 1026A348.5 348.5 0 0 0 600 1100z","horizAdvX":"1200"},"cloud-off-line":{"path":["M0 0h24v24H0z","M3.515 2.1l19.092 19.092-1.415 1.415-2.014-2.015A5.985 5.985 0 0 1 17 21H7A6 6 0 0 1 5.008 9.339a6.992 6.992 0 0 1 .353-2.563L2.1 3.514 3.515 2.1zM7 9c0 .081.002.163.006.243l.07 1.488-1.404.494A4.002 4.002 0 0 0 7 19h10c.186 0 .369-.013.548-.037L7.03 8.445C7.01 8.627 7 8.812 7 9zm5-7a7 7 0 0 1 6.992 7.339 6.003 6.003 0 0 1 3.212 8.65l-1.493-1.493a3.999 3.999 0 0 0-5.207-5.206L14.01 9.795C14.891 9.29 15.911 9 17 9a5 5 0 0 0-7.876-4.09l-1.43-1.43A6.97 6.97 0 0 1 12 2z"],"unicode":"","glyph":"M175.75 1095L1130.35 140.4000000000001L1059.6 69.6500000000001L958.9 170.4000000000001A299.25 299.25 0 0 0 850 150H350A300 300 0 0 0 250.4 733.05A349.6 349.6 0 0 0 268.05 861.2L105 1024.3L175.75 1095zM350 750C350 745.95 350.1 741.8499999999999 350.3 737.8499999999999L353.8 663.45L283.6 638.75A200.10000000000002 200.10000000000002 0 0 1 350 250H850C859.3 250 868.45 250.6500000000001 877.4000000000001 251.8499999999999L351.5 777.75C350.5 768.65 350 759.4000000000001 350 750zM600 1100A350 350 0 0 0 949.6 733.05A300.15000000000003 300.15000000000003 0 0 0 1110.2 300.55L1035.5500000000002 375.2A199.95000000000002 199.95000000000002 0 0 1 775.2 635.4999999999999L700.5 710.25C744.55 735.5 795.55 750 850 750A250 250 0 0 1 456.1999999999999 954.5L384.7 1026A348.5 348.5 0 0 0 600 1100z","horizAdvX":"1200"},"cloud-windy-fill":{"path":["M0 0h24v24H0z","M14 18v-3.993H2.074a8 8 0 0 1 14.383-6.908A5.5 5.5 0 1 1 17.5 18h-3.499zm-8 2h10v2H6v-2zm-4-4h10v2H2v-2z"],"unicode":"","glyph":"M700 300V499.65H103.7A400 400 0 0 0 822.85 845.05A275 275 0 1 0 875 300H700.05zM300 200H800V100H300V200zM100 400H600V300H100V400z","horizAdvX":"1200"},"cloud-windy-line":{"path":["M0 0h24v24H0z","M14 18v-2h3.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-12 0v.007H1V10a8 8 0 0 1 15.458-2.901A5.5 5.5 0 1 1 17.5 18H14zm-8 2h10v2H6v-2zm0-8h8v2H6v-2zm-4 4h10v2H2v-2z"],"unicode":"","glyph":"M700 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 150 700V699.6500000000001H50V700A400 400 0 0 0 822.8999999999999 845.05A275 275 0 1 0 875 300H700zM300 200H800V100H300V200zM300 600H700V500H300V600zM100 400H600V300H100V400z","horizAdvX":"1200"},"cloudy-2-fill":{"path":["M0 0h24v24H0z","M17 21H7A6 6 0 0 1 5.008 9.339a7 7 0 1 1 13.984 0A6 6 0 0 1 17 21z"],"unicode":"","glyph":"M850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 1 0 949.6 733.05A300 300 0 0 0 850 150z","horizAdvX":"1200"},"cloudy-2-line":{"path":["M0 0h24v24H0z","M17 21H7A6 6 0 0 1 5.008 9.339a7 7 0 1 1 13.984 0A6 6 0 0 1 17 21zM7 19h10a4 4 0 1 0-.426-7.978 5 5 0 1 0-9.148 0A4 4 0 1 0 7 19z"],"unicode":"","glyph":"M850 150H350A300 300 0 0 0 250.4 733.05A350 350 0 1 0 949.6 733.05A300 300 0 0 0 850 150zM350 250H850A200 200 0 1 1 828.7 648.9A250 250 0 1 1 371.3000000000001 648.9A200 200 0 1 1 350 250z","horizAdvX":"1200"},"cloudy-fill":{"path":["M0 0h24v24H0z","M9 20.986a8.5 8.5 0 1 1 7.715-12.983A6.5 6.5 0 0 1 17 20.981V21H9v-.014z"],"unicode":"","glyph":"M450 150.7000000000001A424.99999999999994 424.99999999999994 0 1 0 835.75 799.85A325 325 0 0 0 850 150.9499999999998V150H450V150.7000000000001z","horizAdvX":"1200"},"cloudy-line":{"path":["M0 0h24v24H0z","M9.5 6a6.5 6.5 0 0 0 0 13h7a4.5 4.5 0 1 0-.957-8.898A6.502 6.502 0 0 0 9.5 6zm7 15h-7a8.5 8.5 0 1 1 7.215-12.997A6.5 6.5 0 0 1 16.5 21z"],"unicode":"","glyph":"M475 900A325 325 0 0 1 475 250H825A225 225 0 1 1 777.15 694.9A325.1 325.1 0 0 1 475 900zM825 150H475A424.99999999999994 424.99999999999994 0 1 0 835.75 799.85A325 325 0 0 0 825 150z","horizAdvX":"1200"},"code-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13.464 12.536L20 12l-3.536-3.536L15.05 9.88 17.172 12l-2.122 2.121 1.414 1.415zM6.828 12L8.95 9.879 7.536 8.464 4 12l3.536 3.536L8.95 14.12 6.828 12zm4.416 5l3.64-10h-2.128l-3.64 10h2.128z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM823.1999999999999 423.2000000000001L1000 600L823.1999999999999 776.8L752.5 706L858.6 600L752.5 493.9499999999999L823.2000000000002 423.2zM341.4000000000001 600L447.5 706.05L376.8 776.8L200 600L376.8 423.2000000000001L447.5 494L341.4000000000001 600zM562.2 350L744.2 850H637.8L455.8 350H562.2z","horizAdvX":"1200"},"code-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm16 7l-3.536 3.536-1.414-1.415L17.172 12 15.05 9.879l1.414-1.415L20 12zM6.828 12l2.122 2.121-1.414 1.415L4 12l3.536-3.536L8.95 9.88 6.828 12zm4.416 5H9.116l3.64-10h2.128l-3.64 10z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM1000 600L823.1999999999999 423.2000000000001L752.5 493.95L858.6 600L752.5 706.05L823.2000000000002 776.8000000000001L1000 600zM341.4000000000001 600L447.5 493.9499999999999L376.8 423.2L200 600L376.8 776.8L447.5 706L341.4000000000001 600zM562.2 350H455.8L637.8 850H744.2L562.2 350z","horizAdvX":"1200"},"code-fill":{"path":["M0 0h24v24H0z","M23 12l-7.071 7.071-1.414-1.414L20.172 12l-5.657-5.657 1.414-1.414L23 12zM3.828 12l5.657 5.657-1.414 1.414L1 12l7.071-7.071 1.414 1.414L3.828 12z"],"unicode":"","glyph":"M1150 600L796.45 246.4500000000001L725.75 317.1500000000002L1008.6 600L725.75 882.85L796.45 953.55L1150 600zM191.4 600L474.25 317.15L403.55 246.45L50 600L403.55 953.55L474.25 882.85L191.4 600z","horizAdvX":"1200"},"code-line":{"path":["M0 0h24v24H0z","M23 12l-7.071 7.071-1.414-1.414L20.172 12l-5.657-5.657 1.414-1.414L23 12zM3.828 12l5.657 5.657-1.414 1.414L1 12l7.071-7.071 1.414 1.414L3.828 12z"],"unicode":"","glyph":"M1150 600L796.45 246.4500000000001L725.75 317.1500000000002L1008.6 600L725.75 882.85L796.45 953.55L1150 600zM191.4 600L474.25 317.15L403.55 246.45L50 600L403.55 953.55L474.25 882.85L191.4 600z","horizAdvX":"1200"},"code-s-fill":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600z","horizAdvX":"1200"},"code-s-line":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600z","horizAdvX":"1200"},"code-s-slash-fill":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12zm6.96 9H7.66l6.552-18h2.128L9.788 21z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600zM489.4 150H383L710.6 1050H817L489.4 150z","horizAdvX":"1200"},"code-s-slash-line":{"path":["M0 0h24v24H0z","M24 12l-5.657 5.657-1.414-1.414L21.172 12l-4.243-4.243 1.414-1.414L24 12zM2.828 12l4.243 4.243-1.414 1.414L0 12l5.657-5.657L7.07 7.757 2.828 12zm6.96 9H7.66l6.552-18h2.128L9.788 21z"],"unicode":"","glyph":"M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600zM489.4 150H383L710.6 1050H817L489.4 150z","horizAdvX":"1200"},"code-view":{"path":["M0 0h24v24H0z","M16.95 8.464l1.414-1.414 4.95 4.95-4.95 4.95-1.414-1.414L20.485 12 16.95 8.464zm-9.9 0L3.515 12l3.535 3.536-1.414 1.414L.686 12l4.95-4.95L7.05 8.464z"],"unicode":"","glyph":"M847.5 776.8L918.2 847.5L1165.7 600L918.2 352.5L847.5 423.2000000000001L1024.25 600L847.5 776.8zM352.5 776.8L175.75 600L352.5000000000001 423.2000000000001L281.8000000000001 352.5L34.3 600L281.8 847.5L352.5 776.8z","horizAdvX":"1200"},"codepen-fill":{"path":["M0 0h24v24H0z","M12 10.202L9.303 12 12 13.798 14.697 12 12 10.202zm4.5.596L19.197 9 13 4.869v3.596l3.5 2.333zm3.5.07L18.303 12 20 13.131V10.87zm-3.5 2.334L13 15.535v3.596L19.197 15 16.5 13.202zM11 8.465V4.869L4.803 9 7.5 10.798 11 8.465zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zm.894-3L4 10.869v2.262L5.697 12zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"],"unicode":"","glyph":"M600 689.9L465.15 600L600 510.1L734.8499999999999 600L600 689.9zM825 660.1L959.85 750L650 956.55V776.75L825 660.1zM1000 656.6L915.15 600L1000 543.45V656.5zM825 539.9L650 423.25V243.4500000000001L959.85 450L825 539.9zM550 776.75V956.55L240.15 750L375 660.1L550 776.75zM240.15 450L550 243.4500000000001V423.25L375 539.9L240.15 450zM284.85 600L200 656.55V543.45L284.85 600zM100 750A50 50 0 0 0 122.25 791.6L572.25 1091.6000000000001A50 50 0 0 0 627.75 1091.6000000000001L1077.75 791.6A50 50 0 0 0 1100 750V450A50 50 0 0 0 1077.75 408.4L627.75 108.3999999999999A50 50 0 0 0 572.25 108.3999999999999L122.25 408.4A50 50 0 0 0 100 450V750z","horizAdvX":"1200"},"codepen-line":{"path":["M0 0h24v24H0z","M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"],"unicode":"","glyph":"M825 539.9L650 423.25V243.4500000000001L959.85 450L825 539.9zM734.8499999999999 600L600 689.9L465.15 600L600 510.1L734.8499999999999 600zM1000 656.55L915.15 600L1000 543.45V656.5zM959.85 750L650 956.55V776.75L825 660.1L959.85 750zM375 660.1L550 776.75V956.55L240.15 750L375 660.1zM240.15 450L550 243.4500000000001V423.25L375 539.9L240.15 450zM200 543.45L284.85 600L200 656.55V543.45zM100 750A50 50 0 0 0 122.25 791.6L572.25 1091.6000000000001A50 50 0 0 0 627.75 1091.6000000000001L1077.75 791.6A50 50 0 0 0 1100 750V450A50 50 0 0 0 1077.75 408.4L627.75 108.3999999999999A50 50 0 0 0 572.25 108.3999999999999L122.25 408.4A50 50 0 0 0 100 450V750z","horizAdvX":"1200"},"coin-fill":{"path":["M0 0h24v24H0z","M23 12v2c0 3.314-4.925 6-11 6-5.967 0-10.824-2.591-10.995-5.823L1 14v-2c0 3.314 4.925 6 11 6s11-2.686 11-6zM12 4c6.075 0 11 2.686 11 6s-4.925 6-11 6-11-2.686-11-6 4.925-6 11-6z"],"unicode":"","glyph":"M1150 600V500C1150 334.3 903.75 200 600 200C301.6500000000001 200 58.8 329.5500000000001 50.25 491.15L50 500V600C50 434.3 296.25 300 600 300S1150 434.3 1150 600zM600 1000C903.75 1000 1150 865.7 1150 700S903.75 400 600 400S50 534.3 50 700S296.25 1000 600 1000z","horizAdvX":"1200"},"coin-line":{"path":["M0 0h24v24H0z","M12 4c6.075 0 11 2.686 11 6v4c0 3.314-4.925 6-11 6-5.967 0-10.824-2.591-10.995-5.823L1 14v-4c0-3.314 4.925-6 11-6zm0 12c-3.72 0-7.01-1.007-9-2.55V14c0 1.882 3.883 4 9 4 5.01 0 8.838-2.03 8.995-3.882L21 14l.001-.55C19.011 14.992 15.721 16 12 16zm0-10c-5.117 0-9 2.118-9 4 0 1.882 3.883 4 9 4s9-2.118 9-4c0-1.882-3.883-4-9-4z"],"unicode":"","glyph":"M600 1000C903.75 1000 1150 865.7 1150 700V500C1150 334.3 903.75 200 600 200C301.6500000000001 200 58.8 329.5500000000001 50.25 491.15L50 500V700C50 865.7 296.25 1000 600 1000zM600 400C414 400 249.5 450.35 150 527.5V500C150 405.9 344.15 300 600 300C850.4999999999999 300 1041.9 401.5 1049.7499999999998 494.1L1050 500L1050.05 527.5C950.55 450.4 786.05 400 600 400zM600 900C344.15 900 150 794.0999999999999 150 700C150 605.9 344.15 500 600 500S1050 605.9 1050 700C1050 794.0999999999999 855.85 900 600 900z","horizAdvX":"1200"},"coins-fill":{"path":["M0 0h24v24H0z","M14 2a8 8 0 0 1 3.292 15.293A8 8 0 1 1 6.706 6.707 8.003 8.003 0 0 1 14 2zm-3 7H9v1a2.5 2.5 0 0 0-.164 4.995L9 15h2l.09.008a.5.5 0 0 1 0 .984L11 16H7v2h2v1h2v-1a2.5 2.5 0 0 0 .164-4.995L11 13H9l-.09-.008a.5.5 0 0 1 0-.984L9 12h4v-2h-2V9zm3-5a5.985 5.985 0 0 0-4.484 2.013 8 8 0 0 1 8.47 8.471A6 6 0 0 0 14 4z"],"unicode":"","glyph":"M700 1100A400 400 0 0 0 864.6000000000001 335.35A400 400 0 1 0 335.3 864.6500000000001A400.15000000000003 400.15000000000003 0 0 0 700 1100zM550 750H450V700A125 125 0 0 1 441.8 450.25L450 450H550L554.5 449.6A25 25 0 0 0 554.5 400.4000000000001L550 400H350V300H450V250H550V300A125 125 0 0 1 558.1999999999999 549.75L550 550H450L445.5 550.4A25 25 0 0 0 445.5 599.5999999999999L450 600H650V700H550V750zM700 1000A299.25 299.25 0 0 1 475.8 899.35A400 400 0 0 0 899.3000000000001 475.8A300 300 0 0 1 700 1000z","horizAdvX":"1200"},"coins-line":{"path":["M0 0h24v24H0z","M14 2a8 8 0 0 1 3.292 15.293A8 8 0 1 1 6.706 6.707 8.003 8.003 0 0 1 14 2zm-4 6a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm1 1v1h2v2H9a.5.5 0 0 0-.09.992L9 13h2a2.5 2.5 0 1 1 0 5v1H9v-1H7v-2h4a.5.5 0 0 0 .09-.992L11 15H9a2.5 2.5 0 1 1 0-5V9h2zm3-5a5.985 5.985 0 0 0-4.484 2.013 8 8 0 0 1 8.47 8.471A6 6 0 0 0 14 4z"],"unicode":"","glyph":"M700 1100A400 400 0 0 0 864.6000000000001 335.35A400 400 0 1 0 335.3 864.6500000000001A400.15000000000003 400.15000000000003 0 0 0 700 1100zM500 800A300 300 0 1 1 500 200A300 300 0 0 1 500 800zM550 750V700H650V600H450A25 25 0 0 1 445.5 550.4L450 550H550A125 125 0 1 0 550 300V250H450V300H350V400H550A25 25 0 0 1 554.5 449.6L550 450H450A125 125 0 1 0 450 700V750H550zM700 1000A299.25 299.25 0 0 1 475.8 899.35A400 400 0 0 0 899.3000000000001 475.8A300 300 0 0 1 700 1000z","horizAdvX":"1200"},"collage-fill":{"path":["M0 0H24V24H0z","M11.189 13.157L12.57 21 4 21c-.552 0-1-.448-1-1v-5.398l8.189-1.445zM20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1h-5.398L11.428 3H20zM9.397 3l1.444 8.188L3 12.57 3 4c0-.552.448-1 1-1h5.397z"],"unicode":"","glyph":"M559.45 542.15L628.5 150L200 150C172.4 150 150 172.4000000000001 150 200V469.9L559.45 542.15zM1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H730.1L571.4000000000001 1050H1000zM469.85 1050L542.0500000000001 640.6L150 571.5L150 1000C150 1027.6 172.4 1050 200 1050H469.85z","horizAdvX":"1200"},"collage-line":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-8.811 10.158L5 14.25V19h7.218l-1.03-5.842zM19 5h-7.219l2.468 14H19V5zM9.75 5H5v7.218l5.842-1.03L9.75 5z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM559.45 542.1L250 487.5V250H610.9L559.4 542.0999999999999zM950 950H589.05L712.4499999999999 250H950V950zM487.5 950H250V589.1L542.0999999999999 640.6L487.5 950z","horizAdvX":"1200"},"command-fill":{"path":["M0 0h24v24H0z","M10 8h4V6.5a3.5 3.5 0 1 1 3.5 3.5H16v4h1.5a3.5 3.5 0 1 1-3.5 3.5V16h-4v1.5A3.5 3.5 0 1 1 6.5 14H8v-4H6.5A3.5 3.5 0 1 1 10 6.5V8zM8 8V6.5A1.5 1.5 0 1 0 6.5 8H8zm0 8H6.5A1.5 1.5 0 1 0 8 17.5V16zm8-8h1.5A1.5 1.5 0 1 0 16 6.5V8zm0 8v1.5a1.5 1.5 0 1 0 1.5-1.5H16zm-6-6v4h4v-4h-4z"],"unicode":"","glyph":"M500 800H700V875A175 175 0 1 0 875 700H800V500H875A175 175 0 1 0 700 325V400H500V325A175 175 0 1 0 325 500H400V700H325A175 175 0 1 0 500 875V800zM400 800V875A75 75 0 1 1 325 800H400zM400 400H325A75 75 0 1 1 400 325V400zM800 800H875A75 75 0 1 1 800 875V800zM800 400V325A75 75 0 1 1 875 400H800zM500 700V500H700V700H500z","horizAdvX":"1200"},"command-line":{"path":["M0 0h24v24H0z","M10 8h4V6.5a3.5 3.5 0 1 1 3.5 3.5H16v4h1.5a3.5 3.5 0 1 1-3.5 3.5V16h-4v1.5A3.5 3.5 0 1 1 6.5 14H8v-4H6.5A3.5 3.5 0 1 1 10 6.5V8zM8 8V6.5A1.5 1.5 0 1 0 6.5 8H8zm0 8H6.5A1.5 1.5 0 1 0 8 17.5V16zm8-8h1.5A1.5 1.5 0 1 0 16 6.5V8zm0 8v1.5a1.5 1.5 0 1 0 1.5-1.5H16zm-6-6v4h4v-4h-4z"],"unicode":"","glyph":"M500 800H700V875A175 175 0 1 0 875 700H800V500H875A175 175 0 1 0 700 325V400H500V325A175 175 0 1 0 325 500H400V700H325A175 175 0 1 0 500 875V800zM400 800V875A75 75 0 1 1 325 800H400zM400 400H325A75 75 0 1 1 400 325V400zM800 800H875A75 75 0 1 1 800 875V800zM800 400V325A75 75 0 1 1 875 400H800zM500 700V500H700V700H500z","horizAdvX":"1200"},"community-fill":{"path":["M0 0h24v24H0z","M9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm12 2H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zm-5-10v2h2v-2h-2zm0 4v2h2v-2h-2zm0-8v2h2V7h-2zm-4 0v2h2V7h-2z"],"unicode":"","glyph":"M450 250H600V552.9L400 727.3L200 552.9V250H350V450H450V250zM1050 150H150A50 50 0 0 0 100 200V575.65A50 50 0 0 0 117.15 613.35L300 772.8V1000A50 50 0 0 0 350 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150zM800 650V550H900V650H800zM800 450V350H900V450H800zM800 850V750H900V850H800zM600 850V750H700V850H600z","horizAdvX":"1200"},"community-line":{"path":["M0 0h24v24H0z","M21 21H3a1 1 0 0 1-1-1v-7.513a1 1 0 0 1 .343-.754L6 8.544V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1zM9 19h3v-6.058L8 9.454l-4 3.488V19h3v-4h2v4zm5 0h6V5H8v2.127c.234 0 .469.082.657.247l5 4.359a1 1 0 0 1 .343.754V19zm2-8h2v2h-2v-2zm0 4h2v2h-2v-2zm0-8h2v2h-2V7zm-4 0h2v2h-2V7z"],"unicode":"","glyph":"M1050 150H150A50 50 0 0 0 100 200V575.65A50 50 0 0 0 117.15 613.35L300 772.8V1000A50 50 0 0 0 350 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150zM450 250H600V552.9L400 727.3L200 552.9V250H350V450H450V250zM700 250H1000V950H400V843.6500000000001C411.7 843.6500000000001 423.45 839.55 432.85 831.3L682.85 613.35A50 50 0 0 0 700 575.65V250zM800 650H900V550H800V650zM800 450H900V350H800V450zM800 850H900V750H800V850zM600 850H700V750H600V850z","horizAdvX":"1200"},"compass-2-fill":{"path":["M0 0h24v24H0z","M18.328 4.258L10.586 12 12 13.414l7.742-7.742A9.957 9.957 0 0 1 22 12c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2c2.4 0 4.604.847 6.328 2.258z"],"unicode":"","glyph":"M916.4 987.1L529.3000000000001 600L600 529.3000000000001L987.1 916.4A497.8500000000001 497.8500000000001 0 0 0 1100 600C1100 324 876 100 600 100S100 324 100 600S324 1100 600 1100C720 1100 830.1999999999999 1057.65 916.4 987.1z","horizAdvX":"1200"},"compass-2-line":{"path":["M0 0h24v24H0z","M16.625 3.133l-1.5 1.5A7.98 7.98 0 0 0 12 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8a7.98 7.98 0 0 0-.633-3.125l1.5-1.5A9.951 9.951 0 0 1 22 12c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2c1.668 0 3.241.41 4.625 1.133zm1.739 1.089l1.414 1.414L12 13.414 10.586 12l7.778-7.778z"],"unicode":"","glyph":"M831.25 1043.35L756.25 968.35A399 399 0 0 1 600 1000C379 1000 200 821 200 600S379 200 600 200S1000 378.9999999999999 1000 600A399 399 0 0 1 968.35 756.25L1043.3500000000001 831.25A497.55 497.55 0 0 0 1100 600C1100 324 876 100 600 100S100 324 100 600S324 1100 600 1100C683.4 1100 762.05 1079.5 831.25 1043.35zM918.2 988.9L988.9 918.2L600 529.3000000000001L529.3000000000001 600L918.2 988.9z","horizAdvX":"1200"},"compass-3-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.5-14.5L10 10l-2.5 6.5L14 14l2.5-6.5zM12 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM825 825L500 700L375 375L700 500L825 825zM600 550A50 50 0 1 0 600 650A50 50 0 0 0 600 550z","horizAdvX":"1200"},"compass-3-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm4.5-12.5L14 14l-6.5 2.5L10 10l6.5-2.5zM12 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM825 825L700 500L375 375L500 700L825 825zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"compass-4-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm3.446-12.032a4.02 4.02 0 0 0-1.414-1.414l-5.478 5.478a4.02 4.02 0 0 0 1.414 1.414l5.478-5.478z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM772.3 701.6A200.99999999999997 200.99999999999997 0 0 1 701.6 772.3L427.7 498.4A200.99999999999997 200.99999999999997 0 0 1 498.4 427.7000000000001L772.3 701.6z","horizAdvX":"1200"},"compass-4-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm3.446-10.032l-5.478 5.478a4.02 4.02 0 0 1-1.414-1.414l5.478-5.478a4.02 4.02 0 0 1 1.414 1.414z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM772.3 701.6L498.4 427.7000000000001A200.99999999999997 200.99999999999997 0 0 0 427.7 498.4L701.6 772.3A200.99999999999997 200.99999999999997 0 0 0 772.3 701.6z","horizAdvX":"1200"},"compass-discover-fill":{"path":["M0 0h24v24H0z","M13 22C7.477 22 3 17.523 3 12S7.477 2 13 2s10 4.477 10 10-4.477 10-10 10zM8 11.5l4 1.5 1.5 4.002L17 8l-9 3.5z"],"unicode":"","glyph":"M650 100C373.85 100 150 323.85 150 600S373.85 1100 650 1100S1150 876.15 1150 600S926.15 100 650 100zM400 625L600 550L675 349.9000000000001L850 800L400 625z","horizAdvX":"1200"},"compass-discover-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-8.5L16 8l-3.5 9.002L11 13l-4-1.5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 625L800 800L625 349.8999999999999L550 550L350 625z","horizAdvX":"1200"},"compass-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm3.5-13.5l-5 2-2 5 5-2 2-5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM775 775L525 675L425 425L675 525L775 775z","horizAdvX":"1200"},"compass-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm3.5-11.5l-2 5-5 2 2-5 5-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM775 775L675 525L425 425L525 675L775 775z","horizAdvX":"1200"},"compasses-2-fill":{"path":["M0 0h24v24H0z","M16.33 13.5A6.988 6.988 0 0 0 19 8h2a8.987 8.987 0 0 1-3.662 7.246l2.528 4.378a2 2 0 0 1-.732 2.732l-3.527-6.108A8.97 8.97 0 0 1 12 17a8.97 8.97 0 0 1-3.607-.752l-3.527 6.108a2 2 0 0 1-.732-2.732l5.063-8.77A4.002 4.002 0 0 1 11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728L16.33 13.5zM14.6 14.502l-1.528-2.647a4.004 4.004 0 0 1-2.142 0l-1.528 2.647c.804.321 1.68.498 2.599.498.918 0 1.795-.177 2.599-.498zM12 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M816.4999999999999 525A349.40000000000003 349.40000000000003 0 0 1 950 800H1050A449.3500000000001 449.3500000000001 0 0 0 866.9000000000001 437.7L993.3 218.7999999999999A100 100 0 0 0 956.7 82.1999999999998L780.3499999999999 387.5999999999999A448.50000000000006 448.50000000000006 0 0 0 600 350A448.50000000000006 448.50000000000006 0 0 0 419.6500000000001 387.5999999999999L243.3000000000001 82.1999999999998A100 100 0 0 0 206.7 218.7999999999999L459.85 657.2999999999998A200.10000000000002 200.10000000000002 0 0 0 550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L816.4999999999999 525zM730 474.9L653.5999999999999 607.25A200.2 200.2 0 0 0 546.5 607.25L470.1 474.9C510.3 458.85 554.0999999999999 450 600.05 450C645.9499999999999 450 689.8 458.85 730 474.9zM600 750A50 50 0 1 1 600 850A50 50 0 0 1 600 750z","horizAdvX":"1200"},"compasses-2-line":{"path":["M0 0h24v24H0z","M16.33 13.5A6.988 6.988 0 0 0 19 8h2a8.987 8.987 0 0 1-3.662 7.246l2.528 4.378a2 2 0 0 1-.732 2.732l-3.527-6.108A8.97 8.97 0 0 1 12 17a8.97 8.97 0 0 1-3.607-.752l-3.527 6.108a2 2 0 0 1-.732-2.732l5.063-8.77A4.002 4.002 0 0 1 11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728L16.33 13.5zM14.6 14.502l-1.528-2.647a4.004 4.004 0 0 1-2.142 0l-1.528 2.647c.804.321 1.68.498 2.599.498.918 0 1.795-.177 2.599-.498zM12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M816.4999999999999 525A349.40000000000003 349.40000000000003 0 0 1 950 800H1050A449.3500000000001 449.3500000000001 0 0 0 866.9000000000001 437.7L993.3 218.7999999999999A100 100 0 0 0 956.7 82.1999999999998L780.3499999999999 387.5999999999999A448.50000000000006 448.50000000000006 0 0 0 600 350A448.50000000000006 448.50000000000006 0 0 0 419.6500000000001 387.5999999999999L243.3000000000001 82.1999999999998A100 100 0 0 0 206.7 218.7999999999999L459.85 657.2999999999998A200.10000000000002 200.10000000000002 0 0 0 550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L816.4999999999999 525zM730 474.9L653.5999999999999 607.25A200.2 200.2 0 0 0 546.5 607.25L470.1 474.9C510.3 458.85 554.0999999999999 450 600.05 450C645.9499999999999 450 689.8 458.85 730 474.9zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700z","horizAdvX":"1200"},"compasses-fill":{"path":["M0 0h24v24H0z","M11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728l6.063 10.502-1.732 1-6.063-10.501a4.004 4.004 0 0 1-2.142 0L4.866 22.356l-1.732-1 6.063-10.502A4.002 4.002 0 0 1 11 4.126zM12 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L1043.3 132.1999999999998L956.7 82.1999999999998L653.5500000000001 607.2499999999999A200.2 200.2 0 0 0 546.45 607.2499999999999L243.3 82.1999999999998L156.7 132.1999999999998L459.85 657.3A200.10000000000002 200.10000000000002 0 0 0 550 993.7zM600 750A50 50 0 1 1 600 850A50 50 0 0 1 600 750z","horizAdvX":"1200"},"compasses-line":{"path":["M0 0h24v24H0z","M11 4.126V2h2v2.126a4.002 4.002 0 0 1 1.803 6.728l6.063 10.502-1.732 1-6.063-10.501a4.004 4.004 0 0 1-2.142 0L4.866 22.356l-1.732-1 6.063-10.502A4.002 4.002 0 0 1 11 4.126zM12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M550 993.7V1100H650V993.7A200.10000000000002 200.10000000000002 0 0 0 740.1500000000001 657.3000000000001L1043.3 132.1999999999998L956.7 82.1999999999998L653.5500000000001 607.2499999999999A200.2 200.2 0 0 0 546.45 607.2499999999999L243.3 82.1999999999998L156.7 132.1999999999998L459.85 657.3A200.10000000000002 200.10000000000002 0 0 0 550 993.7zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700z","horizAdvX":"1200"},"computer-fill":{"path":["M0 0h24v24H0z","M13 18v2h4v2H7v-2h4v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H13z"],"unicode":"","glyph":"M650 300V200H850V100H350V200H550V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H650z","horizAdvX":"1200"},"computer-line":{"path":["M0 0h24v24H0z","M4 16h16V5H4v11zm9 2v2h4v2H7v-2h4v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H13z"],"unicode":"","glyph":"M200 400H1000V950H200V400zM650 300V200H850V100H350V200H550V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H650z","horizAdvX":"1200"},"contacts-book-2-fill":{"path":["M0 0h24v24H0z","M20 22H6a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-2H6a1 1 0 0 0 0 2h13zm-7-10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4h6a3 3 0 0 0-6 0z"],"unicode":"","glyph":"M1000 100H300A150 150 0 0 0 150 250V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V300H300A50 50 0 0 1 300 200H950zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700zM450 500H750A150 150 0 0 1 450 500z","horizAdvX":"1200"},"contacts-book-2-line":{"path":["M0 0h24v24H0z","M20 22H6a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2v-2H6a1 1 0 0 0 0 2h13zM5 16.17c.313-.11.65-.17 1-.17h13V4H6a1 1 0 0 0-1 1v11.17zM12 10a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-3 4a3 3 0 0 1 6 0H9z"],"unicode":"","glyph":"M1000 100H300A150 150 0 0 0 150 250V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V300H300A50 50 0 0 1 300 200H950zM250 391.4999999999999C265.65 396.9999999999999 282.5 400 300 400H950V1000H300A50 50 0 0 1 250 950V391.4999999999999zM600 700A100 100 0 1 0 600 900A100 100 0 0 0 600 700zM450 500A150 150 0 0 0 750 500H450z","horizAdvX":"1200"},"contacts-book-fill":{"path":["M0 0h24v24H0z","M7 2v20H3V2h4zm2 0h10.005C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H9V2zm13 4h2v4h-2V6zm0 6h2v4h-2v-4zm-7 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4h6a3 3 0 0 0-6 0z"],"unicode":"","glyph":"M350 1100V100H150V1100H350zM450 1100H950.2500000000002C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H450V1100zM1100 900H1200V700H1100V900zM1100 600H1200V400H1100V600zM750 600A100 100 0 1 1 750 800A100 100 0 0 1 750 600zM600 400H900A150 150 0 0 1 600 400z","horizAdvX":"1200"},"contacts-book-line":{"path":["M0 0h24v24H0z","M3 2h16.005C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H3V2zm4 2H5v16h2V4zm2 16h10V4H9v16zm2-4a3 3 0 0 1 6 0h-6zm3-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm8-6h2v4h-2V6zm0 6h2v4h-2v-4z"],"unicode":"","glyph":"M150 1100H950.25C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H150V1100zM350 1000H250V200H350V1000zM450 200H950V1000H450V200zM550 400A150 150 0 0 0 850 400H550zM700 600A100 100 0 1 0 700 800A100 100 0 0 0 700 600zM1100 900H1200V700H1100V900zM1100 600H1200V400H1100V600z","horizAdvX":"1200"},"contacts-book-upload-fill":{"path":["M0 0h24v24H0z","M7 2v20H3V2h4zm12.005 0C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H9V2h10.005zM15 8l-4 4h3v4h2v-4h3l-4-4zm9 4v4h-2v-4h2zm0-6v4h-2V6h2z"],"unicode":"","glyph":"M350 1100V100H150V1100H350zM950.2500000000002 1100C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H450V1100H950.2500000000002zM750 800L550 600H700V400H800V600H950L750 800zM1200 600V400H1100V600H1200zM1200 900V700H1100V900H1200z","horizAdvX":"1200"},"contacts-book-upload-line":{"path":["M0 0h24v24H0z","M19.005 2C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H3V2h16.005zM7 4H5v16h2V4zm12 0H9v16h10V4zm-5 4l4 4h-3v4h-2v-4h-3l4-4zm10 4v4h-2v-4h2zm0-6v4h-2V6h2z"],"unicode":"","glyph":"M950.25 1100C1005.35 1100 1050 1055.1 1050 1000.5V199.5000000000001C1050 144.5500000000002 1005.35 100.0000000000002 950.25 100.0000000000002H150V1100H950.25zM350 1000H250V200H350V1000zM950 1000H450V200H950V1000zM700 800L900 600H750V400H650V600H500L700 800zM1200 600V400H1100V600H1200zM1200 900V700H1100V900H1200z","horizAdvX":"1200"},"contacts-fill":{"path":["M0 0h24v24H0z","M2 22a8 8 0 1 1 16 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm10 4h4v2h-4v-2zm-3-5h7v2h-7v-2zm2-5h5v2h-5V7z"],"unicode":"","glyph":"M100 100A400 400 0 1 0 900 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM1000 350H1200V250H1000V350zM850 600H1200V500H850V600zM950 850H1200V750H950V850z","horizAdvX":"1200"},"contacts-line":{"path":["M0 0h24v24H0z","M19 7h5v2h-5V7zm-2 5h7v2h-7v-2zm3 5h4v2h-4v-2zM2 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"],"unicode":"","glyph":"M950 850H1200V750H950V850zM850 600H1200V500H850V600zM1000 350H1200V250H1000V350zM100 100A400 400 0 1 0 900 100H800A300 300 0 1 1 200 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM500 650C610.5 650 700 739.5 700 850S610.5 1050 500 1050S300 960.5 300 850S389.5 650 500 650z","horizAdvX":"1200"},"contrast-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-6.671-5.575A8 8 0 1 0 16.425 5.328a8.997 8.997 0 0 1-2.304 8.793 8.997 8.997 0 0 1-8.792 2.304z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM266.45 378.75A400 400 0 1 1 821.25 933.6A449.85 449.85 0 0 0 706.0500000000001 493.95A449.85 449.85 0 0 0 266.4500000000001 378.7500000000001z","horizAdvX":"1200"},"contrast-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-4.68a8.965 8.965 0 0 0 5.707-2.613A8.965 8.965 0 0 0 15.32 7 6 6 0 1 1 7 15.32z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 434A448.25 448.25 0 0 1 635.35 564.65A448.25 448.25 0 0 1 766 850A300 300 0 1 0 350 434z","horizAdvX":"1200"},"contrast-drop-2-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0zM12 3.101L7.05 8.05A6.978 6.978 0 0 0 5 13h14a6.978 6.978 0 0 0-2.05-4.95L12 3.1z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2zM600 1044.95L352.5 797.5A348.9 348.9 0 0 1 250 550H950A348.9 348.9 0 0 1 847.5 797.5L600 1045z","horizAdvX":"1200"},"contrast-drop-2-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272zM7 13h10a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4zM350 550H850A250 250 0 0 0 350 550z","horizAdvX":"1200"},"contrast-drop-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0zM7.05 8.05A7 7 0 0 0 12.004 20L12 3.1 7.05 8.05z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2zM352.5 797.5A350 350 0 0 1 600.1999999999999 200L600 1045L352.5 797.5z","horizAdvX":"1200"},"contrast-drop-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272zM12 18V8a5 5 0 0 1 0 10z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4zM600 300V800A250 250 0 0 0 600 300z","horizAdvX":"1200"},"contrast-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2V4a8 8 0 1 0 0 16z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200V1000A400 400 0 1 1 600 200z","horizAdvX":"1200"},"contrast-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-2V6a6 6 0 1 1 0 12z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 300V900A300 300 0 1 0 600 300z","horizAdvX":"1200"},"copper-coin-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-14.243L7.757 12 12 16.243 16.243 12 12 7.757z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 812.1500000000001L387.85 600L600 387.85L812.15 600L600 812.1500000000001z","horizAdvX":"1200"},"copper-coin-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-12.95L16.95 12 12 16.95 7.05 12 12 7.05zm0 2.829L9.879 12 12 14.121 14.121 12 12 9.879z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 847.5L847.5 600L600 352.5L352.5 600L600 847.5zM600 706.05L493.95 600L600 493.9499999999999L706.0500000000001 600L600 706.05z","horizAdvX":"1200"},"copper-diamond-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM9.5 9L7 11.5l5 5 5-5L14.5 9h-5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM475 750L350 625L600 375L850 625L725 750H475z","horizAdvX":"1200"},"copper-diamond-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM9 8h6l2.5 3.5L12 17l-5.5-5.5L9 8zm1.03 2l-.92 1.29L12 14.18l2.89-2.89-.92-1.29h-3.94z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 800H750L875 625L600 350L325 625L450 800zM501.4999999999999 700L455.5 635.5L600 491L744.5 635.5L698.5 700H501.5000000000001z","horizAdvX":"1200"},"copyleft-fill":{"path":["M0 0H24V24H0z","M12 22C6.48 22 2 17.52 2 12S6.48 2 12 2s10 4.48 10 10-4.48 10-10 10zm0-5c2.76 0 5-2.24 5-5s-2.24-5-5-5c-1.82 0-3.413.973-4.288 2.428l1.715 1.028C9.952 9.583 10.907 9 12 9c1.658 0 3 1.342 3 3s-1.342 3-3 3c-1.093 0-2.05-.584-2.574-1.457l-1.714 1.03C8.587 16.026 10.18 17 12 17z"],"unicode":"","glyph":"M600 100C324 100 100 324 100 600S324 1100 600 1100S1100 876 1100 600S876 100 600 100zM600 350C738 350 850 462 850 600S738 850 600 850C509 850 429.35 801.35 385.6 728.5999999999999L471.35 677.1999999999999C497.6 720.8499999999999 545.35 750 600 750C682.9 750 750 682.9 750 600S682.9 450 600 450C545.35 450 497.4999999999999 479.1999999999999 471.3 522.85L385.6 471.35C429.35 398.7000000000001 509 350 600 350z","horizAdvX":"1200"},"copyleft-line":{"path":["M0 0H24V24H0z","M12 22C6.48 22 2 17.52 2 12S6.48 2 12 2s10 4.48 10 10-4.48 10-10 10zm0-2c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm0-3c-1.82 0-3.413-.973-4.288-2.428l1.714-1.029C9.951 14.416 10.907 15 12 15c1.658 0 3-1.342 3-3s-1.342-3-3-3c-1.093 0-2.048.583-2.573 1.456L7.712 9.428C8.587 7.973 10.18 7 12 7c2.76 0 5 2.24 5 5s-2.24 5-5 5z"],"unicode":"","glyph":"M600 100C324 100 100 324 100 600S324 1100 600 1100S1100 876 1100 600S876 100 600 100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM600 350C509 350 429.35 398.65 385.6 471.4000000000001L471.3 522.85C497.55 479.1999999999999 545.35 450 600 450C682.9 450 750 517.1 750 600S682.9 750 600 750C545.35 750 497.6 720.8499999999999 471.35 677.2L385.6 728.5999999999999C429.35 801.35 509 850 600 850C738 850 850 738 850 600S738 350 600 350z","horizAdvX":"1200"},"copyright-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 5c-2.76 0-5 2.24-5 5s2.24 5 5 5c1.82 0 3.413-.973 4.288-2.428l-1.715-1.028A3 3 0 1 1 12 9c1.093 0 2.05.584 2.574 1.457l1.714-1.03A4.999 4.999 0 0 0 12 7z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 850C462 850 350 738 350 600S462 350 600 350C691 350 770.65 398.65 814.4 471.4000000000001L728.65 522.8000000000001A150 150 0 1 0 600 750C654.65 750 702.5 720.8 728.7 677.15L814.4 728.6499999999999A249.94999999999996 249.94999999999996 0 0 1 600 850z","horizAdvX":"1200"},"copyright-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 3c1.82 0 3.413.973 4.288 2.428l-1.714 1.029A3 3 0 1 0 12 15a2.998 2.998 0 0 0 2.573-1.456l1.715 1.028A4.999 4.999 0 0 1 7 12c0-2.76 2.24-5 5-5z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 1000C379 1000 200 821 200 600S379 200 600 200S1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000zM600 850C691 850 770.65 801.35 814.4 728.5999999999999L728.7 677.15A150 150 0 1 1 600 450A149.90000000000003 149.90000000000003 0 0 1 728.65 522.8L814.4 471.4A249.94999999999996 249.94999999999996 0 0 0 350 600C350 738 462 850 600 850z","horizAdvX":"1200"},"coreos-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.671-9.696c-.04.85.037 1.697.118 2.544.005.06.027.074.08.08.406.054.813.102 1.222.127.964.061 1.928.139 2.896.085.55-.03 1.1-.048 1.648-.095.78-.068 1.56-.155 2.33-.312.958-.194 1.907-.425 2.8-.845.406-.19.79-.415 1.114-.736.238-.235.408-.507.41-.86a8.92 8.92 0 0 0-.045-.94 9.022 9.022 0 0 0-.481-2.18c-.584-1.618-1.51-2.989-2.826-4.07a8.87 8.87 0 0 0-3.851-1.863c-.5-.105-1.006-.144-1.514-.18-.573-.041-1.064.12-1.488.514-.495.457-.837 1.024-1.122 1.633-.667 1.427-.973 2.954-1.166 4.508a15.215 15.215 0 0 0-.125 2.59zm3.57-5.03c.959.03 1.77.324 2.494.856a4.326 4.326 0 0 1 1.714 2.612c.068.304.097.612.103.922.005.209-.11.362-.262.49-.307.258-.67.401-1.05.508-.74.207-1.496.326-2.265.366-.5.026-1 .035-1.5.01-.192-.01-.385-.024-.577-.032-.06-.002-.08-.02-.084-.081-.023-.434-.057-.868-.05-1.302.016-1.026.094-2.045.397-3.034.1-.329.223-.65.42-.936.173-.25.378-.437.66-.38z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM416.4500000000001 584.8C414.4500000000001 542.3 418.3000000000001 499.9499999999999 422.35 457.5999999999999C422.6000000000001 454.5999999999999 423.7 453.9 426.35 453.5999999999999C446.6500000000001 450.9 467.0000000000001 448.5 487.45 447.2499999999999C535.6500000000001 444.2 583.85 440.3 632.25 442.9999999999999C659.75 444.4999999999999 687.25 445.3999999999999 714.65 447.7499999999999C753.65 451.1499999999999 792.65 455.4999999999999 831.1499999999999 463.3499999999999C879.0499999999998 473.05 926.4999999999998 484.5999999999999 971.1499999999997 505.5999999999999C991.4499999999998 515.0999999999999 1010.6499999999997 526.3499999999999 1026.85 542.4C1038.75 554.1499999999999 1047.25 567.7499999999999 1047.35 585.3999999999999A446 446 0 0 1 1045.1 632.3999999999999A451.09999999999997 451.09999999999997 0 0 1 1021.0499999999998 741.3999999999999C991.8499999999998 822.3 945.5499999999998 890.8499999999999 879.7499999999998 944.8999999999997A443.5 443.5 0 0 1 687.1999999999998 1038.05C662.1999999999998 1043.3 636.8999999999997 1045.25 611.4999999999999 1047.05C582.8499999999998 1049.1 558.2999999999998 1041.05 537.0999999999999 1021.35C512.3499999999999 998.4999999999998 495.2499999999999 970.1499999999997 480.9999999999999 939.6999999999998C447.6499999999999 868.3499999999999 432.3499999999999 791.9999999999999 422.6999999999999 714.3A760.75 760.75 0 0 1 416.4499999999999 584.8zM594.95 836.3C642.9 834.8 683.45 820.1 719.6500000000001 793.5A216.29999999999998 216.29999999999998 0 0 0 805.3499999999999 662.9C808.75 647.6999999999999 810.2 632.3 810.5 616.8C810.75 606.3499999999999 805.0000000000001 598.6999999999999 797.4 592.3C782.05 579.3999999999999 763.9 572.2499999999999 744.9 566.8999999999999C707.9 556.5499999999998 670.0999999999999 550.5999999999998 631.65 548.5999999999999C606.65 547.3 581.65 546.8499999999999 556.65 548.0999999999999C547.05 548.5999999999999 537.4 549.2999999999998 527.8 549.6999999999999C524.8 549.8 523.8 550.6999999999999 523.6 553.7499999999999C522.45 575.4499999999998 520.75 597.1499999999999 521.0999999999999 618.8499999999999C521.9 670.1499999999999 525.8 721.0999999999999 540.9499999999999 770.55C545.9499999999999 787 552.1 803.05 561.9499999999999 817.3499999999999C570.5999999999999 829.8499999999999 580.8499999999999 839.1999999999998 594.9499999999999 836.3499999999999z","horizAdvX":"1200"},"coreos-line":{"path":["M0 0h24v24H0z","M9.42 4.4a8 8 0 1 0 10.202 9.91c-3.4 1.46-7.248 1.98-11.545 1.565-.711-4.126-.264-7.95 1.343-11.475zm2.448-.414a16.805 16.805 0 0 0-1.542 3.769 5.98 5.98 0 0 1 4.115 1.756 5.977 5.977 0 0 1 1.745 3.861c1.33-.341 2.589-.82 3.78-1.433a7.994 7.994 0 0 0-8.098-7.953zM4.895 19.057C.99 15.152.99 8.82 4.895 4.915c3.905-3.905 10.237-3.905 14.142 0 3.905 3.905 3.905 10.237 0 14.142-3.905 3.905-10.237 3.905-14.142 0zm5.02-9.293a17.885 17.885 0 0 0-.076 4.229 23.144 23.144 0 0 0 4.36-.22 3.988 3.988 0 0 0-1.172-2.848 3.99 3.99 0 0 0-3.112-1.161z"],"unicode":"","glyph":"M471 980A400 400 0 1 1 981.1 484.5C811.1 411.5 618.6999999999999 385.5 403.85 406.25C368.3 612.5500000000001 390.65 803.75 471 980zM593.4 1000.7A840.2500000000001 840.2500000000001 0 0 1 516.3000000000001 812.25A299.00000000000006 299.00000000000006 0 0 0 722.0500000000001 724.4499999999999A298.85 298.85 0 0 0 809.3 531.3999999999999C875.8 548.4499999999999 938.7499999999998 572.4 998.3 603.05A399.70000000000005 399.70000000000005 0 0 1 593.4 1000.7zM244.75 247.1500000000001C49.5 442.4000000000001 49.5 759 244.75 954.25C440 1149.5 756.6 1149.5 951.85 954.25C1147.1 759 1147.1 442.4 951.85 247.1500000000001C756.6 51.9000000000001 440 51.9000000000001 244.75 247.1500000000001zM495.7499999999999 711.8A894.2500000000001 894.2500000000001 0 0 1 491.9499999999999 500.35A1157.2 1157.2 0 0 1 709.9499999999999 511.3500000000001A199.4 199.4 0 0 1 651.3499999999999 653.7500000000001A199.5 199.5 0 0 1 495.7499999999999 711.8000000000002z","horizAdvX":"1200"},"coupon-2-fill":{"path":["M0 0h24v24H0z","M14 3v18H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h11zm2 0h5a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1h-5V3z"],"unicode":"","glyph":"M700 1050V150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H700zM800 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H800V1050z","horizAdvX":"1200"},"coupon-2-line":{"path":["M0 0h24v24H0z","M2 9.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5zM14 5H4v2.968a4.5 4.5 0 0 1 0 8.064V19h10V5zm2 0v14h4v-2.968a4.5 4.5 0 0 1 0-8.064V5h-4z"],"unicode":"","glyph":"M100 725V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725zM700 950H200V801.6A225 225 0 0 0 200 398.4V250H700V950zM800 950V250H1000V398.4A225 225 0 0 0 1000 801.6V950H800z","horizAdvX":"1200"},"coupon-3-fill":{"path":["M0 0h24v24H0z","M11 21a1.5 1.5 0 0 0-3 0H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a1.5 1.5 0 0 0 3 0h10a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H11zM9.5 10.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm0 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M550 150A75 75 0 0 1 400 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H400A75 75 0 0 1 550 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H550zM475 675A75 75 0 1 1 475 825A75 75 0 0 1 475 675zM475 375A75 75 0 1 1 475 525A75 75 0 0 1 475 375z","horizAdvX":"1200"},"coupon-3-line":{"path":["M0 0h24v24H0z","M2 4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4zm6.085 15a1.5 1.5 0 0 1 2.83 0H20v-2.968a4.5 4.5 0 0 1 0-8.064V5h-9.085a1.5 1.5 0 0 1-2.83 0H4v14h4.085zM9.5 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M100 1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000zM404.2500000000001 250A75 75 0 0 0 545.75 250H1000V398.4A225 225 0 0 0 1000 801.6V950H545.75A75 75 0 0 0 404.25 950H200V250H404.2500000000001zM475 650A75 75 0 1 0 475 800A75 75 0 0 0 475 650zM475 400A75 75 0 1 0 475 550A75 75 0 0 0 475 400z","horizAdvX":"1200"},"coupon-4-fill":{"path":["M0 0h24v24H0z","M10 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7a2 2 0 1 0 4 0h7a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-7a2 2 0 1 0-4 0zM6 8v8h2V8H6zm10 0v8h2V8h-2z"],"unicode":"","glyph":"M500 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H500A100 100 0 1 1 700 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H700A100 100 0 1 1 500 150zM300 800V400H400V800H300zM800 800V400H900V800H800z","horizAdvX":"1200"},"coupon-4-line":{"path":["M0 0h24v24H0z","M10 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7a2 2 0 1 0 4 0h7a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-7a2 2 0 1 0-4 0zm-1.465-2A3.998 3.998 0 0 1 12 17c1.48 0 2.773.804 3.465 2H20V5h-4.535A3.998 3.998 0 0 1 12 7a3.998 3.998 0 0 1-3.465-2H4v14h4.535zM6 8h2v8H6V8zm10 0h2v8h-2V8z"],"unicode":"","glyph":"M500 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H500A100 100 0 1 1 700 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H700A100 100 0 1 1 500 150zM426.75 250A199.90000000000003 199.90000000000003 0 0 0 600 350C674 350 738.65 309.8000000000001 773.25 250H1000V950H773.25A199.90000000000003 199.90000000000003 0 0 0 600 850A199.90000000000003 199.90000000000003 0 0 0 426.75 950H200V250H426.75zM300 800H400V400H300V800zM800 800H900V400H800V800z","horizAdvX":"1200"},"coupon-5-fill":{"path":["M0 0h24v24H0z","M21 14v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a2 2 0 1 0 0-4V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v7a2 2 0 1 0 0 4zM9 6v2h6V6H9zm0 10v2h6v-2H9z"],"unicode":"","glyph":"M1050 500V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V500A100 100 0 1 1 150 700V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V700A100 100 0 1 1 1050 500zM450 900V800H750V900H450zM450 400V300H750V400H450z","horizAdvX":"1200"},"coupon-5-line":{"path":["M0 0h24v24H0z","M21 14v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a2 2 0 1 0 0-4V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v7a2 2 0 1 0 0 4zm-2 1.465A3.998 3.998 0 0 1 17 12c0-1.48.804-2.773 2-3.465V4H5v4.535C6.196 9.227 7 10.52 7 12c0 1.48-.804 2.773-2 3.465V20h14v-4.535zM9 6h6v2H9V6zm0 10h6v2H9v-2z"],"unicode":"","glyph":"M1050 500V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V500A100 100 0 1 1 150 700V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V700A100 100 0 1 1 1050 500zM950 426.75A199.90000000000003 199.90000000000003 0 0 0 850 600C850 674 890.1999999999999 738.65 950 773.25V1000H250V773.25C309.8 738.65 350 674 350 600C350 526 309.8 461.35 250 426.75V200H950V426.75zM450 900H750V800H450V900zM450 400H750V300H450V400z","horizAdvX":"1200"},"coupon-fill":{"path":["M0 0h24v24H0z","M2 9.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5zM9 9v2h6V9H9zm0 4v2h6v-2H9z"],"unicode":"","glyph":"M100 725V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725zM450 750V650H750V750H450zM450 550V450H750V550H450z","horizAdvX":"1200"},"coupon-line":{"path":["M0 0h24v24H0z","M2 9.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5zm2-1.532a4.5 4.5 0 0 1 0 8.064V19h16v-2.968a4.5 4.5 0 0 1 0-8.064V5H4v2.968zM9 9h6v2H9V9zm0 4h6v2H9v-2z"],"unicode":"","glyph":"M100 725V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725zM200 801.6A225 225 0 0 0 200 398.4V250H1000V398.4A225 225 0 0 0 1000 801.6V950H200V801.6zM450 750H750V650H450V750zM450 550H750V450H450V550z","horizAdvX":"1200"},"cpu-fill":{"path":["M0 0h24v24H0z","M14 20h-4v2H8v-2H5a1 1 0 0 1-1-1v-3H2v-2h2v-4H2V8h2V5a1 1 0 0 1 1-1h3V2h2v2h4V2h2v2h3a1 1 0 0 1 1 1v3h2v2h-2v4h2v2h-2v3a1 1 0 0 1-1 1h-3v2h-2v-2zM7 7v4h4V7H7z"],"unicode":"","glyph":"M700 200H500V100H400V200H250A50 50 0 0 0 200 250V400H100V500H200V700H100V800H200V950A50 50 0 0 0 250 1000H400V1100H500V1000H700V1100H800V1000H950A50 50 0 0 0 1000 950V800H1100V700H1000V500H1100V400H1000V250A50 50 0 0 0 950 200H800V100H700V200zM350 850V650H550V850H350z","horizAdvX":"1200"},"cpu-line":{"path":["M0 0h24v24H0z","M6 18h12V6H6v12zm8 2h-4v2H8v-2H5a1 1 0 0 1-1-1v-3H2v-2h2v-4H2V8h2V5a1 1 0 0 1 1-1h3V2h2v2h4V2h2v2h3a1 1 0 0 1 1 1v3h2v2h-2v4h2v2h-2v3a1 1 0 0 1-1 1h-3v2h-2v-2zM8 8h8v8H8V8z"],"unicode":"","glyph":"M300 300H900V900H300V300zM700 200H500V100H400V200H250A50 50 0 0 0 200 250V400H100V500H200V700H100V800H200V950A50 50 0 0 0 250 1000H400V1100H500V1000H700V1100H800V1000H950A50 50 0 0 0 1000 950V800H1100V700H1000V500H1100V400H1000V250A50 50 0 0 0 950 200H800V100H700V200zM400 800H800V400H400V800z","horizAdvX":"1200"},"creative-commons-by-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm2 8h-4a1 1 0 0 0-.993.883L9 11v4h1.5v4h3v-4H15v-4a1 1 0 0 0-.883-.993L14 10zm-2-5a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM700 700H500A50 50 0 0 1 450.35 655.85L450 650V450H525V250H675V450H750V650A50 50 0 0 1 705.85 699.6500000000001L700 700zM600 950A100 100 0 1 1 600 750A100 100 0 0 1 600 950z","horizAdvX":"1200"},"creative-commons-by-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm2 6a1 1 0 0 1 1 1v4h-1.5v4h-3v-4H9v-4a1 1 0 0 1 1-1h4zm-2-5a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM700 700A50 50 0 0 0 750 650V450H675V250H525V450H450V650A50 50 0 0 0 500 700H700zM600 950A100 100 0 1 0 600 750A100 100 0 0 0 600 950z","horizAdvX":"1200"},"creative-commons-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM9 8c-2.208 0-4 1.792-4 4a4.001 4.001 0 0 0 6.669 2.979l.159-.151-1.414-1.414a2 2 0 1 1-.125-2.943l.126.116 1.414-1.414A3.988 3.988 0 0 0 9 8zm7 0c-2.208 0-4 1.792-4 4a4.001 4.001 0 0 0 6.669 2.979l.159-.151-1.414-1.414a2 2 0 1 1-.125-2.943l.126.116 1.414-1.414A3.988 3.988 0 0 0 16 8z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM450 800C339.6 800 250 710.4000000000001 250 600A200.05 200.05 0 0 1 583.45 451.0500000000001L591.4000000000001 458.6L520.7 529.3000000000001A100 100 0 1 0 514.45 676.45L520.75 670.65L591.45 741.35A199.4 199.4 0 0 1 450 800zM800 800C689.6 800 600 710.4000000000001 600 600A200.05 200.05 0 0 1 933.45 451.0500000000001L941.4 458.6L870.6999999999999 529.3000000000001A100 100 0 1 0 864.4499999999999 676.45L870.75 670.65L941.45 741.35A199.4 199.4 0 0 1 800 800z","horizAdvX":"1200"},"creative-commons-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zM9 8c1.105 0 2.105.448 2.829 1.173l-1.414 1.414a2 2 0 1 0-.001 2.828l1.414 1.413A4.001 4.001 0 0 1 5 12c0-2.208 1.792-4 4-4zm7 0c1.105 0 2.105.448 2.829 1.173l-1.414 1.414a2 2 0 1 0-.001 2.828l1.414 1.413A4.001 4.001 0 0 1 12 12c0-2.208 1.792-4 4-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM450 800C505.25 800 555.25 777.5999999999999 591.45 741.35L520.75 670.65A100 100 0 1 1 520.7 529.25L591.4000000000001 458.6A200.05 200.05 0 0 0 250 600C250 710.4000000000001 339.6 800 450 800zM800 800C855.25 800 905.25 777.5999999999999 941.45 741.35L870.75 670.65A100 100 0 1 1 870.6999999999999 529.25L941.4 458.6A200.05 200.05 0 0 0 600 600C600 710.4000000000001 689.6 800 800 800z","horizAdvX":"1200"},"creative-commons-nc-fill":{"path":["M0 0h24v24H0z","M4.256 5.672l3.58 3.577a2.5 2.5 0 0 0 2 3.746L10 13h4l.09.008a.5.5 0 0 1 0 .984L14 14H8.5v2H11v2h2v-2h1c.121 0 .24-.009.357-.025l.173-.031 3.798 3.8A9.959 9.959 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.4.846-4.604 2.256-6.328zM12 2c5.523 0 10 4.477 10 10 0 2.4-.846 4.604-2.256 6.328l-3.579-3.577a2.5 2.5 0 0 0-2-3.745L14 11h-4l-.09-.008a.5.5 0 0 1 0-.984L10 10h5.5V8H13V6h-2v2h-1c-.121 0-.24.009-.356.025l-.173.031-3.799-3.8A9.959 9.959 0 0 1 12 2z"],"unicode":"","glyph":"M212.8 916.4L391.8 737.5500000000001A125 125 0 0 1 491.8 550.25L500 550H700L704.5 549.6A25 25 0 0 0 704.5 500.4000000000001L700 500H425V400H550V300H650V400H700C706.0500000000001 400 712 400.4500000000001 717.8499999999999 401.25L726.5 402.8000000000001L916.4 212.8A497.95000000000005 497.95000000000005 0 0 0 600 100C323.85 100 100 323.85 100 600C100 720 142.3 830.2 212.8 916.4zM600 1100C876.15 1100 1100 876.15 1100 600C1100 480 1057.7 369.8000000000001 987.2 283.6L808.25 462.45A125 125 0 0 1 708.25 649.7L700 650H500L495.5 650.4A25 25 0 0 0 495.5 699.5999999999999L500 700H775V800H650V900H550V800H500C493.95 800 488 799.55 482.2 798.75L473.55 797.1999999999999L283.6 987.2A497.95000000000005 497.95000000000005 0 0 0 600 1100z","horizAdvX":"1200"},"creative-commons-nc-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 2.4-.846 4.604-2.256 6.328l.034.036-1.414 1.414-.036-.034A9.959 9.959 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zM4 12a8 8 0 0 0 12.905 6.32l-2.375-2.376A2.51 2.51 0 0 1 14 16h-1v2h-2v-2H8.5v-2H14a.5.5 0 0 0 .09-.992L14 13h-4a2.5 2.5 0 0 1-2.165-3.75L5.679 7.094A7.965 7.965 0 0 0 4 12zm8-8c-1.848 0-3.55.627-4.905 1.68L9.47 8.055A2.51 2.51 0 0 1 10 8h1V6h2v2h2.5v2H10a.5.5 0 0 0-.09.992L10 11h4a2.5 2.5 0 0 1 2.165 3.75l2.156 2.155A8 8 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 480 1057.7 369.8000000000001 987.2 283.6L988.9 281.8L918.1999999999998 211.0999999999999L916.3999999999997 212.7999999999999A497.95000000000005 497.95000000000005 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM200 600A400 400 0 0 1 845.25 284L726.5 402.8A125.49999999999997 125.49999999999997 0 0 0 700 400H650V300H550V400H425V500H700A25 25 0 0 1 704.5 549.6L700 550H500A125 125 0 0 0 391.75 737.5L283.95 845.3A398.24999999999994 398.24999999999994 0 0 1 200 600zM600 1000C507.6 1000 422.5 968.65 354.75 916L473.5000000000001 797.25A125.49999999999997 125.49999999999997 0 0 0 500 800H550V900H650V800H775V700H500A25 25 0 0 1 495.5 650.4L500 650H700A125 125 0 0 0 808.25 462.5L916.05 354.75A400 400 0 0 1 600 1000z","horizAdvX":"1200"},"creative-commons-nd-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm4 11H8v2h8v-2zm0-4H8v2h8V9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM800 550H400V450H800V550zM800 750H400V650H800V750z","horizAdvX":"1200"},"creative-commons-nd-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm4 9v2H8v-2h8zm0-4v2H8V9h8z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM800 550V450H400V550H800zM800 750V650H400V750H800z","horizAdvX":"1200"},"creative-commons-sa-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 4C9.895 6 8.094 7.56 7.357 9.77l-.073.23H6l2.5 3 2.5-3H9.401C9.92 8.805 10.89 8 12 8c1.657 0 3 1.79 3 4s-1.343 4-3 4c-1.048 0-1.971-.717-2.508-1.803L9.402 14H7.285C7.97 16.33 9.823 18 12 18c2.761 0 5-2.686 5-6s-2.239-6-5-6z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 900C494.75 900 404.7 822 367.85 711.5L364.2 700H300L425 550L550 700H470.05C496 759.75 544.5 800 600 800C682.85 800 750 710.5 750 600S682.85 400 600 400C547.6 400 501.45 435.85 474.6 490.1500000000001L470.1 500H364.25C398.5 383.5000000000001 491.15 300 600 300C738.05 300 850 434.3 850 600S738.05 900 600 900z","horizAdvX":"1200"},"creative-commons-sa-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 2c-4.415 0-8 3.585-8 8s3.585 8 8 8 8-3.585 8-8-3.585-8-8-8zm0 2c2.761 0 5 2.686 5 6s-2.239 6-5 6c-2.177 0-4.029-1.67-4.715-4l2.117.001C9.92 15.196 10.89 16 12 16c1.657 0 3-1.79 3-4s-1.343-4-3-4c-1.11 0-2.08.805-2.599 2H11l-2.5 3L6 10h1.284C7.971 7.67 9.823 6 12 6z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 1000C379.25 1000 200 820.75 200 600S379.25 200 600 200S1000 379.25 1000 600S820.75 1000 600 1000zM600 900C738.05 900 850 765.7 850 600S738.05 300 600 300C491.15 300 398.55 383.5000000000001 364.25 500L470.1 499.95C496 440.2000000000001 544.5 400 600 400C682.85 400 750 489.5 750 600S682.85 800 600 800C544.5 800 496 759.75 470.05 700H550L425 550L300 700H364.2C398.55 816.5 491.15 900 600 900z","horizAdvX":"1200"},"creative-commons-zero-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 4c-2.761 0-5 2.686-5 6s2.239 6 5 6 5-2.686 5-6-2.239-6-5-6zm2.325 3.472c.422.69.675 1.57.675 2.528 0 2.21-1.343 4-3 4-.378 0-.74-.093-1.073-.263l-.164-.092 3.562-6.173zM12 8c.378 0 .74.093 1.073.263l.164.092-3.562 6.173C9.253 13.838 9 12.958 9 12c0-2.21 1.343-4 3-4z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 900C461.95 900 350 765.7 350 600S461.95 300 600 300S850 434.3 850 600S738.05 900 600 900zM716.25 726.4000000000001C737.35 691.9000000000001 750 647.9 750 600C750 489.5 682.85 400 600 400C581.1 400 563 404.65 546.35 413.15L538.15 417.75L716.25 726.4000000000001zM600 800C618.9 800 637 795.35 653.65 786.85L661.85 782.25L483.7500000000001 473.6C462.65 508.1 450 552.1 450 600C450 710.5 517.15 800 600 800z","horizAdvX":"1200"},"creative-commons-zero-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 2c-4.415 0-8 3.585-8 8s3.585 8 8 8 8-3.585 8-8-3.585-8-8-8zm0 2c2.761 0 5 2.686 5 6s-2.239 6-5 6-5-2.686-5-6 2.239-6 5-6zm2.325 3.472l-3.562 6.173c.377.228.796.355 1.237.355 1.657 0 3-1.79 3-4 0-.959-.253-1.839-.675-2.528zM12 8c-1.657 0-3 1.79-3 4 0 .959.253 1.839.675 2.528l3.562-6.173A2.377 2.377 0 0 0 12 8z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 1000C379.25 1000 200 820.75 200 600S379.25 200 600 200S1000 379.25 1000 600S820.75 1000 600 1000zM600 900C738.05 900 850 765.7 850 600S738.05 300 600 300S350 434.3 350 600S461.95 900 600 900zM716.25 726.4000000000001L538.15 417.75C557 406.35 577.9499999999999 400 600 400C682.85 400 750 489.5 750 600C750 647.9499999999999 737.35 691.95 716.25 726.4000000000001zM600 800C517.15 800 450 710.5 450 600C450 552.0500000000001 462.65 508.05 483.7500000000001 473.6L661.85 782.25A118.85 118.85 0 0 1 600 800z","horizAdvX":"1200"},"criminal-fill":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 6.894 14.786c1.255.83 2.033 1.89 2.101 3.049L21 20l-9 2-9-2 .005-.165c.067-1.16.846-2.22 2.1-3.05A8.965 8.965 0 0 1 3 11a9 9 0 0 1 9-9zm0 11c-1.38 0-2.5.672-2.5 1.5S10.62 16 12 16s2.5-.672 2.5-1.5S13.38 13 12 13zM9 8c-1.105 0-2 .672-2 1.5S7.895 11 9 11s2-.672 2-1.5S10.105 8 9 8zm6 0c-1.105 0-2 .672-2 1.5s.895 1.5 2 1.5 2-.672 2-1.5S16.105 8 15 8z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 944.7 360.7C1007.4499999999998 319.2000000000001 1046.35 266.2 1049.7499999999998 208.25L1050 200L600 100L150 200L150.25 208.25C153.6 266.25 192.55 319.2499999999999 255.2500000000001 360.75A448.25 448.25 0 0 0 150 650A450 450 0 0 0 600 1100zM600 550C531 550 475 516.4 475 475S531 400 600 400S725 433.6 725 475S669 550 600 550zM450 800C394.75 800 350 766.4 350 725S394.75 650 450 650S550 683.6 550 725S505.25 800 450 800zM750 800C694.75 800 650 766.4 650 725S694.75 650 750 650S850 683.6 850 725S805.25 800 750 800z","horizAdvX":"1200"},"criminal-line":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 6.894 14.786c1.255.83 2.033 1.89 2.101 3.049L21 20l-9 2-9-2 .005-.165c.067-1.16.846-2.22 2.1-3.05A8.965 8.965 0 0 1 3 11a9 9 0 0 1 9-9zm0 2a7 7 0 0 0-7 7c0 1.567.514 3.05 1.445 4.261l.192.239 1.443 1.717-1.962 1.299-.137.097L12 19.951l6.018-1.338-.049-.036-.178-.123-1.871-1.237 1.443-1.718A6.963 6.963 0 0 0 19 11a7 7 0 0 0-7-7zm0 9c1.38 0 2.5.672 2.5 1.5S13.38 16 12 16s-2.5-.672-2.5-1.5S10.62 13 12 13zM9 8c1.105 0 2 .672 2 1.5S10.105 11 9 11s-2-.672-2-1.5S7.895 8 9 8zm6 0c1.105 0 2 .672 2 1.5s-.895 1.5-2 1.5-2-.672-2-1.5.895-1.5 2-1.5z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 944.7 360.7C1007.4499999999998 319.2000000000001 1046.35 266.2 1049.7499999999998 208.25L1050 200L600 100L150 200L150.25 208.25C153.6 266.25 192.55 319.2499999999999 255.2500000000001 360.75A448.25 448.25 0 0 0 150 650A450 450 0 0 0 600 1100zM600 1000A350 350 0 0 1 250 650C250 571.65 275.7 497.5 322.25 436.9500000000001L331.85 425L404 339.1500000000001L305.9000000000001 274.2000000000001L299.05 269.35L600 202.4499999999999L900.9 269.35L898.45 271.1500000000001L889.5500000000001 277.3000000000002L796 339.1500000000001L868.15 425.0500000000001A348.15000000000003 348.15000000000003 0 0 1 950 650A350 350 0 0 1 600 1000zM600 550C669 550 725 516.4 725 475S669 400 600 400S475 433.6 475 475S531 550 600 550zM450 800C505.25 800 550 766.4 550 725S505.25 650 450 650S350 683.6 350 725S394.75 800 450 800zM750 800C805.25 800 850 766.4 850 725S805.25 650 750 650S650 683.6 650 725S694.75 800 750 800z","horizAdvX":"1200"},"crop-2-fill":{"path":["M0 0h24v24H0z","M17.586 5l2.556-2.556 1.414 1.414L19 6.414V17h3v2h-3v3h-2V7H9V5h8.586zM15 17v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v15h8zM9 9h6v6H9V9z"],"unicode":"","glyph":"M879.3 950L1007.1 1077.8L1077.8 1007.1L950 879.3V350H1100V250H950V100H850V850H450V950H879.3zM750 350V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V350H750zM450 750H750V450H450V750z","horizAdvX":"1200"},"crop-2-line":{"path":["M0 0h24v24H0z","M8.414 17H15v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v13.586L15.586 7H9V5h8.586l2.556-2.556 1.414 1.414L19 6.414V17h3v2h-3v3h-2V8.414L8.414 17z"],"unicode":"","glyph":"M420.7 350H750V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V420.7L779.3000000000001 850H450V950H879.3L1007.1 1077.8L1077.8 1007.1L950 879.3V350H1100V250H950V100H850V779.3L420.7 350z","horizAdvX":"1200"},"crop-fill":{"path":["M0 0h24v24H0z","M19 17h3v2h-3v3h-2v-3H6a1 1 0 0 1-1-1V7H2V5h3V2h2v3h11a1 1 0 0 1 1 1v11z"],"unicode":"","glyph":"M950 350H1100V250H950V100H850V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V950H900A50 50 0 0 0 950 900V350z","horizAdvX":"1200"},"crop-line":{"path":["M0 0h24v24H0z","M15 17v2H6a1 1 0 0 1-1-1V7H2V5h3V2h2v15h8zm2 5V7H9V5h9a1 1 0 0 1 1 1v11h3v2h-3v3h-2z"],"unicode":"","glyph":"M750 350V250H300A50 50 0 0 0 250 300V850H100V950H250V1100H350V350H750zM850 100V850H450V950H900A50 50 0 0 0 950 900V350H1100V250H950V100H850z","horizAdvX":"1200"},"css3-fill":{"path":["M0 0h24v24H0z","M5 3l-.65 3.34h13.59L17.5 8.5H3.92l-.66 3.33h13.59l-.76 3.81-5.48 1.81-4.75-1.81.33-1.64H2.85l-.79 4 7.85 3 9.05-3 1.2-6.03.24-1.21L21.94 3z"],"unicode":"","glyph":"M250 1050L217.5 883H896.9999999999999L875 775H196L163 608.5H842.5000000000001L804.5 418L530.5 327.5L293 418.0000000000001L309.5 500.0000000000001H142.5L103 300L495.5 150L948 300L1008 601.5L1019.9999999999998 662.0000000000001L1097 1050z","horizAdvX":"1200"},"css3-line":{"path":["M0 0h24v24H0z","M2.8 14h2.04l-.545 2.725 5.744 2.154 7.227-2.41L18.36 11H3.4l.4-2h14.96l.8-4H4.6L5 3h17l-3 15-9 3-8-3z"],"unicode":"","glyph":"M140 500H242L214.75 363.7499999999999L501.95 256.05L863.3 376.55L918 650H170L190 750H938.0000000000002L978.0000000000002 950H230L250 1050H1100L950 300L500 150L100 300z","horizAdvX":"1200"},"cup-fill":{"path":["M0 0h24v24H0z","M5 3h15a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2h-2v3a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V4a1 1 0 0 1 1-1zm13 2v3h2V5h-2zM2 19h18v2H2v-2z"],"unicode":"","glyph":"M250 1050H1000A100 100 0 0 0 1100 950V800A100 100 0 0 0 1000 700H900V550A200 200 0 0 0 700 350H400A200 200 0 0 0 200 550V1000A50 50 0 0 0 250 1050zM900 950V800H1000V950H900zM100 250H1000V150H100V250z","horizAdvX":"1200"},"cup-line":{"path":["M0 0h24v24H0z","M16 13V5H6v8a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2zM5 3h15a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2h-2v3a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V4a1 1 0 0 1 1-1zm13 2v3h2V5h-2zM2 19h18v2H2v-2z"],"unicode":"","glyph":"M800 550V950H300V550A100 100 0 0 1 400 450H700A100 100 0 0 1 800 550zM250 1050H1000A100 100 0 0 0 1100 950V800A100 100 0 0 0 1000 700H900V550A200 200 0 0 0 700 350H400A200 200 0 0 0 200 550V1000A50 50 0 0 0 250 1050zM900 950V800H1000V950H900zM100 250H1000V150H100V250z","horizAdvX":"1200"},"currency-fill":{"path":["M0 0h24v24H0z","M17 16h2V4H9v2h8v10zm0 2v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3zM7 16v2h2v1h2v-1h.5a2.5 2.5 0 1 0 0-5h-3a.5.5 0 1 1 0-1H13v-2h-2V9H9v1h-.5a2.5 2.5 0 1 0 0 5h3a.5.5 0 1 1 0 1H7z"],"unicode":"","glyph":"M850 400H950V1000H450V900H850V400zM850 300V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850zM350 400V300H450V250H550V300H575A125 125 0 1 1 575 550H425A25 25 0 1 0 425 600H650V700H550V750H450V700H425A125 125 0 1 1 425 450H575A25 25 0 1 0 575 400H350z","horizAdvX":"1200"},"currency-line":{"path":["M0 0h24v24H0z","M17 16h2V4H9v2h8v10zm0 2v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3zM5.003 8L5 20h10V8H5.003zM7 16h4.5a.5.5 0 1 0 0-1h-3a2.5 2.5 0 1 1 0-5H9V9h2v1h2v2H8.5a.5.5 0 1 0 0 1h3a2.5 2.5 0 1 1 0 5H11v1H9v-1H7v-2z"],"unicode":"","glyph":"M850 400H950V1000H450V900H850V400zM850 300V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850zM250.15 800L250 200H750V800H250.15zM350 400H575A25 25 0 1 1 575 450H425A125 125 0 1 0 425 700H450V750H550V700H650V600H425A25 25 0 1 1 425 550H575A125 125 0 1 0 575 300H550V250H450V300H350V400z","horizAdvX":"1200"},"cursor-fill":{"path":["M0 0h24v24H0z","M13.91 12.36L17 20.854l-2.818 1.026-3.092-8.494-4.172 3.156 1.49-14.909 10.726 10.463z"],"unicode":"","glyph":"M695.5 582L850 157.3L709.1 106L554.5 530.7L345.9000000000001 372.9000000000001L420.4 1118.3500000000001L956.7 595.2000000000002z","horizAdvX":"1200"},"cursor-line":{"path":["M0 0h24v24H0z","M15.388 13.498l2.552 7.014-4.698 1.71-2.553-7.014-3.899 2.445L8.41 1.633l11.537 11.232-4.558.633zm-.011 5.818l-2.715-7.46 2.96-.41-5.64-5.49-.79 7.83 2.53-1.587 2.715 7.46.94-.343z"],"unicode":"","glyph":"M769.4 525.1L897.0000000000001 174.4000000000001L662.1 88.8999999999999L534.45 439.5999999999999L339.5 317.3499999999999L420.5 1118.35L997.3500000000003 556.7500000000001L769.4500000000002 525.1000000000001zM768.85 234.2000000000001L633.1 607.2L781.1 627.7L499.1 902.2L459.6 510.7000000000002L586.1 590.0500000000001L721.85 217.0500000000001L768.8499999999999 234.2000000000001z","horizAdvX":"1200"},"customer-service-2-fill":{"path":["M0 0h24v24H0z","M21 8a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-1.062A8.001 8.001 0 0 1 12 23v-2a6 6 0 0 0 6-6V9A6 6 0 1 0 6 9v7H3a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1.062a8.001 8.001 0 0 1 15.876 0H21zM7.76 15.785l1.06-1.696A5.972 5.972 0 0 0 12 15a5.972 5.972 0 0 0 3.18-.911l1.06 1.696A7.963 7.963 0 0 1 12 17a7.963 7.963 0 0 1-4.24-1.215z"],"unicode":"","glyph":"M1050 800A100 100 0 0 0 1150 700V500A100 100 0 0 0 1050 400H996.9A400.04999999999995 400.04999999999995 0 0 0 600 50V150A300 300 0 0 1 900 450V750A300 300 0 1 1 300 750V400H150A100 100 0 0 0 50 500V700A100 100 0 0 0 150 800H203.1A400.04999999999995 400.04999999999995 0 0 0 996.9 800H1050zM388 410.75L441 495.55A298.6 298.6 0 0 1 600 450A298.6 298.6 0 0 1 759 495.55L811.9999999999999 410.75A398.15 398.15 0 0 0 600 350A398.15 398.15 0 0 0 388 410.75z","horizAdvX":"1200"},"customer-service-2-line":{"path":["M0 0h24v24H0z","M19.938 8H21a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-1.062A8.001 8.001 0 0 1 12 23v-2a6 6 0 0 0 6-6V9A6 6 0 1 0 6 9v7H3a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1.062a8.001 8.001 0 0 1 15.876 0zM3 10v4h1v-4H3zm17 0v4h1v-4h-1zM7.76 15.785l1.06-1.696A5.972 5.972 0 0 0 12 15a5.972 5.972 0 0 0 3.18-.911l1.06 1.696A7.963 7.963 0 0 1 12 17a7.963 7.963 0 0 1-4.24-1.215z"],"unicode":"","glyph":"M996.9 800H1050A100 100 0 0 0 1150 700V500A100 100 0 0 0 1050 400H996.9A400.04999999999995 400.04999999999995 0 0 0 600 50V150A300 300 0 0 1 900 450V750A300 300 0 1 1 300 750V400H150A100 100 0 0 0 50 500V700A100 100 0 0 0 150 800H203.1A400.04999999999995 400.04999999999995 0 0 0 996.9 800zM150 700V500H200V700H150zM1000 700V500H1050V700H1000zM388 410.75L441 495.55A298.6 298.6 0 0 1 600 450A298.6 298.6 0 0 1 759 495.55L811.9999999999999 410.75A398.15 398.15 0 0 0 600 350A398.15 398.15 0 0 0 388 410.75z","horizAdvX":"1200"},"customer-service-fill":{"path":["M0 0h24v24H0z","M22 17.002a6.002 6.002 0 0 1-4.713 5.86l-.638-1.914A4.003 4.003 0 0 0 19.465 19H17a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.938a8.001 8.001 0 0 0-15.876 0H7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5C2 6.477 6.477 2 12 2s10 4.477 10 10V17.002z"],"unicode":"","glyph":"M1100 349.9000000000001A300.09999999999997 300.09999999999997 0 0 0 864.3499999999999 56.9000000000001L832.4499999999998 152.6000000000001A200.15 200.15 0 0 1 973.25 250H850A100 100 0 0 0 750 350V550A100 100 0 0 0 850 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H350A100 100 0 0 0 450 550V350A100 100 0 0 0 350 250H200A100 100 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V349.9000000000001z","horizAdvX":"1200"},"customer-service-line":{"path":["M0 0h24v24H0z","M22 17.002a6.002 6.002 0 0 1-4.713 5.86l-.638-1.914A4.003 4.003 0 0 0 19.465 19H17a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.938a8.001 8.001 0 0 0-15.876 0H7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5C2 6.477 6.477 2 12 2s10 4.477 10 10V17.002zM20 17v-4h-3v4h3zM4 13v4h3v-4H4z"],"unicode":"","glyph":"M1100 349.9000000000001A300.09999999999997 300.09999999999997 0 0 0 864.3499999999999 56.9000000000001L832.4499999999998 152.6000000000001A200.15 200.15 0 0 1 973.25 250H850A100 100 0 0 0 750 350V550A100 100 0 0 0 850 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H350A100 100 0 0 0 450 550V350A100 100 0 0 0 350 250H200A100 100 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V349.9000000000001zM1000 350V550H850V350H1000zM200 550V350H350V550H200z","horizAdvX":"1200"},"dashboard-2-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 3c-3.866 0-7 3.134-7 7 0 1.852.72 3.537 1.894 4.789l.156.16 1.414-1.413C7.56 14.63 7 13.38 7 12c0-2.761 2.239-5 5-5 .448 0 .882.059 1.295.17l1.563-1.562C13.985 5.218 13.018 5 12 5zm6.392 4.143l-1.561 1.562c.11.413.169.847.169 1.295 0 1.38-.56 2.63-1.464 3.536l1.414 1.414C18.216 15.683 19 13.933 19 12c0-1.018-.217-1.985-.608-2.857zm-2.15-2.8l-3.725 3.724C12.352 10.023 12.179 10 12 10c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2c0-.179-.023-.352-.067-.517l3.724-3.726-1.414-1.414z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 950C406.7000000000001 950 250 793.3 250 600C250 507.4 286 423.1500000000001 344.7 360.55L352.5 352.55L423.2000000000001 423.2C378 468.5 350 531 350 600C350 738.05 461.95 850 600 850C622.4 850 644.1 847.05 664.75 841.5L742.9 919.6C699.25 939.1 650.9000000000001 950 600 950zM919.6 742.8499999999999L841.55 664.75C847.05 644.1 850 622.4 850 600C850 531 822.0000000000001 468.5 776.8 423.2000000000001L847.5 352.5C910.8 415.85 950 503.35 950 600C950 650.9000000000001 939.15 699.25 919.6 742.8499999999999zM812.1 882.8499999999999L625.85 696.65C617.6 698.85 608.95 700 600 700C544.75 700 500 655.25 500 600S544.75 500 600 500S700 544.75 700 600C700 608.95 698.85 617.6 696.65 625.85L882.85 812.15L812.15 882.8499999999999z","horizAdvX":"1200"},"dashboard-2-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm0 1c1.018 0 1.985.217 2.858.608L13.295 7.17C12.882 7.06 12.448 7 12 7c-2.761 0-5 2.239-5 5 0 1.38.56 2.63 1.464 3.536L7.05 16.95l-.156-.161C5.72 15.537 5 13.852 5 12c0-3.866 3.134-7 7-7zm6.392 4.143c.39.872.608 1.84.608 2.857 0 1.933-.784 3.683-2.05 4.95l-1.414-1.414C16.44 14.63 17 13.38 17 12c0-.448-.059-.882-.17-1.295l1.562-1.562zm-2.15-2.8l1.415 1.414-3.724 3.726c.044.165.067.338.067.517 0 1.105-.895 2-2 2s-2-.895-2-2 .895-2 2-2c.179 0 .352.023.517.067l3.726-3.724z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600S379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000zM600 950C650.9000000000001 950 699.25 939.15 742.9 919.6L664.75 841.5C644.1 847 622.4 850 600 850C461.95 850 350 738.05 350 600C350 531 378 468.5 423.2000000000001 423.2000000000001L352.5 352.5L344.7 360.5500000000001C286 423.15 250 507.4 250 600C250 793.3 406.7000000000001 950 600 950zM919.6 742.8499999999999C939.1 699.25 950 650.85 950 600C950 503.35 910.8 415.85 847.5 352.5L776.8 423.2000000000001C822.0000000000001 468.5 850 531 850 600C850 622.4 847.05 644.1 841.4999999999999 664.75L919.6 742.8499999999999zM812.1 882.8499999999999L882.85 812.15L696.65 625.85C698.85 617.6 700 608.95 700 600C700 544.75 655.25 500 600 500S500 544.75 500 600S544.75 700 600 700C608.95 700 617.6 698.85 625.85 696.65L812.15 882.85z","horizAdvX":"1200"},"dashboard-3-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm4.596 5.404c-.204-.205-.526-.233-.763-.067-2.89 2.028-4.52 3.23-4.894 3.602-.585.586-.585 1.536 0 2.122.586.585 1.536.585 2.122 0 .219-.22 1.418-1.851 3.598-4.897.168-.234.141-.556-.063-.76zM17.5 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-11 0c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm2.318-3.596c-.39-.39-1.024-.39-1.414 0-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0 .39-.39.39-1.024 0-1.414zM12 5.5c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM829.8 829.8C819.6 840.05 803.5 841.45 791.65 833.1500000000001C647.15 731.75 565.65 671.65 546.95 653.05C517.6999999999999 623.75 517.6999999999999 576.25 546.95 546.95C576.25 517.6999999999999 623.75 517.6999999999999 653.05 546.95C664 557.95 723.9499999999999 639.5 832.9499999999999 791.8C841.3499999999999 803.5 839.9999999999999 819.6 829.8 829.8zM875 650C847.4 650 825 627.6 825 600S847.4 550 875 550S925 572.4 925 600S902.6 650 875 650zM325 650C297.4000000000001 650 275 627.6 275 600S297.4000000000001 550 325 550S375 572.4 375 600S352.6 650 325 650zM440.9 829.8C421.4 849.3 389.7 849.3 370.2 829.8C350.7 810.3 350.7 778.6500000000001 370.2 759.1C389.7 739.5999999999999 421.35 739.5999999999999 440.9 759.1C460.4 778.6 460.4 810.3 440.9 829.8zM600 925C572.4 925 550 902.6 550 875S572.4 825 600 825S650 847.4000000000001 650 875S627.6 925 600 925z","horizAdvX":"1200"},"dashboard-3-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm3.833 3.337c.237-.166.559-.138.763.067.204.204.23.526.063.76-2.18 3.046-3.38 4.678-3.598 4.897-.586.585-1.536.585-2.122 0-.585-.586-.585-1.536 0-2.122.374-.373 2.005-1.574 4.894-3.602zM17.5 11c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm-11 0c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm2.318-3.596c.39.39.39 1.023 0 1.414-.39.39-1.024.39-1.414 0-.39-.39-.39-1.024 0-1.414.39-.39 1.023-.39 1.414 0zM12 5.5c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600S379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000zM791.65 833.1500000000001C803.5 841.45 819.6 840.05 829.8 829.8C840 819.6 841.3000000000001 803.5 832.9499999999999 791.8C723.9499999999999 639.5 663.95 557.9000000000001 653.05 546.95C623.75 517.6999999999999 576.25 517.6999999999999 546.95 546.95C517.6999999999999 576.25 517.6999999999999 623.75 546.95 653.05C565.65 671.6999999999999 647.1999999999999 731.75 791.65 833.1500000000001zM875 650C902.6 650 925 627.6 925 600S902.6 550 875 550S825 572.4 825 600S847.4 650 875 650zM325 650C352.6 650 375 627.6 375 600S352.6 550 325 550S275 572.4 275 600S297.4000000000001 650 325 650zM440.9 829.8C460.4 810.3 460.4 778.6500000000001 440.9 759.1C421.4 739.5999999999999 389.7 739.5999999999999 370.2 759.1C350.7 778.6 350.7 810.3 370.2 829.8C389.7 849.3 421.35 849.3 440.9 829.8zM600 925C627.6 925 650 902.6 650 875S627.6 825 600 825S550 847.4000000000001 550 875S572.4 925 600 925z","horizAdvX":"1200"},"dashboard-fill":{"path":["M0 0h24v24H0z","M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"],"unicode":"","glyph":"M150 550H550V1050H150V550zM150 150H550V450H150V150zM650 150H1050V650H650V150zM650 1050V750H1050V1050H650z","horizAdvX":"1200"},"dashboard-line":{"path":["M0 0h24v24H0z","M13 21V11h8v10h-8zM3 13V3h8v10H3zm6-2V5H5v6h4zM3 21v-6h8v6H3zm2-2h4v-2H5v2zm10 0h4v-6h-4v6zM13 3h8v6h-8V3zm2 2v2h4V5h-4z"],"unicode":"","glyph":"M650 150V650H1050V150H650zM150 550V1050H550V550H150zM450 650V950H250V650H450zM150 150V450H550V150H150zM250 250H450V350H250V250zM750 250H950V550H750V250zM650 1050H1050V750H650V1050zM750 950V850H950V950H750z","horizAdvX":"1200"},"database-2-fill":{"path":["M0 0h24v24H0z","M21 9.5v3c0 2.485-4.03 4.5-9 4.5s-9-2.015-9-4.5v-3c0 2.485 4.03 4.5 9 4.5s9-2.015 9-4.5zm-18 5c0 2.485 4.03 4.5 9 4.5s9-2.015 9-4.5v3c0 2.485-4.03 4.5-9 4.5s-9-2.015-9-4.5v-3zm9-2.5c-4.97 0-9-2.015-9-4.5S7.03 3 12 3s9 2.015 9 4.5-4.03 4.5-9 4.5z"],"unicode":"","glyph":"M1050 725V575C1050 450.75 848.5 350 600 350S150 450.75 150 575V725C150 600.75 351.5 500 600 500S1050 600.75 1050 725zM150 475C150 350.75 351.5 250 600 250S1050 350.75 1050 475V325C1050 200.75 848.5 100 600 100S150 200.75 150 325V475zM600 600C351.5 600 150 700.75 150 825S351.5 1050 600 1050S1050 949.25 1050 825S848.5 600 600 600z","horizAdvX":"1200"},"database-2-line":{"path":["M0 0h24v24H0z","M5 12.5c0 .313.461.858 1.53 1.393C7.914 14.585 9.877 15 12 15c2.123 0 4.086-.415 5.47-1.107 1.069-.535 1.53-1.08 1.53-1.393v-2.171C17.35 11.349 14.827 12 12 12s-5.35-.652-7-1.671V12.5zm14 2.829C17.35 16.349 14.827 17 12 17s-5.35-.652-7-1.671V17.5c0 .313.461.858 1.53 1.393C7.914 19.585 9.877 20 12 20c2.123 0 4.086-.415 5.47-1.107 1.069-.535 1.53-1.08 1.53-1.393v-2.171zM3 17.5v-10C3 5.015 7.03 3 12 3s9 2.015 9 4.5v10c0 2.485-4.03 4.5-9 4.5s-9-2.015-9-4.5zm9-7.5c2.123 0 4.086-.415 5.47-1.107C18.539 8.358 19 7.813 19 7.5c0-.313-.461-.858-1.53-1.393C16.086 5.415 14.123 5 12 5c-2.123 0-4.086.415-5.47 1.107C5.461 6.642 5 7.187 5 7.5c0 .313.461.858 1.53 1.393C7.914 9.585 9.877 10 12 10z"],"unicode":"","glyph":"M250 575C250 559.35 273.05 532.1 326.5 505.3499999999999C395.7 470.75 493.85 450 600 450C706.1500000000001 450 804.3 470.75 873.5 505.3499999999999C926.95 532.1 950 559.35 950 575V683.55C867.5000000000001 632.55 741.35 600 600 600S332.5 632.5999999999999 250 683.55V575zM950 433.55C867.5000000000001 382.55 741.35 350 600 350S332.5 382.6 250 433.55V325C250 309.35 273.05 282.1 326.5 255.3499999999999C395.7 220.75 493.85 200 600 200C706.1500000000001 200 804.3 220.75 873.5 255.3499999999999C926.95 282.1 950 309.3499999999999 950 325V433.55zM150 325V825C150 949.25 351.5 1050 600 1050S1050 949.25 1050 825V325C1050 200.75 848.5 100 600 100S150 200.75 150 325zM600 700C706.1500000000001 700 804.3 720.75 873.5 755.3499999999999C926.95 782.0999999999999 950 809.35 950 825C950 840.65 926.95 867.9 873.5 894.65C804.3 929.25 706.15 950 600 950C493.85 950 395.7 929.25 326.5 894.65C273.05 867.9 250 840.65 250 825C250 809.35 273.05 782.0999999999999 326.5 755.3499999999999C395.7 720.75 493.85 700 600 700z","horizAdvX":"1200"},"database-fill":{"path":["M0 0h24v24H0z","M11 7V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h8zm-6 9v2h5v-2H5zm9 0v2h5v-2h-5zm0-3v2h5v-2h-5zm0-3v2h5v-2h-5zm-9 3v2h5v-2H5z"],"unicode":"","glyph":"M550 850V1000A50 50 0 0 0 600 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H550zM250 400V300H500V400H250zM700 400V300H950V400H700zM700 550V450H950V550H700zM700 700V600H950V700H700zM250 550V450H500V550H250z","horizAdvX":"1200"},"database-line":{"path":["M0 0h24v24H0z","M11 19V9H4v10h7zm0-12V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h8zm2-2v14h7V5h-7zM5 16h5v2H5v-2zm9 0h5v2h-5v-2zm0-3h5v2h-5v-2zm0-3h5v2h-5v-2zm-9 3h5v2H5v-2z"],"unicode":"","glyph":"M550 250V750H200V250H550zM550 850V1000A50 50 0 0 0 600 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H550zM650 950V250H1000V950H650zM250 400H500V300H250V400zM700 400H950V300H700V400zM700 550H950V450H700V550zM700 700H950V600H700V700zM250 550H500V450H250V550z","horizAdvX":"1200"},"delete-back-2-fill":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zM13 10.586l-2.828-2.829-1.415 1.415L11.586 12l-2.829 2.828 1.415 1.415L13 13.414l2.828 2.829 1.415-1.415L14.414 12l2.829-2.828-1.415-1.415L13 10.586z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM650 670.6999999999999L508.6 812.1500000000001L437.8500000000001 741.4L579.3000000000001 600L437.85 458.6L508.6 387.85L650 529.3000000000001L791.4 387.85L862.15 458.6L720.6999999999999 600L862.15 741.4L791.4 812.15L650 670.6999999999999z","horizAdvX":"1200"},"delete-back-2-line":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zm.535 2l-4.666 7 4.666 7H20V5H7.07zM13 10.586l2.828-2.829 1.415 1.415L14.414 12l2.829 2.828-1.415 1.415L13 13.414l-2.828 2.829-1.415-1.415L11.586 12 8.757 9.172l1.415-1.415L13 10.586z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM353.5 950L120.2 600L353.5 250H1000V950H353.5zM650 670.6999999999999L791.4 812.1500000000001L862.15 741.4L720.6999999999999 600L862.15 458.6L791.4 387.85L650 529.3000000000001L508.6 387.85L437.8500000000001 458.6L579.3000000000001 600L437.85 741.4L508.6 812.15L650 670.6999999999999z","horizAdvX":"1200"},"delete-back-fill":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zM16 11H9v2h7v-2z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM800 650H450V550H800V650z","horizAdvX":"1200"},"delete-back-line":{"path":["M0 0h24v24H0z","M6.535 3H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.832-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3zm.535 2l-4.666 7 4.666 7H20V5H7.07zM16 11v2H9v-2h7z"],"unicode":"","glyph":"M326.75 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H326.75A50 50 0 0 0 285.1500000000001 172.25L18.5 572.25A50 50 0 0 0 18.5 627.75L285.1500000000001 1027.75A50 50 0 0 0 326.75 1050zM353.5 950L120.2 600L353.5 250H1000V950H353.5zM800 650V550H450V650H800z","horizAdvX":"1200"},"delete-bin-2-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5zm6.414 8l1.768-1.768-1.414-1.414L12 12.586l-1.768-1.768-1.414 1.414L10.586 14l-1.768 1.768 1.414 1.414L12 15.414l1.768 1.768 1.414-1.414L13.414 14zM9 4v2h6V4H9z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350zM670.6999999999999 500L759.1 588.4000000000001L688.4000000000001 659.1L600 570.6999999999999L511.6 659.1L440.9 588.4000000000001L529.3000000000001 500L440.9 411.5999999999999L511.6 340.8999999999999L600 429.3000000000001L688.4000000000001 340.9000000000001L759.1 411.6L670.6999999999999 500zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-2-line":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-4.586 6l1.768 1.768-1.414 1.414L12 15.414l-1.768 1.768-1.414-1.414L10.586 14l-1.768-1.768 1.414-1.414L12 12.586l1.768-1.768 1.414 1.414L13.414 14zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM900 800H300V200H900V800zM670.6999999999999 500L759.1 411.5999999999999L688.4000000000001 340.8999999999999L600 429.3000000000001L511.6 340.9000000000001L440.9 411.6L529.3000000000001 500L440.9 588.4000000000001L511.6 659.1L600 570.6999999999999L688.4000000000001 659.1L759.1 588.4000000000001L670.6999999999999 500zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-3-fill":{"path":["M0 0h24v24H0z","M20 7v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7H2V5h20v2h-2zm-9 2v2h2V9h-2zm0 3v2h2v-2h-2zm0 3v2h2v-2h-2zM7 2h10v2H7V2z"],"unicode":"","glyph":"M1000 850V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V850H100V950H1100V850H1000zM550 750V650H650V750H550zM550 600V500H650V600H550zM550 450V350H650V450H550zM350 1100H850V1000H350V1100z","horizAdvX":"1200"},"delete-bin-3-line":{"path":["M0 0h24v24H0z","M20 7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7H2V5h20v2h-2zM6 7v13h12V7H6zm5 2h2v2h-2V9zm0 3h2v2h-2v-2zm0 3h2v2h-2v-2zM7 2h10v2H7V2z"],"unicode":"","glyph":"M1000 850V200A100 100 0 0 0 900 100H300A100 100 0 0 0 200 200V850H100V950H1100V850H1000zM300 850V200H900V850H300zM550 750H650V650H550V750zM550 600H650V500H550V600zM550 450H650V350H550V450zM350 1100H850V1000H350V1100z","horizAdvX":"1200"},"delete-bin-4-fill":{"path":["M0 0h24v24H0z","M20 7v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7H2V5h20v2h-2zm-9 3v7h2v-7h-2zM7 2h10v2H7V2z"],"unicode":"","glyph":"M1000 850V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V850H100V950H1100V850H1000zM550 700V350H650V700H550zM350 1100H850V1000H350V1100z","horizAdvX":"1200"},"delete-bin-4-line":{"path":["M0 0h24v24H0z","M20 7v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7H2V5h20v2h-2zM6 7v13h12V7H6zm1-5h10v2H7V2zm4 8h2v7h-2v-7z"],"unicode":"","glyph":"M1000 850V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V850H100V950H1100V850H1000zM300 850V200H900V850H300zM350 1100H850V1000H350V1100zM550 700H650V350H550V700z","horizAdvX":"1200"},"delete-bin-5-fill":{"path":["M0 0h24v24H0z","M4 8h16v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8zm3-3V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h5v2H2V5h5zm2-1v1h6V4H9zm0 8v6h2v-6H9zm4 0v6h2v-6h-2z"],"unicode":"","glyph":"M200 800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800zM350 950V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V950H1100V850H100V950H350zM450 1000V950H750V1000H450zM450 600V300H550V600H450zM650 600V300H750V600H650z","horizAdvX":"1200"},"delete-bin-5-line":{"path":["M0 0h24v24H0z","M4 8h16v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8zm2 2v10h12V10H6zm3 2h2v6H9v-6zm4 0h2v6h-2v-6zM7 5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2h5v2H2V5h5zm2-1v1h6V4H9z"],"unicode":"","glyph":"M200 800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800zM300 700V200H900V700H300zM450 600H550V300H450V600zM650 600H750V300H650V600zM350 950V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V950H1100V850H100V950H350zM450 1000V950H750V1000H450z","horizAdvX":"1200"},"delete-bin-6-fill":{"path":["M0 0h24v24H0z","M17 4h5v2h-2v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6H2V4h5V2h10v2zM9 9v8h2V9H9zm4 0v8h2V9h-2z"],"unicode":"","glyph":"M850 1000H1100V900H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V900H100V1000H350V1100H850V1000zM450 750V350H550V750H450zM650 750V350H750V750H650z","horizAdvX":"1200"},"delete-bin-6-line":{"path":["M0 0h24v24H0z","M7 4V2h10v2h5v2h-2v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6H2V4h5zM6 6v14h12V6H6zm3 3h2v8H9V9zm4 0h2v8h-2V9z"],"unicode":"","glyph":"M350 1000V1100H850V1000H1100V900H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V900H100V1000H350zM300 900V200H900V900H300zM450 750H550V350H450V750zM650 750H750V350H650V750z","horizAdvX":"1200"},"delete-bin-7-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5zm2-2v2h6V4H9z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-7-line":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM900 800H300V200H900V800zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-fill":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm-8 5v6h2v-6H9zm4 0v6h2v-6h-2zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM450 650V350H550V650H450zM650 650V350H750V650H650zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-bin-line":{"path":["M0 0h24v24H0z","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-9 3h2v6H9v-6zm4 0h2v6h-2v-6zM9 4v2h6V4H9z"],"unicode":"","glyph":"M850 900H1100V800H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V800H100V900H350V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V900zM900 800H300V200H900V800zM450 650H550V350H450V650zM650 650H750V350H650V650zM450 1000V900H750V1000H450z","horizAdvX":"1200"},"delete-column":{"path":["M0 0H24V24H0z","M12 3c.552 0 1 .448 1 1v8c.835-.628 1.874-1 3-1 2.761 0 5 2.239 5 5s-2.239 5-5 5c-1.032 0-1.99-.313-2.787-.848L13 20c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zm-1 2H7v14h4V5zm8 10h-6v2h6v-2z"],"unicode":"","glyph":"M600 1050C627.6 1050 650 1027.6 650 1000V600C691.75 631.4 743.7 650 800 650C938.05 650 1050 538.05 1050 400S938.05 150 800 150C748.4 150 700.5 165.6499999999999 660.6500000000001 192.4L650 200C650 172.4000000000001 627.6 150 600 150H300C272.4000000000001 150 250 172.4000000000001 250 200V1000C250 1027.6 272.4000000000001 1050 300 1050H600zM550 950H350V250H550V950zM950 450H650V350H950V450z","horizAdvX":"1200"},"delete-row":{"path":["M0 0H24V24H0z","M20 5c.552 0 1 .448 1 1v6c0 .552-.448 1-1 1 .628.835 1 1.874 1 3 0 2.761-2.239 5-5 5s-5-2.239-5-5c0-1.126.372-2.165 1-3H4c-.552 0-1-.448-1-1V6c0-.552.448-1 1-1h16zm-7 10v2h6v-2h-6zm6-8H5v4h14V7z"],"unicode":"","glyph":"M1000 950C1027.6 950 1050 927.6 1050 900V600C1050 572.4 1027.6 550 1000 550C1031.4 508.25 1050 456.3 1050 400C1050 261.9500000000001 938.05 150 800 150S550 261.9500000000001 550 400C550 456.3 568.6 508.25 600 550H200C172.4 550 150 572.4 150 600V900C150 927.6 172.4 950 200 950H1000zM650 450V350H950V450H650zM950 850H250V650H950V850z","horizAdvX":"1200"},"device-fill":{"path":["M0 0h24v24H0z","M19 6h-8a1 1 0 0 0-1 1v13H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v3zm-6 2h8a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M950 900H550A50 50 0 0 1 500 850V200H200A50 50 0 0 0 150 250V1050A50 50 0 0 0 200 1100H900A50 50 0 0 0 950 1050V900zM650 800H1050A50 50 0 0 0 1100 750V150A50 50 0 0 0 1050 100H650A50 50 0 0 0 600 150V750A50 50 0 0 0 650 800z","horizAdvX":"1200"},"device-line":{"path":["M0 0h24v24H0z","M19 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5zm-2 0V4H5v14h7V9a1 1 0 0 1 1-1h4zm-3 2v10h6V10h-6z"],"unicode":"","glyph":"M950 800H1050A50 50 0 0 0 1100 750V150A50 50 0 0 0 1050 100H650A50 50 0 0 0 600 150V200H200A50 50 0 0 0 150 250V1050A50 50 0 0 0 200 1100H900A50 50 0 0 0 950 1050V800zM850 800V1000H250V300H600V750A50 50 0 0 0 650 800H850zM700 700V200H1000V700H700z","horizAdvX":"1200"},"device-recover-fill":{"path":["M0 0h24v24H0z","M19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14zm-7 5a5 5 0 1 0 .955 9.909L12 15a3 3 0 0 1 0-6c1.598 0 3 1.34 3 3h-2.5l2.128 4.254A5 5 0 0 0 12 7z"],"unicode":"","glyph":"M950 1100A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950zM600 850A250 250 0 1 1 647.75 354.5500000000001L600 450A150 150 0 0 0 600 750C679.9000000000001 750 750 683 750 600H625L731.4 387.3000000000001A250 250 0 0 1 600 850z","horizAdvX":"1200"},"device-recover-line":{"path":["M0 0h24v24H0z","M19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14zm-1 2H6v16h12V4zm-6 3a5 5 0 0 1 2.628 9.254L12.5 12H15a3 3 0 1 0-3 3l.955 1.909A5 5 0 1 1 12 7z"],"unicode":"","glyph":"M950 1100A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950zM900 1000H300V200H900V1000zM600 850A250 250 0 0 0 731.4 387.3000000000001L625 600H750A150 150 0 1 1 600 450L647.75 354.5500000000001A250 250 0 1 0 600 850z","horizAdvX":"1200"},"dingding-fill":{"path":["M0 0h24v24H0z","M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm4.49 9.04l-.006.014c-.42.898-1.516 2.66-1.516 2.66l-.005-.012-.32.558h1.543l-2.948 3.919.67-2.666h-1.215l.422-1.763c-.341.082-.745.195-1.223.349 0 0-.646.378-1.862-.729 0 0-.82-.722-.344-.902.202-.077.981-.175 1.594-.257.83-.112 1.339-.172 1.339-.172s-2.555.038-3.161-.057c-.606-.095-1.375-1.107-1.539-1.996 0 0-.253-.488.545-.257.798.231 4.101.9 4.101.9S8.27 9.312 7.983 8.99c-.286-.32-.841-1.754-.769-2.634 0 0 .031-.22.257-.16 0 0 3.176 1.45 5.347 2.245 2.172.795 4.06 1.199 3.816 2.228-.02.087-.072.216-.144.37z"],"unicode":"","glyph":"M600 1100C323.85 1100 100 876.15 100 600S323.85 100 600 100S1100 323.85 1100 600S876.15 1100 600 1100zM824.5000000000001 648L824.2 647.3000000000001C803.2 602.4000000000001 748.4000000000001 514.3000000000001 748.4000000000001 514.3000000000001L748.1500000000001 514.9000000000001L732.1500000000001 487.0000000000001H809.3L661.9 291.0500000000001L695.4 424.3500000000002H634.65L655.75 512.5000000000001C638.7 508.4000000000001 618.5 502.7500000000001 594.6 495.0500000000001C594.6 495.0500000000001 562.3 476.1500000000001 501.4999999999999 531.5C501.4999999999999 531.5 460.4999999999999 567.6 484.3 576.6C494.4 580.45 533.35 585.35 564 589.4499999999999C605.5 595.05 630.95 598.0500000000001 630.95 598.0500000000001S503.2 596.15 472.9 600.9000000000001C442.6 605.6500000000001 404.1500000000001 656.25 395.9500000000001 700.7C395.9500000000001 700.7 383.3 725.1 423.2000000000001 713.5500000000001C463.1 702 628.2500000000001 668.5500000000001 628.2500000000001 668.5500000000001S413.5 734.4000000000001 399.15 750.5C384.85 766.5 357.1 838.2 360.7 882.2C360.7 882.2 362.25 893.2 373.55 890.2C373.55 890.2 532.3499999999999 817.7 640.9 777.95C749.5 738.2 843.9 718 831.7 666.5500000000001C830.7 662.2 828.1 655.7500000000001 824.5000000000001 648.0500000000001z","horizAdvX":"1200"},"dingding-line":{"path":["M0 0h24v24H0z","M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm4.49 9.04l-.006.014c-.42.898-1.516 2.66-1.516 2.66l-.005-.012-.32.558h1.543l-2.948 3.919.67-2.666h-1.215l.422-1.763c-.341.082-.745.195-1.223.349 0 0-.646.378-1.862-.729 0 0-.82-.722-.344-.902.202-.077.981-.175 1.594-.257.83-.112 1.339-.172 1.339-.172s-2.555.038-3.161-.057c-.606-.095-1.375-1.107-1.539-1.996 0 0-.253-.488.545-.257.798.231 4.101.9 4.101.9S8.27 9.312 7.983 8.99c-.286-.32-.841-1.754-.769-2.634 0 0 .031-.22.257-.16 0 0 3.176 1.45 5.347 2.245 2.172.795 4.06 1.199 3.816 2.228-.02.087-.072.216-.144.37z"],"unicode":"","glyph":"M600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM824.5000000000001 648L824.2 647.3000000000001C803.2 602.4000000000001 748.4000000000001 514.3000000000001 748.4000000000001 514.3000000000001L748.1500000000001 514.9000000000001L732.1500000000001 487.0000000000001H809.3L661.9 291.0500000000001L695.4 424.3500000000002H634.65L655.75 512.5000000000001C638.7 508.4000000000001 618.5 502.7500000000001 594.6 495.0500000000001C594.6 495.0500000000001 562.3 476.1500000000001 501.4999999999999 531.5C501.4999999999999 531.5 460.4999999999999 567.6 484.3 576.6C494.4 580.45 533.35 585.35 564 589.4499999999999C605.5 595.05 630.95 598.0500000000001 630.95 598.0500000000001S503.2 596.15 472.9 600.9000000000001C442.6 605.6500000000001 404.1500000000001 656.25 395.9500000000001 700.7C395.9500000000001 700.7 383.3 725.1 423.2000000000001 713.5500000000001C463.1 702 628.2500000000001 668.5500000000001 628.2500000000001 668.5500000000001S413.5 734.4000000000001 399.15 750.5C384.85 766.5 357.1 838.2 360.7 882.2C360.7 882.2 362.25 893.2 373.55 890.2C373.55 890.2 532.3499999999999 817.7 640.9 777.95C749.5 738.2 843.9 718 831.7 666.5500000000001C830.7 662.2 828.1 655.7500000000001 824.5000000000001 648.0500000000001z","horizAdvX":"1200"},"direction-fill":{"path":["M0 0h24v24H0z","M9 10a1 1 0 0 0-1 1v4h2v-3h3v2.5l3.5-3.5L13 7.5V10H9zm3.707-8.607l9.9 9.9a1 1 0 0 1 0 1.414l-9.9 9.9a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l9.9-9.9a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M450 700A50 50 0 0 1 400 650V450H500V600H650V475L825 650L650 825V700H450zM635.35 1130.35L1130.35 635.3499999999999A50 50 0 0 0 1130.35 564.65L635.3499999999999 69.6500000000001A50 50 0 0 0 564.65 69.6500000000001L69.65 564.6500000000001A50 50 0 0 0 69.65 635.35L564.65 1130.3500000000001A50 50 0 0 0 635.3499999999999 1130.3500000000001z","horizAdvX":"1200"},"direction-line":{"path":["M0 0h24v24H0z","M12 3.515L3.515 12 12 20.485 20.485 12 12 3.515zm.707-2.122l9.9 9.9a1 1 0 0 1 0 1.414l-9.9 9.9a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414l9.9-9.9a1 1 0 0 1 1.414 0zM13 10V7.5l3.5 3.5-3.5 3.5V12h-3v3H8v-4a1 1 0 0 1 1-1h4z"],"unicode":"","glyph":"M600 1024.25L175.75 600L600 175.75L1024.25 600L600 1024.25zM635.35 1130.35L1130.35 635.3499999999999A50 50 0 0 0 1130.35 564.65L635.3499999999999 69.6500000000001A50 50 0 0 0 564.65 69.6500000000001L69.65 564.6500000000001A50 50 0 0 0 69.65 635.35L564.65 1130.3500000000001A50 50 0 0 0 635.3499999999999 1130.3500000000001zM650 700V825L825 650L650 475V600H500V450H400V650A50 50 0 0 0 450 700H650z","horizAdvX":"1200"},"disc-fill":{"path":["M0 0h24v24H0z","M13 9.17A3 3 0 1 0 15 12V2.458c4.057 1.274 7 5.064 7 9.542 0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2c.337 0 .671.017 1 .05v7.12z"],"unicode":"","glyph":"M650 741.5A150 150 0 1 1 750 600V1077.1C952.8500000000003 1013.4 1100 823.9 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100C616.85 1100 633.55 1099.15 650 1097.5V741.5z","horizAdvX":"1200"},"disc-line":{"path":["M0 0h24v24H0z","M15 4.582V12a3 3 0 1 1-2-2.83V2.05c5.053.501 9 4.765 9 9.95 0 5.523-4.477 10-10 10S2 17.523 2 12c0-5.185 3.947-9.449 9-9.95v2.012A8.001 8.001 0 0 0 12 20a8 8 0 0 0 3-15.418z"],"unicode":"","glyph":"M750 970.9V600A150 150 0 1 0 650 741.5V1097.5C902.65 1072.45 1100 859.25 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400 400 0 0 1 750 970.9z","horizAdvX":"1200"},"discord-fill":{"path":["M0 0h24v24H0z","M10.076 11c.6 0 1.086.45 1.075 1 0 .55-.474 1-1.075 1C9.486 13 9 12.55 9 12s.475-1 1.076-1zm3.848 0c.601 0 1.076.45 1.076 1s-.475 1-1.076 1c-.59 0-1.075-.45-1.075-1s.474-1 1.075-1zm4.967-9C20.054 2 21 2.966 21 4.163V23l-2.211-1.995-1.245-1.176-1.317-1.25.546 1.943H5.109C3.946 20.522 3 19.556 3 18.359V4.163C3 2.966 3.946 2 5.109 2H18.89zm-3.97 13.713c2.273-.073 3.148-1.596 3.148-1.596 0-3.381-1.482-6.122-1.482-6.122-1.48-1.133-2.89-1.102-2.89-1.102l-.144.168c1.749.546 2.561 1.334 2.561 1.334a8.263 8.263 0 0 0-3.096-1.008 8.527 8.527 0 0 0-2.077.02c-.062 0-.114.011-.175.021-.36.032-1.235.168-2.335.662-.38.178-.607.305-.607.305s.854-.83 2.705-1.376l-.103-.126s-1.409-.031-2.89 1.103c0 0-1.481 2.74-1.481 6.121 0 0 .864 1.522 3.137 1.596 0 0 .38-.472.69-.871-1.307-.4-1.8-1.24-1.8-1.24s.102.074.287.179c.01.01.02.021.041.031.031.022.062.032.093.053.257.147.514.262.75.357.422.168.926.336 1.513.452a7.06 7.06 0 0 0 2.664.01 6.666 6.666 0 0 0 1.491-.451c.36-.137.761-.337 1.183-.62 0 0-.514.861-1.862 1.25.309.399.68.85.68.85z"],"unicode":"","glyph":"M503.8 650C533.8 650 558.1 627.5 557.55 600C557.55 572.5 533.85 550 503.8 550C474.3 550 450 572.5 450 600S473.75 650 503.8 650zM696.1999999999999 650C726.2499999999999 650 750 627.5 750 600S726.25 550 696.1999999999999 550C666.6999999999999 550 642.45 572.5 642.45 600S666.15 650 696.1999999999999 650zM944.55 1100C1002.7 1100 1050 1051.7 1050 991.85V50L939.45 149.75L877.2 208.55L811.35 271.05L838.65 173.8999999999999H255.45C197.3 173.9000000000001 150 222.1999999999999 150 282.05V991.85C150 1051.7 197.3 1100 255.45 1100H944.5zM746.0499999999998 414.35C859.6999999999999 418.0000000000001 903.45 494.1500000000001 903.45 494.1500000000001C903.45 663.2 829.35 800.25 829.35 800.25C755.3499999999999 856.9000000000001 684.8499999999999 855.3500000000001 684.8499999999999 855.3500000000001L677.65 846.95C765.1 819.6500000000001 805.6999999999998 780.25 805.6999999999998 780.25A413.15 413.15 0 0 1 650.8999999999999 830.6500000000001A426.34999999999997 426.34999999999997 0 0 1 547.0499999999998 829.6500000000001C543.9499999999999 829.6500000000001 541.3499999999998 829.1 538.2999999999998 828.6C520.2999999999998 827 476.5499999999998 820.2 421.5499999999999 795.5C402.5499999999999 786.5999999999999 391.1999999999999 780.25 391.1999999999999 780.25S433.8999999999999 821.75 526.4499999999998 849.05L521.2999999999998 855.35S450.8499999999998 856.9 376.7999999999998 800.2C376.7999999999998 800.2 302.7499999999999 663.1999999999999 302.7499999999999 494.15C302.7499999999999 494.15 345.9499999999998 418.05 459.5999999999999 414.3499999999999C459.5999999999999 414.3499999999999 478.5999999999999 437.95 494.0999999999998 457.9C428.7499999999998 477.9 404.0999999999998 519.9 404.0999999999998 519.9S409.1999999999998 516.2 418.4499999999998 510.9499999999999C418.9499999999998 510.4499999999999 419.4499999999998 509.9 420.4999999999999 509.4C422.0499999999999 508.3 423.5999999999998 507.8 425.1499999999998 506.7499999999999C437.9999999999999 499.3999999999999 450.8499999999998 493.6499999999999 462.6499999999998 488.9C483.7499999999999 480.5 508.9499999999998 472.0999999999999 538.2999999999998 466.3A353 353 0 0 1 671.4999999999998 465.8A333.3 333.3 0 0 1 746.0499999999998 488.35C764.0499999999997 495.2 784.0999999999998 505.1999999999999 805.1999999999998 519.3499999999999C805.1999999999998 519.3499999999999 779.4999999999998 476.3 712.0999999999998 456.8499999999999C727.5499999999997 436.9 746.0999999999998 414.3499999999999 746.0999999999998 414.3499999999999z","horizAdvX":"1200"},"discord-line":{"path":["M0 0h24v24H0z","M13.914 14.58a8.998 8.998 0 0 1-.484.104 7.06 7.06 0 0 1-2.664-.01c-.154-.03-.372-.083-.653-.158l-.921 1.197c-2.273-.073-3.137-1.596-3.137-1.596 0-3.381 1.481-6.122 1.481-6.122 1.481-1.133 2.89-1.102 2.89-1.102l.403.525a1.12 1.12 0 0 1 .112-.01 8.527 8.527 0 0 1 2.314.01l.442-.525s1.41-.031 2.89 1.103c0 0 1.482 2.74 1.482 6.121 0 0-.875 1.522-3.148 1.596l-1.007-1.134zM10.076 11C9.475 11 9 11.45 9 12s.485 1 1.076 1c.6 0 1.075-.45 1.075-1 .01-.55-.474-1-1.075-1zm3.848 0c-.6 0-1.075.45-1.075 1s.485 1 1.075 1c.601 0 1.076-.45 1.076-1s-.475-1-1.076-1zM21 23l-4.99-5H19V4H5v14h11.003l.57 2H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v19z"],"unicode":"","glyph":"M695.6999999999999 471A449.8999999999999 449.8999999999999 0 0 0 671.5 465.8000000000001A353 353 0 0 0 538.3 466.3000000000001C530.6 467.8 519.7 470.45 505.65 474.2L459.6 414.3499999999999C345.9500000000001 418 302.75 494.15 302.75 494.15C302.75 663.1999999999999 376.8 800.25 376.8 800.25C450.85 856.9 521.3 855.3499999999999 521.3 855.3499999999999L541.45 829.0999999999999A56.00000000000001 56.00000000000001 0 0 0 547.0500000000001 829.5999999999999A426.34999999999997 426.34999999999997 0 0 0 662.75 829.0999999999999L684.85 855.3499999999999S755.35 856.9 829.35 800.2C829.35 800.2 903.45 663.1999999999999 903.45 494.15C903.45 494.15 859.6999999999999 418.05 746.05 414.3499999999999L695.6999999999999 471.05zM503.8 650C473.75 650 450 627.5 450 600S474.25 550 503.8 550C533.8 550 557.55 572.5 557.55 600C558.05 627.5 533.85 650 503.8 650zM696.1999999999999 650C666.2 650 642.45 627.5 642.45 600S666.6999999999999 550 696.1999999999999 550C726.2499999999999 550 750 572.5 750 600S726.25 650 696.1999999999999 650zM1050 50L800.4999999999999 300H950V1000H250V300H800.15L828.65 200H250A100 100 0 0 0 150 300V1000A100 100 0 0 0 250 1100H950A100 100 0 0 0 1050 1000V50z","horizAdvX":"1200"},"discuss-fill":{"path":["M0 0h24v24H0z","M16.8 19L14 22.5 11.2 19H6a1 1 0 0 1-1-1V7.103a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1V18a1 1 0 0 1-1 1h-5.2zM2 2h17v2H3v11H1V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M840 250L700 75L560 250H300A50 50 0 0 0 250 300V844.85A50 50 0 0 0 300 894.85H1100A50 50 0 0 0 1150 844.85V300A50 50 0 0 0 1100 250H840zM100 1100H950V1000H150V450H50V1050A50 50 0 0 0 100 1100z","horizAdvX":"1200"},"discuss-line":{"path":["M0 0h24v24H0z","M14 22.5L11.2 19H6a1 1 0 0 1-1-1V7.103a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1V18a1 1 0 0 1-1 1h-5.2L14 22.5zm1.839-5.5H21V8.103H7V17H12.161L14 19.298 15.839 17zM2 2h17v2H3v11H1V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M700 75L560 250H300A50 50 0 0 0 250 300V844.85A50 50 0 0 0 300 894.85H1100A50 50 0 0 0 1150 844.85V300A50 50 0 0 0 1100 250H840L700 75zM791.95 350H1050V794.85H350V350H608.05L700 235.1000000000002L791.95 350zM100 1100H950V1000H150V450H50V1050A50 50 0 0 0 100 1100z","horizAdvX":"1200"},"dislike-fill":{"path":["M0 0H24V24H0z","M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm17.435 3.364c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636L7.26 3.046c1.67-.207 3.408.288 4.741 1.483 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M140.4 1130.35L1059.6 211.0999999999999L988.9 140.3999999999999L801.55 327.7499999999998L600 125.75L176 550.35C74 664.5500000000001 74.6 838 177.7 951.5L69.65 1059.6L140.4 1130.35zM1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.35L942.2 468.5500000000001L363 1047.7C446.5 1058.05 533.4 1033.3 600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15z","horizAdvX":"1200"},"dislike-line":{"path":["M0 0H24V24H0z","M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm2.172 10.23L12 18.654l2.617-2.623-9.645-9.645c-1.294 1.497-1.3 3.735.008 5.237zm15.263-6.866c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636-1.414-1.414 1.59-1.592c1.374-1.576 1.299-3.958-.193-5.453-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-.35-.314-.741-.555-1.155-.723l-2.25-2.25c1.668-.206 3.407.289 4.74 1.484 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M140.4 1130.35L1059.6 211.0999999999999L988.9 140.3999999999999L801.55 327.7499999999998L600 125.75L176 550.35C74 664.5500000000001 74.6 838 177.7 951.5L69.65 1059.6L140.4 1130.35zM249.0000000000001 618.8499999999999L600 267.3L730.85 398.4500000000001L248.6000000000001 880.7C183.9000000000001 805.85 183.6000000000001 693.95 249.0000000000001 618.85zM1012.15 962.1499999999997C1125.2500000000002 848.75 1129.15 668.15 1023.9500000000002 550.3499999999999L942.2 468.55L871.5 539.2499999999999L951 618.8499999999999C1019.7 697.65 1015.95 816.75 941.35 891.5C866.3499999999999 966.6 745.3499999999999 969.65 666.8499999999999 899.1499999999999L600.0999999999999 839.25L533.3 899.0999999999999C515.8 914.8 496.2499999999999 926.85 475.55 935.2499999999998L363.05 1047.75C446.45 1058.05 533.4 1033.3 600.05 973.55C717.5 1079 899 1075.5 1012.15 962.1499999999997z","horizAdvX":"1200"},"disqus-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-2.53 0-4.84-.94-6.601-2.488L1.5 20l1.424-3.797C2.33 14.925 2 13.501 2 12 2 6.477 6.477 2 12 2zM8 7v10h3.733l.263-.004c3.375-.103 5.337-2.211 5.337-5.025v-.027l-.003-.215C17.23 8.956 15.21 7 11.79 7H8zm3.831 2.458c1.628 0 2.709.928 2.709 2.529v.028l-.005.183c-.079 1.5-1.138 2.345-2.704 2.345h-1.108V9.458h1.108z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C473.5000000000001 100 358 147 269.95 224.4L75 200L146.2 389.85C116.5 453.75 100 524.95 100 600C100 876.15 323.85 1100 600 1100zM400 850V350H586.65L599.8000000000001 350.2000000000001C768.5500000000001 355.3500000000002 866.6499999999999 460.7500000000001 866.6499999999999 601.45V602.8000000000001L866.4999999999999 613.5500000000001C861.5 752.2 760.5 850 589.5 850H400zM591.55 727.0999999999999C672.9499999999999 727.0999999999999 727 680.6999999999999 727 600.65V599.25L726.7499999999999 590.1C722.7999999999998 515.1 669.8499999999999 472.8499999999999 591.5499999999998 472.8499999999999H536.1499999999999V727.0999999999999H591.5499999999998z","horizAdvX":"1200"},"disqus-line":{"path":["M0 0H24V24H0z","M11.95 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-2.306 0-4.492-.784-6.249-2.192l-4.718.59 1.72-4.586C2.207 14.614 1.95 13.324 1.95 12c0-5.523 4.477-10 10-10zm0 2c-4.418 0-8 3.582-8 8 0 1.178.254 2.318.738 3.362l.176.38-.847 2.26 2.315-.289.338.297C8.12 19.286 9.978 20 11.95 20c4.418 0 8-3.582 8-8s-3.582-8-8-8zM8 7h3.79c3.42 0 5.44 1.956 5.54 4.729l.003.215v.027c0 2.814-1.962 4.922-5.337 5.025l-.263.004H8V7h3.79H8zm3.831 2.458h-1.108v5.085h1.108c1.566 0 2.625-.845 2.704-2.345l.005-.183v-.028c0-1.6-1.08-2.53-2.709-2.53z"],"unicode":"","glyph":"M597.5 1100C873.65 1100 1097.5 876.15 1097.5 600S873.65 100 597.5 100C482.1999999999999 100 372.9 139.2000000000001 285.05 209.6L49.15 180.1L135.15 409.4C110.35 469.3 97.5 533.8 97.5 600C97.5 876.15 321.35 1100 597.5 1100zM597.5 1000C376.6 1000 197.5 820.9000000000001 197.5 600C197.5 541.0999999999999 210.1999999999999 484.1 234.4 431.9L243.2 412.9L200.85 299.8999999999999L316.6 314.3499999999999L333.5 299.4999999999999C406 235.7 498.9 200 597.5 200C818.4 200 997.5 379.1 997.5 600S818.4 1000 597.5 1000zM400 850H589.5C760.5 850 861.5 752.2 866.4999999999999 613.5500000000001L866.6499999999999 602.8000000000001V601.45C866.6499999999999 460.7500000000001 768.55 355.3500000000002 599.8 350.2000000000001L586.65 350H400V850H589.5H400zM591.55 727.0999999999999H536.15V472.85H591.55C669.85 472.85 722.8 515.1 726.75 590.1L727 599.2500000000001V600.6500000000001C727 680.6500000000001 673 727.1500000000001 591.5500000000001 727.1500000000001z","horizAdvX":"1200"},"divide-fill":{"path":["M0 0h24v24H0z","M5 11h14v2H5v-2zm7-3a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 650H950V550H250V650zM600 800A75 75 0 1 0 600 950A75 75 0 0 0 600 800zM600 250A75 75 0 1 0 600 400A75 75 0 0 0 600 250z","horizAdvX":"1200"},"divide-line":{"path":["M0 0h24v24H0z","M5 11h14v2H5v-2zm7-3a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 650H950V550H250V650zM600 800A75 75 0 1 0 600 950A75 75 0 0 0 600 800zM600 250A75 75 0 1 0 600 400A75 75 0 0 0 600 250z","horizAdvX":"1200"},"donut-chart-fill":{"path":["M0 0H24V24H0z","M11 2.05v3.02C7.608 5.557 5 8.475 5 12c0 3.866 3.134 7 7 7 1.572 0 3.024-.518 4.192-1.394l2.137 2.137C16.605 21.153 14.4 22 12 22 6.477 22 2 17.523 2 12c0-5.185 3.947-9.449 9-9.95zM21.95 13c-.2 2.011-.994 3.847-2.207 5.328l-2.137-2.136c.687-.916 1.153-2.006 1.323-3.192h3.022zM13.002 2.05c4.724.469 8.48 4.226 8.95 8.95h-3.022c-.438-3.065-2.863-5.49-5.928-5.929V2.049z"],"unicode":"","glyph":"M550 1097.5V946.5C380.4 922.15 250 776.25 250 600C250 406.7000000000001 406.7000000000001 250 600 250C678.5999999999999 250 751.2 275.9000000000001 809.6 319.7L916.45 212.8499999999999C830.25 142.3500000000001 720 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM1097.5 550C1087.5 449.4500000000001 1047.8 357.65 987.15 283.6L880.3 390.4C914.65 436.2000000000001 937.9499999999998 490.7 946.45 550H1097.55zM650.1 1097.5C886.3 1074.05 1074.1 886.2 1097.6 650H946.5C924.6 803.25 803.35 924.5 650.0999999999999 946.45V1097.55z","horizAdvX":"1200"},"donut-chart-line":{"path":["M0 0H24V24H0z","M11 2.05v2.012C7.054 4.554 4 7.92 4 12c0 4.418 3.582 8 8 8 1.849 0 3.55-.627 4.906-1.68l1.423 1.423C16.605 21.153 14.4 22 12 22 6.477 22 2 17.523 2 12c0-5.185 3.947-9.449 9-9.95zM21.95 13c-.2 2.011-.994 3.847-2.207 5.328l-1.423-1.422c.86-1.107 1.436-2.445 1.618-3.906h2.013zM13.002 2.05c4.724.469 8.48 4.226 8.95 8.95h-2.013c-.451-3.618-3.319-6.486-6.937-6.938V2.049z"],"unicode":"","glyph":"M550 1097.5V996.9C352.7 972.3 200 804 200 600C200 379.1 379.1 200 600 200C692.45 200 777.5 231.3499999999999 845.3 284L916.45 212.8499999999999C830.25 142.3500000000001 720 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM1097.5 550C1087.5 449.4500000000001 1047.8 357.65 987.15 283.6L916 354.7000000000001C959 410.0500000000001 987.8 476.95 996.9 550.0000000000001H1097.55zM650.1 1097.5C886.3 1074.05 1074.1 886.2 1097.6 650H996.95C974.4 830.9000000000001 831 974.3 650.0999999999999 996.9V1097.55z","horizAdvX":"1200"},"door-closed-fill":{"path":["M0 0H24V24H0z","M3 21v-2h2V4c0-.552.448-1 1-1h12c.552 0 1 .448 1 1v15h2v2H3zm12-10h-2v2h2v-2z"],"unicode":"","glyph":"M150 150V250H250V1000C250 1027.6 272.4000000000001 1050 300 1050H900C927.6 1050 950 1027.6 950 1000V250H1050V150H150zM750 650H650V550H750V650z","horizAdvX":"1200"},"door-closed-line":{"path":["M0 0H24V24H0z","M3 21v-2h2V4c0-.552.448-1 1-1h12c.552 0 1 .448 1 1v15h2v2H3zM17 5H7v14h10V5zm-2 6v2h-2v-2h2z"],"unicode":"","glyph":"M150 150V250H250V1000C250 1027.6 272.4000000000001 1050 300 1050H900C927.6 1050 950 1027.6 950 1000V250H1050V150H150zM850 950H350V250H850V950zM750 650V550H650V650H750z","horizAdvX":"1200"},"door-fill":{"path":["M0 0H24V24H0z","M18 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h12zm-4 8c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M900 1050C927.6 1050 950 1027.6 950 1000V200C950 172.4000000000001 927.6 150 900 150H300C272.4000000000001 150 250 172.4000000000001 250 200V1000C250 1027.6 272.4000000000001 1050 300 1050H900zM700 650C672.4 650 650 627.6 650 600S672.4 550 700 550S750 572.4 750 600S727.6 650 700 650z","horizAdvX":"1200"},"door-line":{"path":["M0 0H24V24H0z","M18 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h12zm-1 2H7v14h10V5zm-2 6v2h-2v-2h2z"],"unicode":"","glyph":"M900 1050C927.6 1050 950 1027.6 950 1000V200C950 172.4000000000001 927.6 150 900 150H300C272.4000000000001 150 250 172.4000000000001 250 200V1000C250 1027.6 272.4000000000001 1050 300 1050H900zM850 950H350V250H850V950zM750 650V550H650V650H750z","horizAdvX":"1200"},"door-lock-box-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7 9.792V16h2v-3.208a2.5 2.5 0 1 0-2 0z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550 560.4V400H650V560.4A125 125 0 1 1 550 560.4z","horizAdvX":"1200"},"door-lock-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6 7.792a2.5 2.5 0 1 1 2 0V16h-2v-3.208z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM550 560.4A125 125 0 1 0 650 560.4V400H550V560.4z","horizAdvX":"1200"},"door-lock-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-9.208V16h2v-3.208a2.5 2.5 0 1 0-2 0z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 560.4V400H650V560.4A125 125 0 1 1 550 560.4z","horizAdvX":"1200"},"door-lock-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-7.208a2.5 2.5 0 1 1 2 0V16h-2v-3.208z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 560.4A125 125 0 1 0 650 560.4V400H550V560.4z","horizAdvX":"1200"},"door-open-fill":{"path":["M0 0H24V24H0z","M2 21v-2h2V4.835c0-.484.346-.898.821-.984l9.472-1.722c.326-.06.638.157.697.483.007.035.01.07.01.107v1.28L19 4c.552 0 1 .448 1 1v14h2v2h-4V6h-3v15H2zm10-10h-2v2h2v-2z"],"unicode":"","glyph":"M100 150V250H200V958.25C200 982.45 217.3 1003.15 241.05 1007.45L714.65 1093.55C730.95 1096.55 746.55 1085.7 749.4999999999999 1069.4C749.8499999999999 1067.65 749.9999999999999 1065.9 749.9999999999999 1064.05V1000.05L950 1000C977.6 1000 1000 977.6 1000 950V250H1100V150H900V900H750V150H100zM600 650H500V550H600V650z","horizAdvX":"1200"},"door-open-line":{"path":["M0 0H24V24H0z","M2 21v-2h2V4.835c0-.484.346-.898.821-.984l9.472-1.722c.326-.06.638.157.697.483.007.035.01.07.01.107v1.28L19 4c.552 0 1 .448 1 1v14h2v2h-4V6h-3v15H2zM13 4.396L6 5.67V19h7V4.396zM12 11v2h-2v-2h2z"],"unicode":"","glyph":"M100 150V250H200V958.25C200 982.45 217.3 1003.15 241.05 1007.45L714.65 1093.55C730.95 1096.55 746.55 1085.7 749.4999999999999 1069.4C749.8499999999999 1067.65 749.9999999999999 1065.9 749.9999999999999 1064.05V1000.05L950 1000C977.6 1000 1000 977.6 1000 950V250H1100V150H900V900H750V150H100zM650 980.2L300 916.5V250H650V980.2zM600 650V550H500V650H600z","horizAdvX":"1200"},"dossier-fill":{"path":["M0 0H24V24H0z","M17 2v2h3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h3V2h10zm-4 9h-2v2H9v2h1.999L11 17h2l-.001-2H15v-2h-2v-2zm2-7H9v2h6V4z"],"unicode":"","glyph":"M850 1100V1000H1000C1027.6 1000 1050 977.6 1050 950V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V950C150 977.6 172.4 1000 200 1000H350V1100H850zM650 650H550V550H450V450H549.95L550 350H650L649.95 450H750V550H650V650zM750 1000H450V900H750V1000z","horizAdvX":"1200"},"dossier-line":{"path":["M0 0H24V24H0z","M17 2v2h3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h3V2h10zM7 6H5v14h14V6h-2v2H7V6zm6 5v2h2v2h-2.001L13 17h-2l-.001-2H9v-2h2v-2h2zm2-7H9v2h6V4z"],"unicode":"","glyph":"M850 1100V1000H1000C1027.6 1000 1050 977.6 1050 950V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V950C150 977.6 172.4 1000 200 1000H350V1100H850zM350 900H250V200H950V900H850V800H350V900zM650 650V550H750V450H649.95L650 350H550L549.95 450H450V550H550V650H650zM750 1000H450V900H750V1000z","horizAdvX":"1200"},"douban-fill":{"path":["M0 0h24v24H0z","M16.314 19.138h4.065a.62.62 0 0 1 .621.62v.621a.62.62 0 0 1-.62.621H3.62a.62.62 0 0 1-.62-.62v-.621a.62.62 0 0 1 .62-.621h3.754l-.96-3.104h2.19a.62.62 0 0 1 .59.425l.892 2.679H13.6l1.225-4.035H5.172a.62.62 0 0 1-.62-.62V7.345a.62.62 0 0 1 .62-.62h13.656a.62.62 0 0 1 .62.62v7.138a.62.62 0 0 1-.62.62h-1.289l-1.225 4.035zM3.931 3h16.138a.62.62 0 0 1 .62.62v.621a.62.62 0 0 1-.62.621H3.931a.62.62 0 0 1-.62-.62V3.62A.62.62 0 0 1 3.93 3zM7.19 8.586a.155.155 0 0 0-.156.155v4.035c0 .086.07.155.156.155h9.62c.086 0 .156-.07.156-.155V8.74a.155.155 0 0 0-.156-.155H7.19z"],"unicode":"","glyph":"M815.7 243.0999999999999H1018.95A31 31 0 0 0 1050 212.0999999999999V181.05A31 31 0 0 0 1019 150H181A31 31 0 0 0 150 181V212.05A31 31 0 0 0 181 243.0999999999999H368.7000000000001L320.7000000000001 398.2999999999999H430.2000000000001A31 31 0 0 0 459.7 377.0499999999999L504.3 243.0999999999999H680L741.25 444.8499999999999H258.6A31 31 0 0 0 227.6 475.8499999999999V832.75A31 31 0 0 0 258.6 863.75H941.4A31 31 0 0 0 972.4 832.75V475.85A31 31 0 0 0 941.4 444.85H876.9499999999999L815.6999999999998 243.1000000000002zM196.55 1050H1003.4500000000002A31 31 0 0 0 1034.4500000000003 1019V987.95A31 31 0 0 0 1003.4500000000002 956.9H196.55A31 31 0 0 0 165.55 987.9V1019A31 31 0 0 0 196.5 1050zM359.5 770.7A7.75 7.75 0 0 1 351.7000000000001 762.95V561.2C351.7000000000001 556.9 355.2000000000001 553.45 359.5 553.45H840.4999999999999C844.7999999999998 553.45 848.2999999999998 556.95 848.2999999999998 561.2V763A7.75 7.75 0 0 1 840.4999999999999 770.75H359.5z","horizAdvX":"1200"},"douban-line":{"path":["M0 0h24v24H0z","M15.273 15H5V7h14v8h-1.624l-1.3 4H21v2H3v-2h4.612L6.8 16.5l1.902-.618L9.715 19h4.259l1.3-4zM3.5 3h17v2h-17V3zM7 9v4h10V9H7z"],"unicode":"","glyph":"M763.65 450H250V850H950V450H868.8000000000001L803.8000000000001 250H1050V150H150V250H380.6L340 375L435.1 405.9L485.75 250H698.7L763.7 450zM175 1050H1025V950H175V1050zM350 750V550H850V750H350z","horizAdvX":"1200"},"double-quotes-l":{"path":["M0 0h24v24H0z","M4.583 17.321C3.553 16.227 3 15 3 13.011c0-3.5 2.457-6.637 6.03-8.188l.893 1.378c-3.335 1.804-3.987 4.145-4.247 5.621.537-.278 1.24-.375 1.929-.311 1.804.167 3.226 1.648 3.226 3.489a3.5 3.5 0 0 1-3.5 3.5c-1.073 0-2.099-.49-2.748-1.179zm10 0C13.553 16.227 13 15 13 13.011c0-3.5 2.457-6.637 6.03-8.188l.893 1.378c-3.335 1.804-3.987 4.145-4.247 5.621.537-.278 1.24-.375 1.929-.311 1.804.167 3.226 1.648 3.226 3.489a3.5 3.5 0 0 1-3.5 3.5c-1.073 0-2.099-.49-2.748-1.179z"],"unicode":"","glyph":"M229.15 333.95C177.65 388.65 150 450 150 549.45C150 724.45 272.85 881.3 451.5000000000001 958.8500000000003L496.1500000000001 889.95C329.4000000000001 799.75 296.8000000000001 682.7 283.8000000000001 608.9000000000001C310.6500000000001 622.8000000000001 345.8000000000002 627.6500000000001 380.2500000000001 624.45C470.4500000000001 616.1 541.5500000000002 542.0500000000001 541.5500000000002 450A175 175 0 0 0 366.5500000000002 275C312.9000000000002 275 261.6000000000002 299.4999999999999 229.1500000000002 333.95zM729.15 333.95C677.6500000000001 388.65 650 450 650 549.45C650 724.45 772.85 881.3 951.5 958.8500000000003L996.15 889.95C829.4000000000001 799.75 796.8000000000001 682.7 783.8000000000001 608.9000000000001C810.6500000000001 622.8000000000001 845.8000000000001 627.6500000000001 880.25 624.45C970.45 616.1 1041.55 542.0500000000001 1041.55 450A175 175 0 0 0 866.55 275C812.9 275 761.5999999999999 299.4999999999999 729.1499999999999 333.95z","horizAdvX":"1200"},"double-quotes-r":{"path":["M0 0h24v24H0z","M19.417 6.679C20.447 7.773 21 9 21 10.989c0 3.5-2.457 6.637-6.03 8.188l-.893-1.378c3.335-1.804 3.987-4.145 4.247-5.621-.537.278-1.24.375-1.929.311-1.804-.167-3.226-1.648-3.226-3.489a3.5 3.5 0 0 1 3.5-3.5c1.073 0 2.099.49 2.748 1.179zm-10 0C10.447 7.773 11 9 11 10.989c0 3.5-2.457 6.637-6.03 8.188l-.893-1.378c3.335-1.804 3.987-4.145 4.247-5.621-.537.278-1.24.375-1.929.311C4.591 12.322 3.17 10.841 3.17 9a3.5 3.5 0 0 1 3.5-3.5c1.073 0 2.099.49 2.748 1.179z"],"unicode":"","glyph":"M970.8500000000003 866.05C1022.35 811.35 1050 750 1050 650.55C1050 475.55 927.15 318.7 748.5 241.15L703.8499999999999 310.0500000000001C870.5999999999999 400.25 903.2 517.3 916.2 591.1C889.3499999999999 577.2 854.1999999999999 572.35 819.75 575.5500000000001C729.55 583.9000000000001 658.45 657.95 658.45 750A175 175 0 0 0 833.45 925C887.1 925 938.4 900.5 970.8500000000003 866.05zM470.8500000000001 866.05C522.3499999999999 811.35 550 750 550 650.55C550 475.55 427.15 318.7 248.5 241.15L203.85 310.0500000000001C370.6 400.25 403.2 517.3 416.2 591.1C389.35 577.2 354.2 572.35 319.75 575.5500000000001C229.55 583.9000000000001 158.5 657.95 158.5 750A175 175 0 0 0 333.5 925C387.1500000000001 925 438.45 900.5 470.9 866.05z","horizAdvX":"1200"},"download-2-fill":{"path":["M0 0h24v24H0z","M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7zM14 9h5l-7 7-7-7h5V3h4v6z"],"unicode":"","glyph":"M200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250zM700 750H950L600 400L250 750H500V1050H700V750z","horizAdvX":"1200"},"download-2-line":{"path":["M0 0h24v24H0z","M13 10h5l-6 6-6-6h5V3h2v7zm-9 9h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7z"],"unicode":"","glyph":"M650 700H900L600 400L300 700H550V1050H650V700zM200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250z","horizAdvX":"1200"},"download-cloud-2-fill":{"path":["M0 0h24v24H0z","M13 13v5.585l1.828-1.828 1.415 1.415L12 22.414l-4.243-4.242 1.415-1.415L11 18.585V13h2zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784L18 17a6 6 0 0 0-11.996-.225L6 17v1.978a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M650 550V270.75L741.4 362.15L812.15 291.4L600 79.3L387.85 291.4L458.6 362.15L550 270.75V550H650zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999L900 350A300 300 0 0 1 300.2 361.2500000000001L300 350V251.0999999999999A275 275 0 0 0 252.3 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"download-cloud-2-line":{"path":["M0 0h24v24H0z","M13 13v5.585l1.828-1.828 1.415 1.415L12 22.414l-4.243-4.242 1.415-1.415L11 18.585V13h2zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784v-2.014a3.5 3.5 0 1 0-1.112-6.91 5 5 0 1 0-9.777 0 3.5 3.5 0 0 0-1.292 6.88l.18.03v2.014a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M650 550V270.75L741.4 362.15L812.15 291.4L600 79.3L387.85 291.4L458.6 362.15L550 270.75V550H650zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999V351.7999999999999A175 175 0 1 1 844.4500000000002 697.3A250 250 0 1 1 355.6000000000002 697.3A175 175 0 0 1 291.0000000000002 353.3L300.0000000000002 351.7999999999999V251.0999999999999A275 275 0 0 0 252.3000000000002 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"download-cloud-fill":{"path":["M0 0h24v24H0z","M7 20.981a6.5 6.5 0 0 1-2.936-12 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12V21H7v-.019zM13 12V8h-2v4H8l4 5 4-5h-3z"],"unicode":"","glyph":"M350 150.9499999999998A325 325 0 0 0 203.2 750.9499999999999A400.04999999999995 400.04999999999995 0 0 0 996.8 750.9499999999999A325 325 0 0 0 850 150.9499999999998V150H350V150.9499999999998zM650 600V800H550V600H400L600 350L800 600H650z","horizAdvX":"1200"},"download-cloud-line":{"path":["M0 0h24v24H0z","M1 14.5a6.496 6.496 0 0 1 3.064-5.519 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12L7 21c-3.356-.274-6-3.078-6-6.5zm15.848 4.487a4.5 4.5 0 0 0 2.03-8.309l-.807-.503-.12-.942a6.001 6.001 0 0 0-11.903 0l-.12.942-.805.503a4.5 4.5 0 0 0 2.029 8.309l.173.013h9.35l.173-.013zM13 12h3l-4 5-4-5h3V8h2v4z"],"unicode":"","glyph":"M50 475A324.8 324.8 0 0 0 203.2 750.95A400.04999999999995 400.04999999999995 0 0 0 996.8 750.95A325 325 0 0 0 850 150.9499999999998L350 150C182.2 163.7000000000001 50 303.9 50 475zM842.4 250.6499999999999A225 225 0 0 1 943.9 666.0999999999999L903.55 691.2499999999999L897.5500000000001 738.3499999999999A300.05 300.05 0 0 1 302.4 738.3499999999999L296.4 691.2499999999999L256.1500000000001 666.0999999999999A225 225 0 0 1 357.6 250.6499999999999L366.25 249.9999999999998H833.75L842.4 250.6499999999999zM650 600H800L600 350L400 600H550V800H650V600z","horizAdvX":"1200"},"download-fill":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zM13 9h7l-8 8-8-8h7V1h2v8z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 750H1000L600 350L200 750H550V1150H650V750z","horizAdvX":"1200"},"download-line":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zm10-5.828L19.071 7.1l1.414 1.414L12 17 3.515 8.515 4.929 7.1 11 13.17V2h2v11.172z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 541.4L953.55 845L1024.2500000000002 774.3L600 350L175.75 774.25L246.45 845L550 541.5V1100H650V541.4z","horizAdvX":"1200"},"draft-fill":{"path":["M0 0L24 0 24 24 0 24z","M20 2c.552 0 1 .448 1 1v3.757l-8.999 9-.006 4.238 4.246.006L21 15.242V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1h16zm1.778 6.808l1.414 1.414L15.414 18l-1.416-.002.002-1.412 7.778-7.778zM12 12H7v2h5v-2zm3-4H7v2h8V8z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V862.1500000000001L600.05 412.15L599.75 200.25L812.05 199.9499999999999L1050 437.9V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V1050C150 1077.6 172.4 1100 200 1100H1000zM1088.8999999999999 759.6L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999zM600 600H350V500H600V600zM750 800H350V700H750V800z","horizAdvX":"1200"},"draft-line":{"path":["M0 0L24 0 24 24 0 24z","M20 2c.552 0 1 .448 1 1v3.757l-2 2V4H5v16h14v-2.758l2-2V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1h16zm1.778 6.808l1.414 1.414L15.414 18l-1.416-.002.002-1.412 7.778-7.778zM13 12v2H8v-2h5zm3-4v2H8V8h8z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V862.1500000000001L950 762.1500000000001V1000H250V200H950V337.9L1050 437.9V150C1050 122.4000000000001 1027.6 100 1000 100H200C172.4 100 150 122.4000000000001 150 150V1050C150 1077.6 172.4 1100 200 1100H1000zM1088.8999999999999 759.6L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999zM650 600V500H400V600H650zM800 800V700H400V800H800z","horizAdvX":"1200"},"drag-drop-fill":{"path":["M0 0h24v24H0z","M14 6h2v2h5a1 1 0 0 1 1 1v7.5L16 13l.036 8.062 2.223-2.15L20.041 22H9a1 1 0 0 1-1-1v-5H6v-2h2V9a1 1 0 0 1 1-1h5V6zm8 11.338V21a1 1 0 0 1-.048.307l-1.96-3.394L22 17.338zM4 14v2H2v-2h2zm0-4v2H2v-2h2zm0-4v2H2V6h2zm0-4v2H2V2h2zm4 0v2H6V2h2zm4 0v2h-2V2h2zm4 0v2h-2V2h2z"],"unicode":"","glyph":"M700 900H800V800H1050A50 50 0 0 0 1100 750V375L800 550L801.8000000000001 146.9000000000001L912.95 254.4000000000001L1002.05 100H450A50 50 0 0 0 400 150V400H300V500H400V750A50 50 0 0 0 450 800H700V900zM1100 333.0999999999999V150A50 50 0 0 0 1097.6000000000001 134.6500000000001L999.6 304.3500000000002L1100 333.0999999999999zM200 500V400H100V500H200zM200 700V600H100V700H200zM200 900V800H100V900H200zM200 1100V1000H100V1100H200zM400 1100V1000H300V1100H400zM600 1100V1000H500V1100H600zM800 1100V1000H700V1100H800z","horizAdvX":"1200"},"drag-drop-line":{"path":["M0 0h24v24H0z","M16 13l6.964 4.062-2.973.85 2.125 3.681-1.732 1-2.125-3.68-2.223 2.15L16 13zm-2-7h2v2h5a1 1 0 0 1 1 1v4h-2v-3H10v10h4v2H9a1 1 0 0 1-1-1v-5H6v-2h2V9a1 1 0 0 1 1-1h5V6zM4 14v2H2v-2h2zm0-4v2H2v-2h2zm0-4v2H2V6h2zm0-4v2H2V2h2zm4 0v2H6V2h2zm4 0v2h-2V2h2zm4 0v2h-2V2h2z"],"unicode":"","glyph":"M800 550L1148.1999999999998 346.9L999.55 304.3999999999999L1105.8 120.3499999999999L1019.2 70.3499999999999L912.95 254.3499999999998L801.8000000000001 146.8499999999999L800 550zM700 900H800V800H1050A50 50 0 0 0 1100 750V550H1000V700H500V200H700V100H450A50 50 0 0 0 400 150V400H300V500H400V750A50 50 0 0 0 450 800H700V900zM200 500V400H100V500H200zM200 700V600H100V700H200zM200 900V800H100V900H200zM200 1100V1000H100V1100H200zM400 1100V1000H300V1100H400zM600 1100V1000H500V1100H600zM800 1100V1000H700V1100H800z","horizAdvX":"1200"},"drag-move-2-fill":{"path":["M0 0h24v24H0z","M18 11V8l4 4-4 4v-3h-5v5h3l-4 4-4-4h3v-5H6v3l-4-4 4-4v3h5V6H8l4-4 4 4h-3v5z"],"unicode":"","glyph":"M900 650V800L1100 600L900 400V550H650V300H800L600 100L400 300H550V550H300V400L100 600L300 800V650H550V900H400L600 1100L800 900H650V650z","horizAdvX":"1200"},"drag-move-2-line":{"path":["M0 0h24v24H0z","M11 11V5.828L9.172 7.657 7.757 6.243 12 2l4.243 4.243-1.415 1.414L13 5.828V11h5.172l-1.829-1.828 1.414-1.415L22 12l-4.243 4.243-1.414-1.415L18.172 13H13v5.172l1.828-1.829 1.415 1.414L12 22l-4.243-4.243 1.415-1.414L11 18.172V13H5.828l1.829 1.828-1.414 1.415L2 12l4.243-4.243 1.414 1.415L5.828 11z"],"unicode":"","glyph":"M550 650V908.6L458.6 817.15L387.85 887.8499999999999L600 1100L812.1500000000001 887.8499999999999L741.4000000000001 817.15L650 908.6V650H908.6L817.15 741.4L887.85 812.15L1100 600L887.8499999999999 387.8499999999999L817.1499999999999 458.5999999999999L908.6 550H650V291.4L741.4 382.85L812.15 312.15L600 100L387.85 312.1500000000001L458.6 382.8500000000002L550 291.4V550H291.4000000000001L382.85 458.6L312.1500000000001 387.85L100 600L312.1500000000001 812.1500000000001L382.85 741.4L291.4000000000001 650z","horizAdvX":"1200"},"drag-move-fill":{"path":["M0 0h24v24H0z","M12 22l-4-4h8l-4 4zm0-20l4 4H8l4-4zm0 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zM2 12l4-4v8l-4-4zm20 0l-4 4V8l4 4z"],"unicode":"","glyph":"M600 100L400 300H800L600 100zM600 1100L800 900H400L600 1100zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500zM100 600L300 800V400L100 600zM1100 600L900 400V800L1100 600z","horizAdvX":"1200"},"drag-move-line":{"path":["M0 0h24v24H0z","M12 2l4.243 4.243-1.415 1.414L12 4.828 9.172 7.657 7.757 6.243 12 2zM2 12l4.243-4.243 1.414 1.415L4.828 12l2.829 2.828-1.414 1.415L2 12zm20 0l-4.243 4.243-1.414-1.415L19.172 12l-2.829-2.828 1.414-1.415L22 12zm-10 2a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 8l-4.243-4.243 1.415-1.414L12 19.172l2.828-2.829 1.415 1.414L12 22z"],"unicode":"","glyph":"M600 1100L812.1500000000001 887.8499999999999L741.4000000000001 817.15L600 958.6L458.6 817.15L387.85 887.8499999999999L600 1100zM100 600L312.1500000000001 812.1500000000001L382.85 741.4L241.4 600L382.85 458.6L312.1500000000001 387.85L100 600zM1100 600L887.8499999999999 387.8499999999999L817.1499999999999 458.5999999999999L958.6 600L817.15 741.4L887.85 812.15L1100 600zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500zM600 100L387.85 312.1500000000001L458.6 382.8500000000002L600 241.4L741.4 382.85L812.15 312.15L600 100z","horizAdvX":"1200"},"dribbble-fill":{"path":["M0 0h24v24H0z","M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c5.51 0 10-4.48 10-10S17.51 2 12 2zm6.605 4.61a8.502 8.502 0 0 1 1.93 5.314c-.281-.054-3.101-.629-5.943-.271-.065-.141-.12-.293-.184-.445a25.424 25.424 0 0 0-.564-1.236c3.145-1.28 4.577-3.124 4.761-3.362zM12 3.475c2.17 0 4.154.814 5.662 2.148-.152.216-1.443 1.941-4.48 3.08-1.399-2.57-2.95-4.675-3.189-5A8.686 8.686 0 0 1 12 3.475zm-3.633.803a53.903 53.903 0 0 1 3.167 4.935c-3.992 1.063-7.517 1.04-7.896 1.04a8.581 8.581 0 0 1 4.729-5.975zM3.453 12.01v-.26c.37.01 4.512.065 8.775-1.215.25.477.477.965.694 1.453-.109.033-.228.065-.336.098-4.404 1.42-6.747 5.303-6.942 5.629a8.522 8.522 0 0 1-2.19-5.705zM12 20.547a8.482 8.482 0 0 1-5.239-1.8c.152-.315 1.888-3.656 6.703-5.337.022-.01.033-.01.054-.022a35.309 35.309 0 0 1 1.823 6.475 8.4 8.4 0 0 1-3.341.684zm4.761-1.465c-.086-.52-.542-3.015-1.66-6.084 2.68-.423 5.023.271 5.315.369a8.468 8.468 0 0 1-3.655 5.715z"],"unicode":"","glyph":"M600 1100C324 1100 100 876 100 600S324 100 600 100C875.4999999999999 100 1100 324 1100 600S875.5000000000001 1100 600 1100zM930.25 869.5A425.09999999999997 425.09999999999997 0 0 0 1026.75 603.8000000000001C1012.7 606.5 871.7 635.25 729.6 617.35C726.35 624.4000000000001 723.6 632 720.4000000000001 639.6000000000001A1271.2 1271.2 0 0 1 692.2 701.4000000000001C849.45 765.4000000000001 921.05 857.6000000000001 930.25 869.5000000000001zM600 1026.25C708.5 1026.25 807.7 985.55 883.0999999999999 918.85C875.4999999999999 908.05 810.9499999999999 821.8 659.0999999999999 764.85C589.1499999999999 893.35 511.6 998.6 499.6499999999999 1014.85A434.3 434.3 0 0 0 600 1026.25zM418.35 986.1A2695.1499999999996 2695.1499999999996 0 0 0 576.7 739.3499999999999C377.1 686.1999999999999 200.85 687.35 181.9 687.35A429.04999999999995 429.04999999999995 0 0 0 418.35 986.1zM172.65 599.5V612.5C191.15 612 398.25 609.25 611.4 673.25C623.9 649.4 635.25 625 646.1 600.6C640.65 598.95 634.7 597.35 629.3000000000001 595.6999999999999C409.1 524.7 291.9500000000001 330.5500000000001 282.2 314.25A426.09999999999997 426.09999999999997 0 0 0 172.7 599.5zM600 172.6499999999999A424.09999999999997 424.09999999999997 0 0 0 338.05 262.65C345.6500000000001 278.4000000000001 432.4500000000001 445.4500000000001 673.2 529.5C674.3000000000001 530 674.85 530 675.9000000000001 530.6A1765.4499999999996 1765.4499999999996 0 0 0 767.0500000000001 206.85A420 420 0 0 0 600 172.6499999999999zM838.05 245.9C833.75 271.9 810.9499999999999 396.65 755.05 550.0999999999999C889.05 571.25 1006.2 536.55 1020.8 531.65A423.4 423.4 0 0 0 838.05 245.9z","horizAdvX":"1200"},"dribbble-line":{"path":["M0 0h24v24H0z","M19.989 11.572a7.96 7.96 0 0 0-1.573-4.351 9.749 9.749 0 0 1-.92.87 13.157 13.157 0 0 1-3.313 2.01c.167.35.32.689.455 1.009v.003a9.186 9.186 0 0 1 .11.27c1.514-.17 3.11-.108 4.657.101.206.028.4.058.584.088zm-9.385-7.45a46.164 46.164 0 0 1 2.692 4.27c1.223-.482 2.234-1.09 3.048-1.767a7.88 7.88 0 0 0 .796-.755A7.968 7.968 0 0 0 12 4a8.05 8.05 0 0 0-1.396.121zM4.253 9.997a29.21 29.21 0 0 0 2.04-.123 31.53 31.53 0 0 0 4.862-.822 54.365 54.365 0 0 0-2.7-4.227 8.018 8.018 0 0 0-4.202 5.172zm1.53 7.038c.388-.567.898-1.205 1.575-1.899 1.454-1.49 3.17-2.65 5.156-3.29l.062-.018c-.165-.364-.32-.689-.476-.995-1.836.535-3.77.869-5.697 1.042-.94.085-1.783.122-2.403.128a7.967 7.967 0 0 0 1.784 5.032zm9.222 2.38a35.947 35.947 0 0 0-1.632-5.709c-2.002.727-3.597 1.79-4.83 3.058a9.77 9.77 0 0 0-1.317 1.655A7.964 7.964 0 0 0 12 20a7.977 7.977 0 0 0 3.005-.583zm1.873-1.075a7.998 7.998 0 0 0 2.987-4.87c-.34-.085-.771-.17-1.245-.236a12.023 12.023 0 0 0-3.18-.033 39.368 39.368 0 0 1 1.438 5.14zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M999.45 621.4000000000001A398.00000000000006 398.00000000000006 0 0 1 920.8 838.95A487.45000000000005 487.45000000000005 0 0 0 874.8 795.45A657.85 657.85 0 0 0 709.1499999999999 694.95C717.4999999999999 677.45 725.1499999999999 660.5 731.8999999999999 644.5V644.35A459.29999999999995 459.29999999999995 0 0 0 737.3999999999999 630.85C813.0999999999998 639.35 892.8999999999999 636.2500000000001 970.2499999999998 625.8C980.5499999999998 624.4 990.2499999999998 622.9 999.4499999999998 621.4000000000001zM530.2 993.9A2308.2 2308.2 0 0 0 664.8000000000001 780.4000000000001C725.95 804.5 776.5 834.9000000000001 817.2 868.75A394 394 0 0 1 857 906.5A398.40000000000003 398.40000000000003 0 0 1 600 1000A402.50000000000006 402.50000000000006 0 0 1 530.1999999999999 993.95zM212.65 700.15A1460.5000000000002 1460.5000000000002 0 0 1 314.6500000000001 706.3A1576.5000000000002 1576.5000000000002 0 0 1 557.75 747.3999999999999A2718.25 2718.25 0 0 1 422.7500000000001 958.75A400.90000000000003 400.90000000000003 0 0 1 212.6500000000001 700.15zM289.1500000000001 348.25C308.55 376.6 334.05 408.5 367.9000000000001 443.2000000000001C440.6000000000001 517.7 526.4 575.7 625.6999999999999 607.7L628.8 608.6C620.55 626.8000000000001 612.8 643.0500000000001 604.9999999999999 658.35C513.1999999999999 631.6 416.4999999999999 614.9 320.1499999999999 606.25C273.1499999999999 602 230.9999999999999 600.15 199.9999999999999 599.85A398.34999999999997 398.34999999999997 0 0 1 289.1999999999999 348.25zM750.25 229.25A1797.3500000000001 1797.3500000000001 0 0 1 668.65 514.7C568.55 478.35 488.8 425.2000000000001 427.15 361.8000000000001A488.49999999999994 488.49999999999994 0 0 1 361.3 279.05A398.20000000000005 398.20000000000005 0 0 1 600 200A398.84999999999997 398.84999999999997 0 0 1 750.25 229.1499999999999zM843.9 283A399.90000000000003 399.90000000000003 0 0 1 993.2500000000002 526.5C976.2500000000002 530.7500000000001 954.7 535 931 538.3000000000001A601.15 601.15 0 0 1 772.0000000000001 539.95A1968.4 1968.4 0 0 0 843.9 282.9500000000002zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"drive-fill":{"path":["M0 0h24v24H0z","M7.94 4.146l3.482 6.03-5.94 10.293L2 14.44 7.94 4.146zm2.176 10.294H22l-3.482 6.029H6.635l3.481-6.029zm4.343-1L8.518 3.145h6.964l5.94 10.295H14.46z"],"unicode":"","glyph":"M397 992.7L571.1 691.2L274.1 176.55L100 478L397 992.7zM505.8 477.9999999999999H1100L925.9 176.55H331.75L505.8 477.9999999999999zM722.9499999999999 527.9999999999999L425.9000000000001 1042.75H774.1L1071.1000000000001 528H723z","horizAdvX":"1200"},"drive-line":{"path":["M0 0h24v24H0z","M9.097 6.15L4.31 14.443l1.755 3.032 4.785-8.29L9.097 6.15zm-1.3 12.324h9.568l1.751-3.034H9.55l-1.752 3.034zm11.314-5.034l-4.786-8.29H10.83l4.787 8.29h3.495zM8.52 3.15h6.96L22 14.444l-3.48 6.03H5.49L2 14.444 8.52 3.15zm3.485 8.036l-1.302 2.254h2.603l-1.301-2.254z"],"unicode":"","glyph":"M454.85 892.5L215.5 477.85L303.25 326.2499999999999L542.5 740.7499999999999L454.85 892.5zM389.85 276.3H868.2499999999999L955.8 427.9999999999999H477.5000000000001L389.9000000000001 276.3zM955.55 527.9999999999999L716.25 942.4999999999998H541.5L780.85 527.9999999999999H955.6000000000003zM426 1042.5H774L1100 477.8L926 176.3H274.5L100 477.8L426 1042.5zM600.25 640.7L535.15 528H665.3L600.25 640.7z","horizAdvX":"1200"},"drizzle-fill":{"path":["M0 0h24v24H0z","M11 18v3H9v-3a8 8 0 1 1 7.458-10.901A5.5 5.5 0 1 1 17.5 18H11zm2 2h2v3h-2v-3z"],"unicode":"","glyph":"M550 300V150H450V300A400 400 0 1 0 822.8999999999999 845.05A275 275 0 1 0 875 300H550zM650 200H750V50H650V200z","horizAdvX":"1200"},"drizzle-line":{"path":["M0 0h24v24H0z","M17 18v-2h.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-8 5.659v2.089a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001zm-8-2h2v4H9v-4zm4 3h2v4h-2v-4z"],"unicode":"","glyph":"M850 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 350 417.0500000000001V312.6000000000002A400 400 0 1 0 822.8999999999999 845.1000000000001A275 275 0 1 0 875 300L850 299.95zM450 400H550V200H450V400zM650 250H750V50H650V250z","horizAdvX":"1200"},"drop-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2z","horizAdvX":"1200"},"drop-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4z","horizAdvX":"1200"},"dropbox-fill":{"path":["M0 0h24v24H0z","M17.285 10.668l5.215 3.323-5.252 3.346L12 13.993l-5.248 3.344L1.5 13.99l5.215-3.323L1.5 7.346 6.752 4 12 7.343 17.248 4 22.5 7.346l-5.215 3.322zm-.074 0L12 7.348l-5.211 3.32L12 13.988l5.211-3.32zM6.786 18.446l5.252-3.346 5.252 3.346-5.252 3.346-5.252-3.346z"],"unicode":"","glyph":"M864.25 666.6L1125 500.45L862.4000000000001 333.15L600 500.35L337.6 333.15L75 500.5L335.75 666.65L75 832.7L337.6 1000L600 832.85L862.4000000000001 1000L1125 832.7L864.25 666.6zM860.55 666.6L600 832.6L339.45 666.6L600 500.6L860.55 666.6zM339.3 277.7L601.9 444.9999999999999L864.5 277.7L601.9 110.3999999999999L339.3 277.7z","horizAdvX":"1200"},"dropbox-line":{"path":["M0 0h24v24H0z","M8.646 17.26l3.392 2.162 3.392-2.161 1.86 1.185-5.252 3.346-5.252-3.346 1.86-1.185zm-.877-8.28l2.393-1.553-2.425-1.574L5.28 7.37 7.77 8.98zm1.84 1.19L12 11.719l2.39-1.547L12 8.619l-2.391 1.552zm4.231 2.74l2.424 1.568 2.45-1.502-2.485-1.612-2.389 1.545zM12 6.234l4.237-2.748L22.46 7.33l-4.392 2.843 4.393 2.85-6.226 3.819L12 14.1l-4.235 2.74-6.23-3.817 4.396-2.851L1.539 7.33l6.224-3.843L12 6.235zm1.837 1.192L16.23 8.98l2.489-1.61-2.456-1.517-2.426 1.574zM10.16 12.91l-2.39-1.546-2.486 1.613 2.451 1.502 2.425-1.569z"],"unicode":"","glyph":"M432.3000000000001 336.9999999999999L601.9 228.9L771.5 336.9500000000001L864.5 277.7000000000001L601.9 110.4000000000001L339.3 277.7000000000001L432.3000000000001 336.9500000000001zM388.4500000000001 750.9999999999999L508.1 828.6499999999999L386.85 907.35L264 831.5L388.5 751zM480.4500000000001 691.4999999999999L600 614.0500000000001L719.5 691.4000000000001L600 769.05L480.45 691.45zM692.0000000000001 554.4999999999999L813.2000000000002 476.0999999999999L935.7000000000002 551.1999999999999L811.4500000000002 631.8L692.0000000000002 554.55zM600 888.3L811.8500000000001 1025.7L1123 833.5L903.4 691.35L1123.0500000000002 548.85L811.7500000000001 357.9000000000001L600 495L388.25 358L76.75 548.85L296.55 691.4L76.95 833.5L388.15 1025.65L600 888.25zM691.85 828.7L811.5 751L935.95 831.5L813.1500000000001 907.35L691.85 828.6500000000001zM508 554.5L388.5 631.8L264.2 551.15L386.75 476.05L508 554.5z","horizAdvX":"1200"},"dual-sim-1-fill":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-2 6h-3v2h1v6h2V8z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM650 800H500V700H550V400H650V800z","horizAdvX":"1200"},"dual-sim-1-line":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-.829 2H6v16h12V7.829L14.171 4zM13 16h-2v-6h-1V8h3v8z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM708.55 1000H300V200H900V808.55L708.55 1000zM650 400H550V700H500V800H650V400z","horizAdvX":"1200"},"dual-sim-2-fill":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-3 5.5a3 3 0 0 0-2.995 2.824L9 10.5h2a1 1 0 1 1 1.751.66l-.082.083L9 14.547 9 16h6v-2h-2.405l1.412-1.27-.006-.01.008.008A3 3 0 0 0 12 7.5z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM600 825A150 150 0 0 1 450.25 683.8L450 675H550A50 50 0 1 0 637.55 642L633.4499999999999 637.85L450 472.65L450 400H750V500H629.75L700.35 563.5L700.0500000000001 564L700.45 563.6A150 150 0 0 1 600 825z","horizAdvX":"1200"},"dual-sim-2-line":{"path":["M0 0h24v24H0z","M15 2l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h10zm-.829 2H6v16h12V7.829L14.171 4zM12 7.5a3 3 0 0 1 2.009 5.228l-.008-.008.006.01L12.595 14H15v2H9v-1.453l3.67-3.304A1 1 0 1 0 11 10.5H9a3 3 0 0 1 3-3z"],"unicode":"","glyph":"M750 1100L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H750zM708.55 1000H300V200H900V808.55L708.55 1000zM600 825A150 150 0 0 0 700.45 563.6L700.0500000000001 564L700.35 563.5L629.75 500H750V400H450V472.65L633.5 637.85A50 50 0 1 1 550 675H450A150 150 0 0 0 600 825z","horizAdvX":"1200"},"dv-fill":{"path":["M0 0h24v24H0z","M4 14.745a7 7 0 1 1 8 0V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6.255zM8 14A5 5 0 1 0 8 4a5 5 0 0 0 0 10zm-1 4v2h2v-2H7zm1-6a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm6 5v-1.292A8.978 8.978 0 0 0 17 9a8.966 8.966 0 0 0-2.292-6H21a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-7zm4-10v2h2V7h-2z"],"unicode":"","glyph":"M200 462.75A350 350 0 1 0 600 462.75V150A50 50 0 0 0 550 100H250A50 50 0 0 0 200 150V462.75zM400 500A250 250 0 1 1 400 1000A250 250 0 0 1 400 500zM350 300V200H450V300H350zM400 600A150 150 0 1 0 400 900A150 150 0 0 0 400 600zM700 350V414.6A448.9 448.9 0 0 1 850 750A448.3 448.3 0 0 1 735.4 1050H1050A50 50 0 0 0 1100 1000V400A50 50 0 0 0 1050 350H700zM900 850V750H1000V850H900z","horizAdvX":"1200"},"dv-line":{"path":["M0 0h24v24H0z","M11.608 3H21a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-7v-2h6V5h-6.255A6.968 6.968 0 0 1 15 9a6.992 6.992 0 0 1-3 5.745V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6.255A7 7 0 1 1 11.608 3zM6 13.584V20h4v-6.416a5.001 5.001 0 1 0-4 0zM8 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm9-3h2v2h-2V7zM7 17h2v2H7v-2z"],"unicode":"","glyph":"M580.4 1050H1050A50 50 0 0 0 1100 1000V400A50 50 0 0 0 1050 350H700V450H1000V950H687.25A348.4 348.4 0 0 0 750 750A349.6 349.6 0 0 0 600 462.75V150A50 50 0 0 0 550 100H250A50 50 0 0 0 200 150V462.75A350 350 0 1 0 580.4 1050zM300 520.8000000000001V200H500V520.8000000000001A250.05000000000004 250.05000000000004 0 1 1 300 520.8000000000001zM400 600A150 150 0 1 0 400 900A150 150 0 0 0 400 600zM400 700A50 50 0 1 1 400 800A50 50 0 0 1 400 700zM850 850H950V750H850V850zM350 350H450V250H350V350z","horizAdvX":"1200"},"dvd-fill":{"path":["M0 0h24v24H0z","M13 11V6l-5 7h3v5l5-7h-3zm-1 11C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M650 650V900L400 550H550V300L800 650H650zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"dvd-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-9h3l-5 7v-5H8l5-7v5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 650H800L550 300V550H400L650 900V650z","horizAdvX":"1200"},"e-bike-2-fill":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,3 L22,3 L22,9 L19.980979,9 L22.7270773,16.5448432 C22.9032836,16.9958219 23,17.4866163 23,18 C23,20.209139 21.209139,22 19,22 C17.1361606,22 15.5700603,20.7252272 15.1260175,19 L10.8739825,19 C10.4299397,20.7252272 8.86383943,22 7,22 C5.05550552,22 3.43507622,20.612512 3.0747418,18.7735658 C2.43596423,18.4396361 2,17.7707305 2,17 L2,7 C2,6.44771525 2.44771525,6 3,6 L10,6 C10.5522847,6 11,6.44771525 11,7 L11,12 C11,12.5522847 11.4477153,13 12,13 L14,13 C14.5522847,13 15,12.5522847 15,12 L15,3 L12,3 L12,1 L16,1 Z M19,16 C17.8954305,16 17,16.8954305 17,18 C17,19.1045695 17.8954305,20 19,20 C20.1045695,20 21,19.1045695 21,18 C21,17.7596672 20.9576092,17.5292353 20.8798967,17.3157736 L20.8635387,17.2724216 C20.5725256,16.5276089 19.8478776,16 19,16 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M9,8 L4,8 L4,10 L9,10 L9,8 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050L1100 1050L1100 750L999.0489500000002 750L1136.353865 372.7578400000001C1145.16418 350.2089050000001 1150 325.669185 1150 300C1150 189.54305 1060.45695 100 950 100C856.80803 100 778.503015 163.73864 756.300875 250L543.699125 250C521.496985 163.73864 443.1919715 100 350 100C252.775276 100 171.753811 169.3744000000002 153.73709 261.32171C121.7982115 278.0181949999999 100 311.463475 100 350L100 850C100 877.6142375 122.3857625 900 150 900L500 900C527.614235 900 550 877.6142375 550 850L550 600C550 572.385765 572.385765 550 600 550L700 550C727.614235 550 750 572.385765 750 600L750 1050L600 1050L600 1150L800 1150zM950 400C894.771525 400 850 355.228475 850 300C850 244.771525 894.771525 200 950 200C1005.228475 200 1050 244.771525 1050 300C1050 312.0166400000001 1047.88046 323.538235 1043.994835 334.21132L1043.176935 336.3789199999999C1028.62628 373.619555 992.39388 400 950 400zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM450 800L200 800L200 700L450 700L450 800zM1000 950L850 950L850 850L1000 850L1000 950z","horizAdvX":"1200"},"e-bike-2-line":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,3 L22,3 L22,9 L19.9813388,9 L22.7270773,16.5438545 C22.9032836,16.9948332 23,17.4856276 23,17.9990113 C23,20.2081503 21.209139,21.9990113 19,21.9990113 C17.1365166,21.9990113 15.5706587,20.7247255 15.1262721,19 L10.8739825,19 C10.4299397,20.7252272 8.86383943,22 7,22 C5.05550552,22 3.43507622,20.612512 3.0747418,18.7735658 C2.43596423,18.4396361 2,17.7707305 2,17 L2,7 C2,6.44771525 2.44771525,6 3,6 L10,6 C10.5522847,6 11,6.44771525 11,7 L11,12 C11,12.5522847 11.4477153,13 12,13 L14,13 C14.5522847,13 15,12.5522847 15,12 L15,3 L12,3 L12,1 L16,1 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M19,15.9990113 C17.8954305,15.9990113 17,16.8944418 17,17.9990113 C17,19.1035808 17.8954305,19.9990113 19,19.9990113 C20.1045695,19.9990113 21,19.1035808 21,17.9990113 C21,17.7586785 20.9576092,17.5282466 20.8798967,17.3147849 L20.8635387,17.2714329 C20.5725256,16.5266202 19.8478776,15.9990113 19,15.9990113 Z M17.8529833,9 L16.9999998,9 L16.9999998,12 C16.9999998,13.6568542 15.6568542,15 13.9999998,15 L11.9999998,15 C10.3431458,15 8.99999976,13.6568542 8.99999976,12 L3.99999976,12 L3.99999976,15.3541759 C4.73294422,14.523755 5.80530734,14 6.99999976,14 C8.86383943,14 10.4299397,15.2747728 10.8739825,17 L15.1257631,17 C15.569462,15.2742711 17.1358045,13.9990113 18.9999998,13.9990113 C19.2368134,13.9990113 19.4688203,14.0195905 19.6943299,14.0590581 L17.8529833,9 Z M8.99999976,8 L3.99999976,8 L3.99999976,10 L8.99999976,10 L8.99999976,8 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050L1100 1050L1100 750L999.06694 750L1136.353865 372.8072750000001C1145.16418 350.2583400000001 1150 325.71862 1150 300.049435C1150 189.592485 1060.45695 100.0494350000001 950 100.0494350000001C856.82583 100.0494350000001 778.532935 163.763725 756.3136049999999 250L543.699125 250C521.496985 163.73864 443.1919715 100 350 100C252.775276 100 171.753811 169.3744000000002 153.73709 261.32171C121.7982115 278.0181949999999 100 311.463475 100 350L100 850C100 877.6142375 122.3857625 900 150 900L500 900C527.614235 900 550 877.6142375 550 850L550 600C550 572.385765 572.385765 550 600 550L700 550C727.614235 550 750 572.385765 750 600L750 1050L600 1050L600 1150L800 1150zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM950 400.049435C894.771525 400.049435 850 355.27791 850 300.049435C850 244.82096 894.771525 200.049435 950 200.049435C1005.228475 200.049435 1050 244.82096 1050 300.049435C1050 312.0660750000001 1047.88046 323.58767 1043.994835 334.260755L1043.176935 336.428355C1028.62628 373.66899 992.39388 400.049435 950 400.049435zM892.649165 750L849.99999 750L849.99999 600C849.99999 517.15729 782.84271 450 699.99999 450L599.99999 450C517.15729 450 449.999988 517.15729 449.999988 600L199.999988 600L199.999988 432.291205C236.6472110000001 473.8122500000001 290.265367 500 349.999988 500C443.1919715 500 521.496985 436.2613600000001 543.699125 350L756.288155 350C778.4730999999999 436.286445 856.790225 500.049435 949.99999 500.049435C961.84067 500.049435 973.441015 499.020475 984.716495 497.047095L892.649165 750zM449.999988 800L199.999988 800L199.999988 700L449.999988 700L449.999988 800zM1000 950L850 950L850 850L1000 850L1000 950z","horizAdvX":"1200"},"e-bike-fill":{"path":["M0 0h24v24H0z","M15.5 6.937A6.997 6.997 0 0 1 19 13v8h-4.17a3.001 3.001 0 0 1-5.66 0H5v-8a6.997 6.997 0 0 1 3.5-6.063A3.974 3.974 0 0 1 8.125 6H5V4h3.126a4.002 4.002 0 0 1 7.748 0H19v2h-3.126c-.085.33-.212.645-.373.937zM12 14a1 1 0 0 0-1 1v5a1 1 0 0 0 2 0v-5a1 1 0 0 0-1-1zm0-7a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M775 853.15A349.85 349.85 0 0 0 950 550V150H741.5A150.04999999999998 150.04999999999998 0 0 0 458.5 150H250V550A349.85 349.85 0 0 0 425 853.15A198.70000000000002 198.70000000000002 0 0 0 406.25 900H250V1000H406.3A200.10000000000002 200.10000000000002 0 0 0 793.6999999999999 1000H950V900H793.7C789.4499999999999 883.5 783.1 867.75 775.0500000000001 853.15zM600 500A50 50 0 0 1 550 450V200A50 50 0 0 1 650 200V450A50 50 0 0 1 600 500zM600 850A100 100 0 1 1 600 1050A100 100 0 0 1 600 850z","horizAdvX":"1200"},"e-bike-line":{"path":["M0 0h24v24H0z","M15.5 6.937A6.997 6.997 0 0 1 19 13v8h-4.17a3.001 3.001 0 0 1-5.66 0H5v-8a6.997 6.997 0 0 1 3.5-6.063A3.974 3.974 0 0 1 8.125 6H5V4h3.126a4.002 4.002 0 0 1 7.748 0H19v2h-3.126c-.085.33-.212.645-.373.937zm-1.453 1.5C13.448 8.795 12.748 9 12 9a3.981 3.981 0 0 1-2.047-.563A5.001 5.001 0 0 0 7 13v6h2v-4a3 3 0 0 1 6 0v4h2v-6a5.001 5.001 0 0 0-2.953-4.563zM12 14a1 1 0 0 0-1 1v5a1 1 0 0 0 2 0v-5a1 1 0 0 0-1-1zm0-7a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M775 853.15A349.85 349.85 0 0 0 950 550V150H741.5A150.04999999999998 150.04999999999998 0 0 0 458.5 150H250V550A349.85 349.85 0 0 0 425 853.15A198.70000000000002 198.70000000000002 0 0 0 406.25 900H250V1000H406.3A200.10000000000002 200.10000000000002 0 0 0 793.6999999999999 1000H950V900H793.7C789.4499999999999 883.5 783.1 867.75 775.0500000000001 853.15zM702.35 778.1499999999999C672.4 760.25 637.4 750 600 750A199.05 199.05 0 0 0 497.65 778.1500000000001A250.05000000000004 250.05000000000004 0 0 1 350 550V250H450V450A150 150 0 0 0 750 450V250H850V550A250.05000000000004 250.05000000000004 0 0 1 702.35 778.1499999999999zM600 500A50 50 0 0 1 550 450V200A50 50 0 0 1 650 200V450A50 50 0 0 1 600 500zM600 850A100 100 0 1 1 600 1050A100 100 0 0 1 600 850z","horizAdvX":"1200"},"earth-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm6.355-6.048v-.105c0-.922 0-1.343-.652-1.716a7.374 7.374 0 0 0-.645-.325c-.367-.167-.61-.276-.938-.756a12.014 12.014 0 0 1-.116-.172c-.345-.525-.594-.903-1.542-.753-1.865.296-2.003.624-2.085 1.178l-.013.091c-.121.81-.143 1.082.195 1.437 1.265 1.327 2.023 2.284 2.253 2.844.112.273.4 1.1.202 1.918a8.185 8.185 0 0 0 3.151-2.237c.11-.374.19-.84.19-1.404zM12 3.833c-2.317 0-4.41.966-5.896 2.516.177.123.331.296.437.534.204.457.204.928.204 1.345 0 .328 0 .64.105.865.144.308.766.44 1.315.554.197.042.399.084.583.135.506.14.898.595 1.211.96.13.151.323.374.42.43.05-.036.211-.211.29-.498.062-.22.044-.414-.045-.52-.56-.66-.529-1.93-.356-2.399.272-.739 1.122-.684 1.744-.644.232.015.45.03.614.009.622-.078.814-1.025.949-1.21.292-.4 1.186-1.003 1.74-1.375A8.138 8.138 0 0 0 12 3.833z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM917.75 402.4V407.65C917.75 453.75 917.75 474.8000000000001 885.15 493.45A368.7 368.7 0 0 1 852.9 509.6999999999999C834.55 518.05 822.4 523.5 806 547.5A600.7 600.7 0 0 0 800.2 556.1C782.95 582.35 770.5000000000001 601.25 723.1 593.75C629.85 578.95 622.95 562.55 618.8500000000001 534.8499999999999L618.2000000000002 530.3C612.1500000000001 489.8 611.0500000000001 476.1999999999999 627.9500000000002 458.45C691.2000000000002 392.0999999999999 729.1000000000001 344.2500000000001 740.6000000000001 316.25C746.2000000000002 302.6 760.6000000000001 261.2499999999999 750.7000000000002 220.35A409.25000000000006 409.25000000000006 0 0 1 908.2500000000002 332.2C913.7500000000002 350.8999999999999 917.7500000000002 374.2 917.7500000000002 402.3999999999999zM600 1008.35C484.15 1008.35 379.5 960.05 305.2 882.55C314.05 876.4 321.75 867.75 327.05 855.85C337.25 833 337.25 809.45 337.25 788.6C337.25 772.2 337.25 756.5999999999999 342.5 745.35C349.7000000000001 729.95 380.8 723.35 408.2500000000001 717.65C418.1 715.55 428.2 713.45 437.4000000000001 710.9C462.7 703.9 482.3000000000001 681.15 497.95 662.9C504.4500000000001 655.3499999999999 514.1000000000001 644.1999999999999 518.95 641.4C521.45 643.1999999999999 529.5000000000001 651.9499999999999 533.45 666.3C536.55 677.3 535.6500000000001 686.9999999999999 531.2 692.3C503.2 725.3 504.7500000000001 788.8 513.4000000000001 812.25C527 849.1999999999999 569.5 846.4499999999999 600.6 844.4499999999999C612.2 843.6999999999999 623.1 842.9499999999999 631.3000000000001 843.9999999999999C662.4000000000001 847.8999999999999 672.0000000000001 895.2499999999999 678.75 904.4999999999998C693.35 924.5 738.0500000000001 954.6499999999997 765.7500000000001 973.2499999999998A406.9 406.9 0 0 1 600 1008.35z","horizAdvX":"1200"},"earth-line":{"path":["M0 0h24v24H0z","M6.235 6.453a8 8 0 0 0 8.817 12.944c.115-.75-.137-1.47-.24-1.722-.23-.56-.988-1.517-2.253-2.844-.338-.355-.316-.628-.195-1.437l.013-.091c.082-.554.22-.882 2.085-1.178.948-.15 1.197.228 1.542.753l.116.172c.328.48.571.59.938.756.165.075.37.17.645.325.652.373.652.794.652 1.716v.105c0 .391-.038.735-.098 1.034a8.002 8.002 0 0 0-3.105-12.341c-.553.373-1.312.902-1.577 1.265-.135.185-.327 1.132-.95 1.21-.162.02-.381.006-.613-.009-.622-.04-1.472-.095-1.744.644-.173.468-.203 1.74.356 2.4.09.105.107.3.046.519-.08.287-.241.462-.292.498-.096-.056-.288-.279-.419-.43-.313-.365-.705-.82-1.211-.96-.184-.051-.386-.093-.583-.135-.549-.115-1.17-.246-1.315-.554-.106-.226-.105-.537-.105-.865 0-.417 0-.888-.204-1.345a1.276 1.276 0 0 0-.306-.43zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M311.75 877.3499999999999A400 400 0 0 1 752.6 230.1499999999999C758.35 267.6499999999999 745.75 303.6499999999999 740.6 316.25C729.0999999999999 344.2499999999999 691.2 392.0999999999999 627.9499999999999 458.4499999999999C611.05 476.1999999999999 612.15 489.8499999999999 618.1999999999999 530.3L618.8499999999999 534.8499999999999C622.9499999999999 562.5499999999998 629.85 578.9499999999998 723.1 593.7499999999998C770.5 601.2499999999999 782.9499999999999 582.3499999999998 800.2 556.0999999999998L806 547.4999999999998C822.4 523.4999999999998 834.5500000000002 517.9999999999998 852.9 509.6999999999998C861.15 505.9499999999998 871.4000000000001 501.1999999999998 885.15 493.4499999999998C917.75 474.7999999999998 917.75 453.7499999999998 917.75 407.6499999999999V402.3999999999999C917.75 382.8499999999998 915.85 365.6499999999998 912.85 350.6999999999998A400.1 400.1 0 0 1 757.6 967.7499999999998C729.95 949.0999999999996 692.0000000000001 922.6499999999997 678.75 904.4999999999998C672.0000000000001 895.2499999999998 662.4000000000001 847.8999999999999 631.2500000000001 843.9999999999998C623.1500000000001 842.9999999999998 612.2 843.6999999999998 600.6000000000001 844.4499999999998C569.5000000000001 846.4499999999998 527.0000000000001 849.1999999999998 513.4000000000001 812.2499999999998C504.7500000000001 788.8499999999998 503.2500000000002 725.2499999999998 531.2000000000002 692.2499999999998C535.7000000000002 686.9999999999998 536.5500000000001 677.2499999999998 533.5000000000001 666.2999999999997C529.5000000000001 651.9499999999997 521.45 643.1999999999998 518.9000000000001 641.3999999999997C514.1000000000001 644.1999999999997 504.5000000000001 655.3499999999998 497.95 662.8999999999997C482.3000000000001 681.1499999999997 462.7 703.8999999999999 437.4000000000001 710.8999999999999C428.2000000000001 713.4499999999998 418.1000000000001 715.5499999999998 408.2500000000001 717.6499999999999C380.8 723.3999999999999 349.7500000000001 729.9499999999998 342.5000000000001 745.3499999999998C337.2000000000001 756.6499999999999 337.2500000000001 772.1999999999998 337.2500000000001 788.5999999999999C337.2500000000001 809.4499999999998 337.2500000000001 832.9999999999998 327.0500000000001 855.8499999999998A63.8 63.8 0 0 1 311.7500000000001 877.3499999999998zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"earthquake-fill":{"path":["M0 0h24v24H0z","M11.327 1.612a1 1 0 0 1 1.246-.08l.1.08L23 11h-3v9a1 1 0 0 1-.883.993L19 21h-6.5l2.5-4-3.5-3 4-3L13 9l.5-3-3 3 2.5 2-5 3 3.75 3.5L8.5 21H5a1 1 0 0 1-.993-.883L4 20v-9H1l10.327-9.388z"],"unicode":"","glyph":"M566.35 1119.4A50 50 0 0 0 628.65 1123.4L633.65 1119.4L1150 650H1000V200A50 50 0 0 0 955.85 150.3500000000001L950 150H625L750 350L575 500L775 650L650 750L675 900L525 750L650 650L400 500L587.5 325L425 150H250A50 50 0 0 0 200.35 194.15L200 200V650H50L566.35 1119.4z","horizAdvX":"1200"},"earthquake-line":{"path":["M0 0h24v24H0z","M5 21a1 1 0 0 1-.993-.883L4 20v-9H1l10.327-9.388a1 1 0 0 1 1.246-.08l.1.08L23 11h-3v9a1 1 0 0 1-.883.993L19 21H5zm7-17.298L6 9.156V19h4.357l1.393-1.5L8 14l5-3-2.5-2 3-3-.5 3 2.5 2-4 3 3.5 3-1.25 2H18V9.157l-6-5.455z"],"unicode":"","glyph":"M250 150A50 50 0 0 0 200.35 194.15L200 200V650H50L566.35 1119.4A50 50 0 0 0 628.65 1123.4L633.65 1119.4L1150 650H1000V200A50 50 0 0 0 955.85 150.3500000000001L950 150H250zM600 1014.8999999999997L300 742.2V250H517.8499999999999L587.5 325L400 500L650 650L525 750L675 900L650 750L775 650L575 500L750 350L687.5 250H900V742.15L600 1014.9z","horizAdvX":"1200"},"edge-fill":{"path":["M0 0h24v24H0z","M20.644 8.586c-.17-.711-.441-1.448-.774-2.021-.771-1.329-1.464-2.237-3.177-3.32C14.98 2.162 13.076 2 12.17 2c-2.415 0-4.211.86-5.525 1.887C3.344 6.47 3 11 3 11s1.221-2.045 3.54-3.526C7.943 6.579 9.941 6 11.568 6 15.885 6 16 10 16 10H9c0-2 1-3 1-3s-5 2-5 7.044c0 .487-.003 1.372.248 2.283.232.843.7 1.705 1.132 2.353 1.221 1.832 3.045 2.614 3.916 2.904.996.332 2.029.416 3.01.416 2.72 0 4.877-.886 5.694-1.275v-4.172c-.758.454-2.679 1.447-5 1.447-5 0-5-4-5-4h12v-2.49s-.039-1.593-.356-2.924z"],"unicode":"","glyph":"M1032.1999999999998 770.7C1023.6999999999998 806.25 1010.15 843.1 993.4999999999998 871.75C954.9499999999998 938.2 920.3 983.6 834.6499999999999 1037.75C749 1091.9 653.8000000000001 1100 608.5 1100C487.7499999999999 1100 397.95 1057 332.25 1005.65C167.2 876.5 150 650 150 650S211.05 752.25 327 826.3C397.15 871.05 497.05 900 578.4 900C794.25 900 800 700 800 700H450C450 800 500 850 500 850S250 750 250 497.8C250 473.4499999999999 249.85 429.2 262.4000000000001 383.6499999999999C274 341.4999999999999 297.4000000000001 298.3999999999999 319 265.9999999999999C380.05 174.3999999999999 471.2500000000001 135.2999999999997 514.8 120.7999999999997C564.6 104.1999999999998 616.25 99.9999999999998 665.3 99.9999999999998C801.3 99.9999999999998 909.15 144.2999999999997 950 163.7499999999998V372.3499999999998C912.1 349.6499999999998 816.0500000000001 299.9999999999998 700 299.9999999999998C450 299.9999999999998 450 499.9999999999998 450 499.9999999999998H1050V624.4999999999999S1048.05 704.1499999999999 1032.1999999999998 770.6999999999998z","horizAdvX":"1200"},"edge-line":{"path":["M0 0h24v24H0z","M8.007 14.001A4.559 4.559 0 0 0 8 14.25C8 16.632 9.753 19 13 19c2.373 0 4.528-.655 6-1.553v3.35C17.211 21.564 15.113 22 13 22c-5.502 0-8-3.47-8-7.75 0-3.231 2.041-6 4.943-7.164C8.539 8.663 8 10.341 8 10.996L18 11c0-3.406-2.548-6-6-6-5 0-8.001 3.988-9 5.999C3.29 6.237 7.01 2 12 2c5.2 0 9 4.03 9 9v3H8l.007.001z"],"unicode":"","glyph":"M400.35 499.95A227.95 227.95 0 0 1 400 487.5C400 368.4 487.65 250 650 250C768.6500000000001 250 876.4 282.75 950 327.6500000000001V160.1499999999999C860.55 121.8 755.65 100 650 100C374.9000000000001 100 250 273.5 250 487.5C250 649.05 352.05 787.5 497.15 845.7C426.95 766.8499999999999 400 682.95 400 650.1999999999999L900 650C900 820.3 772.6 950 600 950C350 950 199.95 750.6 150 650.0500000000001C164.5 888.15 350.5 1100 600 1100C860 1100 1050 898.5 1050 650V500H400L400.35 499.95z","horizAdvX":"1200"},"edit-2-fill":{"path":["M0 0h24v24H0z","M9.243 19H21v2H3v-4.243l9.9-9.9 4.242 4.244L9.242 19zm5.07-13.556l2.122-2.122a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414l-2.122 2.121-4.242-4.242z"],"unicode":"","glyph":"M462.15 250H1050V150H150V362.1500000000001L645 857.1500000000001L857.1 644.9500000000002L462.1 250zM715.65 927.8L821.7500000000001 1033.8999999999999A50 50 0 0 0 892.4500000000002 1033.8999999999999L1033.9000000000003 892.4499999999999A50 50 0 0 0 1033.9000000000003 821.75L927.8000000000002 715.6999999999999L715.7000000000002 927.8z","horizAdvX":"1200"},"edit-2-line":{"path":["M0 0h24v24H0z","M5 19h1.414l9.314-9.314-1.414-1.414L5 17.586V19zm16 2H3v-4.243L16.435 3.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L9.243 19H21v2zM15.728 6.858l1.414 1.414 1.414-1.414-1.414-1.414-1.414 1.414z"],"unicode":"","glyph":"M250 250H320.7L786.4 715.7L715.7 786.4L250 320.7000000000001V250zM1050 150H150V362.1500000000001L821.7499999999999 1033.9A50 50 0 0 0 892.45 1033.9L1033.9 892.45A50 50 0 0 0 1033.9 821.75L462.15 250H1050V150zM786.4 857.1L857.1 786.4L927.8 857.0999999999999L857.1 927.8L786.4 857.0999999999999z","horizAdvX":"1200"},"edit-box-fill":{"path":["M0 0h24v24H0z","M16.757 3l-7.466 7.466.008 4.247 4.238-.007L21 7.243V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12.757zm3.728-.9L21.9 3.516l-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M837.85 1050L464.55 676.6999999999999L464.95 464.3499999999999L676.8499999999999 464.6999999999999L1050 837.8499999999999V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H837.8499999999999zM1024.2500000000002 1095L1095 1024.2L635.3999999999999 564.6L564.8 564.4499999999999L564.6999999999999 635.3L1024.25 1095z","horizAdvX":"1200"},"edit-box-line":{"path":["M0 0h24v24H0z","M16.757 3l-2 2H5v14h14V9.243l2-2V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12.757zm3.728-.9L21.9 3.516l-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M837.85 1050L737.85 950H250V250H950V737.8499999999999L1050 837.8499999999999V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H837.8499999999999zM1024.2500000000002 1095L1095 1024.2L635.3999999999999 564.6L564.8 564.4499999999999L564.6999999999999 635.3L1024.25 1095z","horizAdvX":"1200"},"edit-circle-fill":{"path":["M0 0h24v24H0z","M16.626 3.132L9.29 10.466l.008 4.247 4.238-.007 7.331-7.332A9.957 9.957 0 0 1 22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2c1.669 0 3.242.409 4.626 1.132zm3.86-1.031l1.413 1.414-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M831.3000000000001 1043.4L464.4999999999999 676.7L464.8999999999999 464.35L676.7999999999998 464.7L1043.35 831.3A497.8500000000001 497.8500000000001 0 0 0 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100C683.45 1100 762.1 1079.55 831.3000000000001 1043.4zM1024.3 1094.95L1094.95 1024.25L635.35 564.65L564.7500000000001 564.5L564.6500000000001 635.3499999999999L1024.25 1095z","horizAdvX":"1200"},"edit-circle-line":{"path":["M0 0h24v24H0z","M12.684 4.029a8 8 0 1 0 7.287 7.287 7.936 7.936 0 0 0-.603-2.44l1.5-1.502A9.933 9.933 0 0 1 22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2a9.982 9.982 0 0 1 4.626 1.132l-1.501 1.5a7.941 7.941 0 0 0-2.44-.603zM20.485 2.1L21.9 3.515l-9.192 9.192-1.412.003-.002-1.417L20.485 2.1z"],"unicode":"","glyph":"M634.1999999999999 998.55A400 400 0 1 1 998.55 634.2A396.79999999999995 396.79999999999995 0 0 1 968.4 756.2L1043.3999999999999 831.3A496.65 496.65 0 0 0 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100A499.09999999999997 499.09999999999997 0 0 0 831.3000000000001 1043.4L756.2500000000001 968.4A397.04999999999995 397.04999999999995 0 0 1 634.2500000000001 998.55zM1024.25 1095L1095 1024.25L635.3999999999999 564.65L564.8 564.5L564.6999999999999 635.3499999999999L1024.25 1095z","horizAdvX":"1200"},"edit-fill":{"path":["M0 0h24v24H0z","M7.243 18H3v-4.243L14.435 2.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 18zM3 20h18v2H3v-2z"],"unicode":"","glyph":"M362.1500000000001 300H150V512.15L721.75 1083.9A50 50 0 0 0 792.45 1083.9L933.9 942.45A50 50 0 0 0 933.9 871.75L362.1500000000001 300zM150 200H1050V100H150V200z","horizAdvX":"1200"},"edit-line":{"path":["M0 0h24v24H0z","M6.414 16L16.556 5.858l-1.414-1.414L5 14.586V16h1.414zm.829 2H3v-4.243L14.435 2.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 18zM3 20h18v2H3v-2z"],"unicode":"","glyph":"M320.7 400L827.8000000000001 907.1L757.1 977.8L250 470.6999999999999V400H320.7zM362.15 300H150V512.15L721.75 1083.9A50 50 0 0 0 792.45 1083.9L933.9 942.45A50 50 0 0 0 933.9 871.75L362.1500000000001 300zM150 200H1050V100H150V200z","horizAdvX":"1200"},"eject-fill":{"path":["M0 0h24v24H0z","M12.416 3.624l7.066 10.599a.5.5 0 0 1-.416.777H4.934a.5.5 0 0 1-.416-.777l7.066-10.599a.5.5 0 0 1 .832 0zM5 17h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2z"],"unicode":"","glyph":"M620.8000000000001 1018.8L974.1 488.8499999999999A25 25 0 0 0 953.3 450H246.7A25 25 0 0 0 225.9 488.8499999999999L579.1999999999999 1018.8A25 25 0 0 0 620.8000000000001 1018.8zM250 350H950A50 50 0 0 0 950 250H250A50 50 0 0 0 250 350z","horizAdvX":"1200"},"eject-line":{"path":["M0 0h24v24H0z","M7.737 13h8.526L12 6.606 7.737 13zm4.679-9.376l7.066 10.599a.5.5 0 0 1-.416.777H4.934a.5.5 0 0 1-.416-.777l7.066-10.599a.5.5 0 0 1 .832 0zM5 17h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2z"],"unicode":"","glyph":"M386.85 550H813.1499999999999L600 869.7L386.85 550zM620.8000000000001 1018.8L974.1 488.8499999999999A25 25 0 0 0 953.3 450H246.7A25 25 0 0 0 225.9 488.8499999999999L579.1999999999999 1018.8A25 25 0 0 0 620.8000000000001 1018.8zM250 350H950A50 50 0 0 0 950 250H250A50 50 0 0 0 250 350z","horizAdvX":"1200"},"emotion-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4-9a4 4 0 1 0 8 0H8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM400 550A200 200 0 1 1 800 550H400z","horizAdvX":"1200"},"emotion-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-4-7h8a4 4 0 1 1-8 0z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM400 550H800A200 200 0 1 0 400 550z","horizAdvX":"1200"},"emotion-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4-9a4 4 0 1 0 8 0H8zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM400 550A200 200 0 1 1 800 550H400zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-happy-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-5-9a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7zm1-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 550A250 250 0 0 1 850 550H750A150 150 0 0 0 450 550H350zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-happy-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-7h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0zm1-2a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 550H450A150 150 0 0 1 750 550H850A250 250 0 0 0 350 550zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"emotion-laugh-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 9c-2 0-3.667.333-5 1a5 5 0 0 0 10 0c-1.333-.667-3-1-5-1zM8.5 7c-1.152 0-2.122.78-2.412 1.84L6.05 9h4.9A2.5 2.5 0 0 0 8.5 7zm7 0c-1.152 0-2.122.78-2.412 1.84L13.05 9h4.9a2.5 2.5 0 0 0-2.45-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 650C500 650 416.6500000000001 633.35 350 600A250 250 0 0 1 850 600C783.35 633.35 700 650 600 650zM425 850C367.4 850 318.9 811 304.4 758L302.5 750H547.5A125 125 0 0 1 425 850zM775 850C717.4000000000001 850 668.9 811 654.4000000000001 758L652.5 750H897.5000000000001A125 125 0 0 1 775.0000000000002 850z","horizAdvX":"1200"},"emotion-laugh-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 7c2 0 3.667.333 5 1a5 5 0 0 1-10 0c1.333-.667 3-1 5-1zM8.5 7a2.5 2.5 0 0 1 2.45 2h-4.9A2.5 2.5 0 0 1 8.5 7zm7 0a2.5 2.5 0 0 1 2.45 2h-4.9a2.5 2.5 0 0 1 2.45-2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 650C700 650 783.35 633.35 850 600A250 250 0 0 0 350 600C416.6500000000001 633.35 500 650 600 650zM425 850A125 125 0 0 0 547.5 750H302.5A125 125 0 0 0 425 850zM775 850A125 125 0 0 0 897.5 750H652.5A125 125 0 0 0 775 850z","horizAdvX":"1200"},"emotion-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-4-7h8a4 4 0 1 1-8 0zm0-2a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM400 550H800A200 200 0 1 0 400 550zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"emotion-normal-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-4-8v2h8v-2H8zm0-3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM400 500V400H800V500H400zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-normal-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-4-6h8v2H8v-2zm0-3a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM400 500H800V400H400V500zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"emotion-sad-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10a9.958 9.958 0 0 1-1.065 4.496 1.977 1.977 0 0 0-.398-.775l-.123-.135L19 14.172l-1.414 1.414-.117.127a2 2 0 0 0 1.679 3.282A9.974 9.974 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 13c-1.38 0-2.63.56-3.534 1.463l-.166.174.945.86C10.035 17.182 10.982 17 12 17c.905 0 1.754.144 2.486.396l.269.1.945-.86A4.987 4.987 0 0 0 12 15zm-3.5-5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm7 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600A497.90000000000003 497.90000000000003 0 0 0 1046.75 375.2A98.85000000000001 98.85000000000001 0 0 1 1026.85 413.95L1020.7 420.7L950 491.4L879.3 420.7L873.4499999999999 414.3499999999999A100 100 0 0 1 957.3999999999997 250.25A498.69999999999993 498.69999999999993 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 450C531 450 468.5000000000001 422 423.3000000000001 376.8499999999999L415.0000000000001 368.15L462.2500000000001 325.15C501.75 340.9000000000001 549.0999999999999 350 600 350C645.25 350 687.6999999999999 342.8000000000001 724.3000000000001 330.2L737.75 325.2L785 368.1999999999998A249.34999999999997 249.34999999999997 0 0 1 600 450zM425 700A75 75 0 1 1 425 550A75 75 0 0 1 425 700zM775 700A75 75 0 1 1 775 550A75 75 0 0 1 775 700z","horizAdvX":"1200"},"emotion-sad-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 .727-.077 1.435-.225 2.118l-1.782-1.783a8 8 0 1 0-4.375 6.801 3.997 3.997 0 0 0 1.555 1.423A9.956 9.956 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm7 12.172l1.414 1.414a2 2 0 1 1-2.93.11l.102-.11L19 14.172zM12 15c1.466 0 2.785.631 3.7 1.637l-.945.86C13.965 17.182 13.018 17 12 17c-1.018 0-1.965.183-2.755.496l-.945-.86A4.987 4.987 0 0 1 12 15zm-3.5-5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm7 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 563.65 1096.1499999999999 528.25 1088.75 494.1L999.65 583.25A400 400 0 1 1 780.9 243.1999999999998A199.85000000000002 199.85000000000002 0 0 1 858.6499999999999 172.0499999999997A497.8 497.8 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM950 491.4L1020.7 420.7A100 100 0 1 0 874.2 415.2000000000001L879.3000000000001 420.7L950 491.4zM600 450C673.3 450 739.25 418.4500000000001 785 368.15L737.75 325.15C698.25 340.9000000000001 650.9000000000001 350 600 350C549.0999999999999 350 501.75 340.85 462.2500000000001 325.2000000000001L415.0000000000001 368.2000000000001A249.34999999999997 249.34999999999997 0 0 0 600 450zM425 700A75 75 0 1 0 425 550A75 75 0 0 0 425 700zM775 700A75 75 0 1 0 775 550A75 75 0 0 0 775 700z","horizAdvX":"1200"},"emotion-unhappy-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-5-5h2a3 3 0 0 1 6 0h2a5 5 0 0 0-10 0zm1-6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm8 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 350H450A150 150 0 0 0 750 350H850A250 250 0 0 1 350 350zM400 650A75 75 0 1 1 400 800A75 75 0 0 1 400 650zM800 650A75 75 0 1 1 800 800A75 75 0 0 1 800 650z","horizAdvX":"1200"},"emotion-unhappy-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-3a5 5 0 0 1 10 0h-2a3 3 0 0 0-6 0H7zm1-6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm8 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 350A250 250 0 0 0 850 350H750A150 150 0 0 1 450 350H350zM400 650A75 75 0 1 0 400 800A75 75 0 0 0 400 650zM800 650A75 75 0 1 0 800 800A75 75 0 0 0 800 650z","horizAdvX":"1200"},"empathize-fill":{"path":["M0 0H24V24H0z","M18.364 10.98c1.562 1.561 1.562 4.094 0 5.656l-5.657 5.657c-.39.39-1.024.39-1.414 0l-5.657-5.657c-1.562-1.562-1.562-4.095 0-5.657 1.562-1.562 4.095-1.562 5.657 0l.706.707.708-.707c1.562-1.562 4.095-1.562 5.657 0zM12 1c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4z"],"unicode":"","glyph":"M918.2 651C996.3 572.9499999999999 996.3 446.3 918.2 368.2000000000001L635.35 85.3500000000001C615.85 65.8499999999999 584.15 65.8499999999999 564.6500000000001 85.3500000000001L281.8000000000001 368.2000000000001C203.7000000000001 446.3 203.7000000000001 572.9499999999999 281.8000000000001 651.0500000000001C359.9000000000001 729.1500000000001 486.5500000000001 729.1500000000001 564.6500000000001 651.0500000000001L599.95 615.7L635.35 651.0500000000001C713.45 729.1500000000001 840.1 729.1500000000001 918.2 651.0500000000001zM600 1150C710.5 1150 800 1060.5 800 950S710.5 750 600 750S400 839.5 400 950S489.4999999999999 1150 600 1150z","horizAdvX":"1200"},"empathize-line":{"path":["M0 0H24V24H0z","M18.364 10.98c1.562 1.561 1.562 4.094 0 5.656l-5.657 5.657c-.39.39-1.024.39-1.414 0l-5.657-5.657c-1.562-1.562-1.562-4.095 0-5.657 1.562-1.562 4.095-1.562 5.657 0l.706.707.708-.707c1.562-1.562 4.095-1.562 5.657 0zM7.05 12.392c-.78.781-.78 2.048 0 2.829l4.95 4.95 4.95-4.95c.78-.781.78-2.048 0-2.829-.781-.78-2.048-.78-2.83.002l-2.122 2.118-2.12-2.12c-.78-.78-2.047-.78-2.828 0zM12 1c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 2c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2z"],"unicode":"","glyph":"M918.2 651C996.3 572.9499999999999 996.3 446.3 918.2 368.2000000000001L635.35 85.3500000000001C615.85 65.8499999999999 584.15 65.8499999999999 564.6500000000001 85.3500000000001L281.8000000000001 368.2000000000001C203.7000000000001 446.3 203.7000000000001 572.9499999999999 281.8000000000001 651.0500000000001C359.9000000000001 729.1500000000001 486.5500000000001 729.1500000000001 564.6500000000001 651.0500000000001L599.95 615.7L635.35 651.0500000000001C713.45 729.1500000000001 840.1 729.1500000000001 918.2 651.0500000000001zM352.5 580.4C313.5 541.35 313.5 478 352.5 438.9500000000001L600 191.4500000000001L847.5 438.9500000000001C886.5 478 886.5 541.35 847.5 580.4C808.45 619.4 745.0999999999999 619.4 706 580.3L599.9 474.4L493.9 580.4C454.9 619.4 391.55 619.4 352.5000000000001 580.4zM600 1150C710.5 1150 800 1060.5 800 950S710.5 750 600 750S400 839.5 400 950S489.4999999999999 1150 600 1150zM600 1050C544.75 1050 500 1005.25 500 950S544.75 850 600 850S700 894.75 700 950S655.25 1050 600 1050z","horizAdvX":"1200"},"emphasis-cn":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-5.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm11 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM13 2v2h6v2h-1.968a18.222 18.222 0 0 1-3.621 6.302 14.685 14.685 0 0 0 5.327 3.042l-.536 1.93A16.685 16.685 0 0 1 12 13.726a16.696 16.696 0 0 1-6.202 3.547l-.536-1.929a14.7 14.7 0 0 0 5.327-3.042 18.077 18.077 0 0 1-2.822-4.3h2.24A16.031 16.031 0 0 0 12 10.876a16.168 16.168 0 0 0 2.91-4.876L5 6V4h6V2h2z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM325 250A75 75 0 1 0 325 100A75 75 0 0 0 325 250zM875 250A75 75 0 1 0 875 100A75 75 0 0 0 875 250zM650 1100V1000H950V900H851.6A911.1000000000001 911.1000000000001 0 0 0 670.55 584.9A734.2499999999999 734.2499999999999 0 0 1 936.9 432.8000000000001L910.1 336.3A834.2499999999999 834.2499999999999 0 0 0 600 513.6999999999999A834.8000000000001 834.8000000000001 0 0 0 289.9 336.35L263.1 432.8000000000001A735 735 0 0 1 529.45 584.9A903.8500000000001 903.8500000000001 0 0 0 388.35 799.9000000000001H500.3500000000001A801.5500000000001 801.5500000000001 0 0 1 600 656.2A808.4 808.4 0 0 1 745.5 900L250 900V1000H550V1100H650z","horizAdvX":"1200"},"emphasis":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-5.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm11 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM18 3v2H8v4h9v2H8v4h10v2H6V3h12z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM325 250A75 75 0 1 0 325 100A75 75 0 0 0 325 250zM875 250A75 75 0 1 0 875 100A75 75 0 0 0 875 250zM900 1050V950H400V750H850V650H400V450H900V350H300V1050H900z","horizAdvX":"1200"},"english-input":{"path":["M0 0h24v24H0z","M14 10h2v.757a4.5 4.5 0 0 1 7 3.743V20h-2v-5.5c0-1.43-1.175-2.5-2.5-2.5S16 13.07 16 14.5V20h-2V10zm-2-6v2H4v5h8v2H4v5h8v2H2V4h10z"],"unicode":"","glyph":"M700 700H800V662.15A225 225 0 0 0 1150 475V200H1050V475C1050 546.5 991.25 600 925 600S800 546.5 800 475V200H700V700zM600 1000V900H200V650H600V550H200V300H600V200H100V1000H600z","horizAdvX":"1200"},"equalizer-fill":{"path":["M0 0h24v24H0z","M6.17 18a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2v-2h4.17zm6-7a3.001 3.001 0 0 1 5.66 0H22v2h-4.17a3.001 3.001 0 0 1-5.66 0H2v-2h10.17zm-6-7a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2V4h4.17z"],"unicode":"","glyph":"M308.5 300A150.04999999999998 150.04999999999998 0 0 0 591.5 300H1100V200H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 200H100V300H308.5zM608.5 650A150.04999999999998 150.04999999999998 0 0 0 891.4999999999999 650H1100V550H891.4999999999999A150.04999999999998 150.04999999999998 0 0 0 608.4999999999999 550H100V650H608.5zM308.5 1000A150.04999999999998 150.04999999999998 0 0 0 591.5 1000H1100V900H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 900H100V1000H308.5z","horizAdvX":"1200"},"equalizer-line":{"path":["M0 0h24v24H0z","M6.17 18a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2v-2h4.17zm6-7a3.001 3.001 0 0 1 5.66 0H22v2h-4.17a3.001 3.001 0 0 1-5.66 0H2v-2h10.17zm-6-7a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2V4h4.17zM9 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M308.5 300A150.04999999999998 150.04999999999998 0 0 0 591.5 300H1100V200H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 200H100V300H308.5zM608.5 650A150.04999999999998 150.04999999999998 0 0 0 891.4999999999999 650H1100V550H891.4999999999999A150.04999999999998 150.04999999999998 0 0 0 608.4999999999999 550H100V650H608.5zM308.5 1000A150.04999999999998 150.04999999999998 0 0 0 591.5 1000H1100V900H591.5A150.04999999999998 150.04999999999998 0 0 0 308.5 900H100V1000H308.5zM450 900A50 50 0 1 1 450 1000A50 50 0 0 1 450 900zM750 550A50 50 0 1 1 750 650A50 50 0 0 1 750 550zM450 200A50 50 0 1 1 450 300A50 50 0 0 1 450 200z","horizAdvX":"1200"},"eraser-fill":{"path":["M0 0h24v24H0z","M14 19h7v2h-9l-3.998.002-6.487-6.487a1 1 0 0 1 0-1.414L12.12 2.494a1 1 0 0 1 1.415 0l7.778 7.778a1 1 0 0 1 0 1.414L14 19zm1.657-4.485l3.535-3.536-6.364-6.364-3.535 3.536 6.364 6.364z"],"unicode":"","glyph":"M700 250H1050V150H600L400.1 149.9000000000001L75.7499999999999 474.2500000000001A50 50 0 0 0 75.7499999999999 544.95L606 1075.3A50 50 0 0 0 676.75 1075.3L1065.6499999999999 686.4A50 50 0 0 0 1065.6499999999999 615.7L700 250zM782.85 474.25L959.6 651.05L641.4 969.25L464.65 792.4499999999999L782.85 474.25z","horizAdvX":"1200"},"eraser-line":{"path":["M0 0h24v24H0z","M8.586 8.858l-4.95 4.95 5.194 5.194H10V19h1.172l3.778-3.778-6.364-6.364zM10 7.444l6.364 6.364 2.828-2.829-6.364-6.364L10 7.444zM14 19h7v2h-9l-3.998.002-6.487-6.487a1 1 0 0 1 0-1.414L12.12 2.494a1 1 0 0 1 1.415 0l7.778 7.778a1 1 0 0 1 0 1.414L14 19z"],"unicode":"","glyph":"M429.3 757.0999999999999L181.8 509.6L441.5 249.9000000000001H500V250H558.6L747.5 438.9L429.3000000000002 757.0999999999999zM500 827.8L818.2 509.6L959.6 651.0500000000001L641.4 969.25L500 827.8zM700 250H1050V150H600L400.1 149.9000000000001L75.7499999999999 474.2500000000001A50 50 0 0 0 75.7499999999999 544.95L606 1075.3A50 50 0 0 0 676.75 1075.3L1065.6499999999999 686.4A50 50 0 0 0 1065.6499999999999 615.7L700 250z","horizAdvX":"1200"},"error-warning-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"error-warning-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-5h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"evernote-fill":{"path":["M0 0h24v24H0z","M8.63 7.754c-.216.201-.546.217-.743.217h-2.11c-.61 0-.974 0-1.22.033-.134.017-.298.084-.381.117-.033.016-.033 0-.017-.016l4.816-4.94c.017-.017.033-.017.017.017a1.734 1.734 0 0 0-.116.382c-.033.249-.033.615-.033 1.23v2.212c0 .2-.017.533-.214.748zm4.682 14.184c-.56-.366-.857-.848-.973-1.147a2.443 2.443 0 0 1-.181-.915 2.513 2.513 0 0 1 2.507-2.51c.412 0 .742.332.742.748a.735.735 0 0 1-.38.648.946.946 0 0 1-.28.1c-.082.017-.396.05-.543.183a.776.776 0 0 0-.298.582.92.92 0 0 0 .264.649c.297.299.693.465 1.122.465a2.036 2.036 0 0 0 2.028-2.045c0-1.014-.676-1.913-1.567-2.311-.132-.067-.346-.117-.544-.167a6.719 6.719 0 0 0-.495-.083c-.693-.084-2.424-.632-2.54-2.178 0 0-.51 2.328-1.534 2.96-.098.05-.23.1-.379.133-.148.033-.312.05-.363.05-1.665.1-3.43-.433-4.65-1.696 0 0-.825-.682-1.253-2.594-.099-.466-.297-1.298-.412-2.08-.05-.281-.067-.498-.083-.698 0-.814.495-1.363 1.121-1.445h3.365c.576 0 .907-.15 1.121-.35.28-.266.347-.649.347-1.098V3.631c.08-.615.627-1.131 1.434-1.131h.396c.165 0 .363.017.544.033.132.017.247.05.445.1 1.006.25 1.22 1.28 1.22 1.28l2.854.5c.907.166 3.15.316 3.578 2.594 1.006 5.42.396 10.675.347 10.675-.71 5.121-4.931 4.871-4.931 4.871a3.426 3.426 0 0 1-2.029-.615zm2.622-10.309c-.033.084-.066.183-.05.233.018.05.051.066.084.083.198.1.527.15 1.006.2.478.05.808.083 1.022.05.033 0 .067-.017.1-.067s.016-.15.016-.233c-.05-.449-.462-.781-1.006-.848-.545-.05-1.006.167-1.172.582z"],"unicode":"","glyph":"M431.5000000000001 812.3C420.7000000000001 802.25 404.2000000000001 801.45 394.35 801.45H288.85C258.35 801.45 240.1500000000001 801.45 227.8500000000001 799.8C221.15 798.95 212.9500000000001 795.6 208.8000000000001 793.95C207.15 793.15 207.15 793.95 207.9500000000001 794.75L448.7500000000001 1041.75C449.6 1042.6 450.4 1042.6 449.6 1040.9A86.69999999999999 86.69999999999999 0 0 1 443.8000000000001 1021.8C442.1500000000001 1009.35 442.1500000000001 991.05 442.1500000000001 960.3V849.7C442.1500000000001 839.7 441.3000000000002 823.05 431.4500000000001 812.3zM665.6 103.1000000000001C637.6 121.4000000000001 622.7500000000001 145.5 616.95 160.4500000000001A122.14999999999999 122.14999999999999 0 0 0 607.9000000000001 206.1999999999999A125.64999999999999 125.64999999999999 0 0 0 733.25 331.7000000000001C753.8500000000001 331.7000000000001 770.35 315.1 770.35 294.3A36.74999999999999 36.74999999999999 0 0 0 751.3499999999999 261.9A47.3 47.3 0 0 0 737.35 256.8999999999999C733.25 256.05 717.55 254.3999999999999 710.2 247.7499999999999A38.8 38.8 0 0 1 695.3000000000001 218.6499999999999A46 46 0 0 1 708.5 186.1999999999998C723.35 171.2499999999998 743.15 162.9499999999998 764.6 162.9499999999998A101.8 101.8 0 0 1 866 265.1999999999997C866 315.8999999999998 832.2 360.8499999999998 787.65 380.7499999999998C781.0500000000001 384.0999999999998 770.35 386.5999999999998 760.4499999999999 389.0999999999998A335.95 335.95 0 0 1 735.7 393.2499999999998C701.0500000000001 397.4499999999997 614.5 424.8499999999997 608.6999999999999 502.1499999999997C608.6999999999999 502.1499999999997 583.1999999999999 385.7499999999998 531.9999999999999 354.1499999999998C527.0999999999999 351.6499999999998 520.4999999999999 349.1499999999997 513.05 347.4999999999998C505.65 345.8499999999997 497.45 344.9999999999998 494.9 344.9999999999998C411.6500000000001 339.9999999999997 323.4 366.6499999999998 262.4 429.7999999999998C262.4 429.7999999999998 221.15 463.8999999999997 199.75 559.4999999999997C194.8 582.7999999999997 184.9 624.3999999999997 179.15 663.4999999999997C176.65 677.5499999999997 175.8 688.3999999999996 175 698.3999999999997C175 739.0999999999997 199.75 766.5499999999997 231.05 770.6499999999997H399.3C428.1 770.6499999999997 444.6499999999999 778.1499999999997 455.35 788.1499999999997C469.3499999999999 801.4499999999997 472.6999999999999 820.5999999999997 472.6999999999999 843.0499999999997V1018.45C476.6999999999999 1049.2 504.05 1075 544.3999999999999 1075H564.1999999999999C572.4499999999999 1075 582.3499999999999 1074.15 591.4 1073.35C598 1072.5 603.75 1070.85 613.65 1068.35C663.95 1055.85 674.65 1004.35 674.65 1004.35L817.35 979.35C862.7 971.05 974.85 963.55 996.25 849.6500000000001C1046.55 578.65 1016.05 315.8999999999999 1013.6000000000003 315.8999999999999C978.1 59.8499999999997 767.0500000000001 72.3499999999997 767.0500000000001 72.3499999999997A171.3 171.3 0 0 0 665.6 103.0999999999997zM796.7 618.5500000000001C795.0500000000001 614.35 793.4 609.4 794.2 606.9C795.1 604.4 796.75 603.5999999999999 798.4 602.75C808.3000000000001 597.75 824.75 595.25 848.7 592.75C872.6000000000001 590.25 889.1 588.6 899.8 590.25C901.45 590.25 903.15 591.0999999999999 904.8 593.6S905.6 601.1 905.6 605.25C903.1 627.7 882.4999999999999 644.3000000000001 855.3 647.6500000000001C828.0499999999998 650.1500000000001 804.9999999999999 639.3000000000001 796.6999999999998 618.5500000000001z","horizAdvX":"1200"},"evernote-line":{"path":["M0 0h24v24H0z","M10.5 8.5a1 1 0 0 1-1 1H6.001c-.336 0-.501.261-.501.532 0 1.32.254 2.372.664 3.193.216.433.399.67.523.79.735.76 1.886 1.16 3.092 1.089.095-.006.199-.064.332-.208a1.51 1.51 0 0 0 .214-.293 2 2 0 0 1 2.531-1.073c.693.258 1.277.434 1.813.56.196.046.375.083.586.122-.077-.014.402.074.518.098.34.07.598.146.883.29a5.087 5.087 0 0 1 1.775 1.475c.045-.591.077-1.268.087-2.026a34.182 34.182 0 0 0-.559-6.673c-.074-.398-.236-.562-.663-.718a3.847 3.847 0 0 0-.587-.155c-.147-.028-.65-.11-.693-.118a1273 1273 0 0 1-2.34-.409l-.528-.092a2 2 0 0 1-1.524-1.26 11.467 11.467 0 0 0-.034-.088 5.595 5.595 0 0 0-.702-.036c-.271 0-.388.124-.388.463V8.5zm6.23 11.639c.352-.356.56-.829.587-1.327.054-1.036-.824-2.48-2.317-2.634-.617-.063-1.586-.306-2.842-.774 0 0-.7 1.603-2.26 1.696-1.665.1-3.43-.433-4.65-1.696 0 0-1.748-1.64-1.748-5.372 0-.814.29-1.422.648-1.904.96-1.292 2.505-2.78 4.133-4.304C9 3.15 9.701 2.5 10.888 2.5c2.04 0 2.32.664 2.605 1.414l2.854.499c.907.166 3.15.316 3.578 2.594 1.006 5.42.458 9.87.347 10.675-.71 5.121-4.772 4.871-4.931 4.871-2.059 0-3.178-1.373-3.183-2.677a2.494 2.494 0 0 1 1.038-2.034 2.586 2.586 0 0 1 1.527-.478c.305 0 .687.318.687.753 0 .37-.255.575-.382.645-.223.124-1.122.174-1.122.865 0 .317.35 1.114 1.386 1.114.588 0 1.094-.256 1.437-.602zm-1.796-9.51c.166-.415.627-.632 1.172-.582.544.067.956.4 1.006.848 0 .083.017.183-.017.233-.032.05-.066.067-.1.067-.213.033-.543 0-1.021-.05-.48-.05-.808-.1-1.006-.2-.033-.017-.066-.033-.083-.083s.016-.15.05-.233z"],"unicode":"","glyph":"M525 775A50 50 0 0 0 475 725H300.05C283.25 725 275 711.95 275 698.4C275 632.4 287.7 579.8 308.2 538.75C319 517.1 328.15 505.25 334.35 499.25C371.1 461.25 428.6499999999999 441.25 488.95 444.8C493.7 445.0999999999999 498.9 448 505.55 455.1999999999999A75.49999999999999 75.49999999999999 0 0 1 516.25 469.8499999999999A100 100 0 0 0 642.8000000000001 523.5C677.45 510.6 706.6500000000001 501.8 733.4500000000002 495.4999999999999C743.2500000000001 493.1999999999999 752.2000000000002 491.3499999999999 762.7500000000001 489.4C758.9000000000001 490.0999999999999 782.8500000000001 485.6999999999999 788.6500000000002 484.4999999999999C805.6500000000002 480.9999999999999 818.5500000000001 477.1999999999998 832.8000000000001 469.9999999999999A254.35 254.35 0 0 0 921.55 396.2499999999999C923.8000000000002 425.7999999999999 925.4 459.6499999999999 925.9 497.5499999999998A1709.1000000000001 1709.1000000000001 0 0 1 897.9499999999999 831.1999999999998C894.2499999999999 851.0999999999999 886.15 859.2999999999998 864.8 867.0999999999999A192.34999999999997 192.34999999999997 0 0 1 835.4499999999999 874.8499999999999C828.1 876.2499999999998 802.95 880.3499999999999 800.8 880.7499999999999A63650 63650 0 0 0 683.8 901.1999999999998L657.3999999999999 905.7999999999998A100 100 0 0 0 581.1999999999999 968.7999999999998A573.35 573.35 0 0 1 579.4999999999999 973.1999999999998A279.75 279.75 0 0 1 544.3999999999999 974.9999999999998C530.8499999999999 974.9999999999998 524.9999999999999 968.7999999999998 524.9999999999999 951.8499999999998V775zM836.5 193.0500000000001C854.1 210.8500000000001 864.5 234.5000000000001 865.85 259.4000000000001C868.55 311.2000000000002 824.65 383.4000000000001 750 391.1000000000002C719.15 394.2500000000001 670.6999999999999 406.4000000000001 607.9 429.8000000000002C607.9 429.8000000000002 572.9 349.6500000000001 494.9 345.0000000000001C411.6500000000001 340 323.4 366.6500000000001 262.4 429.8000000000001C262.4 429.8000000000001 175 511.8000000000001 175 698.4000000000001C175 739.1000000000001 189.5 769.5000000000001 207.4 793.6000000000001C255.4 858.2 332.6499999999999 932.6 414.05 1008.8C450 1042.5 485.05 1075 544.4 1075C646.4000000000001 1075 660.4 1041.8 674.65 1004.3L817.35 979.35C862.7 971.05 974.85 963.55 996.25 849.6500000000001C1046.55 578.65 1019.15 356.1500000000001 1013.6000000000003 315.8999999999999C978.1 59.8499999999997 775.0000000000001 72.3499999999997 767.0500000000001 72.3499999999997C664.1 72.3499999999997 608.15 140.9999999999998 607.9000000000001 206.1999999999998A124.70000000000002 124.70000000000002 0 0 0 659.8000000000001 307.8999999999998A129.3 129.3 0 0 0 736.1500000000001 331.7999999999998C751.4 331.7999999999998 770.5 315.8999999999998 770.5 294.1499999999998C770.5 275.6499999999998 757.75 265.3999999999999 751.4 261.8999999999998C740.25 255.6999999999998 695.3000000000001 253.1999999999998 695.3000000000001 218.6499999999999C695.3000000000001 202.7999999999999 712.8 162.9499999999998 764.6 162.9499999999998C794 162.9499999999998 819.3 175.7499999999998 836.4499999999999 193.0499999999999zM746.7 668.5500000000001C755.0000000000001 689.3 778.0500000000001 700.15 805.3000000000001 697.6500000000001C832.5000000000001 694.3000000000001 853.1 677.6500000000001 855.6000000000001 655.25C855.6000000000001 651.1 856.45 646.1 854.7500000000001 643.6C853.1500000000001 641.0999999999999 851.4500000000002 640.25 849.75 640.25C839.1 638.6 822.6000000000001 640.25 798.7 642.75C774.7 645.25 758.3000000000001 647.75 748.4 652.75C746.75 653.5999999999999 745.0999999999999 654.4 744.25 656.9S745.05 664.4 746.75 668.5500000000001z","horizAdvX":"1200"},"exchange-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 6H8v2h9l-5-5v3zm-5 4l5 5v-3h4v-2H7z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM600 750H400V650H850L600 900V750zM350 550L600 300V450H800V550H350z","horizAdvX":"1200"},"exchange-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 6V6l5 5H8V9h4zm-5 4h9v2h-4v3l-5-5z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM600 750V900L850 650H400V750H600zM350 550H800V450H600V300L350 550z","horizAdvX":"1200"},"exchange-cny-fill":{"path":["M0 0h24v24H0z","M5.373 4.51A9.962 9.962 0 0 1 12 2c5.523 0 10 4.477 10 10a9.954 9.954 0 0 1-1.793 5.715L17.5 12H20A8 8 0 0 0 6.274 6.413l-.9-1.902zm13.254 14.98A9.962 9.962 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.125.663-4.095 1.793-5.715L6.5 12H4a8 8 0 0 0 13.726 5.587l.9 1.902zM13 13.535h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 8.414 9.88 7 12 9.121 14.121 7l1.415 1.414-2.122 2.122H16v2h-3v1z"],"unicode":"","glyph":"M268.6500000000001 974.5A498.1 498.1 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600A497.7000000000001 497.7000000000001 0 0 0 1010.35 314.25L875 600H1000A400 400 0 0 1 313.7 879.3499999999999L268.7 974.45zM931.35 225.4999999999999A498.1 498.1 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.25 133.15 804.75 189.65 885.75L325 600H200A400 400 0 0 1 886.3 320.65L931.2999999999998 225.55zM650 523.25H800V423.25H650V323.25H550V423.25H400V523.25H550V573.25H400V673.25H529.3000000000001L423.2000000000001 779.3L494.0000000000001 850L600 743.95L706.0500000000001 850L776.8000000000001 779.3L670.7 673.2H800V573.2H650V523.2z","horizAdvX":"1200"},"exchange-cny-line":{"path":["M0 0h24v24H0z","M19.375 15.103A8.001 8.001 0 0 0 8.03 5.053l-.992-1.737A9.996 9.996 0 0 1 17 3.34c4.49 2.592 6.21 8.142 4.117 12.77l1.342.774-4.165 2.214-.165-4.714 1.246.719zM4.625 8.897a8.001 8.001 0 0 0 11.345 10.05l.992 1.737A9.996 9.996 0 0 1 7 20.66C2.51 18.068.79 12.518 2.883 7.89L1.54 7.117l4.165-2.214.165 4.714-1.246-.719zM13 13.536h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 8.414 9.88 7 12 9.121 14.121 7l1.415 1.414-2.122 2.122H16v2h-3v1z"],"unicode":"","glyph":"M968.75 444.85A400.04999999999995 400.04999999999995 0 0 1 401.5 947.35L351.9 1034.2A499.8 499.8 0 0 0 850 1033C1074.5 903.4 1160.5 625.9000000000001 1055.8500000000001 394.5L1122.95 355.8L914.7 245.1L906.45 480.8000000000001L968.75 444.8500000000002zM231.25 755.15A400.04999999999995 400.04999999999995 0 0 1 798.5 252.6499999999999L848.1 165.7999999999997A499.8 499.8 0 0 0 350 167C125.5 296.5999999999999 39.5 574.0999999999999 144.15 805.5L77 844.15L285.25 954.85L293.5 719.15L231.2 755.0999999999999zM650 523.2H800V423.2000000000001H650V323.2H550V423.2H400V523.1999999999999H550V573.1999999999999H400V673.1999999999999H529.3000000000001L423.2000000000001 779.3L494.0000000000001 850L600 743.95L706.0500000000001 850L776.8000000000001 779.3L670.7 673.2H800V573.2H650V523.2z","horizAdvX":"1200"},"exchange-dollar-fill":{"path":["M0 0h24v24H0z","M5.373 4.51A9.962 9.962 0 0 1 12 2c5.523 0 10 4.477 10 10a9.954 9.954 0 0 1-1.793 5.715L17.5 12H20A8 8 0 0 0 6.274 6.413l-.9-1.902zm13.254 14.98A9.962 9.962 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.125.663-4.095 1.793-5.715L6.5 12H4a8 8 0 0 0 13.726 5.587l.9 1.902zM8.5 14H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V7h2v1h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v1h-2v-1H8.5v-2z"],"unicode":"","glyph":"M268.6500000000001 974.5A498.1 498.1 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600A497.7000000000001 497.7000000000001 0 0 0 1010.35 314.25L875 600H1000A400 400 0 0 1 313.7 879.3499999999999L268.7 974.45zM931.35 225.4999999999999A498.1 498.1 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.25 133.15 804.75 189.65 885.75L325 600H200A400 400 0 0 1 886.3 320.65L931.2999999999998 225.55zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V850H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V350H550V400H425V500z","horizAdvX":"1200"},"exchange-dollar-line":{"path":["M0 0h24v24H0z","M19.375 15.103A8.001 8.001 0 0 0 8.03 5.053l-.992-1.737A9.996 9.996 0 0 1 17 3.34c4.49 2.592 6.21 8.142 4.117 12.77l1.342.774-4.165 2.214-.165-4.714 1.246.719zM4.625 8.897a8.001 8.001 0 0 0 11.345 10.05l.992 1.737A9.996 9.996 0 0 1 7 20.66C2.51 18.068.79 12.518 2.883 7.89L1.54 7.117l4.165-2.214.165 4.714-1.246-.719zM8.5 14H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V7h2v1h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v1h-2v-1H8.5v-2z"],"unicode":"","glyph":"M968.75 444.85A400.04999999999995 400.04999999999995 0 0 1 401.5 947.35L351.9 1034.2A499.8 499.8 0 0 0 850 1033C1074.5 903.4 1160.5 625.9000000000001 1055.8500000000001 394.5L1122.95 355.8L914.7 245.1L906.45 480.8000000000001L968.75 444.8500000000002zM231.25 755.15A400.04999999999995 400.04999999999995 0 0 1 798.5 252.6499999999999L848.1 165.7999999999997A499.8 499.8 0 0 0 350 167C125.5 296.5999999999999 39.5 574.0999999999999 144.15 805.5L77 844.15L285.25 954.85L293.5 719.15L231.2 755.0999999999999zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V850H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V350H550V400H425V500z","horizAdvX":"1200"},"exchange-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-13H8v2h9l-5-5v3zm-5 4l5 5v-3h4v-2H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 750H400V650H850L600 900V750zM350 550L600 300V450H800V550H350z","horizAdvX":"1200"},"exchange-funds-fill":{"path":["M0 0h24v24H0z","M5.373 4.51A9.962 9.962 0 0 1 12 2c5.523 0 10 4.477 10 10a9.954 9.954 0 0 1-1.793 5.715L17.5 12H20A8 8 0 0 0 6.274 6.413l-.9-1.902zm13.254 14.98A9.962 9.962 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.125.663-4.095 1.793-5.715L6.5 12H4a8 8 0 0 0 13.726 5.587l.9 1.902zm-5.213-4.662L10.586 12l-2.829 2.828-1.414-1.414 4.243-4.242L13.414 12l2.829-2.828 1.414 1.414-4.243 4.242z"],"unicode":"","glyph":"M268.6500000000001 974.5A498.1 498.1 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600A497.7000000000001 497.7000000000001 0 0 0 1010.35 314.25L875 600H1000A400 400 0 0 1 313.7 879.3499999999999L268.7 974.45zM931.35 225.4999999999999A498.1 498.1 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.25 133.15 804.75 189.65 885.75L325 600H200A400 400 0 0 1 886.3 320.65L931.2999999999998 225.55zM670.6999999999999 458.5999999999999L529.3000000000001 600L387.85 458.6L317.15 529.3000000000001L529.3000000000001 741.4L670.6999999999999 600L812.15 741.4L882.85 670.6999999999999L670.6999999999999 458.6z","horizAdvX":"1200"},"exchange-funds-line":{"path":["M0 0h24v24H0z","M19.375 15.103A8.001 8.001 0 0 0 8.03 5.053l-.992-1.737A9.996 9.996 0 0 1 17 3.34c4.49 2.592 6.21 8.142 4.117 12.77l1.342.774-4.165 2.214-.165-4.714 1.246.719zM4.625 8.897a8.001 8.001 0 0 0 11.345 10.05l.992 1.737A9.996 9.996 0 0 1 7 20.66C2.51 18.068.79 12.518 2.883 7.89L1.54 7.117l4.165-2.214.165 4.714-1.246-.719zm8.79 5.931L10.584 12l-2.828 2.828-1.414-1.414 4.243-4.242L13.414 12l2.829-2.828 1.414 1.414-4.243 4.242z"],"unicode":"","glyph":"M968.75 444.85A400.04999999999995 400.04999999999995 0 0 1 401.5 947.35L351.9 1034.2A499.8 499.8 0 0 0 850 1033C1074.5 903.4 1160.5 625.9000000000001 1055.8500000000001 394.5L1122.95 355.8L914.7 245.1L906.45 480.8000000000001L968.75 444.8500000000002zM231.25 755.15A400.04999999999995 400.04999999999995 0 0 1 798.5 252.6499999999999L848.1 165.7999999999997A499.8 499.8 0 0 0 350 167C125.5 296.5999999999999 39.5 574.0999999999999 144.15 805.5L77 844.15L285.25 954.85L293.5 719.15L231.2 755.0999999999999zM670.75 458.6L529.1999999999999 600L387.8 458.6L317.1 529.3000000000001L529.25 741.4L670.6999999999999 600L812.15 741.4L882.85 670.6999999999999L670.6999999999999 458.6z","horizAdvX":"1200"},"exchange-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-7h9v2h-4v3l-5-5zm5-4V6l5 5H8V9h4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 550H800V450H600V300L350 550zM600 750V900L850 650H400V750H600z","horizAdvX":"1200"},"external-link-fill":{"path":["M0 0h24v24H0z","M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h6zm11-3v9l-3.794-3.793-5.999 6-1.414-1.414 5.999-6L12 3h9z"],"unicode":"","glyph":"M500 900V800H250V250H800V500H900V200A50 50 0 0 0 850 150H200A50 50 0 0 0 150 200V850A50 50 0 0 0 200 900H500zM1050 1050V600L860.3 789.65L560.35 489.65L489.65 560.3499999999999L789.6000000000001 860.3499999999999L600 1050H1050z","horizAdvX":"1200"},"external-link-line":{"path":["M0 0h24v24H0z","M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h6zm11-3v8h-2V6.413l-7.793 7.794-1.414-1.414L17.585 5H13V3h8z"],"unicode":"","glyph":"M500 900V800H250V250H800V500H900V200A50 50 0 0 0 850 150H200A50 50 0 0 0 150 200V850A50 50 0 0 0 200 900H500zM1050 1050V650H950V879.3499999999999L560.35 489.65L489.65 560.3499999999999L879.25 950H650V1050H1050z","horizAdvX":"1200"},"eye-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 5c-.513 0-1.007.077-1.473.22a2.5 2.5 0 1 1-3.306 3.307A5 5 0 1 0 12 7z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 850C574.35 850 549.65 846.15 526.3499999999999 839A125 125 0 1 0 361.05 673.6500000000001A250 250 0 1 1 600 850z","horizAdvX":"1200"},"eye-2-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 3a5 5 0 1 1-4.78 3.527A2.499 2.499 0 0 0 12 9.5a2.5 2.5 0 0 0-1.473-2.28c.466-.143.96-.22 1.473-.22z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM600 850A250 250 0 1 0 361 673.65A124.95 124.95 0 0 1 600 725A125 125 0 0 1 526.3499999999999 839C549.65 846.15 574.3499999999999 850 600 850z","horizAdvX":"1200"},"eye-close-fill":{"path":["M0 0h24v24H0z","M10.13 15.842l-.788 2.94-1.931-.518.787-2.939a10.988 10.988 0 0 1-3.237-1.872l-2.153 2.154-1.415-1.415 2.154-2.153a10.957 10.957 0 0 1-2.371-5.07l.9-.165A16.923 16.923 0 0 0 12 10c3.704 0 7.131-1.185 9.924-3.196l.9.164a10.957 10.957 0 0 1-2.37 5.071l2.153 2.153-1.415 1.415-2.153-2.154a10.988 10.988 0 0 1-3.237 1.872l.787 2.94-1.931.517-.788-2.94a11.072 11.072 0 0 1-3.74 0z"],"unicode":"","glyph":"M506.5000000000001 407.9L467.1 260.9L370.55 286.8000000000001L409.9000000000001 433.75A549.4000000000001 549.4000000000001 0 0 0 248.05 527.35L140.4 419.6500000000001L69.65 490.4L177.35 598.0500000000001A547.85 547.85 0 0 0 58.8 851.55L103.8 859.8A846.15 846.15 0 0 1 600 700C785.2 700 956.55 759.25 1096.2 859.8L1141.1999999999998 851.6A547.85 547.85 0 0 0 1022.6999999999998 598.0500000000001L1130.3499999999997 490.4L1059.6 419.6500000000001L951.95 527.35A549.4000000000001 549.4000000000001 0 0 0 790.0999999999999 433.75L829.4499999999999 286.75L732.8999999999999 260.9L693.4999999999999 407.9A553.6 553.6 0 0 0 506.4999999999999 407.9z","horizAdvX":"1200"},"eye-close-line":{"path":["M0 0h24v24H0z","M9.342 18.782l-1.931-.518.787-2.939a10.988 10.988 0 0 1-3.237-1.872l-2.153 2.154-1.415-1.415 2.154-2.153a10.957 10.957 0 0 1-2.371-5.07l1.968-.359C3.903 10.812 7.579 14 12 14c4.42 0 8.097-3.188 8.856-7.39l1.968.358a10.957 10.957 0 0 1-2.37 5.071l2.153 2.153-1.415 1.415-2.153-2.154a10.988 10.988 0 0 1-3.237 1.872l.787 2.94-1.931.517-.788-2.94a11.072 11.072 0 0 1-3.74 0l-.788 2.94z"],"unicode":"","glyph":"M467.1 260.9L370.55 286.8000000000001L409.9000000000001 433.75A549.4000000000001 549.4000000000001 0 0 0 248.05 527.35L140.4 419.6500000000001L69.65 490.4L177.35 598.0500000000001A547.85 547.85 0 0 0 58.8 851.55L157.2 869.5C195.15 659.4 378.95 500 600 500C821.0000000000001 500 1004.85 659.4 1042.8000000000002 869.5L1141.2 851.6A547.85 547.85 0 0 0 1022.7 598.0500000000001L1130.35 490.4L1059.6 419.6500000000001L951.95 527.35A549.4000000000001 549.4000000000001 0 0 0 790.1 433.75L829.4500000000002 286.75L732.9000000000001 260.9L693.5 407.9A553.6 553.6 0 0 0 506.5000000000001 407.9L467.1 260.9z","horizAdvX":"1200"},"eye-fill":{"path":["M0 0h24v24H0z","M1.181 12C2.121 6.88 6.608 3 12 3c5.392 0 9.878 3.88 10.819 9-.94 5.12-5.427 9-10.819 9-5.392 0-9.878-3.88-10.819-9zM12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0-2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M59.05 600C106.05 856 330.4 1050 600 1050C869.6 1050 1093.9 856 1140.95 600C1093.95 344 869.6000000000001 150 600.0000000000001 150C330.4000000000001 150 106.1000000000001 344 59.0500000000001 600zM600 350A250 250 0 1 1 600 850A250 250 0 0 1 600 350zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450z","horizAdvX":"1200"},"eye-line":{"path":["M0 0h24v24H0z","M12 3c5.392 0 9.878 3.88 10.819 9-.94 5.12-5.427 9-10.819 9-5.392 0-9.878-3.88-10.819-9C2.121 6.88 6.608 3 12 3zm0 16a9.005 9.005 0 0 0 8.777-7 9.005 9.005 0 0 0-17.554 0A9.005 9.005 0 0 0 12 19zm0-2.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M600 1050C869.6 1050 1093.9 856 1140.95 600C1093.95 344 869.6000000000001 150 600.0000000000001 150C330.4000000000001 150 106.1000000000001 344 59.0500000000001 600C106.05 856 330.4 1050 600 1050zM600 250A450.25000000000006 450.25000000000006 0 0 1 1038.8500000000001 600A450.25000000000006 450.25000000000006 0 0 1 161.1500000000001 600A450.25000000000006 450.25000000000006 0 0 1 600 250zM600 375A225 225 0 1 0 600 825A225 225 0 0 0 600 375zM600 475A125 125 0 1 1 600 725A125 125 0 0 1 600 475z","horizAdvX":"1200"},"eye-off-fill":{"path":["M0 0h24v24H0z","M4.52 5.934L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.31-3.31A10.949 10.949 0 0 1 12 21c-5.392 0-9.878-3.88-10.819-9a10.982 10.982 0 0 1 3.34-6.066zm10.237 10.238l-1.464-1.464a3 3 0 0 1-4.001-4.001L7.828 9.243a5 5 0 0 0 6.929 6.929zM7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.947 10.947 0 0 1-2.012 4.592l-3.86-3.86a5 5 0 0 0-5.68-5.68L7.974 3.761z"],"unicode":"","glyph":"M226 903.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L894.1 235.1499999999998A547.4499999999999 547.4499999999999 0 0 0 600 150C330.4 150 106.1 344 59.05 600A549.1 549.1 0 0 0 226.05 903.3zM737.85 391.4L664.65 464.6A150 150 0 0 0 464.5999999999999 664.65L391.4000000000001 737.8499999999999A250 250 0 0 1 737.85 391.4zM398.7 1012C461.05 1036.5 529 1050 600 1050C869.6 1050 1093.9 856 1140.95 600A547.35 547.35 0 0 0 1040.3500000000001 370.4000000000001L847.3500000000001 563.4000000000001A250 250 0 0 1 563.3500000000001 847.4000000000001L398.7 1011.95z","horizAdvX":"1200"},"eye-off-line":{"path":["M0 0h24v24H0z","M17.882 19.297A10.949 10.949 0 0 1 12 21c-5.392 0-9.878-3.88-10.819-9a10.982 10.982 0 0 1 3.34-6.066L1.392 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.31-3.31zM5.935 7.35A8.965 8.965 0 0 0 3.223 12a9.005 9.005 0 0 0 13.201 5.838l-2.028-2.028A4.5 4.5 0 0 1 8.19 9.604L5.935 7.35zm6.979 6.978l-3.242-3.242a2.5 2.5 0 0 0 3.241 3.241zm7.893 2.264l-1.431-1.43A8.935 8.935 0 0 0 20.777 12 9.005 9.005 0 0 0 9.552 5.338L7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.947 10.947 0 0 1-2.012 4.592zm-9.084-9.084a4.5 4.5 0 0 1 4.769 4.769l-4.77-4.769z"],"unicode":"","glyph":"M894.1 235.15A547.4499999999999 547.4499999999999 0 0 0 600 150C330.4 150 106.1 344 59.05 600A549.1 549.1 0 0 0 226.05 903.3L69.6 1059.6L140.35 1130.35L1130.3 140.3499999999999L1059.55 69.6499999999999L894.05 235.1499999999998zM296.75 832.5A448.25 448.25 0 0 1 161.15 600A450.25000000000006 450.25000000000006 0 0 1 821.1999999999999 308.0999999999999L719.8 409.5A225 225 0 0 0 409.5 719.8000000000001L296.75 832.5zM645.6999999999999 483.6L483.6 645.7A125 125 0 0 1 645.65 483.6500000000001zM1040.35 370.4000000000001L968.7999999999998 441.9000000000001A446.75 446.75 0 0 1 1038.8500000000001 600A450.25000000000006 450.25000000000006 0 0 1 477.6 933.1L398.7 1012C461.05 1036.5 529 1050 600 1050C869.6 1050 1093.9 856 1140.95 600A547.35 547.35 0 0 0 1040.3500000000001 370.4000000000001zM586.15 824.6A225 225 0 0 0 824.5999999999999 586.1500000000001L586.0999999999999 824.6z","horizAdvX":"1200"},"facebook-box-fill":{"path":["M0 0h24v24H0z","M15.402 21v-6.966h2.333l.349-2.708h-2.682V9.598c0-.784.218-1.319 1.342-1.319h1.434V5.857a19.19 19.19 0 0 0-2.09-.107c-2.067 0-3.482 1.262-3.482 3.58v1.996h-2.338v2.708h2.338V21H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4.598z"],"unicode":"","glyph":"M770.0999999999999 150V498.3000000000001H886.75L904.2 633.7H770.0999999999999V720.0999999999999C770.0999999999999 759.3 781 786.05 837.2 786.05H908.9V907.15A959.5000000000002 959.5000000000002 0 0 1 804.4000000000001 912.5C701.0500000000001 912.5 630.3000000000001 849.4 630.3000000000001 733.5V633.6999999999999H513.4000000000001V498.3H630.3000000000001V150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H770.1z","horizAdvX":"1200"},"facebook-box-line":{"path":["M0 0h24v24H0z","M14 19h5V5H5v14h7v-5h-2v-2h2v-1.654c0-1.337.14-1.822.4-2.311A2.726 2.726 0 0 1 13.536 6.9c.382-.205.857-.328 1.687-.381.329-.021.755.005 1.278.08v1.9H16c-.917 0-1.296.043-1.522.164a.727.727 0 0 0-.314.314c-.12.226-.164.45-.164 1.368V12h2.5l-.5 2h-2v5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M700 250H950V950H250V250H600V500H500V600H600V682.7C600 749.55 607 773.8 620 798.25A136.29999999999998 136.29999999999998 0 0 0 676.8 855C695.9 865.25 719.65 871.4 761.15 874.05C777.6 875.0999999999999 798.9 873.8 825.0499999999998 870.05V775.05H800C754.15 775.05 735.2 772.9000000000001 723.9 766.8499999999999A36.35 36.35 0 0 1 708.1999999999999 751.15C702.2 739.8499999999999 700 728.6500000000001 700 682.75V600H825L800 500H700V250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"facebook-circle-fill":{"path":["M0 0h24v24H0z","M12 2C6.477 2 2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.879V14.89h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.989C18.343 21.129 22 16.99 22 12c0-5.523-4.477-10-10-10z"],"unicode":"","glyph":"M600 1100C323.85 1100 100 876.15 100 600C100 350.4500000000001 282.85 143.5999999999999 521.9 106.0500000000002V455.5H394.9000000000001V600H521.9V710.15C521.9 835.45 596.5 904.65 710.75 904.65C765.4499999999999 904.65 822.65 894.9 822.65 894.9V771.8999999999999H759.65C697.5 771.8999999999999 678.15 733.3499999999999 678.15 693.8V600H816.8L794.65 455.5H678.15V106.05C917.15 143.55 1100 350.5000000000001 1100 600C1100 876.15 876.15 1100 600 1100z","horizAdvX":"1200"},"facebook-circle-line":{"path":["M0 0h24v24H0z","M13 19.938A8.001 8.001 0 0 0 12 4a8 8 0 0 0-1 15.938V14H9v-2h2v-1.654c0-1.337.14-1.822.4-2.311A2.726 2.726 0 0 1 12.536 6.9c.382-.205.857-.328 1.687-.381.329-.021.755.005 1.278.08v1.9H15c-.917 0-1.296.043-1.522.164a.727.727 0 0 0-.314.314c-.12.226-.164.45-.164 1.368V12h2.5l-.5 2h-2v5.938zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M650 203.1A400.04999999999995 400.04999999999995 0 0 1 600 1000A400 400 0 0 1 550 203.0999999999999V500H450V600H550V682.7C550 749.55 557 773.8 570 798.25A136.29999999999998 136.29999999999998 0 0 0 626.8 855C645.9 865.25 669.65 871.4 711.15 874.05C727.6 875.0999999999999 748.9 873.8 775.05 870.05V775.05H750C704.15 775.05 685.2 772.9000000000001 673.9 766.8499999999999A36.35 36.35 0 0 1 658.1999999999999 751.15C652.2 739.8499999999999 650 728.6500000000001 650 682.75V600H775L750 500H650V203.1zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"facebook-fill":{"path":["M0 0h24v24H0z","M14 13.5h2.5l1-4H14v-2c0-1.03 0-2 2-2h1.5V2.14c-.326-.043-1.557-.14-2.857-.14C11.928 2 10 3.657 10 6.7v2.8H7v4h3V22h4v-8.5z"],"unicode":"","glyph":"M700 525H825L875 725H700V825C700 876.5 700 925 800 925H875V1093C858.6999999999999 1095.15 797.15 1100 732.1500000000001 1100C596.4000000000001 1100 500 1017.15 500 865V725H350V525H500V100H700V525z","horizAdvX":"1200"},"facebook-line":{"path":["M0 0h24v24H0z","M13 9h4.5l-.5 2h-4v9h-2v-9H7V9h4V7.128c0-1.783.186-2.43.534-3.082a3.635 3.635 0 0 1 1.512-1.512C13.698 2.186 14.345 2 16.128 2c.522 0 .98.05 1.372.15V4h-1.372c-1.324 0-1.727.078-2.138.298-.304.162-.53.388-.692.692-.22.411-.298.814-.298 2.138V9z"],"unicode":"","glyph":"M650 750H875L850 650H650V200H550V650H350V750H550V843.6C550 932.75 559.3 965.1 576.7 997.7A181.74999999999997 181.74999999999997 0 0 0 652.3000000000001 1073.3C684.9 1090.7 717.25 1100 806.4 1100C832.4999999999999 1100 855.4 1097.5 875 1092.5V1000H806.4C740.2 1000 720.05 996.1 699.5 985.1C684.3 977 673 965.7 664.9 950.5C653.9 929.95 650 909.8 650 843.6V750z","horizAdvX":"1200"},"fahrenheit-fill":{"path":["M0 0h24v24H0z","M12 12h7v2h-7v7h-2V8a4 4 0 0 1 4-4h7v2h-7a2 2 0 0 0-2 2v4zm-7.5-2a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 600H950V500H600V150H500V800A200 200 0 0 0 700 1000H1050V900H700A100 100 0 0 1 600 800V600zM225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800z","horizAdvX":"1200"},"fahrenheit-line":{"path":["M0 0h24v24H0z","M12 12h7v2h-7v7h-2V8a4 4 0 0 1 4-4h7v2h-7a2 2 0 0 0-2 2v4zm-7.5-2a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 600H950V500H600V150H500V800A200 200 0 0 0 700 1000H1050V900H700A100 100 0 0 1 600 800V600zM225 700A175 175 0 1 0 225 1050A175 175 0 0 0 225 700zM225 800A75 75 0 1 1 225 950A75 75 0 0 1 225 800z","horizAdvX":"1200"},"feedback-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 13v2h2v-2h-2zm0-6v5h2V7h-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 550V450H650V550H550zM550 850V600H650V850H550z","horizAdvX":"1200"},"feedback-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM200 280.7499999999999L288.15 350H1000V950H200V280.7500000000001zM550 550H650V450H550V550zM550 850H650V600H550V850z","horizAdvX":"1200"},"file-2-fill":{"path":["M0 0h24v24H0z","M3 9h6a1 1 0 0 0 1-1V2h10.002c.551 0 .998.455.998.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V9zm0-2l5-4.997V7H3z"],"unicode":"","glyph":"M150 750H450A50 50 0 0 1 500 800V1100H1000.1000000000003C1027.65 1100 1050.0000000000002 1077.25 1050.0000000000002 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.3500000000003 100H199.65A50 50 0 0 0 150 150.3500000000001V750zM150 850L400 1099.85V850H150z","horizAdvX":"1200"},"file-2-line":{"path":["M0 0h24v24H0z","M3 8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8zm7-4v5H5v11h14V4h-9z"],"unicode":"","glyph":"M150 800L450.15 1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800zM500 1000V750H250V200H950V1000H500z","horizAdvX":"1200"},"file-3-fill":{"path":["M0 0h24v24H0z","M21 9v11.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2H14v6a1 1 0 0 0 1 1h6zm0-2h-5V2.003L21 7z"],"unicode":"","glyph":"M1050 750V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H700V800A50 50 0 0 1 750 750H1050zM1050 850H800V1099.85L1050 850z","horizAdvX":"1200"},"file-3-line":{"path":["M0 0h24v24H0z","M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8zm-2 1h-5V4H5v16h14V9z"],"unicode":"","glyph":"M1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800zM950 750H700V1000H250V200H950V750z","horizAdvX":"1200"},"file-4-fill":{"path":["M0 0h24v24H0z","M21 15h-7v7H3.998C3.447 22 3 21.545 3 21.008V2.992C3 2.444 3.445 2 3.993 2h16.014A1 1 0 0 1 21 3.007V15zm0 2l-5 4.997V17h5z"],"unicode":"","glyph":"M1050 450H700V100H199.9C172.35 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H1000.35A50 50 0 0 0 1050 1049.65V450zM1050 350L800 100.1500000000001V350H1050z","horizAdvX":"1200"},"file-4-line":{"path":["M0 0h24v24H0z","M21 16l-6.003 6H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v13zm-2-1V4H5v16h9v-5h5z"],"unicode":"","glyph":"M1050 400L749.85 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V400zM950 450V1000H250V200H700V450H950z","horizAdvX":"1200"},"file-add-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 9H8v2h3v3h2v-3h3v-2h-3V8h-2v3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 650H400V550H550V400H650V550H800V650H650V800H550V650z","horizAdvX":"1200"},"file-add-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM11 11V8h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM550 650V800H650V650H800V550H650V400H550V550H400V650H550z","horizAdvX":"1200"},"file-chart-2-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 6a4 4 0 1 0 4 4h-4V8z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 800A200 200 0 1 1 800 600H600V800z","horizAdvX":"1200"},"file-chart-2-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM12 8v4h4a4 4 0 1 1-4-4z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM600 800V600H800A200 200 0 1 0 600 800z","horizAdvX":"1200"},"file-chart-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 5v10h2V7h-2zm4 4v6h2v-6h-2zm-8 2v4h2v-4H7z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 850V350H650V850H550zM750 650V350H850V650H750zM350 550V350H450V550H350z","horizAdvX":"1200"},"file-chart-line":{"path":["M0 0h24v24H0z","M11 7h2v10h-2V7zm4 4h2v6h-2v-6zm-8 2h2v4H7v-4zm8-9H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M550 850H650V350H550V850zM750 650H850V350H750V650zM350 550H450V350H350V550zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-cloud-fill":{"path":["M0 0h24v24H0z","M14.997 2L21 8l.001 4.26A5.466 5.466 0 0 0 17.5 11l-.221.004a5.503 5.503 0 0 0-5.127 4.205l-.016.074-.03.02A4.75 4.75 0 0 0 10.878 22L3.993 22a.993.993 0 0 1-.986-.876L3 21.008V2.992c0-.498.387-.927.885-.985L4.002 2h10.995zM17.5 13a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5z"],"unicode":"","glyph":"M749.85 1100L1050 800L1050.05 587A273.29999999999995 273.29999999999995 0 0 1 875 650L863.95 649.8000000000001A275.15 275.15 0 0 1 607.6 439.5500000000001L606.8000000000001 435.85L605.3000000000001 434.85A237.49999999999997 237.49999999999997 0 0 1 543.9 100L199.65 100A49.65 49.65 0 0 0 150.35 143.8L150 149.6000000000001V1050.4C150 1075.3 169.35 1096.75 194.25 1099.65L200.1 1100H749.85zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550z","horizAdvX":"1200"},"file-cloud-line":{"path":["M0 0h24v24H0z","M14.997 2L21 8l.001 4.26a5.471 5.471 0 0 0-2-1.053L19 9h-5V4H5v16h5.06a4.73 4.73 0 0 0 .817 2H3.993a.993.993 0 0 1-.986-.876L3 21.008V2.992c0-.498.387-.927.885-.985L4.002 2h10.995zM17.5 13a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5zm0 2a1.5 1.5 0 0 0-1.473 1.215l-.02.14L16 16.5v1.62l-1.444.406a.75.75 0 0 0 .08 1.466l.109.008h5.51a.75.75 0 0 0 .19-1.474l-1.013-.283L19 18.12V16.5l-.007-.144A1.5 1.5 0 0 0 17.5 15z"],"unicode":"","glyph":"M749.85 1100L1050 800L1050.05 587A273.55 273.55 0 0 1 950.05 639.65L950 750H700V1000H250V200H502.9999999999999A236.50000000000003 236.50000000000003 0 0 1 543.8499999999999 100H199.65A49.65 49.65 0 0 0 150.35 143.8L150 149.6000000000001V1050.4C150 1075.3 169.35 1096.75 194.25 1099.65L200.1 1100H749.85zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550zM875 450A75 75 0 0 1 801.35 389.25L800.35 382.25L800 375V294L727.8000000000001 273.7000000000001A37.5 37.5 0 0 1 731.8000000000001 200.4L737.25 200H1012.7500000000002A37.5 37.5 0 0 1 1022.2500000000002 273.7000000000001L971.6000000000003 287.85L950 294V375L949.65 382.2A75 75 0 0 1 875 450z","horizAdvX":"1200"},"file-code-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm1.657 10L14.12 8.464 12.707 9.88 14.828 12l-2.12 2.121 1.413 1.415L17.657 12zM6.343 12l3.536 3.536 1.414-1.415L9.172 12l2.12-2.121L9.88 8.464 6.343 12z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM882.85 600L706 776.8L635.35 706L741.4 600L635.3999999999999 493.9499999999999L706.05 423.2L882.85 600zM317.15 600L493.95 423.2000000000001L564.65 493.95L458.6 600L564.6000000000001 706.05L494.0000000000001 776.8L317.15 600z","horizAdvX":"1200"},"file-code-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM17.657 12l-3.536 3.536-1.414-1.415L14.828 12l-2.12-2.121 1.413-1.415L17.657 12zM6.343 12L9.88 8.464l1.414 1.415L9.172 12l2.12 2.121-1.413 1.415L6.343 12z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM882.85 600L706.0500000000001 423.2000000000001L635.35 493.95L741.4 600L635.3999999999999 706.05L706.05 776.8000000000001L882.85 600zM317.15 600L494.0000000000001 776.8L564.7 706.05L458.6 600L564.6000000000001 493.9499999999999L493.95 423.2L317.15 600z","horizAdvX":"1200"},"file-copy-2-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7zm2 0h8v10h2V4H9v2zm-2 5v2h6v-2H7zm0 4v2h6v-2H7z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350zM450 900H850V400H950V1000H450V900zM350 650V550H650V650H350zM350 450V350H650V450H350z","horizAdvX":"1200"},"file-copy-2-line":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.006-1H7zM5.002 8L5 20h10V8H5.002zM9 6h8v10h2V4H9v2zm-2 5h6v2H7v-2zm0 4h6v2H7v-2z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.45 900H350zM250.1 800L250 200H750V800H250.1zM450 900H850V400H950V1000H450V900zM350 650H650V550H350V650zM350 450H650V350H350V450z","horizAdvX":"1200"},"file-copy-fill":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7zm2 0h8v10h2V4H9v2z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350zM450 900H850V400H950V1000H450V900z","horizAdvX":"1200"},"file-copy-line":{"path":["M0 0h24v24H0z","M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1.001 1.001 0 0 1 3 21l.003-14c0-.552.45-1 1.007-1H7zM5.003 8L5 20h10V8H5.003zM9 6h8v10h2V4H9v2z"],"unicode":"","glyph":"M350 900V1050A50 50 0 0 0 400 1100H1000A50 50 0 0 0 1050 1050V350A50 50 0 0 0 1000 300H850V150C850 122.4000000000001 827.5 100 799.65 100H200.35A50.05 50.05 0 0 0 150 150L150.15 850C150.15 877.5999999999999 172.65 900 200.5 900H350zM250.15 800L250 200H750V800H250.15zM450 900H850V400H950V1000H450V900z","horizAdvX":"1200"},"file-damage-fill":{"path":["M0 0h24v24H0z","M3 14l4 2.5 3-3.5 3 4 2-2.5 3 .5-3-3-2 2.5-3-5-3.5 3.75L3 10V2.992C3 2.455 3.447 2 3.998 2H14v6a1 1 0 0 0 1 1h6v11.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V14zm18-7h-5V2.003L21 7z"],"unicode":"","glyph":"M150 500L350 375L500 550L650 350L750 475L900 450L750 600L650 475L500 725L325 537.5L150 700V1050.4C150 1077.25 172.35 1100 199.9 1100H700V800A50 50 0 0 1 750 750H1050V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V500zM1050 850H800V1099.85L1050 850z","horizAdvX":"1200"},"file-damage-line":{"path":["M0 0h24v24H0z","M19 9h-5V4H5v7.857l1.5 1.393L10 9.5l3 5 2-2.5 3 3-3-.5-2 2.5-3-4-3 3.5-2-1.25V20h14V9zm2-1v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8z"],"unicode":"","glyph":"M950 750H700V1000H250V607.1500000000001L325 537.5L500 725L650 475L750 600L900 450L750 475L650 350L500 550L350 375L250 437.5V200H950V750zM1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800z","horizAdvX":"1200"},"file-download-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-3 10V8h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM650 600V800H550V600H400L600 400L800 600H650z","horizAdvX":"1200"},"file-download-line":{"path":["M0 0h24v24H0z","M13 12h3l-4 4-4-4h3V8h2v4zm2-8H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M650 600H800L600 400L400 600H550V800H650V600zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-edit-fill":{"path":["M0 0h24v24H0z","M21 15.243v5.765a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V9h6a1 1 0 0 0 1-1V2h10.002c.551 0 .998.455.998.992v3.765l-8.999 9-.006 4.238 4.246.006L21 15.243zm.778-6.435l1.414 1.414L15.414 18l-1.416-.002.002-1.412 7.778-7.778zM3 7l5-4.997V7H3z"],"unicode":"","glyph":"M1050 437.85V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V750H450A50 50 0 0 1 500 800V1100H1000.1000000000003C1027.65 1100 1050.0000000000002 1077.25 1050.0000000000002 1050.4V862.1500000000001L600.0500000000002 412.15L599.7500000000001 200.25L812.0500000000002 199.9499999999999L1050 437.85zM1088.8999999999999 759.6L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999zM150 850L400 1099.85V850H150z","horizAdvX":"1200"},"file-edit-line":{"path":["M0 0h24v24H0z","M21 6.757l-2 2V4h-9v5H5v11h14v-2.757l2-2v5.765a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v3.765zm.778 2.05l1.414 1.415L15.414 18l-1.416-.002.002-1.412 7.778-7.778z"],"unicode":"","glyph":"M1050 862.1500000000001L950 762.1500000000001V1000H500V750H250V200H950V337.85L1050 437.85V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800L450.15 1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V862.1500000000001zM1088.8999999999999 759.6500000000001L1159.6 688.9000000000001L770.6999999999999 300L699.9 300.0999999999999L700 370.7L1088.8999999999999 759.5999999999999z","horizAdvX":"1200"},"file-excel-2-fill":{"path":["M0 0h24v24H0z","M2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3zm-6.8 9L13 8h-2.4L9 10.286 7.4 8H5l2.8 4L5 16h2.4L9 13.714 10.6 16H13l-2.8-4z"],"unicode":"","glyph":"M142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050zM509.9999999999999 600L650 800H530L450 685.7L370 800H250L390 600L250 400H370L450 514.3L530 400H650L509.9999999999999 600z","horizAdvX":"1200"},"file-excel-2-line":{"path":["M0 0h24v24H0z","M2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM4 4.735v14.53l10 1.429V3.306L4 4.735zM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2zm-6.8-7l2.8 4h-2.4L9 13.714 7.4 16H5l2.8-4L5 8h2.4L9 10.286 10.6 8H13l-2.8 4z"],"unicode":"","glyph":"M142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM200 963.25V236.75L700 165.3V1034.7L200 963.25zM850 250H1000V950H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V250zM509.9999999999999 600L650 400H530L450 514.3L370 400H250L390 600L250 800H370L450 685.7L530 800H650L509.9999999999999 600z","horizAdvX":"1200"},"file-excel-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-2.8 10L16 8h-2.4L12 10.286 10.4 8H8l2.8 4L8 16h2.4l1.6-2.286L13.6 16H16l-2.8-4z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM660 600L800 800H680L600 685.7L520 800H400L540 600L400 400H520L600 514.3L680 400H800L660 600z","horizAdvX":"1200"},"file-excel-line":{"path":["M0 0h24v24H0z","M13.2 12l2.8 4h-2.4L12 13.714 10.4 16H8l2.8-4L8 8h2.4l1.6 2.286L13.6 8H15V4H5v16h14V8h-3l-2.8 4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M660 600L800 400H680L600 514.3L520 400H400L540 600L400 800H520L600 685.7L680 800H750V1000H250V200H950V800H800L660 600zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-fill":{"path":["M0 0h24v24H0z","M3 8l6.003-6h10.995C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8zm7-4.5L4.5 9H10V3.5z"],"unicode":"","glyph":"M150 800L450.15 1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800zM500 1025L225 750H500V1025z","horizAdvX":"1200"},"file-forbid-fill":{"path":["M0 0h24v24H0z","M21 11.674A7 7 0 0 0 12.255 22H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16l5 5v4.674zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M1050 616.3000000000001A350 350 0 0 1 612.75 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800L1050 850V616.3000000000001zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50zM835.35 164.6000000000001A150 150 0 0 1 1035.4 364.6500000000001L835.35 164.6500000000001zM764.6000000000001 235.35L964.65 435.35A150 150 0 0 1 764.6000000000001 235.3z","horizAdvX":"1200"},"file-forbid-line":{"path":["M0 0h24v24H0z","M11.29 20c.215.722.543 1.396.965 2H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16l5 5v4.674a6.95 6.95 0 0 0-2-.603V8h-4V4H5v16h6.29zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M564.5 200C575.25 163.8999999999999 591.6499999999999 130.2000000000001 612.75 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V616.3000000000001A347.5 347.5 0 0 1 950 646.45V800H750V1000H250V200H564.5zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50zM835.35 164.6000000000001A150 150 0 0 1 1035.4 364.6500000000001L835.35 164.6500000000001zM764.6000000000001 235.35L964.65 435.35A150 150 0 0 1 764.6000000000001 235.3z","horizAdvX":"1200"},"file-gif-fill":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 5v13.993c0 .556-.445 1.007-.993 1.007H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm-3 8h-1v5h1v-5zm-2 0H9c-1.105 0-2 .895-2 2v1c0 1.105.895 2 2 2h1c.552 0 1-.448 1-1v-2H9v1h1v1H9c-.552 0-1-.448-1-1v-1c0-.552.448-1 1-1h2v-1zm6 0h-3v5h1v-2h2v-1h-2v-1h2v-1z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999C1050 122.55 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM650 700H600V450H650V700zM550 700H450C394.75 700 350 655.25 350 600V550C350 494.75 394.75 450 450 450H500C527.6 450 550 472.4 550 500V600H450V550H500V500H450C422.4000000000001 500 400 522.4 400 550V600C400 627.6 422.4000000000001 650 450 650H550V700zM850 700H700V450H750V550H850V600H750V650H850V700z","horizAdvX":"1200"},"file-gif-line":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 5v13.993c0 .556-.445 1.007-.993 1.007H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm-1 2H5v16h14V8h-4V4zm-2 6v5h-1v-5h1zm-2 0v1H9c-.552 0-1 .448-1 1v1c0 .552.448 1 1 1h1v-1H9v-1h2v2c0 .552-.448 1-1 1H9c-1.105 0-2-.895-2-2v-1c0-1.105.895-2 2-2h2zm6 0v1h-2v1h2v1h-2v2h-1v-5h3z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999C1050 122.55 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM750 1000H250V200H950V800H750V1000zM650 700V450H600V700H650zM550 700V650H450C422.4000000000001 650 400 627.6 400 600V550C400 522.4 422.4000000000001 500 450 500H500V550H450V600H550V500C550 472.4 527.6 450 500 450H450C394.75 450 350 494.75 350 550V600C350 655.25 394.75 700 450 700H550zM850 700V650H750V600H850V550H750V450H700V700H850z","horizAdvX":"1200"},"file-history-fill":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 4.999v14.01c0 .547-.445.991-.993.991H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-3 7h-2v6h5v-2h-3V9z"],"unicode":"","glyph":"M800 1100L1050 850.05V149.55C1050 122.2000000000001 1027.75 100 1000.35 100H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM650 750H550V450H800V550H650V750z","horizAdvX":"1200"},"file-history-line":{"path":["M0 0L24 0 24 24 0 24z","M16 2l5 5v13.993c0 .556-.445 1.007-.993 1.007H3.993C3.445 22 3 21.545 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm-1 2H5v16h14V8h-4V4zm-2 5v4h3v2h-5V9h2z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999C1050 122.55 1027.75 99.9999999999998 1000.35 99.9999999999998H199.65C172.25 100 150 122.75 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM750 1000H250V200H950V800H750V1000zM650 750V550H800V450H550V750H650z","horizAdvX":"1200"},"file-hwp-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zM9.333 14.667H8V18h8v-1.333l-6.667-.001v-2zM12 14.333a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM12 9a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zm0 1.333a1.167 1.167 0 1 1 0 2.334 1.167 1.167 0 0 1 0-2.334zM12.667 6h-1.334v1.333H8v1.334h8V7.333h-3.334V6z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM466.65 466.65H400V300H800V366.6499999999999L466.65 366.7V466.6999999999999zM600 483.35A50 50 0 1 1 600 383.3500000000002A50 50 0 0 1 600 483.3500000000001zM600 750A125 125 0 1 1 600 500A125 125 0 0 1 600 750zM600 683.35A58.35 58.35 0 1 0 600 566.65A58.35 58.35 0 0 0 600 683.35zM633.35 900H566.65V833.3499999999999H400V766.6500000000001H800V833.3499999999999H633.3000000000001V900z","horizAdvX":"1200"},"file-hwp-line":{"path":["M0 0h24v24H0z","M16 2l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.447 2 3.999 2H16zm0 6.667H8V7.333h3.333V6h1.334l-.001 1.333h2.333L15 4H5v16h14V8l-3-.001v.668zm-6.667 6v1.999H16V18H8v-3.333h1.333zM12 14.333a1 1 0 1 1 0 2 1 1 0 0 1 0-2zM12 9a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm0 1.333a1.167 1.167 0 1 0 0 2.334 1.167 1.167 0 0 0 0-2.334z"],"unicode":"","glyph":"M800 1100L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.35 1100 199.95 1100H800zM800 766.6500000000001H400V833.3499999999999H566.65V900H633.35L633.3000000000001 833.3499999999999H749.95L750 1000H250V200H950V800L800 800.05V766.6500000000001zM466.65 466.65V366.7H800V300H400V466.65H466.65zM600 483.35A50 50 0 1 0 600 383.3500000000002A50 50 0 0 0 600 483.3500000000001zM600 750A125 125 0 1 0 600 500A125 125 0 0 0 600 750zM600 683.35A58.35 58.35 0 1 1 600 566.65A58.35 58.35 0 0 1 600 683.35z","horizAdvX":"1200"},"file-info-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 5v2h2V7h-2zm0 4v6h2v-6h-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 850V750H650V850H550zM550 650V350H650V650H550z","horizAdvX":"1200"},"file-info-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM11 11h2v6h-2v-6zm0-4h2v2h-2V7z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM550 650H650V350H550V650zM550 850H650V750H550V850z","horizAdvX":"1200"},"file-line":{"path":["M0 0h24v24H0z","M9 2.003V2h10.998C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8l6-5.997zM5.83 8H9V4.83L5.83 8zM11 4v5a1 1 0 0 1-1 1H5v10h14V4h-8z"],"unicode":"","glyph":"M450 1099.85V1100H999.8999999999997C1027.5 1100 1050 1077.25 1050 1050.4V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 150.3500000000001V800L450 1099.85zM291.5 800H450V958.5L291.5 800zM550 1000V750A50 50 0 0 0 500 700H250V200H950V1000H550z","horizAdvX":"1200"},"file-list-2-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM8 7v2h8V7H8zm0 4v2h8v-2H8zm0 4v2h5v-2H8z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM400 850V750H800V850H400zM400 650V550H800V650H400zM400 450V350H650V450H400z","horizAdvX":"1200"},"file-list-2-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM8 7h8v2H8V7zm0 4h8v2H8v-2zm0 4h5v2H8v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM400 850H800V750H400V850zM400 650H800V550H400V650zM400 450H650V350H400V450z","horizAdvX":"1200"},"file-list-3-fill":{"path":["M0 0h24v24H0z","M19 22H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v12h4v4a3 3 0 0 1-3 3zm-1-5v2a1 1 0 0 0 2 0v-2h-2zM6 7v2h8V7H6zm0 4v2h8v-2H6zm0 4v2h5v-2H6z"],"unicode":"","glyph":"M950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V450H1100V250A150 150 0 0 0 950 100zM900 350V250A50 50 0 0 1 1000 250V350H900zM300 850V750H700V850H300zM300 650V550H700V650H300zM300 450V350H550V450H300z","horizAdvX":"1200"},"file-list-3-line":{"path":["M0 0h24v24H0z","M19 22H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v12h4v4a3 3 0 0 1-3 3zm-1-5v2a1 1 0 0 0 2 0v-2h-2zm-2 3V4H4v15a1 1 0 0 0 1 1h11zM6 7h8v2H6V7zm0 4h8v2H6v-2zm0 4h5v2H6v-2z"],"unicode":"","glyph":"M950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V450H1100V250A150 150 0 0 0 950 100zM900 350V250A50 50 0 0 1 1000 250V350H900zM800 200V1000H200V250A50 50 0 0 1 250 200H800zM300 850H700V750H300V850zM300 650H700V550H300V650zM300 450H550V350H300V450z","horizAdvX":"1200"},"file-list-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM8 7v2h8V7H8zm0 4v2h8v-2H8zm0 4v2h8v-2H8z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM400 850V750H800V850H400zM400 650V550H800V650H400zM400 450V350H800V450H400z","horizAdvX":"1200"},"file-list-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM8 7h8v2H8V7zm0 4h8v2H8v-2zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM400 850H800V750H400V850zM400 650H800V550H400V650zM400 450H800V350H400V450z","horizAdvX":"1200"},"file-lock-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-1 9v-1a3 3 0 0 0-6 0v1H8v5h8v-5h-1zm-2 0h-2v-1a1 1 0 0 1 2 0v1z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM750 650V700A150 150 0 0 1 450 700V650H400V400H800V650H750zM650 650H550V700A50 50 0 0 0 650 700V650z","horizAdvX":"1200"},"file-lock-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM15 11h1v5H8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM750 650H800V400H400V650H450V700A150 150 0 0 0 750 700V650zM650 650V700A50 50 0 0 1 550 700V650H650z","horizAdvX":"1200"},"file-mark-fill":{"path":["M0 0h24v24H0z","M21 2.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.014c.548 0 .993.444.993.992zM7 4v9l3.5-2 3.5 2V4H7z"],"unicode":"","glyph":"M1050 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4zM350 1000V550L525 650L700 550V1000H350z","horizAdvX":"1200"},"file-mark-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM7 4H5v16h14V4h-5v9l-3.5-2L7 13V4z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM350 1000H250V200H950V1000H700V550L525 650L350 550V1000z","horizAdvX":"1200"},"file-music-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 10.05a2.5 2.5 0 1 0 2 2.45V10h3V8h-5v4.05z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 597.5A125 125 0 1 1 650 475V700H800V800H550V597.5z","horizAdvX":"1200"},"file-music-line":{"path":["M0 0h24v24H0z","M16 8v2h-3v4.5a2.5 2.5 0 1 1-2-2.45V8h4V4H5v16h14V8h-3zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M800 800V700H650V475A125 125 0 1 0 550 597.5V800H750V1000H250V200H950V800H800zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-paper-2-fill":{"path":["M0 0h24v24H0z","M20 2a3 3 0 0 1 3 3v2h-2v12a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16v2a1 1 0 0 0 .883.993L18 20a1 1 0 0 0 .993-.883L19 19v-4H3V5a3 3 0 0 1 3-3h14z"],"unicode":"","glyph":"M1000 1100A150 150 0 0 0 1150 950V850H1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850V250A50 50 0 0 1 894.15 200.35L900 200A50 50 0 0 1 949.65 244.15L950 250V450H150V950A150 150 0 0 0 300 1100H1000z","horizAdvX":"1200"},"file-paper-2-line":{"path":["M0 0h24v24H0z","M20 2a3 3 0 0 1 3 3v2h-2v12a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16v2a1 1 0 0 0 .883.993L18 20a1 1 0 0 0 .993-.883L19 19V4H6a1 1 0 0 0-.993.883L5 5v10H3V5a3 3 0 0 1 3-3h14z"],"unicode":"","glyph":"M1000 1100A150 150 0 0 0 1150 950V850H1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850V250A50 50 0 0 1 894.15 200.35L900 200A50 50 0 0 1 949.65 244.15L950 250V1000H300A50 50 0 0 1 250.35 955.85L250 950V450H150V950A150 150 0 0 0 300 1100H1000z","horizAdvX":"1200"},"file-paper-fill":{"path":["M0 0h24v24H0z","M3 15V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16v2a1 1 0 0 0 2 0v-4H3z"],"unicode":"","glyph":"M150 450V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850V250A50 50 0 0 1 950 250V450H150z","horizAdvX":"1200"},"file-paper-line":{"path":["M0 0h24v24H0z","M17 17v2a1 1 0 0 0 2 0V4H5v11H3V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3v-2h16z"],"unicode":"","glyph":"M850 350V250A50 50 0 0 1 950 250V1000H250V450H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V250A150 150 0 0 0 900 100H200A150 150 0 0 0 50 250V350H850z","horizAdvX":"1200"},"file-pdf-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 14a4 4 0 1 0 0-8H8v8h4zm-2-6h2a2 2 0 1 1 0 4h-2v-4z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 400A200 200 0 1 1 600 800H400V400H600zM500 700H600A100 100 0 1 0 600 500H500V700z","horizAdvX":"1200"},"file-pdf-line":{"path":["M0 0h24v24H0z","M12 16H8V8h4a4 4 0 1 1 0 8zm-2-6v4h2a2 2 0 1 0 0-4h-2zm5-6H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M600 400H400V800H600A200 200 0 1 0 600 400zM500 700V500H600A100 100 0 1 1 600 700H500zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-ppt-2-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3zM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM5 8v8h2v-2h6V8H5zm2 2h4v2H7v-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050zM142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM250 800V400H350V500H650V800H250zM350 700H550V600H350V700z","horizAdvX":"1200"},"file-ppt-2-line":{"path":["M0 0h24v24H0z","M2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM4 4.735v14.53l10 1.429V3.306L4 4.735zM17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2zM5 8h8v6H7v2H5V8zm2 2v2h4v-2H7z"],"unicode":"","glyph":"M142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM200 963.25V236.75L700 165.3V1034.7L200 963.25zM850 250H1000V950H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V250zM250 800H650V500H350V400H250V800zM350 700V600H550V700H350z","horizAdvX":"1200"},"file-ppt-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zM8 8v8h2v-2h6V8H8zm2 2h4v2h-4v-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM400 800V400H500V500H800V800H400zM500 700H700V600H500V700z","horizAdvX":"1200"},"file-ppt-line":{"path":["M0 0h24v24H0z","M3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM5 4v16h14V8h-3v6h-6v2H8V8h7V4H5zm5 6v2h4v-2h-4z"],"unicode":"","glyph":"M150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM250 1000V200H950V800H800V500H500V400H400V800H750V1000H250zM500 700V600H700V700H500z","horizAdvX":"1200"},"file-reduce-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-8 9v2h8v-2H8z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM400 650V550H800V650H400z","horizAdvX":"1200"},"file-reduce-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM16 11v2H8v-2h8z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM800 650V550H400V650H800z","horizAdvX":"1200"},"file-search-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-2.471 12.446l2.21 2.21 1.415-1.413-2.21-2.21a4.002 4.002 0 0 0-6.276-4.861 4 4 0 0 0 4.861 6.274zm-.618-2.032a2 2 0 1 1-2.828-2.828 2 2 0 0 1 2.828 2.828z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM676.45 477.7L786.95 367.2000000000001L857.7 437.85L747.1999999999999 548.3500000000001A200.10000000000002 200.10000000000002 0 0 1 433.4 791.4000000000001A200 200 0 0 1 676.45 477.7zM645.55 579.3000000000001A100 100 0 1 0 504.15 720.7A100 100 0 0 0 645.55 579.3000000000001z","horizAdvX":"1200"},"file-search-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zm10.529 11.454a4.002 4.002 0 0 1-4.86-6.274 4 4 0 0 1 6.274 4.86l2.21 2.21-1.414 1.415-2.21-2.21zm-.618-2.032a2 2 0 1 0-2.828-2.828 2 2 0 0 0 2.828 2.828z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM676.45 477.6999999999999A200.10000000000002 200.10000000000002 0 0 0 433.4500000000001 791.4A200 200 0 0 0 747.1500000000001 548.4L857.6500000000001 437.9L786.9500000000002 367.15L676.4500000000002 477.6500000000001zM645.55 579.3A100 100 0 1 1 504.15 720.6999999999998A100 100 0 0 1 645.55 579.3z","horizAdvX":"1200"},"file-settings-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zM8.595 12.812l-.992.572 1 1.732.992-.573c.393.372.873.654 1.405.812V16.5h2v-1.145a3.496 3.496 0 0 0 1.405-.812l.992.573 1-1.732-.992-.573a3.51 3.51 0 0 0 0-1.622l.992-.573-1-1.732-.992.573A3.496 3.496 0 0 0 13 8.645V7.5h-2v1.145a3.496 3.496 0 0 0-1.405.812l-.992-.573-1 1.732.992.573a3.51 3.51 0 0 0 0 1.623zM12 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM429.7500000000001 559.4L380.1500000000001 530.8000000000001L430.1500000000001 444.2000000000002L479.7500000000001 472.8500000000001C499.4000000000001 454.2500000000001 523.4000000000001 440.1500000000001 550.0000000000001 432.2500000000001V375H650.0000000000001V432.25A174.8 174.8 0 0 1 720.25 472.8499999999999L769.8500000000001 444.2L819.8500000000001 530.7999999999998L770.25 559.4499999999999A175.49999999999997 175.49999999999997 0 0 1 770.25 640.55L819.8500000000001 669.1999999999999L769.8500000000001 755.8L720.25 727.1499999999999A174.8 174.8 0 0 1 650 767.75V825H550V767.75A174.8 174.8 0 0 1 479.7500000000001 727.1500000000001L430.1500000000001 755.8000000000001L380.1500000000001 669.2000000000002L429.7500000000001 640.5500000000001A175.49999999999997 175.49999999999997 0 0 1 429.7500000000001 559.4000000000001zM600 525A75 75 0 1 0 600 675A75 75 0 0 0 600 525z","horizAdvX":"1200"},"file-settings-line":{"path":["M0 0h24v24H0z","M8.595 12.812a3.51 3.51 0 0 1 0-1.623l-.992-.573 1-1.732.992.573A3.496 3.496 0 0 1 11 8.645V7.5h2v1.145c.532.158 1.012.44 1.405.812l.992-.573 1 1.732-.992.573a3.51 3.51 0 0 1 0 1.622l.992.573-1 1.732-.992-.573a3.496 3.496 0 0 1-1.405.812V16.5h-2v-1.145a3.496 3.496 0 0 1-1.405-.812l-.992.573-1-1.732.992-.572zM12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M429.7500000000001 559.4A175.49999999999997 175.49999999999997 0 0 0 429.7500000000001 640.55L380.1500000000001 669.2L430.1500000000001 755.8L479.7500000000001 727.15A174.8 174.8 0 0 0 550 767.75V825H650V767.75C676.6 759.85 700.6 745.75 720.25 727.1500000000001L769.8499999999999 755.8000000000001L819.8499999999999 669.2000000000002L770.2499999999999 640.5500000000001A175.49999999999997 175.49999999999997 0 0 0 770.2499999999999 559.45L819.8499999999999 530.8000000000001L769.8499999999999 444.2000000000002L720.2499999999999 472.8500000000001A174.8 174.8 0 0 0 649.9999999999999 432.2500000000001V375H549.9999999999999V432.25A174.8 174.8 0 0 0 479.7499999999999 472.8499999999999L430.1499999999999 444.2L380.1499999999999 530.7999999999998L429.75 559.3999999999999zM600 525A75 75 0 1 1 600 675A75 75 0 0 1 600 525zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-shield-2-fill":{"path":["M0 0h24v24H0z","M21 10H11v7.382c0 1.563.777 3.023 2.074 3.892l1.083.726H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2h11.999L21 7v3zm-8 2h8v5.382c0 .897-.446 1.734-1.187 2.23L17 21.499l-2.813-1.885A2.685 2.685 0 0 1 13 17.383V12z"],"unicode":"","glyph":"M1050 700H550V330.9000000000001C550 252.7500000000001 588.8499999999999 179.7500000000001 653.7 136.3000000000002L707.85 100.0000000000002H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H799.85L1050 850V700zM650 600H1050V330.9000000000001C1050 286.0500000000002 1027.6999999999998 244.2000000000001 990.65 219.4000000000001L850 125.05L709.35 219.3000000000002A134.25 134.25 0 0 0 650 330.85V600z","horizAdvX":"1200"},"file-shield-2-line":{"path":["M0 0h24v24H0z","M14 9V4H5v16h6.056c.328.417.724.785 1.18 1.085l1.39.915H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8v1h-7zm-2 2h9v5.949c0 .99-.501 1.916-1.336 2.465L16.5 21.498l-3.164-2.084A2.953 2.953 0 0 1 12 16.95V11zm2 5.949c0 .316.162.614.436.795l2.064 1.36 2.064-1.36a.954.954 0 0 0 .436-.795V13h-5v3.949z"],"unicode":"","glyph":"M700 750V1000H250V200H552.8000000000001C569.2 179.1499999999999 589 160.75 611.8000000000001 145.75L681.3000000000001 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800V750H700zM600 650H1050V352.5500000000001C1050 303.0500000000002 1024.95 256.7500000000001 983.2 229.3000000000001L825 125.0999999999999L666.8000000000001 229.3A147.64999999999998 147.64999999999998 0 0 0 600 352.5V650zM700 352.5500000000001C700 336.7500000000001 708.1 321.85 721.8 312.8L825 244.8000000000001L928.2 312.8A47.699999999999996 47.699999999999996 0 0 1 950 352.5500000000001V550H700V352.5500000000001z","horizAdvX":"1200"},"file-shield-fill":{"path":["M0 0h24v24H0z","M21 7v13.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2h11.999L21 7zM8 8v5.6c0 .85.446 1.643 1.187 2.114L12 17.5l2.813-1.786A2.51 2.51 0 0 0 16 13.6V8H8zm2 2h4v3.6c0 .158-.09.318-.26.426L12 15.13l-1.74-1.105c-.17-.108-.26-.268-.26-.426V10z"],"unicode":"","glyph":"M1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H799.85L1050 850zM400 800V520C400 477.5 422.3 437.85 459.35 414.3000000000001L600 325L740.65 414.3A125.49999999999997 125.49999999999997 0 0 1 800 520V800H400zM500 700H700V520C700 512.1 695.5 504.1 687 498.7L600 443.5L513 498.75C504.5 504.15 500 512.15 500 520.05V700z","horizAdvX":"1200"},"file-shield-line":{"path":["M0 0h24v24H0z","M14 8V4H5v16h14V9h-3v4.62c0 .844-.446 1.633-1.187 2.101L12 17.498 9.187 15.72C8.446 15.253 8 14.464 8 13.62V8h6zm7 0v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8zm-11 5.62c0 .15.087.304.255.41L12 15.132l1.745-1.102c.168-.106.255-.26.255-.41V10h-4v3.62z"],"unicode":"","glyph":"M700 800V1000H250V200H950V750H800V519C800 476.8 777.7 437.35 740.65 413.9500000000001L600 325.0999999999999L459.35 414C422.3 437.35 400 476.8 400 519V800H700zM1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800zM500 519C500 511.4999999999999 504.35 503.8 512.75 498.5L600 443.4L687.25 498.5C695.65 503.8000000000001 700.0000000000001 511.5 700.0000000000001 519V700H500.0000000000001V519z","horizAdvX":"1200"},"file-shred-fill":{"path":["M0 0h24v24H0z","M22 12v2H2v-2h2V2.995c0-.55.445-.995.996-.995H15l5 5v5h2zM3 16h2v6H3v-6zm16 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6H7v-6z"],"unicode":"","glyph":"M1100 600V500H100V600H200V1050.25C200 1077.75 222.25 1100 249.8 1100H750L1000 850V600H1100zM150 400H250V100H150V400zM950 400H1050V100H950V400zM750 400H850V100H750V400zM550 400H650V100H550V400zM350 400H450V100H350V400z","horizAdvX":"1200"},"file-shred-line":{"path":["M0 0h24v24H0z","M6 12h12V8h-4V4H6v8zm-2 0V2.995c0-.55.445-.995.996-.995H15l5 5v5h2v2H2v-2h2zm-1 4h2v6H3v-6zm16 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6h-2v-6zm-4 0h2v6H7v-6z"],"unicode":"","glyph":"M300 600H900V800H700V1000H300V600zM200 600V1050.25C200 1077.75 222.25 1100 249.8 1100H750L1000 850V600H1100V500H100V600H200zM150 400H250V100H150V400zM950 400H1050V100H950V400zM750 400H850V100H750V400zM550 400H650V100H550V400zM350 400H450V100H350V400z","horizAdvX":"1200"},"file-text-fill":{"path":["M0 0h24v24H0z","M21 9v11.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.447 2 3.998 2H14v6a1 1 0 0 0 1 1h6zm0-2h-5V2.003L21 7zM8 7v2h3V7H8zm0 4v2h8v-2H8zm0 4v2h8v-2H8z"],"unicode":"","glyph":"M1050 750V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.35 1100 199.9 1100H700V800A50 50 0 0 1 750 750H1050zM1050 850H800V1099.85L1050 850zM400 850V750H550V850H400zM400 650V550H800V650H400zM400 450V350H800V450H400z","horizAdvX":"1200"},"file-text-line":{"path":["M0 0h24v24H0z","M21 8v12.993A1 1 0 0 1 20.007 22H3.993A.993.993 0 0 1 3 21.008V2.992C3 2.455 3.449 2 4.002 2h10.995L21 8zm-2 1h-5V4H5v16h14V9zM8 7h3v2H8V7zm0 4h8v2H8v-2zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1050 800V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4C150 1077.25 172.45 1100 200.1 1100H749.85L1050 800zM950 750H700V1000H250V200H950V750zM400 850H550V750H400V850zM400 650H800V550H400V650zM400 450H800V350H400V450z","horizAdvX":"1200"},"file-transfer-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 9H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 650H400V550H600V400L800 600L600 800V650z","horizAdvX":"1200"},"file-transfer-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM12 11V8l4 4-4 4v-3H8v-2h4z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM600 650V800L800 600L600 400V550H400V650H600z","horizAdvX":"1200"},"file-unknow-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 13v2h2v-2h-2zm2-1.645A3.502 3.502 0 0 0 12 6.5a3.501 3.501 0 0 0-3.433 2.813l1.962.393A1.5 1.5 0 1 1 12 11.5a1 1 0 0 0-1 1V14h2v-.645z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 450V350H650V450H550zM650 532.25A175.1 175.1 0 0 1 600 875A175.04999999999998 175.04999999999998 0 0 1 428.35 734.3499999999999L526.45 714.6999999999999A75 75 0 1 0 600 625A50 50 0 0 1 550 575V500H650V532.25z","horizAdvX":"1200"},"file-unknow-line":{"path":["M0 0h24v24H0z","M11 15h2v2h-2v-2zm2-1.645V14h-2v-1.5a1 1 0 0 1 1-1 1.5 1.5 0 1 0-1.471-1.794l-1.962-.393A3.501 3.501 0 1 1 13 13.355zM15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M550 450H650V350H550V450zM650 532.25V500H550V575A50 50 0 0 0 600 625A75 75 0 1 1 526.45 714.7L428.35 734.3500000000001A175.04999999999998 175.04999999999998 0 1 0 650 532.25zM750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-upload-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-3 10h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM650 600H800L600 800L400 600H550V400H650V600z","horizAdvX":"1200"},"file-upload-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM13 12v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM650 600V400H550V600H400L600 800L800 600H650z","horizAdvX":"1200"},"file-user-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-4 9.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM7.527 17h8.946a4.5 4.5 0 0 0-8.946 0z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM600 625A125 125 0 1 1 600 875A125 125 0 0 1 600 625zM376.35 350H823.65A225 225 0 0 1 376.35 350z","horizAdvX":"1200"},"file-user-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zm9 8.508a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM7.527 17a4.5 4.5 0 0 1 8.946 0H7.527z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM600 625A125 125 0 1 0 600 875A125 125 0 0 0 600 625zM376.35 350A225 225 0 0 0 823.65 350H376.35z","horizAdvX":"1200"},"file-warning-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-5 13v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"file-warning-line":{"path":["M0 0h24v24H0z","M15 4H5v16h14V8h-4V4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992zM11 15h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M750 1000H250V200H950V800H750V1000zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"file-word-2-fill":{"path":["M0 0h24v24H0z","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3zM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM11 8v4.989L9 11l-1.99 2L7 8H5v8h2l2-2 2 2h2V8h-2z"],"unicode":"","glyph":"M850 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050zM142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM550 800V550.55L450 650L350.5 550L350 800H250V400H350L450 500L550 400H650V800H550z","horizAdvX":"1200"},"file-word-2-line":{"path":["M0 0h24v24H0z","M17 19h3V5h-3V3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4v-2zM2.859 2.877l12.57-1.795a.5.5 0 0 1 .571.495v20.846a.5.5 0 0 1-.57.495L2.858 21.123a1 1 0 0 1-.859-.99V3.867a1 1 0 0 1 .859-.99zM4 4.735v14.53l10 1.429V3.306L4 4.735zM11 8h2v8h-2l-2-2-2 2H5V8h2l.01 5L9 11l2 1.989V8z"],"unicode":"","glyph":"M850 250H1000V950H850V1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V250zM142.95 1056.15L771.45 1145.9A25 25 0 0 0 800 1121.15V78.8499999999999A25 25 0 0 0 771.5 54.0999999999999L142.9 143.8499999999999A50 50 0 0 0 99.95 193.3499999999999V1006.65A50 50 0 0 0 142.9 1056.15zM200 963.25V236.75L700 165.3V1034.7L200 963.25zM550 800H650V400H550L450 500L350 400H250V800H350L350.5 550L450 650L550 550.55V800z","horizAdvX":"1200"},"file-word-fill":{"path":["M0 0h24v24H0z","M16 2l5 5v14.008a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992C3 2.444 3.445 2 3.993 2H16zm-2 6v4.989L12 11l-1.99 2L10 8H8v8h2l2-2 2 2h2V8h-2z"],"unicode":"","glyph":"M800 1100L1050 850V149.6000000000001A49.65 49.65 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4C150 1077.8 172.25 1100 199.65 1100H800zM700 800V550.55L600 650L500.5 550L500 800H400V400H500L600 500L700 400H800V800H700z","horizAdvX":"1200"},"file-word-line":{"path":["M0 0h24v24H0z","M16 8v8h-2l-2-2-2 2H8V8h2v5l2-2 2 2V8h1V4H5v16h14V8h-3zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008V2.992z"],"unicode":"","glyph":"M800 800V400H700L600 500L500 400H400V800H500V550L600 650L700 550V800H750V1000H250V200H950V800H800zM150 1050.4C150 1077.8 172.35 1100 199.95 1100H800L1050 850V150.3499999999999A50 50 0 0 0 1000.35 100H199.65A50 50 0 0 0 150 149.6000000000001V1050.4z","horizAdvX":"1200"},"file-zip-fill":{"path":["M0 0h24v24H0z","M10 2v2h2V2h8.007c.548 0 .993.444.993.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2H10zm2 2v2h2V4h-2zm-2 2v2h2V6h-2zm2 2v2h2V8h-2zm-2 2v2h2v-2h-2zm2 2v2h-2v3h4v-5h-2z"],"unicode":"","glyph":"M500 1100V1000H600V1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H500zM600 1000V900H700V1000H600zM500 900V800H600V900H500zM600 800V700H700V800H600zM500 700V600H600V700H500zM600 600V500H500V350H700V600H600z","horizAdvX":"1200"},"file-zip-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zm-5-8v5h-4v-3h2v-2h2zm-2-8h2v2h-2V4zm-2 2h2v2h-2V6zm2 2h2v2h-2V8zm-2 2h2v2h-2v-2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM700 600V350H500V500H600V600H700zM600 1000H700V900H600V1000zM500 900H600V800H500V900zM600 800H700V700H600V800zM500 700H600V600H500V700z","horizAdvX":"1200"},"film-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v2h2V5H4zm14 0v2h2V5h-2zM4 9v2h2V9H4zm14 0v2h2V9h-2zM4 13v2h2v-2H4zm14 0v2h2v-2h-2zM4 17v2h2v-2H4zm14 0v2h2v-2h-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V850H300V950H200zM900 950V850H1000V950H900zM200 750V650H300V750H200zM900 750V650H1000V750H900zM200 550V450H300V550H200zM900 550V450H1000V550H900zM200 350V250H300V350H200zM900 350V250H1000V350H900z","horizAdvX":"1200"},"film-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM8 5v14h8V5H8zM4 5v2h2V5H4zm14 0v2h2V5h-2zM4 9v2h2V9H4zm14 0v2h2V9h-2zM4 13v2h2v-2H4zm14 0v2h2v-2h-2zM4 17v2h2v-2H4zm14 0v2h2v-2h-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM400 950V250H800V950H400zM200 950V850H300V950H200zM900 950V850H1000V950H900zM200 750V650H300V750H200zM900 750V650H1000V750H900zM200 550V450H300V550H200zM900 550V450H1000V550H900zM200 350V250H300V350H200zM900 350V250H1000V350H900z","horizAdvX":"1200"},"filter-2-fill":{"path":["M0 0h24v24H0z","M10 14L4 5V3h16v2l-6 9v6l-4 2z"],"unicode":"","glyph":"M500 500L200 950V1050H1000V950L700 500V200L500 100z","horizAdvX":"1200"},"filter-2-line":{"path":["M0 0h24v24H0z","M14 14v6l-4 2v-8L4 5V3h16v2l-6 9zM6.404 5L12 13.394 17.596 5H6.404z"],"unicode":"","glyph":"M700 500V200L500 100V500L200 950V1050H1000V950L700 500zM320.2 950L600 530.3L879.8 950H320.2z","horizAdvX":"1200"},"filter-3-fill":{"path":["M0 0h24v24H0z","M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"],"unicode":"","glyph":"M500 300H700V400H500V300zM150 900V800H1050V900H150zM300 550H900V650H300V550z","horizAdvX":"1200"},"filter-3-line":{"path":["M0 0h24v24H0z","M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"],"unicode":"","glyph":"M500 300H700V400H500V300zM150 900V800H1050V900H150zM300 550H900V650H300V550z","horizAdvX":"1200"},"filter-fill":{"path":["M0 0H24V24H0z","M21 4L21 6 20 6 14 15 14 22 10 22 10 15 4 6 3 6 3 4z"],"unicode":"","glyph":"M1050 1000L1050 900L1000 900L700 450L700 100L500 100L500 450L200 900L150 900L150 1000z","horizAdvX":"1200"},"filter-line":{"path":["M0 0H24V24H0z","M21 4v2h-1l-5 7.5V22H9v-8.5L4 6H3V4h18zM6.404 6L11 12.894V20h2v-7.106L17.596 6H6.404z"],"unicode":"","glyph":"M1050 1000V900H1000L750 525V100H450V525L200 900H150V1000H1050zM320.2 900L550 555.3V200H650V555.3L879.8 900H320.2z","horizAdvX":"1200"},"filter-off-fill":{"path":["M0 0H24V24H0z","M6.929.515L21.07 14.657l-1.414 1.414-3.823-3.822L14 15v7h-4v-7L4 6H3V4h4.585l-2.07-2.071L6.929.515zM21 4v2h-1l-1.915 2.872L13.213 4H21z"],"unicode":"","glyph":"M346.45 1174.25L1053.5 467.15L982.8 396.45L791.6499999999999 587.5499999999998L700 450V100H500V450L200 900H150V1000H379.25L275.75 1103.55L346.45 1174.25zM1050 1000V900H1000L904.25 756.4L660.65 1000H1050z","horizAdvX":"1200"},"filter-off-line":{"path":["M0 0H24V24H0z","M6.929.515L21.07 14.657l-1.414 1.414-3.823-3.822L15 13.5V22H9v-8.5L4 6H3V4h4.585l-2.07-2.071L6.929.515zM9.585 6H6.404L11 12.894V20h2v-7.106l1.392-2.087L9.585 6zM21 4v2h-1l-1.915 2.872-1.442-1.443L17.596 6h-2.383l-2-2H21z"],"unicode":"","glyph":"M346.45 1174.25L1053.5 467.15L982.8 396.45L791.6499999999999 587.5499999999998L750 525V100H450V525L200 900H150V1000H379.25L275.75 1103.55L346.45 1174.25zM479.2500000000001 900H320.2L550 555.3V200H650V555.3L719.6 659.65L479.2500000000001 900zM1050 1000V900H1000L904.25 756.4L832.1500000000001 828.55L879.8 900H760.6500000000001L660.6500000000001 1000H1050z","horizAdvX":"1200"},"find-replace-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zM16.659 9A6 6 0 0 0 11 5c-3.315 0-6 2.685-6 6h2a4.001 4.001 0 0 1 5.91-3.515L12 9h4.659zM17 11h-2a4.001 4.001 0 0 1-5.91 3.515L10 13H5.341A6 6 0 0 0 11 17c3.315 0 6-2.685 6-6z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM832.9499999999999 750A300 300 0 0 1 550 950C384.25 950 250 815.75 250 650H350A200.05 200.05 0 0 0 645.5 825.75L600 750H832.9499999999999zM850 650H750A200.05 200.05 0 0 0 454.5 474.25L500 550H267.05A300 300 0 0 1 550 350C715.75 350 850 484.25 850 650z","horizAdvX":"1200"},"find-replace-line":{"path":["M0 0h24v24H0z","M18.033 16.618l4.28 4.281-1.414 1.415-4.28-4.281A8.963 8.963 0 0 1 11 20a8.998 8.998 0 0 1-8.065-5H9l-1.304 2.173A6.972 6.972 0 0 0 11 18a6.977 6.977 0 0 0 4.875-1.975l.15-.15A6.977 6.977 0 0 0 18 11c0-.695-.101-1.366-.29-2h2.067c.146.643.223 1.313.223 2a8.963 8.963 0 0 1-1.967 5.618zM19.065 7H13l1.304-2.173A6.972 6.972 0 0 0 11 4c-3.868 0-7 3.132-7 7 0 .695.101 1.366.29 2H2.223A9.038 9.038 0 0 1 2 11c0-4.973 4.027-9 9-9a8.998 8.998 0 0 1 8.065 5z"],"unicode":"","glyph":"M901.65 369.1L1115.65 155.0500000000002L1044.95 84.3000000000002L830.95 298.3500000000002A448.1499999999999 448.1499999999999 0 0 0 550 200A449.8999999999999 449.8999999999999 0 0 0 146.75 450H450L384.8 341.3499999999999A348.6 348.6 0 0 1 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001A348.84999999999997 348.84999999999997 0 0 1 900 650C900 684.75 894.95 718.3 885.5 750H988.85C996.15 717.8499999999999 1000 684.35 1000 650A448.1499999999999 448.1499999999999 0 0 0 901.65 369.0999999999999zM953.2500000000002 850H650L715.2 958.65A348.6 348.6 0 0 1 550 1000C356.6 1000 200 843.4000000000001 200 650C200 615.25 205.05 581.7 214.5 550H111.15A451.9 451.9 0 0 0 100 650C100 898.65 301.35 1100 550 1100A449.8999999999999 449.8999999999999 0 0 0 953.2499999999998 850z","horizAdvX":"1200"},"finder-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zm-1 2h-8.465c-.69 1.977-1.035 4.644-1.035 8h3c-.115.92-.15 1.878-.107 2.877 1.226-.211 2.704-.777 4.027-1.71l1.135 1.665c-1.642 1.095-3.303 1.779-4.976 2.043.052.37.113.745.184 1.125H20V5zM6.555 14.168l-1.11 1.664C7.602 17.27 9.792 18 12 18v-2c-1.792 0-3.602-.603-5.445-1.832zM17 7c.552 0 1 .448 1 1v1c0 .552-.448 1-1 1s-1-.448-1-1V8c0-.552.448-1 1-1zM7 7c-.552 0-1 .452-1 1v1c0 .552.448 1 1 1s1-.45 1-1V8c0-.552-.448-1-1-1z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM1000 950H576.75C542.25 851.15 525 717.8 525 550H675C669.25 504 667.5 456.1 669.6500000000001 406.1500000000001C730.95 416.7000000000001 804.85 445 871.0000000000001 491.6500000000001L927.7500000000002 408.4000000000001C845.6500000000002 353.6500000000002 762.6000000000001 319.4500000000002 678.9500000000002 306.2500000000003C681.5500000000002 287.7500000000001 684.6000000000001 269.0000000000001 688.1500000000002 250.0000000000003H1000V950zM327.75 491.6L272.25 408.4000000000001C380.1 336.5 489.6 300 600 300V400C510.4 400 419.9 430.15 327.75 491.6zM850 850C877.6 850 900 827.5999999999999 900 800V750C900 722.4000000000001 877.6 700 850 700S800 722.4000000000001 800 750V800C800 827.5999999999999 822.4 850 850 850zM350 850C322.4000000000001 850 300 827.4 300 800V750C300 722.4000000000001 322.4000000000001 700 350 700S400 722.5 400 750V800C400 827.5999999999999 377.6 850 350 850z","horizAdvX":"1200"},"finder-line":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zM10.48 4.999L4 5v14h8.746c-.062-.344-.116-.684-.163-1.02-.297.013-.491.02-.583.02-2.208 0-4.398-.73-6.555-2.168l1.11-1.664C8.398 15.397 10.208 16 12 16c.133 0 .265-.003.398-.01-.024-.497-.024-1.41.007-1.99H9.5v-1c0-3.275.32-5.94.98-8.001zm2.12 0C11.935 6.582 11.556 9.41 11.51 12h3.123l-.14 1.124c-.101.805-.137 1.645-.108 2.52 1.013-.3 2.031-.79 3.06-1.476l1.11 1.664c-1.32.88-2.652 1.495-3.993 1.84.057.433.13.876.219 1.327L20 19V5l-7.4-.001zM7 7c.552 0 1 .448 1 1v1c0 .552-.448 1-1 1s-1-.448-1-1V8c0-.552.448-1 1-1zm10 0c.552 0 1 .448 1 1v1c0 .552-.448 1-1 1s-1-.448-1-1V8c0-.552.448-1 1-1z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM524 950.05L200 950V250H637.3000000000001C634.2 267.2000000000001 631.5 284.2000000000001 629.15 301C614.3 300.3499999999999 604.6 300 600 300C489.6 300 380.1 336.5 272.25 408.4L327.7500000000001 491.5999999999999C419.9 430.15 510.4 400 600 400C606.65 400 613.25 400.15 619.9 400.5C618.7 425.35 618.7 471 620.25 500H475V550C475 713.75 491 847 524 950.05zM630.0000000000001 950.05C596.75 870.9000000000001 577.8 729.5 575.5 600H731.65L724.65 543.8C719.5999999999999 503.55 717.8 461.55 719.2499999999999 417.8C769.8999999999999 432.8000000000001 820.7999999999998 457.3000000000001 872.2499999999999 491.6L927.7499999999998 408.4000000000001C861.7499999999998 364.4 795.1499999999997 333.6500000000001 728.0999999999998 316.4C730.9499999999998 294.75 734.5999999999998 272.5999999999999 739.0499999999997 250.0499999999999L1000 250V950L630 950.05zM350 850C377.6 850 400 827.5999999999999 400 800V750C400 722.4000000000001 377.6 700 350 700S300 722.4000000000001 300 750V800C300 827.5999999999999 322.4000000000001 850 350 850zM850 850C877.6 850 900 827.5999999999999 900 800V750C900 722.4000000000001 877.6 700 850 700S800 722.4000000000001 800 750V800C800 827.5999999999999 822.4 850 850 850z","horizAdvX":"1200"},"fingerprint-2-fill":{"path":["M0 0h24v24H0z","M12 1a9 9 0 0 1 9 9v4a8.99 8.99 0 0 1-3.81 7.354c.474-1.522.75-3.131.802-4.797L18 16v-2.001h-2V16l-.003.315a15.932 15.932 0 0 1-1.431 6.315 9.045 9.045 0 0 1-3.574.314 12.935 12.935 0 0 0 2.001-6.52L13 16V9h-2v7l-.004.288a10.95 10.95 0 0 1-2.087 6.167 8.98 8.98 0 0 1-2.626-1.504 7.959 7.959 0 0 0 1.71-4.623L8 16v-6l.005-.2a3.978 3.978 0 0 1 .435-1.625l.114-.207-1.445-1.445a5.969 5.969 0 0 0-1.102 3.18L6 10v6l-.004.225a5.968 5.968 0 0 1-1.121 3.273A8.958 8.958 0 0 1 3 14v-4a9 9 0 0 1 9-9zm0 3c-1.196 0-2.31.35-3.246.953l-.23.156 1.444 1.445a3.977 3.977 0 0 1 1.787-.547L12 6l.2.005a4 4 0 0 1 3.795 3.789L16 10v2h2v-2a6 6 0 0 0-6-6z"],"unicode":"","glyph":"M600 1150A450 450 0 0 0 1050 700V500A449.5 449.5 0 0 0 859.5000000000001 132.3C883.2 208.4 897.0000000000001 288.85 899.6 372.1500000000001L900 400V500.05H800V400L799.85 384.2499999999999A796.5999999999999 796.5999999999999 0 0 0 728.3 68.4999999999998A452.25 452.25 0 0 0 549.5999999999999 52.8A646.7500000000001 646.7500000000001 0 0 1 649.65 378.7999999999999L650 400V750H550V400L549.8000000000001 385.6A547.5 547.5 0 0 0 445.4500000000001 77.25A449 449 0 0 0 314.1500000000001 152.4500000000001A397.95 397.95 0 0 1 399.6500000000001 383.6000000000003L400 400V700L400.2500000000001 710A198.90000000000003 198.90000000000003 0 0 0 422.0000000000001 791.25L427.7000000000001 801.5999999999999L355.4500000000001 873.8499999999999A298.45000000000005 298.45000000000005 0 0 1 300.3500000000001 714.8499999999999L300 700V400L299.8 388.7499999999999A298.40000000000003 298.40000000000003 0 0 0 243.75 225.0999999999999A447.90000000000003 447.90000000000003 0 0 0 150 500V700A450 450 0 0 0 600 1150zM600 1000C540.2 1000 484.5 982.5 437.7 952.35L426.2 944.55L498.4 872.3A198.85 198.85 0 0 0 587.75 899.65L600 900L610 899.75A200 200 0 0 0 799.75 710.3L800 700V600H900V700A300 300 0 0 1 600 1000z","horizAdvX":"1200"},"fingerprint-2-line":{"path":["M0 0h24v24H0z","M12 1a9 9 0 0 1 9 9v4a9 9 0 0 1-12.092 8.455c.128-.177.251-.357.369-.542l.17-.28a10.918 10.918 0 0 0 1.55-5.345L11 16V9h2v7a12.96 12.96 0 0 1-.997 5.001 7.026 7.026 0 0 0 2.27-.378c.442-1.361.693-2.808.724-4.31L15 16v-3.001h2V16c0 1.088-.102 2.153-.298 3.185a6.978 6.978 0 0 0 2.294-4.944L19 14v-4A7 7 0 0 0 7.808 4.394L6.383 2.968A8.962 8.962 0 0 1 12 1zm-5 9a5 5 0 1 1 10 0v1h-2v-1a3 3 0 0 0-5.995-.176L9 10v6c0 1.567-.4 3.04-1.104 4.323l-.024.04c-.23.414-.491.808-.782 1.179a9.03 9.03 0 0 1-1.237-.97l-.309-.3A8.97 8.97 0 0 1 3 14v-4c0-2.125.736-4.078 1.968-5.617l1.426 1.425a6.966 6.966 0 0 0-1.39 3.951L5 10v4c0 1.675.588 3.212 1.57 4.417a6.91 6.91 0 0 0 .426-2.176L7 16v-6z"],"unicode":"","glyph":"M600 1150A450 450 0 0 0 1050 700V500A450 450 0 0 0 445.4 77.25C451.8 86.1000000000001 457.9499999999999 95.1000000000001 463.85 104.3500000000001L472.35 118.3500000000001A545.9 545.9 0 0 1 549.85 385.6000000000002L550 400V750H650V400A648 648 0 0 0 600.15 149.9500000000001A351.3 351.3 0 0 1 713.65 168.8499999999999C735.75 236.9 748.3 309.2499999999999 749.85 384.3499999999999L750 400V550.05H850V400C850 345.5999999999999 844.9 292.35 835.1000000000001 240.7500000000001A348.9 348.9 0 0 1 949.8 487.95L950 500V700A350 350 0 0 1 390.4 980.3L319.15 1051.6A448.1 448.1 0 0 0 600 1150zM350 700A250 250 0 1 0 850 700V650H750V700A150 150 0 0 1 450.25 708.8L450 700V400C450 321.65 430 248 394.8 183.85L393.6 181.85C382.1 161.1499999999999 369.05 141.4500000000001 354.5 122.9000000000001A451.49999999999994 451.49999999999994 0 0 0 292.65 171.4000000000001L277.2 186.4000000000001A448.50000000000006 448.50000000000006 0 0 0 150 500V700C150 806.25 186.8 903.9 248.4 980.85L319.7 909.6A348.3 348.3 0 0 1 250.2 712.05L250 700V500C250 416.25 279.4 339.4 328.5 279.1499999999999A345.5 345.5 0 0 1 349.8 387.9500000000001L350 400V700z","horizAdvX":"1200"},"fingerprint-fill":{"path":["M0 0h24v24H0z","M17 13v1c0 2.77-.664 5.445-1.915 7.846l-.227.42-1.747-.974c1.16-2.08 1.81-4.41 1.882-6.836L15 14v-1h2zm-6-3h2v4l-.005.379a12.941 12.941 0 0 1-2.691 7.549l-.231.29-1.55-1.264a10.944 10.944 0 0 0 2.471-6.588L11 14v-4zm1-4a5 5 0 0 1 5 5h-2a3 3 0 0 0-6 0v3c0 2.235-.82 4.344-2.271 5.977l-.212.23-1.448-1.38a6.969 6.969 0 0 0 1.925-4.524L7 14v-3a5 5 0 0 1 5-5zm0-4a9 9 0 0 1 9 9v3c0 1.698-.202 3.37-.597 4.99l-.139.539-1.93-.526c.392-1.437.613-2.922.658-4.435L19 14v-3A7 7 0 0 0 7.808 5.394L6.383 3.968A8.962 8.962 0 0 1 12 2zM4.968 5.383l1.426 1.425a6.966 6.966 0 0 0-1.39 3.951L5 11 5.004 13c0 1.12-.264 2.203-.762 3.177l-.156.29-1.737-.992c.38-.665.602-1.407.646-2.183L3.004 13v-2a8.94 8.94 0 0 1 1.964-5.617z"],"unicode":"","glyph":"M850 550V500C850 361.5 816.8 227.75 754.25 107.7000000000001L742.9 86.6999999999998L655.5500000000001 135.3999999999999C713.5500000000001 239.3999999999999 746.0500000000001 355.9 749.65 477.1999999999999L750 500V550H850zM550 700H650V500L649.75 481.0500000000001A647.0500000000001 647.0500000000001 0 0 0 515.1999999999999 103.5999999999999L503.6499999999999 89.0999999999999L426.1499999999999 152.3A547.2 547.2 0 0 1 549.6999999999999 481.7L550 500V700zM600 900A250 250 0 0 0 850 650H750A150 150 0 0 1 450 650V500C450 388.25 409 282.8 336.45 201.15L325.85 189.65L253.4500000000001 258.6499999999999A348.45 348.45 0 0 1 349.7000000000001 484.8499999999999L350 500V650A250 250 0 0 0 600 900zM600 1100A450 450 0 0 0 1050 650V500C1050 415.1 1039.8999999999999 331.5 1020.15 250.4999999999999L1013.2 223.5499999999999L916.7 249.8499999999998C936.3 321.6999999999998 947.35 395.9499999999998 949.6 471.5999999999998L950 500V650A350 350 0 0 1 390.4 930.3L319.15 1001.6A448.1 448.1 0 0 0 600 1100zM248.4 930.85L319.7 859.6A348.3 348.3 0 0 1 250.2 662.05L250 650L250.2 550C250.2 494 237 439.85 212.1 391.15L204.3 376.6500000000001L117.45 426.2500000000001C136.45 459.5000000000001 147.55 496.6000000000001 149.75 535.4000000000001L150.2 550V650A447 447 0 0 0 248.4 930.85z","horizAdvX":"1200"},"fingerprint-line":{"path":["M0 0h24v24H0z","M17 13v1c0 2.77-.664 5.445-1.915 7.846l-.227.42-1.747-.974c1.16-2.08 1.81-4.41 1.882-6.836L15 14v-1h2zm-6-3h2v4l-.005.379a12.941 12.941 0 0 1-2.691 7.549l-.231.29-1.55-1.264a10.944 10.944 0 0 0 2.471-6.588L11 14v-4zm1-4a5 5 0 0 1 5 5h-2a3 3 0 0 0-6 0v3c0 2.235-.82 4.344-2.271 5.977l-.212.23-1.448-1.38a6.969 6.969 0 0 0 1.925-4.524L7 14v-3a5 5 0 0 1 5-5zm0-4a9 9 0 0 1 9 9v3c0 1.698-.202 3.37-.597 4.99l-.139.539-1.93-.526c.392-1.437.613-2.922.658-4.435L19 14v-3A7 7 0 0 0 7.808 5.394L6.383 3.968A8.962 8.962 0 0 1 12 2zM4.968 5.383l1.426 1.425a6.966 6.966 0 0 0-1.39 3.951L5 11 5.004 13c0 1.12-.264 2.203-.762 3.177l-.156.29-1.737-.992c.38-.665.602-1.407.646-2.183L3.004 13v-2a8.94 8.94 0 0 1 1.964-5.617z"],"unicode":"","glyph":"M850 550V500C850 361.5 816.8 227.75 754.25 107.7000000000001L742.9 86.6999999999998L655.5500000000001 135.3999999999999C713.5500000000001 239.3999999999999 746.0500000000001 355.9 749.65 477.1999999999999L750 500V550H850zM550 700H650V500L649.75 481.0500000000001A647.0500000000001 647.0500000000001 0 0 0 515.1999999999999 103.5999999999999L503.6499999999999 89.0999999999999L426.1499999999999 152.3A547.2 547.2 0 0 1 549.6999999999999 481.7L550 500V700zM600 900A250 250 0 0 0 850 650H750A150 150 0 0 1 450 650V500C450 388.25 409 282.8 336.45 201.15L325.85 189.65L253.4500000000001 258.6499999999999A348.45 348.45 0 0 1 349.7000000000001 484.8499999999999L350 500V650A250 250 0 0 0 600 900zM600 1100A450 450 0 0 0 1050 650V500C1050 415.1 1039.8999999999999 331.5 1020.15 250.4999999999999L1013.2 223.5499999999999L916.7 249.8499999999998C936.3 321.6999999999998 947.35 395.9499999999998 949.6 471.5999999999998L950 500V650A350 350 0 0 1 390.4 930.3L319.15 1001.6A448.1 448.1 0 0 0 600 1100zM248.4 930.85L319.7 859.6A348.3 348.3 0 0 1 250.2 662.05L250 650L250.2 550C250.2 494 237 439.85 212.1 391.15L204.3 376.6500000000001L117.45 426.2500000000001C136.45 459.5000000000001 147.55 496.6000000000001 149.75 535.4000000000001L150.2 550V650A447 447 0 0 0 248.4 930.85z","horizAdvX":"1200"},"fire-fill":{"path":["M0 0h24v24H0z","M12 23a7.5 7.5 0 0 1-5.138-12.963C8.204 8.774 11.5 6.5 11 1.5c6 4 9 8 3 14 1 0 2.5 0 5-2.47.27.773.5 1.604.5 2.47A7.5 7.5 0 0 1 12 23z"],"unicode":"","glyph":"M600 50A375 375 0 0 0 343.1 698.15C410.2000000000001 761.3000000000001 575 875 550 1125C850 925 1000 725 700 425C750 425 825 425 950 548.5C963.5 509.85 975 468.3 975 425A375 375 0 0 0 600 50z","horizAdvX":"1200"},"fire-line":{"path":["M0 0h24v24H0z","M12 23a7.5 7.5 0 0 0 7.5-7.5c0-.866-.23-1.697-.5-2.47-1.667 1.647-2.933 2.47-3.8 2.47 3.995-7 1.8-10-4.2-14 .5 5-2.796 7.274-4.138 8.537A7.5 7.5 0 0 0 12 23zm.71-17.765c3.241 2.75 3.257 4.887.753 9.274-.761 1.333.202 2.991 1.737 2.991.688 0 1.384-.2 2.119-.595a5.5 5.5 0 1 1-9.087-5.412c.126-.118.765-.685.793-.71.424-.38.773-.717 1.118-1.086 1.23-1.318 2.114-2.78 2.566-4.462z"],"unicode":"","glyph":"M600 50A375 375 0 0 1 975 425C975 468.3 963.5 509.8499999999999 950 548.5C866.6499999999999 466.15 803.35 425 760 425C959.75 775 850 925 550 1125C575 875 410.2000000000001 761.3 343.1 698.15A375 375 0 0 1 600 50zM635.5 938.25C797.5500000000001 800.75 798.35 693.9 673.1500000000001 474.5500000000001C635.1000000000001 407.9000000000001 683.25 325 760 325C794.4000000000001 325 829.1999999999999 335 865.9500000000002 354.75A275 275 0 1 0 411.6000000000002 625.3499999999999C417.9000000000001 631.2499999999999 449.8500000000002 659.5999999999999 451.2500000000001 660.8499999999999C472.4500000000001 679.85 489.9000000000001 696.7 507.1500000000001 715.15C568.6500000000001 781.05 612.85 854.1499999999999 635.4500000000002 938.25z","horizAdvX":"1200"},"firefox-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-1.464.314-2.854.88-4.106.466-.939 1.233-1.874 1.85-2.194-.653 1.283-.973 2.54-1.04 3.383.454-1.5 1.315-2.757 2.52-3.644 2.066-1.519 4.848-1.587 5.956-.62-2.056.707-4.296 3.548-3.803 6.876.08.55.245 1.084.489 1.582-.384-1.01-.418-2.433.202-3.358.692-1.03 1.678-1.248 2.206-1.136-.208-.044-.668.836-.736.991-.173.394-.259.82-.251 1.25a3.395 3.395 0 0 0 1.03 2.38c1.922 1.871 5.023 1.135 6.412-1.002.953-1.471 1.069-3.968-.155-5.952a6.915 6.915 0 0 0-1.084-1.32c-1.85-1.766-4.48-2.57-6.982-2.205-1.106.177-2.047.496-2.824.956C7.755 2.798 9.91 2 12 2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 673.2 115.7 742.6999999999999 144 805.3C167.3 852.25 205.65 899 236.5000000000001 915C203.85 850.8499999999999 187.85 788 184.5 745.8499999999999C207.2 820.8499999999999 250.2500000000001 883.7 310.5000000000001 928.05C413.8 1004 552.9 1007.4 608.3000000000001 959.05C505.5 923.7 393.5 781.65 418.15 615.25C422.15 587.75 430.3999999999999 561.05 442.6 536.15C423.4 586.65 421.7000000000001 657.8 452.7 704.05C487.3 755.55 536.5999999999999 766.4499999999999 563 760.8499999999999C552.6 763.05 529.6 719.05 526.1999999999999 711.3C517.55 691.5999999999999 513.2499999999999 670.3 513.65 648.8A169.75 169.75 0 0 1 565.15 529.8C661.25 436.25 816.3000000000001 473.0500000000001 885.75 579.9000000000001C933.4 653.45 939.2 778.3 877.9999999999999 877.5A345.75 345.75 0 0 1 823.8 943.5C731.3 1031.8 599.8 1072 474.7 1053.75C419.4 1044.9 372.35 1028.95 333.5 1005.95C387.75 1060.1 495.5 1100 600 1100z","horizAdvX":"1200"},"firefox-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-1.464.314-2.854.88-4.106.466-.939 1.233-1.874 1.85-2.194-.653 1.283-.973 2.54-1.04 3.383.454-1.5 1.315-2.757 2.52-3.644 2.066-1.519 4.848-1.587 5.956-.62-2.056.707-4.296 3.548-3.803 6.876.08.55.245 1.084.489 1.582-.384-1.01-.418-2.433.202-3.358.692-1.03 1.678-1.248 2.206-1.136-.208-.044-.668.836-.736.991-.173.394-.259.82-.251 1.25a3.395 3.395 0 0 0 1.03 2.38c1.922 1.871 5.023 1.135 6.412-1.002.953-1.471 1.069-3.968-.155-5.952a6.915 6.915 0 0 0-1.084-1.32c-1.85-1.766-4.48-2.57-6.982-2.205-1.106.177-2.047.496-2.824.956C7.755 2.798 9.91 2 12 2zM6.875 7.705c-2.253.781-3.501 3.17-2.579 6.46a8.004 8.004 0 0 0 7.455 5.831L12 20a8 8 0 0 0 7.985-7.504l.009-.212c-.13.349-.283.674-.463.98l-.14.227c-2.104 3.239-6.681 4.075-9.48 1.348a5.392 5.392 0 0 1-.962-1.257l-.106-.201c-1.736-.387-2.584-1.326-2.543-2.817.027-.991.23-1.96.575-2.86z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 673.2 115.7 742.6999999999999 144 805.3C167.3 852.25 205.65 899 236.5000000000001 915C203.85 850.8499999999999 187.85 788 184.5 745.8499999999999C207.2 820.8499999999999 250.2500000000001 883.7 310.5000000000001 928.05C413.8 1004 552.9 1007.4 608.3000000000001 959.05C505.5 923.7 393.5 781.65 418.15 615.25C422.15 587.75 430.3999999999999 561.05 442.6 536.15C423.4 586.65 421.7000000000001 657.8 452.7 704.05C487.3 755.55 536.5999999999999 766.4499999999999 563 760.8499999999999C552.6 763.05 529.6 719.05 526.1999999999999 711.3C517.55 691.5999999999999 513.2499999999999 670.3 513.65 648.8A169.75 169.75 0 0 1 565.15 529.8C661.25 436.25 816.3000000000001 473.0500000000001 885.75 579.9000000000001C933.4 653.45 939.2 778.3 877.9999999999999 877.5A345.75 345.75 0 0 1 823.8 943.5C731.3 1031.8 599.8 1072 474.7 1053.75C419.4 1044.9 372.35 1028.95 333.5 1005.95C387.75 1060.1 495.5 1100 600 1100zM343.75 814.75C231.1 775.7 168.7 656.25 214.8 491.75A400.20000000000005 400.20000000000005 0 0 1 587.55 200.2000000000001L600 200A400 400 0 0 1 999.25 575.1999999999999L999.7 585.8C993.2 568.3499999999999 985.55 552.1 976.55 536.8L969.55 525.4499999999999C864.3499999999999 363.5 635.4999999999999 321.6999999999998 495.5499999999999 458.0499999999998A269.6 269.6 0 0 0 447.45 520.8999999999999L442.1499999999999 530.9499999999999C355.3499999999999 550.3 312.95 597.2499999999999 314.9999999999999 671.8C316.3499999999999 721.3499999999999 326.5 769.7999999999998 343.7499999999999 814.8z","horizAdvX":"1200"},"first-aid-kit-fill":{"path":["M0 0H24V24H0z","M16 1c.552 0 1 .448 1 1v3h4c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V6c0-.552.448-1 1-1h4V2c0-.552.448-1 1-1h8zm-3 8h-2v3H8v2h2.999L11 17h2l-.001-3H16v-2h-3V9zm2-6H9v2h6V3z"],"unicode":"","glyph":"M800 1150C827.6 1150 850 1127.6 850 1100V950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V900C100 927.6 122.4 950 150 950H350V1100C350 1127.6 372.4000000000001 1150 400 1150H800zM650 750H550V600H400V500H549.95L550 350H650L649.95 500H800V600H650V750zM750 1050H450V950H750V1050z","horizAdvX":"1200"},"first-aid-kit-line":{"path":["M0 0H24V24H0z","M16 1c.552 0 1 .448 1 1v3h4c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V6c0-.552.448-1 1-1h4V2c0-.552.448-1 1-1h8zm4 6H4v12h16V7zm-7 2v3h3v2h-3.001L13 17h-2l-.001-3H8v-2h3V9h2zm2-6H9v2h6V3z"],"unicode":"","glyph":"M800 1150C827.6 1150 850 1127.6 850 1100V950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V900C100 927.6 122.4 950 150 950H350V1100C350 1127.6 372.4000000000001 1150 400 1150H800zM1000 850H200V250H1000V850zM650 750V600H800V500H649.95L650 350H550L549.95 500H400V600H550V750H650zM750 1050H450V950H750V1050z","horizAdvX":"1200"},"flag-2-fill":{"path":["M0 0h24v24H0z","M2 3h19.138a.5.5 0 0 1 .435.748L18 10l3.573 6.252a.5.5 0 0 1-.435.748H4v5H2V3z"],"unicode":"","glyph":"M100 1050H1056.9A25 25 0 0 0 1078.65 1012.6L900 700L1078.65 387.4000000000001A25 25 0 0 0 1056.9 350H200V100H100V1050z","horizAdvX":"1200"},"flag-2-line":{"path":["M0 0h24v24H0z","M4 17v5H2V3h19.138a.5.5 0 0 1 .435.748L18 10l3.573 6.252a.5.5 0 0 1-.435.748H4zM4 5v10h14.554l-2.858-5 2.858-5H4z"],"unicode":"","glyph":"M200 350V100H100V1050H1056.9A25 25 0 0 0 1078.65 1012.6L900 700L1078.65 387.4000000000001A25 25 0 0 0 1056.9 350H200zM200 950V450H927.7L784.8000000000001 700L927.7 950H200z","horizAdvX":"1200"},"flag-fill":{"path":["M0 0h24v24H0z","M3 3h9.382a1 1 0 0 1 .894.553L14 5h6a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-6.382a1 1 0 0 1-.894-.553L12 16H5v6H3V3z"],"unicode":"","glyph":"M150 1050H619.1A50 50 0 0 0 663.8 1022.35L700 950H1000A50 50 0 0 0 1050 900V350A50 50 0 0 0 1000 300H680.9A50 50 0 0 0 636.2 327.6500000000001L600 400H250V100H150V1050z","horizAdvX":"1200"},"flag-line":{"path":["M0 0h24v24H0z","M5 16v6H3V3h9.382a1 1 0 0 1 .894.553L14 5h6a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-6.382a1 1 0 0 1-.894-.553L12 16H5zM5 5v9h8.236l1 2H19V7h-6.236l-1-2H5z"],"unicode":"","glyph":"M250 400V100H150V1050H619.1A50 50 0 0 0 663.8 1022.35L700 950H1000A50 50 0 0 0 1050 900V350A50 50 0 0 0 1000 300H680.9A50 50 0 0 0 636.2 327.6500000000001L600 400H250zM250 950V500H661.8000000000001L711.8000000000001 400H950V850H638.1999999999999L588.1999999999999 950H250z","horizAdvX":"1200"},"flashlight-fill":{"path":["M0 0h24v24H0z","M13 10h7l-9 13v-9H4l9-13z"],"unicode":"","glyph":"M650 700H1000L550 50V500H200L650 1150z","horizAdvX":"1200"},"flashlight-line":{"path":["M0 0h24v24H0z","M13 9h8L11 24v-9H4l9-15v9zm-2 2V7.22L7.532 13H13v4.394L17.263 11H11z"],"unicode":"","glyph":"M650 750H1050L550 0V450H200L650 1200V750zM550 650V839L376.6 550H650V330.3000000000001L863.1500000000001 650H550z","horizAdvX":"1200"},"flask-fill":{"path":["M0 0H24V24H0z","M16 2v2h-1v3.243c0 1.158.251 2.301.736 3.352l4.282 9.276c.347.753.018 1.644-.734 1.99-.197.092-.411.139-.628.139H5.344c-.828 0-1.5-.672-1.5-1.5 0-.217.047-.432.138-.629l4.282-9.276C8.749 9.545 9 8.401 9 7.243V4H8V2h8zm-3 2h-2v4h2V4z"],"unicode":"","glyph":"M800 1100V1000H750V837.8499999999999C750 779.95 762.55 722.8 786.8000000000001 670.25L1000.9 206.4499999999999C1018.2500000000002 168.8 1001.8 124.25 964.2 106.9500000000001C954.35 102.3500000000001 943.6499999999997 100 932.8 100H267.2C225.8 100 192.2 133.6000000000001 192.2 175C192.2 185.8499999999999 194.55 196.5999999999999 199.1 206.4500000000001L413.2 670.25C437.4500000000001 722.75 450 779.95 450 837.8499999999999V1000H400V1100H800zM650 1000H550V800H650V1000z","horizAdvX":"1200"},"flask-line":{"path":["M0 0H24V24H0z","M16 2v2h-1v3.243c0 1.158.251 2.301.736 3.352l4.282 9.276c.347.753.018 1.644-.734 1.99-.197.092-.411.139-.628.139H5.344c-.828 0-1.5-.672-1.5-1.5 0-.217.047-.432.138-.629l4.282-9.276C8.749 9.545 9 8.401 9 7.243V4H8V2h8zm-2.612 8.001h-2.776c-.104.363-.23.721-.374 1.071l-.158.361L6.125 20h11.749l-3.954-8.567c-.214-.464-.392-.943-.532-1.432zM11 7.243c0 .253-.01.506-.029.758h2.058c-.01-.121-.016-.242-.021-.364L13 7.243V4h-2v3.243z"],"unicode":"","glyph":"M800 1100V1000H750V837.8499999999999C750 779.95 762.55 722.8 786.8000000000001 670.25L1000.9 206.4499999999999C1018.2500000000002 168.8 1001.8 124.25 964.2 106.9500000000001C954.35 102.3500000000001 943.6499999999997 100 932.8 100H267.2C225.8 100 192.2 133.6000000000001 192.2 175C192.2 185.8499999999999 194.55 196.5999999999999 199.1 206.4500000000001L413.2 670.25C437.4500000000001 722.75 450 779.95 450 837.8499999999999V1000H400V1100H800zM669.4 699.95H530.6C525.4000000000001 681.8000000000001 519.1 663.9 511.9 646.4000000000001L504 628.35L306.25 200H893.7000000000002L696.0000000000001 628.35C685.3000000000001 651.5500000000001 676.4000000000001 675.5 669.4000000000001 699.95zM550 837.8499999999999C550 825.2 549.5 812.55 548.55 799.9499999999999H651.45C650.95 806 650.65 812.05 650.4 818.1499999999999L650 837.8499999999999V1000H550V837.8499999999999z","horizAdvX":"1200"},"flight-land-fill":{"path":["M0 0h24v24H0z","M10.254 10.47l-.37-8.382 1.933.518 2.81 9.035 5.261 1.41a1.5 1.5 0 1 1-.776 2.898L4.14 11.937l.776-2.898.242.065.914 3.35-2.627-.703a1 1 0 0 1-.74-.983l.09-5.403 1.449.388.914 3.351 5.096 1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M512.6999999999999 676.5L494.2 1095.6L590.85 1069.7L731.35 617.9499999999999L994.4 547.4499999999999A75 75 0 1 0 955.6000000000003 402.55L207 603.15L245.8 748.05L257.9 744.8000000000001L303.6 577.3000000000001L172.25 612.45A50 50 0 0 0 135.25 661.6L139.75 931.75L212.1999999999999 912.35L257.8999999999999 744.8000000000001L512.6999999999999 676.5zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flight-land-line":{"path":["M0 0h24v24H0z","M10.254 10.47l-.37-8.382 1.933.518 2.81 9.035 5.261 1.41a1.5 1.5 0 1 1-.776 2.898L4.14 11.937l.776-2.898.242.065.914 3.35-2.627-.703a1 1 0 0 1-.74-.983l.09-5.403 1.449.388.914 3.351 5.096 1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M512.6999999999999 676.5L494.2 1095.6L590.85 1069.7L731.35 617.9499999999999L994.4 547.4499999999999A75 75 0 1 0 955.6000000000003 402.55L207 603.15L245.8 748.05L257.9 744.8000000000001L303.6 577.3000000000001L172.25 612.45A50 50 0 0 0 135.25 661.6L139.75 931.75L212.1999999999999 912.35L257.8999999999999 744.8000000000001L512.6999999999999 676.5zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flight-takeoff-fill":{"path":["M0 0h24v24H0z","M10.478 11.632L5.968 4.56l1.931-.518 6.951 6.42 5.262-1.41a1.5 1.5 0 0 1 .776 2.898L5.916 15.96l-.776-2.898.241-.065 2.467 2.445-2.626.704a1 1 0 0 1-1.133-.48L1.466 10.94l1.449-.388 2.466 2.445 5.097-1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M523.9 618.4L298.4 972L394.95 997.9L742.5 676.9L1005.6 747.4000000000001A75 75 0 0 0 1044.3999999999999 602.5L295.8 402L257 546.9L269.05 550.1499999999999L392.4000000000001 427.8999999999999L261.1000000000001 392.7A50 50 0 0 0 204.4500000000001 416.7L73.3 653L145.75 672.4L269.05 550.15L523.9000000000001 618.45zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flight-takeoff-line":{"path":["M0 0h24v24H0z","M10.478 11.632L5.968 4.56l1.931-.518 6.951 6.42 5.262-1.41a1.5 1.5 0 0 1 .776 2.898L5.916 15.96l-.776-2.898.241-.065 2.467 2.445-2.626.704a1 1 0 0 1-1.133-.48L1.466 10.94l1.449-.388 2.466 2.445 5.097-1.366zM4 19h16v2H4v-2z"],"unicode":"","glyph":"M523.9 618.4L298.4 972L394.95 997.9L742.5 676.9L1005.6 747.4000000000001A75 75 0 0 0 1044.3999999999999 602.5L295.8 402L257 546.9L269.05 550.1499999999999L392.4000000000001 427.8999999999999L261.1000000000001 392.7A50 50 0 0 0 204.4500000000001 416.7L73.3 653L145.75 672.4L269.05 550.15L523.9000000000001 618.45zM200 250H1000V150H200V250z","horizAdvX":"1200"},"flood-fill":{"path":["M0 0h24v24H0z","M16 17.472A5.978 5.978 0 0 0 20 19h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 12 21a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 4 21H2v-2h2c1.537 0 2.94-.578 4-1.528A5.978 5.978 0 0 0 12 19c1.537 0 2.94-.578 4-1.528zm-3.427-15.94l.1.08L23 11h-3v6a4.992 4.992 0 0 1-4-2 4.99 4.99 0 0 1-4 2 4.992 4.992 0 0 1-4-2 4.99 4.99 0 0 1-4 2l-.001-6H1l10.327-9.388a1 1 0 0 1 1.14-.145l.106.065z"],"unicode":"","glyph":"M800 326.4A298.9 298.9 0 0 1 1000 250H1100V150H1000A398.15 398.15 0 0 0 800 203.5A398.00000000000006 398.00000000000006 0 0 0 600 150A398.15 398.15 0 0 0 400 203.5A398.00000000000006 398.00000000000006 0 0 0 200 150H100V250H200C276.85 250 347 278.9 400 326.4A298.9 298.9 0 0 1 600 250C676.8499999999999 250 747 278.9 800 326.4zM628.65 1123.3999999999999L633.65 1119.3999999999999L1150 650H1000V350A249.60000000000002 249.60000000000002 0 0 0 800 450A249.5 249.5 0 0 0 600 350A249.60000000000002 249.60000000000002 0 0 0 400 450A249.5 249.5 0 0 0 200 350L199.95 650H50L566.35 1119.4A50 50 0 0 0 623.35 1126.65L628.65 1123.4z","horizAdvX":"1200"},"flood-line":{"path":["M0 0h24v24H0z","M16 17.472A5.978 5.978 0 0 0 20 19h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 12 21a7.963 7.963 0 0 1-4-1.07A7.96 7.96 0 0 1 4 21H2v-2h2c1.537 0 2.94-.578 4-1.528A5.978 5.978 0 0 0 12 19c1.537 0 2.94-.578 4-1.528zm-3.427-15.94l.1.08L23 11h-3v6a5.99 5.99 0 0 1-2-.341V9.157l-6-5.455-6 5.454.001 7.502a5.978 5.978 0 0 1-1.702.335L4 17v-6H1l10.327-9.388a1 1 0 0 1 1.246-.08z"],"unicode":"","glyph":"M800 326.4A298.9 298.9 0 0 1 1000 250H1100V150H1000A398.15 398.15 0 0 0 800 203.5A398.00000000000006 398.00000000000006 0 0 0 600 150A398.15 398.15 0 0 0 400 203.5A398.00000000000006 398.00000000000006 0 0 0 200 150H100V250H200C276.85 250 347 278.9 400 326.4A298.9 298.9 0 0 1 600 250C676.8499999999999 250 747 278.9 800 326.4zM628.65 1123.3999999999999L633.65 1119.3999999999999L1150 650H1000V350A299.50000000000006 299.50000000000006 0 0 0 900 367.0500000000001V742.15L600 1014.9L300 742.2L300.05 367.1000000000002A298.9 298.9 0 0 0 214.95 350.35L200 350V650H50L566.35 1119.4A50 50 0 0 0 628.65 1123.4z","horizAdvX":"1200"},"flow-chart":{"path":["M0 0H24V24H0z","M6 21.5c-1.933 0-3.5-1.567-3.5-3.5s1.567-3.5 3.5-3.5c1.585 0 2.924 1.054 3.355 2.5H15v-2h2V9.242L14.757 7H9V9H3V3h6v2h5.757L18 1.756 22.243 6 19 9.241V15L21 15v6h-6v-2H9.355c-.43 1.446-1.77 2.5-3.355 2.5zm0-5c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm13 .5h-2v2h2v-2zM18 4.586L16.586 6 18 7.414 19.414 6 18 4.586zM7 5H5v2h2V5z"],"unicode":"","glyph":"M300 125C203.35 125 125 203.35 125 300S203.35 475 300 475C379.25 475 446.2 422.3 467.75 350H750V450H850V737.9L737.85 850H450V750H150V1050H450V950H737.85L900 1112.2L1112.1499999999999 900L950 737.95V450L1050 450V150H750V250H467.75C446.2500000000001 177.6999999999999 379.2500000000001 125 300 125zM300 375C258.6 375 225 341.4 225 300S258.6 225 300 225S375 258.6 375 300S341.4000000000001 375 300 375zM950 350H850V250H950V350zM900 970.7L829.3 900L900 829.3L970.7 900L900 970.7zM350 950H250V850H350V950z","horizAdvX":"1200"},"flutter-fill":{"path":["M0 0h24v24H0z","M13.503 2.001l-10 10 3.083 3.083 13.08-13.083h-6.163zm-.006 9.198L8.122 16.62 13.494 22h6.189l-5.387-5.4 5.389-5.4h-6.188z"],"unicode":"","glyph":"M675.15 1099.95L175.15 599.95L329.3 445.8000000000001L983.3 1099.95H675.15zM674.85 640.05L406.1 369L674.7 100H984.15L714.8 369.9999999999999L984.2499999999998 640H674.85z","horizAdvX":"1200"},"flutter-line":{"path":["M0 0h24v24H0z","M14.597 10.684h2.828l-5.657 5.658 5.657 5.656h-2.828L8.94 16.34l5.657-5.657zm-.194-8.68h2.829L5.918 13.318l-1.414-1.414 9.9-9.9z"],"unicode":"","glyph":"M729.85 665.8000000000001H871.25L588.4000000000001 382.9000000000001L871.25 100.1000000000001H729.85L447 383L729.85 665.85zM720.15 1099.8H861.5999999999999L295.9000000000001 534.1L225.2 604.8L720.2 1099.8z","horizAdvX":"1200"},"focus-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.427 0 8-3.573 8-8s-3.573-8-8-8a7.99 7.99 0 0 0-8 8c0 4.427 3.573 8 8 8zm0-2c-3.32 0-6-2.68-6-6s2.68-6 6-6 6 2.68 6 6-2.68 6-6 6zm0-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.35 200 1000 378.65 1000 600S821.35 1000 600 1000A399.5 399.5 0 0 1 200 600C200 378.65 378.6500000000001 200 600 200zM600 300C434 300 300 434 300 600S434 900 600 900S900 766 900 600S766 300 600 300zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"focus-2-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-6a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400zM600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500z","horizAdvX":"1200"},"focus-3-fill":{"path":["M0 0h24v24H0z","M13 1l.001 3.062A8.004 8.004 0 0 1 19.938 11H23v2l-3.062.001a8.004 8.004 0 0 1-6.937 6.937L13 23h-2v-3.062a8.004 8.004 0 0 1-6.938-6.937L1 13v-2h3.062A8.004 8.004 0 0 1 11 4.062V1h2zm-1 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M650 1150L650.05 996.9A400.20000000000005 400.20000000000005 0 0 0 996.9 650H1150V550L996.9 549.95A400.20000000000005 400.20000000000005 0 0 0 650.0499999999998 203.1L650 50H550V203.1A400.20000000000005 400.20000000000005 0 0 0 203.1 549.9500000000002L50 550V650H203.1A400.20000000000005 400.20000000000005 0 0 0 550 996.9V1150H650zM600 700A100 100 0 1 1 600 500A100 100 0 0 1 600 700z","horizAdvX":"1200"},"focus-3-line":{"path":["M0 0h24v24H0z","M13 1l.001 3.062A8.004 8.004 0 0 1 19.938 11H23v2l-3.062.001a8.004 8.004 0 0 1-6.937 6.937L13 23h-2v-3.062a8.004 8.004 0 0 1-6.938-6.937L1 13v-2h3.062A8.004 8.004 0 0 1 11 4.062V1h2zm-1 5a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M650 1150L650.05 996.9A400.20000000000005 400.20000000000005 0 0 0 996.9 650H1150V550L996.9 549.95A400.20000000000005 400.20000000000005 0 0 0 650.0499999999998 203.1L650 50H550V203.1A400.20000000000005 400.20000000000005 0 0 0 203.1 549.9500000000002L50 550V650H203.1A400.20000000000005 400.20000000000005 0 0 0 550 996.9V1150H650zM600 900A300 300 0 1 1 600 300A300 300 0 0 1 600 900zM600 700A100 100 0 1 0 600 500A100 100 0 0 0 600 700z","horizAdvX":"1200"},"focus-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"focus-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-8a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500z","horizAdvX":"1200"},"foggy-fill":{"path":["M0 0h24v24H0z","M1.584 13.007a8 8 0 0 1 14.873-5.908 5.5 5.5 0 0 1 6.52 5.908H1.584zM4 19h17v2H4v-2zm-2-4h21v2H2v-2z"],"unicode":"","glyph":"M79.2 549.65A400 400 0 0 0 822.85 845.05A275 275 0 0 0 1148.85 549.65H79.2zM200 250H1050V150H200V250zM100 450H1150V350H100V450z","horizAdvX":"1200"},"foggy-line":{"path":["M0 0h24v24H0z","M1.584 13.007a8 8 0 0 1 14.873-5.908 5.5 5.5 0 0 1 6.52 5.908h-2.013A3.5 3.5 0 0 0 15 10.05V10a6 6 0 1 0-11.193 3.007H1.584zM4 19h17v2H4v-2zm-2-4h21v2H2v-2z"],"unicode":"","glyph":"M79.2 549.65A400 400 0 0 0 822.85 845.05A275 275 0 0 0 1148.85 549.65H1048.1999999999998A175 175 0 0 1 750 697.5V700A300 300 0 1 1 190.35 549.65H79.2zM200 250H1050V150H200V250zM100 450H1150V350H100V450z","horizAdvX":"1200"},"folder-2-fill":{"path":["M0 0h24v24H0z","M22 11v9a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9h20zm0-2H2V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v3z"],"unicode":"","glyph":"M1100 650V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V650H1100zM1100 750H100V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V750z","horizAdvX":"1200"},"folder-2-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM20 11H4v8h16v-8zm0-2V7h-8.414l-2-2H4v4h16z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM1000 650H200V250H1000V650zM1000 750V850H579.3000000000001L479.3 950H200V750H1000z","horizAdvX":"1200"},"folder-3-fill":{"path":["M0 0h24v24H0z","M22 8v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7h19a1 1 0 0 1 1 1zm-9.586-3H2V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M1100 800V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V850H1050A50 50 0 0 0 1100 800zM620.6999999999999 950H100V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950z","horizAdvX":"1200"},"folder-3-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 7v12h16V7H4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 850V250H1000V850H200z","horizAdvX":"1200"},"folder-4-fill":{"path":["M0 0h24v24H0z","M8 21V11h14v9a1 1 0 0 1-1 1H8zm-2 0H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v3H7a1 1 0 0 0-1 1v11z"],"unicode":"","glyph":"M400 150V650H1100V200A50 50 0 0 0 1050 150H400zM300 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V750H350A50 50 0 0 1 300 700V150z","horizAdvX":"1200"},"folder-4-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM8 19h12v-8H8v8zm-2 0v-9a1 1 0 0 1 1-1h13V7h-8.414l-2-2H4v14h2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM400 250H1000V650H400V250zM300 250V700A50 50 0 0 0 350 750H1000V850H579.3000000000001L479.3 950H200V250H300z","horizAdvX":"1200"},"folder-5-fill":{"path":["M0 0h24v24H0z","M13.414 5H20a1 1 0 0 1 1 1v1H3V4a1 1 0 0 1 1-1h7.414l2 2zM3.087 9h17.826a1 1 0 0 1 .997 1.083l-.834 10a1 1 0 0 1-.996.917H3.92a1 1 0 0 1-.996-.917l-.834-10A1 1 0 0 1 3.087 9z"],"unicode":"","glyph":"M670.6999999999999 950H1000A50 50 0 0 0 1050 900V850H150V1000A50 50 0 0 0 200 1050H570.6999999999999L670.6999999999999 950zM154.35 750H1045.65A50 50 0 0 0 1095.5 695.8499999999999L1053.8 195.8500000000001A50 50 0 0 0 1004.0000000000002 150H196A50 50 0 0 0 146.2 195.8500000000001L104.5 695.8500000000001A50 50 0 0 0 154.35 750z","horizAdvX":"1200"},"folder-5-line":{"path":["M0 0h24v24H0z","M3.087 9h17.826a1 1 0 0 1 .997 1.083l-.834 10a1 1 0 0 1-.996.917H3.92a1 1 0 0 1-.996-.917l-.834-10A1 1 0 0 1 3.087 9zM4.84 19h14.32l.666-8H4.174l.666 8zm8.574-14H20a1 1 0 0 1 1 1v1H3V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M154.35 750H1045.65A50 50 0 0 0 1095.5 695.8499999999999L1053.8 195.8500000000001A50 50 0 0 0 1004.0000000000002 150H196A50 50 0 0 0 146.2 195.8500000000001L104.5 695.8500000000001A50 50 0 0 0 154.35 750zM242 250H958L991.3 650H208.7L242.0000000000001 250zM670.6999999999999 950H1000A50 50 0 0 0 1050 900V850H150V1000A50 50 0 0 0 200 1050H570.6999999999999L670.6999999999999 950z","horizAdvX":"1200"},"folder-add-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 12H8v2h3v3h2v-3h3v-2h-3V9h-2v3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 600H400V500H550V350H650V500H800V600H650V750H550V600z","horizAdvX":"1200"},"folder-add-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 7V9h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 600V750H650V600H800V500H650V350H550V500H400V600H550z","horizAdvX":"1200"},"folder-chart-2-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM12 9a4 4 0 1 0 4 4h-4V9z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM600 750A200 200 0 1 1 800 550H600V750z","horizAdvX":"1200"},"folder-chart-2-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm8 4v4h4a4 4 0 1 1-4-4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM600 750V550H800A200 200 0 1 0 600 750z","horizAdvX":"1200"},"folder-chart-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 9v8h2V9h-2zm4 3v5h2v-5h-2zm-8 2v3h2v-3H7z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 750V350H650V750H550zM750 600V350H850V600H750zM350 500V350H450V500H350z","horizAdvX":"1200"},"folder-chart-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 4h2v8h-2V9zm4 3h2v5h-2v-5zm-8 2h2v3H7v-3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 750H650V350H550V750zM750 600H850V350H750V600zM350 500H450V350H350V500z","horizAdvX":"1200"},"folder-download-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM13 13V9h-2v4H8l4 4 4-4h-3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM650 550V750H550V550H400L600 350L800 550H650z","horizAdvX":"1200"},"folder-download-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm9 8h3l-4 4-4-4h3V9h2v4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM650 550H800L600 350L400 550H550V750H650V550z","horizAdvX":"1200"},"folder-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950z","horizAdvX":"1200"},"folder-forbid-fill":{"path":["M0 0h24v24H0z","M22 11.255A7 7 0 0 0 12.255 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v5.255zM18 22a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M1100 637.25A350 350 0 0 1 612.75 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V637.25zM900 100A250 250 0 1 0 900 600A250 250 0 0 0 900 100zM835.35 214.6000000000001A150 150 0 0 1 1035.4 414.6500000000001L835.35 214.6500000000001zM764.6000000000001 285.35L964.65 485.35A150 150 0 0 1 764.6000000000001 285.3z","horizAdvX":"1200"},"folder-forbid-line":{"path":["M0 0h24v24H0z","M22 11.255a6.972 6.972 0 0 0-2-.965V7h-8.414l-2-2H4v14h7.29c.215.722.543 1.396.965 2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v5.255zM18 22a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1.293-2.292a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001z"],"unicode":"","glyph":"M1100 637.25A348.6 348.6 0 0 1 1000 685.5V850H579.3000000000001L479.3 950H200V250H564.5C575.25 213.9 591.6499999999999 180.1999999999999 612.75 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V637.25zM900 100A250 250 0 1 0 900 600A250 250 0 0 0 900 100zM835.35 214.6000000000001A150 150 0 0 1 1035.4 414.6500000000001L835.35 214.6500000000001zM764.6000000000001 285.35L964.65 485.35A150 150 0 0 1 764.6000000000001 285.3z","horizAdvX":"1200"},"folder-history-fill":{"path":["M0 0L24 0 24 24 0 24z","M10.414 3l2 2H21c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7.414zM13 9h-2v6h5v-2h-3V9z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H520.6999999999999zM650 750H550V450H800V550H650V750z","horizAdvX":"1200"},"folder-history-line":{"path":["M0 0L24 0 24 24 0 24z","M10.414 3l2 2H21c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7.414zm-.828 2H4v14h16V7h-8.414l-2-2zM13 9v4h3v2h-5V9h2z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050C1077.6 950 1100 927.6 1100 900V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H520.6999999999999zM479.3 950H200V250H1000V850H579.3000000000001L479.3 950zM650 750V550H800V450H550V750H650z","horizAdvX":"1200"},"folder-info-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 9v2h2V9h-2zm0 3v5h2v-5h-2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 750V650H650V750H550zM550 600V350H650V600H550z","horizAdvX":"1200"},"folder-info-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 7h2v5h-2v-5zm0-3h2v2h-2V9z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 600H650V350H550V600zM550 750H650V650H550V750z","horizAdvX":"1200"},"folder-keyhole-fill":{"path":["M0 0h24v24H0z","M10.414 3l2 2H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414zM12 9a2 2 0 0 0-1 3.732V17h2l.001-4.268A2 2 0 0 0 12 9z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999zM600 750A100 100 0 0 1 550 563.4000000000001V350H650L650.05 563.4000000000001A100 100 0 0 1 600 750z","horizAdvX":"1200"},"folder-keyhole-line":{"path":["M0 0h24v24H0z","M10.414 3l2 2H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414zm-.828 2H4v14h16V7h-8.414l-2-2zM12 9a2 2 0 0 1 1.001 3.732L13 17h-2v-4.268A2 2 0 0 1 12 9z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999zM479.3 950H200V250H1000V850H579.3000000000001L479.3 950zM600 750A100 100 0 0 0 650.05 563.4000000000001L650 350H550V563.4000000000001A100 100 0 0 0 600 750z","horizAdvX":"1200"},"folder-line":{"path":["M0 0h24v24H0z","M4 5v14h16V7h-8.414l-2-2H4zm8.414 0H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2z"],"unicode":"","glyph":"M200 950V250H1000V850H579.3000000000001L479.3 950H200zM620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950z","horizAdvX":"1200"},"folder-lock-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM15 13v-1a3 3 0 0 0-6 0v1H8v4h8v-4h-1zm-2 0h-2v-1a1 1 0 0 1 2 0v1z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM750 550V600A150 150 0 0 1 450 600V550H400V350H800V550H750zM650 550H550V600A50 50 0 0 0 650 600V550z","horizAdvX":"1200"},"folder-lock-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm11 8h1v4H8v-4h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM750 550H800V350H400V550H450V600A150 150 0 0 0 750 600V550zM650 550V600A50 50 0 0 1 550 600V550H650z","horizAdvX":"1200"},"folder-music-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 13.05a2.5 2.5 0 1 0 2 2.45V11h3V9h-5v4.05z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 547.5A125 125 0 1 1 650 425V650H800V750H550V547.5z","horizAdvX":"1200"},"folder-music-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 8.05V9h5v2h-3v4.5a2.5 2.5 0 1 1-2-2.45z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 547.5V750H800V650H650V425A125 125 0 1 0 550 547.5z","horizAdvX":"1200"},"folder-open-fill":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H20a1 1 0 0 1 1 1v3H4v9.996L6 11h16.5l-2.31 9.243a1 1 0 0 1-.97.757H3z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1000A50 50 0 0 0 1050 900V750H200V250.2L300 650H1125L1009.5000000000002 187.8499999999999A50 50 0 0 0 961.0000000000002 149.9999999999998H150z","horizAdvX":"1200"},"folder-open-line":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H20a1 1 0 0 1 1 1v3h-2V7h-7.414l-2-2H4v11.998L5.5 11h17l-2.31 9.243a1 1 0 0 1-.97.757H3zm16.938-8H7.062l-1.5 6h12.876l1.5-6z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1000A50 50 0 0 0 1050 900V750H950V850H579.3000000000001L479.3 950H200V350.1000000000002L275 650H1125L1009.5000000000002 187.8499999999999A50 50 0 0 0 961.0000000000002 149.9999999999998H150zM996.9 550H353.1L278.1 250H921.9L996.9 550z","horizAdvX":"1200"},"folder-received-fill":{"path":["M0 0h24v24H0z","M22 13.126A6 6 0 0 0 13.303 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7.126zM20 17h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M1100 543.7A300 300 0 0 1 665.1500000000001 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V543.6999999999999zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"folder-received-line":{"path":["M0 0h24v24H0z","M22 13h-2V7h-8.414l-2-2H4v14h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7zm-2 4h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M1100 550H1000V850H579.3000000000001L479.3 950H200V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V550zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"folder-reduce-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM8 12v2h8v-2H8z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM400 600V500H800V600H400z","horizAdvX":"1200"},"folder-reduce-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4 7h8v2H8v-2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM400 600H800V500H400V600z","horizAdvX":"1200"},"folder-settings-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zm-3.823 8.809l-.991.572 1 1.731.991-.572c.393.371.872.653 1.405.811v1.145h1.999V16.35a3.495 3.495 0 0 0 1.404-.811l.991.572 1-1.73-.991-.573a3.508 3.508 0 0 0 0-1.622l.99-.573-.999-1.73-.992.572a3.495 3.495 0 0 0-1.404-.812V8.5h-1.999v1.144a3.495 3.495 0 0 0-1.404.812L8.6 9.883 7.6 11.615l.991.572a3.508 3.508 0 0 0 0 1.622zm3.404.688a1.5 1.5 0 1 1 0-2.998 1.5 1.5 0 0 1 0 2.998z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM429.55 509.5500000000001L380 480.95L430 394.4000000000001L479.55 423C499.2 404.4500000000001 523.15 390.3500000000002 549.8 382.4500000000001V325.2000000000001H649.75V382.4999999999999A174.75000000000003 174.75000000000003 0 0 1 719.9499999999999 423.05L769.4999999999999 394.45L819.5 480.95L769.95 509.6A175.4 175.4 0 0 1 769.95 590.7L819.4499999999999 619.35L769.4999999999999 705.85L719.9 677.2500000000001A174.75000000000003 174.75000000000003 0 0 1 649.7 717.8500000000001V775H549.75V717.8A174.75000000000003 174.75000000000003 0 0 1 479.55 677.2L430 705.85L380 619.25L429.55 590.65A175.4 175.4 0 0 1 429.55 509.5500000000001zM599.75 475.15A75 75 0 1 0 599.75 625.0500000000001A75 75 0 0 0 599.75 475.15z","horizAdvX":"1200"},"folder-settings-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4.591 8.809a3.508 3.508 0 0 1 0-1.622l-.991-.572 1-1.732.991.573a3.495 3.495 0 0 1 1.404-.812V8.5h2v1.144c.532.159 1.01.44 1.403.812l.992-.573 1 1.731-.991.573a3.508 3.508 0 0 1 0 1.622l.991.572-1 1.731-.991-.572a3.495 3.495 0 0 1-1.404.811v1.145h-2V16.35a3.495 3.495 0 0 1-1.404-.811l-.991.572-1-1.73.991-.573zm3.404.688a1.5 1.5 0 1 0 0-2.998 1.5 1.5 0 0 0 0 2.998z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM429.5500000000001 509.5500000000001A175.4 175.4 0 0 0 429.5500000000001 590.65L380.0000000000001 619.25L430.0000000000001 705.8499999999999L479.5500000000001 677.1999999999999A174.75000000000003 174.75000000000003 0 0 0 549.75 717.8V775H649.75V717.8C676.35 709.8499999999999 700.25 695.8 719.9000000000001 677.2L769.5 705.85L819.5 619.3000000000001L769.95 590.65A175.4 175.4 0 0 0 769.95 509.5500000000001L819.5 480.95L769.5 394.4000000000001L719.95 423A174.75000000000003 174.75000000000003 0 0 0 649.75 382.4500000000001V325.2000000000001H549.75V382.4999999999999A174.75000000000003 174.75000000000003 0 0 0 479.5500000000001 423.05L430.0000000000001 394.45L380.0000000000001 480.95L429.5500000000001 509.6zM599.75 475.15A75 75 0 1 1 599.75 625.0500000000001A75 75 0 0 1 599.75 475.15z","horizAdvX":"1200"},"folder-shared-fill":{"path":["M0 0h24v24H0z","M22 13.126A6 6 0 0 0 13.303 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7.126zM18 17v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M1100 543.7A300 300 0 0 1 665.1500000000001 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V543.6999999999999zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"folder-shared-line":{"path":["M0 0h24v24H0z","M22 13h-2V7h-8.414l-2-2H4v14h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v7zm-4 4v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M1100 550H1000V850H579.3000000000001L479.3 950H200V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V550zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"folder-shield-2-fill":{"path":["M0 0h24v24H0z","M22 10H12v7.382c0 1.409.632 2.734 1.705 3.618H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v4zm-8 2h8v5.382c0 .897-.446 1.734-1.187 2.23L18 21.499l-2.813-1.885A2.685 2.685 0 0 1 14 17.383V12z"],"unicode":"","glyph":"M1100 700H600V330.9000000000001C600 260.4500000000002 631.6 194.2000000000001 685.25 150.0000000000002H150A50 50 0 0 0 100 200.0000000000002V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V700zM700 600H1100V330.9000000000001C1100 286.0500000000002 1077.6999999999998 244.2000000000001 1040.6499999999999 219.4000000000001L900 125.05L759.35 219.3000000000002A134.25 134.25 0 0 0 700 330.85V600z","horizAdvX":"1200"},"folder-shield-2-line":{"path":["M0 0h24v24H0z","M22 9h-2V7h-8.414l-2-2H4v14h7.447a4.97 4.97 0 0 0 1.664 2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v3zm-9 2h9v5.949c0 .99-.501 1.916-1.336 2.465L17.5 21.498l-3.164-2.084A2.953 2.953 0 0 1 13 16.95V11zm2 5.949c0 .316.162.614.436.795l2.064 1.36 2.064-1.36a.954.954 0 0 0 .436-.795V13h-5v3.949z"],"unicode":"","glyph":"M1100 750H1000V850H579.3000000000001L479.3 950H200V250H572.3499999999999A248.49999999999997 248.49999999999997 0 0 1 655.55 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H1050A50 50 0 0 0 1100 900V750zM650 650H1100V352.5500000000001C1100 303.0500000000002 1074.95 256.7500000000001 1033.2 229.3000000000001L875 125.0999999999999L716.8000000000001 229.3A147.64999999999998 147.64999999999998 0 0 0 650 352.5V650zM750 352.5500000000001C750 336.7500000000001 758.1 321.85 771.8 312.8L875 244.8000000000001L978.2 312.8A47.699999999999996 47.699999999999996 0 0 1 1000 352.5500000000001V550H750V352.5500000000001z","horizAdvX":"1200"},"folder-shield-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM8 9v4.904c0 .892.446 1.724 1.187 2.219L12 17.998l2.813-1.875A2.667 2.667 0 0 0 16 13.904V9H8zm2 4.904V11h4v2.904a.667.667 0 0 1-.297.555L12 15.594l-1.703-1.135a.667.667 0 0 1-.297-.555z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM400 750V504.8C400 460.2 422.3 418.6 459.35 393.8499999999999L600 300.0999999999999L740.65 393.8499999999999A133.35 133.35 0 0 1 800 504.8V750H400zM500 504.8V650H700V504.8A33.349999999999994 33.349999999999994 0 0 0 685.15 477.0500000000001L600 420.3000000000001L514.85 477.0500000000001A33.349999999999994 33.349999999999994 0 0 0 500 504.8z","horizAdvX":"1200"},"folder-shield-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4 4h8v4.904c0 .892-.446 1.724-1.187 2.219L12 17.998l-2.813-1.875A2.667 2.667 0 0 1 8 13.904V9zm2 4.904c0 .223.111.431.297.555L12 15.594l1.703-1.135a.667.667 0 0 0 .297-.555V11h-4v2.904z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM400 750H800V504.8C800 460.2 777.7 418.6 740.65 393.8499999999999L600 300.0999999999999L459.35 393.8499999999999A133.35 133.35 0 0 0 400 504.8V750zM500 504.8C500 493.65 505.55 483.25 514.85 477.0500000000001L600 420.3000000000001L685.15 477.0500000000001A33.349999999999994 33.349999999999994 0 0 1 700 504.8V650H500V504.8z","horizAdvX":"1200"},"folder-transfer-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM12 12H8v2h4v3l4-4-4-4v3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM600 600H400V500H600V350L800 550L600 750V600z","horizAdvX":"1200"},"folder-transfer-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm8 7V9l4 4-4 4v-3H8v-2h4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM600 600V750L800 550L600 350V500H400V600H600z","horizAdvX":"1200"},"folder-unknow-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 16v2h2v-2h-2zm-2.433-5.187l1.962.393A1.5 1.5 0 1 1 12 13h-1v2h1a3.5 3.5 0 1 0-3.433-4.187z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 400V300H650V400H550zM428.35 659.35L526.45 639.7A75 75 0 1 0 600 550H550V450H600A175 175 0 1 1 428.35 659.35z","horizAdvX":"1200"},"folder-unknow-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 11h2v2h-2v-2zm-2.433-5.187A3.501 3.501 0 1 1 12 15h-1v-2h1a1.5 1.5 0 1 0-1.471-1.794l-1.962-.393z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 400H650V300H550V400zM428.35 659.35A175.04999999999998 175.04999999999998 0 1 0 600 450H550V550H600A75 75 0 1 1 526.45 639.7L428.35 659.35z","horizAdvX":"1200"},"folder-upload-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM13 13h3l-4-4-4 4h3v4h2v-4z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM650 550H800L600 750L400 550H550V350H650V550z","horizAdvX":"1200"},"folder-upload-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm9 8v4h-2v-4H8l4-4 4 4h-3z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM650 550V350H550V550H400L600 750L800 550H650z","horizAdvX":"1200"},"folder-user-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM12 13a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm-4 5h8a4 4 0 1 0-8 0z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM600 550A125 125 0 1 1 600 800A125 125 0 0 1 600 550zM400 300H800A200 200 0 1 1 400 300z","horizAdvX":"1200"},"folder-user-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm4 13a4 4 0 1 1 8 0H8zm4-5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM400 300A200 200 0 1 0 800 300H400zM600 550A125 125 0 1 0 600 800A125 125 0 0 0 600 550z","horizAdvX":"1200"},"folder-warning-fill":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM11 9v5h2V9h-2zm0 6v2h2v-2h-2z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM550 750V500H650V750H550zM550 450V350H650V450H550z","horizAdvX":"1200"},"folder-warning-line":{"path":["M0 0h24v24H0z","M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2zM4 5v14h16V7h-8.414l-2-2H4zm7 10h2v2h-2v-2zm0-6h2v5h-2V9z"],"unicode":"","glyph":"M620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950zM200 950V250H1000V850H579.3000000000001L479.3 950H200zM550 450H650V350H550V450zM550 750H650V500H550V750z","horizAdvX":"1200"},"folder-zip-fill":{"path":["M0 0h24v24H0z","M21 5a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414l2 2H16v2h2V5h3zm-3 8h-2v2h-2v3h4v-5zm-2-2h-2v2h2v-2zm2-2h-2v2h2V9zm-2-2h-2v2h2V7z"],"unicode":"","glyph":"M1050 950A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999L620.6999999999999 950H800V850H900V950H1050zM900 550H800V450H700V300H900V550zM800 650H700V550H800V650zM900 750H800V650H900V750zM800 850H700V750H800V850z","horizAdvX":"1200"},"folder-zip-line":{"path":["M0 0h24v24H0z","M10.414 3l2 2H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414zM18 18h-4v-3h2v-2h-2v-2h2V9h-2V7h-2.414l-2-2H4v14h16V7h-4v2h2v2h-2v2h2v5z"],"unicode":"","glyph":"M520.6999999999999 1050L620.6999999999999 950H1050A50 50 0 0 0 1100 900V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H520.6999999999999zM900 300H700V450H800V550H700V650H800V750H700V850H579.3000000000001L479.3 950H200V250H1000V850H800V750H900V650H800V550H900V300z","horizAdvX":"1200"},"folders-fill":{"path":["M0 0h24v24H0z","M6 7V4a1 1 0 0 1 1-1h6.414l2 2H21a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3zm0 2H4v10h12v-2H6V9z"],"unicode":"","glyph":"M300 850V1000A50 50 0 0 0 350 1050H670.6999999999999L770.6999999999999 950H1050A50 50 0 0 0 1100 900V400A50 50 0 0 0 1050 350H900V200A50 50 0 0 0 850 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H300zM300 750H200V250H800V350H300V750z","horizAdvX":"1200"},"folders-line":{"path":["M0 0h24v24H0z","M6 7V4a1 1 0 0 1 1-1h6.414l2 2H21a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3zm0 2H4v10h12v-2H6V9zm2-4v10h12V7h-5.414l-2-2H8z"],"unicode":"","glyph":"M300 850V1000A50 50 0 0 0 350 1050H670.6999999999999L770.6999999999999 950H1050A50 50 0 0 0 1100 900V400A50 50 0 0 0 1050 350H900V200A50 50 0 0 0 850 150H150A50 50 0 0 0 100 200V800A50 50 0 0 0 150 850H300zM300 750H200V250H800V350H300V750zM400 950V450H1000V850H729.3000000000001L629.3000000000001 950H400z","horizAdvX":"1200"},"font-color":{"path":["M0 0h24v24H0z","M15.246 14H8.754l-1.6 4H5l6-15h2l6 15h-2.154l-1.6-4zm-.8-2L12 5.885 9.554 12h4.892zM3 20h18v2H3v-2z"],"unicode":"","glyph":"M762.3000000000001 500H437.7L357.7 300H250L550 1050H650L950 300H842.3L762.3000000000001 500zM722.3 600L600 905.75L477.7 600H722.3000000000001zM150 200H1050V100H150V200z","horizAdvX":"1200"},"font-size-2":{"path":["M0 0h24v24H0z","M10 6v15H8V6H2V4h14v2h-6zm8 8v7h-2v-7h-3v-2h8v2h-3z"],"unicode":"","glyph":"M500 900V150H400V900H100V1000H800V900H500zM900 500V150H800V500H650V600H1050V500H900z","horizAdvX":"1200"},"font-size":{"path":["M0 0h24v24H0z","M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M562.3000000000001 450H237.7L137.7 200H30L350 1000H450L770 200H662.3000000000001L562.3000000000001 450zM522.3 550L400 855.75L277.7 550H522.3000000000001zM1050 573.25V600H1150V200H1050V226.75A200 200 0 1 0 1050 573.25zM950 300A100 100 0 1 1 950 500A100 100 0 0 1 950 300z","horizAdvX":"1200"},"football-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm1.67 14h-3.34l-1.38 1.897.554 1.706A7.993 7.993 0 0 0 12 20c.871 0 1.71-.14 2.496-.397l.553-1.706L13.669 16zm-8.376-5.128l-1.292.937L4 12c0 1.73.549 3.331 1.482 4.64h1.91l1.323-1.82-1.028-3.17-2.393-.778zm13.412 0l-2.393.778-1.028 3.17 1.322 1.82h1.91A7.964 7.964 0 0 0 20 12l-.003-.191-1.291-.937zM14.29 4.333L13 5.273V7.79l2.694 1.957 2.239-.727.554-1.703a8.014 8.014 0 0 0-4.196-2.984zm-4.582 0a8.014 8.014 0 0 0-4.196 2.985l.554 1.702 2.239.727L11 7.79V5.273l-1.291-.94z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM683.5 400H516.5L447.5 305.1500000000001L475.2 219.8500000000001A399.65000000000003 399.65000000000003 0 0 1 600 200C643.5500000000001 200 685.5 207 724.8000000000001 219.8499999999999L752.45 305.1499999999999L683.45 400zM264.7000000000001 656.4L200.1 609.5500000000001L200 600C200 513.5 227.45 433.4500000000001 274.1 368H369.6L435.75 459L384.35 617.5L264.7 656.4zM935.3000000000002 656.4L815.6500000000001 617.5L764.2500000000001 459L830.3500000000001 368H925.8500000000003A398.20000000000005 398.20000000000005 0 0 1 1000 600L999.85 609.5500000000001L935.3 656.4zM714.5 983.35L650 936.35V810.5L784.6999999999999 712.65L896.65 749L924.35 834.1500000000001A400.69999999999993 400.69999999999993 0 0 1 714.55 983.35zM485.3999999999999 983.35A400.69999999999993 400.69999999999993 0 0 1 275.5999999999999 834.1L303.3 749L415.25 712.65L550 810.5V936.35L485.45 983.35z","horizAdvX":"1200"},"football-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm1.67 14h-3.34l-1.38 1.897.554 1.706A7.993 7.993 0 0 0 12 20c.871 0 1.71-.14 2.496-.397l.553-1.706L13.669 16zm-8.376-5.128l-1.292.937L4 12c0 1.73.549 3.331 1.482 4.64h1.91l1.323-1.82-1.028-3.17-2.393-.778zm13.412 0l-2.393.778-1.028 3.17 1.322 1.82h1.91A7.964 7.964 0 0 0 20 12l-.003-.19-1.291-.938zM12 9.536l-2.344 1.702.896 2.762h2.895l.896-2.762L12 9.536zm2.291-5.203L13 5.273V7.79l2.694 1.957 2.239-.727.554-1.703a8.014 8.014 0 0 0-4.196-2.984zm-4.583 0a8.014 8.014 0 0 0-4.195 2.985l.554 1.702 2.239.727L11 7.79V5.273l-1.292-.94z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM683.5 400H516.5L447.5 305.1500000000001L475.2 219.8500000000001A399.65000000000003 399.65000000000003 0 0 1 600 200C643.5500000000001 200 685.5 207 724.8000000000001 219.8499999999999L752.45 305.1499999999999L683.45 400zM264.7000000000001 656.4L200.1 609.5500000000001L200 600C200 513.5 227.45 433.4500000000001 274.1 368H369.6L435.75 459L384.35 617.5L264.7 656.4zM935.3000000000002 656.4L815.6500000000001 617.5L764.2500000000001 459L830.3500000000001 368H925.8500000000003A398.20000000000005 398.20000000000005 0 0 1 1000 600L999.85 609.5L935.3 656.4zM600 723.2L482.8 638.1L527.6 500H672.35L717.1500000000001 638.1L600 723.2zM714.5500000000001 983.35L650 936.35V810.5L784.6999999999999 712.65L896.65 749L924.35 834.1500000000001A400.69999999999993 400.69999999999993 0 0 1 714.55 983.35zM485.4 983.35A400.69999999999993 400.69999999999993 0 0 1 275.65 834.1L303.35 749L415.3000000000001 712.65L550 810.5V936.35L485.4 983.35z","horizAdvX":"1200"},"footprint-fill":{"path":["M0 0h24v24H0z","M4 18h5.5v1.25a2.75 2.75 0 1 1-5.5 0V18zM8 6.12c2 0 3 2.88 3 4.88 0 1-.5 2-1 3.5L9.5 16H4c0-1-.5-2.5-.5-5S5.498 6.12 8 6.12zm12.054 7.978l-.217 1.231a2.75 2.75 0 0 1-5.417-.955l.218-1.23 5.416.954zM18.178 1.705c2.464.434 4.018 3.124 3.584 5.586-.434 2.463-1.187 3.853-1.36 4.838l-5.417-.955-.232-1.564c-.232-1.564-.55-2.636-.377-3.62.347-1.97 1.832-4.632 3.802-4.285z"],"unicode":"","glyph":"M200 300H475V237.5A137.5 137.5 0 1 0 200 237.5V300zM400 894C500 894 550 750 550 650C550 600 525 550 500 475L475 400H200C200 450 175 525 175 650S274.9000000000001 894 400 894zM1002.7 495.1L991.8500000000003 433.5500000000001A137.5 137.5 0 0 0 721.0000000000002 481.3000000000001L731.9000000000002 542.8000000000001L1002.7 495.1zM908.9 1114.75C1032.1 1093.05 1109.8000000000002 958.55 1088.1 835.45C1066.3999999999999 712.3 1028.75 642.8 1020.1 593.55L749.2500000000001 641.3L737.6500000000001 719.5C726.0500000000002 797.6999999999999 710.1500000000001 851.3 718.8000000000001 900.5C736.1500000000001 999 810.4000000000001 1132.1 908.9 1114.75z","horizAdvX":"1200"},"footprint-line":{"path":["M0 0h24v24H0z","M4 18h5.5v1.25a2.75 2.75 0 1 1-5.5 0V18zm4.058-4l.045-.132C8.87 11.762 9 11.37 9 11c0-.75-.203-1.643-.528-2.273C8.23 8.257 8.06 8.12 8 8.12 6.72 8.12 5.5 9.484 5.5 11c0 .959.075 1.773.227 2.758l.038.242h2.293zM8 6.12c2 0 3 2.88 3 4.88 0 1-.5 2-1 3.5L9.5 16H4c0-1-.5-2.5-.5-5S5.498 6.12 8 6.12zm12.054 7.978l-.217 1.231a2.75 2.75 0 0 1-5.417-.955l.218-1.23 5.416.954zm-1.05-4.246c.165-.5.301-.895.303-.9.202-.658.361-1.303.485-2.008.263-1.492-.702-3.047-1.962-3.27-.059-.01-.25.095-.57.515-.43.565-.784 1.41-.915 2.147-.058.33-.049.405.27 2.263.045.256.082.486.116.717l.02.138 2.254.398zm-.826-8.147c2.464.434 4.018 3.124 3.584 5.586-.434 2.463-1.187 3.853-1.36 4.838l-5.417-.955-.232-1.564c-.232-1.564-.55-2.636-.377-3.62.347-1.97 1.832-4.632 3.802-4.285z"],"unicode":"","glyph":"M200 300H475V237.5A137.5 137.5 0 1 0 200 237.5V300zM402.9 500L405.15 506.6C443.5 611.9 450 631.5 450 650C450 687.5 439.85 732.1500000000001 423.6 763.65C411.5 787.1500000000001 403 794 400 794C336 794 275 725.8 275 650C275 602.0500000000001 278.75 561.35 286.35 512.1L288.25 500H402.9zM400 894C500 894 550 750 550 650C550 600 525 550 500 475L475 400H200C200 450 175 525 175 650S274.9000000000001 894 400 894zM1002.7 495.1L991.8500000000003 433.5500000000001A137.5 137.5 0 0 0 721.0000000000002 481.3000000000001L731.9000000000002 542.8000000000001L1002.7 495.1zM950.2 707.4000000000001C958.45 732.4000000000001 965.25 752.1500000000001 965.3500000000003 752.4000000000001C975.4500000000002 785.3000000000001 983.4 817.5500000000001 989.6000000000003 852.8000000000001C1002.7500000000002 927.4 954.5000000000002 1005.15 891.5000000000001 1016.3C888.5500000000001 1016.8 879.0000000000001 1011.55 863.0000000000001 990.55C841.5000000000001 962.3000000000002 823.8000000000002 920.05 817.2500000000001 883.2C814.3500000000001 866.7 814.8000000000002 862.95 830.7500000000001 770.0500000000001C833.0000000000002 757.25 834.8500000000001 745.75 836.5500000000001 734.2L837.5500000000001 727.3000000000001L950.2500000000002 707.4000000000001zM908.9 1114.75C1032.1 1093.0500000000002 1109.8000000000002 958.55 1088.1 835.45C1066.3999999999999 712.3000000000002 1028.75 642.8000000000001 1020.1 593.5500000000001L749.2500000000001 641.3000000000001L737.6500000000001 719.5000000000001C726.0500000000002 797.7 710.1500000000001 851.3000000000002 718.8000000000001 900.5000000000001C736.1500000000001 999.0000000000002 810.4000000000001 1132.1000000000001 908.9 1114.7500000000002z","horizAdvX":"1200"},"forbid-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.891-13.477a6.04 6.04 0 0 0-1.414-1.414l-8.368 8.368a6.04 6.04 0 0 0 1.414 1.414l8.368-8.368z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM844.55 773.85A301.99999999999994 301.99999999999994 0 0 1 773.8499999999999 844.55L355.45 426.15A301.99999999999994 301.99999999999994 0 0 1 426.1499999999999 355.45L844.55 773.8499999999999z","horizAdvX":"1200"},"forbid-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm4.891-11.477l-8.368 8.368a6.04 6.04 0 0 1-1.414-1.414l8.368-8.368a6.04 6.04 0 0 1 1.414 1.414z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM844.55 773.85L426.1499999999999 355.4500000000001A301.99999999999994 301.99999999999994 0 0 0 355.45 426.1500000000001L773.8499999999999 844.5500000000001A301.99999999999994 301.99999999999994 0 0 0 844.55 773.8500000000001z","horizAdvX":"1200"},"forbid-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM8.523 7.109A6.04 6.04 0 0 0 7.11 8.523l8.368 8.368a6.04 6.04 0 0 0 1.414-1.414L8.523 7.109z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM426.15 844.55A301.99999999999994 301.99999999999994 0 0 1 355.5 773.85L773.9000000000001 355.4500000000001A301.99999999999994 301.99999999999994 0 0 1 844.6000000000001 426.1500000000001L426.15 844.55z","horizAdvX":"1200"},"forbid-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM8.523 7.109l8.368 8.368a6.04 6.04 0 0 1-1.414 1.414L7.109 8.523A6.04 6.04 0 0 1 8.523 7.11z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM426.15 844.55L844.55 426.15A301.99999999999994 301.99999999999994 0 0 0 773.8499999999999 355.45L355.45 773.85A301.99999999999994 301.99999999999994 0 0 0 426.15 844.5z","horizAdvX":"1200"},"format-clear":{"path":["M0 0h24v24H0z","M12.651 14.065L11.605 20H9.574l1.35-7.661-7.41-7.41L4.93 3.515 20.485 19.07l-1.414 1.414-6.42-6.42zm-.878-6.535l.27-1.53h-1.8l-2-2H20v2h-5.927L13.5 9.257 11.773 7.53z"],"unicode":"","glyph":"M632.55 496.75L580.25 200H478.7L546.1999999999999 583.05L175.7 953.55L246.5 1024.25L1024.25 246.5L953.55 175.8L632.55 496.8zM588.65 823.5L602.15 900H512.15L412.1499999999999 1000H1000V900H703.65L675 737.1500000000001L588.65 823.5z","horizAdvX":"1200"},"fridge-fill":{"path":["M0 0H24V24H0z","M20 12v10c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V12h16zM9 14H7v5h2v-5zM19 1c.552 0 1 .448 1 1v8H4V2c0-.552.448-1 1-1h14zM9 4H7v4h2V4z"],"unicode":"","glyph":"M1000 600V100C1000 72.4000000000001 977.6 50 950 50H250C222.4 50 200 72.4000000000001 200 100V600H1000zM450 500H350V250H450V500zM950 1150C977.6 1150 1000 1127.6 1000 1100V700H200V1100C200 1127.6 222.4 1150 250 1150H950zM450 1000H350V800H450V1000z","horizAdvX":"1200"},"fridge-line":{"path":["M0 0H24V24H0z","M19 1c.552 0 1 .448 1 1v20c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V2c0-.552.448-1 1-1h14zm-1 11H6v9h12v-9zm-8 2v4H8v-4h2zm8-11H6v7h12V3zm-8 2v3H8V5h2z"],"unicode":"","glyph":"M950 1150C977.6 1150 1000 1127.6 1000 1100V100C1000 72.4000000000001 977.6 50 950 50H250C222.4 50 200 72.4000000000001 200 100V1100C200 1127.6 222.4 1150 250 1150H950zM900 600H300V150H900V600zM500 500V300H400V500H500zM900 1050H300V700H900V1050zM500 950V800H400V950H500z","horizAdvX":"1200"},"fullscreen-exit-fill":{"path":["M0 0h24v24H0z","M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"],"unicode":"","glyph":"M900 850H1100V750H800V1050H900V850zM400 750H100V850H300V1050H400V750zM900 350V150H800V450H1100V350H900zM400 450V150H300V350H100V450H400z","horizAdvX":"1200"},"fullscreen-exit-line":{"path":["M0 0h24v24H0z","M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"],"unicode":"","glyph":"M900 850H1100V750H800V1050H900V850zM400 750H100V850H300V1050H400V750zM900 350V150H800V450H1100V350H900zM400 450V150H300V350H100V450H400z","horizAdvX":"1200"},"fullscreen-fill":{"path":["M0 0h24v24H0z","M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"],"unicode":"","glyph":"M800 1050H1100V750H1000V950H800V1050zM100 1050H400V950H200V750H100V1050zM1000 250V450H1100V150H800V250H1000zM200 250H400V150H100V450H200V250z","horizAdvX":"1200"},"fullscreen-line":{"path":["M0 0h24v24H0z","M20 3h2v6h-2V5h-4V3h4zM4 3h4v2H4v4H2V3h2zm16 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"],"unicode":"","glyph":"M1000 1050H1100V750H1000V950H800V1050H1000zM200 1050H400V950H200V750H100V1050H200zM1000 250V450H1100V150H800V250H1000zM200 250H400V150H100V450H200V250z","horizAdvX":"1200"},"function-fill":{"path":["M0 0h24v24H0z","M3 3h8v8H3V3zm0 10h8v8H3v-8zM13 3h8v8h-8V3zm0 10h8v8h-8v-8z"],"unicode":"","glyph":"M150 1050H550V650H150V1050zM150 550H550V150H150V550zM650 1050H1050V650H650V1050zM650 550H1050V150H650V550z","horizAdvX":"1200"},"function-line":{"path":["M0 0h24v24H0z","M3 3h8v8H3V3zm0 10h8v8H3v-8zM13 3h8v8h-8V3zm0 10h8v8h-8v-8zm2-8v4h4V5h-4zm0 10v4h4v-4h-4zM5 5v4h4V5H5zm0 10v4h4v-4H5z"],"unicode":"","glyph":"M150 1050H550V650H150V1050zM150 550H550V150H150V550zM650 1050H1050V650H650V1050zM650 550H1050V150H650V550zM750 950V750H950V950H750zM750 450V250H950V450H750zM250 950V750H450V950H250zM250 450V250H450V450H250z","horizAdvX":"1200"},"functions":{"path":["M0 0h24v24H0z","M5 18l7.68-6L5 6V4h14v2H8.263L16 12l-7.737 6H19v2H5v-2z"],"unicode":"","glyph":"M250 300L634 600L250 900V1000H950V900H413.15L800 600L413.15 300H950V200H250V300z","horizAdvX":"1200"},"funds-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.793 6.793l-2.45 2.45-2.121-2.122-4.243 4.243 1.414 1.414 2.829-2.828 2.121 2.121 3.864-3.864L18 13V8h-5l1.793 1.793z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM739.65 710.35L617.15 587.85L511.1 693.95L298.95 481.8000000000001L369.6499999999999 411.1L511.1 552.5L617.15 446.4500000000001L810.35 639.65L900 550V800H650L739.65 710.35z","horizAdvX":"1200"},"funds-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.793 6.793L13 8h5v5l-1.793-1.793-3.864 3.864-2.121-2.121-2.829 2.828-1.414-1.414 4.243-4.243 2.121 2.122 2.45-2.45z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM739.65 710.35L650 800H900V550L810.35 639.65L617.15 446.45L511.1 552.5L369.6499999999999 411.1L298.95 481.8L511.1 693.95L617.15 587.85L739.65 710.35z","horizAdvX":"1200"},"funds-fill":{"path":["M0 0h24v24H0z","M3.897 17.86l3.91-3.91 2.829 2.828 4.571-4.57L17 14V9h-5l1.793 1.793-3.157 3.157-2.828-2.829-4.946 4.946A9.965 9.965 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.987 9.987 0 0 1-8.103-4.14z"],"unicode":"","glyph":"M194.85 307L390.35 502.5L531.8000000000001 361.1L760.35 589.6000000000001L850 500V750H600L689.65 660.35L531.8 502.5L390.4 643.95L143.1 396.65A498.24999999999994 498.24999999999994 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A499.3500000000001 499.3500000000001 0 0 0 194.85 307z","horizAdvX":"1200"},"funds-line":{"path":["M0 0h24v24H0z","M4.406 14.523l3.402-3.402 2.828 2.829 3.157-3.157L12 9h5v5l-1.793-1.793-4.571 4.571-2.828-2.828-2.475 2.474a8 8 0 1 0-.927-1.9zm-1.538 1.558l-.01-.01.004-.004A9.965 9.965 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10c-4.07 0-7.57-2.43-9.132-5.919z"],"unicode":"","glyph":"M220.3 473.85L390.4 643.95L531.8 502.5L689.65 660.35L600 750H850V500L760.35 589.65L531.8000000000001 361.1L390.4000000000001 502.5L266.6500000000001 378.8000000000001A400 400 0 1 1 220.3000000000001 473.8000000000001zM143.4 395.9500000000001L142.9 396.4500000000001L143.1 396.6500000000002A498.24999999999994 498.24999999999994 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100C396.5 100 221.5 221.5 143.4 395.9500000000001z","horizAdvX":"1200"},"gallery-fill":{"path":["M0 0h24v24H0z","M17.409 19c-.776-2.399-2.277-3.885-4.266-5.602A10.954 10.954 0 0 1 20 11V3h1.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2v4H4v7c5.22 0 9.662 2.462 11.313 7h2.096zM18 1v4h-8V3h6V1h2zm-1.5 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M870.4499999999999 250C831.65 369.9500000000001 756.5999999999999 444.25 657.15 530.1A547.7 547.7 0 0 0 1000 650V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400V950H200V600C460.9999999999999 600 683.1 476.9 765.65 250H870.4499999999999zM900 1150V950H500V1050H800V1150H900zM825 700A75 75 0 1 0 825 850A75 75 0 0 0 825 700z","horizAdvX":"1200"},"gallery-line":{"path":["M0 0h24v24H0z","M20 13c-1.678 0-3.249.46-4.593 1.259A14.984 14.984 0 0 1 18.147 19H20v-6zm-3.996 6C14.044 14.302 9.408 11 4 11v8h12.004zM4 9c3.83 0 7.323 1.435 9.974 3.796A10.949 10.949 0 0 1 20 11V3h1.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2v4H4v4zm14-8v4h-8V3h6V1h2zm-1.5 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M1000 550C916.1 550 837.5500000000001 527 770.35 487.05A749.2 749.2 0 0 0 907.35 250H1000V550zM800.2 250C702.2 484.9 470.4 650 200 650V250H800.1999999999999zM200 750C391.5 750 566.15 678.25 698.7 560.2A547.4499999999999 547.4499999999999 0 0 0 1000 650V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400V950H200V750zM900 1150V950H500V1050H800V1150H900zM825 700A75 75 0 1 0 825 850A75 75 0 0 0 825 700z","horizAdvX":"1200"},"gallery-upload-fill":{"path":["M0 0h24v24H0z","M8 1v2h8V1h2v2h3.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2zm4 7l-4 4h3v4h2v-4h3l-4-4z"],"unicode":"","glyph":"M400 1150V1050H800V1150H900V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400zM600 800L400 600H550V400H650V600H800L600 800z","horizAdvX":"1200"},"gallery-upload-line":{"path":["M0 0h24v24H0z","M8 1v4H4v14h16V3h1.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6V1h2zm4 7l4 4h-3v4h-2v-4H8l4-4zm6-7v4h-8V3h6V1h2z"],"unicode":"","glyph":"M400 1150V950H200V250H1000V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300V1150H400zM600 800L800 600H650V400H550V600H400L600 800zM900 1150V950H500V1050H800V1150H900z","horizAdvX":"1200"},"game-fill":{"path":["M0 0h24v24H0z","M12 2a9.98 9.98 0 0 1 7.743 3.671L13.414 12l6.329 6.329A9.98 9.98 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 3a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100A499 499 0 0 0 987.15 916.45L670.6999999999999 600L987.15 283.55A499 499 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 950A75 75 0 1 1 600 800A75 75 0 0 1 600 950z","horizAdvX":"1200"},"game-line":{"path":["M0 0h24v24H0z","M12 2a9.98 9.98 0 0 1 7.743 3.671L13.414 12l6.329 6.329A9.98 9.98 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 2a8 8 0 1 0 4.697 14.477l.208-.157-6.32-6.32 6.32-6.321-.208-.156a7.964 7.964 0 0 0-4.394-1.517L12 4zm0 1a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100A499 499 0 0 0 987.15 916.45L670.6999999999999 600L987.15 283.55A499 499 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 834.8499999999999 276.15L845.2499999999999 284L529.2499999999999 600L845.2499999999999 916.05L834.8499999999999 923.85A398.20000000000005 398.20000000000005 0 0 1 615.15 999.7L600 1000zM600 950A75 75 0 1 0 600 800A75 75 0 0 0 600 950z","horizAdvX":"1200"},"gamepad-fill":{"path":["M0 0h24v24H0z","M17 4a6 6 0 0 1 6 6v4a6 6 0 0 1-6 6H7a6 6 0 0 1-6-6v-4a6 6 0 0 1 6-6h10zm-7 5H8v2H6v2h1.999L8 15h2l-.001-2H12v-2h-2V9zm8 4h-2v2h2v-2zm-2-4h-2v2h2V9z"],"unicode":"","glyph":"M850 1000A300 300 0 0 0 1150 700V500A300 300 0 0 0 850 200H350A300 300 0 0 0 50 500V700A300 300 0 0 0 350 1000H850zM500 750H400V650H300V550H399.9500000000001L400 450H500L499.95 550H600V650H500V750zM900 550H800V450H900V550zM800 750H700V650H800V750z","horizAdvX":"1200"},"gamepad-line":{"path":["M0 0h24v24H0z","M17 4a6 6 0 0 1 6 6v4a6 6 0 0 1-6 6H7a6 6 0 0 1-6-6v-4a6 6 0 0 1 6-6h10zm0 2H7a4 4 0 0 0-3.995 3.8L3 10v4a4 4 0 0 0 3.8 3.995L7 18h10a4 4 0 0 0 3.995-3.8L21 14v-4a4 4 0 0 0-3.8-3.995L17 6zm-7 3v2h2v2H9.999L10 15H8l-.001-2H6v-2h2V9h2zm8 4v2h-2v-2h2zm-2-4v2h-2V9h2z"],"unicode":"","glyph":"M850 1000A300 300 0 0 0 1150 700V500A300 300 0 0 0 850 200H350A300 300 0 0 0 50 500V700A300 300 0 0 0 350 1000H850zM850 900H350A200 200 0 0 1 150.25 710L150 700V500A200 200 0 0 1 340 300.25L350 300H850A200 200 0 0 1 1049.75 490L1050 500V700A200 200 0 0 1 860 899.75L850 900zM500 750V650H600V550H499.95L500 450H400L399.95 550H300V650H400V750H500zM900 550V450H800V550H900zM800 750V650H700V750H800z","horizAdvX":"1200"},"gas-station-fill":{"path":["M0 0h24v24H0z","M3 19V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5h1v2H2v-2h1zM5 5v6h7V5H5z"],"unicode":"","glyph":"M150 250V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250H750V150H100V250H150zM250 950V650H600V950H250z","horizAdvX":"1200"},"gas-station-line":{"path":["M0 0h24v24H0z","M14 19h1v2H2v-2h1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v8h2a2 2 0 0 1 2 2v4a1 1 0 0 0 2 0v-7h-2a1 1 0 0 1-1-1V6.414l-1.657-1.657 1.414-1.414 4.95 4.95A.997.997 0 0 1 22 9v9a3 3 0 0 1-6 0v-4h-2v5zm-9 0h7v-6H5v6zM5 5v6h7V5H5z"],"unicode":"","glyph":"M700 250H750V150H100V250H150V1000A50 50 0 0 0 200 1050H650A50 50 0 0 0 700 1000V600H800A100 100 0 0 0 900 500V300A50 50 0 0 1 1000 300V650H900A50 50 0 0 0 850 700V879.3L767.15 962.15L837.85 1032.85L1085.3500000000001 785.35A49.85 49.85 0 0 0 1100 750V300A150 150 0 0 0 800 300V500H700V250zM250 250H600V550H250V250zM250 950V650H600V950H250z","horizAdvX":"1200"},"gatsby-fill":{"path":["M0 0h24v24H0z","M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM6.429 17.571c-1.5-1.5-2.286-3.5-2.286-5.428l7.786 7.714c-2-.071-4-.786-5.5-2.286zm7.285 2.072l-9.357-9.357c.786-3.5 3.929-6.143 7.643-6.143 2.643 0 4.929 1.286 6.357 3.214l-1.071.929C16.07 6.643 14.143 5.57 12 5.57c-2.786 0-5.143 1.786-6.071 4.286l8.214 8.214c2.071-.714 3.643-2.5 4.143-4.642h-3.429V12h5c0 3.714-2.643 6.857-6.143 7.643z"],"unicode":"","glyph":"M600 1100C325 1100 100 875 100 600S325 100 600 100S1100 325 1100 600S875 1100 600 1100zM321.45 321.45C246.45 396.45 207.15 496.4499999999999 207.15 592.8499999999999L596.45 207.1500000000001C496.45 210.7000000000002 396.45 246.4500000000001 321.45 321.4500000000001zM685.7 217.8499999999999L217.8500000000001 685.6999999999999C257.1500000000001 860.6999999999999 414.3000000000001 992.85 600 992.85C732.1500000000001 992.85 846.45 928.55 917.85 832.1499999999999L864.2999999999998 785.6999999999999C803.5 867.85 707.1500000000001 921.5 600 921.5C460.7 921.5 342.85 832.2 296.45 707.2L707.1500000000001 296.5C810.7000000000002 332.2 889.3000000000001 421.5 914.3 528.5999999999999H742.85V600H992.85C992.85 414.3 860.6999999999999 257.1500000000001 685.6999999999999 217.8499999999999z","horizAdvX":"1200"},"gatsby-line":{"path":["M0 0h24v24H0z","M11.751 21.997c-5.221-.128-9.45-4.257-9.736-9.438l-.012-.313 9.748 9.751zM12 2a9.988 9.988 0 0 1 8.193 4.265l-1.638 1.148A8.003 8.003 0 0 0 4.534 9.12L14.88 19.466A8.018 8.018 0 0 0 19.748 14H15.5v-2H22c0 4.726-3.279 8.686-7.685 9.73L2.269 9.686C3.314 5.28 7.274 2 12 2z"],"unicode":"","glyph":"M587.55 100.1500000000001C326.5 106.55 115.05 312.9999999999999 100.7499999999999 572.0500000000001L100.1499999999999 587.7L587.5499999999998 100.1500000000001zM600 1100A499.4 499.4 0 0 0 1009.6499999999997 886.75L927.75 829.35A400.15000000000003 400.15000000000003 0 0 1 226.7 744L744 226.7A400.90000000000003 400.90000000000003 0 0 1 987.4 500H775V600H1100C1100 363.7000000000001 936.05 165.7000000000001 715.7500000000001 113.5L113.45 715.7C165.7 936 363.7 1100 600 1100z","horizAdvX":"1200"},"genderless-fill":{"path":["M0 0h24v24H0z","M11 7.066V1h2v6.066A7.501 7.501 0 0 1 12 22a7.5 7.5 0 0 1-1-14.934z"],"unicode":"","glyph":"M550 846.7V1150H650V846.7A375.04999999999995 375.04999999999995 0 0 0 600 100A375 375 0 0 0 550 846.7z","horizAdvX":"1200"},"genderless-line":{"path":["M0 0h24v24H0z","M13 7.066A7.501 7.501 0 0 1 12 22a7.5 7.5 0 0 1-1-14.934V1h2v6.066zM12 20a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M650 846.7A375.04999999999995 375.04999999999995 0 0 0 600 100A375 375 0 0 0 550 846.7V1150H650V846.7zM600 200A275 275 0 1 1 600 750A275 275 0 0 1 600 200z","horizAdvX":"1200"},"ghost-2-fill":{"path":["M0 0h24v24H0z","M12 2c3.5 0 6 3 7 6 3 1 4 3.73 4 6l-2.775.793a1 1 0 0 0-.725.961v1.496A1.75 1.75 0 0 1 17.75 19h-.596a2 2 0 0 0-1.668.896C14.558 21.3 13.396 22 12 22c-1.396 0-2.558-.701-3.486-2.104A2 2 0 0 0 6.846 19H6.25a1.75 1.75 0 0 1-1.75-1.75v-1.496a1 1 0 0 0-.725-.961L1 14c0-2.266 1-5 4-6 1-3 3.5-6 7-6zm0 10c-.828 0-1.5 1.12-1.5 2.5S11.172 17 12 17s1.5-1.12 1.5-2.5S12.828 12 12 12zM9.5 8a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100C775 1100 900 950 950 800C1100 750 1150 613.5 1150 500L1011.2500000000002 460.35A50 50 0 0 1 975 412.3000000000001V337.5A87.5 87.5 0 0 0 887.5 250H857.7A100 100 0 0 1 774.3000000000001 205.1999999999999C727.9 135 669.8000000000001 100 600 100C530.1999999999999 100 472.1 135.05 425.7 205.1999999999999A100 100 0 0 1 342.3 250H312.5A87.5 87.5 0 0 0 225 337.5V412.3000000000001A50 50 0 0 1 188.75 460.35L50 500C50 613.3 100 750 250 800C300 950 425 1100 600 1100zM600 600C558.6 600 525 544 525 475S558.6 350 600 350S675 406 675 475S641.4 600 600 600zM475 800A75 75 0 1 1 475 650A75 75 0 0 1 475 800zM725 800A75 75 0 1 1 725 650A75 75 0 0 1 725 800z","horizAdvX":"1200"},"ghost-2-line":{"path":["M0 0h24v24H0z","M12 2c3.5 0 6 3 7 6 3 1 4 3.73 4 6l-2.775.793a1 1 0 0 0-.725.961v1.496A1.75 1.75 0 0 1 17.75 19h-.596a2 2 0 0 0-1.668.896C14.558 21.3 13.396 22 12 22c-1.396 0-2.558-.701-3.486-2.104A2 2 0 0 0 6.846 19H6.25a1.75 1.75 0 0 1-1.75-1.75v-1.496a1 1 0 0 0-.725-.961L1 14c0-2.266 1-5 4-6 1-3 3.5-6 7-6zm0 2C9.89 4 7.935 5.788 6.989 8.371l-.092.261-.316.95-.949.315c-1.255.419-2.067 1.341-2.424 2.56l-.023.086 1.14.327a3 3 0 0 1 2.17 2.703l.005.181V17h.346a4 4 0 0 1 3.2 1.6l.136.192C10.758 19.663 11.316 20 12 20c.638 0 1.167-.293 1.703-1.04l.115-.168a4 4 0 0 1 3.1-1.785l.236-.007h.346v-1.246a3 3 0 0 1 2.003-2.83l.173-.054 1.139-.327-.023-.087c-.337-1.151-1.08-2.037-2.22-2.484l-.204-.075-.95-.316-.315-.949C16.195 5.91 14.18 4 12 4zm0 8c.828 0 1.5 1.12 1.5 2.5S12.828 17 12 17s-1.5-1.12-1.5-2.5.672-2.5 1.5-2.5zM9.5 8a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100C775 1100 900 950 950 800C1100 750 1150 613.5 1150 500L1011.2500000000002 460.35A50 50 0 0 1 975 412.3000000000001V337.5A87.5 87.5 0 0 0 887.5 250H857.7A100 100 0 0 1 774.3000000000001 205.1999999999999C727.9 135 669.8000000000001 100 600 100C530.1999999999999 100 472.1 135.05 425.7 205.1999999999999A100 100 0 0 1 342.3 250H312.5A87.5 87.5 0 0 0 225 337.5V412.3000000000001A50 50 0 0 1 188.75 460.35L50 500C50 613.3 100 750 250 800C300 950 425 1100 600 1100zM600 1000C494.5 1000 396.75 910.6 349.45 781.45L344.85 768.4000000000001L329.05 720.9000000000001L281.6 705.1500000000001C218.85 684.2 178.25 638.1000000000001 160.4 577.1500000000001L159.25 572.85L216.25 556.5A150 150 0 0 0 324.75 421.35L325 412.3000000000001V350H342.3A200 200 0 0 0 502.3 269.9999999999999L509.0999999999999 260.3999999999999C537.9 216.85 565.8000000000001 200 600 200C631.9 200 658.35 214.65 685.15 252L690.9 260.3999999999999A200 200 0 0 0 845.9 349.65L857.7 350H875V412.3000000000001A150 150 0 0 0 975.15 553.8000000000001L983.8 556.5L1040.75 572.85L1039.6 577.2C1022.7499999999998 634.75 985.5999999999998 679.05 928.6 701.4000000000001L918.4 705.15L870.9 720.95L855.1499999999999 768.4000000000001C809.75 904.5 709 1000 600 1000zM600 600C641.4 600 675 544 675 475S641.4 350 600 350S525 406 525 475S558.6 600 600 600zM475 800A75 75 0 1 0 475 650A75 75 0 0 0 475 800zM725 800A75 75 0 1 0 725 650A75 75 0 0 0 725 800z","horizAdvX":"1200"},"ghost-fill":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm0 10c-1.105 0-2 1.12-2 2.5s.895 2.5 2 2.5 2-1.12 2-2.5-.895-2.5-2-2.5zM9.5 8a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM600 600C544.75 600 500 544 500 475S544.75 350 600 350S700 406 700 475S655.25 600 600 600zM475 800A75 75 0 1 1 475 650A75 75 0 0 1 475 800zM725 800A75 75 0 1 1 725 650A75 75 0 0 1 725 800z","horizAdvX":"1200"},"ghost-line":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm0 2a7 7 0 0 0-6.996 6.76L5 11v7.446l.002.138a1.5 1.5 0 0 0 2.645.88l.088-.116a2 2 0 0 1 3.393.142.999.999 0 0 0 1.74.003 2 2 0 0 1 3.296-.278l.097.13a1.5 1.5 0 0 0 2.733-.701L19 18.5V11a7 7 0 0 0-7-7zm0 8c1.105 0 2 1.12 2 2.5s-.895 2.5-2 2.5-2-1.12-2-2.5.895-2.5 2-2.5zM9.5 8a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM600 1000A350 350 0 0 1 250.2 662L250 650V277.7000000000001L250.1 270.8000000000001A75 75 0 0 1 382.35 226.8000000000001L386.75 232.6A100 100 0 0 0 556.4 225.5000000000001A49.95 49.95 0 0 1 643.4 225.35A100 100 0 0 0 808.2 239.25L813.0500000000002 232.75A75 75 0 0 1 949.7000000000002 267.8000000000001L950 275V650A350 350 0 0 1 600 1000zM600 600C655.25 600 700 544 700 475S655.25 350 600 350S500 406 500 475S544.75 600 600 600zM475 800A75 75 0 1 0 475 650A75 75 0 0 0 475 800zM725 800A75 75 0 1 0 725 650A75 75 0 0 0 725 800z","horizAdvX":"1200"},"ghost-smile-fill":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm4 11h-2a2 2 0 0 1-3.995.15L10 13H8l.005.2a4 4 0 0 0 7.99 0L16 13zm-4-6a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM800 550H700A100 100 0 0 0 500.2499999999999 542.5L500 550H400L400.2500000000001 540A200 200 0 0 1 799.75 540L800 550zM600 850A100 100 0 1 1 600 650A100 100 0 0 1 600 850z","horizAdvX":"1200"},"ghost-smile-line":{"path":["M0 0h24v24H0z","M12 2a9 9 0 0 1 9 9v7.5a3.5 3.5 0 0 1-6.39 1.976 2.999 2.999 0 0 1-5.223 0 3.5 3.5 0 0 1-6.382-1.783L3 18.499V11a9 9 0 0 1 9-9zm0 2a7 7 0 0 0-6.996 6.76L5 11v7.446l.002.138a1.5 1.5 0 0 0 2.645.88l.088-.116a2 2 0 0 1 3.393.142.999.999 0 0 0 1.74.003 2 2 0 0 1 3.296-.278l.097.13a1.5 1.5 0 0 0 2.733-.701L19 18.5V11a7 7 0 0 0-7-7zm4 9a4 4 0 0 1-7.995.2L8 13h2a2 2 0 1 0 4 0h2zm-4-6a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 1100A450 450 0 0 0 1050 650V275A175 175 0 0 0 730.5 176.2000000000001A149.95000000000002 149.95000000000002 0 0 0 469.35 176.2000000000001A175 175 0 0 0 150.25 265.3500000000002L150 275.0500000000001V650A450 450 0 0 0 600 1100zM600 1000A350 350 0 0 1 250.2 662L250 650V277.7000000000001L250.1 270.8000000000001A75 75 0 0 1 382.35 226.8000000000001L386.75 232.6A100 100 0 0 0 556.4 225.5000000000001A49.95 49.95 0 0 1 643.4 225.35A100 100 0 0 0 808.2 239.25L813.0500000000002 232.75A75 75 0 0 1 949.7000000000002 267.8000000000001L950 275V650A350 350 0 0 1 600 1000zM800 550A200 200 0 0 0 400.25 540L400 550H500A100 100 0 1 1 700 550H800zM600 850A100 100 0 1 0 600 650A100 100 0 0 0 600 850z","horizAdvX":"1200"},"gift-2-fill":{"path":["M0 0h24v24H0z","M20 13v7a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-7h16zM14.5 2a3.5 3.5 0 0 1 3.163 5.001L21 7a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1l3.337.001a3.5 3.5 0 0 1 5.664-3.95A3.48 3.48 0 0 1 14.5 2zm-5 2a1.5 1.5 0 0 0-.144 2.993L9.5 7H11V5.5a1.5 1.5 0 0 0-1.356-1.493L9.5 4zm5 0l-.144.007a1.5 1.5 0 0 0-1.35 1.349L13 5.5V7h1.5l.144-.007a1.5 1.5 0 0 0 0-2.986L14.5 4z"],"unicode":"","glyph":"M1000 550V200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V550H1000zM725 1100A175 175 0 0 0 883.15 849.95L1050 850A50 50 0 0 0 1100 800V650A50 50 0 0 0 1050 600H150A50 50 0 0 0 100 650V800A50 50 0 0 0 150 850L316.85 849.95A175 175 0 0 0 600.05 1047.45A174 174 0 0 0 725 1100zM475 1000A75 75 0 0 1 467.8 850.3499999999999L475 850H550V925A75 75 0 0 1 482.2 999.65L475 1000zM725 1000L717.8 999.65A75 75 0 0 1 650.3 932.2L650 925V850H725L732.2 850.3499999999999A75 75 0 0 1 732.2 999.65L725 1000z","horizAdvX":"1200"},"gift-2-line":{"path":["M0 0h24v24H0z","M14.5 2a3.5 3.5 0 0 1 3.163 5.001L21 7a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-1v8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1l3.337.001a3.5 3.5 0 0 1 5.664-3.95A3.48 3.48 0 0 1 14.5 2zM18 13H6v7h12v-7zm2-4H4v2h16V9zM9.5 4a1.5 1.5 0 0 0-.144 2.993L9.5 7H11V5.5a1.5 1.5 0 0 0-1.356-1.493L9.5 4zm5 0l-.144.007a1.5 1.5 0 0 0-1.35 1.349L13 5.5V7h1.5l.144-.007a1.5 1.5 0 0 0 0-2.986L14.5 4z"],"unicode":"","glyph":"M725 1100A175 175 0 0 0 883.15 849.95L1050 850A50 50 0 0 0 1100 800V600A50 50 0 0 0 1050 550H1000V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V550H150A50 50 0 0 0 100 600V800A50 50 0 0 0 150 850L316.85 849.95A175 175 0 0 0 600.05 1047.45A174 174 0 0 0 725 1100zM900 550H300V200H900V550zM1000 750H200V650H1000V750zM475 1000A75 75 0 0 1 467.8 850.3499999999999L475 850H550V925A75 75 0 0 1 482.2 999.65L475 1000zM725 1000L717.8 999.65A75 75 0 0 1 650.3 932.2L650 925V850H725L732.2 850.3499999999999A75 75 0 0 1 732.2 999.65L725 1000z","horizAdvX":"1200"},"gift-fill":{"path":["M0 0h24v24H0z","M15 2a4 4 0 0 1 3.464 6.001L23 8v2h-2v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V10H1V8l4.536.001A4 4 0 0 1 12 3.355 3.983 3.983 0 0 1 15 2zm-2 8h-2v10h2V10zM9 4a2 2 0 0 0-.15 3.995L9 8h2V6a2 2 0 0 0-1.697-1.977l-.154-.018L9 4zm6 0a2 2 0 0 0-1.995 1.85L13 6v2h2a2 2 0 0 0 1.995-1.85L17 6a2 2 0 0 0-2-2z"],"unicode":"","glyph":"M750 1100A200 200 0 0 0 923.2 799.9499999999999L1150 800V700H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V700H50V800L276.8 799.95A200 200 0 0 0 600 1032.25A199.14999999999998 199.14999999999998 0 0 0 750 1100zM650 700H550V200H650V700zM450 1000A100 100 0 0 1 442.5 800.25L450 800H550V900A100 100 0 0 1 465.15 998.85L457.45 999.75L450 1000zM750 1000A100 100 0 0 1 650.25 907.5L650 900V800H750A100 100 0 0 1 849.75 892.5L850 900A100 100 0 0 1 750 1000z","horizAdvX":"1200"},"gift-line":{"path":["M0 0h24v24H0z","M15 2a4 4 0 0 1 3.464 6.001L23 8v2h-2v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V10H1V8l4.536.001A4 4 0 0 1 12 3.355 3.983 3.983 0 0 1 15 2zm-4 8H5v9h6v-9zm8 0h-6v9h6v-9zM9 4a2 2 0 0 0-.15 3.995L9 8h2V6a2 2 0 0 0-1.697-1.977l-.154-.018L9 4zm6 0a2 2 0 0 0-1.995 1.85L13 6v2h2a2 2 0 0 0 1.995-1.85L17 6a2 2 0 0 0-2-2z"],"unicode":"","glyph":"M750 1100A200 200 0 0 0 923.2 799.9499999999999L1150 800V700H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V700H50V800L276.8 799.95A200 200 0 0 0 600 1032.25A199.14999999999998 199.14999999999998 0 0 0 750 1100zM550 700H250V250H550V700zM950 700H650V250H950V700zM450 1000A100 100 0 0 1 442.5 800.25L450 800H550V900A100 100 0 0 1 465.15 998.85L457.45 999.75L450 1000zM750 1000A100 100 0 0 1 650.25 907.5L650 900V800H750A100 100 0 0 1 849.75 892.5L850 900A100 100 0 0 1 750 1000z","horizAdvX":"1200"},"git-branch-fill":{"path":["M0 0h24v24H0z","M7.105 15.21A3.001 3.001 0 1 1 5 15.17V8.83a3.001 3.001 0 1 1 2 0V12c.836-.628 1.874-1 3-1h4a3.001 3.001 0 0 0 2.895-2.21 3.001 3.001 0 1 1 2.032.064A5.001 5.001 0 0 1 14 13h-4a3.001 3.001 0 0 0-2.895 2.21z"],"unicode":"","glyph":"M355.25 439.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V600C391.8 631.4 443.7000000000001 650 500 650H700A150.04999999999998 150.04999999999998 0 0 1 844.75 760.5A150.04999999999998 150.04999999999998 0 1 0 946.35 757.3000000000001A250.05000000000004 250.05000000000004 0 0 0 700 550H500A150.04999999999998 150.04999999999998 0 0 1 355.25 439.5z","horizAdvX":"1200"},"git-branch-line":{"path":["M0 0h24v24H0z","M7.105 15.21A3.001 3.001 0 1 1 5 15.17V8.83a3.001 3.001 0 1 1 2 0V12c.836-.628 1.874-1 3-1h4a3.001 3.001 0 0 0 2.895-2.21 3.001 3.001 0 1 1 2.032.064A5.001 5.001 0 0 1 14 13h-4a3.001 3.001 0 0 0-2.895 2.21zM6 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2zM6 5a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm12 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M355.25 439.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V600C391.8 631.4 443.7000000000001 650 500 650H700A150.04999999999998 150.04999999999998 0 0 1 844.75 760.5A150.04999999999998 150.04999999999998 0 1 0 946.35 757.3000000000001A250.05000000000004 250.05000000000004 0 0 0 700 550H500A150.04999999999998 150.04999999999998 0 0 1 355.25 439.5zM300 350A50 50 0 1 1 300 250A50 50 0 0 1 300 350zM300 950A50 50 0 1 1 300 850A50 50 0 0 1 300 950zM900 950A50 50 0 1 1 900 850A50 50 0 0 1 900 950z","horizAdvX":"1200"},"git-commit-fill":{"path":["M0 0h24v24H0z","M15.874 13a4.002 4.002 0 0 1-7.748 0H3v-2h5.126a4.002 4.002 0 0 1 7.748 0H21v2h-5.126z"],"unicode":"","glyph":"M793.7 550A200.10000000000002 200.10000000000002 0 0 0 406.3000000000001 550H150V650H406.3000000000001A200.10000000000002 200.10000000000002 0 0 0 793.7000000000002 650H1050V550H793.6999999999999z","horizAdvX":"1200"},"git-commit-line":{"path":["M0 0h24v24H0z","M15.874 13a4.002 4.002 0 0 1-7.748 0H3v-2h5.126a4.002 4.002 0 0 1 7.748 0H21v2h-5.126zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M793.7 550A200.10000000000002 200.10000000000002 0 0 0 406.3000000000001 550H150V650H406.3000000000001A200.10000000000002 200.10000000000002 0 0 0 793.7000000000002 650H1050V550H793.6999999999999zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"git-merge-fill":{"path":["M0 0h24v24H0z","M7.105 8.79A3.001 3.001 0 0 0 10 11h4a5.001 5.001 0 0 1 4.927 4.146A3.001 3.001 0 0 1 18 21a3 3 0 0 1-1.105-5.79A3.001 3.001 0 0 0 14 13h-4a4.978 4.978 0 0 1-3-1v3.17a3.001 3.001 0 1 1-2 0V8.83a3.001 3.001 0 1 1 2.105-.04z"],"unicode":"","glyph":"M355.25 760.5A150.04999999999998 150.04999999999998 0 0 1 500 650H700A250.05000000000004 250.05000000000004 0 0 0 946.35 442.7A150.04999999999998 150.04999999999998 0 0 0 900 150A150 150 0 0 0 844.75 439.5A150.04999999999998 150.04999999999998 0 0 1 700 550H500A248.9 248.9 0 0 0 350 600V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 355.25 760.5z","horizAdvX":"1200"},"git-merge-line":{"path":["M0 0h24v24H0z","M7.105 8.79A3.001 3.001 0 0 0 10 11h4a5.001 5.001 0 0 1 4.927 4.146A3.001 3.001 0 0 1 18 21a3 3 0 0 1-1.105-5.79A3.001 3.001 0 0 0 14 13h-4a4.978 4.978 0 0 1-3-1v3.17a3.001 3.001 0 1 1-2 0V8.83a3.001 3.001 0 1 1 2.105-.04zM6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm12 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M355.25 760.5A150.04999999999998 150.04999999999998 0 0 1 500 650H700A250.05000000000004 250.05000000000004 0 0 0 946.35 442.7A150.04999999999998 150.04999999999998 0 0 0 900 150A150 150 0 0 0 844.75 439.5A150.04999999999998 150.04999999999998 0 0 1 700 550H500A248.9 248.9 0 0 0 350 600V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5A150.04999999999998 150.04999999999998 0 1 0 355.25 760.5zM300 850A50 50 0 1 1 300 950A50 50 0 0 1 300 850zM300 250A50 50 0 1 1 300 350A50 50 0 0 1 300 250zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250z","horizAdvX":"1200"},"git-pull-request-fill":{"path":["M0 0h24v24H0z","M15 5h2a2 2 0 0 1 2 2v8.17a3.001 3.001 0 1 1-2 0V7h-2v3l-4.5-4L15 2v3zM5 8.83a3.001 3.001 0 1 1 2 0v6.34a3.001 3.001 0 1 1-2 0V8.83z"],"unicode":"","glyph":"M750 950H850A100 100 0 0 0 950 850V441.5A150.04999999999998 150.04999999999998 0 1 0 850 441.5V850H750V700L525 900L750 1100V950zM250 758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5z","horizAdvX":"1200"},"git-pull-request-line":{"path":["M0 0h24v24H0z","M15 5h2a2 2 0 0 1 2 2v8.17a3.001 3.001 0 1 1-2 0V7h-2v3l-4.5-4L15 2v3zM5 8.83a3.001 3.001 0 1 1 2 0v6.34a3.001 3.001 0 1 1-2 0V8.83zM6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm12 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M750 950H850A100 100 0 0 0 950 850V441.5A150.04999999999998 150.04999999999998 0 1 0 850 441.5V850H750V700L525 900L750 1100V950zM250 758.5A150.04999999999998 150.04999999999998 0 1 0 350 758.5V441.5A150.04999999999998 150.04999999999998 0 1 0 250 441.5V758.5zM300 850A50 50 0 1 1 300 950A50 50 0 0 1 300 850zM300 250A50 50 0 1 1 300 350A50 50 0 0 1 300 250zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250z","horizAdvX":"1200"},"git-repository-commits-fill":{"path":["M0 0h24v24H0z","M14 17v6h-2v-6H9l4-5 4 5h-3zm2 2h3v-3h-.8L13 9.5 7.647 16H6.5a1.5 1.5 0 0 0 0 3H10v2H6.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-4v-2zM7 5v2h2V5H7zm0 3v2h2V8H7z"],"unicode":"","glyph":"M700 350V50H600V350H450L650 600L850 350H700zM800 250H950V400H910L650 725L382.35 400H325A75 75 0 0 1 325 250H500V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H800V250zM350 950V850H450V950H350zM350 800V700H450V800H350z","horizAdvX":"1200"},"git-repository-commits-line":{"path":["M0 0h24v24H0z","M18 16v-2h1V4H6v10.035A3.53 3.53 0 0 1 6.5 14H8v2H6.5a1.5 1.5 0 0 0 0 3H10v2H6.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-4v-2h3v-3h-1zM7 5h2v2H7V5zm0 3h2v2H7V8zm7 9v6h-2v-6H9l4-5 4 5h-3z"],"unicode":"","glyph":"M900 400V500H950V1000H300V498.25A176.5 176.5 0 0 0 325 500H400V400H325A75 75 0 0 1 325 250H500V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H800V250H950V400H900zM350 950H450V850H350V950zM350 800H450V700H350V800zM700 350V50H600V350H450L650 600L850 350H700z","horizAdvX":"1200"},"git-repository-fill":{"path":["M0 0h24v24H0z","M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm-6-2v-2h6v2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7zM7 5v2h2V5H7zm0 3v2h2V8H7zm0 3v2h2v-2H7z"],"unicode":"","glyph":"M650 150V25L500 125L350 25V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H650zM350 250V350H650V250H950V400H325A75 75 0 0 1 325 250H350zM350 950V850H450V950H350zM350 800V700H450V800H350zM350 650V550H450V650H350z","horizAdvX":"1200"},"git-repository-line":{"path":["M0 0h24v24H0z","M13 21v2.5l-3-2-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"],"unicode":"","glyph":"M650 150V25L500 125L350 25V150H325A175 175 0 0 0 150 325V950A150 150 0 0 0 300 1100H1000A50 50 0 0 0 1050 1050V200A50 50 0 0 0 1000 150H650zM650 250H950V400H325A75 75 0 0 1 325 250H350V350H650V250zM950 500V1000H300V498.25A176.5 176.5 0 0 0 325 500H950zM350 950H450V850H350V950zM350 800H450V700H350V800zM350 650H450V550H350V650z","horizAdvX":"1200"},"git-repository-private-fill":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-9 3v2h2v-2H7zm0 3v2h2v-2H7zm0 3v2h2v-2H7z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM800 800V850A200 200 0 1 1 400 850V800H800zM350 650V550H450V650H350zM350 500V400H450V500H350zM350 350V250H450V350H350z","horizAdvX":"1200"},"git-repository-private-line":{"path":["M0 0h24v24H0z","M6 10v10h13V10H6zm12-2h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-9 3h2v2H7v-2zm0 3h2v2H7v-2zm0 3h2v2H7v-2z"],"unicode":"","glyph":"M300 700V200H950V700H300zM900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM800 800V850A200 200 0 1 1 400 850V800H800zM350 650H450V550H350V650zM350 500H450V400H350V500zM350 350H450V250H350V350z","horizAdvX":"1200"},"github-fill":{"path":["M0 0h24v24H0z","M12 2C6.475 2 2 6.475 2 12a9.994 9.994 0 0 0 6.838 9.488c.5.087.687-.213.687-.476 0-.237-.013-1.024-.013-1.862-2.512.463-3.162-.612-3.362-1.175-.113-.288-.6-1.175-1.025-1.413-.35-.187-.85-.65-.013-.662.788-.013 1.35.725 1.538 1.025.9 1.512 2.338 1.087 2.912.825.088-.65.35-1.087.638-1.337-2.225-.25-4.55-1.113-4.55-4.938 0-1.088.387-1.987 1.025-2.688-.1-.25-.45-1.275.1-2.65 0 0 .837-.262 2.75 1.026a9.28 9.28 0 0 1 2.5-.338c.85 0 1.7.112 2.5.337 1.912-1.3 2.75-1.024 2.75-1.024.55 1.375.2 2.4.1 2.65.637.7 1.025 1.587 1.025 2.687 0 3.838-2.337 4.688-4.562 4.938.362.312.675.912.675 1.85 0 1.337-.013 2.412-.013 2.75 0 .262.188.574.688.474A10.016 10.016 0 0 0 22 12c0-5.525-4.475-10-10-10z"],"unicode":"","glyph":"M600 1100C323.75 1100 100 876.25 100 600A499.7 499.7 0 0 1 441.9000000000001 125.5999999999999C466.9 121.25 476.25 136.25 476.25 149.4000000000001C476.25 161.25 475.6 200.6 475.6 242.5000000000001C350 219.35 317.5 273.1 307.5 301.2500000000001C301.85 315.6500000000001 277.5000000000001 360.0000000000001 256.25 371.9000000000001C238.7500000000001 381.2500000000003 213.75 404.4000000000001 255.6 405.0000000000001C295 405.6500000000002 323.1 368.7500000000003 332.5 353.7500000000001C377.5000000000001 278.1500000000001 449.4 299.4000000000002 478.1000000000001 312.5000000000003C482.5 345.0000000000001 495.6 366.8500000000002 510.0000000000001 379.3500000000002C398.7500000000001 391.8500000000002 282.5000000000001 435.0000000000001 282.5000000000001 626.2500000000001C282.5000000000001 680.6500000000002 301.85 725.6000000000001 333.7500000000001 760.6500000000001C328.7500000000001 773.1500000000001 311.25 824.4000000000001 338.75 893.1500000000001C338.75 893.1500000000001 380.6 906.2500000000002 476.25 841.8500000000001A464 464 0 0 0 601.25 858.7500000000002C643.75 858.7500000000002 686.25 853.1500000000001 726.25 841.9000000000002C821.85 906.9 863.7499999999999 893.1000000000001 863.7499999999999 893.1000000000001C891.25 824.3500000000001 873.7499999999999 773.1000000000001 868.75 760.6000000000001C900.6 725.6000000000001 919.9999999999998 681.2500000000002 919.9999999999998 626.2500000000002C919.9999999999998 434.3500000000003 803.15 391.8500000000002 691.8999999999999 379.3500000000002C709.9999999999999 363.7500000000001 725.6499999999999 333.7500000000003 725.6499999999999 286.8500000000002C725.6499999999999 220.0000000000001 724.9999999999999 166.2500000000002 724.9999999999999 149.3500000000001C724.9999999999999 136.25 734.4 120.6500000000001 759.4 125.6500000000001A500.8 500.8 0 0 1 1100 600C1100 876.25 876.2499999999999 1100 600 1100z","horizAdvX":"1200"},"github-line":{"path":["M0 0h24v24H0z","M5.883 18.653c-.3-.2-.558-.455-.86-.816a50.32 50.32 0 0 1-.466-.579c-.463-.575-.755-.84-1.057-.949a1 1 0 0 1 .676-1.883c.752.27 1.261.735 1.947 1.588-.094-.117.34.427.433.539.19.227.33.365.44.438.204.137.587.196 1.15.14.023-.382.094-.753.202-1.095C5.38 15.31 3.7 13.396 3.7 9.64c0-1.24.37-2.356 1.058-3.292-.218-.894-.185-1.975.302-3.192a1 1 0 0 1 .63-.582c.081-.024.127-.035.208-.047.803-.123 1.937.17 3.415 1.096A11.731 11.731 0 0 1 12 3.315c.912 0 1.818.104 2.684.308 1.477-.933 2.613-1.226 3.422-1.096.085.013.157.03.218.05a1 1 0 0 1 .616.58c.487 1.216.52 2.297.302 3.19.691.936 1.058 2.045 1.058 3.293 0 3.757-1.674 5.665-4.642 6.392.125.415.19.879.19 1.38a300.492 300.492 0 0 1-.012 2.716 1 1 0 0 1-.019 1.958c-1.139.228-1.983-.532-1.983-1.525l.002-.446.005-.705c.005-.708.007-1.338.007-1.998 0-.697-.183-1.152-.425-1.36-.661-.57-.326-1.655.54-1.752 2.967-.333 4.337-1.482 4.337-4.66 0-.955-.312-1.744-.913-2.404a1 1 0 0 1-.19-1.045c.166-.414.237-.957.096-1.614l-.01.003c-.491.139-1.11.44-1.858.949a1 1 0 0 1-.833.135A9.626 9.626 0 0 0 12 5.315c-.89 0-1.772.119-2.592.35a1 1 0 0 1-.83-.134c-.752-.507-1.374-.807-1.868-.947-.144.653-.073 1.194.092 1.607a1 1 0 0 1-.189 1.045C6.016 7.89 5.7 8.694 5.7 9.64c0 3.172 1.371 4.328 4.322 4.66.865.097 1.201 1.177.544 1.748-.192.168-.429.732-.429 1.364v3.15c0 .986-.835 1.725-1.96 1.528a1 1 0 0 1-.04-1.962v-.99c-.91.061-1.662-.088-2.254-.485z"],"unicode":"","glyph":"M294.15 267.35C279.1500000000001 277.35 266.25 290.1 251.15 308.15A2516 2516 0 0 0 227.85 337.1C204.7 365.85 190.1 379.1 175 384.5500000000002A50 50 0 0 0 208.8 478.7C246.4 465.2 271.85 441.9500000000002 306.15 399.3000000000001C301.45 405.1500000000001 323.15 377.9500000000001 327.8 372.3499999999999C337.3 361 344.3 354.1 349.8 350.4500000000001C360 343.6 379.15 340.65 407.3 343.4500000000001C408.45 362.5500000000001 412 381.1 417.4 398.2C269 434.5 185 530.1999999999999 185 718C185 780 203.5 835.8 237.9 882.5999999999999C227 927.3 228.6500000000001 981.35 253 1042.2A50 50 0 0 0 284.5 1071.3C288.55 1072.5 290.85 1073.05 294.9 1073.65C335.05 1079.8 391.75 1065.15 465.6499999999999 1018.85A586.5500000000001 586.5500000000001 0 0 0 600 1034.25C645.6 1034.25 690.9 1029.05 734.2 1018.85C808.0500000000001 1065.5 864.85 1080.15 905.3 1073.65C909.5500000000002 1073 913.15 1072.15 916.2 1071.15A50 50 0 0 0 947.0000000000002 1042.15C971.35 981.35 973 927.3 962.1 882.6500000000001C996.65 835.85 1015 780.4000000000001 1015 718C1015 530.15 931.3 434.75 782.9000000000001 398.4C789.1500000000001 377.6500000000001 792.4000000000001 354.45 792.4000000000001 329.4000000000001A15024.6 15024.6 0 0 0 791.8000000000001 193.6A50 50 0 0 0 790.85 95.7000000000001C733.9000000000001 84.3 691.6999999999999 122.3000000000002 691.6999999999999 171.9500000000001L691.8000000000001 194.2500000000001L692.0500000000001 229.5C692.3000000000001 264.8999999999999 692.4000000000001 296.4000000000001 692.4000000000001 329.4000000000001C692.4000000000001 364.25 683.25 387.0000000000001 671.15 397.4C638.1 425.9000000000001 654.85 480.15 698.1500000000001 485C846.5 501.6500000000001 915 559.1 915 718C915 765.75 899.4 805.2 869.35 838.2A50 50 0 0 0 859.8499999999999 890.45C868.15 911.15 871.6999999999998 938.3 864.65 971.15L864.1499999999999 971C839.5999999999999 964.05 808.6499999999999 949 771.2499999999999 923.55A50 50 0 0 0 729.5999999999998 916.8A481.3 481.3 0 0 1 600 934.25C555.5 934.25 511.4 928.3 470.4 916.75A50 50 0 0 0 428.9 923.45C391.3 948.8 360.2 963.8 335.5 970.8C328.3 938.15 331.8499999999999 911.1 340.0999999999999 890.45A50 50 0 0 0 330.6499999999999 838.2C300.8 805.5 285 765.3 285 718C285 559.4 353.55 501.6 501.1 485C544.35 480.15 561.1500000000001 426.15 528.3000000000001 397.5999999999999C518.7 389.2 506.85 361 506.85 329.3999999999999V171.8999999999999C506.85 122.5999999999999 465.1 85.6499999999999 408.85 95.5A50 50 0 0 0 406.85 193.6V243.0999999999999C361.35 240.05 323.75 247.5 294.1500000000001 267.3499999999999z","horizAdvX":"1200"},"gitlab-fill":{"path":["M0 0h24v24H0z","M5.868 2.75L8 10h8l2.132-7.25a.4.4 0 0 1 .765-.01l3.495 10.924a.5.5 0 0 1-.173.55L12 22 1.78 14.214a.5.5 0 0 1-.172-.55L5.103 2.74a.4.4 0 0 1 .765.009z"],"unicode":"","glyph":"M293.4000000000001 1062.5L400 700H800L906.6 1062.5A20.000000000000004 20.000000000000004 0 0 0 944.8500000000003 1063L1119.6000000000001 516.8000000000001A25 25 0 0 0 1110.9500000000003 489.3L600 100L89 489.3A25 25 0 0 0 80.4 516.8000000000001L255.15 1063A20.000000000000004 20.000000000000004 0 0 0 293.4 1062.55z","horizAdvX":"1200"},"gitlab-line":{"path":["M0 0h24v24H0z","M5.68 7.314l-1.82 5.914L12 19.442l8.14-6.214-1.82-5.914L16.643 11H7.356L5.681 7.314zM15.357 9l2.888-6.354a.4.4 0 0 1 .747.048l3.367 10.945a.5.5 0 0 1-.174.544L12 21.958 1.816 14.183a.5.5 0 0 1-.174-.544L5.009 2.694a.4.4 0 0 1 .747-.048L8.644 9h6.712z"],"unicode":"","glyph":"M284 834.3L193 538.6L600 227.9L1007 538.6L916 834.3L832.1500000000001 650H367.8L284.05 834.3zM767.8499999999999 750L912.2499999999998 1067.7A20.000000000000004 20.000000000000004 0 0 0 949.6 1065.3L1117.9499999999998 518.0500000000001A25 25 0 0 0 1109.25 490.85L600 102.1000000000001L90.8 490.85A25 25 0 0 0 82.1 518.0500000000001L250.45 1065.3A20.000000000000004 20.000000000000004 0 0 0 287.8 1067.7L432.2 750H767.8z","horizAdvX":"1200"},"global-fill":{"path":["M0 0h24v24H0z","M2.05 13h5.477a17.9 17.9 0 0 0 2.925 8.88A10.005 10.005 0 0 1 2.05 13zm0-2a10.005 10.005 0 0 1 8.402-8.88A17.9 17.9 0 0 0 7.527 11H2.05zm19.9 0h-5.477a17.9 17.9 0 0 0-2.925-8.88A10.005 10.005 0 0 1 21.95 11zm0 2a10.005 10.005 0 0 1-8.402 8.88A17.9 17.9 0 0 0 16.473 13h5.478zM9.53 13h4.94A15.908 15.908 0 0 1 12 20.592 15.908 15.908 0 0 1 9.53 13zm0-2A15.908 15.908 0 0 1 12 3.408 15.908 15.908 0 0 1 14.47 11H9.53z"],"unicode":"","glyph":"M102.5 550H376.35A894.9999999999999 894.9999999999999 0 0 1 522.6 105.9999999999998A500.25 500.25 0 0 0 102.5 550zM102.5 650A500.25 500.25 0 0 0 522.5999999999999 1094A894.9999999999999 894.9999999999999 0 0 1 376.35 650H102.5zM1097.5 650H823.65A894.9999999999999 894.9999999999999 0 0 1 677.3999999999999 1094A500.25 500.25 0 0 0 1097.5 650zM1097.5 550A500.25 500.25 0 0 0 677.4 105.9999999999998A894.9999999999999 894.9999999999999 0 0 1 823.65 550H1097.55zM476.4999999999999 550H723.5A795.4 795.4 0 0 0 600 170.4000000000001A795.4 795.4 0 0 0 476.4999999999999 550zM476.4999999999999 650A795.4 795.4 0 0 0 600 1029.6A795.4 795.4 0 0 0 723.5 650H476.4999999999999z","horizAdvX":"1200"},"global-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM485.5000000000001 216.6499999999999A894.9999999999999 894.9999999999999 0 0 0 401.35 550H203.1A400.4 400.4 0 0 1 485.5000000000001 216.6499999999999zM501.4999999999999 550C509.05 428.05 543.9 313.5 600 212.4000000000001A795.25 795.25 0 0 1 698.5 550H501.5000000000001zM996.9 550H798.65A894.9999999999999 894.9999999999999 0 0 0 714.5 216.6499999999999A400.4 400.4 0 0 1 996.9 550zM203.1 650H401.35A894.9999999999999 894.9999999999999 0 0 0 485.5000000000001 983.35A400.4 400.4 0 0 1 203.1 650zM501.55 650H698.45A795.25 795.25 0 0 1 600 987.6A795.25 795.25 0 0 1 501.4999999999999 650zM714.5 983.35A894.9999999999999 894.9999999999999 0 0 0 798.6500000000001 650H996.9A400.4 400.4 0 0 1 714.5000000000001 983.35z","horizAdvX":"1200"},"globe-fill":{"path":["M0 0h24v24H0z","M13 21h5v2H6v-2h5v-1.05a10.002 10.002 0 0 1-7.684-4.988l1.737-.992A8 8 0 1 0 15.97 3.053l.992-1.737A9.996 9.996 0 0 1 22 10c0 5.185-3.947 9.449-9 9.95V21zm-1-4a7 7 0 1 1 0-14 7 7 0 0 1 0 14z"],"unicode":"","glyph":"M650 150H900V50H300V150H550V202.5A500.1000000000001 500.1000000000001 0 0 0 165.8 451.9L252.65 501.5A400 400 0 1 1 798.5 1047.35L848.1 1134.2A499.8 499.8 0 0 0 1100 700C1100 440.7500000000001 902.65 227.5500000000001 650 202.5V150zM600 350A350 350 0 1 0 600 1050A350 350 0 0 0 600 350z","horizAdvX":"1200"},"globe-line":{"path":["M0 0h24v24H0z","M13 21h5v2H6v-2h5v-1.05a10.002 10.002 0 0 1-7.684-4.988l1.737-.992A8 8 0 1 0 15.97 3.053l.992-1.737A9.996 9.996 0 0 1 22 10c0 5.185-3.947 9.449-9 9.95V21zm-1-4a7 7 0 1 1 0-14 7 7 0 0 1 0 14zm0-2a5 5 0 1 0 0-10 5 5 0 0 0 0 10z"],"unicode":"","glyph":"M650 150H900V50H300V150H550V202.5A500.1000000000001 500.1000000000001 0 0 0 165.8 451.9L252.65 501.5A400 400 0 1 1 798.5 1047.35L848.1 1134.2A499.8 499.8 0 0 0 1100 700C1100 440.7500000000001 902.65 227.5500000000001 650 202.5V150zM600 350A350 350 0 1 0 600 1050A350 350 0 0 0 600 350zM600 450A250 250 0 1 1 600 950A250 250 0 0 1 600 450z","horizAdvX":"1200"},"goblet-fill":{"path":["M0 0h24v24H0z","M11 19v-5.111L3 5V3h18v2l-8 8.889V19h5v2H6v-2h5zM7.49 7h9.02l1.8-2H5.69l1.8 2z"],"unicode":"","glyph":"M550 250V505.5500000000001L150 950V1050H1050V950L650 505.5500000000001V250H900V150H300V250H550zM374.5 850H825.4999999999999L915.4999999999998 950H284.5L374.5 850z","horizAdvX":"1200"},"goblet-line":{"path":["M0 0h24v24H0z","M11 19v-5.111L3 5V3h18v2l-8 8.889V19h5v2H6v-2h5zM7.49 7h9.02l1.8-2H5.69l1.8 2zm1.8 2L12 12.01 14.71 9H9.29z"],"unicode":"","glyph":"M550 250V505.5500000000001L150 950V1050H1050V950L650 505.5500000000001V250H900V150H300V250H550zM374.5 850H825.4999999999999L915.4999999999998 950H284.5L374.5 850zM464.5000000000001 750L600 599.5L735.5 750H464.4999999999999z","horizAdvX":"1200"},"google-fill":{"path":["M0 0h24v24H0z","M3.064 7.51A9.996 9.996 0 0 1 12 2c2.695 0 4.959.99 6.69 2.605l-2.867 2.868C14.786 6.482 13.468 5.977 12 5.977c-2.605 0-4.81 1.76-5.595 4.123-.2.6-.314 1.24-.314 1.9 0 .66.114 1.3.314 1.9.786 2.364 2.99 4.123 5.595 4.123 1.345 0 2.49-.355 3.386-.955a4.6 4.6 0 0 0 1.996-3.018H12v-3.868h9.418c.118.654.182 1.336.182 2.045 0 3.046-1.09 5.61-2.982 7.35C16.964 21.105 14.7 22 12 22A9.996 9.996 0 0 1 2 12c0-1.614.386-3.14 1.064-4.49z"],"unicode":"","glyph":"M153.2 824.5A499.8 499.8 0 0 0 600 1100C734.75 1100 847.9499999999999 1050.5 934.5000000000002 969.75L791.15 826.3499999999999C739.3 875.9 673.4 901.15 600 901.15C469.75 901.15 359.5 813.15 320.25 695C310.25 665 304.55 632.9999999999999 304.55 599.9999999999999C304.55 566.9999999999999 310.25 534.9999999999999 320.25 504.9999999999999C359.55 386.7999999999999 469.75 298.8499999999998 600 298.8499999999998C667.25 298.8499999999998 724.5 316.5999999999999 769.3 346.5999999999998A230 230 0 0 1 869.0999999999999 497.4999999999998H600V690.8999999999999H1070.8999999999999C1076.8 658.1999999999998 1080 624.0999999999998 1080 588.6499999999999C1080 436.3499999999998 1025.5 308.1499999999999 930.9 221.1499999999998C848.1999999999999 144.75 735 100 600 100A499.8 499.8 0 0 0 100 600C100 680.7 119.3 757 153.2 824.5z","horizAdvX":"1200"},"google-line":{"path":["M0 0h24v24H0z","M12 11h8.533c.044.385.067.78.067 1.184 0 2.734-.98 5.036-2.678 6.6-1.485 1.371-3.518 2.175-5.942 2.175A8.976 8.976 0 0 1 3 11.98 8.976 8.976 0 0 1 11.98 3c2.42 0 4.453.89 6.008 2.339L16.526 6.8C15.368 5.681 13.803 5 12 5a7 7 0 1 0 0 14c3.526 0 6.144-2.608 6.577-6H12v-2z"],"unicode":"","glyph":"M600 650H1026.65C1028.8500000000001 630.75 1030 611 1030 590.8000000000001C1030 454.1 981 339 896.1 260.8000000000001C821.85 192.2500000000001 720.2 152.05 599 152.05A448.80000000000007 448.80000000000007 0 0 0 150 601A448.80000000000007 448.80000000000007 0 0 0 599 1050C720 1050 821.65 1005.5 899.4 933.05L826.3 860C768.4 915.95 690.1500000000001 950 600 950A350 350 0 1 1 600 250C776.3 250 907.2 380.4 928.85 550H600V650z","horizAdvX":"1200"},"google-play-fill":{"path":["M0 0h24v24H0z","M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 0 1-.61-.92V2.734a1 1 0 0 1 .609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.198l2.807 1.626a1 1 0 0 1 0 1.73l-2.808 1.626L15.206 12l2.492-2.491zM5.864 2.658L16.802 8.99l-2.303 2.303-8.635-8.635z"],"unicode":"","glyph":"M180.45 1109.3L689.6 600L180.5 90.7000000000001A49.800000000000004 49.800000000000004 0 0 0 150 136.7000000000001V1063.3A50 50 0 0 0 180.45 1109.3zM724.95 564.65L840.0500000000001 449.55L293.2000000000001 132.9000000000001L724.9500000000002 564.6500000000001zM884.9 724.55L1025.25 643.25A50 50 0 0 0 1025.25 556.75L884.8499999999999 475.45L760.3 600L884.9 724.55zM293.2 1067.1L840.1 750.5L724.9499999999999 635.35L293.2 1067.1z","horizAdvX":"1200"},"google-play-line":{"path":["M0 0h24v24H0z","M4 1.734a1 1 0 0 1 .501.135l16.004 9.266a1 1 0 0 1 0 1.73L4.501 22.131A1 1 0 0 1 3 21.266V2.734a1 1 0 0 1 1-1zm8.292 11.68l-4.498 4.498 5.699-3.299-1.2-1.2zM5 6.118v11.76l5.88-5.88-5.88-5.88zm10.284 4.302L13.706 12l1.578 1.577L18.008 12l-2.725-1.579zm-7.49-4.336l4.5 4.5 1.199-1.2-5.699-3.3z"],"unicode":"","glyph":"M200 1113.3A50 50 0 0 0 225.05 1106.55L1025.2500000000002 643.25A50 50 0 0 0 1025.2500000000002 556.75L225.05 93.4500000000001A50 50 0 0 0 150 136.7000000000001V1063.3A50 50 0 0 0 200 1113.3zM614.6 529.3000000000001L389.7 304.4000000000001L674.65 469.35L614.65 529.35zM250 894.0999999999999V306.1L544 600.0999999999999L250 894.0999999999999zM764.2 679L685.3 600L764.1999999999999 521.15L900.4 600L764.15 678.95zM389.7000000000001 895.8L614.7 670.8000000000001L674.65 730.8L389.7000000000001 895.8z","horizAdvX":"1200"},"government-fill":{"path":["M0 0h24v24H0z","M2 19V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2h3v2h-1v11h1v2H1v-2h1zm11 0v-7h-2v7h2zm-5 0v-7H6v7h2zm10 0v-7h-2v7h2zM6 5v1h12V5H6z"],"unicode":"","glyph":"M100 250V800H50V900H200V1000A50 50 0 0 0 250 1050H950A50 50 0 0 0 1000 1000V900H1150V800H1100V250H1150V150H50V250H100zM650 250V600H550V250H650zM400 250V600H300V250H400zM900 250V600H800V250H900zM300 950V900H900V950H300z","horizAdvX":"1200"},"government-line":{"path":["M0 0h24v24H0z","M20 6h3v2h-1v11h1v2H1v-2h1V8H1V6h3V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2zm0 2H4v11h3v-7h2v7h2v-7h2v7h2v-7h2v7h3V8zM6 5v1h12V5H6z"],"unicode":"","glyph":"M1000 900H1150V800H1100V250H1150V150H50V250H100V800H50V900H200V1000A50 50 0 0 0 250 1050H950A50 50 0 0 0 1000 1000V900zM1000 800H200V250H350V600H450V250H550V600H650V250H750V600H850V250H1000V800zM300 950V900H900V950H300z","horizAdvX":"1200"},"gps-fill":{"path":["M0 0h24v24H0z","M12 16l3 6H9l3-6zm-2.627.255a5 5 0 1 1 5.255 0l-1.356-2.711a2 2 0 1 0-2.544 0l-1.355 2.71zm-2.241 4.482A9.997 9.997 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.997 9.997 0 0 1-5.132 8.737l-1.343-2.688a7 7 0 1 0-7.05 0l-1.343 2.688z"],"unicode":"","glyph":"M600 400L750 100H450L600 400zM468.65 387.25A250 250 0 1 0 731.4 387.25L663.6 522.8000000000001A100 100 0 1 1 536.4 522.8000000000001L468.65 387.3000000000001zM356.6000000000001 163.1500000000001A499.85 499.85 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.85 499.85 0 0 0 843.4000000000001 163.1499999999999L776.2500000000001 297.5499999999999A350 350 0 1 1 423.7500000000001 297.5499999999999L356.6000000000001 163.1499999999999z","horizAdvX":"1200"},"gps-line":{"path":["M0 0h24v24H0z","M7.132 20.737A9.997 9.997 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.997 9.997 0 0 1-5.132 8.737l-.896-1.791a8 8 0 1 0-7.945 0l-.895 1.791zm1.792-3.584a6 6 0 1 1 6.151 0l-.898-1.797a4 4 0 1 0-4.354 0l-.899 1.797zM12 16l3 6H9l3-6z"],"unicode":"","glyph":"M356.6 163.1500000000001A499.85 499.85 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.85 499.85 0 0 0 843.4000000000001 163.1499999999999L798.6 252.7A400 400 0 1 1 401.35 252.7L356.6000000000001 163.1499999999999zM446.2 342.35A300 300 0 1 0 753.75 342.35L708.85 432.2000000000001A200 200 0 1 1 491.15 432.2000000000001L446.2 342.35zM600 400L750 100H450L600 400z","horizAdvX":"1200"},"gradienter-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM8.126 11H4.062a8.079 8.079 0 0 0 0 2h4.064a4.007 4.007 0 0 1 0-2zm7.748 0a4.007 4.007 0 0 1 0 2h4.064a8.079 8.079 0 0 0 0-2h-4.064zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM406.3 650H203.1A403.95000000000005 403.95000000000005 0 0 1 203.1 550H406.3000000000001A200.34999999999997 200.34999999999997 0 0 0 406.3000000000001 650zM793.6999999999999 650A200.34999999999997 200.34999999999997 0 0 0 793.6999999999999 550H996.9A403.95000000000005 403.95000000000005 0 0 1 996.9 650H793.6999999999999zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"gradienter-line":{"path":["M0 0h24v24H0z","M2.05 13h2.012a8.001 8.001 0 0 0 15.876 0h2.013c-.502 5.053-4.766 9-9.951 9-5.185 0-9.449-3.947-9.95-9zm0-2C2.55 5.947 6.814 2 12 2s9.449 3.947 9.95 9h-2.012a8.001 8.001 0 0 0-15.876 0H2.049zM12 14a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M102.5 550H203.1A400.04999999999995 400.04999999999995 0 0 1 996.9 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C340.75 100 127.55 297.3499999999999 102.5 550zM102.5 650C127.5 902.65 340.7 1100 600 1100S1072.4499999999998 902.65 1097.5 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H102.45zM600 500A100 100 0 1 0 600 700A100 100 0 0 0 600 500z","horizAdvX":"1200"},"grid-fill":{"path":["M0 0h24v24H0z","M14 10v4h-4v-4h4zm2 0h5v4h-5v-4zm-2 11h-4v-5h4v5zm2 0v-5h5v4a1 1 0 0 1-1 1h-4zM14 3v5h-4V3h4zm2 0h4a1 1 0 0 1 1 1v4h-5V3zm-8 7v4H3v-4h5zm0 11H4a1 1 0 0 1-1-1v-4h5v5zM8 3v5H3V4a1 1 0 0 1 1-1h4z"],"unicode":"","glyph":"M700 700V500H500V700H700zM800 700H1050V500H800V700zM700 150H500V400H700V150zM800 150V400H1050V200A50 50 0 0 0 1000 150H800zM700 1050V800H500V1050H700zM800 1050H1000A50 50 0 0 0 1050 1000V800H800V1050zM400 700V500H150V700H400zM400 150H200A50 50 0 0 0 150 200V400H400V150zM400 1050V800H150V1000A50 50 0 0 0 200 1050H400z","horizAdvX":"1200"},"grid-line":{"path":["M0 0h24v24H0z","M14 10h-4v4h4v-4zm2 0v4h3v-4h-3zm-2 9v-3h-4v3h4zm2 0h3v-3h-3v3zM14 5h-4v3h4V5zm2 0v3h3V5h-3zm-8 5H5v4h3v-4zm0 9v-3H5v3h3zM8 5H5v3h3V5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M700 700H500V500H700V700zM800 700V500H950V700H800zM700 250V400H500V250H700zM800 250H950V400H800V250zM700 950H500V800H700V950zM800 950V800H950V950H800zM400 700H250V500H400V700zM400 250V400H250V250H400zM400 950H250V800H400V950zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"group-2-fill":{"path":["M0 0h24v24H0z","M10 19.748V16.4c0-1.283.995-2.292 2.467-2.868A8.482 8.482 0 0 0 9.5 13c-1.89 0-3.636.617-5.047 1.66A8.017 8.017 0 0 0 10 19.748zm8.88-3.662C18.485 15.553 17.17 15 15.5 15c-2.006 0-3.5.797-3.5 1.4V20a7.996 7.996 0 0 0 6.88-3.914zM9.55 11.5a2.25 2.25 0 1 0 0-4.5 2.25 2.25 0 0 0 0 4.5zm5.95 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M500 212.5999999999999V380.0000000000001C500 444.1500000000001 549.75 494.6 623.35 523.4000000000001A424.09999999999997 424.09999999999997 0 0 1 475 550C380.5 550 293.2 519.15 222.65 467A400.84999999999997 400.84999999999997 0 0 1 500 212.5999999999999zM944.0000000000002 395.7C924.25 422.3499999999999 858.5000000000001 450 775 450C674.7 450 600 410.15 600 380.0000000000001V200A399.80000000000007 399.80000000000007 0 0 1 944 395.7000000000001zM477.5000000000001 625A112.5 112.5 0 1 1 477.5000000000001 850A112.5 112.5 0 0 1 477.5000000000001 625zM775 575A100 100 0 1 1 775 775A100 100 0 0 1 775 575zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"group-2-line":{"path":["M0 0h24v24H0z","M9.55 11.5a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5zm.45 8.248V16.4c0-.488.144-.937.404-1.338a6.473 6.473 0 0 0-5.033 1.417A8.012 8.012 0 0 0 10 19.749zM4.453 14.66A8.462 8.462 0 0 1 9.5 13c1.043 0 2.043.188 2.967.532.878-.343 1.925-.532 3.033-.532 1.66 0 3.185.424 4.206 1.156a8 8 0 1 0-15.253.504zm14.426 1.426C18.486 15.553 17.171 15 15.5 15c-2.006 0-3.5.797-3.5 1.4V20a7.996 7.996 0 0 0 6.88-3.914zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm3.5-9.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M477.5000000000001 625A112.5 112.5 0 1 0 477.5000000000001 850A112.5 112.5 0 0 0 477.5000000000001 625zM500 212.6000000000001V380.0000000000001C500 404.4000000000001 507.2 426.85 520.2 446.9000000000001A323.65000000000003 323.65000000000003 0 0 1 268.55 376.0500000000001A400.6 400.6 0 0 1 500 212.5500000000001zM222.65 467A423.09999999999997 423.09999999999997 0 0 0 475 550C527.15 550 577.15 540.6 623.35 523.4C667.25 540.55 719.6 550 775 550C858 550 934.2499999999998 528.8000000000001 985.3 492.1999999999999A400 400 0 1 1 222.65 467zM943.95 395.7000000000001C924.3 422.3499999999999 858.55 450 775 450C674.7 450 600 410.15 600 380.0000000000001V200A399.80000000000007 399.80000000000007 0 0 1 944 395.7000000000001zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM775 575A100 100 0 1 0 775 775A100 100 0 0 0 775 575z","horizAdvX":"1200"},"group-fill":{"path":["M0 0h24v24H0z","M2 22a8 8 0 1 1 16 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm7.363 2.233A7.505 7.505 0 0 1 22.983 22H20c0-2.61-1-4.986-2.637-6.767zm-2.023-2.276A7.98 7.98 0 0 0 18 7a7.964 7.964 0 0 0-1.015-3.903A5 5 0 0 1 21 8a4.999 4.999 0 0 1-5.66 4.957z"],"unicode":"","glyph":"M100 100A400 400 0 1 0 900 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM868.15 438.35A375.25 375.25 0 0 0 1149.15 100H1000C1000 230.5 950 349.3000000000001 868.15 438.35zM767 552.15A399 399 0 0 1 900 850A398.20000000000005 398.20000000000005 0 0 1 849.25 1045.15A250 250 0 0 0 1050 800A249.94999999999996 249.94999999999996 0 0 0 767 552.15z","horizAdvX":"1200"},"group-line":{"path":["M0 0h24v24H0z","M2 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H2zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm8.284 3.703A8.002 8.002 0 0 1 23 22h-2a6.001 6.001 0 0 0-3.537-5.473l.82-1.824zm-.688-11.29A5.5 5.5 0 0 1 21 8.5a5.499 5.499 0 0 1-5 5.478v-2.013a3.5 3.5 0 0 0 1.041-6.609l.555-1.943z"],"unicode":"","glyph":"M100 100A400 400 0 1 0 900 100H800A300 300 0 1 1 200 100H100zM500 550C334.25 550 200 684.25 200 850S334.25 1150 500 1150S800 1015.75 800 850S665.75 550 500 550zM500 650C610.5 650 700 739.5 700 850S610.5 1050 500 1050S300 960.5 300 850S389.5 650 500 650zM914.2 464.85A400.1 400.1 0 0 0 1150 100H1050A300.05 300.05 0 0 1 873.1500000000001 373.65L914.15 464.8499999999999zM879.8 1029.35A275 275 0 0 0 1050 775A274.94999999999993 274.94999999999993 0 0 0 800 501.1V601.75A175 175 0 0 1 852.0500000000001 932.2L879.8 1029.35z","horizAdvX":"1200"},"guide-fill":{"path":["M0 0h24v24H0z","M13 8v8a3 3 0 0 1-3 3H7.83a3.001 3.001 0 1 1 0-2H10a1 1 0 0 0 1-1V8a3 3 0 0 1 3-3h3V2l5 4-5 4V7h-3a1 1 0 0 0-1 1z"],"unicode":"","glyph":"M650 800V400A150 150 0 0 0 500 250H391.5A150.04999999999998 150.04999999999998 0 1 0 391.5 350H500A50 50 0 0 1 550 400V800A150 150 0 0 0 700 950H850V1100L1100 900L850 700V850H700A50 50 0 0 1 650 800z","horizAdvX":"1200"},"guide-line":{"path":["M0 0h24v24H0z","M13 8v8a3 3 0 0 1-3 3H7.83a3.001 3.001 0 1 1 0-2H10a1 1 0 0 0 1-1V8a3 3 0 0 1 3-3h3V2l5 4-5 4V7h-3a1 1 0 0 0-1 1zM5 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M650 800V400A150 150 0 0 0 500 250H391.5A150.04999999999998 150.04999999999998 0 1 0 391.5 350H500A50 50 0 0 1 550 400V800A150 150 0 0 0 700 950H850V1100L1100 900L850 700V850H700A50 50 0 0 1 650 800zM250 250A50 50 0 1 1 250 350A50 50 0 0 1 250 250z","horizAdvX":"1200"},"h-1":{"path":["M0 0H24V24H0z","M13 20h-2v-7H4v7H2V4h2v7h7V4h2v16zm8-12v12h-2v-9.796l-2 .536V8.67L19.5 8H21z"],"unicode":"","glyph":"M650 200H550V550H200V200H100V1000H200V650H550V1000H650V200zM1050 800V200H950V689.8L850 663V766.5L975 800H1050z","horizAdvX":"1200"},"h-2":{"path":["M0 0H24V24H0z","M4 4v7h7V4h2v16h-2v-7H4v7H2V4h2zm14.5 4c2.071 0 3.75 1.679 3.75 3.75 0 .857-.288 1.648-.772 2.28l-.148.18L18.034 18H22v2h-7v-1.556l4.82-5.546c.268-.307.43-.709.43-1.148 0-.966-.784-1.75-1.75-1.75-.918 0-1.671.707-1.744 1.606l-.006.144h-2C14.75 9.679 16.429 8 18.5 8z"],"unicode":"","glyph":"M200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200zM925 800C1028.5500000000002 800 1112.5 716.05 1112.5 612.5C1112.5 569.6500000000001 1098.1 530.1 1073.9 498.5L1066.5 489.5L901.7 300H1100V200H750V277.8000000000001L991 555.1C1004.4 570.45 1012.5 590.55 1012.5 612.5C1012.5 660.8 973.3 700 925 700C879.1 700 841.45 664.65 837.8 619.7L837.5 612.5H737.5C737.5 716.05 821.4499999999999 800 925 800z","horizAdvX":"1200"},"h-3":{"path":["M0 0H24V24H0z","M22 8l-.002 2-2.505 2.883c1.59.435 2.757 1.89 2.757 3.617 0 2.071-1.679 3.75-3.75 3.75-1.826 0-3.347-1.305-3.682-3.033l1.964-.382c.156.806.866 1.415 1.718 1.415.966 0 1.75-.784 1.75-1.75s-.784-1.75-1.75-1.75c-.286 0-.556.069-.794.19l-1.307-1.547L19.35 10H15V8h7zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2z"],"unicode":"","glyph":"M1100 800L1099.9 700L974.65 555.85C1054.15 534.1 1112.5000000000002 461.35 1112.5000000000002 375C1112.5000000000002 271.45 1028.5500000000002 187.5 925.0000000000002 187.5C833.7000000000002 187.5 757.6500000000002 252.75 740.9000000000002 339.1500000000001L839.1000000000001 358.2500000000001C846.9000000000001 317.9500000000001 882.4000000000002 287.5000000000003 925.0000000000002 287.5000000000003C973.3000000000002 287.5000000000003 1012.5000000000002 326.7000000000002 1012.5000000000002 375.0000000000003S973.3000000000002 462.5000000000002 925.0000000000002 462.5000000000002C910.7000000000002 462.5000000000002 897.2000000000002 459.0500000000002 885.3000000000002 453.0000000000002L819.9500000000003 530.3500000000003L967.5000000000002 700H750V800H1100zM200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200z","horizAdvX":"1200"},"h-4":{"path":["M0 0H24V24H0z","M13 20h-2v-7H4v7H2V4h2v7h7V4h2v16zm9-12v8h1.5v2H22v2h-2v-2h-5.5v-1.34l5-8.66H22zm-2 3.133L17.19 16H20v-4.867z"],"unicode":"","glyph":"M650 200H550V550H200V200H100V1000H200V650H550V1000H650V200zM1100 800V400H1175V300H1100V200H1000V300H725V367L975 800H1100zM1000 643.35L859.5000000000001 400H1000V643.35z","horizAdvX":"1200"},"h-5":{"path":["M0 0H24V24H0z","M22 8v2h-4.323l-.464 2.636c.33-.089.678-.136 1.037-.136 2.21 0 4 1.79 4 4s-1.79 4-4 4c-1.827 0-3.367-1.224-3.846-2.897l1.923-.551c.24.836 1.01 1.448 1.923 1.448 1.105 0 2-.895 2-2s-.895-2-2-2c-.63 0-1.193.292-1.56.748l-1.81-.904L16 8h6zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2z"],"unicode":"","glyph":"M1100 800V700H883.85L860.6500000000001 568.2C877.15 572.6500000000001 894.5500000000001 575 912.5 575C1023 575 1112.5 485.5 1112.5 375S1023 175 912.5 175C821.1500000000001 175 744.15 236.2000000000001 720.2 319.8499999999999L816.3499999999999 347.3999999999999C828.3499999999998 305.5999999999999 866.85 274.9999999999998 912.5 274.9999999999998C967.75 274.9999999999998 1012.5 319.7499999999998 1012.5 374.9999999999998S967.75 474.9999999999998 912.5 474.9999999999998C881 474.9999999999998 852.8499999999999 460.3999999999999 834.5000000000001 437.5999999999999L744 482.7999999999998L800 800H1100zM200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200z","horizAdvX":"1200"},"h-6":{"path":["M0 0H24V24H0z","M21.097 8l-2.598 4.5c2.21 0 4.001 1.79 4.001 4s-1.79 4-4 4-4-1.79-4-4c0-.736.199-1.426.546-2.019L18.788 8h2.309zM4 4v7h7V4h2v16h-2v-7H4v7H2V4h2zm14.5 10.5c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2z"],"unicode":"","glyph":"M1054.8500000000001 800L924.9500000000002 575C1035.4500000000003 575 1125.0000000000002 485.5 1125.0000000000002 375S1035.5000000000002 175 925.0000000000002 175S725.0000000000002 264.5 725.0000000000002 375C725.0000000000002 411.8000000000001 734.9500000000002 446.3 752.3000000000002 475.95L939.4 800H1054.8500000000001zM200 1000V650H550V1000H650V200H550V550H200V200H100V1000H200zM925 475C869.75 475 825 430.25 825 375S869.75 275 925 275S1025 319.75 1025 375S980.25 475 925 475z","horizAdvX":"1200"},"hail-fill":{"path":["M0 0h24v24H0z","M18.995 17.794a4 4 0 0 0-5.085-3.644A4.001 4.001 0 0 0 6 15c0 1.08.428 2.059 1.122 2.778a8 8 0 1 1 9.335-10.68 5.5 5.5 0 0 1 2.537 10.696zM10 17a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M949.75 310.3A200 200 0 0 1 695.5 492.5A200.05 200.05 0 0 1 300 450C300 396.0000000000001 321.4 347.05 356.1 311.1A400 400 0 1 0 822.85 845.1A275 275 0 0 0 949.7 310.3000000000002zM500 350A100 100 0 1 0 500 550A100 100 0 0 0 500 350zM750 200A100 100 0 1 0 750 400A100 100 0 0 0 750 200zM500 50A100 100 0 1 0 500 250A100 100 0 0 0 500 50z","horizAdvX":"1200"},"hail-line":{"path":["M0 0h24v24H0z","M6 17.418A8.003 8.003 0 0 1 9 2a8.003 8.003 0 0 1 7.458 5.099A5.5 5.5 0 0 1 19 17.793v-2.13a3.5 3.5 0 1 0-4-5.612V10a6 6 0 1 0-9 5.197v2.221zM10 17a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-5 3a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M300 329.1A400.15000000000003 400.15000000000003 0 0 0 450 1100A400.15000000000003 400.15000000000003 0 0 0 822.8999999999999 845.05A275 275 0 0 0 950 310.35V416.85A175 175 0 1 1 750 697.45V700A300 300 0 1 1 300 440.1500000000001V329.1zM500 350A100 100 0 1 0 500 550A100 100 0 0 0 500 350zM750 200A100 100 0 1 0 750 400A100 100 0 0 0 750 200zM500 50A100 100 0 1 0 500 250A100 100 0 0 0 500 50z","horizAdvX":"1200"},"hammer-fill":{"path":["M0 0h24v24H0z","M17 8V2h3a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-3zm-2 14a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V8H2.5V6.074a1 1 0 0 1 .496-.863L8.5 2H15v20z"],"unicode":"","glyph":"M850 800V1100H1000A50 50 0 0 0 1050 1050V850A50 50 0 0 0 1000 800H850zM750 100A50 50 0 0 0 700 50H500A50 50 0 0 0 450 100V800H125V896.3A50 50 0 0 0 149.8 939.45L425 1100H750V100z","horizAdvX":"1200"},"hammer-line":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-5v13a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V9H3.5a1 1 0 0 1-1-1V5.618a1 1 0 0 1 .553-.894L8.5 2H20zm-5 2H8.972L4.5 6.236V7H11v14h2V7h2V4zm4 0h-2v3h2V4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V800A50 50 0 0 0 1000 750H750V100A50 50 0 0 0 700 50H500A50 50 0 0 0 450 100V750H175A50 50 0 0 0 125 800V919.1A50 50 0 0 0 152.65 963.8L425 1100H1000zM750 1000H448.6L225 888.2V850H550V150H650V850H750V1000zM950 1000H850V850H950V1000z","horizAdvX":"1200"},"hand-coin-fill":{"path":["M0 0h24v24H0z","M9.33 11.5h2.17A4.5 4.5 0 0 1 16 16H8.999L9 17h8v-1a5.578 5.578 0 0 0-.886-3H19a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.761 0-5.1-.59-7-1.625L6 10.071A6.967 6.967 0 0 1 9.33 11.5zM5 19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9zM18 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm-7-3a3 3 0 1 1 0 6 3 3 0 0 1 0-6z"],"unicode":"","glyph":"M466.5 625H575A225 225 0 0 0 800 400H449.9500000000001L450 350H850V400A278.90000000000003 278.90000000000003 0 0 1 805.7 550H950A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C511.95 150 395 179.5 300 231.25L300 696.45A348.34999999999997 348.34999999999997 0 0 0 466.5 625zM250 250A50 50 0 0 0 200 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H200A50 50 0 0 0 250 700V250zM900 950A150 150 0 1 0 900 650A150 150 0 0 0 900 950zM550 1100A150 150 0 1 0 550 800A150 150 0 0 0 550 1100z","horizAdvX":"1200"},"hand-coin-line":{"path":["M0 0h24v24H0z","M5 9a1 1 0 0 1 1 1 6.97 6.97 0 0 1 4.33 1.5h2.17c1.333 0 2.53.58 3.354 1.5H19a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.79 0-5.15-.603-7.06-1.658A.998.998 0 0 1 5 20H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h3zm1.001 3L6 17.022l.045.032C7.84 18.314 10.178 19 13 19c3.004 0 5.799-1.156 7.835-3.13l.133-.133-.12-.1a2.994 2.994 0 0 0-1.643-.63L19 15h-2.111c.072.322.111.656.111 1v1H8v-2l6.79-.001-.034-.078a2.501 2.501 0 0 0-2.092-1.416L12.5 13.5H9.57A4.985 4.985 0 0 0 6.002 12zM4 11H3v7h1v-7zm14-6a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm-7-5a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M250 750A50 50 0 0 0 300 700A348.5 348.5 0 0 0 516.5 625H625C691.65 625 751.5 596 792.6999999999999 550H950A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C510.5000000000001 150 392.5 180.1500000000001 297 232.9000000000001A49.900000000000006 49.900000000000006 0 0 0 250 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H250zM300.05 600L300 348.9000000000001L302.25 347.3000000000001C392 284.3 508.9 250 650 250C800.2 250 939.95 307.8 1041.75 406.5L1048.4 413.1499999999999L1042.3999999999999 418.1499999999999A149.7 149.7 0 0 1 960.2499999999998 449.65L950 450H844.4499999999999C848.05 433.9000000000001 850 417.2 850 400V350H400V450L739.5 450.05L737.8 453.9499999999999A125.04999999999998 125.04999999999998 0 0 1 633.1999999999999 524.75L625 525H478.5A249.25 249.25 0 0 1 300.1 600zM200 650H150V300H200V650zM900 950A150 150 0 1 0 900 650A150 150 0 0 0 900 950zM900 850A50 50 0 1 1 900 750A50 50 0 0 1 900 850zM550 1100A150 150 0 1 0 550 800A150 150 0 0 0 550 1100zM550 1000A50 50 0 1 1 550 900A50 50 0 0 1 550 1000z","horizAdvX":"1200"},"hand-heart-fill":{"path":["M0 0h24v24H0z","M9.33 11.5h2.17A4.5 4.5 0 0 1 16 16H8.999L9 17h8v-1a5.578 5.578 0 0 0-.886-3H19a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.761 0-5.1-.59-7-1.625L6 10.071A6.967 6.967 0 0 1 9.33 11.5zM4 9a1 1 0 0 1 .993.883L5 10V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2zm9.646-5.425L14 3.93l.354-.354a2.5 2.5 0 1 1 3.535 3.536L14 11l-3.89-3.89a2.5 2.5 0 1 1 3.536-3.535z"],"unicode":"","glyph":"M466.5 625H575A225 225 0 0 0 800 400H449.9500000000001L450 350H850V400A278.90000000000003 278.90000000000003 0 0 1 805.7 550H950A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C511.95 150 395 179.5 300 231.25L300 696.45A348.34999999999997 348.34999999999997 0 0 0 466.5 625zM200 750A50 50 0 0 0 249.65 705.85L250 700V250A50 50 0 0 0 200 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H200zM682.3000000000001 1021.25L700 1003.5L717.6999999999999 1021.2A125 125 0 1 0 894.4499999999999 844.4L700 650L505.5 844.5A125 125 0 1 0 682.3 1021.25z","horizAdvX":"1200"},"hand-heart-line":{"path":["M0 0h24v24H0z","M5 9a1 1 0 0 1 1 1 6.97 6.97 0 0 1 4.33 1.5h2.17c1.332 0 2.53.579 3.353 1.499L19 13a5 5 0 0 1 4.516 2.851C21.151 18.972 17.322 21 13 21c-2.79 0-5.15-.603-7.06-1.658A.998.998 0 0 1 5 20H2a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h3zm1.001 3L6 17.021l.045.033C7.84 18.314 10.178 19 13 19c3.004 0 5.799-1.156 7.835-3.13l.133-.133-.12-.1a2.994 2.994 0 0 0-1.643-.63L19 15l-2.112-.001c.073.322.112.657.112 1.001v1H8v-2l6.79-.001-.034-.078a2.501 2.501 0 0 0-2.092-1.416L12.5 13.5H9.57A4.985 4.985 0 0 0 6.002 12zM4 11H3v7h1v-7zm9.646-7.425L14 3.93l.354-.354a2.5 2.5 0 1 1 3.535 3.536L14 11l-3.89-3.89a2.5 2.5 0 1 1 3.536-3.535zm-2.12 1.415a.5.5 0 0 0-.06.637l.058.069L14 8.17l2.476-2.474a.5.5 0 0 0 .058-.638l-.058-.07a.5.5 0 0 0-.638-.057l-.07.058-1.769 1.768-1.767-1.77-.068-.056a.5.5 0 0 0-.638.058z"],"unicode":"","glyph":"M250 750A50 50 0 0 0 300 700A348.5 348.5 0 0 0 516.5 625H625C691.6 625 751.5 596.05 792.65 550.05L950 550A250 250 0 0 0 1175.8 407.4500000000001C1057.55 251.4 866.0999999999999 150 650 150C510.5000000000001 150 392.5 180.1500000000001 297 232.9000000000001A49.900000000000006 49.900000000000006 0 0 0 250 200H100A50 50 0 0 0 50 250V700A50 50 0 0 0 100 750H250zM300.05 600L300 348.95L302.25 347.3C392 284.3 508.9 250 650 250C800.2 250 939.95 307.8 1041.75 406.5L1048.4 413.1499999999999L1042.3999999999999 418.1499999999999A149.7 149.7 0 0 1 960.2499999999998 449.65L950 450L844.3999999999999 450.05C848.05 433.9500000000001 849.9999999999998 417.2 849.9999999999998 400V350H400V450L739.5 450.05L737.8 453.9499999999999A125.04999999999998 125.04999999999998 0 0 1 633.1999999999999 524.75L625 525H478.5A249.25 249.25 0 0 1 300.1 600zM200 650H150V300H200V650zM682.3000000000001 1021.25L700 1003.5L717.6999999999999 1021.2A125 125 0 1 0 894.4499999999999 844.4L700 650L505.5 844.5A125 125 0 1 0 682.3 1021.25zM576.3 950.5A25 25 0 0 1 573.3 918.65L576.1999999999999 915.2L700 791.5L823.8 915.2A25 25 0 0 1 826.6999999999999 947.1L823.8 950.6A25 25 0 0 1 791.9 953.45L788.4 950.55L699.9499999999999 862.1500000000001L611.5999999999999 950.65L608.1999999999999 953.45A25 25 0 0 1 576.3 950.55z","horizAdvX":"1200"},"hand-sanitizer-fill":{"path":["M0 0H24V24H0z","M17 2v2l-4-.001V6h3v2c2.21 0 4 1.79 4 4v8c0 1.105-.895 2-2 2H6c-1.105 0-2-.895-2-2v-8c0-2.21 1.79-4 4-4V6h3V3.999L7.5 4c-.63 0-1.37.49-2.2 1.6L3.7 4.4C4.87 2.84 6.13 2 7.5 2H17zm-4 10h-2v2H9v2h1.999L11 18h2l-.001-2H15v-2h-2v-2z"],"unicode":"","glyph":"M850 1100V1000L650 1000.05V900H800V800C910.5 800 1000 710.5 1000 600V200C1000 144.75 955.25 100 900 100H300C244.75 100 200 144.75 200 200V600C200 710.5 289.5 800 400 800V900H550V1000.05L375 1000C343.5 1000 306.5 975.5 265 920L185 980C243.5 1058 306.5 1100 375 1100H850zM650 600H550V500H450V400H549.95L550 300H650L649.95 400H750V500H650V600z","horizAdvX":"1200"},"hand-sanitizer-line":{"path":["M0 0H24V24H0z","M17 2v2l-4-.001V6h3v2c2.21 0 4 1.79 4 4v8c0 1.105-.895 2-2 2H6c-1.105 0-2-.895-2-2v-8c0-2.21 1.79-4 4-4V6h3V3.999L7.5 4c-.63 0-1.37.49-2.2 1.6L3.7 4.4C4.87 2.84 6.13 2 7.5 2H17zm-1 8H8c-1.105 0-2 .895-2 2v8h12v-8c0-1.105-.895-2-2-2zm-3 2v2h2v2h-2.001L13 18h-2l-.001-2H9v-2h2v-2h2z"],"unicode":"","glyph":"M850 1100V1000L650 1000.05V900H800V800C910.5 800 1000 710.5 1000 600V200C1000 144.75 955.25 100 900 100H300C244.75 100 200 144.75 200 200V600C200 710.5 289.5 800 400 800V900H550V1000.05L375 1000C343.5 1000 306.5 975.5 265 920L185 980C243.5 1058 306.5 1100 375 1100H850zM800 700H400C344.75 700 300 655.25 300 600V200H900V600C900 655.25 855.25 700 800 700zM650 600V500H750V400H649.95L650 300H550L549.95 400H450V500H550V600H650z","horizAdvX":"1200"},"handbag-fill":{"path":["M0 0h24v24H0z","M12 2a7 7 0 0 1 7 7h1.074a1 1 0 0 1 .997.923l.846 11a1 1 0 0 1-.92 1.074L20.92 22H3.08a1 1 0 0 1-1-1l.003-.077.846-11A1 1 0 0 1 3.926 9H5a7 7 0 0 1 7-7zm2 11h-4v2h4v-2zm-2-9a5 5 0 0 0-4.995 4.783L7 9h10a5 5 0 0 0-4.783-4.995L12 4z"],"unicode":"","glyph":"M600 1100A350 350 0 0 0 950 750H1003.7A50 50 0 0 0 1053.5500000000002 703.85L1095.8500000000001 153.8499999999999A50 50 0 0 0 1049.85 100.1499999999999L1046 100H154A50 50 0 0 0 104 150L104.15 153.8500000000001L146.45 703.8500000000001A50 50 0 0 0 196.3 750H250A350 350 0 0 0 600 1100zM700 550H500V450H700V550zM600 1000A250 250 0 0 1 350.25 760.8499999999999L350 750H850A250 250 0 0 1 610.8499999999999 999.75L600 1000z","horizAdvX":"1200"},"handbag-line":{"path":["M0 0h24v24H0z","M12 2a7 7 0 0 1 7 7h1.074a1 1 0 0 1 .997.923l.846 11a1 1 0 0 1-.92 1.074L20.92 22H3.08a1 1 0 0 1-1-1l.003-.077.846-11A1 1 0 0 1 3.926 9H5a7 7 0 0 1 7-7zm7.147 9H4.852l-.693 9H19.84l-.693-9zM14 13v2h-4v-2h4zm-2-9a5 5 0 0 0-4.995 4.783L7 9h10a5 5 0 0 0-4.783-4.995L12 4z"],"unicode":"","glyph":"M600 1100A350 350 0 0 0 950 750H1003.7A50 50 0 0 0 1053.5500000000002 703.85L1095.8500000000001 153.8499999999999A50 50 0 0 0 1049.85 100.1499999999999L1046 100H154A50 50 0 0 0 104 150L104.15 153.8500000000001L146.45 703.8500000000001A50 50 0 0 0 196.3 750H250A350 350 0 0 0 600 1100zM957.35 650H242.6L207.9500000000001 200H992L957.35 650zM700 550V450H500V550H700zM600 1000A250 250 0 0 1 350.25 760.8499999999999L350 750H850A250 250 0 0 1 610.8499999999999 999.75L600 1000z","horizAdvX":"1200"},"hard-drive-2-fill":{"path":["M0 0h24v24H0z","M21 3v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1zM5 16v4h14v-4H5zm10 1h2v2h-2v-2z"],"unicode":"","glyph":"M1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050zM250 400V200H950V400H250zM750 350H850V250H750V350z","horizAdvX":"1200"},"hard-drive-2-line":{"path":["M0 0h24v24H0z","M5 14h14V4H5v10zm0 2v4h14v-4H5zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm11 15h2v2h-2v-2z"],"unicode":"","glyph":"M250 500H950V1000H250V500zM250 400V200H950V400H250zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM750 350H850V250H750V350z","horizAdvX":"1200"},"hard-drive-fill":{"path":["M0 0h24v24H0z","M13.95 2H20a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8.05c.329.033.663.05 1 .05 5.523 0 10-4.477 10-10 0-.337-.017-.671-.05-1zM15 16v2h2v-2h-2zM11.938 2A8 8 0 0 1 3 10.938V3a1 1 0 0 1 1-1h7.938z"],"unicode":"","glyph":"M697.5 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V552.5C166.45 550.85 183.15 550 200 550C476.15 550 700 773.85 700 1050C700 1066.85 699.15 1083.55 697.5 1100zM750 400V300H850V400H750zM596.9 1100A400 400 0 0 0 150 653.1V1050A50 50 0 0 0 200 1100H596.9z","horizAdvX":"1200"},"hard-drive-line":{"path":["M0 0h24v24H0z","M5 10.938A8.004 8.004 0 0 0 11.938 4H5v6.938zm0 2.013V20h14V4h-5.05A10.003 10.003 0 0 1 5 12.95zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm11 14h2v2h-2v-2z"],"unicode":"","glyph":"M250 653.1A400.20000000000005 400.20000000000005 0 0 1 596.9 1000H250V653.1zM250 552.4499999999999V200H950V1000H697.5A500.15000000000003 500.15000000000003 0 0 0 250 552.5zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM750 400H850V300H750V400z","horizAdvX":"1200"},"hashtag":{"path":["M0 0h24v24H0z","M7.784 14l.42-4H4V8h4.415l.525-5h2.011l-.525 5h3.989l.525-5h2.011l-.525 5H20v2h-3.784l-.42 4H20v2h-4.415l-.525 5h-2.011l.525-5H9.585l-.525 5H7.049l.525-5H4v-2h3.784zm2.011 0h3.99l.42-4h-3.99l-.42 4z"],"unicode":"","glyph":"M389.2 500L410.2000000000001 700H200V800H420.75L447 1050H547.5500000000001L521.3 800H720.75L747 1050H847.5500000000001L821.3000000000001 800H1000V700H810.8000000000001L789.8000000000001 500H1000V400H779.25L753 150H652.4499999999999L678.7 400H479.2500000000001L453 150H352.4500000000001L378.7000000000001 400H200V500H389.2zM489.75 500H689.25L710.25 700H510.75L489.75 500z","horizAdvX":"1200"},"haze-2-fill":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm7.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM17 7a5 5 0 0 1 0 10c-1.844 0-3.51-1.04-5-3.122C10.51 15.96 8.844 17 7 17A5 5 0 0 1 7 7c1.844 0 3.51 1.04 5 3.122C13.49 8.04 15.156 7 17 7zm-5-5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM4.5 2a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM975 250A75 75 0 1 0 975 100A75 75 0 0 0 975 250zM225 250A75 75 0 1 0 225 100A75 75 0 0 0 225 250zM850 850A250 250 0 0 0 850 350C757.8000000000001 350 674.5 402 600 506.1C525.5 402 442.2 350 350 350A250 250 0 0 0 350 850C442.2 850 525.5 798 600 693.9C674.5 798 757.8000000000001 850 850 850zM600 1100A75 75 0 1 0 600 950A75 75 0 0 0 600 1100zM225 1100A75 75 0 1 0 225 950A75 75 0 0 0 225 1100zM975 1100A75 75 0 1 0 975 950A75 75 0 0 0 975 1100z","horizAdvX":"1200"},"haze-2-line":{"path":["M0 0h24v24H0z","M12 19a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm7.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM17 7a5 5 0 0 1 0 10c-1.844 0-3.51-1.04-5-3.122C10.51 15.96 8.844 17 7 17A5 5 0 0 1 7 7c1.844 0 3.51 1.04 5 3.122C13.49 8.04 15.156 7 17 7zM7 9a3 3 0 0 0 0 6c1.254 0 2.51-.875 3.759-2.854l.089-.147-.09-.145c-1.197-1.896-2.4-2.78-3.601-2.85L7 9zm10 0c-1.254 0-2.51.875-3.759 2.854l-.09.146.09.146c1.198 1.896 2.4 2.78 3.602 2.85L17 15a3 3 0 0 0 0-6zm-5-7a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM4.5 2a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm15 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"],"unicode":"","glyph":"M600 250A75 75 0 1 0 600 100A75 75 0 0 0 600 250zM975 250A75 75 0 1 0 975 100A75 75 0 0 0 975 250zM225 250A75 75 0 1 0 225 100A75 75 0 0 0 225 250zM850 850A250 250 0 0 0 850 350C757.8000000000001 350 674.5 402 600 506.1C525.5 402 442.2 350 350 350A250 250 0 0 0 350 850C442.2 850 525.5 798 600 693.9C674.5 798 757.8000000000001 850 850 850zM350 750A150 150 0 0 1 350 450C412.7 450 475.5 493.75 537.95 592.6999999999999L542.4000000000001 600.05L537.9000000000001 607.3C478.05 702.0999999999999 417.9000000000001 746.3 357.85 749.8L350 750zM850 750C787.3000000000001 750 724.5 706.25 662.05 607.3000000000001L657.55 600L662.05 592.6999999999999C721.95 497.8999999999999 782.05 453.7 842.15 450.2L850 450A150 150 0 0 1 850 750zM600 1100A75 75 0 1 0 600 950A75 75 0 0 0 600 1100zM225 1100A75 75 0 1 0 225 950A75 75 0 0 0 225 1100zM975 1100A75 75 0 1 0 975 950A75 75 0 0 0 975 1100z","horizAdvX":"1200"},"haze-fill":{"path":["M0 0h24v24H0z","M6.083 13a6 6 0 1 1 11.834 0H6.083zM2 15h10v2H2v-2zm12 0h8v2h-8v-2zm2 4h4v2h-4v-2zM4 19h10v2H4v-2zm7-18h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM19.07 3.515l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M304.1500000000001 550A300 300 0 1 0 895.8500000000001 550H304.1500000000001zM100 450H600V350H100V450zM700 450H1100V350H700V450zM800 250H1000V150H800V250zM200 250H700V150H200V250zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM953.5 1024.25L1024.2 953.55L918.1500000000002 847.5L847.45 918.2L953.5 1024.25zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"haze-line":{"path":["M0 0h24v24H0z","M6.083 13a6 6 0 1 1 11.834 0h-2.043a4 4 0 1 0-7.748 0H6.083zM2 15h10v2H2v-2zm12 0h8v2h-8v-2zm2 4h4v2h-4v-2zM4 19h10v2H4v-2zm7-18h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM19.07 3.515l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M304.1500000000001 550A300 300 0 1 0 895.8500000000001 550H793.7000000000002A200 200 0 1 1 406.3000000000001 550H304.1500000000001zM100 450H600V350H100V450zM700 450H1100V350H700V450zM800 250H1000V150H800V250zM200 250H700V150H200V250zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM953.5 1024.25L1024.2 953.55L918.1500000000002 847.5L847.45 918.2L953.5 1024.25zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"hd-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25V9H6v6h1.5v-2.25h2V15H11V9H9.5v2.25h-2zm7-.75H16a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.5.5h-1.5v-3zM13 9v6h3a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5V750H300V450H375V562.5H475V450H550V750H475V637.5H375zM725 675H800A25 25 0 0 0 825 650V550A25 25 0 0 0 800 525H725V675zM650 750V450H800A100 100 0 0 1 900 550V650A100 100 0 0 1 800 750H650z","horizAdvX":"1200"},"hd-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25h2V9H11v6H9.5v-2.25h-2V15H6V9h1.5v2.25zm7-.75v3H16a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-1.5zM13 9h3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-3V9z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5H475V750H550V450H475V562.5H375V450H300V750H375V637.5zM725 675V525H800A25 25 0 0 1 825 550V650A25 25 0 0 1 800 675H725zM650 750H800A100 100 0 0 0 900 650V550A100 100 0 0 0 800 450H650V750z","horizAdvX":"1200"},"heading":{"path":["M0 0h24v24H0z","M17 11V4h2v17h-2v-8H7v8H5V4h2v7z"],"unicode":"","glyph":"M850 650V1000H950V150H850V550H350V150H250V1000H350V650z","horizAdvX":"1200"},"headphone-fill":{"path":["M0 0h24v24H0z","M4 12h3a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7C2 6.477 6.477 2 12 2s10 4.477 10 10v7a2 2 0 0 1-2 2h-3a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h3a8 8 0 1 0-16 0z"],"unicode":"","glyph":"M200 600H350A100 100 0 0 0 450 500V250A100 100 0 0 0 350 150H200A100 100 0 0 0 100 250V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V250A100 100 0 0 0 1000 150H850A100 100 0 0 0 750 250V500A100 100 0 0 0 850 600H1000A400 400 0 1 1 200 600z","horizAdvX":"1200"},"headphone-line":{"path":["M0 0h24v24H0z","M12 4a8 8 0 0 0-8 8h3a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7C2 6.477 6.477 2 12 2s10 4.477 10 10v7a2 2 0 0 1-2 2h-3a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h3a8 8 0 0 0-8-8zM4 14v5h3v-5H4zm13 0v5h3v-5h-3z"],"unicode":"","glyph":"M600 1000A400 400 0 0 1 200 600H350A100 100 0 0 0 450 500V250A100 100 0 0 0 350 150H200A100 100 0 0 0 100 250V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V250A100 100 0 0 0 1000 150H850A100 100 0 0 0 750 250V500A100 100 0 0 0 850 600H1000A400 400 0 0 1 600 1000zM200 500V250H350V500H200zM850 500V250H1000V500H850z","horizAdvX":"1200"},"health-book-fill":{"path":["M0 0H24V24H0z","M20 2c.552 0 1 .448 1 1v18c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1v-2H3v-2h2v-2H3v-2h2v-2H3V9h2V7H3V5h2V3c0-.552.448-1 1-1h14zm-6 6h-2v3H9v2h2.999L12 16h2l-.001-3H17v-2h-3V8z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V150C1050 122.4000000000001 1027.6 100 1000 100H300C272.4000000000001 100 250 122.4000000000001 250 150V250H150V350H250V450H150V550H250V650H150V750H250V850H150V950H250V1050C250 1077.6 272.4000000000001 1100 300 1100H1000zM700 800H600V650H450V550H599.95L600 400H700L699.95 550H850V650H700V800z","horizAdvX":"1200"},"health-book-line":{"path":["M0 0H24V24H0z","M20 2c.552 0 1 .448 1 1v18c0 .552-.448 1-1 1H6c-.552 0-1-.448-1-1v-2H3v-2h2v-2H3v-2h2v-2H3V9h2V7H3V5h2V3c0-.552.448-1 1-1h14zm-1 2H7v16h12V4zm-5 4v3h3v2h-3.001L14 16h-2l-.001-3H9v-2h3V8h2z"],"unicode":"","glyph":"M1000 1100C1027.6 1100 1050 1077.6 1050 1050V150C1050 122.4000000000001 1027.6 100 1000 100H300C272.4000000000001 100 250 122.4000000000001 250 150V250H150V350H250V450H150V550H250V650H150V750H250V850H150V950H250V1050C250 1077.6 272.4000000000001 1100 300 1100H1000zM950 1000H350V200H950V1000zM700 800V650H850V550H699.95L700 400H600L599.95 550H450V650H600V800H700z","horizAdvX":"1200"},"heart-2-fill":{"path":["M0 0H24V24H0z","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236C5.515 3 8.093 2.56 10.261 3.44L6.343 7.358l1.414 1.415L12 4.53l-.013-.014.014.013c2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.35L599.9499999999999 125.75L176.05 550.35C70.85 668.1500000000001 74.8 849.0500000000001 187.8499999999999 962.15C275.75 1050 404.65 1072 513.05 1028L317.15 832.1L387.85 761.35L600 973.5L599.35 974.2L600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15z","horizAdvX":"1200"},"heart-2-line":{"path":["M0 0H24V24H0z","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zM5.172 6.172c-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454-1.487-1.49-3.881-1.562-5.453-.186l-4.202 4.203-1.415-1.414 2.825-2.827-.082-.069c-1.575-1.265-3.877-1.157-5.328.295z"],"unicode":"","glyph":"M1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.35L599.9499999999999 125.75L176.05 550.35C70.85 668.1500000000001 74.8 849.0500000000001 187.8499999999999 962.15C301.0999999999999 1075.3500000000001 482.25 1079.15 600.0499999999998 973.55C717.4999999999999 1079 898.9999999999999 1075.5 1012.15 962.15zM258.6 891.4000000000001C184.1 816.9 180.35 697.65 249 618.85L600 267.3L951 618.8000000000001C1019.7 697.6500000000001 1015.95 816.75 941.35 891.5C866.9999999999998 966 747.3 969.6 668.6999999999999 900.8L458.6 690.6500000000001L387.85 761.35L529.0999999999999 902.7L524.9999999999999 906.15C446.25 969.4 331.1499999999999 964 258.5999999999999 891.4000000000001z","horizAdvX":"1200"},"heart-3-fill":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5C9.5 20 2 16 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C475 200 100 400 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050z","horizAdvX":"1200"},"heart-3-line":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5C9.5 20 2 16 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm-3.566 15.604c.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 2.944 1.666 5.533 4.645 7.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C475 200 100 400 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050zM646.7 269.8000000000001C690.7500000000001 297.6000000000002 730.5000000000001 325.2500000000001 767.7 354.85C916.75 473.35 1000 602.85 1000 750C1000 868 923.15 950 825 950C771.1999999999999 950 713 921.5 670.6999999999999 879.3L600 808.5999999999999L529.3000000000001 879.3C487 921.5 428.8 950 375 950C278 950 200 867.2 200 750C200 602.8000000000001 283.3 473.3499999999999 432.25 354.85C469.4999999999999 325.2500000000001 509.2499999999999 297.6000000000002 553.3 269.8500000000002C568.2499999999999 260.4000000000001 583.05 251.35 599.9999999999999 241.2500000000001C616.9499999999999 251.3500000000003 631.7499999999999 260.4000000000001 646.6999999999998 269.8000000000002z","horizAdvX":"1200"},"heart-add-fill":{"path":["M0 0H24V24H0z","M19 14v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2zm1.243-9.243c2.16 2.166 2.329 5.557.507 7.91C19.926 12.24 18.99 12 18 12c-3.314 0-6 2.686-6 6 0 1.009.249 1.96.689 2.794l-.69.691-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M950 500V350H1100V250H950V100H850V250H700V350H850V500H950zM1012.15 962.15C1120.1499999999999 853.85 1128.6 684.3 1037.5 566.65C996.3 588 949.4999999999998 600 900 600C734.3 600 600 465.7 600 300C600 249.55 612.45 202 634.45 160.3L599.95 125.75L176.0500000000001 550.35C70.85 668.1500000000001 74.8 849.0500000000001 187.85 962.15C301.1 1075.3500000000001 482.25 1079.15 600.0500000000001 973.55C717.5000000000001 1079 899 1075.5 1012.15 962.15z","horizAdvX":"1200"},"heart-add-line":{"path":["M0 0H24V24H0z","M19 14v3h3v2h-3.001L19 22h-2l-.001-3H14v-2h3v-3h2zm1.243-9.243c2.262 2.268 2.34 5.88.236 8.235l-1.42-1.418c1.331-1.524 1.261-3.914-.232-5.404-1.503-1.499-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-1.575-1.412-3.991-1.35-5.494.154-1.49 1.49-1.565 3.875-.192 5.451l8.432 8.446L12 21.485 3.52 12.993c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M950 500V350H1100V250H949.95L950 100H850L849.9499999999999 250H700V350H850V500H950zM1012.15 962.15C1125.25 848.75 1129.1499999999999 668.15 1023.95 550.4000000000001L952.9499999999998 621.3C1019.4999999999998 697.5 1015.9999999999998 817 941.35 891.5C866.1999999999999 966.45 745.3499999999999 969.65 666.8499999999999 899.15L600.0999999999999 839.25L533.3 899.1C454.55 969.7 333.75 966.6 258.6 891.4000000000001C184.0999999999999 816.9 180.3499999999999 697.65 249 618.85L670.5999999999999 196.5500000000001L600 125.75L176 550.35C70.8 668.15 74.75 849.05 187.8 962.15C301.0500000000001 1075.35 482.2 1079.15 600 973.55C717.45 1079 898.9499999999999 1075.5 1012.1 962.15z","horizAdvX":"1200"},"heart-fill":{"path":["M0 0H24V24H0z","M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228z"],"unicode":"","glyph":"M600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15C1125.2500000000002 848.75 1129.15 668.15 1023.9500000000002 550.35L599.9500000000002 125.75L176.0500000000001 550.35C70.8500000000001 668.1500000000001 74.8000000000001 849.0500000000001 187.8500000000001 962.15C301.1000000000001 1075.3500000000001 482.2500000000002 1079.15 600.0500000000001 973.55z","horizAdvX":"1200"},"heart-line":{"path":["M0 0H24V24H0z","M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228zm6.826 1.641c-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-1.575-1.412-3.99-1.35-5.494.154-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454z"],"unicode":"","glyph":"M600.05 973.55C717.5 1079 899 1075.5 1012.15 962.15C1125.2500000000002 848.75 1129.15 668.15 1023.9500000000002 550.35L599.9500000000002 125.75L176.0500000000001 550.35C70.8500000000001 668.1500000000001 74.8000000000001 849.0500000000001 187.8500000000001 962.15C301.1000000000001 1075.3500000000001 482.2500000000002 1079.15 600.0500000000001 973.55zM941.35 891.5C866.3499999999999 966.6 745.3499999999999 969.65 666.8499999999999 899.15L600.0999999999999 839.25L533.3 899.1C454.55 969.7 333.7999999999999 966.6 258.6 891.4000000000001C184.0999999999999 816.9 180.3499999999999 697.65 249 618.85L600 267.3L951 618.8000000000001C1019.7 697.6500000000001 1015.95 816.75 941.35 891.5z","horizAdvX":"1200"},"heart-pulse-fill":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.978-1.187-7.084-3.937-9.132-8.5h4.698l.934-1.556 3 5L13.566 13H17v-2h-4.566l-.934 1.556-3-5L6.434 11H2.21C2.074 10.363 2 9.696 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C501.1 184.35 245.8 321.85 143.4 550H378.3L425 627.8000000000001L575 377.8000000000001L678.3000000000001 550H850V650H621.7L575.0000000000001 572.1999999999999L425.0000000000001 822.1999999999999L321.7 650H110.5C103.7 681.85 100 715.2 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050z","horizAdvX":"1200"},"heart-pulse-line":{"path":["M0 0H24V24H0z","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.977-1.186-7.083-3.937-9.131-8.499L1 13v-2h1.21C2.074 10.364 2 9.698 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm0 2c-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 .685.09 1.352.267 2h2.167L8.5 7.556l3 5L12.434 11H17v2h-3.434L11.5 16.444l-3-5L7.566 13H5.108c.79 1.374 1.985 2.668 3.537 3.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4z"],"unicode":"","glyph":"M825 1050C976.9 1050 1100 925 1100 750C1100 400 725 200 600 125C501.15 184.3 245.85 321.85 143.45 549.95L50 550V650H110.5C103.7 681.8 100 715.0999999999999 100 750C100 925 225 1050 375 1050C468 1050 550 1000 600 950C650 1000 732 1050 825 1050zM825 950C771.1999999999999 950 713 921.5 670.6999999999999 879.3L600 808.5999999999999L529.3000000000001 879.3C487 921.5 428.8 950 375 950C278 950 200 867.2 200 750C200 715.75 204.5 682.4 213.35 650H321.7L425 822.2L575 572.1999999999999L621.6999999999999 650H850V550H678.3L575 377.8000000000001L425 627.8000000000001L378.3 550H255.4C294.9 481.3 354.65 416.6 432.25 354.85C469.4999999999999 325.2500000000001 509.2499999999999 297.6000000000002 553.3 269.8500000000002C568.2499999999999 260.4000000000001 583.05 251.35 599.9999999999999 241.2500000000001C616.9499999999999 251.3500000000003 631.7499999999999 260.4000000000001 646.6999999999998 269.8000000000002C690.7499999999999 297.6000000000003 730.4999999999999 325.2500000000001 767.6999999999998 354.8500000000003C916.75 473.35 1000 602.85 1000 750C1000 868 923.15 950 825 950z","horizAdvX":"1200"},"hearts-fill":{"path":["M0 0H24V24H0z","M17.363 11.045c1.404-1.393 3.68-1.393 5.084 0 1.404 1.394 1.404 3.654 0 5.047L17 21.5l-5.447-5.408c-1.404-1.393-1.404-3.653 0-5.047 1.404-1.393 3.68-1.393 5.084 0l.363.36.363-.36zm1.88-6.288c.94.943 1.503 2.118 1.689 3.338-1.333-.248-2.739-.01-3.932.713-2.15-1.303-4.994-1.03-6.856.818-2.131 2.115-2.19 5.515-.178 7.701l.178.185 2.421 2.404L11 21.485 2.52 12.993C.417 10.637.496 7.019 2.757 4.757c2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228z"],"unicode":"","glyph":"M868.15 647.75C938.35 717.4000000000001 1052.1499999999999 717.4000000000001 1122.35 647.75C1192.55 578.05 1192.55 465.05 1122.35 395.4000000000001L850 125L577.6500000000001 395.4000000000001C507.45 465.0500000000001 507.45 578.0500000000001 577.6500000000001 647.7500000000001C647.85 717.4000000000001 761.65 717.4000000000001 831.85 647.7500000000001L850 629.7500000000001L868.15 647.7500000000001zM962.15 962.15C1009.15 915 1037.3 856.25 1046.6 795.25C979.95 807.6500000000001 909.6499999999997 795.75 850 759.6000000000001C742.5 824.7500000000001 600.3 811.1000000000001 507.2 718.7C400.65 612.9500000000002 397.7000000000001 442.9500000000001 498.3 333.6500000000001L507.2 324.4000000000002L628.25 204.2000000000002L550 125.75L126 550.35C20.85 668.15 24.8 849.05 137.85 962.15C251.1 1075.35 432.25 1079.15 550.05 973.55C667.5 1079 849 1075.5 962.15 962.15z","horizAdvX":"1200"},"hearts-line":{"path":["M0 0H24V24H0z","M19.243 4.757c1.462 1.466 2.012 3.493 1.65 5.38.568.16 1.106.463 1.554.908 1.404 1.394 1.404 3.654 0 5.047L17 21.5l-3.022-3L11 21.485 2.52 12.993C.417 10.637.496 7.019 2.757 4.757c2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zm-6.281 7.708c-.616.611-.616 1.597 0 2.208L17 18.682l4.038-4.009c.616-.611.616-1.597 0-2.208-.624-.62-1.642-.62-2.268.002l-1.772 1.754-1.407-1.396-.363-.36c-.624-.62-1.642-.62-2.266 0zm-8.79-6.293c-1.49 1.49-1.565 3.875-.192 5.451L11 18.654l1.559-1.562-1.006-1c-1.404-1.393-1.404-3.653 0-5.047 1.404-1.393 3.68-1.393 5.084 0l.363.36.363-.36c.425-.421.93-.715 1.465-.882.416-1.367.078-2.912-1.001-3.993-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-1.575-1.412-3.99-1.35-5.494.154z"],"unicode":"","glyph":"M962.15 962.15C1035.25 888.85 1062.75 787.5 1044.6499999999999 693.15C1073.05 685.15 1099.95 670 1122.3499999999997 647.75C1192.5499999999997 578.05 1192.5499999999997 465.05 1122.3499999999997 395.4000000000001L850 125L698.9 275L550 125.75L126 550.35C20.85 668.15 24.8 849.05 137.85 962.15C251.1 1075.35 432.25 1079.15 550.05 973.55C667.5 1079 849 1075.5 962.15 962.15zM648.1 576.75C617.3 546.1999999999999 617.3 496.9 648.1 466.35L850 265.9000000000001L1051.9 466.3500000000001C1082.7 496.9000000000001 1082.7 546.2 1051.9 576.7500000000001C1020.7 607.75 969.8 607.75 938.5 576.6500000000001L849.9000000000001 488.95L779.5500000000001 558.75L761.4000000000001 576.75C730.2 607.75 679.3000000000001 607.75 648.1 576.75zM208.6 891.4000000000001C134.1 816.9 130.35 697.65 199 618.85L550 267.3L627.9499999999999 345.4000000000001L577.65 395.4000000000001C507.4499999999999 465.0500000000001 507.4499999999999 578.0500000000001 577.65 647.7500000000001C647.8499999999999 717.4000000000001 761.65 717.4000000000001 831.85 647.7500000000001L850 629.7500000000001L868.15 647.7500000000001C889.4 668.8000000000001 914.65 683.5000000000001 941.4 691.8500000000001C962.2 760.2 945.3 837.45 891.3499999999999 891.5000000000001C816.3499999999999 966.6000000000003 695.3499999999999 969.65 616.8499999999999 899.1500000000001L550.0999999999999 839.2500000000001L483.3 899.1000000000001C404.55 969.7 283.7999999999999 966.6000000000003 208.5999999999999 891.4000000000001z","horizAdvX":"1200"},"heavy-showers-fill":{"path":["M0 0h24v24H0z","M13 18v5h-2v-5H9v3H7v-3.252a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001v3h-2v-3h-2z"],"unicode":"","glyph":"M650 300V50H550V300H450V150H350V312.5999999999999A400 400 0 1 0 822.8999999999999 845.0999999999999A275 275 0 1 0 875 300L850 299.95V149.9500000000001H750V299.95H650z","horizAdvX":"1200"},"heavy-showers-line":{"path":["M0 0h24v24H0z","M5 16.93a8 8 0 1 1 11.458-9.831A5.5 5.5 0 0 1 19 17.793v-2.13a3.5 3.5 0 1 0-4-5.612V10a6 6 0 1 0-10 4.472v2.458zM7 14h2v6H7v-6zm8 0h2v6h-2v-6zm-4 3h2v6h-2v-6z"],"unicode":"","glyph":"M250 353.5A400 400 0 1 0 822.8999999999999 845.05A275 275 0 0 0 950 310.35V416.85A175 175 0 1 1 750 697.45V700A300 300 0 1 1 250 476.4V353.5zM350 500H450V200H350V500zM750 500H850V200H750V500zM550 350H650V50H550V350z","horizAdvX":"1200"},"history-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12h2c0 4.418 3.582 8 8 8s8-3.582 8-8-3.582-8-8-8C9.536 4 7.332 5.114 5.865 6.865L8 9H2V3l2.447 2.446C6.28 3.336 8.984 2 12 2zm1 5v4.585l3.243 3.243-1.415 1.415L11 12.413V7h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600H200C200 379.1 379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000C476.8 1000 366.6 944.3 293.25 856.75L400 750H100V1050L222.35 927.7C314 1033.2 449.2 1100 600 1100zM650 850V620.75L812.15 458.5999999999999L741.4 387.8499999999999L550 579.35V850H650z","horizAdvX":"1200"},"history-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12h2c0 4.418 3.582 8 8 8s8-3.582 8-8-3.582-8-8-8C9.25 4 6.824 5.387 5.385 7.5H8v2H2v-6h2V6c1.824-2.43 4.729-4 8-4zm1 5v4.585l3.243 3.243-1.415 1.415L11 12.413V7h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600H200C200 379.1 379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000C462.5 1000 341.2 930.65 269.25 825H400V725H100V1025H200V900C291.2 1021.5 436.45 1100 600 1100zM650 850V620.75L812.15 458.5999999999999L741.4 387.8499999999999L550 579.35V850H650z","horizAdvX":"1200"},"home-2-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200z","horizAdvX":"1200"},"home-2-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250z","horizAdvX":"1200"},"home-3-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8 15v2h8v-2H8z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM400 450V350H800V450H400z","horizAdvX":"1200"},"home-3-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2-4h8v2H8v-2z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM400 450H800V350H400V450z","horizAdvX":"1200"},"home-4-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-9-7v6h2v-6h-2z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM550 550V250H650V550H550z","horizAdvX":"1200"},"home-4-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zm-6-2h5V9.157l-6-5.454-6 5.454V19h5v-6h2v6z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM650 250H900V742.15L600 1014.85L300 742.15V250H550V550H650V250z","horizAdvX":"1200"},"home-5-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-10-7v6h2v-6h-2z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM550 550V250H650V550H550z","horizAdvX":"1200"},"home-5-line":{"path":["M0 0h24v24H0z","M13 19h6V9.978l-7-5.444-7 5.444V19h6v-6h2v6zm8 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"],"unicode":"","glyph":"M650 250H950V701.1L600 973.3L250 701.1V250H550V550H650V250zM1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200z","horizAdvX":"1200"},"home-6-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zM7 15v2h10v-2H7z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM350 450V350H850V450H350z","horizAdvX":"1200"},"home-6-line":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14zM7 15h10v2H7v-2z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM950 250V701.1L600 973.3L250 701.1V250H950zM350 450H850V350H350V450z","horizAdvX":"1200"},"home-7-fill":{"path":["M0 0h24v24H0z","M19 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9H0l10.327-9.388a1 1 0 0 1 1.346 0L22 11h-3v9zm-8-5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M950 200A50 50 0 0 0 900 150H200A50 50 0 0 0 150 200V650H0L516.35 1119.4A50 50 0 0 0 583.65 1119.4L1100 650H950V200zM550 450A125 125 0 1 1 550 700A125 125 0 0 1 550 450z","horizAdvX":"1200"},"home-7-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm6-4a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM600 450A125 125 0 1 0 600 700A125 125 0 0 0 600 450z","horizAdvX":"1200"},"home-8-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM9 10v6h6v-6H9zm2 2h2v2h-2v-2z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM450 700V400H750V700H450zM550 600H650V500H550V600z","horizAdvX":"1200"},"home-8-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm3-9h6v6H9v-6zm2 2v2h2v-2h-2z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM450 700H750V400H450V700zM550 600V500H650V600H550z","horizAdvX":"1200"},"home-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200z","horizAdvX":"1200"},"home-gear-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM8.592 13.808l-.991.572 1 1.733.993-.573a3.5 3.5 0 0 0 1.405.811v1.145h2.002V16.35a3.5 3.5 0 0 0 1.405-.81l.992.572L16.4 14.38l-.991-.572a3.504 3.504 0 0 0 0-1.62l.991-.573-1-1.733-.993.573A3.5 3.5 0 0 0 13 9.645V8.5h-2.002v1.144a3.5 3.5 0 0 0-1.405.811l-.992-.573L7.6 11.616l.991.572a3.504 3.504 0 0 0 0 1.62zm3.408.69a1.5 1.5 0 1 1-.002-3.001 1.5 1.5 0 0 1 .002 3z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM429.6 509.6L380.0500000000001 481L430.0500000000001 394.35L479.7 423A175 175 0 0 1 549.95 382.4500000000001V325.2000000000001H650.0500000000001V382.4999999999999A175 175 0 0 1 720.3000000000001 423L769.9 394.3999999999999L819.9999999999999 481L770.4499999999999 509.5999999999999A175.2 175.2 0 0 1 770.4499999999999 590.5999999999999L819.9999999999999 619.2499999999999L769.9999999999999 705.8999999999999L720.3499999999999 677.2499999999999A175 175 0 0 1 650 717.75V775H549.9000000000001V717.8A175 175 0 0 1 479.6500000000001 677.25L430.0500000000002 705.9000000000001L380 619.2L429.55 590.6A175.2 175.2 0 0 1 429.55 509.6zM600 475.1A75 75 0 1 0 599.9 625.15A75 75 0 0 0 600 475.15z","horizAdvX":"1200"},"home-gear-line":{"path":["M0 0h24v24H0z","M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19zm2.591-5.191a3.508 3.508 0 0 1 0-1.622l-.991-.572 1-1.732.991.573a3.495 3.495 0 0 1 1.404-.812V8.5h2v1.144c.532.159 1.01.44 1.404.812l.991-.573 1 1.731-.991.573a3.508 3.508 0 0 1 0 1.622l.991.572-1 1.731-.991-.572a3.495 3.495 0 0 1-1.404.811v1.145h-2V16.35a3.495 3.495 0 0 1-1.404-.811l-.991.572-1-1.73.991-.573zm3.404.688a1.5 1.5 0 1 0 0-2.998 1.5 1.5 0 0 0 0 2.998z"],"unicode":"","glyph":"M950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM300 250H900V742.15L600 1014.85L300 742.15V250zM429.5500000000001 509.55A175.4 175.4 0 0 0 429.5500000000001 590.65L380.0000000000001 619.2499999999999L430.0000000000001 705.8499999999999L479.5500000000001 677.1999999999998A174.75000000000003 174.75000000000003 0 0 0 549.75 717.7999999999998V775H649.75V717.8C676.35 709.8499999999999 700.25 695.8 719.95 677.2L769.5 705.85L819.5 619.3000000000001L769.95 590.65A175.4 175.4 0 0 0 769.95 509.5500000000001L819.5 480.95L769.5 394.4000000000001L719.95 423A174.75000000000003 174.75000000000003 0 0 0 649.75 382.4500000000001V325.2000000000001H549.75V382.4999999999999A174.75000000000003 174.75000000000003 0 0 0 479.5500000000001 423.05L430.0000000000001 394.45L380.0000000000001 480.95L429.5500000000001 509.6zM599.75 475.1499999999999A75 75 0 1 1 599.75 625.0499999999998A75 75 0 0 1 599.75 475.1499999999999z","horizAdvX":"1200"},"home-heart-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-8-3l3.359-3.359a2.25 2.25 0 1 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 1 0-3.182 3.182L12 17z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM600 350L767.95 517.95A112.5 112.5 0 1 1 608.85 677.0500000000001L600 668.2L591.15 677.0500000000001A112.5 112.5 0 1 1 432.05 517.95L600 350z","horizAdvX":"1200"},"home-heart-line":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zm-2-1V9.157l-6-5.454-6 5.454V19h12zm-6-2l-3.359-3.359a2.25 2.25 0 1 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 1 1 3.182 3.182L12 17z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM900 250V742.15L600 1014.85L300 742.15V250H900zM600 350L432.05 517.95A112.5 112.5 0 1 0 591.15 677.0500000000001L600 668.2L608.85 677.0500000000001A112.5 112.5 0 1 0 767.95 517.95L600 350z","horizAdvX":"1200"},"home-line":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.222a1 1 0 0 1 1.228 0l8 6.222a1 1 0 0 1 .386.79V20zm-2-1V9.978l-7-5.444-7 5.444V19h14z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V725.5A50 50 0 0 0 169.3 765L569.3 1076.1000000000001A50 50 0 0 0 630.6999999999999 1076.1000000000001L1030.6999999999998 765A50 50 0 0 0 1049.9999999999998 725.5V200zM950 250V701.1L600 973.3L250 701.1V250H950z","horizAdvX":"1200"},"home-smile-2-fill":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V734.3A50 50 0 0 0 169 773.55L569 1089.1A50 50 0 0 0 631 1089.1L1030.9999999999998 773.6000000000001A50 50 0 0 0 1049.9999999999998 734.3000000000001V200zM350 600A250 250 0 0 1 850 600H750A150 150 0 0 0 450 600H350z","horizAdvX":"1200"},"home-smile-2-line":{"path":["M0 0h24v24H0z","M19 19V9.799l-7-5.522-7 5.522V19h14zm2 1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.314a1 1 0 0 1 .38-.785l8-6.311a1 1 0 0 1 1.24 0l8 6.31a1 1 0 0 1 .38.786V20zM7 12h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M950 250V710.05L600 986.15L250 710.05V250H950zM1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V734.3A50 50 0 0 0 169 773.55L569 1089.1A50 50 0 0 0 631 1089.1L1030.9999999999998 773.6000000000001A50 50 0 0 0 1049.9999999999998 734.3000000000001V200zM350 600H450A150 150 0 0 1 750 600H850A250 250 0 0 0 350 600z","horizAdvX":"1200"},"home-smile-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7.5 13a4.5 4.5 0 1 0 9 0h-2a2.5 2.5 0 1 1-5 0h-2z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM375 550A225 225 0 1 1 825 550H725A125 125 0 1 0 475 550H375z","horizAdvX":"1200"},"home-smile-line":{"path":["M0 0h24v24H0z","M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM7.5 13h2a2.5 2.5 0 1 0 5 0h2a4.5 4.5 0 1 1-9 0z"],"unicode":"","glyph":"M300 250H900V742.15L600 1014.85L300 742.15V250zM950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM375 550H475A125 125 0 1 1 725 550H825A225 225 0 1 0 375 550z","horizAdvX":"1200"},"home-wifi-fill":{"path":["M0 0h24v24H0z","M20 20a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9zM7 11v2a5 5 0 0 1 5 5h2a7 7 0 0 0-7-7zm0 4v3h3a3 3 0 0 0-3-3z"],"unicode":"","glyph":"M1000 200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200zM350 650V550A250 250 0 0 0 600 300H700A350 350 0 0 1 350 650zM350 450V300H500A150 150 0 0 1 350 450z","horizAdvX":"1200"},"home-wifi-line":{"path":["M0 0h24v24H0z","M6 19h12V9.157l-6-5.454-6 5.454V19zm13 2H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM8 10a7 7 0 0 1 7 7h-2a5 5 0 0 0-5-5v-2zm0 4a3 3 0 0 1 3 3H8v-3z"],"unicode":"","glyph":"M300 250H900V742.15L600 1014.85L300 742.15V250zM950 150H250A50 50 0 0 0 200 200V650H50L566.35 1119.4A50 50 0 0 0 633.65 1119.4L1150 650H1000V200A50 50 0 0 0 950 150zM400 700A350 350 0 0 0 750 350H650A250 250 0 0 1 400 600V700zM400 500A150 150 0 0 0 550 350H400V500z","horizAdvX":"1200"},"honor-of-kings-fill":{"path":["M0 0H24V24H0z","M21.158 4.258c.034 3.5.591 4.811.788 6.701.301 2.894-.657 5.894-2.875 8.112-3.666 3.666-9.471 3.89-13.4.673l2.852-2.853c2.344 1.67 5.617 1.454 7.72-.648 2.102-2.103 2.318-5.377.648-7.72l4.267-4.265zm-2.83-.002l-2.851 2.853c-2.344-1.67-5.617-1.454-7.72.648-2.102 2.103-2.318 5.376-.648 7.72l-4.267 4.265c-.034-3.5-.591-4.811-.788-6.701-.301-2.894.657-5.894 2.875-8.112 3.666-3.666 9.471-3.89 13.4-.673zM12 8c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 2.5c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"],"unicode":"","glyph":"M1057.9 987.1C1059.6 812.1 1087.45 746.5500000000001 1097.3000000000002 652.0500000000001C1112.35 507.35 1064.45 357.3499999999999 953.55 246.4500000000001C770.25 63.1500000000001 480.0000000000001 51.95 283.5500000000001 212.8L426.1500000000001 355.4500000000001C543.35 271.9500000000001 707 282.75 812.1500000000001 387.85C917.2500000000002 493.0000000000001 928.0500000000002 656.7 844.5500000000001 773.85L1057.9 987.1zM916.4 987.2L773.8500000000001 844.55C656.6500000000002 928.05 493.0000000000002 917.25 387.8500000000002 812.1500000000001C282.7500000000003 707 271.9500000000002 543.35 355.4500000000002 426.15L142.1000000000002 212.9C140.4000000000002 387.9 112.5500000000002 453.4499999999999 102.7000000000002 547.9499999999999C87.6500000000002 692.65 135.5500000000002 842.65 246.4500000000002 953.55C429.7500000000003 1136.85 720.0000000000002 1148.05 916.4500000000002 987.2zM600 800C710.5 800 800 710.5 800 600S710.5 400 600 400S400 489.5 400 600S489.4999999999999 800 600 800zM600 675C558.6 675 525 641.4 525 600S558.6 525 600 525S675 558.6 675 600S641.4 675 600 675z","horizAdvX":"1200"},"honor-of-kings-line":{"path":["M0 0H24V24H0z","M18.328 4.256l-1.423 1.423c-3.138-2.442-7.677-2.22-10.562.664-2.374 2.374-2.944 5.868-1.71 8.78l2.417-2.417c-.213-1.503.258-3.085 1.414-4.242 1.71-1.71 4.352-1.922 6.293-.636l-1.464 1.464c-1.115-.532-2.49-.337-3.414.587-.924.923-1.12 2.299-.587 3.414l-6.45 6.45c-.034-3.5-.591-4.812-.788-6.702-.301-2.894.657-5.894 2.875-8.112 3.666-3.666 9.471-3.89 13.4-.673zm2.83.002c.034 3.5.591 4.811.788 6.701.301 2.894-.657 5.894-2.875 8.112-3.666 3.666-9.471 3.89-13.4.673l1.424-1.423c3.138 2.442 7.677 2.22 10.562-.664 2.374-2.374 2.944-5.868 1.71-8.78l-2.417 2.417c.213 1.503-.258 3.085-1.414 4.242-1.71 1.71-4.352 1.922-6.293.636l1.464-1.464c1.115.532 2.49.337 3.414-.587.924-.923 1.12-2.299.587-3.414l6.45-6.45z"],"unicode":"","glyph":"M916.4 987.2L845.25 916.05C688.35 1038.15 461.4000000000001 1027.05 317.1500000000001 882.85C198.4500000000001 764.15 169.9500000000001 589.4499999999999 231.6500000000001 443.85L352.5000000000001 564.7C341.8500000000001 639.85 365.4000000000001 718.95 423.2000000000001 776.8000000000001C508.7000000000002 862.3000000000001 640.8000000000002 872.9000000000001 737.85 808.6000000000001L664.6500000000001 735.4000000000001C608.9000000000001 762.0000000000001 540.1500000000001 752.2500000000001 493.95 706.0500000000002C447.7500000000001 659.9000000000001 437.9500000000001 591.1000000000001 464.6000000000001 535.3500000000001L142.1000000000001 212.85C140.4000000000001 387.85 112.5500000000001 453.4500000000002 102.7000000000001 547.95C87.6500000000001 692.6500000000001 135.5500000000001 842.6500000000001 246.4500000000001 953.55C429.7500000000001 1136.8500000000001 720.0000000000001 1148.0500000000002 916.45 987.2zM1057.9 987.1C1059.6 812.1 1087.45 746.5500000000001 1097.3000000000002 652.0500000000001C1112.35 507.35 1064.45 357.3499999999999 953.55 246.4500000000001C770.25 63.1500000000001 480.0000000000001 51.95 283.5500000000001 212.8L354.7500000000001 283.9500000000001C511.65 161.8500000000001 738.6 172.9500000000003 882.85 317.1500000000002C1001.55 435.8500000000003 1030.05 610.5500000000002 968.35 756.1500000000001L847.5000000000001 635.3000000000002C858.1500000000002 560.1500000000001 834.6000000000001 481.0500000000001 776.8000000000002 423.2000000000002C691.3000000000002 337.7000000000001 559.2000000000002 327.1000000000002 462.1500000000001 391.4000000000001L535.3500000000001 464.6000000000001C591.1000000000001 438.0000000000001 659.8500000000001 447.7500000000003 706.0500000000001 493.9500000000002C752.2500000000001 540.1000000000001 762.0500000000002 608.9000000000001 735.4000000000001 664.6500000000001L1057.9 987.15z","horizAdvX":"1200"},"honour-fill":{"path":["M0 0h24v24H0z","M21 4v14.721a.5.5 0 0 1-.298.458L12 23.03 3.298 19.18A.5.5 0 0 1 3 18.72V4H1V2h22v2h-2zM8 12v2h8v-2H8zm0-4v2h8V8H8z"],"unicode":"","glyph":"M1050 1000V263.9500000000001A25 25 0 0 0 1035.1000000000001 241.0500000000001L600 48.5L164.9 241A25 25 0 0 0 150 264V1000H50V1100H1150V1000H1050zM400 600V500H800V600H400zM400 800V700H800V800H400z","horizAdvX":"1200"},"honour-line":{"path":["M0 0h24v24H0z","M21 4v14.721a.5.5 0 0 1-.298.458L12 23.03 3.298 19.18A.5.5 0 0 1 3 18.72V4H1V2h22v2h-2zM5 4v13.745l7 3.1 7-3.1V4H5zm3 4h8v2H8V8zm0 4h8v2H8v-2z"],"unicode":"","glyph":"M1050 1000V263.9500000000001A25 25 0 0 0 1035.1000000000001 241.0500000000001L600 48.5L164.9 241A25 25 0 0 0 150 264V1000H50V1100H1150V1000H1050zM250 1000V312.7500000000001L600 157.75L950 312.7500000000001V1000H250zM400 800H800V700H400V800zM400 600H800V500H400V600z","horizAdvX":"1200"},"hospital-fill":{"path":["M0 0h24v24H0z","M21 20h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8H9v2h2v2h2v-2h2V8h-2V6h-2v2zm3 12h2v-6H8v6h2v-4h4v4z"],"unicode":"","glyph":"M1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM550 800H450V700H550V600H650V700H750V800H650V900H550V800zM700 200H800V500H400V200H500V400H700V200z","horizAdvX":"1200"},"hospital-line":{"path":["M0 0h24v24H0z","M8 20v-6h8v6h3V4H5v16h3zm2 0h4v-4h-4v4zm11 0h2v2H1v-2h2V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v17zM11 8V6h2v2h2v2h-2v2h-2v-2H9V8h2z"],"unicode":"","glyph":"M400 200V500H800V200H950V1000H250V200H400zM500 200H700V400H500V200zM1050 200H1150V100H50V200H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V200zM550 800V900H650V800H750V700H650V600H550V700H450V800H550z","horizAdvX":"1200"},"hotel-bed-fill":{"path":["M0 0h24v24H0z","M22 11v9h-2v-3H4v3H2V4h2v10h8V7h6a4 4 0 0 1 4 4zM8 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M1100 650V200H1000V350H200V200H100V1000H200V500H600V850H900A200 200 0 0 0 1100 650zM400 550A150 150 0 1 0 400 850A150 150 0 0 0 400 550z","horizAdvX":"1200"},"hotel-bed-line":{"path":["M0 0h24v24H0z","M22 11v9h-2v-3H4v3H2V4h2v10h8V7h6a4 4 0 0 1 4 4zm-2 3v-3a2 2 0 0 0-2-2h-4v5h6zM8 11a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M1100 650V200H1000V350H200V200H100V1000H200V500H600V850H900A200 200 0 0 0 1100 650zM1000 500V650A100 100 0 0 1 900 750H700V500H1000zM400 650A50 50 0 1 1 400 750A50 50 0 0 1 400 650zM400 550A150 150 0 1 0 400 850A150 150 0 0 0 400 550z","horizAdvX":"1200"},"hotel-fill":{"path":["M0 0h24v24H0z","M17 19h2v-8h-6v8h2v-6h2v6zM3 19V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2H2v-2h1zm4-8v2h2v-2H7zm0 4v2h2v-2H7zm0-8v2h2V7H7z"],"unicode":"","glyph":"M850 250H950V650H650V250H750V550H850V250zM150 250V1000A50 50 0 0 0 200 1050H900A50 50 0 0 0 950 1000V750H1050V250H1100V150H100V250H150zM350 650V550H450V650H350zM350 450V350H450V450H350zM350 850V750H450V850H350z","horizAdvX":"1200"},"hotel-line":{"path":["M0 0h24v24H0z","M22 21H2v-2h1V4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5h2v10h1v2zm-5-2h2v-8h-6v8h2v-6h2v6zm0-10V5H5v14h6V9h6zM7 11h2v2H7v-2zm0 4h2v2H7v-2zm0-8h2v2H7V7z"],"unicode":"","glyph":"M1100 150H100V250H150V1000A50 50 0 0 0 200 1050H900A50 50 0 0 0 950 1000V750H1050V250H1100V150zM850 250H950V650H650V250H750V550H850V250zM850 750V950H250V250H550V750H850zM350 650H450V550H350V650zM350 450H450V350H350V450zM350 850H450V750H350V850z","horizAdvX":"1200"},"hotspot-fill":{"path":["M0 0h24v24H0z","M11 2v9h7v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h6zm2 5a2 2 0 0 1 2 2h-2V7zm0-3a5 5 0 0 1 5 5h-2a3 3 0 0 0-3-3V4zm0-3a8 8 0 0 1 8 8h-2a6 6 0 0 0-6-6V1z"],"unicode":"","glyph":"M550 1100V650H900V150A50 50 0 0 0 850 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H550zM650 850A100 100 0 0 0 750 750H650V850zM650 1000A250 250 0 0 0 900 750H800A150 150 0 0 1 650 900V1000zM650 1150A400 400 0 0 0 1050 750H950A300 300 0 0 1 650 1050V1150z","horizAdvX":"1200"},"hotspot-line":{"path":["M0 0h24v24H0z","M11 2v2H7v16h10v-9h2v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h5zm2 5a2 2 0 0 1 2 2h-2V7zm0-3a5 5 0 0 1 5 5h-2a3 3 0 0 0-3-3V4zm0-3a8 8 0 0 1 8 8h-2a6 6 0 0 0-6-6V1z"],"unicode":"","glyph":"M550 1100V1000H350V200H850V650H950V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H550zM650 850A100 100 0 0 0 750 750H650V850zM650 1000A250 250 0 0 0 900 750H800A150 150 0 0 1 650 900V1000zM650 1150A400 400 0 0 0 1050 750H950A300 300 0 0 1 650 1050V1150z","horizAdvX":"1200"},"hq-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25V9H6v6h1.5v-2.25h2V15H11V9H9.5v2.25h-2zM16.25 15H17a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h.75v1.5h1.5V15zm-1.75-4.5h2v3h-2v-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5V750H300V450H375V562.5H475V450H550V750H475V637.5H375zM812.5 450H850A50 50 0 0 1 900 500V700A50 50 0 0 1 850 750H700A50 50 0 0 1 650 700V500A50 50 0 0 1 700 450H737.5V375H812.5V450zM725 675H825V525H725V675z","horizAdvX":"1200"},"hq-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.5 8.25h2V9H11v6H9.5v-2.25h-2V15H6V9h1.5v2.25zM16.25 15v1.5h-1.5V15H14a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-.75zm-1.75-4.5v3h2v-3h-2z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM375 637.5H475V750H550V450H475V562.5H375V450H300V750H375V637.5zM812.5 450V375H737.5V450H700A50 50 0 0 0 650 500V700A50 50 0 0 0 700 750H850A50 50 0 0 0 900 700V500A50 50 0 0 0 850 450H812.5zM725 675V525H825V675H725z","horizAdvX":"1200"},"html5-fill":{"path":["M0 0h24v24H0z","M12 18.178l4.62-1.256.623-6.778H9.026L8.822 7.89h8.626l.227-2.211H6.325l.636 6.678h7.82l-.261 2.866-2.52.667-2.52-.667-.158-1.844h-2.27l.329 3.544L12 18.178zM3 2h18l-1.623 18L12 22l-7.377-2L3 2z"],"unicode":"","glyph":"M600 291.0999999999999L831 353.9L862.1500000000001 692.8H451.3L441.1 805.5H872.4L883.75 916.05H316.25L348.05 582.1500000000001H739.0500000000001L726.0000000000001 438.85L600.0000000000001 405.5000000000001L474.0000000000001 438.85L466.1000000000001 531.0500000000001H352.6000000000002L369.0500000000002 353.8500000000002L600 291.0999999999999zM150 1100H1050L968.85 200L600 100L231.15 200L150 1100z","horizAdvX":"1200"},"html5-line":{"path":["M0 0h24v24H0z","M12 18.178l-4.62-1.256-.328-3.544h2.27l.158 1.844 2.52.667 2.52-.667.26-2.866H6.96l-.635-6.678h11.35l-.227 2.21H8.822l.204 2.256h8.217l-.624 6.778L12 18.178zM3 2h18l-1.623 18L12 22l-7.377-2L3 2zm2.188 2L6.49 18.434 12 19.928l5.51-1.494L18.812 4H5.188z"],"unicode":"","glyph":"M600 291.0999999999999L369 353.9L352.6 531.1H466.1L473.9999999999999 438.9L599.9999999999999 405.5500000000001L725.9999999999999 438.9L738.9999999999999 582.2H348L316.25 916.1H883.75L872.4 805.6H441.1L451.3 692.8H862.1500000000001L830.9500000000002 353.9L600 291.0999999999999zM150 1100H1050L968.85 200L600 100L231.15 200L150 1100zM259.4000000000001 1000L324.5 278.3L600 203.5999999999999L875.4999999999999 278.3L940.6 1000H259.4z","horizAdvX":"1200"},"ie-fill":{"path":["M0 0h24v24H0z","M8.612 20.12c-2.744 1.49-5.113 1.799-6.422.49-1.344-1.34-.628-4.851 1.313-8.373A23.204 23.204 0 0 1 7.127 7.32c.187-.187 1.125-1.124 1.187-1.124 0 0-.5.313-.562.313-1.95 1.095-3.663 3.08-4.037 3.525a9.004 9.004 0 0 1 9.468-7.009c3.095-1.402 5.974-1.726 7.192-.51 1.125 1.123 1.062 2.995.125 5.242-.01.021-.018.043-.027.064A8.96 8.96 0 0 1 21.5 12c0 .38-.023.753-.069 1.12h-.804a4.104 4.104 0 0 1-.142.003H8.689v.187c.062 1.997 1.812 3.744 3.937 3.744 1.5 0 2.937-.811 3.562-1.997h4.78A9.003 9.003 0 0 1 8.612 20.12zm-.607-.321a9.03 9.03 0 0 1-3.972-4.742c-1.161 2.282-1.46 4.19-.469 5.18.813.812 2.438.624 4.438-.436l.003-.002zM20.172 7.292a8.19 8.19 0 0 1 .015-.034c.75-1.622.813-2.994.125-3.806-.869-.868-2.54-.75-4.522.168a9.032 9.032 0 0 1 4.382 3.672zm-3.609 3.46v-.061c-.125-2.06-1.75-3.62-3.75-3.62-2.125 0-3.936 1.685-4.061 3.62v.062h7.811z"],"unicode":"","glyph":"M430.6 194C293.4000000000001 119.5 174.95 104.05 109.5 169.5C42.3 236.5 78.1 412.05 175.15 588.15A1160.2 1160.2 0 0 0 356.35 834C365.7 843.35 412.6 890.2 415.7 890.2C415.7 890.2 390.7 874.55 387.6 874.55C290.1 819.8000000000001 204.45 720.5500000000001 185.75 698.3000000000001A450.2 450.2 0 0 0 659.15 1048.75C813.9 1118.8500000000001 957.85 1135.0500000000002 1018.75 1074.25C1075 1018.1 1071.8500000000001 924.5 1025 812.1500000000001C1024.5 811.1000000000001 1024.1 810 1023.65 808.95A448.00000000000006 448.00000000000006 0 0 0 1075 600C1075 581 1073.85 562.35 1071.55 544H1031.3500000000001A205.2 205.2 0 0 0 1024.2500000000002 543.8499999999999H434.45V534.5C437.55 434.65 525.05 347.3 631.3 347.3C706.3 347.3 778.15 387.8499999999999 809.4 447.1499999999999H1048.4A450.15 450.15 0 0 0 430.6 194zM400.2500000000001 210.0500000000001A451.49999999999994 451.49999999999994 0 0 0 201.6500000000001 447.1500000000001C143.6000000000001 333.0500000000001 128.6500000000001 237.65 178.2000000000001 188.1500000000001C218.8500000000001 147.55 300.1000000000001 156.9500000000001 400.1 209.9500000000001L400.2500000000001 210.0500000000001zM1008.6 835.4000000000001A409.49999999999994 409.49999999999994 0 0 0 1009.35 837.1C1046.8500000000001 918.2 1050 986.8 1015.6 1027.4C972.15 1070.8 888.6000000000001 1064.9 789.5 1019A451.59999999999997 451.59999999999997 0 0 0 1008.6 835.4000000000001zM828.1500000000001 662.4000000000001V665.45C821.9000000000001 768.45 740.6500000000001 846.45 640.6500000000001 846.45C534.4000000000001 846.45 443.8500000000002 762.2 437.6000000000002 665.45V662.3500000000001H828.1500000000001z","horizAdvX":"1200"},"ie-line":{"path":["M0 0h24v24H0z","M18.159 10A6.002 6.002 0 0 0 6.84 10H18.16zM6.583 13a6.002 6.002 0 0 0 11.08 2.057h3.304A9.003 9.003 0 0 1 8.612 20.12c-2.744 1.491-5.113 1.8-6.422.491-1.344-1.34-.628-4.851 1.313-8.373a23.624 23.624 0 0 1 2.499-3.665c.359-.433.735-.852 1.125-1.252-.275.055-1.88.851-3.412 2.714a9.004 9.004 0 0 1 9.468-7.009c3.095-1.402 5.974-1.726 7.192-.51 1.125 1.123 1.062 2.995.125 5.242-.01.021-.018.043-.027.064A8.96 8.96 0 0 1 21.5 12c0 .338-.019.672-.055 1H6.583zm1.422 6.799a9.03 9.03 0 0 1-3.972-4.742c-1.161 2.282-1.46 4.19-.469 5.18.813.812 2.438.624 4.438-.436l.003-.002zM20.172 7.292a8.19 8.19 0 0 1 .015-.034c.75-1.622.813-2.994.125-3.806-.869-.868-2.54-.75-4.522.168a9.032 9.032 0 0 1 4.382 3.672z"],"unicode":"","glyph":"M907.95 700A300.09999999999997 300.09999999999997 0 0 1 342 700H908zM329.1500000000001 550A300.09999999999997 300.09999999999997 0 0 1 883.15 447.15H1048.35A450.15 450.15 0 0 0 430.6 194C293.4000000000001 119.4500000000001 174.95 104 109.5 169.4500000000001C42.3 236.45 78.1 411.9999999999999 175.15 588.0999999999999A1181.1999999999998 1181.1999999999998 0 0 0 300.1 771.3499999999999C318.05 793 336.85 813.95 356.35 833.95C342.6 831.2 262.35 791.4 185.75 698.25A450.2 450.2 0 0 0 659.15 1048.7C813.9 1118.8 957.85 1135 1018.75 1074.2C1075 1018.05 1071.8500000000001 924.45 1025 812.1C1024.5 811.05 1024.1 809.95 1023.65 808.9A448.00000000000006 448.00000000000006 0 0 0 1075 600C1075 583.1 1074.0500000000002 566.4 1072.25 550H329.1500000000001zM400.2500000000001 210.0500000000001A451.49999999999994 451.49999999999994 0 0 0 201.6500000000001 447.1500000000001C143.6000000000001 333.0500000000001 128.6500000000001 237.65 178.2000000000001 188.1500000000001C218.8500000000001 147.55 300.1000000000001 156.9500000000001 400.1 209.9500000000001L400.2500000000001 210.0500000000001zM1008.6 835.4000000000001A409.49999999999994 409.49999999999994 0 0 0 1009.35 837.1C1046.8500000000001 918.2 1050 986.8 1015.6 1027.4C972.15 1070.8 888.6000000000001 1064.9 789.5 1019A451.59999999999997 451.59999999999997 0 0 0 1008.6 835.4000000000001z","horizAdvX":"1200"},"image-2-fill":{"path":["M0 0h24v24H0z","M5 11.1l2-2 5.5 5.5 3.5-3.5 3 3V5H5v6.1zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 645L350 745L625 470L800 645L950 495V950H250V645zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM775 700A75 75 0 1 0 775 850A75 75 0 0 0 775 700z","horizAdvX":"1200"},"image-2-line":{"path":["M0 0h24v24H0z","M5 11.1l2-2 5.5 5.5 3.5-3.5 3 3V5H5v6.1zm0 2.829V19h3.1l2.986-2.985L7 11.929l-2 2zM10.929 19H19v-2.071l-3-3L10.929 19zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 645L350 745L625 470L800 645L950 495V950H250V645zM250 503.55V250H405L554.3000000000001 399.25L350 603.55L250 503.55zM546.45 250H950V353.5500000000001L800 503.5500000000001L546.45 250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM775 700A75 75 0 1 0 775 850A75 75 0 0 0 775 700z","horizAdvX":"1200"},"image-add-fill":{"path":["M0 0h24v24H0z","M21 15v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2zm.008-12c.548 0 .992.445.992.993v9.349A5.99 5.99 0 0 0 20 13V5H4l.001 14 9.292-9.293a.999.999 0 0 1 1.32-.084l.093.085 3.546 3.55a6.003 6.003 0 0 0-3.91 7.743L2.992 21A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016zM8 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M1050 450V300H1200V200H1050V50H950V200H800V300H950V450H1050zM1050.3999999999999 1050C1077.8 1050 1100 1027.75 1100 1000.35V532.9A299.50000000000006 299.50000000000006 0 0 1 1000 550V950H200L200.05 250L664.65 714.65A49.95 49.95 0 0 0 730.65 718.8499999999999L735.3 714.5999999999999L912.6 537.0999999999999A300.15000000000003 300.15000000000003 0 0 1 717.0999999999999 149.9499999999998L149.6 150A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999zM400 850A100 100 0 1 0 400 650A100 100 0 0 0 400 850z","horizAdvX":"1200"},"image-add-line":{"path":["M0 0h24v24H0z","M21 15v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2zm.008-12c.548 0 .992.445.992.993V13h-2V5H4v13.999L14 9l3 3v2.829l-3-3L6.827 19H14v2H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016zM8 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M1050 450V300H1200V200H1050V50H950V200H800V300H950V450H1050zM1050.3999999999999 1050C1077.8 1050 1100 1027.75 1100 1000.35V550H1000V950H200V250.0499999999999L700 750L850 600V458.55L700 608.55L341.35 250H700V150H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999zM400 850A100 100 0 1 0 400 650A100 100 0 0 0 400 850z","horizAdvX":"1200"},"image-edit-fill":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v1.757l-2 2V5H5v8.1l4-4 4.328 4.329-1.327 1.327-.006 4.239 4.246.006 1.33-1.33L18.899 19H19v-2.758l2-2V20c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm1.778 4.808l1.414 1.414L15.414 17l-1.416-.002.002-1.412 7.778-7.778zM15.5 7c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5S14 9.328 14 8.5 14.672 7 15.5 7z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V912.15L950 812.1500000000001V950H250V545L450 745L666.4 528.5500000000001L600.05 462.2L599.75 250.2500000000001L812.05 249.9500000000002L878.55 316.4500000000001L944.95 250H950V387.9L1050 487.9V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM1088.8999999999999 809.6L1159.6 738.9000000000001L770.6999999999999 350L699.9 350.0999999999999L700 420.7L1088.8999999999999 809.5999999999999zM775 850C816.4 850 850 816.4000000000001 850 775S816.4 700 775 700S700 733.6 700 775S733.6 850 775 850z","horizAdvX":"1200"},"image-edit-line":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v1.757l-2 2V5H5v8.1l4-4 4.328 4.329-1.415 1.413L9 11.93l-4 3.999V19h10.533l.708.001 1.329-1.33L18.9 19h.1v-2.758l2-2V20c0 .552-.448 1-1 1H4c-.55 0-1-.45-1-1V4c0-.552.448-1 1-1h16zm1.778 4.808l1.414 1.414L15.414 17l-1.416-.002.002-1.412 7.778-7.778zM15.5 7c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5S14 9.328 14 8.5 14.672 7 15.5 7z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V912.15L950 812.1500000000001V950H250V545L450 745L666.4 528.5500000000001L595.65 457.9000000000001L450 603.5L250 403.55V250H776.65L812.05 249.95L878.5 316.4500000000001L944.9999999999998 250H950V387.9L1050 487.9V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.5 150 150 172.5 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM1088.8999999999999 809.6L1159.6 738.9000000000001L770.6999999999999 350L699.9 350.0999999999999L700 420.7L1088.8999999999999 809.5999999999999zM775 850C816.4 850 850 816.4000000000001 850 775S816.4 700 775 700S700 733.6 700 775S733.6 850 775 850z","horizAdvX":"1200"},"image-fill":{"path":["M0 0h24v24H0z","M20 5H4v14l9.292-9.294a1 1 0 0 1 1.414 0L20 15.01V5zM2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM8 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M1000 950H200V250L664.6 714.7A50 50 0 0 0 735.3 714.7L1000 449.5V950zM100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM400 650A100 100 0 1 0 400 850A100 100 0 0 0 400 650z","horizAdvX":"1200"},"image-line":{"path":["M0 0h24v24H0z","M4.828 21l-.02.02-.021-.02H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H4.828zM20 15V5H4v14L14 9l6 6zm0 2.828l-6-6L6.828 19H20v-1.172zM8 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M241.4 150L240.4000000000001 149L239.3500000000001 150H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H241.4zM1000 450V950H200V250L700 750L1000 450zM1000 308.6L700 608.6L341.4000000000001 250H1000V308.6zM400 650A100 100 0 1 0 400 850A100 100 0 0 0 400 650z","horizAdvX":"1200"},"inbox-archive-fill":{"path":["M0 0h24v24H0z","M4 3h16l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3zm9 11v-4h-2v4H8l4 4 4-4h-3zm6.764-7l-1-2H5.237l-1 2h15.527z"],"unicode":"","glyph":"M200 1050H1000L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050zM650 500V700H550V500H400L600 300L800 500H650zM988.2 850L938.2 950H261.85L211.85 850H988.2z","horizAdvX":"1200"},"inbox-archive-line":{"path":["M0 0h24v24H0z","M4 3h16l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3zm16 6H4v10h16V9zm-.236-2l-1-2H5.237l-1 2h15.527zM13 14h3l-4 4-4-4h3v-4h2v4z"],"unicode":"","glyph":"M200 1050H1000L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050zM1000 750H200V250H1000V750zM988.2 850L938.2 950H261.85L211.85 850H988.2zM650 500H800L600 300L400 500H550V700H650V500z","horizAdvX":"1200"},"inbox-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 9a3 3 0 0 0 6 0h5V5H4v7h5z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 600A150 150 0 0 1 750 600H1000V950H200V600H450z","horizAdvX":"1200"},"inbox-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 11h-3.416a5.001 5.001 0 0 1-9.168 0H4v5h16v-5zm0-2V5H4v7h5a3 3 0 0 0 6 0h5z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 500H829.1999999999999A250.05000000000004 250.05000000000004 0 0 0 370.8 500H200V250H1000V500zM1000 600V950H200V600H450A150 150 0 0 1 750 600H1000z","horizAdvX":"1200"},"inbox-unarchive-fill":{"path":["M0 0h24v24H0z","M20 3l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3h16zm-8 7l-4 4h3v4h2v-4h3l-4-4zm6.764-5H5.236l-.999 2h15.527l-1-2z"],"unicode":"","glyph":"M1000 1050L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050H1000zM600 700L400 500H550V300H650V500H800L600 700zM938.2 950H261.8L211.85 850H988.2L938.2 950z","horizAdvX":"1200"},"inbox-unarchive-line":{"path":["M0 0h24v24H0z","M20 3l2 4v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.004L4 3h16zm0 6H4v10h16V9zm-8 1l4 4h-3v4h-2v-4H8l4-4zm6.764-5H5.236l-.999 2h15.527l-1-2z"],"unicode":"","glyph":"M1000 1050L1100 850V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V849.8L200 1050H1000zM1000 750H200V250H1000V750zM600 700L800 500H650V300H550V500H400L600 700zM938.2 950H261.8L211.85 850H988.2L938.2 950z","horizAdvX":"1200"},"increase-decrease-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 8V9H7v2H5v2h2v2h2v-2h2v-2H9zm4 0v2h6v-2h-6z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 650V750H350V650H250V550H350V450H450V550H550V650H450zM650 650V550H950V650H650z","horizAdvX":"1200"},"increase-decrease-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm5 6h2v2H9v2H7v-2H5v-2h2V9h2v2zm4 0h6v2h-6v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM450 650H550V550H450V450H350V550H250V650H350V750H450V650zM650 650H950V550H650V650z","horizAdvX":"1200"},"indent-decrease":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h18v2H3v-2zm8-5h10v2H11v-2zm0-5h10v2H11V9zm-8 3.5L7 9v7l-4-3.5z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H1050V150H150V250zM550 500H1050V400H550V500zM550 750H1050V650H550V750zM150 575L350 750V400L150 575z","horizAdvX":"1200"},"indent-increase":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 15h18v2H3v-2zm8-5h10v2H11v-2zm0-5h10v2H11V9zm-4 3.5L3 16V9l4 3.5z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 250H1050V150H150V250zM550 500H1050V400H550V500zM550 750H1050V650H550V750zM350 575L150 400V750L350 575z","horizAdvX":"1200"},"indeterminate-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 11v2h10v-2H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 650V550H850V650H350z","horizAdvX":"1200"},"indeterminate-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-9h10v2H7v-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 650H850V550H350V650z","horizAdvX":"1200"},"information-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 650V350H650V650H550zM550 850V750H650V850H550z","horizAdvX":"1200"},"information-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM11 7h2v2h-2V7zm0 4h2v6h-2v-6z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 850H650V750H550V850zM550 650H650V350H550V650z","horizAdvX":"1200"},"infrared-thermometer-fill":{"path":["M0 0H24V24H0z","M21 2v9h-3.001L18 12c0 2.21-1.79 4-4 4h-1.379l-.613 3.111.911 1.321c.314.455.2 1.078-.255 1.391-.167.115-.365.177-.568.177H3l2.313-10.024L3 11l4-9h14zm-5.001 9h-2.394l-.591 3H14c1.105 0 2-.895 2-2l-.001-1z"],"unicode":"","glyph":"M1050 1100V650H899.9499999999999L900 600C900 489.5 810.5 400 700 400H631.0500000000001L600.4000000000001 244.45L645.95 178.3999999999999C661.65 155.6500000000001 655.95 124.5 633.1999999999999 108.8499999999999C624.85 103.1000000000001 614.9499999999999 100 604.8 100H150L265.6500000000001 601.1999999999999L150 650L350 1100H1050zM799.9499999999999 650H680.2499999999999L650.6999999999999 500H700C755.25 500 800 544.75 800 600L799.95 650z","horizAdvX":"1200"},"infrared-thermometer-line":{"path":["M0 0H24V24H0z","M21 2v9h-3.001L18 12c0 2.21-1.79 4-4 4h-1.379l-.613 3.111.911 1.321c.314.455.2 1.078-.255 1.391-.167.115-.365.177-.568.177H3l2.313-10.024L3 11l4-9h14zm-2 2H8.3L5.655 9.95l1.985.837L5.514 20h4.678l-.309-.448L11.96 9H19V4zm-3.001 7h-2.394l-.591 3H14c1.105 0 2-.895 2-2l-.001-1z"],"unicode":"","glyph":"M1050 1100V650H899.9499999999999L900 600C900 489.5 810.5 400 700 400H631.0500000000001L600.4000000000001 244.45L645.95 178.3999999999999C661.65 155.6500000000001 655.95 124.5 633.1999999999999 108.8499999999999C624.85 103.1000000000001 614.9499999999999 100 604.8 100H150L265.6500000000001 601.1999999999999L150 650L350 1100H1050zM950 1000H415.0000000000001L282.75 702.5L382 660.6500000000001L275.7 200H509.6L494.15 222.4L598 750H950V1000zM799.95 650H680.25L650.7 500H700C755.25 500 800 544.75 800 600L799.95 650z","horizAdvX":"1200"},"ink-bottle-fill":{"path":["M0 0H24V24H0z","M16 9l4.371 1.749c.38.151.629.52.629.928V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-9.323c0-.409.249-.777.629-.928L8 9h8zm4 5H8v5h12v-5zM16 3c.552 0 1 .448 1 1v4H7V4c0-.552.448-1 1-1h8z"],"unicode":"","glyph":"M800 750L1018.55 662.55C1037.55 655 1050.0000000000002 636.55 1050.0000000000002 616.15V150C1050.0000000000002 122.4000000000001 1027.6000000000001 100 1000.0000000000002 100H200C172.4 100 150 122.4000000000001 150 150V616.15C150 636.6 162.45 655 181.45 662.5500000000001L400 750H800zM1000 500H400V250H1000V500zM800 1050C827.6 1050 850 1027.6 850 1000V800H350V1000C350 1027.6 372.4000000000001 1050 400 1050H800z","horizAdvX":"1200"},"ink-bottle-line":{"path":["M0 0H24V24H0z","M16 9l4.371 1.749c.38.151.629.52.629.928V21c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-9.323c0-.409.249-.777.629-.928L8 9h8zm-.385 2h-7.23L5 12.354V20h14v-1H8v-5h11v-1.646L15.615 11zM16 3c.552 0 1 .448 1 1v4H7V4c0-.552.448-1 1-1h8zm-1 2H9v1h6V5z"],"unicode":"","glyph":"M800 750L1018.55 662.55C1037.55 655 1050.0000000000002 636.55 1050.0000000000002 616.15V150C1050.0000000000002 122.4000000000001 1027.6000000000001 100 1000.0000000000002 100H200C172.4 100 150 122.4000000000001 150 150V616.15C150 636.6 162.45 655 181.45 662.5500000000001L400 750H800zM780.75 650H419.25L250 582.3000000000001V200H950V250H400V500H950V582.3000000000001L780.75 650zM800 1050C827.6 1050 850 1027.6 850 1000V800H350V1000C350 1027.6 372.4000000000001 1050 400 1050H800zM750 950H450V900H750V950z","horizAdvX":"1200"},"input-cursor-move":{"path":["M0 0h24v24H0z","M8 21v-2h3V5H8V3h8v2h-3v14h3v2H8zM18.05 7.05L23 12l-4.95 4.95-1.414-1.414L20.172 12l-3.536-3.536L18.05 7.05zm-12.1 0l1.414 1.414L3.828 12l3.536 3.536L5.95 16.95 1 12l4.95-4.95z"],"unicode":"","glyph":"M400 150V250H550V950H400V1050H800V950H650V250H800V150H400zM902.5 847.5L1150 600L902.5 352.5L831.8 423.2000000000001L1008.6 600L831.8 776.8L902.5 847.5zM297.5000000000001 847.5L368.2000000000001 776.8L191.4 600L368.2 423.2000000000001L297.5 352.5L50 600L297.5 847.5z","horizAdvX":"1200"},"input-method-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5.869 12h4.262l.82 2h2.216L13 7h-2L6.833 17H9.05l.82-2zm.82-2L12 9.8l1.311 3.2H10.69z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM493.45 450H706.55L747.5500000000001 350H858.3500000000001L650 850H550L341.6500000000001 350H452.5000000000001L493.5000000000001 450zM534.45 550L600 710L665.55 550H534.5z","horizAdvX":"1200"},"input-method-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5.869 12l-.82 2H6.833L11 7h2l4.167 10H14.95l-.82-2H9.87zm.82-2h2.622L12 9.8 10.689 13z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM493.45 450L452.45 350H341.6500000000001L550 850H650L858.3500000000001 350H747.5L706.5 450H493.4999999999999zM534.45 550H665.55L600 710L534.45 550z","horizAdvX":"1200"},"insert-column-left":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zm-1 2h-4v14h4V5zM6 7c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2H5v1.999L3 11v2l2-.001V15h2v-2.001L9 13v-2l-2-.001V9z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H700C672.4 150 650 172.4000000000001 650 200V1000C650 1027.6 672.4 1050 700 1050H1000zM950 950H750V250H950V950zM300 850C438.05 850 550 738.05 550 600S438.05 350 300 350S50 461.95 50 600S161.95 850 300 850zM350 750H250V650.05L150 650V550L250 550.05V450H350V550.05L450 550V650L350 650.05V750z","horizAdvX":"1200"},"insert-column-right":{"path":["M0 0H24V24H0z","M10 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zM9 5H5v14h4V5zm9 2c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2h-2v1.999L15 11v2l2-.001V15h2v-2.001L21 13v-2l-2-.001V9z"],"unicode":"","glyph":"M500 1050C527.6 1050 550 1027.6 550 1000V200C550 172.4000000000001 527.6 150 500 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H500zM450 950H250V250H450V950zM900 850C1038.05 850 1150 738.05 1150 600S1038.05 350 900 350S650 461.95 650 600S761.95 850 900 850zM950 750H850V650.05L750 650V550L850 550.05V450H950V550.05L1050 550V650L950 650.05V750z","horizAdvX":"1200"},"insert-row-bottom":{"path":["M0 0H24V24H0z","M12 13c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2h-2v1.999L9 17v2l2-.001V21h2v-2.001L15 19v-2l-2-.001V15zm7-12c.552 0 1 .448 1 1v6c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zM5 5v4h14V5H5z"],"unicode":"","glyph":"M600 550C738.05 550 850 438.05 850 300S738.05 50 600 50S350 161.9500000000001 350 300S461.95 550 600 550zM650 450H550V350.0500000000001L450 350V250L550 250.0500000000001V150H650V250.0500000000001L750 250V350L650 350.0500000000001V450zM1000 1050C1027.6 1050 1050 1027.6 1050 1000V700C1050 672.4 1027.6 650 1000 650H200C172.4 650 150 672.4 150 700V1000C150 1027.6 172.4 1050 200 1050H1000zM250 950V750H950V950H250z","horizAdvX":"1200"},"insert-row-top":{"path":["M0 0H24V24H0z","M20 13c.552 0 1 .448 1 1v6c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-6c0-.552.448-1 1-1h16zm-1 2H5v4h14v-4zM12 1c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm1 2h-2v1.999L9 5v2l2-.001V9h2V6.999L15 7V5l-2-.001V3z"],"unicode":"","glyph":"M1000 550C1027.6 550 1050 527.6 1050 500V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V500C150 527.6 172.4 550 200 550H1000zM950 450H250V250H950V450zM600 1150C738.05 1150 850 1038.05 850 900S738.05 650 600 650S350 761.95 350 900S461.95 1150 600 1150zM650 1050H550V950.05L450 950V850L550 850.05V750H650V850.05L750 850V950L650 950.05V1050z","horizAdvX":"1200"},"instagram-fill":{"path":["M0 0h24v24H0z","M12 2c2.717 0 3.056.01 4.122.06 1.065.05 1.79.217 2.428.465.66.254 1.216.598 1.772 1.153a4.908 4.908 0 0 1 1.153 1.772c.247.637.415 1.363.465 2.428.047 1.066.06 1.405.06 4.122 0 2.717-.01 3.056-.06 4.122-.05 1.065-.218 1.79-.465 2.428a4.883 4.883 0 0 1-1.153 1.772 4.915 4.915 0 0 1-1.772 1.153c-.637.247-1.363.415-2.428.465-1.066.047-1.405.06-4.122.06-2.717 0-3.056-.01-4.122-.06-1.065-.05-1.79-.218-2.428-.465a4.89 4.89 0 0 1-1.772-1.153 4.904 4.904 0 0 1-1.153-1.772c-.248-.637-.415-1.363-.465-2.428C2.013 15.056 2 14.717 2 12c0-2.717.01-3.056.06-4.122.05-1.066.217-1.79.465-2.428a4.88 4.88 0 0 1 1.153-1.772A4.897 4.897 0 0 1 5.45 2.525c.638-.248 1.362-.415 2.428-.465C8.944 2.013 9.283 2 12 2zm0 5a5 5 0 1 0 0 10 5 5 0 0 0 0-10zm6.5-.25a1.25 1.25 0 0 0-2.5 0 1.25 1.25 0 0 0 2.5 0zM12 9a3 3 0 1 1 0 6 3 3 0 0 1 0-6z"],"unicode":"","glyph":"M600 1100C735.85 1100 752.8000000000001 1099.5 806.1 1097C859.35 1094.5 895.5999999999999 1086.15 927.5 1073.75C960.5 1061.05 988.3 1043.85 1016.1 1016.1A245.4 245.4 0 0 0 1073.75 927.5C1086.1 895.6500000000001 1094.4999999999998 859.3499999999999 1097 806.1C1099.35 752.8 1099.9999999999998 735.85 1099.9999999999998 600C1099.9999999999998 464.15 1099.4999999999998 447.2 1097 393.9C1094.4999999999998 340.65 1086.1 304.4000000000001 1073.75 272.5A244.14999999999998 244.14999999999998 0 0 0 1016.1 183.9000000000001A245.75000000000003 245.75000000000003 0 0 0 927.5 126.25C895.65 113.9000000000001 859.35 105.5000000000002 806.1 103C752.8 100.6500000000001 735.85 100.0000000000002 600 100.0000000000002C464.15 100.0000000000002 447.2 100.5000000000002 393.9 103C340.6500000000001 105.5000000000002 304.4 113.9000000000001 272.5 126.25A244.5 244.5 0 0 0 183.9 183.9000000000001A245.19999999999996 245.19999999999996 0 0 0 126.25 272.5C113.85 304.35 105.5 340.65 103 393.9C100.65 447.2000000000001 100 464.15 100 600C100 735.85 100.5 752.8000000000001 103 806.1C105.5 859.4 113.85 895.6 126.25 927.5A244 244 0 0 0 183.9 1016.1A244.85 244.85 0 0 0 272.5 1073.75C304.4 1086.15 340.6 1094.5 393.9 1097C447.2000000000001 1099.35 464.15 1100 600 1100zM600 850A250 250 0 1 1 600 350A250 250 0 0 1 600 850zM925 862.5A62.5 62.5 0 0 1 800 862.5A62.5 62.5 0 0 1 925 862.5zM600 750A150 150 0 1 0 600 450A150 150 0 0 0 600 750z","horizAdvX":"1200"},"instagram-line":{"path":["M0 0h24v24H0z","M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm0-2a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm6.5-.25a1.25 1.25 0 0 1-2.5 0 1.25 1.25 0 0 1 2.5 0zM12 4c-2.474 0-2.878.007-4.029.058-.784.037-1.31.142-1.798.332-.434.168-.747.369-1.08.703a2.89 2.89 0 0 0-.704 1.08c-.19.49-.295 1.015-.331 1.798C4.006 9.075 4 9.461 4 12c0 2.474.007 2.878.058 4.029.037.783.142 1.31.331 1.797.17.435.37.748.702 1.08.337.336.65.537 1.08.703.494.191 1.02.297 1.8.333C9.075 19.994 9.461 20 12 20c2.474 0 2.878-.007 4.029-.058.782-.037 1.309-.142 1.797-.331.433-.169.748-.37 1.08-.702.337-.337.538-.65.704-1.08.19-.493.296-1.02.332-1.8.052-1.104.058-1.49.058-4.029 0-2.474-.007-2.878-.058-4.029-.037-.782-.142-1.31-.332-1.798a2.911 2.911 0 0 0-.703-1.08 2.884 2.884 0 0 0-1.08-.704c-.49-.19-1.016-.295-1.798-.331C14.925 4.006 14.539 4 12 4zm0-2c2.717 0 3.056.01 4.122.06 1.065.05 1.79.217 2.428.465.66.254 1.216.598 1.772 1.153a4.908 4.908 0 0 1 1.153 1.772c.247.637.415 1.363.465 2.428.047 1.066.06 1.405.06 4.122 0 2.717-.01 3.056-.06 4.122-.05 1.065-.218 1.79-.465 2.428a4.883 4.883 0 0 1-1.153 1.772 4.915 4.915 0 0 1-1.772 1.153c-.637.247-1.363.415-2.428.465-1.066.047-1.405.06-4.122.06-2.717 0-3.056-.01-4.122-.06-1.065-.05-1.79-.218-2.428-.465a4.89 4.89 0 0 1-1.772-1.153 4.904 4.904 0 0 1-1.153-1.772c-.248-.637-.415-1.363-.465-2.428C2.013 15.056 2 14.717 2 12c0-2.717.01-3.056.06-4.122.05-1.066.217-1.79.465-2.428a4.88 4.88 0 0 1 1.153-1.772A4.897 4.897 0 0 1 5.45 2.525c.638-.248 1.362-.415 2.428-.465C8.944 2.013 9.283 2 12 2z"],"unicode":"","glyph":"M600 750A150 150 0 1 1 600 450A150 150 0 0 1 600 750zM600 850A250 250 0 1 0 600 350A250 250 0 0 0 600 850zM925 862.5A62.5 62.5 0 0 0 800 862.5A62.5 62.5 0 0 0 925 862.5zM600 1000C476.3 1000 456.1 999.65 398.55 997.1C359.35 995.25 333.05 990 308.65 980.5C286.95 972.1 271.3 962.05 254.65 945.35A144.5 144.5 0 0 1 219.45 891.35C209.95 866.8499999999999 204.7 840.6 202.9 801.45C200.3 746.25 200 726.95 200 600C200 476.3 200.35 456.1 202.9 398.55C204.75 359.4 210 333.0500000000001 219.45 308.7C227.95 286.9500000000001 237.95 271.3 254.55 254.7000000000001C271.4 237.9000000000001 287.05 227.8500000000002 308.55 219.5500000000001C333.25 210.0000000000001 359.55 204.7000000000001 398.55 202.9000000000002C453.7499999999999 200.3 473.05 200 600 200C723.7 200 743.9 200.35 801.45 202.9C840.55 204.75 866.9000000000001 210 891.3000000000001 219.4499999999999C912.95 227.9 928.7 237.9500000000001 945.3 254.5500000000001C962.15 271.4000000000001 972.2 287.05 980.5 308.55C990 333.2 995.3 359.55 997.1 398.55C999.7 453.75 1000 473.0500000000001 1000 600C1000 723.7 999.65 743.9 997.1 801.45C995.25 840.55 990 866.95 980.5 891.35A145.55 145.55 0 0 1 945.35 945.35A144.2 144.2 0 0 1 891.3499999999999 980.55C866.85 990.05 840.55 995.3 801.4499999999998 997.1C746.25 999.7 726.9499999999999 1000 600 1000zM600 1100C735.85 1100 752.8000000000001 1099.5 806.1 1097C859.35 1094.5 895.5999999999999 1086.15 927.5 1073.75C960.5 1061.05 988.3 1043.85 1016.1 1016.1A245.4 245.4 0 0 0 1073.75 927.5C1086.1 895.6500000000001 1094.4999999999998 859.3499999999999 1097 806.1C1099.35 752.8 1099.9999999999998 735.85 1099.9999999999998 600C1099.9999999999998 464.15 1099.4999999999998 447.2 1097 393.9C1094.4999999999998 340.65 1086.1 304.4000000000001 1073.75 272.5A244.14999999999998 244.14999999999998 0 0 0 1016.1 183.9000000000001A245.75000000000003 245.75000000000003 0 0 0 927.5 126.25C895.65 113.9000000000001 859.35 105.5000000000002 806.1 103C752.8 100.6500000000001 735.85 100.0000000000002 600 100.0000000000002C464.15 100.0000000000002 447.2 100.5000000000002 393.9 103C340.6500000000001 105.5000000000002 304.4 113.9000000000001 272.5 126.25A244.5 244.5 0 0 0 183.9 183.9000000000001A245.19999999999996 245.19999999999996 0 0 0 126.25 272.5C113.85 304.35 105.5 340.65 103 393.9C100.65 447.2000000000001 100 464.15 100 600C100 735.85 100.5 752.8000000000001 103 806.1C105.5 859.4 113.85 895.6 126.25 927.5A244 244 0 0 0 183.9 1016.1A244.85 244.85 0 0 0 272.5 1073.75C304.4 1086.15 340.6 1094.5 393.9 1097C447.2000000000001 1099.35 464.15 1100 600 1100z","horizAdvX":"1200"},"install-fill":{"path":["M0 0h24v24H0z","M11 2v5H8l4 4 4-4h-3V2h7a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h7zm8 14H5v4h14v-4zm-2 1v2h-2v-2h2z"],"unicode":"","glyph":"M550 1100V850H400L600 650L800 850H650V1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H550zM950 400H250V200H950V400zM850 350V250H750V350H850z","horizAdvX":"1200"},"install-line":{"path":["M0 0h24v24H0z","M9 2v2H5l-.001 10h14L19 4h-4V2h5a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h5zm9.999 14h-14L5 20h14l-.001-4zM17 17v2h-2v-2h2zM13 2v5h3l-4 4-4-4h3V2h2z"],"unicode":"","glyph":"M450 1100V1000H250L249.95 500H949.95L950 1000H750V1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H450zM949.9500000000002 400H249.9500000000001L250 200H950L949.95 400zM850 350V250H750V350H850zM650 1100V850H800L600 650L400 850H550V1100H650z","horizAdvX":"1200"},"invision-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2.988 11.065c-.06.267-.09.555-.09.79 0 .927.482 1.542 1.508 1.542.851 0 1.541-.526 2.038-1.375l-.303 1.267h1.69l.966-4.031c.241-1.02.71-1.55 1.419-1.55.558 0 .905.36.905.957 0 .173-.015.361-.075.565l-.498 1.853a2.89 2.89 0 0 0-.106.785c0 .88.498 1.523 1.54 1.523.89 0 1.6-.596 1.992-2.025l-.664-.267c-.332.958-.62 1.13-.846 1.13-.226 0-.347-.156-.347-.47 0-.141.03-.298.076-.487l.483-1.805c.12-.424.166-.8.166-1.145 0-1.35-.785-2.055-1.736-2.055-.89 0-1.796.835-2.248 1.715l.331-1.579h-2.58l-.363 1.39h1.208l-.744 3.098c-.583 1.35-1.656 1.372-1.79 1.34-.222-.051-.363-.139-.363-.438 0-.172.03-.42.106-.718l1.132-4.672H6.927l-.362 1.39h1.192l-.77 3.272zm1.637-5.44a1.125 1.125 0 1 0 0-2.25 1.125 1.125 0 0 0 0 2.25z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM349.4 496.75C346.4 483.4000000000001 344.9 469 344.9 457.25C344.9 410.9 369 380.1499999999999 420.3 380.1499999999999C462.8499999999999 380.1499999999999 497.35 406.45 522.1999999999999 448.8999999999999L507.0499999999999 385.55H591.5499999999998L639.8499999999999 587.0999999999999C651.8999999999999 638.0999999999998 675.3499999999999 664.5999999999999 710.7999999999998 664.5999999999999C738.6999999999998 664.5999999999999 756.0499999999998 646.5999999999999 756.0499999999998 616.7499999999999C756.0499999999998 608.0999999999999 755.2999999999998 598.6999999999998 752.2999999999998 588.4999999999999L727.3999999999999 495.8499999999999A144.5 144.5 0 0 1 722.0999999999999 456.5999999999999C722.0999999999999 412.5999999999999 746.9999999999999 380.45 799.0999999999999 380.45C843.6 380.45 879.1 410.2499999999999 898.7 481.6999999999999L865.4999999999999 495.05C848.8999999999999 447.1499999999999 834.4999999999999 438.5499999999999 823.1999999999999 438.5499999999999C811.9 438.5499999999999 805.8499999999999 446.3499999999999 805.8499999999999 462.0499999999998C805.8499999999999 469.0999999999999 807.3499999999999 476.9499999999999 809.6499999999999 486.3999999999999L833.8 576.6499999999999C839.8 597.8499999999999 842.0999999999999 616.6499999999999 842.0999999999999 633.8999999999999C842.0999999999999 701.3999999999999 802.8499999999999 736.6499999999999 755.3 736.6499999999999C710.7999999999998 736.6499999999999 665.4999999999999 694.8999999999999 642.8999999999999 650.8999999999999L659.4499999999998 729.8499999999999H530.4499999999998L512.2999999999998 660.3499999999999H572.6999999999998L535.4999999999999 505.4499999999999C506.3499999999999 437.95 452.6999999999998 436.8499999999999 445.9999999999999 438.45C434.8999999999999 440.9999999999999 427.8499999999999 445.3999999999999 427.8499999999999 460.3499999999999C427.8499999999999 468.9499999999999 429.3499999999999 481.3499999999999 433.1499999999999 496.25L489.7499999999999 729.8499999999999H346.35L328.25 660.3499999999999H387.85L349.35 496.7499999999999zM431.25 768.75A56.25 56.25 0 1 1 431.25 881.25A56.25 56.25 0 0 1 431.25 768.75z","horizAdvX":"1200"},"invision-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm1.988 9.065l.77-3.271H6.564l.362-1.39h2.868l-1.132 4.67a3.071 3.071 0 0 0-.106.72c0 .298.141.386.362.437.135.032 1.208.01 1.791-1.34l.744-3.097h-1.208l.363-1.39h2.58l-.331 1.578c.452-.88 1.358-1.715 2.248-1.715.95 0 1.736.704 1.736 2.055 0 .345-.046.721-.166 1.145l-.483 1.805a2.159 2.159 0 0 0-.076.487c0 .314.121.47.347.47.227 0 .514-.172.846-1.13l.664.267c-.393 1.429-1.102 2.025-1.993 2.025-1.041 0-1.539-.643-1.539-1.523 0-.25.03-.518.106-.785l.498-1.853c.06-.204.075-.392.075-.565 0-.596-.347-.958-.905-.958-.71 0-1.178.53-1.419 1.55l-.966 4.032h-1.69l.303-1.267c-.497.85-1.187 1.375-2.038 1.375-1.026 0-1.509-.615-1.509-1.542 0-.235.03-.523.09-.79zm1.637-5.44a1.125 1.125 0 1 1 0-2.25 1.125 1.125 0 0 1 0 2.25z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM349.4 496.75L387.9 660.3H328.2L346.3 729.8H489.7L433.1 496.3A153.55 153.55 0 0 1 427.8000000000001 460.3C427.8000000000001 445.4 434.85 441 445.9000000000001 438.4500000000001C452.65 436.85 506.3000000000001 437.9500000000001 535.45 505.45L572.6500000000001 660.3H512.25L530.4 729.8H659.4L642.85 650.9000000000001C665.45 694.9000000000001 710.7500000000001 736.6500000000001 755.25 736.6500000000001C802.75 736.6500000000001 842.0500000000001 701.45 842.0500000000001 633.9000000000001C842.0500000000001 616.65 839.7500000000001 597.85 833.75 576.6500000000001L809.6 486.4000000000001A107.94999999999999 107.94999999999999 0 0 1 805.8 462.0500000000001C805.8 446.35 811.8499999999999 438.5500000000001 823.1500000000001 438.5500000000001C834.5000000000001 438.5500000000001 848.85 447.1500000000001 865.45 495.05L898.6500000000001 481.7C879.0000000000001 410.25 843.5500000000001 380.4500000000001 799.0000000000001 380.4500000000001C746.95 380.4500000000001 722.0500000000002 412.6000000000002 722.0500000000002 456.6C722.0500000000002 469.1 723.5500000000001 482.5000000000001 727.3500000000001 495.8500000000001L752.2500000000001 588.5000000000001C755.2500000000001 598.7 756 608.1 756 616.75C756 646.5500000000001 738.6500000000001 664.6500000000001 710.7500000000001 664.6500000000001C675.2500000000001 664.6500000000001 651.8500000000001 638.1500000000001 639.8000000000001 587.15L591.5000000000001 385.55H507.0000000000001L522.1500000000002 448.8999999999999C497.3000000000002 406.3999999999999 462.8000000000002 380.1499999999999 420.2500000000002 380.1499999999999C368.9500000000002 380.1499999999999 344.8000000000002 410.8999999999999 344.8000000000002 457.2499999999999C344.8000000000002 468.9999999999999 346.3000000000002 483.3999999999999 349.3000000000002 496.7499999999999zM431.25 768.75A56.25 56.25 0 1 0 431.25 881.25A56.25 56.25 0 0 0 431.25 768.75z","horizAdvX":"1200"},"italic":{"path":["M0 0h24v24H0z","M15 20H7v-2h2.927l2.116-12H9V4h8v2h-2.927l-2.116 12H15z"],"unicode":"","glyph":"M750 200H350V300H496.35L602.15 900H450V1000H850V900H703.65L597.85 300H750z","horizAdvX":"1200"},"kakao-talk-fill":{"path":["M0 0h24v24H0z","M12 3c5.799 0 10.5 3.664 10.5 8.185 0 4.52-4.701 8.184-10.5 8.184a13.5 13.5 0 0 1-1.727-.11l-4.408 2.883c-.501.265-.678.236-.472-.413l.892-3.678c-2.88-1.46-4.785-3.99-4.785-6.866C1.5 6.665 6.201 3 12 3zm5.907 8.06l1.47-1.424a.472.472 0 0 0-.656-.678l-1.928 1.866V9.282a.472.472 0 0 0-.944 0v2.557a.471.471 0 0 0 0 .222V13.5a.472.472 0 0 0 .944 0v-1.363l.427-.413 1.428 2.033a.472.472 0 1 0 .773-.543l-1.514-2.155zm-2.958 1.924h-1.46V9.297a.472.472 0 0 0-.943 0v4.159c0 .26.21.472.471.472h1.932a.472.472 0 1 0 0-.944zm-5.857-1.092l.696-1.707.638 1.707H9.092zm2.523.488l.002-.016a.469.469 0 0 0-.127-.32l-1.046-2.8a.69.69 0 0 0-.627-.474.696.696 0 0 0-.653.447l-1.661 4.075a.472.472 0 0 0 .874.357l.33-.813h2.07l.299.8a.472.472 0 1 0 .884-.33l-.345-.926zM8.293 9.302a.472.472 0 0 0-.471-.472H4.577a.472.472 0 1 0 0 .944h1.16v3.736a.472.472 0 0 0 .944 0V9.774h1.14c.261 0 .472-.212.472-.472z"],"unicode":"","glyph":"M600 1050C889.9499999999999 1050 1125 866.8 1125 640.75C1125 414.75 889.9499999999999 231.55 600 231.55A675.0000000000001 675.0000000000001 0 0 0 513.65 237.05L293.25 92.9000000000001C268.2 79.6500000000001 259.35 81.0999999999999 269.6499999999999 113.55L314.25 297.4500000000001C170.25 370.4500000000002 75 496.95 75 640.7500000000001C75 866.75 310.05 1050 600 1050zM895.35 647L968.85 718.1999999999999A23.6 23.6 0 0 1 936.05 752.0999999999999L839.65 658.8V735.9A23.6 23.6 0 0 1 792.45 735.9V608.05A23.55 23.55 0 0 1 792.45 596.95V525A23.6 23.6 0 0 1 839.65 525V593.15L861 613.8L932.4 512.15A23.6 23.6 0 1 1 971.05 539.3L895.35 647.05zM747.45 550.8H674.45V735.15A23.6 23.6 0 0 1 627.3000000000001 735.15V527.2C627.3000000000001 514.2 637.8000000000001 503.6 650.85 503.6H747.45A23.6 23.6 0 1 1 747.45 550.8000000000001zM454.5999999999999 605.4L489.3999999999999 690.75L521.3 605.4H454.6zM580.7499999999999 581L580.8499999999999 581.8000000000001A23.45 23.45 0 0 1 574.4999999999999 597.8000000000001L522.1999999999999 737.8A34.49999999999999 34.49999999999999 0 0 1 490.8499999999999 761.5A34.79999999999999 34.79999999999999 0 0 1 458.1999999999999 739.1500000000001L375.1499999999999 535.4000000000001A23.6 23.6 0 0 1 418.85 517.5500000000002L435.35 558.2000000000002H538.8499999999999L553.8 518.2000000000002A23.6 23.6 0 1 1 598 534.7000000000002L580.7499999999999 581.0000000000001zM414.65 734.9000000000001A23.6 23.6 0 0 1 391.1 758.5H228.85A23.6 23.6 0 1 1 228.85 711.3H286.85V524.4999999999999A23.6 23.6 0 0 1 334.05 524.4999999999999V711.3000000000001H391.05C404.1 711.3000000000001 414.65 721.9000000000001 414.65 734.9000000000001z","horizAdvX":"1200"},"kakao-talk-line":{"path":["M0 0h24v24H0z","M5.678 18.123C3.092 16.566 1.5 14.112 1.5 11.405 1.5 6.701 6.248 3 12 3s10.5 3.701 10.5 8.405c0 4.704-4.748 8.405-10.5 8.405-.442 0-.882-.022-1.318-.065l-3.765 2.458c-.615.326-.957.425-1.485.066-.62-.424-.596-.892-.381-1.56l.627-2.586zM3.5 11.405c0 2.132 1.418 4.123 3.781 5.32l.706.359-.186.77-.401 1.648 2.8-1.83.366.046c.473.061.952.092 1.434.092 4.741 0 8.5-2.93 8.5-6.405S16.741 5 12 5s-8.5 2.93-8.5 6.405zm14.407-.346l1.514 2.155a.472.472 0 1 1-.773.543l-1.428-2.033-.427.413V13.5a.472.472 0 0 1-.944 0v-1.439a.471.471 0 0 1 0-.222V9.282a.472.472 0 0 1 .944 0v1.542l1.928-1.866a.472.472 0 0 1 .656.678l-1.47 1.423zm-2.958 1.925a.472.472 0 0 1 0 .944h-1.932a.472.472 0 0 1-.471-.472V9.297a.472.472 0 1 1 .943 0v3.687h1.46zm-5.857-1.092h1.334l-.638-1.707-.696 1.707zm2.523.488l.345.925a.472.472 0 1 1-.884.33l-.298-.799h-2.07l-.331.813a.472.472 0 1 1-.874-.357l1.66-4.075a.696.696 0 0 1 .654-.447.69.69 0 0 1 .627.474l1.046 2.8a.469.469 0 0 1 .127.32l-.002.016zM8.293 9.302c0 .26-.21.472-.471.472h-1.14v3.736a.472.472 0 0 1-.945 0V9.774h-1.16a.472.472 0 1 1 0-.944h3.245c.26 0 .471.211.471.472z"],"unicode":"","glyph":"M283.9 293.8499999999999C154.6 371.7000000000001 75 494.4 75 629.75C75 864.95 312.4000000000001 1050 600 1050S1125 864.95 1125 629.75C1125 394.5500000000001 887.5999999999999 209.5000000000001 600 209.5000000000001C577.9 209.5000000000001 555.9 210.6 534.1 212.7500000000001L345.85 89.8500000000001C315.1 73.5500000000002 298 68.6000000000001 271.6 86.5500000000002C240.6 107.7500000000002 241.8 131.1500000000003 252.55 164.5500000000002L283.9 293.8500000000002zM175 629.75C175 523.1500000000001 245.9 423.6 364.05 363.7499999999999L399.35 345.7999999999999L390.05 307.2999999999999L370 224.8999999999999L509.9999999999999 316.3999999999998L528.3 314.0999999999998C551.9499999999999 311.0499999999999 575.9 309.4999999999999 599.9999999999999 309.4999999999999C837.05 309.4999999999999 1025 455.9999999999999 1025 629.75S837.05 950 600 950S175 803.5 175 629.75zM895.35 647.0500000000001L971.05 539.3000000000001A23.6 23.6 0 1 0 932.4 512.1500000000001L861 613.8000000000001L839.65 593.1500000000001V525A23.6 23.6 0 0 0 792.45 525V596.95A23.55 23.55 0 0 0 792.45 608.05V735.9A23.6 23.6 0 0 0 839.65 735.9V658.8L936.05 752.0999999999999A23.6 23.6 0 0 0 968.85 718.1999999999999L895.35 647.05zM747.45 550.8A23.6 23.6 0 0 0 747.45 503.5999999999999H650.85A23.6 23.6 0 0 0 627.3 527.1999999999999V735.15A23.6 23.6 0 1 0 674.4499999999999 735.15V550.8H747.4499999999999zM454.5999999999999 605.4H521.3L489.3999999999999 690.75L454.5999999999999 605.4zM580.7499999999999 581L598 534.75A23.6 23.6 0 1 0 553.8 518.25L538.9 558.1999999999999H435.3999999999999L418.85 517.55A23.6 23.6 0 1 0 375.15 535.3999999999999L458.1499999999999 739.1499999999999A34.79999999999999 34.79999999999999 0 0 0 490.8499999999999 761.4999999999998A34.49999999999999 34.49999999999999 0 0 0 522.1999999999999 737.7999999999998L574.4999999999999 597.7999999999998A23.45 23.45 0 0 0 580.8499999999999 581.7999999999997L580.7499999999999 580.9999999999998zM414.65 734.9000000000001C414.65 721.9000000000001 404.1499999999999 711.3000000000001 391.1 711.3000000000001H334.1V524.5A23.6 23.6 0 0 0 286.85 524.5V711.3000000000001H228.85A23.6 23.6 0 1 0 228.85 758.5000000000001H391.1C404.1 758.5000000000001 414.65 747.95 414.65 734.9000000000001z","horizAdvX":"1200"},"key-2-fill":{"path":["M0 0h24v24H0z","M10.313 11.566l7.94-7.94 2.121 2.121-1.414 1.414 2.121 2.121-3.535 3.536-2.121-2.121-2.99 2.99a5.002 5.002 0 0 1-7.97 5.849 5 5 0 0 1 5.848-7.97zm-.899 5.848a2 2 0 1 0-2.828-2.828 2 2 0 0 0 2.828 2.828z"],"unicode":"","glyph":"M515.65 621.6999999999999L912.65 1018.7L1018.7 912.65L947.9999999999998 841.95L1054.0499999999997 735.9L877.2999999999998 559.1L771.2499999999998 665.1500000000001L621.7499999999998 515.65A250.09999999999997 250.09999999999997 0 0 0 223.2499999999998 223.1999999999999A250 250 0 0 0 515.6499999999997 621.6999999999998zM470.7 329.3A100 100 0 1 1 329.3000000000002 470.6999999999999A100 100 0 0 1 470.7 329.3z","horizAdvX":"1200"},"key-2-line":{"path":["M0 0h24v24H0z","M10.758 11.828l7.849-7.849 1.414 1.414-1.414 1.415 2.474 2.474-1.414 1.415-2.475-2.475-1.414 1.414 2.121 2.121-1.414 1.415-2.121-2.122-2.192 2.192a5.002 5.002 0 0 1-7.708 6.294 5 5 0 0 1 6.294-7.708zm-.637 6.293A3 3 0 1 0 5.88 13.88a3 3 0 0 0 4.242 4.242z"],"unicode":"","glyph":"M537.9 608.6L930.35 1001.05L1001.05 930.3500000000003L930.35 859.6000000000001L1054.05 735.9L983.35 665.1500000000001L859.5999999999998 788.9000000000001L788.8999999999999 718.2L894.9499999999998 612.15L824.2499999999998 541.4L718.1999999999998 647.5L608.5999999999998 537.9A250.09999999999997 250.09999999999997 0 0 0 223.1999999999998 223.1999999999999A250 250 0 0 0 537.8999999999997 608.5999999999999zM506.05 293.9500000000001A150 150 0 1 1 294 506A150 150 0 0 1 506.1 293.9z","horizAdvX":"1200"},"key-fill":{"path":["M0 0h24v24H0z","M17 14h-4.341a6 6 0 1 1 0-4H23v4h-2v4h-4v-4zM7 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M850 500H632.9499999999999A300 300 0 1 0 632.9499999999999 700H1150V500H1050V300H850V500zM350 500A100 100 0 1 1 350 700A100 100 0 0 1 350 500z","horizAdvX":"1200"},"key-line":{"path":["M0 0h24v24H0z","M12.917 13A6.002 6.002 0 0 1 1 12a6 6 0 0 1 11.917-1H23v2h-2v4h-2v-4h-2v4h-2v-4h-2.083zM7 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M645.85 550A300.09999999999997 300.09999999999997 0 0 0 50 600A300 300 0 0 0 645.85 650H1150V550H1050V350H950V550H850V350H750V550H645.85zM350 400A200 200 0 1 1 350 800A200 200 0 0 1 350 400z","horizAdvX":"1200"},"keyboard-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 4v2h2V7H5zm0 4v2h2v-2H5zm0 4v2h14v-2H5zm4-4v2h2v-2H9zm0-4v2h2V7H9zm4 0v2h2V7h-2zm4 0v2h2V7h-2zm-4 4v2h2v-2h-2zm4 0v2h2v-2h-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM250 850V750H350V850H250zM250 650V550H350V650H250zM250 450V350H950V450H250zM450 650V550H550V650H450zM450 850V750H550V850H450zM650 850V750H750V850H650zM850 850V750H950V850H850zM650 650V550H750V650H650zM850 650V550H950V650H850z","horizAdvX":"1200"},"keyboard-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 4h2v2H6V7zm0 4h2v2H6v-2zm0 4h12v2H6v-2zm5-4h2v2h-2v-2zm0-4h2v2h-2V7zm5 0h2v2h-2V7zm0 4h2v2h-2v-2z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM300 850H400V750H300V850zM300 650H400V550H300V650zM300 450H900V350H300V450zM550 650H650V550H550V650zM550 850H650V750H550V850zM800 850H900V750H800V850zM800 650H900V550H800V650z","horizAdvX":"1200"},"keyboard-fill":{"path":["M0 0h24v24H0z","M3 17h18v2H3v-2zm0-6h3v3H3v-3zm5 0h3v3H8v-3zM3 5h3v3H3V5zm10 0h3v3h-3V5zm5 0h3v3h-3V5zm-5 6h3v3h-3v-3zm5 0h3v3h-3v-3zM8 5h3v3H8V5z"],"unicode":"","glyph":"M150 350H1050V250H150V350zM150 650H300V500H150V650zM400 650H550V500H400V650zM150 950H300V800H150V950zM650 950H800V800H650V950zM900 950H1050V800H900V950zM650 650H800V500H650V650zM900 650H1050V500H900V650zM400 950H550V800H400V950z","horizAdvX":"1200"},"keyboard-line":{"path":["M0 0h24v24H0z","M3 17h18v2H3v-2zm0-6h3v3H3v-3zm5 0h3v3H8v-3zM3 5h3v3H3V5zm10 0h3v3h-3V5zm5 0h3v3h-3V5zm-5 6h3v3h-3v-3zm5 0h3v3h-3v-3zM8 5h3v3H8V5z"],"unicode":"","glyph":"M150 350H1050V250H150V350zM150 650H300V500H150V650zM400 650H550V500H400V650zM150 950H300V800H150V950zM650 950H800V800H650V950zM900 950H1050V800H900V950zM650 650H800V500H650V650zM900 650H1050V500H900V650zM400 950H550V800H400V950z","horizAdvX":"1200"},"keynote-fill":{"path":["M0 0h24v24H0z","M13 12v8h4v2H7v-2h4v-8H2.992c-.548 0-.906-.43-.797-.977l1.61-8.046C3.913 2.437 4.445 2 5 2h13.998c.553 0 1.087.43 1.196.977l1.61 8.046c.108.54-.26.977-.797.977H13z"],"unicode":"","glyph":"M650 600V200H850V100H350V200H550V600H149.6C122.2 600 104.3 621.5 109.75 648.85L190.25 1051.15C195.65 1078.15 222.25 1100 250 1100H949.8999999999997C977.55 1100 1004.2499999999998 1078.5 1009.7 1051.15L1090.1999999999998 648.85C1095.6 621.85 1077.1999999999998 600 1050.35 600H650z","horizAdvX":"1200"},"keynote-line":{"path":["M0 0h24v24H0z","M4.44 10h15.12l-1.2-6H5.64l-1.2 6zM13 12v8h4v2H7v-2h4v-8H2.992c-.548 0-.906-.43-.797-.977l1.61-8.046C3.913 2.437 4.445 2 5 2h13.998c.553 0 1.087.43 1.196.977l1.61 8.046c.108.54-.26.977-.797.977H13z"],"unicode":"","glyph":"M222 700H977.9999999999998L918 1000H282L222 700zM650 600V200H850V100H350V200H550V600H149.6C122.2 600 104.3 621.5 109.75 648.85L190.25 1051.15C195.65 1078.15 222.25 1100 250 1100H949.8999999999997C977.55 1100 1004.2499999999998 1078.5 1009.7 1051.15L1090.1999999999998 648.85C1095.6 621.85 1077.1999999999998 600 1050.35 600H650z","horizAdvX":"1200"},"knife-blood-fill":{"path":["M0 0h24v24H0z","M4.342 1.408L22.373 19.44a1.5 1.5 0 0 1-2.121 2.122l-4.596-4.597L12.12 20.5 8 16.38V19a1 1 0 0 1-2 0v-4a1 1 0 0 0-1.993-.117L4 15v1a1 1 0 0 1-2 0V7.214a7.976 7.976 0 0 1 2.168-5.627l.174-.179z"],"unicode":"","glyph":"M217.1 1129.6L1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 121.8999999999999L782.8000000000001 351.75L606 175L400 381V250A50 50 0 0 0 300 250V450A50 50 0 0 1 200.35 455.85L200 450V400A50 50 0 0 0 100 400V839.3A398.8 398.8 0 0 0 208.4 1120.6499999999999L217.1 1129.6z","horizAdvX":"1200"},"knife-blood-line":{"path":["M0 0h24v24H0z","M4.342 1.408L22.373 19.44a1.5 1.5 0 0 1-2.121 2.122l-4.596-4.597L12.12 20.5 8 16.38V19a1 1 0 0 1-2 0v-4a1 1 0 0 0-1.993-.117L4 15v1a1 1 0 0 1-2 0V7.214a7.976 7.976 0 0 1 2.168-5.627l.174-.179zm.241 3.07l-.051.11a5.993 5.993 0 0 0-.522 2.103L4 7l-.001.12a5.984 5.984 0 0 0 1.58 4.003l.177.185 6.363 6.363 2.829-2.828L4.583 4.478z"],"unicode":"","glyph":"M217.1 1129.6L1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 121.8999999999999L782.8000000000001 351.75L606 175L400 381V250A50 50 0 0 0 300 250V450A50 50 0 0 1 200.35 455.85L200 450V400A50 50 0 0 0 100 400V839.3A398.8 398.8 0 0 0 208.4 1120.6499999999999L217.1 1129.6zM229.15 976.1L226.6 970.6A299.65 299.65 0 0 1 200.5 865.45L200 850L199.95 844A299.2 299.2 0 0 1 278.9500000000001 643.8499999999999L287.8 634.5999999999999L605.95 316.4499999999998L747.4 457.8499999999998L229.15 976.1z","horizAdvX":"1200"},"knife-fill":{"path":["M0 0h24v24H0z","M22.373 19.44a1.5 1.5 0 0 1-2.121 2.12l-4.596-4.596L12.12 20.5l-7.778-7.778a8 8 0 0 1-.174-11.135l.174-.179L22.373 19.44z"],"unicode":"","glyph":"M1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 122L782.8000000000001 351.7999999999999L606 175L217.1 563.9A400 400 0 0 0 208.4 1120.6499999999999L217.1 1129.6L1118.65 227.9999999999999z","horizAdvX":"1200"},"knife-line":{"path":["M0 0h24v24H0z","M4.342 1.408L22.373 19.44a1.5 1.5 0 0 1-2.121 2.122l-4.596-4.597L12.12 20.5l-7.778-7.778a8 8 0 0 1-.174-11.135l.174-.179zm.241 3.07l-.051.11a6.005 6.005 0 0 0 1.047 6.535l.177.185 6.363 6.363 2.829-2.828L4.583 4.478z"],"unicode":"","glyph":"M217.1 1129.6L1118.65 227.9999999999999A75 75 0 0 0 1012.6000000000003 121.8999999999999L782.8000000000001 351.75L606 175L217.1 563.9A400 400 0 0 0 208.4 1120.6499999999999L217.1 1129.6zM229.15 976.1L226.6 970.6A300.24999999999994 300.24999999999994 0 0 1 278.95 643.8499999999999L287.7999999999999 634.5999999999999L605.95 316.4499999999998L747.4 457.8499999999998L229.15 976.1z","horizAdvX":"1200"},"landscape-fill":{"path":["M0 0h24v24H0z","M16 21l-4.762-8.73L15 6l8 15h-7zM8 10l6 11H2l6-11zM5.5 8a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M800 150L561.9 586.5L750 900L1150 150H800zM400 700L700 150H100L400 700zM275 800A125 125 0 1 0 275 1050A125 125 0 0 0 275 800z","horizAdvX":"1200"},"landscape-line":{"path":["M0 0h24v24H0z","M11.27 12.216L15 6l8 15H2L9 8l2.27 4.216zm1.12 2.022L14.987 19h4.68l-4.77-8.942-2.507 4.18zM5.348 19h7.304L9 12.219 5.348 19zM5.5 8a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M563.5 589.2L750 900L1150 150H100L450 800L563.5 589.1999999999999zM619.5 488.1L749.35 250H983.3500000000003L744.8500000000001 697.1L619.5000000000001 488.1zM267.4 250H632.6L450 589.0500000000001L267.4 250zM275 800A125 125 0 1 0 275 1050A125 125 0 0 0 275 800z","horizAdvX":"1200"},"layout-2-fill":{"path":["M0 0h24v24H0z","M11 3v18H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7zm10 10v7a1 1 0 0 1-1 1h-7v-8h8zM20 3a1 1 0 0 1 1 1v7h-8V3h7z"],"unicode":"","glyph":"M550 1050V150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H550zM1050 550V200A50 50 0 0 0 1000 150H650V550H1050zM1000 1050A50 50 0 0 0 1050 1000V650H650V1050H1000z","horizAdvX":"1200"},"layout-2-line":{"path":["M0 0h24v24H0z","M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16zM11 5H5v14h6V5zm8 8h-6v6h6v-6zm0-8h-6v6h6V5z"],"unicode":"","glyph":"M1050 200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V200zM550 950H250V250H550V950zM950 550H650V250H950V550zM950 950H650V650H950V950z","horizAdvX":"1200"},"layout-3-fill":{"path":["M0 0h24v24H0z","M8 10v11H4a1 1 0 0 1-1-1V10h5zm13 0v10a1 1 0 0 1-1 1H10V10h11zm-1-7a1 1 0 0 1 1 1v4H3V4a1 1 0 0 1 1-1h16z"],"unicode":"","glyph":"M400 700V150H200A50 50 0 0 0 150 200V700H400zM1050 700V200A50 50 0 0 0 1000 150H500V700H1050zM1000 1050A50 50 0 0 0 1050 1000V800H150V1000A50 50 0 0 0 200 1050H1000z","horizAdvX":"1200"},"layout-3-line":{"path":["M0 0h24v24H0z","M4 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4zm4-11H5v9h3v-9zm11 0h-9v9h9v-9zm0-5H5v3h14V5z"],"unicode":"","glyph":"M200 150A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200zM400 700H250V250H400V700zM950 700H500V250H950V700zM950 950H250V800H950V950z","horizAdvX":"1200"},"layout-4-fill":{"path":["M0 0h24v24H0z","M11 13v8H4a1 1 0 0 1-1-1v-7h8zm2-10h7a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-7V3zM3 4a1 1 0 0 1 1-1h7v8H3V4z"],"unicode":"","glyph":"M550 550V150H200A50 50 0 0 0 150 200V550H550zM650 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H650V1050zM150 1000A50 50 0 0 0 200 1050H550V650H150V1000z","horizAdvX":"1200"},"layout-4-line":{"path":["M0 0h24v24H0z","M20 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16zm-9 10H5v6h6v-6zm2 6h6V5h-6v14zM11 5H5v6h6V5z"],"unicode":"","glyph":"M1000 1050A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000zM550 550H250V250H550V550zM650 250H950V950H650V250zM550 950H250V650H550V950z","horizAdvX":"1200"},"layout-5-fill":{"path":["M0 0h24v24H0z","M7 10v11H3a1 1 0 0 1-1-1V10h5zm15 0v10a1 1 0 0 1-1 1H9V10h13zm-1-7a1 1 0 0 1 1 1v4H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M350 700V150H150A50 50 0 0 0 100 200V700H350zM1100 700V200A50 50 0 0 0 1050 150H450V700H1100zM1050 1050A50 50 0 0 0 1100 1000V800H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-5-line":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3zm4-11H4v9h3v-9zm13 0H9v9h11v-9zm0-5H4v3h16V5z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150zM350 700H200V250H350V700zM1000 700H450V250H1000V700zM1000 950H200V800H1000V950z","horizAdvX":"1200"},"layout-6-fill":{"path":["M0 0h24v24H0z","M15 10v11H3a1 1 0 0 1-1-1V10h13zm7 0v10a1 1 0 0 1-1 1h-4V10h5zm-1-7a1 1 0 0 1 1 1v4H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M750 700V150H150A50 50 0 0 0 100 200V700H750zM1100 700V200A50 50 0 0 0 1050 150H850V700H1100zM1050 1050A50 50 0 0 0 1100 1000V800H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-6-line":{"path":["M0 0h24v24H0z","M3 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3zm12-11H4v9h11v-9zm5 0h-3v9h3v-9zm0-5H4v3h16V5z"],"unicode":"","glyph":"M150 150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150zM750 700H200V250H750V700zM1000 700H850V250H1000V700zM1000 950H200V800H1000V950z","horizAdvX":"1200"},"layout-bottom-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-2 13H5v2h14v-2z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM950 400H250V300H950V400z","horizAdvX":"1200"},"layout-bottom-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-2 10v2H6v-2h12z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM900 450V350H300V450H900z","horizAdvX":"1200"},"layout-bottom-fill":{"path":["M0 0h24v24H0z","M22 16v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-4h20zM21 3a1 1 0 0 1 1 1v10H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M1100 400V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V400H1100zM1050 1050A50 50 0 0 0 1100 1000V500H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-bottom-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM4 16v3h16v-3H4zm0-2h16V5H4v9z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM200 400V250H1000V400H200zM200 500H1000V950H200V500z","horizAdvX":"1200"},"layout-column-fill":{"path":["M0 0h24v24H0z","M12 5v14h7V5h-7zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M600 950V250H950V950H600zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-column-line":{"path":["M0 0h24v24H0z","M11 5H5v14h6V5zm2 0v14h6V5h-6zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M550 950H250V250H550V950zM650 950V250H950V950H650zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-fill":{"path":["M0 0h24v24H0z","M16 21V10h5v10a1 1 0 0 1-1 1h-4zm-2 0H4a1 1 0 0 1-1-1V10h11v11zm7-13H3V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v4z"],"unicode":"","glyph":"M800 150V700H1050V200A50 50 0 0 0 1000 150H800zM700 150H200A50 50 0 0 0 150 200V700H700V150zM1050 800H150V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V800z","horizAdvX":"1200"},"layout-grid-fill":{"path":["M0 0h24v24H0z","M22 12.999V20a1 1 0 0 1-1 1h-8v-8.001h9zm-11 0V21H3a1 1 0 0 1-1-1v-7.001h9zM11 3v7.999H2V4a1 1 0 0 1 1-1h8zm10 0a1 1 0 0 1 1 1v6.999h-9V3h8z"],"unicode":"","glyph":"M1100 550.05V200A50 50 0 0 0 1050 150H650V550.05H1100zM550 550.05V150H150A50 50 0 0 0 100 200V550.0500000000001H550zM550 1050V650.0500000000001H100V1000A50 50 0 0 0 150 1050H550zM1050 1050A50 50 0 0 0 1100 1000V650.0500000000001H650V1050H1050z","horizAdvX":"1200"},"layout-grid-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM11 13H4v6h7v-6zm9 0h-7v6h7v-6zm-9-8H4v6h7V5zm9 0h-7v6h7V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM550 550H200V250H550V550zM1000 550H650V250H1000V550zM550 950H200V650H550V950zM1000 950H650V650H1000V950z","horizAdvX":"1200"},"layout-left-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM7 6H5v12h2V6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM350 900H250V300H350V900z","horizAdvX":"1200"},"layout-left-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zM8 7v10H6V7h2z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM400 850V350H300V850H400z","horizAdvX":"1200"},"layout-left-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H9V3h12zM7 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4v18z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H450V1050H1050zM350 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H350V150z","horizAdvX":"1200"},"layout-left-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM7 5H4v14h3V5zm13 0H9v14h11V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM350 950H200V250H350V950zM1000 950H450V250H1000V950z","horizAdvX":"1200"},"layout-line":{"path":["M0 0h24v24H0z","M5 8h14V5H5v3zm9 11v-9H5v9h9zm2 0h3v-9h-3v9zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 800H950V950H250V800zM700 250V700H250V250H700zM800 250H950V700H800V250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-masonry-fill":{"path":["M0 0h24v24H0z","M22 9.999V20a1 1 0 0 1-1 1h-8V9.999h9zm-11 6V21H3a1 1 0 0 1-1-1v-4.001h9zM11 3v10.999H2V4a1 1 0 0 1 1-1h8zm10 0a1 1 0 0 1 1 1v3.999h-9V3h8z"],"unicode":"","glyph":"M1100 700.05V200A50 50 0 0 0 1050 150H650V700.05H1100zM550 400.05V150H150A50 50 0 0 0 100 200V400.0500000000001H550zM550 1050V500.05H100V1000A50 50 0 0 0 150 1050H550zM1050 1050A50 50 0 0 0 1100 1000V800.05H650V1050H1050z","horizAdvX":"1200"},"layout-masonry-line":{"path":["M0 0h24v24H0z","M22 20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16zm-11-5H4v4h7v-4zm9-4h-7v8h7v-8zm-9-6H4v8h7V5zm9 0h-7v4h7V5z"],"unicode":"","glyph":"M1100 200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V200zM550 450H200V250H550V450zM1000 650H650V250H1000V650zM550 950H200V550H550V950zM1000 950H650V750H1000V950z","horizAdvX":"1200"},"layout-right-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-2 3h-2v12h2V6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM950 900H850V300H950V900z","horizAdvX":"1200"},"layout-right-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-2 2v10h-2V7h2z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM900 850V350H800V850H900z","horizAdvX":"1200"},"layout-right-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-4V3h4zm-6 18H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12v18z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H850V1050H1050zM750 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H750V150z","horizAdvX":"1200"},"layout-right-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-6 2H4v14h11V5zm5 0h-3v14h3V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM750 950H200V250H750V950zM1000 950H850V250H1000V950z","horizAdvX":"1200"},"layout-row-fill":{"path":["M0 0h24v24H0z","M19 12H5v7h14v-7zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M950 600H250V250H950V600zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-row-line":{"path":["M0 0h24v24H0z","M19 11V5H5v6h14zm0 2H5v6h14v-6zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M950 650V950H250V650H950zM950 550H250V250H950V550zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"layout-top-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-2 3H5v2h14V6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM950 900H250V800H950V900z","horizAdvX":"1200"},"layout-top-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-2 2v2H6V7h12z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V250H1000V950zM900 850V750H300V850H900z","horizAdvX":"1200"},"layout-top-fill":{"path":["M0 0h24v24H0z","M22 10v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10h20zm-1-7a1 1 0 0 1 1 1v4H2V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M1100 700V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V700H1100zM1050 1050A50 50 0 0 0 1100 1000V800H100V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"layout-top-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zM4 10v9h16v-9H4zm0-2h16V5H4v3z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM200 700V250H1000V700H200zM200 800H1000V950H200V800z","horizAdvX":"1200"},"leaf-fill":{"path":["M0 0H24V24H0z","M21 3v2c0 9.627-5.373 14-12 14H7.098c.212-3.012 1.15-4.835 3.598-7.001 1.204-1.065 1.102-1.68.509-1.327-4.084 2.43-6.112 5.714-6.202 10.958L5 22H3c0-1.363.116-2.6.346-3.732C3.116 16.974 3 15.218 3 13 3 7.477 7.477 3 13 3c2 0 4 1 8 0z"],"unicode":"","glyph":"M1050 1050V950C1050 468.65 781.3499999999999 250 450 250H354.9C365.5 400.6 412.4 491.75 534.8 600.0500000000001C595 653.3000000000001 589.9 684.0500000000001 560.25 666.4000000000001C356.05 544.9000000000001 254.65 380.7000000000001 250.15 118.5L250 100H150C150 168.1500000000001 155.8 230.0000000000001 167.3 286.5999999999999C155.8 351.3 150 439.1 150 550C150 826.15 373.85 1050 650 1050C750 1050 850 1000 1050 1050z","horizAdvX":"1200"},"leaf-line":{"path":["M0 0H24V24H0z","M21 3v2c0 9.627-5.373 14-12 14H5.243C5.08 19.912 5 20.907 5 22H3c0-1.363.116-2.6.346-3.732C3.116 16.974 3 15.218 3 13 3 7.477 7.477 3 13 3c2 0 4 1 8 0zm-8 2c-4.418 0-8 3.582-8 8 0 .362.003.711.01 1.046 1.254-1.978 3.091-3.541 5.494-4.914l.992 1.736C8.641 12.5 6.747 14.354 5.776 17H9c6.015 0 9.871-3.973 9.997-11.612-1.372.133-2.647.048-4.22-.188C13.627 5.027 13.401 5 13 5z"],"unicode":"","glyph":"M1050 1050V950C1050 468.65 781.3499999999999 250 450 250H262.1500000000001C254 204.4000000000001 250 154.6500000000001 250 100H150C150 168.1500000000001 155.8 230.0000000000001 167.3 286.5999999999999C155.8 351.3 150 439.1 150 550C150 826.15 373.85 1050 650 1050C750 1050 850 1000 1050 1050zM650 950C429.1 950 250 770.9 250 550C250 531.9 250.15 514.4499999999999 250.5 497.7C313.2 596.6 405.05 674.75 525.1999999999999 743.4000000000001L574.8 656.6C432.05 575 337.35 482.3000000000001 288.8 350H450C750.75 350 943.55 548.65 949.85 930.6C881.25 923.95 817.5000000000001 928.2 738.85 940C681.35 948.65 670.05 950 650 950z","horizAdvX":"1200"},"lifebuoy-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM7.197 14.682l-2.175 2.174a8.549 8.549 0 0 0 1.818 1.899l.305.223 2.173-2.175a5.527 5.527 0 0 1-1.98-1.883l-.14-.238zm9.606 0a5.527 5.527 0 0 1-1.883 1.98l-.238.14 2.174 2.176a8.549 8.549 0 0 0 1.899-1.818l.223-.304-2.175-2.174zM12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM7.145 5.022a8.549 8.549 0 0 0-1.9 1.818l-.223.305 2.175 2.173a5.527 5.527 0 0 1 1.883-1.98l.238-.14-2.173-2.176zm9.71 0l-2.173 2.175a5.527 5.527 0 0 1 1.98 1.883l.14.238 2.176-2.173a8.549 8.549 0 0 0-1.818-1.9l-.304-.223z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM359.85 465.9L251.1 357.2A427.44999999999993 427.44999999999993 0 0 1 342 262.2499999999999L357.25 251.0999999999999L465.9 359.8499999999999A276.34999999999997 276.34999999999997 0 0 0 366.9 453.9999999999999L359.9 465.8999999999999zM840.1500000000001 465.9A276.34999999999997 276.34999999999997 0 0 0 746.0000000000001 366.9000000000001L734.1000000000001 359.9L842.8000000000001 251.0999999999999A427.44999999999993 427.44999999999993 0 0 1 937.7500000000002 342L948.9 357.2L840.1500000000001 465.8999999999999zM600 800A200 200 0 1 1 600 400A200 200 0 0 1 600 800zM357.25 948.9A427.44999999999993 427.44999999999993 0 0 1 262.25 858L251.1 842.75L359.85 734.1A276.34999999999997 276.34999999999997 0 0 0 453.9999999999999 833.1L465.8999999999999 840.1L357.2499999999999 948.9zM842.75 948.9L734.1 840.15A276.34999999999997 276.34999999999997 0 0 0 833.0999999999999 746L840.1 734.1L948.9 842.75A427.44999999999993 427.44999999999993 0 0 1 858 937.75L842.8000000000001 948.9z","horizAdvX":"1200"},"lifebuoy-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 15a4.987 4.987 0 0 1-1.828-.345l-2.236 2.237A7.963 7.963 0 0 0 12 20a7.963 7.963 0 0 0 4.064-1.108l-2.236-2.237A4.987 4.987 0 0 1 12 17zm-8-5c0 1.484.404 2.873 1.108 4.064l2.237-2.236A4.987 4.987 0 0 1 7 12c0-.645.122-1.261.345-1.828L5.108 7.936A7.963 7.963 0 0 0 4 12zm14.892-4.064l-2.237 2.236c.223.567.345 1.183.345 1.828s-.122 1.261-.345 1.828l2.237 2.236A7.963 7.963 0 0 0 20 12a7.963 7.963 0 0 0-1.108-4.064zM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm0-5a7.963 7.963 0 0 0-4.064 1.108l2.236 2.237A4.987 4.987 0 0 1 12 7c.645 0 1.261.122 1.828.345l2.236-2.237A7.963 7.963 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 350A249.34999999999997 249.34999999999997 0 0 0 508.6 367.25L396.8 255.3999999999999A398.15 398.15 0 0 1 600 200A398.15 398.15 0 0 1 803.2 255.4L691.4 367.25A249.34999999999997 249.34999999999997 0 0 0 600 350zM200 600C200 525.8 220.2 456.3499999999999 255.4000000000001 396.8L367.2500000000001 508.6A249.34999999999997 249.34999999999997 0 0 0 350 600C350 632.25 356.1 663.05 367.25 691.4L255.4 803.2A398.15 398.15 0 0 1 200 600zM944.6 803.2L832.75 691.4C843.9 663.05 850 632.25 850 600S843.9 536.95 832.75 508.6L944.6000000000003 396.8A398.15 398.15 0 0 1 1000 600A398.15 398.15 0 0 1 944.6 803.2zM600 750A150 150 0 1 1 600 450A150 150 0 0 1 600 750zM600 1000A398.15 398.15 0 0 1 396.8 944.6L508.6 832.75A249.34999999999997 249.34999999999997 0 0 0 600 850C632.25 850 663.05 843.9 691.4 832.75L803.2 944.6A398.15 398.15 0 0 1 600 1000z","horizAdvX":"1200"},"lightbulb-fill":{"path":["M0 0h24v24H0z","M11 18H7.941c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H13v-5h-2v5zm5 2v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8z"],"unicode":"","glyph":"M550 300H397.05C382.2 363.65 315.2 415.7000000000001 287.7 450A400 400 0 1 0 912.2 449.9C884.6999999999999 415.65 817.8000000000001 363.5999999999999 802.95 300H650V550H550V300zM800 200V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V200H800z","horizAdvX":"1200"},"lightbulb-flash-fill":{"path":["M0 0h24v24H0z","M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z"],"unicode":"","glyph":"M397.05 300C382.2 363.65 315.2 415.7000000000001 287.7 450A400 400 0 1 0 912.2 449.9C884.6999999999999 415.65 817.8000000000001 363.5999999999999 802.95 300H397zM800 200V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V200H800zM650 699.75V900L425 599.75H550V399.75L775 699.75H650z","horizAdvX":"1200"},"lightbulb-flash-line":{"path":["M0 0h24v24H0z","M9.973 18h4.054c.132-1.202.745-2.194 1.74-3.277.113-.122.832-.867.917-.973a6 6 0 1 0-9.37-.002c.086.107.807.853.918.974.996 1.084 1.609 2.076 1.741 3.278zM14 20h-4v1h4v-1zm-8.246-5a8 8 0 1 1 12.49.002C17.624 15.774 16 17 16 18.5V21a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2.5C8 17 6.375 15.774 5.754 15zM13 10.004h2.5l-4.5 6v-4H8.5L13 6v4.005z"],"unicode":"","glyph":"M498.65 300H701.35C707.95 360.0999999999999 738.6 409.7 788.35 463.85C794 469.95 829.95 507.2 834.2 512.5000000000001A300 300 0 1 1 365.7000000000001 512.6000000000001C370.0000000000001 507.2500000000001 406.0500000000002 469.9500000000002 411.6000000000001 463.9000000000001C461.4000000000001 409.7000000000002 492.0500000000001 360.1000000000002 498.65 300.0000000000003zM700 200H500V150H700V200zM287.7 450A400 400 0 1 0 912.2 449.9C881.1999999999999 411.3000000000001 800 350 800 275V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V275C400 350 318.75 411.3000000000001 287.7 450zM650 699.8H775L550 399.8000000000001V599.8000000000001H425L650 900V699.75z","horizAdvX":"1200"},"lightbulb-line":{"path":["M0 0h24v24H0z","M9.973 18H11v-5h2v5h1.027c.132-1.202.745-2.194 1.74-3.277.113-.122.832-.867.917-.973a6 6 0 1 0-9.37-.002c.086.107.807.853.918.974.996 1.084 1.609 2.076 1.741 3.278zM10 20v1h4v-1h-4zm-4.246-5a8 8 0 1 1 12.49.002C17.624 15.774 16 17 16 18.5V21a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2.5C8 17 6.375 15.774 5.754 15z"],"unicode":"","glyph":"M498.65 300H550V550H650V300H701.3499999999999C707.9499999999999 360.0999999999999 738.5999999999999 409.7 788.35 463.85C794 469.95 829.95 507.2 834.2 512.5000000000001A300 300 0 1 1 365.7000000000001 512.6000000000001C370.0000000000001 507.2500000000001 406.0500000000002 469.9500000000002 411.6000000000001 463.9000000000001C461.4000000000001 409.7000000000002 492.0500000000001 360.1000000000002 498.65 300.0000000000003zM500 200V150H700V200H500zM287.7 450A400 400 0 1 0 912.2 449.9C881.1999999999999 411.3000000000001 800 350 800 275V150A100 100 0 0 0 700 50H500A100 100 0 0 0 400 150V275C400 350 318.75 411.3000000000001 287.7 450z","horizAdvX":"1200"},"line-chart-fill":{"path":["M0 0H24V24H0z","M5 3v16h16v2H3V3h2zm14.94 2.94l2.12 2.12L16 14.122l-3-3-3.94 3.94-2.12-2.122L13 6.88l3 3 3.94-3.94z"],"unicode":"","glyph":"M250 1050V250H1050V150H150V1050H250zM996.9999999999998 903L1103 797L800 493.9L650 643.9L453 446.9L347 553L650 856L800 706L997.0000000000002 903z","horizAdvX":"1200"},"line-chart-line":{"path":["M0 0H24V24H0z","M5 3v16h16v2H3V3h2zm15.293 3.293l1.414 1.414L16 13.414l-3-2.999-4.293 4.292-1.414-1.414L13 7.586l3 2.999 4.293-4.292z"],"unicode":"","glyph":"M250 1050V250H1050V150H150V1050H250zM1014.65 885.3499999999999L1085.3500000000001 814.6500000000001L800 529.3000000000001L650 679.25L435.35 464.6500000000001L364.6500000000001 535.35L650 820.7L800 670.75L1014.65 885.3499999999999z","horizAdvX":"1200"},"line-fill":{"path":["M0 0h24v24H0z","M18.663 10.84a.526.526 0 0 1-.526.525h-1.462v.938h1.462a.525.525 0 1 1 0 1.049H16.15a.526.526 0 0 1-.522-.524V8.852c0-.287.235-.525.525-.525h1.988a.525.525 0 0 1-.003 1.05h-1.462v.938h1.462c.291 0 .526.237.526.525zm-4.098 2.485a.538.538 0 0 1-.166.025.515.515 0 0 1-.425-.208l-2.036-2.764v2.45a.525.525 0 0 1-1.047 0V8.852a.522.522 0 0 1 .52-.523c.162 0 .312.086.412.211l2.052 2.775V8.852c0-.287.235-.525.525-.525.287 0 .525.238.525.525v3.976a.524.524 0 0 1-.36.497zm-4.95.027a.526.526 0 0 1-.523-.524V8.852c0-.287.236-.525.525-.525.289 0 .524.238.524.525v3.976a.527.527 0 0 1-.526.524zm-1.53 0H6.098a.528.528 0 0 1-.525-.524V8.852a.527.527 0 0 1 1.05 0v3.45h1.464a.525.525 0 0 1 0 1.05zM12 2.572c-5.513 0-10 3.643-10 8.118 0 4.01 3.558 7.369 8.363 8.007.325.068.769.215.881.492.1.25.066.638.032.9l-.137.85c-.037.25-.2.988.874.537 1.076-.449 5.764-3.398 7.864-5.812C21.313 14.089 22 12.477 22 10.69c0-4.475-4.488-8.118-10-8.118z"],"unicode":"","glyph":"M933.15 658A26.300000000000004 26.300000000000004 0 0 0 906.85 631.75H833.75V584.8499999999999H906.85A26.25 26.25 0 1 0 906.85 532.4H807.4999999999999A26.300000000000004 26.300000000000004 0 0 0 781.3999999999999 558.6V757.4C781.3999999999999 771.75 793.1499999999999 783.65 807.65 783.65H907.05A26.25 26.25 0 0 0 906.8999999999997 731.15H833.8V684.2499999999999H906.8999999999997C921.45 684.2499999999999 933.2 672.4 933.2 657.9999999999999zM728.2500000000001 533.75A26.900000000000002 26.900000000000002 0 0 0 719.95 532.5A25.750000000000004 25.750000000000004 0 0 0 698.7 542.9L596.9 681.1V558.6A26.25 26.25 0 0 0 544.55 558.6V757.4A26.099999999999998 26.099999999999998 0 0 0 570.55 783.55C578.65 783.55 586.15 779.25 591.15 773L693.75 634.2499999999999V757.4C693.75 771.75 705.5 783.65 720 783.65C734.35 783.65 746.25 771.75 746.25 757.4V558.6A26.2 26.2 0 0 0 728.2500000000001 533.75zM480.7500000000001 532.4000000000001A26.300000000000004 26.300000000000004 0 0 0 454.6000000000001 558.6V757.4C454.6000000000001 771.75 466.4000000000001 783.65 480.8500000000001 783.65C495.3000000000001 783.65 507.0500000000001 771.75 507.0500000000001 757.4V558.6A26.35 26.35 0 0 0 480.7500000000001 532.4zM404.2500000000001 532.4000000000001H304.9A26.4 26.4 0 0 0 278.65 558.6V757.4A26.35 26.35 0 0 0 331.15 757.4V584.9H404.35A26.25 26.25 0 0 0 404.35 532.4zM600 1071.4C324.35 1071.4 100 889.25 100 665.4999999999999C100 465 277.9 297.05 518.15 265.1499999999999C534.4 261.7499999999998 556.6 254.3999999999999 562.2 240.5499999999999C567.1999999999999 228.0499999999999 565.5 208.6499999999998 563.8 195.5499999999999L556.9499999999999 153.0499999999997C555.0999999999999 140.5499999999997 546.95 103.6499999999999 600.65 126.1999999999998C654.45 148.6499999999999 888.85 296.0999999999999 993.85 416.8C1065.6499999999999 495.55 1100 576.15 1100 665.5C1100 889.25 875.6 1071.4 600 1071.4z","horizAdvX":"1200"},"line-height":{"path":["M0 0h24v24H0z","M11 4h10v2H11V4zM6 7v4H4V7H1l4-4 4 4H6zm0 10h3l-4 4-4-4h3v-4h2v4zm5 1h10v2H11v-2zm-2-7h12v2H9v-2z"],"unicode":"","glyph":"M550 1000H1050V900H550V1000zM300 850V650H200V850H50L250 1050L450 850H300zM300 350H450L250 150L50 350H200V550H300V350zM550 300H1050V200H550V300zM450 650H1050V550H450V650z","horizAdvX":"1200"},"line-line":{"path":["M0 0h24v24H0z","M22 10.69c0 1.787-.687 3.4-2.123 4.974-2.1 2.414-6.788 5.363-7.864 5.812-1.074.451-.911-.287-.874-.537l.137-.85c.034-.262.068-.65-.032-.9-.112-.277-.556-.424-.881-.492C5.558 18.059 2 14.7 2 10.69c0-4.475 4.487-8.118 10-8.118 5.512 0 10 3.643 10 8.118zm-3.6 3.625c1.113-1.22 1.6-2.361 1.6-3.625 0-3.268-3.51-6.118-8-6.118s-8 2.85-8 6.118c0 2.905 2.728 5.507 6.626 6.024l.147.026c1.078.226 1.884.614 2.329 1.708l.036.096c1.806-1.176 4.174-2.98 5.261-4.229zm-.262-4a.526.526 0 0 1 0 1.05h-1.463v.938h1.462a.525.525 0 1 1 0 1.049H16.15a.526.526 0 0 1-.522-.524V8.852c0-.287.235-.525.525-.525h1.988a.525.525 0 0 1-.003 1.05h-1.462v.938h1.462zm-3.213 2.513a.524.524 0 0 1-.526.522.515.515 0 0 1-.425-.208l-2.036-2.764v2.45a.525.525 0 0 1-1.047 0V8.852a.522.522 0 0 1 .52-.523c.162 0 .312.086.412.211l2.052 2.775V8.852c0-.287.235-.525.525-.525.287 0 .525.238.525.525v3.976zm-4.784 0a.527.527 0 0 1-.526.524.526.526 0 0 1-.523-.524V8.852c0-.287.236-.525.525-.525.289 0 .524.238.524.525v3.976zm-2.055.524H6.097a.528.528 0 0 1-.525-.524V8.852a.527.527 0 0 1 1.05 0v3.45h1.464a.525.525 0 0 1 0 1.05z"],"unicode":"","glyph":"M1100 665.5C1100 576.15 1065.6499999999999 495.5 993.85 416.8000000000001C888.8499999999999 296.1 654.4499999999999 148.6499999999999 600.6499999999999 126.2000000000001C546.9499999999999 103.6500000000001 555.0999999999999 140.55 556.9499999999999 153.05L563.8 195.5500000000001C565.4999999999999 208.6500000000001 567.1999999999999 228.05 562.1999999999999 240.55C556.5999999999999 254.4000000000001 534.4 261.75 518.1499999999999 265.1500000000001C277.9 297.05 100 465 100 665.5C100 889.25 324.35 1071.4 600 1071.4C875.6 1071.4 1100 889.25 1100 665.5zM919.9999999999998 484.25C975.6499999999997 545.25 1000 602.3000000000001 1000 665.5C1000 828.9000000000001 824.5000000000001 971.4 600 971.4S200 828.9000000000001 200 665.5C200 520.25 336.4 390.1500000000001 531.3000000000001 364.3000000000001L538.6500000000001 363.0000000000001C592.5500000000001 351.7000000000002 632.8500000000001 332.3000000000001 655.1000000000001 277.6000000000002L656.9000000000001 272.8000000000002C747.2000000000002 331.6 865.6 421.8000000000002 919.95 484.2500000000001zM906.8999999999997 684.25A26.300000000000004 26.300000000000004 0 0 0 906.8999999999997 631.75H833.7499999999999V584.8499999999999H906.8499999999998A26.25 26.25 0 1 0 906.8499999999998 532.4H807.4999999999999A26.300000000000004 26.300000000000004 0 0 0 781.3999999999999 558.6V757.4C781.3999999999999 771.75 793.1499999999999 783.65 807.65 783.65H907.05A26.25 26.25 0 0 0 906.8999999999997 731.15H833.8V684.2499999999999H906.8999999999997zM746.2499999999999 558.6A26.2 26.2 0 0 0 719.9499999999998 532.5A25.750000000000004 25.750000000000004 0 0 0 698.6999999999998 542.9L596.8999999999999 681.1V558.6A26.25 26.25 0 0 0 544.5499999999998 558.6V757.4A26.099999999999998 26.099999999999998 0 0 0 570.5499999999998 783.55C578.6499999999999 783.55 586.1499999999997 779.25 591.1499999999999 773L693.7499999999998 634.2499999999999V757.4C693.7499999999998 771.75 705.4999999999998 783.65 719.9999999999999 783.65C734.3499999999999 783.65 746.2499999999999 771.75 746.2499999999999 757.4V558.6zM507.0499999999999 558.6A26.35 26.35 0 0 0 480.7499999999999 532.4A26.300000000000004 26.300000000000004 0 0 0 454.5999999999999 558.6V757.4C454.5999999999999 771.75 466.4 783.65 480.85 783.65C495.3 783.65 507.0499999999999 771.75 507.0499999999999 757.4V558.6zM404.3 532.4H304.85A26.4 26.4 0 0 0 278.6 558.6V757.4A26.35 26.35 0 0 0 331.1 757.4V584.9H404.3A26.25 26.25 0 0 0 404.3 532.4z","horizAdvX":"1200"},"link-m":{"path":["M0 0h24v24H0z","M17.657 14.828l-1.414-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414-1.414-1.414 1.414-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414zm-2.829 2.829l-1.414 1.414a6 6 0 1 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 1 0 12 17.657l1.414-1.414 1.414 1.414zm0-9.9l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07z"],"unicode":"","glyph":"M882.85 458.6L812.15 529.3000000000001L882.85 600A200 200 0 1 1 600 882.85L529.3000000000001 812.1500000000001L458.6 882.85L529.3000000000001 953.55A300 300 0 0 0 953.55 529.3000000000001L882.8499999999998 458.6zM741.4 317.15L670.6999999999999 246.45A300 300 0 1 0 246.45 670.6999999999999L317.15 741.3999999999999L387.85 670.6999999999999L317.15 600A200 200 0 1 1 600 317.15L670.6999999999999 387.85L741.4 317.15zM741.4 812.1500000000001L812.15 741.4L458.6 387.9L387.85 458.5999999999999L741.4 812.0999999999999z","horizAdvX":"1200"},"link-unlink-m":{"path":["M0 0h24v24H0z","M17.657 14.828l-1.414-1.414L17.657 12A4 4 0 1 0 12 6.343l-1.414 1.414-1.414-1.414 1.414-1.414a6 6 0 0 1 8.485 8.485l-1.414 1.414zm-2.829 2.829l-1.414 1.414a6 6 0 1 1-8.485-8.485l1.414-1.414 1.414 1.414L6.343 12A4 4 0 1 0 12 17.657l1.414-1.414 1.414 1.414zm0-9.9l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07zM5.775 2.293l1.932-.518L8.742 5.64l-1.931.518-1.036-3.864zm9.483 16.068l1.931-.518 1.036 3.864-1.932.518-1.035-3.864zM2.293 5.775l3.864 1.036-.518 1.931-3.864-1.035.518-1.932zm16.068 9.483l3.864 1.035-.518 1.932-3.864-1.036.518-1.931z"],"unicode":"","glyph":"M882.85 458.6L812.15 529.3000000000001L882.85 600A200 200 0 1 1 600 882.85L529.3000000000001 812.1500000000001L458.6 882.85L529.3000000000001 953.55A300 300 0 0 0 953.55 529.3000000000001L882.8499999999998 458.6zM741.4 317.15L670.6999999999999 246.45A300 300 0 1 0 246.45 670.6999999999999L317.15 741.3999999999999L387.85 670.6999999999999L317.15 600A200 200 0 1 1 600 317.15L670.6999999999999 387.85L741.4 317.15zM741.4 812.1500000000001L812.15 741.4L458.6 387.9L387.85 458.5999999999999L741.4 812.0999999999999zM288.75 1085.35L385.35 1111.25L437.1 918L340.5500000000001 892.1L288.75 1085.3zM762.9000000000001 281.95L859.45 307.85L911.2500000000002 114.6499999999999L814.6500000000001 88.75L762.9000000000001 281.95zM114.65 911.25L307.85 859.45L281.95 762.9L88.75 814.65L114.65 911.25zM918.05 437.0999999999999L1111.25 385.35L1085.3500000000001 288.7500000000001L892.15 340.5500000000002L918.05 437.1000000000003z","horizAdvX":"1200"},"link-unlink":{"path":["M0 0h24v24H0z","M17 17h5v2h-3v3h-2v-5zM7 7H2V5h3V2h2v5zm11.364 8.536L16.95 14.12l1.414-1.414a5 5 0 1 0-7.071-7.071L9.879 7.05 8.464 5.636 9.88 4.222a7 7 0 0 1 9.9 9.9l-1.415 1.414zm-2.828 2.828l-1.415 1.414a7 7 0 0 1-9.9-9.9l1.415-1.414L7.05 9.88l-1.414 1.414a5 5 0 1 0 7.071 7.071l1.414-1.414 1.415 1.414zm-.708-10.607l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07z"],"unicode":"","glyph":"M850 350H1100V250H950V100H850V350zM350 850H100V950H250V1100H350V850zM918.2 423.2000000000001L847.5 494L918.2 564.7A250 250 0 1 1 564.6500000000001 918.25L493.95 847.5L423.2000000000001 918.2L494.0000000000001 988.9A350 350 0 0 0 989 493.9L918.2500000000002 423.2000000000001zM776.8000000000001 281.8L706.0500000000001 211.0999999999999A350 350 0 0 0 211.0500000000001 706.0999999999999L281.8000000000001 776.8L352.5 706L281.8 635.3A250 250 0 1 1 635.35 281.7499999999999L706.0500000000001 352.45L776.8000000000001 281.7499999999999zM741.4000000000001 812.1499999999999L812.1500000000001 741.4L458.6000000000001 387.9L387.8500000000002 458.5999999999999L741.4000000000001 812.0999999999999z","horizAdvX":"1200"},"link":{"path":["M0 0h24v24H0z","M18.364 15.536L16.95 14.12l1.414-1.414a5 5 0 1 0-7.071-7.071L9.879 7.05 8.464 5.636 9.88 4.222a7 7 0 0 1 9.9 9.9l-1.415 1.414zm-2.828 2.828l-1.415 1.414a7 7 0 0 1-9.9-9.9l1.415-1.414L7.05 9.88l-1.414 1.414a5 5 0 1 0 7.071 7.071l1.414-1.414 1.415 1.414zm-.708-10.607l1.415 1.415-7.071 7.07-1.415-1.414 7.071-7.07z"],"unicode":"","glyph":"M918.2 423.2000000000001L847.5 494L918.2 564.7A250 250 0 1 1 564.6500000000001 918.25L493.95 847.5L423.2000000000001 918.2L494.0000000000001 988.9A350 350 0 0 0 989 493.9L918.2500000000002 423.2000000000001zM776.8000000000001 281.8L706.0500000000001 211.0999999999999A350 350 0 0 0 211.0500000000001 706.0999999999999L281.8000000000001 776.8L352.5 706L281.8 635.3A250 250 0 1 1 635.35 281.7499999999999L706.0500000000001 352.45L776.8000000000001 281.7499999999999zM741.4000000000001 812.1499999999999L812.1500000000001 741.4L458.6000000000001 387.9L387.8500000000002 458.5999999999999L741.4000000000001 812.0999999999999z","horizAdvX":"1200"},"linkedin-box-fill":{"path":["M0 0h24v24H0z","M18.335 18.339H15.67v-4.177c0-.996-.02-2.278-1.39-2.278-1.389 0-1.601 1.084-1.601 2.205v4.25h-2.666V9.75h2.56v1.17h.035c.358-.674 1.228-1.387 2.528-1.387 2.7 0 3.2 1.778 3.2 4.091v4.715zM7.003 8.575a1.546 1.546 0 0 1-1.548-1.549 1.548 1.548 0 1 1 1.547 1.549zm1.336 9.764H5.666V9.75H8.34v8.589zM19.67 3H4.329C3.593 3 3 3.58 3 4.297v15.406C3 20.42 3.594 21 4.328 21h15.338C20.4 21 21 20.42 21 19.703V4.297C21 3.58 20.4 3 19.666 3h.003z"],"unicode":"","glyph":"M916.75 283.0500000000001H783.5V491.9000000000001C783.5 541.7 782.5 605.8000000000001 714 605.8000000000001C644.55 605.8000000000001 633.9499999999999 551.6000000000001 633.9499999999999 495.5500000000001V283.0500000000001H500.6499999999999V712.5H628.65V654H630.4C648.3 687.6999999999999 691.8 723.35 756.8 723.35C891.8 723.35 916.8 634.45 916.8 518.8000000000001V283.0500000000001zM350.15 771.25A77.30000000000001 77.30000000000001 0 0 0 272.75 848.7A77.4 77.4 0 1 0 350.1 771.25zM416.9500000000001 283.0500000000001H283.3V712.5H417V283.0500000000001zM983.5000000000002 1050H216.45C179.65 1050 150 1021 150 985.15V214.85C150 178.9999999999999 179.7 150 216.4 150H983.3C1019.9999999999998 150 1050 178.9999999999999 1050 214.85V985.15C1050 1021 1019.9999999999998 1050 983.3 1050H983.45z","horizAdvX":"1200"},"linkedin-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm2.5 4a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-1 1h2v7.5h-2V10zm5.5.43c.584-.565 1.266-.93 2-.93 2.071 0 3.5 1.679 3.5 3.75v4.25h-2v-4.25a1.75 1.75 0 0 0-3.5 0v4.25h-2V10h2v.43z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM375 750A75 75 0 1 0 375 900A75 75 0 0 0 375 750zM325 700H425V325H325V700zM600 678.5C629.1999999999999 706.75 663.3 725 700 725C803.5500000000001 725 875 641.05 875 537.5V325H775V537.5A87.5 87.5 0 0 1 600 537.5V325H500V700H600V678.5z","horizAdvX":"1200"},"linkedin-fill":{"path":["M0 0h24v24H0z","M6.94 5a2 2 0 1 1-4-.002 2 2 0 0 1 4 .002zM7 8.48H3V21h4V8.48zm6.32 0H9.34V21h3.94v-6.57c0-3.66 4.77-4 4.77 0V21H22v-7.93c0-6.17-7.06-5.94-8.72-2.91l.04-1.68z"],"unicode":"","glyph":"M347 950A100 100 0 1 0 147 950.1A100 100 0 0 0 347 950zM350 776H150V150H350V776zM666 776H467V150H664V478.5C664 661.5 902.4999999999998 678.5 902.4999999999998 478.5V150H1100V546.5C1100 855 747.0000000000001 843.5 664 692L665.9999999999999 776z","horizAdvX":"1200"},"linkedin-line":{"path":["M0 0h24v24H0z","M12 9.55C12.917 8.613 14.111 8 15.5 8a5.5 5.5 0 0 1 5.5 5.5V21h-2v-7.5a3.5 3.5 0 0 0-7 0V21h-2V8.5h2v1.05zM5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-1 2h2V21H4V8.5z"],"unicode":"","glyph":"M600 722.5C645.85 769.35 705.5500000000001 800 775 800A275 275 0 0 0 1050 525V150H950V525A175 175 0 0 1 600 525V150H500V775H600V722.5zM250 875A75 75 0 1 0 250 1025A75 75 0 0 0 250 875zM200 775H300V150H200V775z","horizAdvX":"1200"},"links-fill":{"path":["M0 0h24v24H0z","M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z"],"unicode":"","glyph":"M653 794.5L723.7500000000001 723.75A350 350 0 0 0 723.7500000000001 228.7500000000001L706.0500000000001 211.1A350 350 0 0 0 211.0500000000001 706.1000000000001L281.8000000000001 635.35A250 250 0 1 1 635.35 281.8000000000002L653.05 299.5000000000001A250 250 0 0 1 653.05 653.0000000000001L582.3000000000001 723.75L653.05 794.45zM988.9 493.95L918.1999999999998 564.6500000000001A250 250 0 1 1 564.6499999999999 918.2L546.9499999999999 900.5A250 250 0 0 1 546.9499999999999 547.0000000000001L617.6999999999999 476.2500000000001L546.95 405.5500000000001L476.25 476.2500000000001A350 350 0 0 0 476.25 971.2500000000002L493.95 988.9A350 350 0 0 0 988.95 493.9000000000001z","horizAdvX":"1200"},"links-line":{"path":["M0 0h24v24H0z","M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z"],"unicode":"","glyph":"M653 794.5L723.7500000000001 723.75A350 350 0 0 0 723.7500000000001 228.7500000000001L706.0500000000001 211.1A350 350 0 0 0 211.0500000000001 706.1000000000001L281.8000000000001 635.35A250 250 0 1 1 635.35 281.8000000000002L653.05 299.5000000000001A250 250 0 0 1 653.05 653.0000000000001L582.3000000000001 723.75L653.05 794.45zM988.9 493.95L918.1999999999998 564.6500000000001A250 250 0 1 1 564.6499999999999 918.2L546.9499999999999 900.5A250 250 0 0 1 546.9499999999999 547.0000000000001L617.6999999999999 476.2500000000001L546.95 405.5500000000001L476.25 476.2500000000001A350 350 0 0 0 476.25 971.2500000000002L493.95 988.9A350 350 0 0 0 988.95 493.9000000000001z","horizAdvX":"1200"},"list-check-2":{"path":["M0 0h24v24H0z","M11 4h10v2H11V4zm0 4h6v2h-6V8zm0 6h10v2H11v-2zm0 4h6v2h-6v-2zM3 4h6v6H3V4zm2 2v2h2V6H5zm-2 8h6v6H3v-6zm2 2v2h2v-2H5z"],"unicode":"","glyph":"M550 1000H1050V900H550V1000zM550 800H850V700H550V800zM550 500H1050V400H550V500zM550 300H850V200H550V300zM150 1000H450V700H150V1000zM250 900V800H350V900H250zM150 500H450V200H150V500zM250 400V300H350V400H250z","horizAdvX":"1200"},"list-check":{"path":["M0 0h24v24H0z","M8 4h13v2H8V4zm-5-.5h3v3H3v-3zm0 7h3v3H3v-3zm0 7h3v3H3v-3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"],"unicode":"","glyph":"M400 1000H1050V900H400V1000zM150 1025H300V875H150V1025zM150 675H300V525H150V675zM150 325H300V175H150V325zM400 650H1050V550H400V650zM400 300H1050V200H400V300z","horizAdvX":"1200"},"list-ordered":{"path":["M0 0h24v24H0z","M8 4h13v2H8V4zM5 3v3h1v1H3V6h1V4H3V3h2zM3 14v-2.5h2V11H3v-1h3v2.5H4v.5h2v1H3zm2 5.5H3v-1h2V18H3v-1h3v4H3v-1h2v-.5zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"],"unicode":"","glyph":"M400 1000H1050V900H400V1000zM250 1050V900H300V850H150V900H200V1000H150V1050H250zM150 500V625H250V650H150V700H300V575H200V550H300V500H150zM250 225H150V275H250V300H150V350H300V150H150V200H250V225zM400 650H1050V550H400V650zM400 300H1050V200H400V300z","horizAdvX":"1200"},"list-settings-fill":{"path":["M0 0h24v24H0z","M2 18h7v2H2v-2zm0-7h9v2H2v-2zm0-7h20v2H2V4zm18.674 9.025l1.156-.391 1 1.732-.916.805a4.017 4.017 0 0 1 0 1.658l.916.805-1 1.732-1.156-.391c-.41.37-.898.655-1.435.83L19 21h-2l-.24-1.196a3.996 3.996 0 0 1-1.434-.83l-1.156.392-1-1.732.916-.805a4.017 4.017 0 0 1 0-1.658l-.916-.805 1-1.732 1.156.391c.41-.37.898-.655 1.435-.83L17 11h2l.24 1.196c.536.174 1.024.46 1.434.83zM18 17a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 300H450V200H100V300zM100 650H550V550H100V650zM100 1000H1100V900H100V1000zM1033.7 548.75L1091.5 568.3L1141.5 481.7L1095.6999999999998 441.4500000000001A200.85 200.85 0 0 0 1095.6999999999998 358.55L1141.5 318.3L1091.5 231.7000000000001L1033.7 251.2499999999999C1013.2 232.7499999999999 988.8 218.4999999999999 961.95 209.75L950 150H850L838.0000000000001 209.8000000000001A199.8 199.8 0 0 0 766.3000000000001 251.3L708.5000000000001 231.7000000000001L658.5000000000001 318.3L704.3000000000001 358.55A200.85 200.85 0 0 0 704.3000000000001 441.45L658.5000000000001 481.6999999999999L708.5000000000001 568.2999999999998L766.3000000000001 548.7499999999999C786.8000000000001 567.2499999999999 811.2000000000002 581.4999999999999 838.0500000000002 590.2499999999999L850 650H950L961.9999999999998 590.2C988.8 581.5 1013.2 567.1999999999999 1033.7 548.7zM900 350A50 50 0 1 1 900 450A50 50 0 0 1 900 350z","horizAdvX":"1200"},"list-settings-line":{"path":["M0 0h24v24H0z","M2 18h7v2H2v-2zm0-7h9v2H2v-2zm0-7h20v2H2V4zm18.674 9.025l1.156-.391 1 1.732-.916.805a4.017 4.017 0 0 1 0 1.658l.916.805-1 1.732-1.156-.391c-.41.37-.898.655-1.435.83L19 21h-2l-.24-1.196a3.996 3.996 0 0 1-1.434-.83l-1.156.392-1-1.732.916-.805a4.017 4.017 0 0 1 0-1.658l-.916-.805 1-1.732 1.156.391c.41-.37.898-.655 1.435-.83L17 11h2l.24 1.196c.536.174 1.024.46 1.434.83zM18 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M100 300H450V200H100V300zM100 650H550V550H100V650zM100 1000H1100V900H100V1000zM1033.7 548.75L1091.5 568.3L1141.5 481.7L1095.6999999999998 441.4500000000001A200.85 200.85 0 0 0 1095.6999999999998 358.55L1141.5 318.3L1091.5 231.7000000000001L1033.7 251.2499999999999C1013.2 232.7499999999999 988.8 218.4999999999999 961.95 209.75L950 150H850L838.0000000000001 209.8000000000001A199.8 199.8 0 0 0 766.3000000000001 251.3L708.5000000000001 231.7000000000001L658.5000000000001 318.3L704.3000000000001 358.55A200.85 200.85 0 0 0 704.3000000000001 441.45L658.5000000000001 481.6999999999999L708.5000000000001 568.2999999999998L766.3000000000001 548.7499999999999C786.8000000000001 567.2499999999999 811.2000000000002 581.4999999999999 838.0500000000002 590.2499999999999L850 650H950L961.9999999999998 590.2C988.8 581.5 1013.2 567.1999999999999 1033.7 548.7zM900 300A100 100 0 1 1 900 500A100 100 0 0 1 900 300z","horizAdvX":"1200"},"list-unordered":{"path":["M0 0h24v24H0z","M8 4h13v2H8V4zM4.5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6.9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"],"unicode":"","glyph":"M400 1000H1050V900H400V1000zM225 875A75 75 0 1 0 225 1025A75 75 0 0 0 225 875zM225 525A75 75 0 1 0 225 675A75 75 0 0 0 225 525zM225 180.0000000000001A75 75 0 1 0 225 330.0000000000001A75 75 0 0 0 225 180.0000000000001zM400 650H1050V550H400V650zM400 300H1050V200H400V300z","horizAdvX":"1200"},"live-fill":{"path":["M0 0h24v24H0z","M16 4a1 1 0 0 1 1 1v4.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14zM7.4 8.829a.4.4 0 0 0-.392.32L7 9.228v5.542a.4.4 0 0 0 .542.374l.073-.036 4.355-2.772a.4.4 0 0 0 .063-.624l-.063-.05L7.615 8.89A.4.4 0 0 0 7.4 8.83z"],"unicode":"","glyph":"M800 1000A50 50 0 0 0 850 950V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800zM370 758.55A20.000000000000004 20.000000000000004 0 0 1 350.4 742.55L350 738.6V461.5A20.000000000000004 20.000000000000004 0 0 1 377.1 442.8L380.75 444.6L598.5 583.1999999999999A20.000000000000004 20.000000000000004 0 0 1 601.6500000000001 614.4L598.5 616.9000000000001L380.75 755.5A20.000000000000004 20.000000000000004 0 0 1 370 758.5z","horizAdvX":"1200"},"live-line":{"path":["M0 0h24v24H0z","M16 4a1 1 0 0 1 1 1v4.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14zm-1 2H3v12h12V6zM7.4 8.829a.4.4 0 0 1 .215.062l4.355 2.772a.4.4 0 0 1 0 .674L7.615 15.11A.4.4 0 0 1 7 14.77V9.23c0-.221.18-.4.4-.4zM21 8.84l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000A50 50 0 0 0 850 950V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800zM750 900H150V300H750V900zM370 758.55A20.000000000000004 20.000000000000004 0 0 0 380.75 755.45L598.5 616.85A20.000000000000004 20.000000000000004 0 0 0 598.5 583.15L380.75 444.5A20.000000000000004 20.000000000000004 0 0 0 350 461.5V738.5C350 749.55 359 758.5 370 758.5zM1050 758L850 618V582.1L1050 442.0999999999999V758z","horizAdvX":"1200"},"loader-2-fill":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm10-5a1 1 0 0 1-1 1h-3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zM7 12a1 1 0 0 1-1 1H3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zm12.071 7.071a1 1 0 0 1-1.414 0l-2.121-2.121a1 1 0 0 1 1.414-1.414l2.121 2.12a1 1 0 0 1 0 1.415zM8.464 8.464a1 1 0 0 1-1.414 0L4.93 6.344a1 1 0 0 1 1.414-1.415L8.464 7.05a1 1 0 0 1 0 1.414zM4.93 19.071a1 1 0 0 1 0-1.414l2.121-2.121a1 1 0 1 1 1.414 1.414l-2.12 2.121a1 1 0 0 1-1.415 0zM15.536 8.464a1 1 0 0 1 0-1.414l2.12-2.121a1 1 0 0 1 1.415 1.414L16.95 8.464a1 1 0 0 1-1.414 0z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1100 600A50 50 0 0 0 1050 550H900A50 50 0 0 0 900 650H1050A50 50 0 0 0 1100 600zM350 600A50 50 0 0 0 300 550H150A50 50 0 0 0 150 650H300A50 50 0 0 0 350 600zM953.55 246.4500000000001A50 50 0 0 0 882.8499999999998 246.4500000000001L776.7999999999998 352.5A50 50 0 0 0 847.4999999999998 423.2000000000001L953.5499999999998 317.2000000000001A50 50 0 0 0 953.5499999999998 246.4500000000001zM423.2000000000001 776.8A50 50 0 0 0 352.5000000000001 776.8L246.5 882.8A50 50 0 0 0 317.2 953.55L423.2000000000001 847.5A50 50 0 0 0 423.2000000000001 776.8zM246.5 246.45A50 50 0 0 0 246.5 317.15L352.55 423.2000000000001A50 50 0 1 0 423.25 352.5L317.25 246.4500000000001A50 50 0 0 0 246.5 246.4500000000001zM776.8 776.8A50 50 0 0 0 776.8 847.5L882.8 953.55A50 50 0 0 0 953.55 882.85L847.5 776.8A50 50 0 0 0 776.8 776.8z","horizAdvX":"1200"},"loader-2-line":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm10-5a1 1 0 0 1-1 1h-3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zM7 12a1 1 0 0 1-1 1H3a1 1 0 0 1 0-2h3a1 1 0 0 1 1 1zm12.071 7.071a1 1 0 0 1-1.414 0l-2.121-2.121a1 1 0 0 1 1.414-1.414l2.121 2.12a1 1 0 0 1 0 1.415zM8.464 8.464a1 1 0 0 1-1.414 0L4.93 6.344a1 1 0 0 1 1.414-1.415L8.464 7.05a1 1 0 0 1 0 1.414zM4.93 19.071a1 1 0 0 1 0-1.414l2.121-2.121a1 1 0 1 1 1.414 1.414l-2.12 2.121a1 1 0 0 1-1.415 0zM15.536 8.464a1 1 0 0 1 0-1.414l2.12-2.121a1 1 0 0 1 1.415 1.414L16.95 8.464a1 1 0 0 1-1.414 0z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1100 600A50 50 0 0 0 1050 550H900A50 50 0 0 0 900 650H1050A50 50 0 0 0 1100 600zM350 600A50 50 0 0 0 300 550H150A50 50 0 0 0 150 650H300A50 50 0 0 0 350 600zM953.55 246.4500000000001A50 50 0 0 0 882.8499999999998 246.4500000000001L776.7999999999998 352.5A50 50 0 0 0 847.4999999999998 423.2000000000001L953.5499999999998 317.2000000000001A50 50 0 0 0 953.5499999999998 246.4500000000001zM423.2000000000001 776.8A50 50 0 0 0 352.5000000000001 776.8L246.5 882.8A50 50 0 0 0 317.2 953.55L423.2000000000001 847.5A50 50 0 0 0 423.2000000000001 776.8zM246.5 246.45A50 50 0 0 0 246.5 317.15L352.55 423.2000000000001A50 50 0 1 0 423.25 352.5L317.25 246.4500000000001A50 50 0 0 0 246.5 246.4500000000001zM776.8 776.8A50 50 0 0 0 776.8 847.5L882.8 953.55A50 50 0 0 0 953.55 882.85L847.5 776.8A50 50 0 0 0 776.8 776.8z","horizAdvX":"1200"},"loader-3-fill":{"path":["M0 0h24v24H0z","M3.055 13H5.07a7.002 7.002 0 0 0 13.858 0h2.016a9.001 9.001 0 0 1-17.89 0zm0-2a9.001 9.001 0 0 1 17.89 0H18.93a7.002 7.002 0 0 0-13.858 0H3.055z"],"unicode":"","glyph":"M152.75 550H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 550H1047.2A450.04999999999995 450.04999999999995 0 0 0 152.7000000000001 550zM152.75 650A450.04999999999995 450.04999999999995 0 0 0 1047.25 650H946.5A350.09999999999997 350.09999999999997 0 0 1 253.6 650H152.75z","horizAdvX":"1200"},"loader-3-line":{"path":["M0 0h24v24H0z","M3.055 13H5.07a7.002 7.002 0 0 0 13.858 0h2.016a9.001 9.001 0 0 1-17.89 0zm0-2a9.001 9.001 0 0 1 17.89 0H18.93a7.002 7.002 0 0 0-13.858 0H3.055z"],"unicode":"","glyph":"M152.75 550H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 550H1047.2A450.04999999999995 450.04999999999995 0 0 0 152.7000000000001 550zM152.75 650A450.04999999999995 450.04999999999995 0 0 0 1047.25 650H946.5A350.09999999999997 350.09999999999997 0 0 1 253.6 650H152.75z","horizAdvX":"1200"},"loader-4-fill":{"path":["M0 0h24v24H0z","M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"],"unicode":"","glyph":"M918.2 918.2L847.5 847.5A350 350 0 1 1 950 600H1050A450 450 0 1 0 918.2 918.2z","horizAdvX":"1200"},"loader-4-line":{"path":["M0 0h24v24H0z","M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"],"unicode":"","glyph":"M918.2 918.2L847.5 847.5A350 350 0 1 1 950 600H1050A450 450 0 1 0 918.2 918.2z","horizAdvX":"1200"},"loader-5-fill":{"path":["M0 0h24v24H0z","M12 3a9 9 0 0 1 9 9h-2a7 7 0 0 0-7-7V3z"],"unicode":"","glyph":"M600 1050A450 450 0 0 0 1050 600H950A350 350 0 0 1 600 950V1050z","horizAdvX":"1200"},"loader-5-line":{"path":["M0 0h24v24H0z","M12 3a9 9 0 0 1 9 9h-2a7 7 0 0 0-7-7V3z"],"unicode":"","glyph":"M600 1050A450 450 0 0 0 1050 600H950A350 350 0 0 1 600 950V1050z","horizAdvX":"1200"},"loader-fill":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm8.66-10a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5A1 1 0 0 1 20.66 7zM7.67 14.5a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5a1 1 0 0 1 1.366.366zM20.66 17a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 0 1 1-1.732l2.598 1.5A1 1 0 0 1 20.66 17zM7.67 9.5a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 1 1 1-1.732l2.598 1.5A1 1 0 0 1 7.67 9.5z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1033 850A50 50 0 0 0 1014.7 781.7L884.8000000000001 706.7A50 50 0 1 0 834.8000000000001 793.3L964.7 868.3A50 50 0 0 0 1033 850zM383.5 475A50 50 0 0 0 365.2 406.7000000000001L235.3 331.7000000000001A50 50 0 1 0 185.3 418.3L315.2 493.3A50 50 0 0 0 383.5 475zM1033 350A50 50 0 0 0 964.7 331.7000000000001L834.8000000000001 406.7000000000001A50 50 0 0 0 884.8000000000001 493.3L1014.7 418.3A50 50 0 0 0 1033 350zM383.5 725A50 50 0 0 0 315.2 706.7L185.3 781.7A50 50 0 1 0 235.3 868.3L365.2 793.3A50 50 0 0 0 383.5 725z","horizAdvX":"1200"},"loader-line":{"path":["M0 0h24v24H0z","M12 2a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V3a1 1 0 0 1 1-1zm0 15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm8.66-10a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5A1 1 0 0 1 20.66 7zM7.67 14.5a1 1 0 0 1-.366 1.366l-2.598 1.5a1 1 0 1 1-1-1.732l2.598-1.5a1 1 0 0 1 1.366.366zM20.66 17a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 0 1 1-1.732l2.598 1.5A1 1 0 0 1 20.66 17zM7.67 9.5a1 1 0 0 1-1.366.366l-2.598-1.5a1 1 0 1 1 1-1.732l2.598 1.5A1 1 0 0 1 7.67 9.5z"],"unicode":"","glyph":"M600 1100A50 50 0 0 0 650 1050V900A50 50 0 0 0 550 900V1050A50 50 0 0 0 600 1100zM600 350A50 50 0 0 0 650 300V150A50 50 0 0 0 550 150V300A50 50 0 0 0 600 350zM1033 850A50 50 0 0 0 1014.7 781.7L884.8000000000001 706.7A50 50 0 1 0 834.8000000000001 793.3L964.7 868.3A50 50 0 0 0 1033 850zM383.5 475A50 50 0 0 0 365.2 406.7000000000001L235.3 331.7000000000001A50 50 0 1 0 185.3 418.3L315.2 493.3A50 50 0 0 0 383.5 475zM1033 350A50 50 0 0 0 964.7 331.7000000000001L834.8000000000001 406.7000000000001A50 50 0 0 0 884.8000000000001 493.3L1014.7 418.3A50 50 0 0 0 1033 350zM383.5 725A50 50 0 0 0 315.2 706.7L185.3 781.7A50 50 0 1 0 235.3 868.3L365.2 793.3A50 50 0 0 0 383.5 725z","horizAdvX":"1200"},"lock-2-fill":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-7 7.732V18h2v-2.268a2 2 0 1 0-2 0zM16 8V7a4 4 0 1 0-8 0v1h8z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM550 413.4000000000001V300H650V413.4000000000001A100 100 0 1 1 550 413.4000000000001zM800 800V850A200 200 0 1 1 400 850V800H800z","horizAdvX":"1200"},"lock-2-line":{"path":["M0 0h24v24H0z","M6 8V7a6 6 0 1 1 12 0v1h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2zm13 2H5v10h14V10zm-8 5.732a2 2 0 1 1 2 0V18h-2v-2.268zM8 8h8V7a4 4 0 1 0-8 0v1z"],"unicode":"","glyph":"M300 800V850A300 300 0 1 0 900 850V800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300zM950 700H250V200H950V700zM550 413.4000000000001A100 100 0 1 0 650 413.4000000000001V300H550V413.4000000000001zM400 800H800V850A200 200 0 1 1 400 850V800z","horizAdvX":"1200"},"lock-fill":{"path":["M0 0h24v24H0z","M19 10h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 1 1 14 0v1zm-2 0V9A5 5 0 0 0 7 9v1h10zm-6 4v4h2v-4h-2z"],"unicode":"","glyph":"M950 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 1 0 950 750V700zM850 700V750A250 250 0 0 1 350 750V700H850zM550 500V300H650V500H550z","horizAdvX":"1200"},"lock-line":{"path":["M0 0h24v24H0z","M19 10h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 1 1 14 0v1zM5 12v8h14v-8H5zm6 2h2v4h-2v-4zm6-4V9A5 5 0 0 0 7 9v1h10z"],"unicode":"","glyph":"M950 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 1 0 950 750V700zM250 600V200H950V600H250zM550 500H650V300H550V500zM850 700V750A250 250 0 0 1 350 750V700H850z","horizAdvX":"1200"},"lock-password-fill":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-5 6v2h2v-2h-2zm-4 0v2h2v-2H7zm8 0v2h2v-2h-2z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM800 800V850A200 200 0 1 1 400 850V800H800zM550 500V400H650V500H550zM350 500V400H450V500H350zM750 500V400H850V500H750z","horizAdvX":"1200"},"lock-password-line":{"path":["M0 0h24v24H0z","M18 8h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zM5 10v10h14V10H5zm6 4h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2zm1-6V7a4 4 0 1 0-8 0v1h8z"],"unicode":"","glyph":"M900 800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H300V850A300 300 0 1 0 900 850V800zM250 700V200H950V700H250zM550 500H650V400H550V500zM350 500H450V400H350V500zM750 500H850V400H750V500zM800 800V850A200 200 0 1 1 400 850V800H800z","horizAdvX":"1200"},"lock-unlock-fill":{"path":["M0 0h24v24H0z","M7 10h13a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 13.262-3.131l-1.789.894A5 5 0 0 0 7 9v1zm3 5v2h4v-2h-4z"],"unicode":"","glyph":"M350 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 0 0 913.1 906.55L823.65 861.85A250 250 0 0 1 350 750V700zM500 450V350H700V450H500z","horizAdvX":"1200"},"lock-unlock-line":{"path":["M0 0h24v24H0z","M7 10h13a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1V9a7 7 0 0 1 13.262-3.131l-1.789.894A5 5 0 0 0 7 9v1zm-2 2v8h14v-8H5zm5 3h4v2h-4v-2z"],"unicode":"","glyph":"M350 700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250V750A350 350 0 0 0 913.1 906.55L823.65 861.85A250 250 0 0 1 350 750V700zM250 600V200H950V600H250zM500 450H700V350H500V450z","horizAdvX":"1200"},"login-box-fill":{"path":["M0 0h24v24H0z","M10 11H4V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8h6v3l5-4-5-4v3z"],"unicode":"","glyph":"M500 650H200V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V550H500V400L750 600L500 800V650z","horizAdvX":"1200"},"login-box-line":{"path":["M0 0h24v24H0z","M4 15h2v5h12V4H6v5H4V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6zm6-4V8l5 4-5 4v-3H2v-2h8z"],"unicode":"","glyph":"M200 450H300V200H900V1000H300V750H200V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V450zM500 650V800L750 600L500 400V550H100V650H500z","horizAdvX":"1200"},"login-circle-fill":{"path":["M0 0h24v24H0z","M10 11H2.05C2.55 5.947 6.814 2 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-5.185 0-9.449-3.947-9.95-9H10v3l5-4-5-4v3z"],"unicode":"","glyph":"M500 650H102.5C127.5 902.65 340.7 1100 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C340.75 100 127.55 297.3499999999999 102.5 550H500V400L750 600L500 800V650z","horizAdvX":"1200"},"login-circle-line":{"path":["M0 0h24v24H0z","M10 11V8l5 4-5 4v-3H1v-2h9zm-7.542 4h2.124A8.003 8.003 0 0 0 20 12 8 8 0 0 0 4.582 9H2.458C3.732 4.943 7.522 2 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-4.478 0-8.268-2.943-9.542-7z"],"unicode":"","glyph":"M500 650V800L750 600L500 400V550H50V650H500zM122.9 450H229.1A400.15000000000003 400.15000000000003 0 0 1 1000 600A400 400 0 0 1 229.1 750H122.9C186.6 952.85 376.1 1100 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100C376.1 100 186.6 247.1500000000001 122.9 450z","horizAdvX":"1200"},"logout-box-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm4 9V8l-5 4 5 4v-3h6v-2H9z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM450 650V800L200 600L450 400V550H750V650H450z","horizAdvX":"1200"},"logout-box-line":{"path":["M0 0h24v24H0z","M4 18h2v2h12V4H6v2H4V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3zm2-7h7v2H6v3l-5-4 5-4v3z"],"unicode":"","glyph":"M200 300H300V200H900V1000H300V900H200V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V300zM300 650H650V550H300V400L50 600L300 800V650z","horizAdvX":"1200"},"logout-box-r-fill":{"path":["M0 0h24v24H0z","M5 22a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5zm10-6l5-4-5-4v3H9v2h6v3z"],"unicode":"","glyph":"M250 100A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250zM750 400L1000 600L750 800V650H450V550H750V400z","horizAdvX":"1200"},"logout-box-r-line":{"path":["M0 0h24v24H0z","M5 22a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v3h-2V4H6v16h12v-2h2v3a1 1 0 0 1-1 1H5zm13-6v-3h-7v-2h7V8l5 4-5 4z"],"unicode":"","glyph":"M250 100A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100H950A50 50 0 0 0 1000 1050V900H900V1000H300V200H900V300H1000V150A50 50 0 0 0 950 100H250zM900 400V550H550V650H900V800L1150 600L900 400z","horizAdvX":"1200"},"logout-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 11V8l-5 4 5 4v-3h8v-2H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 650V800L100 600L350 400V550H750V650H350z","horizAdvX":"1200"},"logout-circle-line":{"path":["M0 0h24v24H0z","M5 11h8v2H5v3l-5-4 5-4v3zm-1 7h2.708a8 8 0 1 0 0-12H4A9.985 9.985 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10a9.985 9.985 0 0 1-8-4z"],"unicode":"","glyph":"M250 650H650V550H250V400L0 600L250 800V650zM200 300H335.4000000000001A400 400 0 1 1 335.4000000000001 900H200A499.25 499.25 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100A499.25 499.25 0 0 0 200 300z","horizAdvX":"1200"},"logout-circle-r-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm5-6l5-4-5-4v3H9v2h8v3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM850 400L1100 600L850 800V650H450V550H850V400z","horizAdvX":"1200"},"logout-circle-r-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2a9.985 9.985 0 0 1 8 4h-2.71a8 8 0 1 0 .001 12h2.71A9.985 9.985 0 0 1 12 22zm7-6v-3h-8v-2h8V8l5 4-5 4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100A499.25 499.25 0 0 0 1000 900H864.5A400 400 0 1 1 864.5500000000001 300H1000.05A499.25 499.25 0 0 0 600 100zM950 400V550H550V650H950V800L1200 600L950 400z","horizAdvX":"1200"},"luggage-cart-fill":{"path":["M0 0H24V24H0z","M5.5 20c.828 0 1.5.672 1.5 1.5S6.328 23 5.5 23 4 22.328 4 21.5 4.672 20 5.5 20zm13 0c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5-1.5-.672-1.5-1.5.672-1.5 1.5-1.5zM2.172 1.757l3.827 3.828V17L20 17v2H5c-.552 0-1-.448-1-1V6.413L.756 3.172l1.415-1.415zM16 3c.552 0 1 .448 1 1v2h2.993C20.55 6 21 6.456 21 6.995v8.01c0 .55-.45.995-1.007.995H8.007C7.45 16 7 15.544 7 15.005v-8.01C7 6.445 7.45 6 8.007 6h2.992L11 4c0-.552.448-1 1-1h4zm-5 5h-1v6h1V8zm7 0h-1v6h1V8zm-3-3h-2v1h2V5z"],"unicode":"","glyph":"M275 200C316.4000000000001 200 350 166.3999999999999 350 125S316.4000000000001 50 275 50S200 83.6000000000001 200 125S233.6 200 275 200zM925 200C966.4 200 1000 166.3999999999999 1000 125S966.4 50 925 50S850 83.6000000000001 850 125S883.6 200 925 200zM108.6 1112.15L299.9500000000001 920.75V350L1000 350V250H250C222.4 250 200 272.4 200 300V879.3499999999999L37.8 1041.4L108.55 1112.15zM800 1050C827.6 1050 850 1027.6 850 1000V900H999.65C1027.5 900 1050 877.2 1050 850.25V449.75C1050 422.25 1027.5 400.0000000000001 999.65 400.0000000000001H400.35C372.5 400 350 422.8 350 449.75V850.25C350 877.75 372.5 900 400.35 900H549.9499999999999L550 1000C550 1027.6 572.4 1050 600 1050H800zM550 800H500V500H550V800zM900 800H850V500H900V800zM750 950H650V900H750V950z","horizAdvX":"1200"},"luggage-cart-line":{"path":["M0 0H24V24H0z","M5.5 20c.828 0 1.5.672 1.5 1.5S6.328 23 5.5 23 4 22.328 4 21.5 4.672 20 5.5 20zm13 0c.828 0 1.5.672 1.5 1.5s-.672 1.5-1.5 1.5-1.5-.672-1.5-1.5.672-1.5 1.5-1.5zM2.172 1.757l3.827 3.828V17L20 17v2H5c-.552 0-1-.448-1-1V6.413L.756 3.172l1.415-1.415zM16 3c.552 0 1 .448 1 1v2h2.993C20.55 6 21 6.456 21 6.995v8.01c0 .55-.45.995-1.007.995H8.007C7.45 16 7 15.544 7 15.005v-8.01C7 6.445 7.45 6 8.007 6h2.992L11 4c0-.552.448-1 1-1h4zm-6 5H9v6h1V8zm6 0h-4v6h4V8zm3 0h-1v6h1V8zm-4-3h-2v1h2V5z"],"unicode":"","glyph":"M275 200C316.4000000000001 200 350 166.3999999999999 350 125S316.4000000000001 50 275 50S200 83.6000000000001 200 125S233.6 200 275 200zM925 200C966.4 200 1000 166.3999999999999 1000 125S966.4 50 925 50S850 83.6000000000001 850 125S883.6 200 925 200zM108.6 1112.15L299.9500000000001 920.75V350L1000 350V250H250C222.4 250 200 272.4 200 300V879.3499999999999L37.8 1041.4L108.55 1112.15zM800 1050C827.6 1050 850 1027.6 850 1000V900H999.65C1027.5 900 1050 877.2 1050 850.25V449.75C1050 422.25 1027.5 400.0000000000001 999.65 400.0000000000001H400.35C372.5 400 350 422.8 350 449.75V850.25C350 877.75 372.5 900 400.35 900H549.9499999999999L550 1000C550 1027.6 572.4 1050 600 1050H800zM500 800H450V500H500V800zM800 800H600V500H800V800zM950 800H900V500H950V800zM750 950H650V900H750V950z","horizAdvX":"1200"},"luggage-deposit-fill":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h4c.552 0 1 .448 1 1v12h2v2H1v-2h2V7c0-.552.448-1 1-1h4V4c0-.552.448-1 1-1h6zm-5 5H8v11h2V8zm6 0h-2v11h2V8zm-2-3h-4v1h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1000C1027.6 900 1050 877.5999999999999 1050 850V250H1150V150H50V250H150V850C150 877.5999999999999 172.4 900 200 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM500 800H400V250H500V800zM800 800H700V250H800V800zM700 950H500V900H700V950z","horizAdvX":"1200"},"luggage-deposit-line":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h4c.552 0 1 .448 1 1v12h2v2H1v-2h2V7c0-.552.448-1 1-1h4V4c0-.552.448-1 1-1h6zM8 8H5v11h3V8zm6 0h-4v11h4V8zm5 0h-3v11h3V8zm-5-3h-4v1h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1000C1027.6 900 1050 877.5999999999999 1050 850V250H1150V150H50V250H150V850C150 877.5999999999999 172.4 900 200 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM400 800H250V250H400V800zM700 800H500V250H700V800zM950 800H800V250H950V800zM700 950H500V900H700V950z","horizAdvX":"1200"},"lungs-fill":{"path":["M0 0H24V24H0z","M8.5 5.5c1.412.47 2.048 2.159 2.327 4.023l-4.523 2.611 1 1.732 3.71-2.141C11.06 13.079 11 14.308 11 15c0 3-1 6-5 6s-4 0-4-4C2 9.5 5.5 4.5 8.5 5.5zM22.001 17v.436c-.005 3.564-.15 3.564-4 3.564-4 0-5-3-5-6 0-.691-.06-1.92-.014-3.274l3.71 2.14 1-1.732-4.523-2.61c.279-1.865.915-3.553 2.327-4.024 3-1 6.5 4 6.5 11.5zM13 2v9h-2V2h2z"],"unicode":"","glyph":"M425 925C495.6 901.5 527.4 817.05 541.35 723.85L315.2 593.3L365.2 506.7L550.6999999999999 613.75C553 546.05 550 484.6 550 450C550 300 500 150 300 150S100 150 100 350C100 725 275 975 425 925zM1100.05 350V328.2000000000001C1099.8000000000002 150 1092.5500000000002 150 900.0500000000001 150C700.0500000000001 150 650.0500000000001 300 650.0500000000001 450C650.0500000000001 484.5500000000001 647.0500000000001 546 649.3500000000001 613.7L834.8500000000001 506.7L884.8500000000001 593.3L658.7000000000002 723.8C672.6500000000001 817.05 704.4500000000002 901.45 775.0500000000002 925C925.0500000000002 975 1100.0500000000002 725 1100.0500000000002 350zM650 1100V650H550V1100H650z","horizAdvX":"1200"},"lungs-line":{"path":["M0 0H24V24H0z","M22.001 17c-.001 4-.001 4-4 4-4 0-5-3-5-6 0-.378-.018-.918-.026-1.55l2.023 1.169L15 15c0 2.776.816 4 3 4 1.14 0 1.61-.007 1.963-.038.03-.351.037-.822.037-1.962 0-3.205-.703-6.033-1.835-7.9-.838-1.382-1.613-1.843-2.032-1.703-.293.098-.605.65-.831 1.623l-1.79-1.033c.369-1.197.982-2.151 1.988-2.487 3-1 6.503 4 6.5 11.5zM8.5 5.5c1.007.336 1.62 1.29 1.989 2.487L8.699 9.02c-.226-.973-.539-1.525-.831-1.623-.42-.14-1.195.32-2.032 1.702C4.703 10.967 4 13.795 4 17c0 1.14.007 1.61.038 1.962.351.031.822.038 1.962.038 2.184 0 3-1.224 3-4l.004-.382 2.023-1.168c-.01.633-.027 1.172-.027 1.55 0 3-1 6-5 6s-4 0-4-4C2 9.5 5.5 4.5 8.5 5.5zM13 2v7.422l4.696 2.712-1 1.732L12 11.155l-4.696 2.711-1-1.732L11 9.422V2h2z"],"unicode":"","glyph":"M1100.05 350C1100 150 1100 150 900.0500000000001 150C700.0500000000001 150 650.0500000000001 300 650.0500000000001 450C650.0500000000001 468.9 649.15 495.9 648.7500000000001 527.5L749.9000000000001 469.05L750 450C750 311.2000000000001 790.8000000000001 250 900 250C957 250 980.5 250.35 998.15 251.9C999.65 269.45 1000 293 1000 350C1000 510.25 964.85 651.6500000000001 908.25 745C866.3499999999999 814.1 827.6 837.1500000000001 806.65 830.1500000000001C792 825.25 776.4 797.6500000000001 765.1 749L675.6 800.65C694.05 860.5 724.7 908.2 775 925C925 975 1100.15 725 1100 350zM425 925C475.35 908.2 506.0000000000001 860.5 524.45 800.65L434.95 749C423.65 797.6500000000001 408 825.25 393.4000000000001 830.1500000000001C372.4000000000001 837.1500000000001 333.65 814.1500000000001 291.8 745.05C235.15 651.65 200 510.25 200 350C200 293 200.35 269.5 201.9 251.9C219.45 250.35 243.0000000000001 250 300 250C409.2000000000001 250 450 311.2000000000001 450 450L450.2 469.1L551.3499999999999 527.5C550.85 495.8499999999999 550 468.8999999999999 550 449.9999999999999C550 300 500 150 300 150S100 150 100 350C100 725 275 975 425 925zM650 1100V728.9L884.8 593.3L834.8 506.7L600 642.25L365.2 506.7L315.2 593.3L550 728.9V1100H650z","horizAdvX":"1200"},"mac-fill":{"path":["M0 0h24v24H0z","M14 18v2l2 1v1H8l-.004-.996L10 20v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H14zM4 14v2h16v-2H4z"],"unicode":"","glyph":"M700 300V200L800 150V100H400L399.8 149.8L500 200V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H700zM200 500V400H1000V500H200z","horizAdvX":"1200"},"mac-line":{"path":["M0 0h24v24H0z","M14 18v2l2 1v1H8l-.004-.996L10 20v-2H2.992A.998.998 0 0 1 2 16.993V4.007C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007v12.986c0 .556-.455 1.007-.992 1.007H14zM4 5v9h16V5H4z"],"unicode":"","glyph":"M700 300V200L800 150V100H400L399.8 149.8L500 200V300H149.6A49.900000000000006 49.900000000000006 0 0 0 100 350.35V999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V350.3499999999999C1100 322.5499999999999 1077.25 299.9999999999998 1050.3999999999999 299.9999999999998H700zM200 950V500H1000V950H200z","horizAdvX":"1200"},"macbook-fill":{"path":["M0 0h24v24H0z","M2 4.007C2 3.45 2.455 3 2.992 3h18.016c.548 0 .992.45.992 1.007V17H2V4.007zM1 19h22v2H1v-2z"],"unicode":"","glyph":"M100 999.65C100 1027.5 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.5 1100 999.65V350H100V999.65zM50 250H1150V150H50V250z","horizAdvX":"1200"},"macbook-line":{"path":["M0 0h24v24H0z","M4 5v11h16V5H4zm-2-.993C2 3.451 2.455 3 2.992 3h18.016c.548 0 .992.449.992 1.007V18H2V4.007zM1 19h22v2H1v-2z"],"unicode":"","glyph":"M200 950V400H1000V950H200zM100 999.65C100 1027.45 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.55 1100 999.65V300H100V999.65zM50 250H1150V150H50V250z","horizAdvX":"1200"},"magic-fill":{"path":["M0 0h24v24H0z","M15.224 15.508l-2.213 4.65a.6.6 0 0 1-.977.155l-3.542-3.739a.6.6 0 0 0-.357-.182l-5.107-.668a.6.6 0 0 1-.449-.881l2.462-4.524a.6.6 0 0 0 .062-.396L4.16 4.86a.6.6 0 0 1 .7-.7l5.063.943a.6.6 0 0 0 .396-.062l4.524-2.462a.6.6 0 0 1 .881.45l.668 5.106a.6.6 0 0 0 .182.357l3.739 3.542a.6.6 0 0 1-.155.977l-4.65 2.213a.6.6 0 0 0-.284.284zm.797 1.927l1.414-1.414 4.243 4.242-1.415 1.415-4.242-4.243z"],"unicode":"","glyph":"M761.2 424.6L650.55 192.0999999999999A30 30 0 0 0 601.6999999999999 184.3499999999999L424.6 371.3A30 30 0 0 1 406.75 380.3999999999999L151.4 413.7999999999999A30 30 0 0 0 128.95 457.8499999999998L252.05 684.0499999999998A30 30 0 0 1 255.1500000000001 703.8499999999999L208 957A30 30 0 0 0 243.0000000000001 992L496.15 944.85A30 30 0 0 1 515.95 947.95L742.15 1071.05A30 30 0 0 0 786.2 1048.55L819.6 793.25A30 30 0 0 1 828.6999999999999 775.4000000000001L1015.65 598.3000000000001A30 30 0 0 0 1007.8999999999997 549.45L775.3999999999999 438.8A30 30 0 0 1 761.1999999999998 424.5999999999999zM801.0500000000001 328.2500000000001L871.7500000000001 398.9500000000002L1083.9000000000003 186.8500000000001L1013.1500000000004 116.1000000000001L801.0500000000002 328.2500000000003z","horizAdvX":"1200"},"magic-line":{"path":["M0 0h24v24H0z","M15.199 9.945a2.6 2.6 0 0 1-.79-1.551l-.403-3.083-2.73 1.486a2.6 2.6 0 0 1-1.72.273L6.5 6.5l.57 3.056a2.6 2.6 0 0 1-.273 1.72l-1.486 2.73 3.083.403a2.6 2.6 0 0 1 1.55.79l2.138 2.257 1.336-2.807a2.6 2.6 0 0 1 1.23-1.231l2.808-1.336-2.257-2.137zm.025 5.563l-2.213 4.65a.6.6 0 0 1-.977.155l-3.542-3.739a.6.6 0 0 0-.357-.182l-5.107-.668a.6.6 0 0 1-.449-.881l2.462-4.524a.6.6 0 0 0 .062-.396L4.16 4.86a.6.6 0 0 1 .7-.7l5.063.943a.6.6 0 0 0 .396-.062l4.524-2.462a.6.6 0 0 1 .881.45l.668 5.106a.6.6 0 0 0 .182.357l3.739 3.542a.6.6 0 0 1-.155.977l-4.65 2.213a.6.6 0 0 0-.284.284zm.797 1.927l1.414-1.414 4.243 4.242-1.415 1.415-4.242-4.243z"],"unicode":"","glyph":"M759.95 702.75A130 130 0 0 0 720.4499999999999 780.3L700.3 934.45L563.8 860.1500000000001A130 130 0 0 0 477.7999999999998 846.5L325 875L353.5 722.1999999999999A130 130 0 0 0 339.85 636.1999999999999L265.5500000000001 499.6999999999999L419.7000000000001 479.5499999999998A130 130 0 0 0 497.2000000000002 440.05L604.1000000000001 327.1999999999998L670.9000000000001 467.5499999999998A130 130 0 0 0 732.4000000000002 529.0999999999999L872.8000000000002 595.8999999999999L759.9500000000002 702.7499999999999zM761.2 424.6L650.55 192.0999999999999A30 30 0 0 0 601.6999999999999 184.3499999999999L424.6 371.3A30 30 0 0 1 406.75 380.3999999999999L151.4 413.7999999999999A30 30 0 0 0 128.95 457.8499999999998L252.05 684.0499999999998A30 30 0 0 1 255.1500000000001 703.8499999999999L208 957A30 30 0 0 0 243.0000000000001 992L496.15 944.85A30 30 0 0 1 515.95 947.95L742.15 1071.05A30 30 0 0 0 786.2 1048.55L819.6 793.25A30 30 0 0 1 828.6999999999999 775.4000000000001L1015.65 598.3000000000001A30 30 0 0 0 1007.8999999999997 549.45L775.3999999999999 438.8A30 30 0 0 1 761.1999999999998 424.5999999999999zM801.0500000000001 328.2500000000001L871.7500000000001 398.9500000000002L1083.9000000000003 186.8500000000001L1013.1500000000004 116.1000000000001L801.0500000000002 328.2500000000003z","horizAdvX":"1200"},"mail-add-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM21 18h3v2h-3v3h-2v-3h-3v-2h3v-3h2v3z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1050 300H1200V200H1050V50H950V200H800V300H950V450H1050V300z","horizAdvX":"1200"},"mail-add-line":{"path":["M0 0h24v24H0z","M22 13h-2V7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9zM4.511 5l7.55 6.662L19.502 5H4.511zM21 18h3v2h-3v3h-2v-3h-3v-2h3v-3h2v3z"],"unicode":"","glyph":"M1100 550H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V550zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM1050 300H1200V200H1050V50H950V200H800V300H950V450H1050V300z","horizAdvX":"1200"},"mail-check-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM19 22l-3.536-3.536 1.415-1.414L19 19.172l3.536-3.536 1.414 1.414L19 22z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM950 100L773.2 276.8000000000001L843.95 347.5000000000001L950 241.4L1126.8000000000002 418.2L1197.5000000000002 347.5L950 100z","horizAdvX":"1200"},"mail-check-line":{"path":["M0 0h24v24H0z","M22 14h-2V7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10zM4.511 5l7.55 6.662L19.502 5H4.511zM19 22l-3.536-3.536 1.415-1.414L19 19.172l3.536-3.536 1.414 1.414L19 22z"],"unicode":"","glyph":"M1100 500H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V500zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM950 100L773.2 276.8000000000001L843.95 347.5000000000001L950 241.4L1126.8000000000002 418.2L1197.5000000000002 347.5L950 100z","horizAdvX":"1200"},"mail-close-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM21.415 19l2.122 2.121-1.415 1.415L20 20.414l-2.121 2.122-1.415-1.415L18.586 19l-2.122-2.121 1.415-1.415L20 17.586l2.121-2.122 1.415 1.415L21.414 19z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1070.75 250L1176.85 143.9500000000001L1106.1 73.2000000000001L1000 179.3L893.95 73.1999999999998L823.2000000000002 143.9499999999998L929.3 250L823.1999999999999 356.05L893.9499999999999 426.7999999999999L1000 320.7000000000001L1106.05 426.8000000000001L1176.8 356.0500000000001L1070.7 250z","horizAdvX":"1200"},"mail-close-line":{"path":["M0 0h24v24H0z","M22 14h-2V7.238l-7.928 7.1L4 7.216V19h11v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10zM4.511 5l7.55 6.662L19.502 5H4.511zm16.903 14l2.122 2.121-1.415 1.415L20 20.414l-2.121 2.122-1.415-1.415L18.586 19l-2.122-2.121 1.415-1.415L20 17.586l2.121-2.122 1.415 1.415L21.414 19z"],"unicode":"","glyph":"M1100 500H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H750V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V500zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM1070.6999999999998 250L1176.8 143.9500000000001L1106.05 73.2000000000001L1000 179.3L893.95 73.1999999999998L823.2000000000002 143.9499999999998L929.3 250L823.1999999999999 356.05L893.9499999999999 426.7999999999999L1000 320.7000000000001L1106.05 426.8000000000001L1176.8 356.0500000000001L1070.7 250z","horizAdvX":"1200"},"mail-download-fill":{"path":["M0 0h24v24H0z","M22 12.803A6 6 0 0 0 13.803 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8.803zm-9.94-1.12L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM20 18h3l-4 4-4-4h3v-4h2v4z"],"unicode":"","glyph":"M1100 559.8499999999999A300 300 0 0 1 690.1500000000001 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V559.8499999999999zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1000 300H1150L950 100L750 300H900V500H1000V300z","horizAdvX":"1200"},"mail-download-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8h-2V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zM20 18h3l-4 4-4-4h3v-4h2v4z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V600H1000V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM1000 300H1150L950 100L750 300H900V500H1000V300z","horizAdvX":"1200"},"mail-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9.06 8.683L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85z","horizAdvX":"1200"},"mail-forbid-fill":{"path":["M0 0h24v24H0z","M15.266 11.554l4.388-3.798-1.308-1.512-6.285 5.439-6.414-5.445-1.294 1.524 7.702 6.54A6.967 6.967 0 0 0 11 18c0 1.074.242 2.09.674 3H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8.255A6.968 6.968 0 0 0 18 11c-.97 0-1.894.197-2.734.554zm1.44 9.154a3 3 0 0 0 4.001-4.001l-4 4zm-1.414-1.415l4.001-4a3 3 0 0 0-4.001 4.001zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M763.3 622.3L982.7 812.2L917.3 887.8L603.05 615.85L282.35 888.1L217.65 811.9000000000001L602.75 484.9A348.34999999999997 348.34999999999997 0 0 1 550 300C550 246.3 562.1 195.5 583.6999999999999 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V587.25A348.4 348.4 0 0 1 900 650C851.5 650 805.3000000000001 640.1500000000001 763.3 622.3zM835.3 164.6000000000001A150 150 0 0 1 1035.3500000000001 364.6500000000001L835.35 164.6500000000001zM764.6 235.35L964.65 435.35A150 150 0 0 1 764.5999999999999 235.3zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50z","horizAdvX":"1200"},"mail-forbid-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h7.07a6.95 6.95 0 0 0 .604 2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8.255a6.972 6.972 0 0 0-2-.965V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zm-2.794 15.708a3 3 0 0 0 4.001-4.001l-4.001 4zm-1.415-1.415l4.001-4a3 3 0 0 0-4.001 4.001zM18 23a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H553.5A347.5 347.5 0 0 1 583.6999999999999 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V587.25A348.6 348.6 0 0 1 1000 635.5V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM835.35 164.6000000000001A150 150 0 0 1 1035.4 364.6500000000001L835.35 164.6500000000001zM764.6000000000001 235.35L964.65 435.35A150 150 0 0 1 764.6000000000001 235.3zM900 50A250 250 0 1 0 900 550A250 250 0 0 0 900 50z","horizAdvX":"1200"},"mail-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 4.238l-7.928 7.1L4 7.216V19h16V7.238zM4.511 5l7.55 6.662L19.502 5H4.511z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H1000V838.0999999999999zM225.55 950L603.05 616.9000000000001L975.1 950H225.55z","horizAdvX":"1200"},"mail-lock-fill":{"path":["M0 0h24v24H0z","M22 12a5.002 5.002 0 0 0-7.9 3H13v6H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v8zm-9.94-.317L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM22 17h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M1100 600A250.09999999999997 250.09999999999997 0 0 1 705 450H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V600zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM1100 350H1150V100H750V350H800V400A150 150 0 0 0 1100 400V350zM1000 350V400A50 50 0 0 1 900 400V350H1000z","horizAdvX":"1200"},"mail-lock-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h9v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v7h-2V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zM22 17h1v5h-8v-5h1v-1a3 3 0 0 1 6 0v1zm-2 0v-1a1 1 0 0 0-2 0v1h2z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H650V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V650H1000V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM1100 350H1150V100H750V350H800V400A150 150 0 0 0 1100 400V350zM1000 350V400A50 50 0 0 1 900 400V350H1000z","horizAdvX":"1200"},"mail-open-fill":{"path":["M0 0h24v24H0z","M2.243 6.854L11.49 1.31a1 1 0 0 1 1.029 0l9.238 5.545a.5.5 0 0 1 .243.429V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.283a.5.5 0 0 1 .243-.429zm16.103 1.39l-6.285 5.439-6.414-5.445-1.294 1.524 7.72 6.555 7.581-6.56-1.308-1.513z"],"unicode":"","glyph":"M112.15 857.3L574.5 1134.5A50 50 0 0 0 625.95 1134.5L1087.85 857.25A25 25 0 0 0 1099.9999999999998 835.8V200A50 50 0 0 0 1049.9999999999998 150H150A50 50 0 0 0 100 200V835.8499999999999A25 25 0 0 0 112.15 857.3zM917.3 787.8L603.05 515.85L282.35 788.1L217.65 711.9L603.65 384.15L982.7 712.1499999999999L917.3 787.8z","horizAdvX":"1200"},"mail-open-line":{"path":["M0 0h24v24H0z","M2.243 6.854L11.49 1.31a1 1 0 0 1 1.029 0l9.238 5.545a.5.5 0 0 1 .243.429V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.283a.5.5 0 0 1 .243-.429zM4 8.133V19h16V8.132l-7.996-4.8L4 8.132zm8.06 5.565l5.296-4.463 1.288 1.53-6.57 5.537-6.71-5.53 1.272-1.544 5.424 4.47z"],"unicode":"","glyph":"M112.15 857.3L574.5 1134.5A50 50 0 0 0 625.95 1134.5L1087.85 857.25A25 25 0 0 0 1099.9999999999998 835.8V200A50 50 0 0 0 1049.9999999999998 150H150A50 50 0 0 0 100 200V835.8499999999999A25 25 0 0 0 112.15 857.3zM200 793.35V250H1000V793.4000000000001L600.1999999999999 1033.4L200 793.4000000000001zM603 515.1L867.8000000000001 738.25L932.2 661.7500000000001L603.7 384.9L268.2000000000001 661.4000000000001L331.8000000000001 738.6000000000001L603.0000000000001 515.1000000000001z","horizAdvX":"1200"},"mail-send-fill":{"path":["M0 0h24v24H0z","M2 5.5V3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V19h18V7.3l-8 7.2-10-9zM0 10h5v2H0v-2zm0 5h8v2H0v-2z"],"unicode":"","glyph":"M100 925V1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V250H1000V835L600 475L100 925zM0 700H250V600H0V700zM0 450H400V350H0V450z","horizAdvX":"1200"},"mail-send-line":{"path":["M0 0h24v24H0z","M22 20.007a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V19h18V7.3l-8 7.2-10-9V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v16.007zM4.434 5L12 11.81 19.566 5H4.434zM0 15h8v2H0v-2zm0-5h5v2H0v-2z"],"unicode":"","glyph":"M1100 199.65A50 50 0 0 0 1050.3999999999999 150H149.6A49.65 49.65 0 0 0 100 199.65V250H1000V835L600 475L100 925V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V199.65zM221.7 950L600 609.5L978.3 950H221.7zM0 450H400V350H0V450zM0 700H250V600H0V700z","horizAdvX":"1200"},"mail-settings-fill":{"path":["M0 0h24v24H0z","M22 13.341A6 6 0 0 0 14.341 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9.341zm-9.94-1.658L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zm4.99 7.865a3.017 3.017 0 0 1 0-1.096l-1.014-.586 1-1.732 1.014.586c.278-.238.599-.425.95-.55V15h2v1.17c.351.125.672.312.95.55l1.014-.586 1 1.732-1.014.586a3.017 3.017 0 0 1 0 1.096l1.014.586-1 1.732-1.014-.586a2.997 2.997 0 0 1-.95.55V23h-2v-1.17a2.997 2.997 0 0 1-.95-.55l-1.014.586-1-1.732 1.014-.586zM20 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M1100 532.95A300 300 0 0 1 717.05 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V532.95zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM852.5 222.5999999999999A150.85 150.85 0 0 0 852.5 277.3999999999999L801.8000000000001 306.6999999999998L851.8000000000001 393.2999999999999L902.5 363.9999999999999C916.4 375.8999999999999 932.45 385.2499999999999 950 391.4999999999999V450H1050V391.4999999999999C1067.55 385.2499999999999 1083.6000000000001 375.8999999999999 1097.5 363.9999999999999L1148.1999999999998 393.2999999999999L1198.1999999999998 306.6999999999998L1147.5 277.3999999999999A150.85 150.85 0 0 0 1147.5 222.5999999999999L1198.1999999999998 193.3L1148.1999999999998 106.7000000000001L1097.5 136A149.85000000000002 149.85000000000002 0 0 0 1050 108.5V50H950V108.5A149.85000000000002 149.85000000000002 0 0 0 902.5 136.0000000000002L851.8000000000001 106.7000000000003L801.8000000000001 193.3000000000002L852.5 222.6000000000001zM1000 200A50 50 0 1 1 1000 300A50 50 0 0 1 1000 200z","horizAdvX":"1200"},"mail-settings-line":{"path":["M0 0h24v24H0z","M20 7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9h-2V7.238zM19.501 5H4.511l7.55 6.662L19.502 5zM17.05 19.548a3.017 3.017 0 0 1 0-1.096l-1.014-.586 1-1.732 1.014.586c.278-.238.599-.425.95-.55V15h2v1.17c.351.125.672.312.95.55l1.014-.586 1 1.732-1.014.586a3.017 3.017 0 0 1 0 1.096l1.014.586-1 1.732-1.014-.586a2.997 2.997 0 0 1-.95.55V23h-2v-1.17a2.997 2.997 0 0 1-.95-.55l-1.014.586-1-1.732 1.014-.586zM20 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M1000 838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V550H1000V838.0999999999999zM975.05 950H225.55L603.05 616.9000000000001L975.1 950zM852.5 222.6000000000001A150.85 150.85 0 0 0 852.5 277.4000000000001L801.8000000000001 306.7000000000001L851.8000000000001 393.3L902.5 364C916.4 375.9000000000001 932.45 385.2500000000001 950 391.5000000000001V450H1050V391.4999999999999C1067.55 385.2499999999999 1083.6000000000001 375.8999999999999 1097.5 363.9999999999999L1148.1999999999998 393.2999999999999L1198.1999999999998 306.6999999999998L1147.5 277.3999999999999A150.85 150.85 0 0 0 1147.5 222.5999999999999L1198.1999999999998 193.3L1148.1999999999998 106.7000000000001L1097.5 136A149.85000000000002 149.85000000000002 0 0 0 1050 108.5V50H950V108.5A149.85000000000002 149.85000000000002 0 0 0 902.5 136.0000000000002L851.8000000000001 106.7000000000003L801.8000000000001 193.3000000000002L852.5 222.6000000000001zM1000 200A50 50 0 1 1 1000 300A50 50 0 0 1 1000 200z","horizAdvX":"1200"},"mail-star-fill":{"path":["M0 0h24v24H0z","M22 14.044A6 6 0 0 0 13.689 21H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10.044zm-9.94-2.361L5.648 6.238 4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.285 5.439zM19.5 21.75l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43L19.5 15l1.323 2.68 2.957.43-2.14 2.085.505 2.946L19.5 21.75z"],"unicode":"","glyph":"M1100 497.8A300 300 0 0 1 684.45 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V497.8zM603 615.85L282.4 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603.05 615.85zM975 112.5L842.75 43L868 190.25L761 294.55L908.85 316.05L975 450L1041.15 316L1189 294.5L1082 190.25L1107.25 42.9499999999998L975 112.5z","horizAdvX":"1200"},"mail-star-line":{"path":["M0 0h24v24H0z","M22 13h-2V7.238l-7.928 7.1L4 7.216V19h10v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v9zM4.511 5l7.55 6.662L19.502 5H4.511zM19.5 21.75l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43L19.5 15l1.323 2.68 2.957.43-2.14 2.085.505 2.946L19.5 21.75z"],"unicode":"","glyph":"M1100 550H1000V838.0999999999999L603.5999999999999 483.0999999999999L200 839.2V250H700V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V550zM225.55 950L603.05 616.9000000000001L975.1 950H225.55zM975 112.5L842.75 43L868 190.25L761 294.55L908.85 316.05L975 450L1041.15 316L1189 294.5L1082 190.25L1107.25 42.9499999999998L975 112.5z","horizAdvX":"1200"},"mail-unread-fill":{"path":["M0 0h24v24H0z","M18.803 8.493A5.023 5.023 0 0 0 22 8.9V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h13.1c-.066.323-.1.658-.1 1a4.98 4.98 0 0 0 1.193 3.241l-5.132 4.442-6.414-5.445-1.294 1.524 7.72 6.555 6.73-5.824zM21 7a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M940.15 775.3499999999999A251.15 251.15 0 0 1 1100 755V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H805.0000000000001C801.7000000000002 1033.85 800 1017.1 800 1000A249.00000000000003 249.00000000000003 0 0 1 859.6500000000001 837.95L603.0500000000001 615.85L282.3500000000001 888.1L217.6500000000001 811.9000000000001L603.65 484.15L940.15 775.3499999999999zM1050 850A150 150 0 1 0 1050 1150A150 150 0 0 0 1050 850z","horizAdvX":"1200"},"mail-unread-line":{"path":["M0 0h24v24H0z","M16.1 3a5.023 5.023 0 0 0 0 2H4.511l7.55 6.662 5.049-4.52c.426.527.958.966 1.563 1.285l-6.601 5.911L4 7.216V19h16V8.9a5.023 5.023 0 0 0 2 0V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h13.1zM21 7a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M805.0000000000001 1050A251.15 251.15 0 0 1 805.0000000000001 950H225.55L603.05 616.9000000000001L855.5 842.9000000000001C876.7999999999998 816.55 903.3999999999997 794.6000000000001 933.6499999999997 778.6500000000001L603.5999999999999 483.1L200 839.2V250H1000V755A251.15 251.15 0 0 1 1100 755V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H805.0000000000001zM1050 850A150 150 0 1 0 1050 1150A150 150 0 0 0 1050 850z","horizAdvX":"1200"},"mail-volume-fill":{"path":["M0 0h24v24H0z","M20 14.5v9L16.667 21H14v-4h2.667L20 14.5zM21 3a1 1 0 0 1 1 1v10.529A6 6 0 0 0 12.34 21L3.002 21a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 14a2 2 0 0 1 .15 3.995L21 21v-4zM5.647 6.238L4.353 7.762l7.72 6.555 7.581-6.56-1.308-1.513-6.286 5.438-6.413-5.444z"],"unicode":"","glyph":"M1000 475V25L833.3500000000001 150H700V350H833.3500000000001L1000 475zM1050 1050A50 50 0 0 0 1100 1000V473.55A300 300 0 0 1 617 150L150.1 150A50 50 0 0 0 100.1 200V1000A50 50 0 0 0 150.1 1050H1050.1zM1050 350A100 100 0 0 0 1057.5 150.25L1050 150V350zM282.35 888.0999999999999L217.65 811.9000000000001L603.65 484.15L982.7 812.15L917.3 887.8L603 615.9L282.35 888.0999999999999z","horizAdvX":"1200"},"mail-volume-line":{"path":["M0 0h24v24H0z","M20 14.5v9L16.667 21H14v-4h2.667L20 14.5zM21 3a1 1 0 0 1 1 1v9h-2V7.237l-7.928 7.101L4 7.215V19h8v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 14a2 2 0 0 1 .15 3.995L21 21v-4zM19.5 5H4.511l7.55 6.662L19.5 5z"],"unicode":"","glyph":"M1000 475V25L833.3500000000001 150H700V350H833.3500000000001L1000 475zM1050 1050A50 50 0 0 0 1100 1000V550H1000V838.15L603.5999999999999 483.0999999999999L200 839.25V250H600V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 350A100 100 0 0 0 1057.5 150.25L1050 150V350zM975 950H225.55L603.05 616.9000000000001L975 950z","horizAdvX":"1200"},"map-2-fill":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm13 14.764V7.176l-.065.028L9 4.236v12.588l.065-.028L15 19.764z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM750 211.8000000000001V841.2L746.75 839.8L450 988.2V358.8000000000001L453.25 360.2000000000001L750 211.8000000000001z","horizAdvX":"1200"},"map-2-line":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm14 14.395l4-1.714V5.033l-4 1.714v12.648zm-2-.131V6.736l-4-2v12.528l4 2zm-6-2.011V4.605L4 6.319v12.648l4-1.714z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM800 230.25L1000 315.95V948.35L800 862.65V230.25zM700 236.8000000000001V863.2L500 963.2V336.8000000000001L700 236.8000000000001zM400 337.35V969.75L200 884.05V251.6500000000001L400 337.35z","horizAdvX":"1200"},"map-fill":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950z","horizAdvX":"1200"},"map-line":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm12.935 2.204l-6-3L4 6.319v12.648l5.065-2.17 6 3L20 17.68V5.033l-5.065 2.17z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM746.75 839.8L446.75 989.8L200 884.05V251.6500000000001L453.2500000000001 360.1500000000001L753.2500000000001 210.1500000000001L1000 316V948.35L746.7499999999999 839.8499999999999z","horizAdvX":"1200"},"map-pin-2-fill":{"path":["M0 0h24v24H0z","M18.364 17.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8zM600 550A100 100 0 1 1 600 750A100 100 0 0 1 600 550z","horizAdvX":"1200"},"map-pin-2-line":{"path":["M0 0h24v24H0z","M12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zm4.95-7.778a7 7 0 1 0-9.9 0L12 20.9l4.95-4.95zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM847.5 402.4999999999999A350 350 0 1 1 352.5 402.4999999999999L600 155L847.5 402.5zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"map-pin-3-fill":{"path":["M0 0h24v24H0z","M11 19.945A9.001 9.001 0 0 1 12 2a9 9 0 0 1 1 17.945V24h-2v-4.055z"],"unicode":"","glyph":"M550 202.75A450.04999999999995 450.04999999999995 0 0 0 600 1100A450 450 0 0 0 650 202.75V0H550V202.75z","horizAdvX":"1200"},"map-pin-3-line":{"path":["M0 0h24v24H0z","M11 19.945A9.001 9.001 0 0 1 12 2a9 9 0 0 1 1 17.945V24h-2v-4.055zM12 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14z"],"unicode":"","glyph":"M550 202.75A450.04999999999995 450.04999999999995 0 0 0 600 1100A450 450 0 0 0 650 202.75V0H550V202.75zM600 300A350 350 0 1 1 600 1000A350 350 0 0 1 600 300z","horizAdvX":"1200"},"map-pin-4-fill":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938V21h-2v-3.062zM5 22h14v2H5v-2z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V150H550V303.1zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-4-line":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938V21h-2v-3.062zM12 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm-7 6h14v2H5v-2z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V150H550V303.1zM600 400A300 300 0 1 1 600 1000A300 300 0 0 1 600 400zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-5-fill":{"path":["M0 0h24v24H0z","M17.657 15.657L12 21.314l-5.657-5.657a8 8 0 1 1 11.314 0zM5 22h14v2H5v-2z"],"unicode":"","glyph":"M882.85 417.15L600 134.3L317.15 417.15A400 400 0 1 0 882.85 417.15zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-5-line":{"path":["M0 0h24v24H0z","M12 18.485l4.243-4.242a6 6 0 1 0-8.486 0L12 18.485zm5.657-2.828L12 21.314l-5.657-5.657a8 8 0 1 1 11.314 0zM5 22h14v2H5v-2z"],"unicode":"","glyph":"M600 275.75L812.1500000000001 487.85A300 300 0 1 1 387.8500000000001 487.85L600 275.75zM882.85 417.15L600 134.3L317.15 417.15A400 400 0 1 0 882.85 417.15zM250 100H950V0H250V100z","horizAdvX":"1200"},"map-pin-add-fill":{"path":["M0 0h24v24H0z","M18.364 17.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0zM11 10H8v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8zM550 700H400V600H550V450H650V600H800V700H650V850H550V700z","horizAdvX":"1200"},"map-pin-add-line":{"path":["M0 0h24v24H0z","M12 20.9l4.95-4.95a7 7 0 1 0-9.9 0L12 20.9zm0 2.828l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM11 10V7h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M600 155L847.5 402.5A350 350 0 1 1 352.5 402.5L600 155zM600 13.6000000000001L281.8 331.8000000000002A450 450 0 1 0 918.2 331.8000000000002L600 13.5999999999999zM550 700V850H650V700H800V600H650V450H550V600H400V700H550z","horizAdvX":"1200"},"map-pin-fill":{"path":["M0 0h24v24H0z","M18.364 17.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0zM12 15a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8zM600 450A200 200 0 1 1 600 850A200 200 0 0 1 600 450zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"map-pin-line":{"path":["M0 0h24v24H0z","M12 20.9l4.95-4.95a7 7 0 1 0-9.9 0L12 20.9zm0 2.828l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M600 155L847.5 402.5A350 350 0 1 1 352.5 402.5L600 155zM600 13.6000000000001L281.8 331.8000000000002A450 450 0 1 0 918.2 331.8000000000002L600 13.5999999999999zM600 550A100 100 0 1 1 600 750A100 100 0 0 1 600 550zM600 450A200 200 0 1 0 600 850A200 200 0 0 0 600 450z","horizAdvX":"1200"},"map-pin-range-fill":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938v2.074c3.946.092 7 .723 7 1.488 0 .828-3.582 1.5-8 1.5s-8-.672-8-1.5c0-.765 3.054-1.396 7-1.488v-2.074zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V199.4C847.3000000000001 194.8000000000001 1000 163.25 1000 125C1000 83.6000000000001 820.9 50 600 50S200 83.6000000000001 200 125C200 163.25 352.7 194.8000000000001 550 199.4V303.0999999999999zM600 600A100 100 0 1 1 600 800A100 100 0 0 1 600 600z","horizAdvX":"1200"},"map-pin-range-line":{"path":["M0 0h24v24H0z","M11 17.938A8.001 8.001 0 0 1 12 2a8 8 0 0 1 1 15.938v2.074c3.946.092 7 .723 7 1.488 0 .828-3.582 1.5-8 1.5s-8-.672-8-1.5c0-.765 3.054-1.396 7-1.488v-2.074zM12 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M550 303.1A400.04999999999995 400.04999999999995 0 0 0 600 1100A400 400 0 0 0 650 303.0999999999999V199.4C847.3000000000001 194.8000000000001 1000 163.25 1000 125C1000 83.6000000000001 820.9 50 600 50S200 83.6000000000001 200 125C200 163.25 352.7 194.8000000000001 550 199.4V303.0999999999999zM600 400A300 300 0 1 1 600 1000A300 300 0 0 1 600 400zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600z","horizAdvX":"1200"},"map-pin-time-fill":{"path":["M0 0h24v24H0z","M13 11V6h-2v7h6v-2h-4zm5.364 6.364L12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0z"],"unicode":"","glyph":"M650 650V900H550V550H850V650H650zM918.2 331.8L600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8z","horizAdvX":"1200"},"map-pin-time-line":{"path":["M0 0h24v24H0z","M16.95 15.95a7 7 0 1 0-9.9 0L12 20.9l4.95-4.95zM12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM13 11h4v2h-6V6h2v5z"],"unicode":"","glyph":"M847.5 402.5A350 350 0 1 1 352.5 402.5L600 155L847.5 402.5zM600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM650 650H850V550H550V900H650V650z","horizAdvX":"1200"},"map-pin-user-fill":{"path":["M0 0h24v24H0z","M17.084 15.812a7 7 0 1 0-10.168 0A5.996 5.996 0 0 1 12 13a5.996 5.996 0 0 1 5.084 2.812zM12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M854.1999999999999 409.4A350 350 0 1 1 345.8 409.4A299.80000000000007 299.80000000000007 0 0 0 600 550A299.80000000000007 299.80000000000007 0 0 0 854.1999999999999 409.4zM600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM600 600A150 150 0 1 0 600 900A150 150 0 0 0 600 600z","horizAdvX":"1200"},"map-pin-user-line":{"path":["M0 0h24v24H0z","M17.084 15.812a7 7 0 1 0-10.168 0A5.996 5.996 0 0 1 12 13a5.996 5.996 0 0 1 5.084 2.812zm-8.699 1.473L12 20.899l3.615-3.614a4 4 0 0 0-7.23 0zM12 23.728l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M854.1999999999999 409.4A350 350 0 1 1 345.8 409.4A299.80000000000007 299.80000000000007 0 0 0 600 550A299.80000000000007 299.80000000000007 0 0 0 854.1999999999999 409.4zM419.25 335.75L600 155.05L780.75 335.75A200 200 0 0 1 419.25 335.75zM600 13.5999999999999L281.8 331.8A450 450 0 1 0 918.2 331.8L600 13.5999999999999zM600 700A50 50 0 1 1 600 800A50 50 0 0 1 600 700zM600 600A150 150 0 1 0 600 900A150 150 0 0 0 600 600z","horizAdvX":"1200"},"mark-pen-fill":{"path":["M0 0h24v24H0z","M15.95 2.393l5.657 5.657a1 1 0 0 1 0 1.414l-7.779 7.779-2.12.707-1.415 1.414a1 1 0 0 1-1.414 0l-4.243-4.243a1 1 0 0 1 0-1.414l1.414-1.414.707-2.121 7.779-7.779a1 1 0 0 1 1.414 0zm.707 3.536l-6.364 6.364 1.414 1.414 6.364-6.364-1.414-1.414zM4.282 16.889l2.829 2.829-1.414 1.414-4.243-1.414 2.828-2.829z"],"unicode":"","glyph":"M797.5 1080.35L1080.35 797.5A50 50 0 0 0 1080.35 726.8L691.4 337.8499999999999L585.3999999999999 302.4999999999999L514.65 231.7999999999998A50 50 0 0 0 443.95 231.7999999999998L231.8 443.9499999999998A50 50 0 0 0 231.8 514.6499999999997L302.5 585.3499999999998L337.85 691.3999999999999L726.7999999999998 1080.35A50 50 0 0 0 797.4999999999999 1080.35zM832.85 903.55L514.65 585.35L585.3499999999999 514.6500000000001L903.55 832.85L832.8499999999998 903.55zM214.1 355.5500000000001L355.55 214.1L284.85 143.3999999999999L72.7 214.1L214.1 355.5500000000001z","horizAdvX":"1200"},"mark-pen-line":{"path":["M0 0h24v24H0z","M15.243 4.515l-6.738 6.737-.707 2.121-1.04 1.041 2.828 2.829 1.04-1.041 2.122-.707 6.737-6.738-4.242-4.242zm6.364 3.535a1 1 0 0 1 0 1.414l-7.779 7.779-2.12.707-1.415 1.414a1 1 0 0 1-1.414 0l-4.243-4.243a1 1 0 0 1 0-1.414l1.414-1.414.707-2.121 7.779-7.779a1 1 0 0 1 1.414 0l5.657 5.657zm-6.364-.707l1.414 1.414-4.95 4.95-1.414-1.414 4.95-4.95zM4.283 16.89l2.828 2.829-1.414 1.414-4.243-1.414 2.828-2.829z"],"unicode":"","glyph":"M762.15 974.25L425.25 637.4000000000001L389.9 531.35L337.9 479.3000000000001L479.3 337.85L531.2999999999998 389.9000000000001L637.3999999999999 425.2500000000001L974.25 762.1500000000001L762.15 974.2500000000002zM1080.35 797.5A50 50 0 0 0 1080.35 726.8L691.4 337.8499999999999L585.3999999999999 302.4999999999999L514.65 231.7999999999998A50 50 0 0 0 443.95 231.7999999999998L231.8 443.9499999999998A50 50 0 0 0 231.8 514.6499999999997L302.5 585.3499999999998L337.85 691.3999999999999L726.7999999999998 1080.35A50 50 0 0 0 797.4999999999999 1080.35L1080.35 797.4999999999998zM762.15 832.8499999999999L832.85 762.1499999999999L585.35 514.65L514.6500000000001 585.3499999999999L762.1500000000001 832.8499999999999zM214.15 355.5L355.55 214.05L284.85 143.3499999999999L72.7 214.05L214.1 355.5z","horizAdvX":"1200"},"markdown-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 12.5v-4l2 2 2-2v4h2v-7h-2l-2 2-2-2H5v7h2zm11-3v-4h-2v4h-2l3 3 3-3h-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM350 425V625L450 525L550 625V425H650V775H550L450 675L350 775H250V425H350zM900 575V775H800V575H700L850 425L1000 575H900z","horizAdvX":"1200"},"markdown-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm3 10.5H5v-7h2l2 2 2-2h2v7h-2v-4l-2 2-2-2v4zm11-3h2l-3 3-3-3h2v-4h2v4z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM350 425H250V775H350L450 675L550 775H650V425H550V625L450 525L350 625V425zM900 575H1000L850 425L700 575H800V775H900V575z","horizAdvX":"1200"},"markup-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm5.051-3.796l-.862-3.447a1 1 0 0 0-.97-.757H8.781a1 1 0 0 0-.97.757l-.862 3.447A7.967 7.967 0 0 0 12 20a7.967 7.967 0 0 0 5.051-1.796zM10 12h4v-1.5l-1.038-3.635a1 1 0 0 0-1.924 0L10 10.5V12z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM852.5500000000001 289.8L809.4500000000002 462.15A50 50 0 0 1 760.9500000000002 499.9999999999999H439.05A50 50 0 0 1 390.5500000000001 462.15L347.4500000000001 289.8A398.34999999999997 398.34999999999997 0 0 1 600 200A398.34999999999997 398.34999999999997 0 0 1 852.5500000000001 289.8zM500 600H700V675L648.1 856.75A50 50 0 0 1 551.9 856.75L500 675V600z","horizAdvX":"1200"},"markup-line":{"path":["M0 0h24v24H0z","M10 10.5l1.038-3.635a1 1 0 0 1 1.924 0L14 10.5V12h.72a1 1 0 0 1 .97.757l1.361 5.447a8 8 0 1 0-10.102 0l1.362-5.447A1 1 0 0 1 9.28 12H10v-1.5zm2 9.5a7.952 7.952 0 0 0 3.265-.694L13.938 14h-3.876l-1.327 5.306A7.95 7.95 0 0 0 12 20zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M500 675L551.9 856.75A50 50 0 0 0 648.1 856.75L700 675V600H736A50 50 0 0 0 784.5000000000001 562.15L852.5500000000001 289.8A400 400 0 1 1 347.4500000000001 289.8L415.5500000000001 562.15A50 50 0 0 0 463.9999999999999 600H500V675zM600 200A397.6 397.6 0 0 1 763.25 234.7L696.9 500H503.1000000000001L436.7500000000001 234.7A397.5 397.5 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"mastercard-fill":{"path":["M0 0h24v24H0z","M12 6.654a6.786 6.786 0 0 1 2.596 5.344A6.786 6.786 0 0 1 12 17.34a6.786 6.786 0 0 1-2.596-5.343A6.786 6.786 0 0 1 12 6.654zm-.87-.582A7.783 7.783 0 0 0 8.4 12a7.783 7.783 0 0 0 2.728 5.926 6.798 6.798 0 1 1 .003-11.854zm1.742 11.854A7.783 7.783 0 0 0 15.6 12a7.783 7.783 0 0 0-2.73-5.928 6.798 6.798 0 1 1 .003 11.854z"],"unicode":"","glyph":"M600 867.3A339.29999999999995 339.29999999999995 0 0 0 729.8 600.0999999999999A339.29999999999995 339.29999999999995 0 0 0 600 333A339.29999999999995 339.29999999999995 0 0 0 470.2 600.15A339.29999999999995 339.29999999999995 0 0 0 600 867.3zM556.5 896.4A389.15 389.15 0 0 1 420 600A389.15 389.15 0 0 1 556.4 303.7A339.90000000000003 339.90000000000003 0 1 0 556.55 896.3999999999999zM643.6 303.7000000000001A389.15 389.15 0 0 1 780 600A389.15 389.15 0 0 1 643.5 896.4A339.90000000000003 339.90000000000003 0 1 0 643.65 303.7000000000001z","horizAdvX":"1200"},"mastercard-line":{"path":["M0 0h24v24H0z","M12 18.294a7.3 7.3 0 1 1 0-12.588 7.3 7.3 0 1 1 0 12.588zm1.702-1.384a5.3 5.3 0 1 0 0-9.82A7.273 7.273 0 0 1 15.6 12c0 1.89-.719 3.614-1.898 4.91zm-3.404-9.82a5.3 5.3 0 1 0 0 9.82A7.273 7.273 0 0 1 8.4 12c0-1.89.719-3.614 1.898-4.91zM12 8.205A5.284 5.284 0 0 0 10.4 12c0 1.488.613 2.832 1.6 3.795A5.284 5.284 0 0 0 13.6 12 5.284 5.284 0 0 0 12 8.205z"],"unicode":"","glyph":"M600 285.3A365 365 0 1 0 600 914.7A365 365 0 1 0 600 285.3zM685.1 354.5A265.00000000000006 265.00000000000006 0 1 1 685.1 845.5A363.65 363.65 0 0 0 780 600C780 505.5 744.05 419.3 685.1 354.5zM514.9 845.5A265.00000000000006 265.00000000000006 0 1 1 514.9 354.5A363.65 363.65 0 0 0 420 600C420 694.5 455.95 780.7 514.9 845.5zM600 789.75A264.2 264.2 0 0 1 520 600C520 525.6 550.65 458.4 600 410.25A264.2 264.2 0 0 1 680 600A264.2 264.2 0 0 1 600 789.75z","horizAdvX":"1200"},"mastodon-fill":{"path":["M0 0h24v24H0z","M21.258 13.99c-.274 1.41-2.456 2.955-4.962 3.254-1.306.156-2.593.3-3.965.236-2.243-.103-4.014-.535-4.014-.535 0 .218.014.426.04.62.292 2.215 2.196 2.347 4 2.41 1.82.062 3.44-.45 3.44-.45l.076 1.646s-1.274.684-3.542.81c-1.25.068-2.803-.032-4.612-.51-3.923-1.039-4.598-5.22-4.701-9.464-.031-1.26-.012-2.447-.012-3.44 0-4.34 2.843-5.611 2.843-5.611 1.433-.658 3.892-.935 6.45-.956h.062c2.557.02 5.018.298 6.451.956 0 0 2.843 1.272 2.843 5.61 0 0 .036 3.201-.397 5.424zm-2.956-5.087c0-1.074-.273-1.927-.822-2.558-.567-.631-1.308-.955-2.229-.955-1.065 0-1.871.41-2.405 1.228l-.518.87-.519-.87C11.276 5.8 10.47 5.39 9.405 5.39c-.921 0-1.663.324-2.229.955-.549.631-.822 1.484-.822 2.558v5.253h2.081V9.057c0-1.075.452-1.62 1.357-1.62 1 0 1.501.647 1.501 1.927v2.79h2.07v-2.79c0-1.28.5-1.927 1.5-1.927.905 0 1.358.545 1.358 1.62v5.1h2.08V8.902z"],"unicode":"","glyph":"M1062.8999999999999 500.5C1049.1999999999998 430 940.1 352.75 814.8 337.8C749.4999999999999 330.0000000000001 685.15 322.8 616.55 326C504.4 331.1500000000001 415.85 352.75 415.85 352.75C415.85 341.85 416.55 331.4500000000001 417.85 321.7499999999999C432.45 211 527.65 204.3999999999999 617.8499999999999 201.2499999999999C708.85 198.1499999999999 789.8499999999999 223.7499999999999 789.8499999999999 223.7499999999999L793.65 141.4499999999998S729.95 107.2499999999998 616.55 100.9499999999998C554.05 97.55 476.3999999999999 102.55 385.95 126.4500000000001C189.8 178.4000000000001 156.05 387.45 150.9 599.65C149.35 662.65 150.3 722 150.3 771.65C150.3 988.65 292.45 1052.2 292.45 1052.2C364.1 1085.1 487.05 1098.95 614.9499999999999 1100H618.05C745.9 1099 868.9499999999999 1085.1 940.6 1052.2C940.6 1052.2 1082.7499999999998 988.6 1082.7499999999998 771.7C1082.7499999999998 771.7 1084.55 611.65 1062.8999999999999 500.4999999999999zM915.1 754.8499999999999C915.1 808.55 901.45 851.1999999999999 874 882.75C845.65 914.3 808.6 930.5 762.5500000000001 930.5C709.3000000000001 930.5 669 910 642.3000000000001 869.0999999999999L616.4000000000001 825.5999999999999L590.45 869.0999999999999C563.8 910 523.5 930.5 470.2499999999999 930.5C424.2 930.5 387.1 914.3 358.8 882.75C331.35 851.2 317.7 808.55 317.7 754.8500000000001V492.2H421.75V747.15C421.75 800.9 444.3499999999999 828.15 489.5999999999999 828.15C539.5999999999999 828.15 564.6499999999999 795.8 564.6499999999999 731.8V592.3H668.1499999999999V731.8C668.1499999999999 795.8 693.1499999999999 828.1499999999999 743.1499999999999 828.1499999999999C788.3999999999999 828.1499999999999 811.0499999999998 800.8999999999999 811.0499999999998 747.1499999999999V492.1499999999999H915.0499999999998V754.9000000000001z","horizAdvX":"1200"},"mastodon-line":{"path":["M0 0h24v24H0z","M3.018 12.008c-.032-1.26-.012-2.448-.012-3.442 0-4.338 2.843-5.61 2.843-5.61 1.433-.658 3.892-.935 6.45-.956h.062c2.557.02 5.018.298 6.451.956 0 0 2.843 1.272 2.843 5.61 0 0 .036 3.201-.396 5.424-.275 1.41-2.457 2.955-4.963 3.254-1.306.156-2.593.3-3.965.236-2.243-.103-4.014-.535-4.014-.535 0 .218.014.426.04.62.084.633.299 1.095.605 1.435.766.85 2.106.93 3.395.974 1.82.063 3.44-.449 3.44-.449l.076 1.646s-1.274.684-3.542.81c-1.25.068-2.803-.032-4.612-.51-1.532-.406-2.568-1.29-3.27-2.471-1.093-1.843-1.368-4.406-1.431-6.992zm3.3 4.937v-2.548l2.474.605a20.54 20.54 0 0 0 1.303.245c.753.116 1.538.2 2.328.235 1.019.047 1.901-.017 3.636-.224 1.663-.199 3.148-1.196 3.236-1.65.082-.422.151-.922.206-1.482a33.6 33.6 0 0 0 .137-2.245c.015-.51.02-.945.017-1.256v-.059c0-1.43-.369-2.438-.963-3.158a3.008 3.008 0 0 0-.584-.548c-.09-.064-.135-.089-.13-.087-1.013-.465-3.093-.752-5.617-.773h-.046c-2.54.02-4.62.308-5.65.782.023-.01-.021.014-.112.078a3.008 3.008 0 0 0-.584.548c-.594.72-.963 1.729-.963 3.158 0 .232 0 .397-.003.875a77.483 77.483 0 0 0 .014 2.518c.054 2.197.264 3.835.7 5.041.212.587.472 1.07.78 1.45a5.7 5.7 0 0 1-.18-1.505zM8.084 6.37a1.143 1.143 0 1 1 0 2.287 1.143 1.143 0 0 1 0-2.287z"],"unicode":"","glyph":"M150.9 599.6C149.3 662.6 150.3 722 150.3 771.7C150.3 988.6 292.45 1052.2 292.45 1052.2C364.1 1085.1000000000001 487.05 1098.95 614.9499999999999 1100H618.05C745.9 1099 868.9499999999999 1085.1000000000001 940.6 1052.2C940.6 1052.2 1082.7499999999998 988.6 1082.7499999999998 771.7C1082.7499999999998 771.7 1084.55 611.65 1062.9499999999998 500.5000000000001C1049.1999999999998 430.0000000000001 940.0999999999998 352.75 814.7999999999998 337.8C749.4999999999998 330.0000000000001 685.1499999999997 322.8 616.5499999999998 326C504.3999999999998 331.1500000000001 415.8499999999999 352.75 415.8499999999999 352.75C415.8499999999999 341.85 416.5499999999998 331.4500000000001 417.8499999999998 321.7499999999999C422.0499999999998 290.1 432.7999999999998 267 448.0999999999998 250C486.3999999999998 207.4999999999999 553.3999999999997 203.5 617.8499999999998 201.3C708.8499999999998 198.1500000000001 789.8499999999998 223.7500000000001 789.8499999999998 223.7500000000001L793.6499999999997 141.4500000000001S729.9499999999998 107.25 616.5499999999998 100.9500000000001C554.0499999999998 97.55 476.3999999999997 102.5500000000002 385.9499999999998 126.4500000000003C309.3499999999998 146.75 257.5499999999999 190.9500000000002 222.4499999999998 250.0000000000003C167.7999999999998 342.1500000000002 154.0499999999998 470.3000000000001 150.8999999999998 599.6000000000003zM315.9 352.75V480.15L439.6 449.9A1027 1027 0 0 1 504.7499999999999 437.65C542.4 431.85 581.65 427.6500000000001 621.1499999999999 425.9000000000001C672.0999999999999 423.55 716.1999999999999 426.75 802.9499999999998 437.1C886.0999999999999 447.0500000000001 960.35 496.9 964.7499999999998 519.6C968.85 540.7 972.3 565.7 975.0499999999998 593.7A1680 1680 0 0 1 981.8999999999997 705.95C982.65 731.45 982.8999999999997 753.2 982.7499999999998 768.75V771.7C982.7499999999998 843.1999999999999 964.2999999999998 893.6 934.5999999999998 929.6A150.4 150.4 0 0 1 905.3999999999997 957C900.8999999999997 960.2 898.6499999999997 961.45 898.8999999999999 961.35C848.2499999999998 984.6 744.2499999999999 998.95 618.0499999999998 999.9999999999998H615.7499999999999C488.7499999999999 999 384.7499999999999 984.6 333.2499999999999 960.8999999999997C334.3999999999999 961.3999999999997 332.1999999999999 960.2 327.6499999999999 956.9999999999998A150.4 150.4 0 0 1 298.4499999999999 929.6C268.7499999999999 893.5999999999999 250.2999999999999 843.1499999999999 250.2999999999999 771.6999999999998C250.2999999999999 760.0999999999999 250.2999999999999 751.8499999999999 250.1499999999999 727.9499999999998A3874.15 3874.15 0 0 1 250.8499999999999 602.0499999999998C253.5499999999999 492.1999999999999 264.0499999999999 410.2999999999999 285.8499999999999 349.9999999999998C296.4499999999999 320.6499999999999 309.45 296.4999999999998 324.8499999999999 277.4999999999999A285 285 0 0 0 315.8499999999999 352.7499999999998zM404.2 881.5A57.150000000000006 57.150000000000006 0 1 0 404.2 767.15A57.150000000000006 57.150000000000006 0 0 0 404.2 881.5z","horizAdvX":"1200"},"medal-2-fill":{"path":["M0 0h24v24H0z","M12 8.5l2.116 5.088 5.492.44-4.184 3.584 1.278 5.36L12 20.1l-4.702 2.872 1.278-5.36-4.184-3.584 5.492-.44L12 8.5zM8 2v9H6V2h2zm10 0v9h-2V2h2zm-5 0v5h-2V2h2z"],"unicode":"","glyph":"M600 775L705.8 520.5999999999999L980.4 498.6L771.1999999999999 319.3999999999999L835.0999999999999 51.3999999999999L600 194.9999999999999L364.9 51.3999999999999L428.8 319.3999999999999L219.6 498.5999999999999L494.2 520.5999999999999L600 775zM400 1100V650H300V1100H400zM900 1100V650H800V1100H900zM650 1100V850H550V1100H650z","horizAdvX":"1200"},"medal-2-line":{"path":["M0 0h24v24H0z","M12 8.5l2.116 5.088 5.492.44-4.184 3.584 1.278 5.36L12 20.1l-4.702 2.872 1.278-5.36-4.184-3.584 5.492-.44L12 8.5zm0 5.207l-.739 1.777-1.916.153 1.46 1.251-.447 1.871L12 17.756l1.641 1.003-.446-1.87 1.459-1.252-1.915-.153L12 13.707zM8 2v9H6V2h2zm10 0v9h-2V2h2zm-5 0v5h-2V2h2z"],"unicode":"","glyph":"M600 775L705.8 520.5999999999999L980.4 498.6L771.1999999999999 319.3999999999999L835.0999999999999 51.3999999999999L600 194.9999999999999L364.9 51.3999999999999L428.8 319.3999999999999L219.6 498.5999999999999L494.2 520.5999999999999L600 775zM600 514.65L563.05 425.8L467.2499999999999 418.15L540.25 355.5999999999999L517.9 262.05L600 312.2000000000001L682.05 262.05L659.75 355.5500000000001L732.7 418.1500000000001L636.95 425.8000000000001L600 514.65zM400 1100V650H300V1100H400zM900 1100V650H800V1100H900zM650 1100V850H550V1100H650z","horizAdvX":"1200"},"medal-fill":{"path":["M0 0h24v24H0z","M12 7a8 8 0 1 1 0 16 8 8 0 0 1 0-16zm0 3.5l-1.323 2.68-2.957.43 2.14 2.085-.505 2.946L12 17.25l2.645 1.39-.505-2.945 2.14-2.086-2.957-.43L12 10.5zm1-8.501L18 2v3l-1.363 1.138A9.935 9.935 0 0 0 13 5.049L13 2zm-2 0v3.05a9.935 9.935 0 0 0-3.636 1.088L6 5V2l5-.001z"],"unicode":"","glyph":"M600 850A400 400 0 1 0 600 50A400 400 0 0 0 600 850zM600 675L533.85 541L386 519.5L493 415.25L467.7499999999999 267.95L600 337.5L732.25 268L706.9999999999999 415.25L813.9999999999999 519.55L666.1499999999999 541.05L600 675zM650 1100.05L900 1100V950L831.85 893.1A496.75000000000006 496.75000000000006 0 0 1 650 947.55L650 1100zM550 1100.05V947.55A496.75000000000006 496.75000000000006 0 0 1 368.2 893.15L300 950V1100L550 1100.05z","horizAdvX":"1200"},"medal-line":{"path":["M0 0h24v24H0z","M12 7a8 8 0 1 1 0 16 8 8 0 0 1 0-16zm0 2a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 1.5l1.323 2.68 2.957.43-2.14 2.085.505 2.946L12 17.25l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43L12 10.5zM18 2v3l-1.363 1.138A9.935 9.935 0 0 0 13 5.049L13 2 18 2zm-7-.001v3.05a9.935 9.935 0 0 0-3.636 1.088L6 5V2l5-.001z"],"unicode":"","glyph":"M600 850A400 400 0 1 0 600 50A400 400 0 0 0 600 850zM600 750A300 300 0 1 1 600 150A300 300 0 0 1 600 750zM600 675L666.15 541L814 519.5L707 415.25L732.2500000000001 267.95L600 337.5L467.75 268L493.0000000000001 415.25L386.0000000000001 519.55L533.85 541.05L600 675zM900 1100V950L831.85 893.1A496.75000000000006 496.75000000000006 0 0 1 650 947.55L650 1100L900 1100zM550 1100.05V947.55A496.75000000000006 496.75000000000006 0 0 1 368.2 893.1500000000001L300 950V1100L550 1100.05z","horizAdvX":"1200"},"medicine-bottle-fill":{"path":["M0 0H24V24H0z","M17 5v2c1.657 0 3 1.343 3 3v11c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V10c0-1.657 1.343-3 3-3V5h10zm-4 6h-2v2H9v2h1.999L11 17h2l-.001-2H15v-2h-2v-2zm6-9v2H5V2h14z"],"unicode":"","glyph":"M850 950V850C932.85 850 1000 782.85 1000 700V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V700C200 782.85 267.15 850 350 850V950H850zM650 650H550V550H450V450H549.95L550 350H650L649.95 450H750V550H650V650zM950 1100V1000H250V1100H950z","horizAdvX":"1200"},"medicine-bottle-line":{"path":["M0 0H24V24H0z","M19 2v2h-2v3c1.657 0 3 1.343 3 3v11c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1V10c0-1.657 1.343-3 3-3V4H5V2h14zm-2 7H7c-.552 0-1 .448-1 1v10h12V10c0-.552-.448-1-1-1zm-4 2v2h2v2h-2.001L13 17h-2l-.001-2H9v-2h2v-2h2zm2-7H9v3h6V4z"],"unicode":"","glyph":"M950 1100V1000H850V850C932.85 850 1000 782.85 1000 700V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V700C200 782.85 267.15 850 350 850V1000H250V1100H950zM850 750H350C322.4000000000001 750 300 727.5999999999999 300 700V200H900V700C900 727.5999999999999 877.6 750 850 750zM650 650V550H750V450H649.95L650 350H550L549.95 450H450V550H550V650H650zM750 1000H450V850H750V1000z","horizAdvX":"1200"},"medium-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13.3 12.94c-.1-.05-.15-.2-.15-.301V8.006c0-.1.05-.25.15-.351l.955-1.105V6.5H14.84l-2.56 6.478L9.366 6.5H5.852v.05l.903 1.256c.201.2.251.502.251.753v5.523c.05.302 0 .653-.15.954L5.5 16.894v.05h3.616v-.05L7.76 15.087c-.15-.302-.201-.603-.15-.954V9.11c.05.1.1.1.15.301l3.414 7.633h.05L14.54 8.76c-.05.3-.05.652-.05.904v5.925c0 .15-.05.25-.15.351l-1.005.954v.05h4.921v-.05l-.954-.954z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM865 403C860 405.5000000000001 857.5000000000001 413 857.5000000000001 418.0500000000001V799.7C857.5000000000001 804.7 860.0000000000001 812.2 865 817.25L912.75 872.5V875H742L614 551.1L468.3 875H292.6V872.5L337.7500000000001 809.7C347.8 799.7 350.3000000000001 784.6 350.3000000000001 772.05V495.9000000000001C352.8000000000001 480.8000000000001 350.3000000000001 463.25 342.8 448.2000000000001L275 355.3000000000001V352.8000000000001H455.8V355.3000000000001L388 445.65C380.5 460.75 377.95 475.8 380.5 493.35V744.5C383 739.5 385.5 739.5 388 729.45L558.6999999999999 347.8H561.2L727 762C724.4999999999999 747 724.4999999999999 729.4000000000001 724.4999999999999 716.8V420.5500000000001C724.4999999999999 413.0500000000001 721.9999999999999 408.0500000000001 716.9999999999999 403.0000000000001L666.7499999999999 355.3000000000001V352.8000000000001H912.7999999999998V355.3000000000001L865.0999999999998 403.0000000000001z","horizAdvX":"1200"},"medium-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm12.3 10.94l.955.954v.05h-4.921v-.05l1.004-.954c.1-.1.15-.2.15-.351V9.664c0-.252 0-.603.051-.904l-3.314 8.285h-.05L7.76 9.412c-.05-.2-.1-.2-.15-.3v5.02c-.051.352 0 .653.15.955l1.356 1.807v.05H5.5v-.05l1.356-1.858c.15-.3.2-.652.15-.954V8.56c0-.251-.05-.553-.25-.753L5.851 6.55V6.5h3.515l2.912 6.478L14.84 6.5h3.415v.05l-.954 1.105c-.1.1-.15.251-.15.351v7.633c0 .1.05.251.15.301z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM865 403L912.75 355.3000000000001V352.8000000000001H666.6999999999999V355.3000000000001L716.9 403.0000000000001C721.9 408.0000000000001 724.4 413.0000000000001 724.4 420.5500000000001V716.8C724.4 729.4000000000001 724.4 746.95 726.9499999999999 762L561.25 347.7499999999999H558.75L388 729.4C385.5 739.3999999999999 383 739.3999999999999 380.5 744.4V493.4C377.95 475.8 380.5 460.75 388 445.65L455.8 355.3000000000001V352.8000000000001H275V355.3000000000001L342.8 448.2000000000002C350.3 463.2000000000002 352.8 480.8000000000001 350.3 495.9000000000001V772C350.3 784.55 347.8 799.6500000000001 337.8 809.65L292.55 872.5V875H468.3L613.9 551.1L742 875H912.75V872.5L865.05 817.25C860.0499999999998 812.25 857.55 804.7 857.55 799.7V418.0500000000001C857.55 413.0500000000001 860.0500000000001 405.5000000000001 865.05 403z","horizAdvX":"1200"},"men-fill":{"path":["M0 0h24v24H0z","M18.586 5H14V3h8v8h-2V6.414l-3.537 3.537a7.5 7.5 0 1 1-1.414-1.414L18.586 5z"],"unicode":"","glyph":"M929.3 950H700V1050H1100V650H1000V879.3L823.1500000000001 702.45A375 375 0 1 0 752.45 773.15L929.3 950z","horizAdvX":"1200"},"men-line":{"path":["M0 0h24v24H0z","M15.05 8.537L18.585 5H14V3h8v8h-2V6.414l-3.537 3.537a7.5 7.5 0 1 1-1.414-1.414zM10.5 20a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M752.5 773.15L929.25 950H700V1050H1100V650H1000V879.3L823.1500000000001 702.45A375 375 0 1 0 752.45 773.15zM525 200A275 275 0 1 1 525 750A275 275 0 0 1 525 200z","horizAdvX":"1200"},"mental-health-fill":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm-.53 5.763c-.684-.684-1.792-.684-2.475 0-.684.683-.684 1.791 0 2.474L11 13.243l3.005-3.006c.684-.683.684-1.791 0-2.474-.683-.684-1.791-.684-2.475 0l-.53.53-.53-.53z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM523.5 811.85C489.3000000000001 846.05 433.9000000000001 846.05 399.7500000000001 811.85C365.5500000000001 777.7 365.5500000000001 722.3 399.7500000000001 688.15L550 537.85L700.25 688.15C734.4499999999999 722.3 734.4499999999999 777.7 700.25 811.85C666.0999999999999 846.05 610.6999999999999 846.05 576.5 811.85L550 785.35L523.5 811.85z","horizAdvX":"1200"},"mental-health-line":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm0 2c-3.314 0-6 2.686-6 6 0 1.385.468 2.693 1.316 3.75C7.41 15.114 8 16.667 8 18.306V20h5l.002-3H17v-4.248l1.55-.664-1.543-2.425-.057-.442C16.566 6.251 14.024 4 11 4zm-.53 3.763l.53.53.53-.53c.684-.684 1.792-.684 2.475 0 .684.683.684 1.791 0 2.474L11 13.243l-3.005-3.006c-.684-.683-.684-1.791 0-2.474.683-.684 1.791-.684 2.475 0z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM550 1000C384.3 1000 250 865.7 250 700C250 630.75 273.4 565.35 315.8 512.5C370.5 444.3 400 366.6499999999999 400 284.7V200H650L650.1 350H850V562.4000000000001L927.5 595.6L850.35 716.8499999999999L847.5000000000001 738.95C828.3 887.45 701.1999999999999 1000 550 1000zM523.5 811.85L550 785.35L576.5 811.85C610.6999999999999 846.0500000000001 666.0999999999999 846.0500000000001 700.25 811.85C734.4499999999999 777.7 734.4499999999999 722.3000000000001 700.25 688.1500000000001L550 537.85L399.75 688.15C365.55 722.3 365.55 777.7 399.75 811.85C433.9000000000001 846.05 489.3 846.05 523.5 811.85z","horizAdvX":"1200"},"menu-2-fill":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h12v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H750V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-2-line":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h12v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H750V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-3-fill":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm6 7h12v2H9v-2zm-6 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM450 650H1050V550H450V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-3-line":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm6 7h12v2H9v-2zm-6 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM450 650H1050V550H450V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-4-fill":{"path":["M0 0h24v24H0z","M16 18v2H5v-2h11zm5-7v2H3v-2h18zm-2-7v2H8V4h11z"],"unicode":"","glyph":"M800 300V200H250V300H800zM1050 650V550H150V650H1050zM950 1000V900H400V1000H950z","horizAdvX":"1200"},"menu-4-line":{"path":["M0 0h24v24H0z","M16 18v2H5v-2h11zm5-7v2H3v-2h18zm-2-7v2H8V4h11z"],"unicode":"","glyph":"M800 300V200H250V300H800zM1050 650V550H150V650H1050zM950 1000V900H400V1000H950z","horizAdvX":"1200"},"menu-5-fill":{"path":["M0 0h24v24H0z","M18 18v2H6v-2h12zm3-7v2H3v-2h18zm-3-7v2H6V4h12z"],"unicode":"","glyph":"M900 300V200H300V300H900zM1050 650V550H150V650H1050zM900 1000V900H300V1000H900z","horizAdvX":"1200"},"menu-5-line":{"path":["M0 0h24v24H0z","M18 18v2H6v-2h12zm3-7v2H3v-2h18zm-3-7v2H6V4h12z"],"unicode":"","glyph":"M900 300V200H300V300H900zM1050 650V550H150V650H1050zM900 1000V900H300V1000H900z","horizAdvX":"1200"},"menu-add-fill":{"path":["M0 0h24v24H0z","M18 15l-.001 3H21v2h-3.001L18 23h-2l-.001-3H13v-2h2.999L16 15h2zm-7 3v2H3v-2h8zm10-7v2H3v-2h18zm0-7v2H3V4h18z"],"unicode":"","glyph":"M900 450L899.9499999999999 300H1050V200H899.9499999999999L900 50H800L799.95 200H650V300H799.95L800 450H900zM550 300V200H150V300H550zM1050 650V550H150V650H1050zM1050 1000V900H150V1000H1050z","horizAdvX":"1200"},"menu-add-line":{"path":["M0 0h24v24H0z","M18 15l-.001 3H21v2h-3.001L18 23h-2l-.001-3H13v-2h2.999L16 15h2zm-7 3v2H3v-2h8zm10-7v2H3v-2h18zm0-7v2H3V4h18z"],"unicode":"","glyph":"M900 450L899.9499999999999 300H1050V200H899.9499999999999L900 50H800L799.95 200H650V300H799.95L800 450H900zM550 300V200H150V300H550zM1050 650V550H150V650H1050zM1050 1000V900H150V1000H1050z","horizAdvX":"1200"},"menu-fill":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H1050V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-fold-fill":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM6.95 3.55v9.9L2 8.5l4.95-4.95zM21 11v2h-9v-2h9zm0-7v2h-9V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM347.5 1022.5V527.5L100 775L347.5 1022.5zM1050 650V550H600V650H1050zM1050 1000V900H600V1000H1050z","horizAdvX":"1200"},"menu-fold-line":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM6.596 3.904L8.01 5.318 4.828 8.5l3.182 3.182-1.414 1.414L2 8.5l4.596-4.596zM21 11v2h-9v-2h9zm0-7v2h-9V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM329.8 1004.8L400.5 934.1L241.4 775L400.5 615.9L329.8 545.2L100 775L329.8 1004.8zM1050 650V550H600V650H1050zM1050 1000V900H600V1000H1050z","horizAdvX":"1200"},"menu-line":{"path":["M0 0h24v24H0z","M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"],"unicode":"","glyph":"M150 1000H1050V900H150V1000zM150 650H1050V550H150V650zM150 300H1050V200H150V300z","horizAdvX":"1200"},"menu-unfold-fill":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM17.05 3.55L22 8.5l-4.95 4.95v-9.9zM12 11v2H3v-2h9zm0-7v2H3V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM852.5 1022.5L1100 775L852.5 527.5V1022.5zM600 650V550H150V650H600zM600 1000V900H150V1000H600z","horizAdvX":"1200"},"menu-unfold-line":{"path":["M0 0H24V24H0z","M21 18v2H3v-2h18zM17.404 3.904L22 8.5l-4.596 4.596-1.414-1.414L19.172 8.5 15.99 5.318l1.414-1.414zM12 11v2H3v-2h9zm0-7v2H3V4h9z"],"unicode":"","glyph":"M1050 300V200H150V300H1050zM870.2 1004.8L1100 775L870.2 545.2L799.5 615.9L958.6 775L799.5 934.1L870.2 1004.8zM600 650V550H150V650H600zM600 1000V900H150V1000H600z","horizAdvX":"1200"},"merge-cells-horizontal":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-9 2H5v5.999h2V9l3 3-3 3v-2H5v6h6v-2h2v2h6v-6h-2v2l-3-3 3-3v1.999h2V5h-6v2h-2V5zm2 8v2h-2v-2h2zm0-4v2h-2V9h2z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM550 950H250V650.0500000000001H350V750L500 600L350 450V550H250V250H550V350H650V250H950V550H850V450L700 600L850 750V650.05H950V950H650V850H550V950zM650 550V450H550V550H650zM650 750V650H550V750H650z","horizAdvX":"1200"},"merge-cells-vertical":{"path":["M0 0H24V24H0z","M21 20c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16c.552 0 1 .448 1 1v16zm-2-9V5h-5.999v2H15l-3 3-3-3h2V5H5v6h2v2H5v6h6v-2H9l3-3 3 3h-1.999v2H19v-6h-2v-2h2zm-8 2H9v-2h2v2zm4 0h-2v-2h2v2z"],"unicode":"","glyph":"M1050 200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000C1027.6 1050 1050 1027.6 1050 1000V200zM950 650V950H650.0500000000001V850H750L600 700L450 850H550V950H250V650H350V550H250V250H550V350H450L600 500L750 350H650.05V250H950V550H850V650H950zM550 550H450V650H550V550zM750 550H650V650H750V550z","horizAdvX":"1200"},"message-2-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM7 10v2h2v-2H7zm4 0v2h2v-2h-2zm4 0v2h2v-2h-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM350 700V600H450V700H350zM550 700V600H650V700H550zM750 700V600H850V700H750z","horizAdvX":"1200"},"message-2-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM550 700H650V600H550V700zM350 700H450V600H350V700zM750 700H850V600H750V700z","horizAdvX":"1200"},"message-3-fill":{"path":["M0 0h24v24H0z","M2 8.994A5.99 5.99 0 0 1 8 3h8c3.313 0 6 2.695 6 5.994V21H8c-3.313 0-6-2.695-6-5.994V8.994zM14 11v2h2v-2h-2zm-6 0v2h2v-2H8z"],"unicode":"","glyph":"M100 750.3A299.50000000000006 299.50000000000006 0 0 0 400 1050H800C965.65 1050 1100 915.25 1100 750.3V150H400C234.35 150 100 284.75 100 449.7000000000001V750.3zM700 650V550H800V650H700zM400 650V550H500V650H400z","horizAdvX":"1200"},"message-3-line":{"path":["M0 0h24v24H0z","M2 8.994A5.99 5.99 0 0 1 8 3h8c3.313 0 6 2.695 6 5.994V21H8c-3.313 0-6-2.695-6-5.994V8.994zM20 19V8.994A4.004 4.004 0 0 0 16 5H8a3.99 3.99 0 0 0-4 3.994v6.012A4.004 4.004 0 0 0 8 19h12zm-6-8h2v2h-2v-2zm-6 0h2v2H8v-2z"],"unicode":"","glyph":"M100 750.3A299.50000000000006 299.50000000000006 0 0 0 400 1050H800C965.65 1050 1100 915.25 1100 750.3V150H400C234.35 150 100 284.75 100 449.7000000000001V750.3zM1000 250V750.3A200.2 200.2 0 0 1 800 950H400A199.5 199.5 0 0 1 200 750.3V449.7000000000001A200.2 200.2 0 0 1 400 250H1000zM700 650H800V550H700V650zM400 650H500V550H400V650z","horizAdvX":"1200"},"message-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM8 10v2h8v-2H8z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM400 700V600H800V700H400z","horizAdvX":"1200"},"message-line":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM8 10h8v2H8v-2z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM400 700H800V600H400V700z","horizAdvX":"1200"},"messenger-fill":{"path":["M0 0h24v24H0z","M12 2c5.634 0 10 4.127 10 9.7 0 5.573-4.366 9.7-10 9.7a10.894 10.894 0 0 1-2.895-.384.8.8 0 0 0-.534.039l-1.984.876a.8.8 0 0 1-1.123-.707l-.055-1.78a.797.797 0 0 0-.268-.57C3.195 17.135 2 14.617 2 11.7 2 6.127 6.367 2 12 2zM5.995 14.537c-.282.447.268.951.689.631l3.155-2.394a.6.6 0 0 1 .723 0l2.337 1.75a1.5 1.5 0 0 0 2.169-.4l2.937-4.66c.282-.448-.268-.952-.689-.633l-3.155 2.396a.6.6 0 0 1-.723 0l-2.337-1.75a1.5 1.5 0 0 0-2.169.4l-2.937 4.66z"],"unicode":"","glyph":"M600 1100C881.7 1100 1100 893.6500000000001 1100 615C1100 336.35 881.7 130 600 130A544.6999999999999 544.6999999999999 0 0 0 455.25 149.2000000000001A40.00000000000001 40.00000000000001 0 0 1 428.55 147.25L329.35 103.4500000000001A40.00000000000001 40.00000000000001 0 0 0 273.2 138.8L270.45 227.8000000000001A39.849999999999994 39.849999999999994 0 0 1 257.05 256.3000000000001C159.75 343.2499999999999 100 469.15 100 615C100 893.6500000000001 318.35 1100 600 1100zM299.75 473.15C285.65 450.8 313.15 425.5999999999999 334.2 441.5999999999999L491.95 561.3A30 30 0 0 0 528.1 561.3L644.95 473.8A75 75 0 0 1 753.4000000000001 493.8L900.2500000000001 726.8C914.3500000000003 749.2 886.8500000000001 774.4 865.8000000000002 758.45L708.0500000000002 638.65A30 30 0 0 0 671.9000000000001 638.65L555.0500000000002 726.15A75 75 0 0 1 446.6000000000002 706.15L299.7500000000001 473.15z","horizAdvX":"1200"},"messenger-line":{"path":["M0 0h24v24H0z","M7.764 19.225c.59-.26 1.25-.309 1.868-.139.77.21 1.565.316 2.368.314 4.585 0 8-3.287 8-7.7S16.585 4 12 4s-8 3.287-8 7.7c0 2.27.896 4.272 2.466 5.676a2.8 2.8 0 0 1 .942 2.006l.356-.157zM12 2c5.634 0 10 4.127 10 9.7 0 5.573-4.366 9.7-10 9.7a10.894 10.894 0 0 1-2.895-.384.8.8 0 0 0-.534.039l-1.984.876a.8.8 0 0 1-1.123-.707l-.055-1.78a.797.797 0 0 0-.268-.57C3.195 17.135 2 14.617 2 11.7 2 6.127 6.367 2 12 2zM5.995 14.537l2.937-4.66a1.5 1.5 0 0 1 2.17-.4l2.336 1.75a.6.6 0 0 0 .723 0l3.155-2.396c.421-.319.971.185.689.633l-2.937 4.66a1.5 1.5 0 0 1-2.17.4l-2.336-1.75a.6.6 0 0 0-.723 0l-3.155 2.395c-.421.319-.971-.185-.689-.633z"],"unicode":"","glyph":"M388.2 238.7499999999999C417.7000000000001 251.75 450.7 254.2 481.6 245.7C520.0999999999999 235.1999999999998 559.8499999999999 229.9 600 229.9999999999999C829.25 229.9999999999999 1000 394.3499999999998 1000 614.9999999999999S829.25 1000 600 1000S200 835.65 200 615C200 501.5 244.8 401.4 323.3 331.2000000000002A139.99999999999997 139.99999999999997 0 0 0 370.4000000000001 230.9000000000001L388.2 238.7500000000001zM600 1100C881.7 1100 1100 893.6500000000001 1100 615C1100 336.35 881.7 130 600 130A544.6999999999999 544.6999999999999 0 0 0 455.25 149.2000000000001A40.00000000000001 40.00000000000001 0 0 1 428.55 147.25L329.35 103.4500000000001A40.00000000000001 40.00000000000001 0 0 0 273.2 138.8L270.45 227.8000000000001A39.849999999999994 39.849999999999994 0 0 1 257.05 256.3000000000001C159.75 343.2499999999999 100 469.15 100 615C100 893.6500000000001 318.35 1100 600 1100zM299.75 473.15L446.6 706.15A75 75 0 0 0 555.1 726.15L671.9 638.65A30 30 0 0 1 708.0500000000001 638.65L865.8000000000002 758.45C886.8500000000001 774.4000000000001 914.3500000000003 749.2 900.2500000000001 726.8000000000001L753.4000000000002 493.8000000000001A75 75 0 0 0 644.9000000000002 473.8000000000001L528.1000000000001 561.3000000000001A30 30 0 0 1 491.9500000000001 561.3000000000001L334.2000000000002 441.5500000000001C313.1500000000002 425.6 285.6500000000002 450.8000000000001 299.7500000000001 473.2000000000002z","horizAdvX":"1200"},"meteor-fill":{"path":["M0 0h24v24H0z","M21 1v12A9 9 0 1 1 7.375 5.278L14 1.453v2.77L21 1zm-9 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10z"],"unicode":"","glyph":"M1050 1150V550A450 450 0 1 0 368.75 936.1L700 1127.35V988.85L1050 1150zM600 800A250 250 0 1 1 600 300A250 250 0 0 1 600 800z","horizAdvX":"1200"},"meteor-line":{"path":["M0 0h24v24H0z","M21 1v12A9 9 0 1 1 7.375 5.278L14 1.453v2.77L21 1zm-2 3.122l-7 3.224v-2.43L8.597 6.881a6.997 6.997 0 0 0-3.592 5.845L5 13a7 7 0 0 0 13.996.24L19 13V4.122zM12 8a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"],"unicode":"","glyph":"M1050 1150V550A450 450 0 1 0 368.75 936.1L700 1127.35V988.85L1050 1150zM950 993.9L600 832.7V954.2L429.85 855.95A349.85 349.85 0 0 1 250.25 563.7L250 550A350 350 0 0 1 949.8 538L950 550V993.9zM600 800A250 250 0 1 0 600 300A250 250 0 0 0 600 800zM600 700A150 150 0 1 1 600 400A150 150 0 0 1 600 700z","horizAdvX":"1200"},"mic-2-fill":{"path":["M0 0h24v24H0z","M12 1a5 5 0 0 1 5 5v6a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM2.192 13.962l1.962-.393a8.003 8.003 0 0 0 15.692 0l1.962.393C20.896 18.545 16.85 22 12 22s-8.896-3.455-9.808-8.038z"],"unicode":"","glyph":"M600 1150A250 250 0 0 0 850 900V600A250 250 0 0 0 350 600V900A250 250 0 0 0 600 1150zM109.6 501.9L207.7 521.5500000000001A400.15000000000003 400.15000000000003 0 0 1 992.3 521.5500000000001L1090.4 501.9C1044.8 272.7499999999999 842.5000000000001 100 600 100S155.2 272.7499999999999 109.6 501.9z","horizAdvX":"1200"},"mic-2-line":{"path":["M0 0h24v24H0z","M12 3a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3zm0-2a5 5 0 0 1 5 5v6a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM2.192 13.962l1.962-.393a8.003 8.003 0 0 0 15.692 0l1.962.393C20.896 18.545 16.85 22 12 22s-8.896-3.455-9.808-8.038z"],"unicode":"","glyph":"M600 1050A150 150 0 0 1 450 900V600A150 150 0 0 1 750 600V900A150 150 0 0 1 600 1050zM600 1150A250 250 0 0 0 850 900V600A250 250 0 0 0 350 600V900A250 250 0 0 0 600 1150zM109.6 501.9L207.7 521.5500000000001A400.15000000000003 400.15000000000003 0 0 1 992.3 521.5500000000001L1090.4 501.9C1044.8 272.7499999999999 842.5000000000001 100 600 100S155.2 272.7499999999999 109.6 501.9z","horizAdvX":"1200"},"mic-fill":{"path":["M0 0h24v24H0z","M12 1a5 5 0 0 1 5 5v4a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM3.055 11H5.07a7.002 7.002 0 0 0 13.858 0h2.016A9.004 9.004 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11z"],"unicode":"","glyph":"M600 1150A250 250 0 0 0 850 900V700A250 250 0 0 0 350 700V900A250 250 0 0 0 600 1150zM152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 650H1047.2A450.2 450.2 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650z","horizAdvX":"1200"},"mic-line":{"path":["M0 0h24v24H0z","M12 3a3 3 0 0 0-3 3v4a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3zm0-2a5 5 0 0 1 5 5v4a5 5 0 0 1-10 0V6a5 5 0 0 1 5-5zM3.055 11H5.07a7.002 7.002 0 0 0 13.858 0h2.016A9.004 9.004 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11z"],"unicode":"","glyph":"M600 1050A150 150 0 0 1 450 900V700A150 150 0 0 1 750 700V900A150 150 0 0 1 600 1050zM600 1150A250 250 0 0 0 850 900V700A250 250 0 0 0 350 700V900A250 250 0 0 0 600 1150zM152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 946.4 650H1047.2A450.2 450.2 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650z","horizAdvX":"1200"},"mic-off-fill":{"path":["M0 0h24v24H0z","M16.425 17.839A8.941 8.941 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11H5.07a7.002 7.002 0 0 0 9.87 5.354l-1.551-1.55A5 5 0 0 1 7 10V8.414L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-4.767-4.768zm2.95-2.679l-1.443-1.442c.509-.81.856-1.73.997-2.718h2.016a8.95 8.95 0 0 1-1.57 4.16zm-2.91-2.909l-8.78-8.78A5 5 0 0 1 17 6l.001 4a4.98 4.98 0 0 1-.534 2.251z"],"unicode":"","glyph":"M821.25 308.0500000000001A447.05 447.05 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 747 382.3000000000001L669.4499999999999 459.8000000000001A250 250 0 0 0 350 700V779.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L821.25 308.0499999999999zM968.75 442.0000000000001L896.5999999999999 514.1000000000001C922.05 554.6000000000001 939.4 600.6000000000001 946.45 650.0000000000001H1047.25A447.49999999999994 447.49999999999994 0 0 0 968.75 442.0000000000001zM823.25 587.4500000000002L384.25 1026.45A250 250 0 0 0 850 900L850.0500000000001 700A249.00000000000003 249.00000000000003 0 0 0 823.3500000000001 587.45z","horizAdvX":"1200"},"mic-off-line":{"path":["M0 0h24v24H0z","M16.425 17.839A8.941 8.941 0 0 1 13 18.945V23h-2v-4.055A9.004 9.004 0 0 1 3.055 11H5.07a7.002 7.002 0 0 0 9.87 5.354l-1.551-1.55A5 5 0 0 1 7 10V8.414L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-4.767-4.768zm-7.392-7.392l2.52 2.52a3.002 3.002 0 0 1-2.52-2.52zm10.342 4.713l-1.443-1.442c.509-.81.856-1.73.997-2.718h2.016a8.95 8.95 0 0 1-1.57 4.16zm-2.91-2.909l-1.548-1.548c.054-.226.083-.46.083-.703V6a3 3 0 0 0-5.818-1.032L7.686 3.471A5 5 0 0 1 17 6v4a4.98 4.98 0 0 1-.534 2.251z"],"unicode":"","glyph":"M821.25 308.0500000000001A447.05 447.05 0 0 0 650 252.75V50H550V252.75A450.2 450.2 0 0 0 152.75 650H253.5A350.09999999999997 350.09999999999997 0 0 1 747 382.3000000000001L669.4499999999999 459.8000000000001A250 250 0 0 0 350 700V779.3L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L821.25 308.0499999999999zM451.6500000000001 677.6500000000001L577.6500000000001 551.6500000000001A150.1 150.1 0 0 0 451.6500000000001 677.6500000000001zM968.75 442L896.5999999999999 514.1C922.05 554.6 939.4 600.6 946.45 650H1047.25A447.49999999999994 447.49999999999994 0 0 0 968.75 442zM823.25 587.4499999999999L745.85 664.8499999999999C748.55 676.15 750 687.85 750 699.9999999999999V900A150 150 0 0 1 459.1 951.6L384.3 1026.45A250 250 0 0 0 850 900V700A249.00000000000003 249.00000000000003 0 0 0 823.3000000000001 587.45z","horizAdvX":"1200"},"mickey-fill":{"path":["M0 0h24v24H0z","M18.5 2a4.5 4.5 0 0 1 .883 8.913 8 8 0 1 1-14.765-.001A4.499 4.499 0 0 1 5.5 2a4.5 4.5 0 0 1 4.493 4.254A7.998 7.998 0 0 1 12 6c.693 0 1.365.088 2.006.254A4.5 4.5 0 0 1 18.5 2z"],"unicode":"","glyph":"M925 1100A225 225 0 0 0 969.15 654.35A400 400 0 1 0 230.8999999999999 654.4A224.94999999999996 224.94999999999996 0 0 0 275 1100A225 225 0 0 0 499.65 887.3A399.90000000000003 399.90000000000003 0 0 0 600 900C634.65 900 668.25 895.6 700.3 887.3A225 225 0 0 0 925 1100z","horizAdvX":"1200"},"mickey-line":{"path":["M0 0h24v24H0z","M18.5 2a4.5 4.5 0 0 1 .883 8.913l.011.027a8 8 0 0 1-7.145 11.056L12 22a8 8 0 0 1-7.382-11.088A4.499 4.499 0 0 1 5.5 2a4.5 4.5 0 0 1 4.493 4.254l.073-.019A8.018 8.018 0 0 1 12 6l.25.004a8 8 0 0 1 1.756.25A4.5 4.5 0 0 1 18.5 2zM12 8a6 6 0 1 0 0 12 6 6 0 0 0 0-12zM5.5 4a2.5 2.5 0 0 0 0 5l.164-.005.103-.01A8.044 8.044 0 0 1 7.594 7.32l.33-.206A2.5 2.5 0 0 0 5.5 4zm13 0a2.5 2.5 0 0 0-2.466 2.916l.043.2.028.016a8.04 8.04 0 0 1 2.128 1.852A2.5 2.5 0 1 0 18.5 4z"],"unicode":"","glyph":"M925 1100A225 225 0 0 0 969.15 654.35L969.7 653A400 400 0 0 0 612.4499999999999 100.2000000000001L600 100A400 400 0 0 0 230.9 654.4A224.94999999999996 224.94999999999996 0 0 0 275 1100A225 225 0 0 0 499.65 887.3L503.3 888.25A400.90000000000003 400.90000000000003 0 0 0 600 900L612.5 899.8A400 400 0 0 0 700.3 887.3A225 225 0 0 0 925 1100zM600 800A300 300 0 1 1 600 200A300 300 0 0 1 600 800zM275 1000A125 125 0 0 1 275 750L283.2 750.25L288.35 750.75A402.2 402.2 0 0 0 379.7 834L396.2000000000001 844.3A125 125 0 0 1 275 1000zM925 1000A125 125 0 0 1 801.6999999999999 854.2L803.8499999999999 844.2L805.2499999999999 843.4A401.99999999999994 401.99999999999994 0 0 0 911.6499999999997 750.8A125 125 0 1 1 925 1000z","horizAdvX":"1200"},"microscope-fill":{"path":["M0 0H24V24H0z","M13.196 2.268l3.25 5.63c.276.477.112 1.089-.366 1.365l-1.3.75 1.001 1.732-1.732 1-1-1.733-1.299.751c-.478.276-1.09.112-1.366-.366L8.546 8.215C6.494 8.837 5 10.745 5 13c0 .625.115 1.224.324 1.776C6.1 14.284 7.016 14 8 14c1.684 0 3.174.833 4.08 2.109l7.688-4.439 1 1.732-7.878 4.549c.072.338.11.69.11 1.049 0 .343-.034.677-.1 1H21v2l-17 .001c-.628-.836-1-1.875-1-3.001 0-1.007.298-1.945.81-2.73C3.293 15.295 3 14.182 3 13c0-2.995 1.881-5.551 4.527-6.55l-.393-.682c-.552-.957-.225-2.18.732-2.732l2.598-1.5c.957-.552 2.18-.225 2.732.732z"],"unicode":"","glyph":"M659.8 1086.6L822.3 805.1C836.0999999999999 781.25 827.8999999999999 750.65 803.9999999999999 736.85L738.9999999999999 699.35L789.0499999999998 612.75L702.4499999999999 562.75L652.4499999999999 649.4000000000001L587.4999999999999 611.8500000000001C563.5999999999999 598.0500000000001 532.9999999999999 606.2500000000001 519.1999999999999 630.1500000000001L427.3 789.25C324.7 758.1500000000001 250 662.75 250 550C250 518.75 255.75 488.8 266.2 461.2C305 485.8 350.8 500 400 500C484.2 500 558.6999999999999 458.35 604 394.55L988.4 616.4999999999999L1038.4 529.9L644.5 302.45C648.1 285.55 650 267.95 650 250C650 232.85 648.3 216.15 645 200H1050V100L200 99.9500000000001C168.6 141.7499999999998 150 193.6999999999999 150 250C150 300.35 164.9 347.25 190.5 386.5C164.65 435.25 150 490.9 150 550C150 699.75 244.05 827.55 376.35 877.5L356.7000000000001 911.6C329.1 959.45 345.4500000000001 1020.6 393.3 1048.2L523.2 1123.2C571.0500000000001 1150.8 632.2 1134.45 659.8000000000001 1086.6z","horizAdvX":"1200"},"microscope-line":{"path":["M0 0H24V24H0z","M13.196 2.268l3.25 5.63c.276.477.112 1.089-.366 1.365l-1.3.75 1.001 1.732-1.732 1-1-1.733-1.299.751c-.478.276-1.09.112-1.366-.366L8.546 8.215C6.494 8.837 5 10.745 5 13c0 .625.115 1.224.324 1.776C6.1 14.284 7.016 14 8 14c1.684 0 3.174.833 4.08 2.109l7.688-4.439 1 1.732-7.878 4.549c.072.338.11.69.11 1.049 0 .343-.034.677-.1 1H21v2l-17 .001c-.628-.836-1-1.875-1-3.001 0-1.007.298-1.945.81-2.73C3.293 15.295 3 14.182 3 13c0-2.995 1.881-5.551 4.527-6.55l-.393-.682c-.552-.957-.225-2.18.732-2.732l2.598-1.5c.957-.552 2.18-.225 2.732.732zM8 16c-1.657 0-3 1.343-3 3 0 .35.06.687.17 1h5.66c.11-.313.17-.65.17-1 0-1.657-1.343-3-3-3zm3.464-12.732l-2.598 1.5 2.75 4.763 2.598-1.5-2.75-4.763z"],"unicode":"","glyph":"M659.8 1086.6L822.3 805.1C836.0999999999999 781.25 827.8999999999999 750.65 803.9999999999999 736.85L738.9999999999999 699.35L789.0499999999998 612.75L702.4499999999999 562.75L652.4499999999999 649.4000000000001L587.4999999999999 611.8500000000001C563.5999999999999 598.0500000000001 532.9999999999999 606.2500000000001 519.1999999999999 630.1500000000001L427.3 789.25C324.7 758.1500000000001 250 662.75 250 550C250 518.75 255.75 488.8 266.2 461.2C305 485.8 350.8 500 400 500C484.2 500 558.6999999999999 458.35 604 394.55L988.4 616.4999999999999L1038.4 529.9L644.5 302.45C648.1 285.55 650 267.95 650 250C650 232.85 648.3 216.15 645 200H1050V100L200 99.9500000000001C168.6 141.7499999999998 150 193.6999999999999 150 250C150 300.35 164.9 347.25 190.5 386.5C164.65 435.25 150 490.9 150 550C150 699.75 244.05 827.55 376.35 877.5L356.7000000000001 911.6C329.1 959.45 345.4500000000001 1020.6 393.3 1048.2L523.2 1123.2C571.0500000000001 1150.8 632.2 1134.45 659.8000000000001 1086.6zM400 400C317.15 400 250 332.85 250 250C250 232.4999999999999 253 215.65 258.5 200H541.5C547 215.65 550 232.4999999999999 550 250C550 332.85 482.85 400 400 400zM573.2 1036.6L443.3 961.6L580.8 723.45L710.6999999999999 798.45L573.1999999999999 1036.6z","horizAdvX":"1200"},"microsoft-fill":{"path":["M0 0h24v24H0z","M11.5 3v8.5H3V3h8.5zm0 18H3v-8.5h8.5V21zm1-18H21v8.5h-8.5V3zm8.5 9.5V21h-8.5v-8.5H21z"],"unicode":"","glyph":"M575 1050V625H150V1050H575zM575 150H150V575H575V150zM625 1050H1050V625H625V1050zM1050 575V150H625V575H1050z","horizAdvX":"1200"},"microsoft-line":{"path":["M0 0h24v24H0z","M11 5H5v6h6V5zm2 0v6h6V5h-6zm6 8h-6v6h6v-6zm-8 6v-6H5v6h6zM3 3h18v18H3V3z"],"unicode":"","glyph":"M550 950H250V650H550V950zM650 950V650H950V950H650zM950 550H650V250H950V550zM550 250V550H250V250H550zM150 1050H1050V150H150V1050z","horizAdvX":"1200"},"mind-map":{"path":["M0 0H24V24H0z","M18 3c1.657 0 3 1.343 3 3s-1.343 3-3 3h-3c-1.306 0-2.417-.834-2.829-2H11c-1.1 0-2 .9-2 2v.171c1.166.412 2 1.523 2 2.829 0 1.306-.834 2.417-2 2.829V15c0 1.1.9 2 2 2h1.17c.412-1.165 1.524-2 2.83-2h3c1.657 0 3 1.343 3 3s-1.343 3-3 3h-3c-1.306 0-2.417-.834-2.829-2H11c-2.21 0-4-1.79-4-4H5c-1.657 0-3-1.343-3-3s1.343-3 3-3h2c0-2.21 1.79-4 4-4h1.17c.412-1.165 1.524-2 2.83-2h3zm0 14h-3c-.552 0-1 .448-1 1s.448 1 1 1h3c.552 0 1-.448 1-1s-.448-1-1-1zM8 11H5c-.552 0-1 .448-1 1s.448 1 1 1h3c.552 0 1-.448 1-1s-.448-1-1-1zm10-6h-3c-.552 0-1 .448-1 1s.448 1 1 1h3c.552 0 1-.448 1-1s-.448-1-1-1z"],"unicode":"","glyph":"M900 1050C982.85 1050 1050 982.85 1050 900S982.85 750 900 750H750C684.6999999999999 750 629.15 791.7 608.55 850H550C495 850 450 805 450 750V741.45C508.3 720.8499999999999 550 665.3000000000001 550 600C550 534.6999999999999 508.3 479.15 450 458.55V450C450 394.9999999999999 495 350 550 350H608.5C629.1 408.25 684.6999999999999 450 750 450H900C982.85 450 1050 382.85 1050 300S982.85 150 900 150H750C684.6999999999999 150 629.15 191.6999999999999 608.55 250H550C439.5 250 350 339.5 350 450H250C167.15 450 100 517.15 100 600S167.15 750 250 750H350C350 860.5 439.5 950 550 950H608.5C629.1 1008.25 684.6999999999999 1050 750 1050H900zM900 350H750C722.4 350 700 327.6 700 300S722.4 250 750 250H900C927.6 250 950 272.4 950 300S927.6 350 900 350zM400 650H250C222.4 650 200 627.6 200 600S222.4 550 250 550H400C427.6 550 450 572.4 450 600S427.6 650 400 650zM900 950H750C722.4 950 700 927.6 700 900S722.4 850 750 850H900C927.6 850 950 872.4000000000001 950 900S927.6 950 900 950z","horizAdvX":"1200"},"mini-program-fill":{"path":["M0 0h24v24H0z","M15.84 12.691l-.067.02a1.522 1.522 0 0 1-.414.062c-.61 0-.954-.412-.77-.921.136-.372.491-.686.925-.831.672-.245 1.142-.804 1.142-1.455 0-.877-.853-1.587-1.905-1.587s-1.904.71-1.904 1.587v4.868c0 1.17-.679 2.197-1.694 2.778a3.829 3.829 0 0 1-1.904.502c-1.984 0-3.598-1.471-3.598-3.28 0-.576.164-1.117.451-1.587.444-.73 1.184-1.287 2.07-1.541a1.55 1.55 0 0 1 .46-.073c.612 0 .958.414.773.924-.126.347-.466.645-.861.803a2.162 2.162 0 0 0-.139.052c-.628.26-1.061.798-1.061 1.422 0 .877.853 1.587 1.905 1.587s1.904-.71 1.904-1.587V9.566c0-1.17.679-2.197 1.694-2.778a3.829 3.829 0 0 1 1.904-.502c1.984 0 3.598 1.471 3.598 3.28 0 .576-.164 1.117-.451 1.587-.442.726-1.178 1.282-2.058 1.538zM2 12c0 5.523 4.477 10 10 10s10-4.477 10-10S17.523 2 12 2 2 6.477 2 12z"],"unicode":"","glyph":"M792 565.4499999999999L788.65 564.4499999999999A76.1 76.1 0 0 0 767.95 561.35C737.45 561.35 720.25 581.95 729.45 607.4C736.25 626 754 641.6999999999999 775.7 648.9499999999999C809.3 661.1999999999999 832.8000000000001 689.15 832.8000000000001 721.7C832.8000000000001 765.55 790.1500000000001 801.05 737.5500000000002 801.05S642.3500000000001 765.55 642.3500000000001 721.7V478.3C642.3500000000001 419.8 608.4000000000001 368.4500000000001 557.6500000000001 339.4A191.45000000000002 191.45000000000002 0 0 0 462.4500000000001 314.3000000000001C363.2500000000001 314.3000000000001 282.5500000000002 387.85 282.5500000000002 478.3000000000001C282.5500000000002 507.1 290.7500000000001 534.15 305.1000000000001 557.65C327.3000000000002 594.1500000000001 364.3000000000002 622.0000000000001 408.6000000000002 634.7A77.5 77.5 0 0 0 431.6000000000002 638.35C462.2000000000002 638.35 479.5000000000002 617.6500000000001 470.2500000000002 592.1500000000001C463.9500000000002 574.8000000000001 446.9500000000002 559.9000000000001 427.2000000000001 552A108.1 108.1 0 0 1 420.2500000000002 549.4000000000001C388.8500000000002 536.4000000000001 367.2000000000002 509.5000000000001 367.2000000000002 478.3000000000001C367.2000000000002 434.4500000000001 409.8500000000002 398.95 462.4500000000001 398.95S557.6500000000001 434.4500000000001 557.6500000000001 478.3V721.7C557.6500000000001 780.1999999999999 591.6000000000001 831.55 642.35 860.5999999999999A191.45000000000002 191.45000000000002 0 0 0 737.5500000000001 885.7C836.75 885.7 917.45 812.15 917.45 721.7C917.45 692.8999999999999 909.2499999999998 665.85 894.9 642.35C872.8 606.05 836 578.25 792 565.4499999999999zM100 600C100 323.85 323.85 100 600 100S1100 323.85 1100 600S876.15 1100 600 1100S100 876.15 100 600z","horizAdvX":"1200"},"mini-program-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-6a3.5 3.5 0 1 1-4.977-3.174 1 1 0 1 1 .845 1.813A1.5 1.5 0 1 0 11 14v-4a3.5 3.5 0 1 1 4.977 3.174 1 1 0 0 1-.845-1.813A1.5 1.5 0 1 0 13 10v4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 500A175 175 0 1 0 401.15 658.6999999999999A50 50 0 1 0 443.4000000000001 568.05A75 75 0 1 1 550 500V700A175 175 0 1 0 798.85 541.3000000000001A50 50 0 0 0 756.6 631.95A75 75 0 1 1 650 700V500z","horizAdvX":"1200"},"mist-fill":{"path":["M0 0h24v24H0z","M4 4h4v2H4V4zm12 15h4v2h-4v-2zM2 9h10v2H2V9zm12 0h6v2h-6V9zM4 14h6v2H4v-2zm8 0h10v2H12v-2zM10 4h12v2H10V4zM2 19h12v2H2v-2z"],"unicode":"","glyph":"M200 1000H400V900H200V1000zM800 250H1000V150H800V250zM100 750H600V650H100V750zM700 750H1000V650H700V750zM200 500H500V400H200V500zM600 500H1100V400H600V500zM500 1000H1100V900H500V1000zM100 250H700V150H100V250z","horizAdvX":"1200"},"mist-line":{"path":["M0 0h24v24H0z","M4 4h4v2H4V4zm12 15h4v2h-4v-2zM2 9h5v2H2V9zm7 0h3v2H9V9zm5 0h6v2h-6V9zM4 14h6v2H4v-2zm8 0h3v2h-3v-2zm5 0h5v2h-5v-2zM10 4h12v2H10V4zM2 19h12v2H2v-2z"],"unicode":"","glyph":"M200 1000H400V900H200V1000zM800 250H1000V150H800V250zM100 750H350V650H100V750zM450 750H600V650H450V750zM700 750H1000V650H700V750zM200 500H500V400H200V500zM600 500H750V400H600V500zM850 500H1100V400H850V500zM500 1000H1100V900H500V1000zM100 250H700V150H100V250z","horizAdvX":"1200"},"money-cny-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm10 10v-1h3v-2h-2.586l2.122-2.121-1.415-1.415L12 8.586 9.879 6.464 8.464 7.88 10.586 10H8v2h3v1H8v2h3v2h2v-2h3v-2h-3z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM650 550V600H800V700H670.6999999999999L776.8 806.05L706.05 876.8L600 770.7L493.95 876.8L423.2000000000001 806L529.3000000000001 700H400V600H550V550H400V450H550V350H650V450H800V550H650z","horizAdvX":"1200"},"money-cny-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm9 8h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 7.879 9.88 6.464 12 8.586l2.121-2.122 1.415 1.415L13.414 10H16v2h-3v1z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM650 550H800V450H650V350H550V450H400V550H550V600H400V700H529.3000000000001L423.2000000000001 806.05L494.0000000000001 876.8L600 770.7L706.0500000000001 876.8L776.8000000000001 806.05L670.6999999999999 700H800V600H650V550z","horizAdvX":"1200"},"money-cny-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1-9v-1h3v-2h-2.586l2.122-2.121-1.415-1.415L12 8.586 9.879 6.464 8.464 7.88 10.586 10H8v2h3v1H8v2h3v2h2v-2h3v-2h-3z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM650 550V600H800V700H670.6999999999999L776.8 806.05L706.05 876.8L600 770.7L493.95 876.8L423.2000000000001 806L529.3000000000001 700H400V600H550V550H400V450H550V350H650V450H800V550H650z","horizAdvX":"1200"},"money-cny-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-7h3v2h-3v2h-2v-2H8v-2h3v-1H8v-2h2.586L8.464 7.879 9.88 6.464 12 8.586l2.121-2.122 1.415 1.415L13.414 10H16v2h-3v1z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 550H800V450H650V350H550V450H400V550H550V600H400V700H529.3000000000001L423.2000000000001 806.05L494.0000000000001 876.8L600 770.7L706.0500000000001 876.8L776.8000000000001 806.05L670.6999999999999 700H800V600H650V550z","horizAdvX":"1200"},"money-dollar-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5.5 11v2H11v2h2v-2h1a2.5 2.5 0 1 0 0-5h-4a.5.5 0 1 1 0-1h5.5V8H13V6h-2v2h-1a2.5 2.5 0 0 0 0 5h4a.5.5 0 1 1 0 1H8.5z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM425 500V400H550V300H650V400H700A125 125 0 1 1 700 650H500A25 25 0 1 0 500 700H775V800H650V900H550V800H500A125 125 0 0 1 500 550H700A25 25 0 1 0 700 500H425z","horizAdvX":"1200"},"money-dollar-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm4.5 9H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V6h2v2h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V900H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500z","horizAdvX":"1200"},"money-dollar-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.5-8v2H11v2h2v-2h1a2.5 2.5 0 1 0 0-5h-4a.5.5 0 1 1 0-1h5.5V8H13V6h-2v2h-1a2.5 2.5 0 0 0 0 5h4a.5.5 0 1 1 0 1H8.5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM425 500V400H550V300H650V400H700A125 125 0 1 1 700 650H500A25 25 0 1 0 500 700H775V800H650V900H550V800H500A125 125 0 0 1 500 550H700A25 25 0 1 0 700 500H425z","horizAdvX":"1200"},"money-dollar-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-3.5-6H14a.5.5 0 1 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V6h2v2h2.5v2H10a.5.5 0 1 0 0 1h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM425 500H700A25 25 0 1 1 700 550H500A125 125 0 1 0 500 800H550V900H650V800H775V700H500A25 25 0 1 1 500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500z","horizAdvX":"1200"},"money-euro-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7.05 8a2.5 2.5 0 0 1 4.064-1.41l1.701-1.133A4.5 4.5 0 0 0 8.028 11H7v2h1.027a4.5 4.5 0 0 0 7.788 2.543l-1.701-1.134A2.5 2.5 0 0 1 10.05 13l4.95.001v-2h-4.95z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM502.5000000000001 650A125 125 0 0 0 705.7 720.5L790.7500000000001 777.15A225 225 0 0 1 401.4000000000001 650H350V550H401.35A225 225 0 0 1 790.75 422.85L705.6999999999999 479.5500000000001A125 125 0 0 0 502.5000000000001 550L750 549.95V649.95H502.5000000000001z","horizAdvX":"1200"},"money-euro-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm6.05 6H15v2h-4.95a2.5 2.5 0 0 0 4.064 1.41l1.7 1.133A4.5 4.5 0 0 1 8.028 13H7v-2h1.027a4.5 4.5 0 0 1 7.788-2.543L14.114 9.59A2.5 2.5 0 0 0 10.05 11z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM502.5000000000001 650H750V550H502.5000000000001A125 125 0 0 1 705.7 479.5L790.7 422.85A225 225 0 0 0 401.4000000000001 550H350V650H401.35A225 225 0 0 0 790.75 777.15L705.7 720.5A125 125 0 0 1 502.5000000000001 650z","horizAdvX":"1200"},"money-euro-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1.95-11a2.5 2.5 0 0 1 4.064-1.41l1.701-1.133A4.5 4.5 0 0 0 8.028 11H7v2h1.027a4.5 4.5 0 0 0 7.788 2.543l-1.701-1.134A2.5 2.5 0 0 1 10.05 13l4.95.001v-2h-4.95z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM502.5000000000001 650A125 125 0 0 0 705.7 720.5L790.7500000000001 777.15A225 225 0 0 1 401.4000000000001 650H350V550H401.35A225 225 0 0 1 790.75 422.85L705.6999999999999 479.5500000000001A125 125 0 0 0 502.5000000000001 550L750 549.95V649.95H502.5000000000001z","horizAdvX":"1200"},"money-euro-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1.95-9H15v2h-4.95a2.5 2.5 0 0 0 4.064 1.41l1.7 1.133A4.5 4.5 0 0 1 8.028 13H7v-2h1.027a4.5 4.5 0 0 1 7.788-2.543L14.114 9.59A2.5 2.5 0 0 0 10.05 11z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM502.5000000000001 650H750V550H502.5000000000001A125 125 0 0 1 705.7 479.5L790.7 422.85A225 225 0 0 0 401.4000000000001 550H350V650H401.35A225 225 0 0 0 790.75 777.15L705.7 720.5A125 125 0 0 1 502.5000000000001 650z","horizAdvX":"1200"},"money-pound-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 10v2H8v2h8v-2h-5v-2h3v-2h-3v-1a1.5 1.5 0 0 1 2.76-.815l1.986-.496A3.501 3.501 0 0 0 9 10v1H8v2h1z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 550V450H400V350H800V450H550V550H700V650H550V700A75 75 0 0 0 688 740.75L787.3000000000001 765.55A175.04999999999998 175.04999999999998 0 0 1 450 700V650H400V550H450z","horizAdvX":"1200"},"money-pound-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm5 8H8v-2h1v-1a3.5 3.5 0 0 1 6.746-1.311l-1.986.496A1.499 1.499 0 0 0 11 10v1h3v2h-3v2h5v2H8v-2h1v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM450 550H400V650H450V700A175 175 0 0 0 787.3000000000001 765.55L688 740.75A74.95000000000002 74.95000000000002 0 0 1 550 700V650H700V550H550V450H800V350H400V450H450V550z","horizAdvX":"1200"},"money-pound-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3-9v2H8v2h8v-2h-5v-2h3v-2h-3v-1a1.5 1.5 0 0 1 2.76-.815l1.986-.496A3.501 3.501 0 0 0 9 10v1H8v2h1z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM450 550V450H400V350H800V450H550V550H700V650H550V700A75 75 0 0 0 688 740.75L787.3000000000001 765.55A175.04999999999998 175.04999999999998 0 0 1 450 700V650H400V550H450z","horizAdvX":"1200"},"money-pound-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-3-7H8v-2h1v-1a3.5 3.5 0 0 1 6.746-1.311l-1.986.496A1.499 1.499 0 0 0 11 10v1h3v2h-3v2h5v2H8v-2h1v-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 550H400V650H450V700A175 175 0 0 0 787.3000000000001 765.55L688 740.75A74.95000000000002 74.95000000000002 0 0 1 550 700V650H700V550H550V450H800V350H400V450H450V550z","horizAdvX":"1200"},"moon-clear-fill":{"path":["M0 0h24v24H0z","M9.822 2.238a9 9 0 0 0 11.94 11.94C20.768 18.654 16.775 22 12 22 6.477 22 2 17.523 2 12c0-4.775 3.346-8.768 7.822-9.762zm8.342.053L19 2.5v1l-.836.209a2 2 0 0 0-1.455 1.455L16.5 6h-1l-.209-.836a2 2 0 0 0-1.455-1.455L13 3.5v-1l.836-.209A2 2 0 0 0 15.29.836L15.5 0h1l.209.836a2 2 0 0 0 1.455 1.455zm5 5L24 7.5v1l-.836.209a2 2 0 0 0-1.455 1.455L21.5 11h-1l-.209-.836a2 2 0 0 0-1.455-1.455L18 8.5v-1l.836-.209a2 2 0 0 0 1.455-1.455L20.5 5h1l.209.836a2 2 0 0 0 1.455 1.455z"],"unicode":"","glyph":"M491.1 1088.1A450 450 0 0 1 1088.1 491.1C1038.4 267.3 838.7499999999999 100 600 100C323.85 100 100 323.85 100 600C100 838.75 267.3 1038.4 491.1 1088.1zM908.2 1085.45L950 1075V1025L908.2 1014.55A100 100 0 0 1 835.4500000000002 941.8L825 900H775L764.5500000000001 941.8A100 100 0 0 1 691.8000000000001 1014.55L650 1025V1075L691.8000000000001 1085.45A100 100 0 0 1 764.5 1158.2L775 1200H825L835.4499999999999 1158.2A100 100 0 0 1 908.2 1085.45zM1158.2 835.45L1200 825V775L1158.2 764.55A100 100 0 0 1 1085.4500000000003 691.8L1075 650H1025L1014.55 691.8A100 100 0 0 1 941.8 764.55L900 775V825L941.8 835.45A100 100 0 0 1 1014.5499999999998 908.2L1025 950H1075L1085.45 908.2A100 100 0 0 1 1158.2 835.45z","horizAdvX":"1200"},"moon-clear-line":{"path":["M0 0h24v24H0z","M10 6a8 8 0 0 0 11.955 6.956C21.474 18.03 17.2 22 12 22 6.477 22 2 17.523 2 12c0-5.2 3.97-9.474 9.044-9.955A7.963 7.963 0 0 0 10 6zm-6 6a8 8 0 0 0 8 8 8.006 8.006 0 0 0 6.957-4.045c-.316.03-.636.045-.957.045-5.523 0-10-4.477-10-10 0-.321.015-.64.045-.957A8.006 8.006 0 0 0 4 12zm14.164-9.709L19 2.5v1l-.836.209a2 2 0 0 0-1.455 1.455L16.5 6h-1l-.209-.836a2 2 0 0 0-1.455-1.455L13 3.5v-1l.836-.209A2 2 0 0 0 15.29.836L15.5 0h1l.209.836a2 2 0 0 0 1.455 1.455zm5 5L24 7.5v1l-.836.209a2 2 0 0 0-1.455 1.455L21.5 11h-1l-.209-.836a2 2 0 0 0-1.455-1.455L18 8.5v-1l.836-.209a2 2 0 0 0 1.455-1.455L20.5 5h1l.209.836a2 2 0 0 0 1.455 1.455z"],"unicode":"","glyph":"M500 900A400 400 0 0 1 1097.75 552.2C1073.7 298.5 860 100 600 100C323.85 100 100 323.85 100 600C100 860 298.5000000000001 1073.7 552.2 1097.75A398.15 398.15 0 0 1 500 900zM200 600A400 400 0 0 1 600 200A400.3 400.3 0 0 1 947.85 402.25C932.05 400.75 916.05 400 900 400C623.85 400 400 623.85 400 900C400 916.05 400.75 932 402.25 947.85A400.3 400.3 0 0 1 200 600zM908.2 1085.45L950 1075V1025L908.2 1014.55A100 100 0 0 1 835.4500000000002 941.8L825 900H775L764.5500000000001 941.8A100 100 0 0 1 691.8000000000001 1014.55L650 1025V1075L691.8000000000001 1085.45A100 100 0 0 1 764.5 1158.2L775 1200H825L835.4499999999999 1158.2A100 100 0 0 1 908.2 1085.45zM1158.2 835.45L1200 825V775L1158.2 764.55A100 100 0 0 1 1085.4500000000003 691.8L1075 650H1025L1014.55 691.8A100 100 0 0 1 941.8 764.55L900 775V825L941.8 835.45A100 100 0 0 1 1014.5499999999998 908.2L1025 950H1075L1085.45 908.2A100 100 0 0 1 1158.2 835.45z","horizAdvX":"1200"},"moon-cloudy-fill":{"path":["M0 0h24v24H0z","M8.67 5.007a7 7 0 0 1 7.55-3.901 4.5 4.5 0 0 0 5.674 5.674c.07.396.106.804.106 1.22a6.969 6.969 0 0 1-.865 3.373A5.5 5.5 0 0 1 17.5 21H9a8 8 0 0 1-.33-15.993zm2.177.207a8.016 8.016 0 0 1 5.61 4.885 5.529 5.529 0 0 1 2.96.245c.226-.425.393-.885.488-1.37a6.502 6.502 0 0 1-5.878-5.88 5.003 5.003 0 0 0-3.18 2.12z"],"unicode":"","glyph":"M433.5 949.65A350 350 0 0 0 811 1144.7A225 225 0 0 1 1094.6999999999998 861C1098.1999999999998 841.2 1100 820.8 1100 800A348.45 348.45 0 0 0 1056.75 631.3499999999999A275 275 0 0 0 875 150H450A400 400 0 0 0 433.5 949.65zM542.35 939.3A400.8 400.8 0 0 0 822.85 695.05A276.45000000000005 276.45000000000005 0 0 0 970.8500000000003 682.8000000000001C982.15 704.0500000000001 990.5000000000002 727.05 995.25 751.3A325.1 325.1 0 0 0 701.35 1045.3A250.14999999999998 250.14999999999998 0 0 1 542.35 939.3z","horizAdvX":"1200"},"moon-cloudy-line":{"path":["M0 0h24v24H0z","M8.67 5.007a7 7 0 0 1 7.55-3.901 4.5 4.5 0 0 0 5.674 5.674c.07.396.106.804.106 1.22a6.969 6.969 0 0 1-.865 3.373A5.5 5.5 0 0 1 17.5 21H9a8 8 0 0 1-.33-15.993zm2.177.207a8.016 8.016 0 0 1 5.61 4.885 5.529 5.529 0 0 1 2.96.245c.226-.425.393-.885.488-1.37a6.502 6.502 0 0 1-5.878-5.88 5.003 5.003 0 0 0-3.18 2.12zM17.5 19a3.5 3.5 0 1 0-2.5-5.95V13a6 6 0 1 0-6 6h8.5z"],"unicode":"","glyph":"M433.5 949.65A350 350 0 0 0 811 1144.7A225 225 0 0 1 1094.6999999999998 861C1098.1999999999998 841.2 1100 820.8 1100 800A348.45 348.45 0 0 0 1056.75 631.3499999999999A275 275 0 0 0 875 150H450A400 400 0 0 0 433.5 949.65zM542.35 939.3A400.8 400.8 0 0 0 822.85 695.05A276.45000000000005 276.45000000000005 0 0 0 970.8500000000003 682.8000000000001C982.15 704.0500000000001 990.5000000000002 727.05 995.25 751.3A325.1 325.1 0 0 0 701.35 1045.3A250.14999999999998 250.14999999999998 0 0 1 542.35 939.3zM875 250A175 175 0 1 1 750 547.5V550A300 300 0 1 1 450 250H875z","horizAdvX":"1200"},"moon-fill":{"path":["M0 0h24v24H0z","M11.38 2.019a7.5 7.5 0 1 0 10.6 10.6C21.662 17.854 17.316 22 12.001 22 6.477 22 2 17.523 2 12c0-5.315 4.146-9.661 9.38-9.981z"],"unicode":"","glyph":"M569 1099.05A375 375 0 1 1 1099 569.05C1083.1 307.3000000000001 865.8 100 600.05 100C323.85 100 100 323.85 100 600C100 865.75 307.3 1083.05 569 1099.05z","horizAdvX":"1200"},"moon-foggy-fill":{"path":["M0 0h24v24H0z","M16 20.334V18h-2v-4H3.332A9.511 9.511 0 0 1 3 11.5c0-4.56 3.213-8.37 7.5-9.289a8 8 0 0 0 11.49 9.724 9.505 9.505 0 0 1-5.99 8.4zM7 20h7v2H7v-2zm-5-4h10v2H2v-2z"],"unicode":"","glyph":"M800 183.3000000000001V300H700V500H166.6A475.54999999999995 475.54999999999995 0 0 0 150 625C150 853 310.65 1043.5 525 1089.45A400 400 0 0 1 1099.5 603.25A475.25000000000006 475.25000000000006 0 0 0 800 183.25zM350 200H700V100H350V200zM100 400H600V300H100V400z","horizAdvX":"1200"},"moon-foggy-line":{"path":["M0 0h24v24H0z","M16 20.334v-2.199a7.522 7.522 0 0 0 3.623-4.281 9 9 0 0 1-10.622-8.99A7.518 7.518 0 0 0 5.151 10H3.117a9.505 9.505 0 0 1 8.538-7.963 7 7 0 0 0 10.316 8.728A9.503 9.503 0 0 1 16 20.335zM7 20h7v2H7v-2zm-3-8h6v2H4v-2zm-2 4h10v2H2v-2z"],"unicode":"","glyph":"M800 183.3000000000001V293.2500000000001A376.1 376.1 0 0 1 981.15 507.3000000000001A450 450 0 0 0 450.0500000000001 956.8A375.9 375.9 0 0 1 257.55 700H155.85A475.25000000000006 475.25000000000006 0 0 0 582.75 1098.15A350 350 0 0 1 1098.5500000000002 661.75A475.15000000000003 475.15000000000003 0 0 0 800 183.25zM350 200H700V100H350V200zM200 600H500V500H200V600zM100 400H600V300H100V400z","horizAdvX":"1200"},"moon-line":{"path":["M0 0h24v24H0z","M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"],"unicode":"","glyph":"M500 850A350 350 0 0 1 1100 605V600C1100 323.85 876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100H605A348.95 348.95 0 0 1 500 850zM200 600A400 400 0 0 1 953.1 411.9A450 450 0 0 0 411.9 953.1A399.94999999999993 399.94999999999993 0 0 1 200 600z","horizAdvX":"1200"},"more-2-fill":{"path":["M0 0h24v24H0z","M12 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M600 1050C545 1050 500 1005 500 950S545 850 600 850S700 895 700 950S655 1050 600 1050zM600 350C545 350 500 305.0000000000001 500 250S545 150 600 150S700 194.9999999999999 700 250S655 350 600 350zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"more-2-line":{"path":["M0 0h24v24H0z","M12 3c-.825 0-1.5.675-1.5 1.5S11.175 6 12 6s1.5-.675 1.5-1.5S12.825 3 12 3zm0 15c-.825 0-1.5.675-1.5 1.5S11.175 21 12 21s1.5-.675 1.5-1.5S12.825 18 12 18zm0-7.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5z"],"unicode":"","glyph":"M600 1050C558.75 1050 525 1016.25 525 975S558.75 900 600 900S675 933.75 675 975S641.25 1050 600 1050zM600 300C558.75 300 525 266.25 525 225S558.75 150 600 150S675 183.75 675 225S641.25 300 600 300zM600 675C558.75 675 525 641.25 525 600S558.75 525 600 525S675 558.75 675 600S641.25 675 600 675z","horizAdvX":"1200"},"more-fill":{"path":["M0 0h24v24H0z","M5 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm14 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-7 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"unicode":"","glyph":"M250 700C195 700 150 655 150 600S195 500 250 500S350 545 350 600S305 700 250 700zM950 700C894.9999999999999 700 850 655 850 600S894.9999999999999 500 950 500S1050 545 1050 600S1005.0000000000002 700 950 700zM600 700C545 700 500 655 500 600S545 500 600 500S700 545 700 600S655 700 600 700z","horizAdvX":"1200"},"more-line":{"path":["M0 0h24v24H0z","M4.5 10.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S6 12.825 6 12s-.675-1.5-1.5-1.5zm15 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S21 12.825 21 12s-.675-1.5-1.5-1.5zm-7.5 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5z"],"unicode":"","glyph":"M225 675C183.75 675 150 641.25 150 600S183.75 525 225 525S300 558.75 300 600S266.25 675 225 675zM975 675C933.75 675 900 641.25 900 600S933.75 525 975 525S1050 558.75 1050 600S1016.25 675 975 675zM600 675C558.75 675 525 641.25 525 600S558.75 525 600 525S675 558.75 675 600S641.25 675 600 675z","horizAdvX":"1200"},"motorbike-fill":{"path":["M0 0h24v24H0z","M8.365 10L11.2 8H17v2h-5.144L9 12H2v-2h6.365zm.916 5.06l2.925-1.065.684 1.88-2.925 1.064a4.5 4.5 0 1 1-.684-1.88zM5.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm13 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM4 11h6l2.6-1.733.28-1.046 1.932.518-1.922 7.131-1.822-.888.118-.44L9 16l-1-2H4v-3zm12.092-5H20v3h-2.816l1.92 5.276-1.88.684L15.056 9H15v-.152L13.6 5H11V3h4l1.092 3z"],"unicode":"","glyph":"M418.25 700L560 800H850V700H592.8L450 600H100V700H418.25zM464.05 447.0000000000001L610.3 500.25L644.4999999999999 406.25L498.25 353.05A225 225 0 1 0 464.05 447.05zM275 200A125 125 0 1 1 275 450A125 125 0 0 1 275 200zM925 100A225 225 0 1 0 925 550A225 225 0 0 0 925 100zM925 200A125 125 0 1 1 925 450A125 125 0 0 1 925 200zM200 650H500L630 736.6500000000001L644 788.95L740.6 763.05L644.4999999999999 406.5L553.3999999999999 450.9L559.3 472.8999999999999L450 400L400 500H200V650zM804.5999999999999 900H1000V750H859.2L955.2 486.2L861.2 452L752.8 750H750V757.5999999999999L680 950H550V1050H750L804.5999999999999 900z","horizAdvX":"1200"},"motorbike-line":{"path":["M0 0h24v24H0z","M4 13.256V12H2v-2h6.365L11.2 8h3.491L13.6 5H11V3h4l1.092 3H20v3h-2.816l1.456 4.002a4.5 4.5 0 1 1-1.985.392L15.419 10h-.947l-1.582 5.87-.002-.001.002.006-2.925 1.064A4.5 4.5 0 1 1 4 13.256zm2-.229a4.5 4.5 0 0 1 3.281 2.033l1.957-.713L12.403 10h-.547L9 12H6v1.027zM5.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm13 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"],"unicode":"","glyph":"M200 537.2V600H100V700H418.25L560 800H734.55L680 950H550V1050H750L804.5999999999999 900H1000V750H859.2L932 549.9000000000001A225 225 0 1 0 832.75 530.3000000000001L770.95 700H723.6L644.5 406.5L644.4 406.55L644.5 406.2499999999999L498.25 353.05A225 225 0 1 0 200 537.2zM300 548.65A225 225 0 0 0 464.05 447L561.9000000000001 482.65L620.15 700H592.8L450 600H300V548.6500000000001zM275 200A125 125 0 1 1 275 450A125 125 0 0 1 275 200zM925 200A125 125 0 1 1 925 450A125 125 0 0 1 925 200z","horizAdvX":"1200"},"mouse-fill":{"path":["M0 0h24v24H0z","M11.141 2h1.718c2.014 0 3.094.278 4.072.801a5.452 5.452 0 0 1 2.268 2.268c.523.978.801 2.058.801 4.072v5.718c0 2.014-.278 3.094-.801 4.072a5.452 5.452 0 0 1-2.268 2.268c-.978.523-2.058.801-4.072.801H11.14c-2.014 0-3.094-.278-4.072-.801a5.452 5.452 0 0 1-2.268-2.268C4.278 17.953 4 16.873 4 14.859V9.14c0-2.014.278-3.094.801-4.072A5.452 5.452 0 0 1 7.07 2.801C8.047 2.278 9.127 2 11.141 2zM11 6v5h2V6h-2z"],"unicode":"","glyph":"M557.05 1100H642.95C743.65 1100 797.65 1086.1 846.5500000000001 1059.95A272.59999999999997 272.59999999999997 0 0 0 959.95 946.55C986.1 897.6500000000001 1000 843.6500000000001 1000 742.95V457.05C1000 356.3499999999999 986.1 302.35 959.95 253.45A272.59999999999997 272.59999999999997 0 0 0 846.5500000000001 140.05C797.6500000000001 113.8999999999999 743.6500000000001 100 642.95 100H557C456.3000000000001 100 402.3000000000001 113.8999999999999 353.4000000000001 140.05A272.59999999999997 272.59999999999997 0 0 0 240.0000000000001 253.45C213.9 302.35 200 356.3499999999999 200 457.05V743C200 843.6999999999999 213.9 897.6999999999999 240.05 946.6A272.59999999999997 272.59999999999997 0 0 0 353.5 1059.95C402.35 1086.1 456.35 1100 557.05 1100zM550 900V650H650V900H550z","horizAdvX":"1200"},"mouse-line":{"path":["M0 0h24v24H0z","M11.141 4c-1.582 0-2.387.169-3.128.565a3.453 3.453 0 0 0-1.448 1.448C6.169 6.753 6 7.559 6 9.14v5.718c0 1.582.169 2.387.565 3.128.337.63.818 1.111 1.448 1.448.74.396 1.546.565 3.128.565h1.718c1.582 0 2.387-.169 3.128-.565a3.453 3.453 0 0 0 1.448-1.448c.396-.74.565-1.546.565-3.128V9.14c0-1.582-.169-2.387-.565-3.128a3.453 3.453 0 0 0-1.448-1.448C15.247 4.169 14.441 4 12.86 4H11.14zm0-2h1.718c2.014 0 3.094.278 4.072.801a5.452 5.452 0 0 1 2.268 2.268c.523.978.801 2.058.801 4.072v5.718c0 2.014-.278 3.094-.801 4.072a5.452 5.452 0 0 1-2.268 2.268c-.978.523-2.058.801-4.072.801H11.14c-2.014 0-3.094-.278-4.072-.801a5.452 5.452 0 0 1-2.268-2.268C4.278 17.953 4 16.873 4 14.859V9.14c0-2.014.278-3.094.801-4.072A5.452 5.452 0 0 1 7.07 2.801C8.047 2.278 9.127 2 11.141 2zM11 6h2v5h-2V6z"],"unicode":"","glyph":"M557.05 1000C477.95 1000 437.7 991.55 400.65 971.75A172.64999999999998 172.64999999999998 0 0 1 328.25 899.35C308.45 862.35 300 822.05 300 743V457.1C300 377.9999999999999 308.45 337.75 328.25 300.7C345.1 269.2000000000001 369.15 245.15 400.65 228.3C437.65 208.4999999999999 477.95 200.0499999999999 557.05 200.0499999999999H642.95C722.0500000000001 200.0499999999999 762.3000000000001 208.4999999999999 799.35 228.3A172.64999999999998 172.64999999999998 0 0 1 871.7499999999999 300.7C891.55 337.7 900 377.9999999999999 900 457.1V743C900 822.0999999999999 891.55 862.35 871.7499999999999 899.4A172.64999999999998 172.64999999999998 0 0 1 799.3499999999999 971.8C762.35 991.55 722.0500000000001 1000 643 1000H557zM557.05 1100H642.95C743.65 1100 797.65 1086.1 846.5500000000001 1059.95A272.59999999999997 272.59999999999997 0 0 0 959.95 946.55C986.1 897.6500000000001 1000 843.6500000000001 1000 742.95V457.05C1000 356.3499999999999 986.1 302.35 959.95 253.45A272.59999999999997 272.59999999999997 0 0 0 846.5500000000001 140.05C797.6500000000001 113.8999999999999 743.6500000000001 100 642.95 100H557C456.3000000000001 100 402.3000000000001 113.8999999999999 353.4000000000001 140.05A272.59999999999997 272.59999999999997 0 0 0 240.0000000000001 253.45C213.9 302.35 200 356.3499999999999 200 457.05V743C200 843.6999999999999 213.9 897.6999999999999 240.05 946.6A272.59999999999997 272.59999999999997 0 0 0 353.5 1059.95C402.35 1086.1 456.35 1100 557.05 1100zM550 900H650V650H550V900z","horizAdvX":"1200"},"movie-2-fill":{"path":["M0 0h24v24H0z","M18.001 20H20v2h-8C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.985 9.985 0 0 1-3.999 8zM12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-4 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm8 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-4 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M900.0500000000001 200H1000V100H600C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600A499.25 499.25 0 0 0 900.0500000000001 200zM600 700A100 100 0 1 1 600 900A100 100 0 0 1 600 700zM400 500A100 100 0 1 1 400 700A100 100 0 0 1 400 500zM800 500A100 100 0 1 1 800 700A100 100 0 0 1 800 500zM600 300A100 100 0 1 1 600 500A100 100 0 0 1 600 300z","horizAdvX":"1200"},"movie-2-line":{"path":["M0 0h24v24H0z","M12 20h8v2h-8C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.956 9.956 0 0 1-2 6h-2.708A8 8 0 1 0 12 20zm0-10a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-4 4a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm8 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-4 4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M600 200H1000V100H600C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600A497.8 497.8 0 0 0 1000 300H864.6000000000001A400 400 0 1 1 600 200zM600 700A100 100 0 1 0 600 900A100 100 0 0 0 600 700zM400 500A100 100 0 1 0 400 700A100 100 0 0 0 400 500zM800 500A100 100 0 1 0 800 700A100 100 0 0 0 800 500zM600 300A100 100 0 1 0 600 500A100 100 0 0 0 600 300z","horizAdvX":"1200"},"movie-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zm8.622 4.422a.4.4 0 0 0-.622.332v6.506a.4.4 0 0 0 .622.332l4.879-3.252a.4.4 0 0 0 0-.666l-4.88-3.252z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM531.1 779.25A20.000000000000004 20.000000000000004 0 0 1 500 762.65V437.35A20.000000000000004 20.000000000000004 0 0 1 531.1 420.75L775.05 583.3499999999999A20.000000000000004 20.000000000000004 0 0 1 775.05 616.6499999999999L531.05 779.2499999999999z","horizAdvX":"1200"},"movie-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm6.622 3.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM531.1 779.25L775.05 616.6500000000001A20.000000000000004 20.000000000000004 0 0 0 775.05 583.3500000000001L531.05 420.7500000000001A20.000000000000004 20.000000000000004 0 0 0 499.9999999999999 437.3500000000002V762.65A20.000000000000004 20.000000000000004 0 0 0 531.0999999999999 779.25z","horizAdvX":"1200"},"music-2-fill":{"path":["M0 0h24v24H0z","M20 3v14a4 4 0 1 1-2-3.465V6H9v11a4 4 0 1 1-2-3.465V3h13z"],"unicode":"","glyph":"M1000 1050V350A200 200 0 1 0 900 523.25V900H450V350A200 200 0 1 0 350 523.25V1050H1000z","horizAdvX":"1200"},"music-2-line":{"path":["M0 0h24v24H0z","M20 3v14a4 4 0 1 1-2-3.465V5H9v12a4 4 0 1 1-2-3.465V3h13zM5 19a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm11 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M1000 1050V350A200 200 0 1 0 900 523.25V950H450V350A200 200 0 1 0 350 523.25V1050H1000zM250 250A100 100 0 1 1 250 450A100 100 0 0 1 250 250zM800 250A100 100 0 1 1 800 450A100 100 0 0 1 800 250z","horizAdvX":"1200"},"music-fill":{"path":["M0 0h24v24H0z","M12 13.535V3h8v3h-6v11a4 4 0 1 1-2-3.465z"],"unicode":"","glyph":"M600 523.25V1050H1000V900H700V350A200 200 0 1 0 600 523.25z","horizAdvX":"1200"},"music-line":{"path":["M0 0h24v24H0z","M12 13.535V3h8v2h-6v12a4 4 0 1 1-2-3.465zM10 19a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 523.25V1050H1000V950H700V350A200 200 0 1 0 600 523.25zM500 250A100 100 0 1 1 500 450A100 100 0 0 1 500 250z","horizAdvX":"1200"},"mv-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zm10 8.178A3 3 0 1 0 14 15V7.999h3V6h-5v6.17z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM600 591.4499999999999A150 150 0 1 1 700 450V800.05H850V900H600V591.5z","horizAdvX":"1200"},"mv-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm8 7.17V6h5v2h-3v7a3 3 0 1 1-2-2.83z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM600 591.5V900H850V800H700V450A150 150 0 1 0 600 591.5z","horizAdvX":"1200"},"navigation-fill":{"path":["M0 0h24v24H0z","M2.9 2.3l18.805 6.268a.5.5 0 0 1 .028.939L13 13l-4.425 8.85a.5.5 0 0 1-.928-.086L2.26 2.911A.5.5 0 0 1 2.9 2.3z"],"unicode":"","glyph":"M145 1085L1085.25 771.6A25 25 0 0 0 1086.6499999999999 724.6500000000001L650 550L428.75 107.5A25 25 0 0 0 382.35 111.8L113 1054.45A25 25 0 0 0 145 1085z","horizAdvX":"1200"},"navigation-line":{"path":["M0 0h24v24H0z","M4.965 5.096l3.546 12.41 3.04-6.08 5.637-2.255L4.965 5.096zM2.899 2.3l18.806 6.268a.5.5 0 0 1 .028.939L13 13l-4.425 8.85a.5.5 0 0 1-.928-.086L2.26 2.911A.5.5 0 0 1 2.9 2.3z"],"unicode":"","glyph":"M248.25 945.2L425.55 324.7000000000001L577.55 628.7L859.4 741.45L248.25 945.2zM144.95 1085L1085.25 771.6A25 25 0 0 0 1086.65 724.6500000000001L650 550L428.75 107.5A25 25 0 0 0 382.35 111.8L113 1054.45A25 25 0 0 0 145 1085z","horizAdvX":"1200"},"netease-cloud-music-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1.086-10.432c.24-.84 1.075-1.541 1.99-1.648.187.694.388 1.373.545 2.063.053.23.037.495-.018.727-.213.892-1.248 1.242-1.978.685-.53-.405-.742-1.12-.539-1.827zm3.817-.197c-.125-.465-.256-.927-.393-1.42.5.13.908.36 1.255.698 1.257 1.221 1.385 3.3.294 4.731-1.135 1.49-3.155 2.134-5.028 1.605-2.302-.65-3.808-2.952-3.441-5.316.274-1.768 1.27-3.004 2.9-3.733.407-.182.58-.56.42-.93-.157-.364-.54-.504-.944-.343-2.721 1.089-4.32 4.134-3.67 6.987.713 3.118 3.495 5.163 6.675 4.859 1.732-.165 3.164-.948 4.216-2.347 1.506-2.002 1.297-4.783-.463-6.499-.666-.65-1.471-1.018-2.39-1.153-.083-.013-.217-.052-.232-.106-.087-.313-.18-.632-.206-.954-.029-.357.29-.64.65-.645.253-.003.434.13.603.3.303.3.704.322.988.062.29-.264.296-.678.018-1.008-.566-.672-1.586-.891-2.43-.523-.847.37-1.321 1.187-1.2 2.093.038.28.11.557.167.842l-.26.072c-.856.24-1.561.704-2.098 1.414-.921 1.22-.936 2.828-.041 3.947 1.274 1.594 3.747 1.284 4.523-.568.284-.676.275-1.368.087-2.065z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM545.6999999999999 621.6C557.7 663.6 599.4499999999999 698.6500000000001 645.2 704C654.55 669.3 664.6 635.35 672.45 600.85C675.1 589.3499999999999 674.3000000000001 576.1 671.55 564.5C660.9 519.9 609.15 502.3999999999999 572.65 530.2499999999999C546.15 550.4999999999999 535.55 586.2499999999999 545.6999999999999 621.5999999999999zM736.55 631.4499999999999C730.3 654.6999999999999 723.75 677.8 716.9 702.45C741.9 695.9499999999999 762.3 684.45 779.65 667.55C842.5000000000001 606.5 848.9000000000001 502.55 794.35 431C737.6 356.5 636.6 324.3000000000001 542.95 350.75C427.8500000000002 383.25 352.5500000000001 498.35 370.9000000000001 616.55C384.6000000000001 704.95 434.4000000000001 766.75 515.9000000000001 803.2C536.2500000000001 812.3 544.9000000000001 831.2 536.9000000000001 849.7C529.0500000000001 867.9 509.9 874.9 489.7 866.8499999999999C353.6500000000001 812.4 273.7 660.15 306.2000000000001 517.5C341.85 361.5999999999999 480.95 259.3499999999999 639.9499999999999 274.55C726.55 282.8 798.15 321.9500000000001 850.75 391.9000000000001C926.05 492 915.6 631.0500000000001 827.6 716.8499999999999C794.3 749.35 754.05 767.75 708.0999999999999 774.5C703.9499999999999 775.15 697.2499999999999 777.0999999999999 696.5 779.8C692.15 795.45 687.5 811.4 686.2 827.5C684.75 845.35 700.6999999999999 859.5 718.7 859.75C731.35 859.9000000000001 740.4 853.25 748.85 844.75C764 829.75 784.0500000000001 828.6500000000001 798.25 841.6500000000001C812.75 854.85 813.05 875.55 799.15 892.05C770.85 925.65 719.85 936.6 677.6500000000001 918.2C635.3000000000001 899.7 611.6 858.8499999999999 617.6500000000001 813.55C619.5500000000001 799.55 623.1500000000001 785.7 626.0000000000001 771.45L613.0000000000001 767.8500000000001C570.2 755.85 534.95 732.6500000000001 508.1000000000001 697.1500000000001C462.0500000000002 636.1500000000001 461.3000000000001 555.7500000000001 506.0500000000001 499.8000000000001C569.7500000000001 420.1000000000002 693.4000000000001 435.6 732.2 528.2C746.4000000000001 562.0000000000001 745.9500000000002 596.6000000000001 736.5500000000001 631.45z","horizAdvX":"1200"},"netease-cloud-music-line":{"path":["M0 0h24v24H0z","M10.421 11.375c-.294 1.028.012 2.064.784 2.653 1.061.81 2.565.3 2.874-.995.08-.337.103-.722.027-1.056-.23-1.001-.52-1.988-.792-2.996-1.33.154-2.543 1.172-2.893 2.394zm5.548-.287c.273 1.012.285 2.017-.127 3-1.128 2.69-4.721 3.14-6.573.826-1.302-1.627-1.28-3.961.06-5.734.78-1.032 1.804-1.707 3.048-2.054l.379-.104c-.084-.415-.188-.816-.243-1.224-.176-1.317.512-2.503 1.744-3.04 1.226-.535 2.708-.216 3.53.76.406.479.395 1.08-.025 1.464-.412.377-.996.346-1.435-.09-.247-.246-.51-.44-.877-.436-.525.006-.987.418-.945.937.037.468.173.93.3 1.386.022.078.216.135.338.153 1.334.197 2.504.731 3.472 1.676 2.558 2.493 2.861 6.531.672 9.44-1.529 2.032-3.61 3.168-6.127 3.409-4.621.44-8.664-2.53-9.7-7.058C2.515 10.255 4.84 5.831 8.795 4.25c.586-.234 1.143-.031 1.371.498.232.537-.019 1.086-.61 1.35-2.368 1.06-3.817 2.855-4.215 5.424-.533 3.433 1.656 6.776 5 7.72 2.723.77 5.658-.166 7.308-2.33 1.586-2.08 1.4-5.099-.427-6.873a3.979 3.979 0 0 0-1.823-1.013c.198.716.389 1.388.57 2.062z"],"unicode":"","glyph":"M521.05 631.25C506.35 579.85 521.65 528.05 560.25 498.6C613.3 458.0999999999999 688.5 483.5999999999999 703.95 548.3499999999999C707.95 565.1999999999999 709.1 584.4499999999999 705.3 601.15C693.8 651.1999999999999 679.3000000000001 700.55 665.7 750.95C599.2 743.25 538.5500000000001 692.3499999999999 521.05 631.25zM798.4499999999999 645.6C812.1 595 812.6999999999999 544.7500000000001 792.0999999999999 495.6C735.6999999999999 361.1 556.05 338.6000000000002 463.4499999999999 454.3000000000001C398.3499999999999 535.6500000000001 399.45 652.35 466.4499999999999 741C505.4499999999999 792.6 556.65 826.35 618.8499999999999 843.7L637.8 848.9000000000001C633.5999999999999 869.6500000000001 628.3999999999999 889.7 625.6499999999999 910.1C616.8499999999999 975.95 651.2499999999999 1035.25 712.8499999999999 1062.1000000000001C774.1499999999999 1088.8500000000001 848.2499999999998 1072.9 889.3499999999999 1024.1000000000001C909.6499999999997 1000.15 909.1 970.1 888.1 950.9C867.5000000000001 932.05 838.3000000000001 933.6 816.3500000000001 955.4C804.0000000000001 967.7 790.8500000000001 977.4 772.5 977.2C746.25 976.9 723.1500000000001 956.3 725.25 930.35C727.1000000000001 906.95 733.9000000000001 883.85 740.2500000000001 861.05C741.3500000000001 857.15 751.0500000000001 854.3 757.1500000000001 853.4000000000001C823.85 843.55 882.3500000000001 816.85 930.7500000000002 769.6000000000001C1058.65 644.95 1073.8000000000002 443.0500000000001 964.3500000000003 297.6000000000002C887.9000000000001 196.0000000000001 783.8500000000001 139.2000000000001 658.0000000000002 127.1500000000001C426.9500000000002 105.1500000000001 224.8000000000002 253.6500000000002 173.0000000000002 480.0500000000002C125.75 687.25 242 908.45 439.75 987.5C469.05 999.2 496.9 989.05 508.3 962.6C519.9 935.75 507.35 908.3 477.8000000000001 895.0999999999999C359.4000000000001 842.0999999999999 286.9500000000001 752.3499999999999 267.0500000000001 623.8999999999999C240.4000000000001 452.2499999999999 349.85 285.0999999999999 517.0500000000001 237.9C653.2 199.4 799.9500000000002 246.2 882.45 354.4000000000001C961.75 458.4000000000001 952.45 609.35 861.1 698.0500000000002A198.95 198.95 0 0 1 769.95 748.7C779.85 712.9000000000001 789.4 679.3000000000001 798.45 645.6000000000001z","horizAdvX":"1200"},"netflix-fill":{"path":["M0 0h24v24H0z","M11.29 3.814l2.02 5.707.395 1.116.007-4.81.01-4.818h4.27L18 11.871c.003 5.98-.003 10.89-.015 10.9-.012.009-.209 0-.436-.027-.989-.118-2.29-.236-3.34-.282a14.57 14.57 0 0 1-.636-.038c-.003-.004-.273-.762-.776-2.184v-.004l-2.144-6.061-.34-.954-.008 4.586c-.006 4.365-.01 4.61-.057 4.61-.163 0-1.57.09-2.04.136-.308.027-.926.09-1.37.145-.446.051-.816.085-.823.078C6.006 22.77 6 17.867 6 11.883V1.002h.005V1h4.288l.028.08c.007.016.065.176.157.437l.641 1.778.173.496-.001.023z"],"unicode":"","glyph":"M564.5 1009.3L665.4999999999999 723.9499999999999L685.2499999999999 668.15L685.5999999999999 908.65L686.0999999999999 1149.55H899.5999999999999L900 606.4499999999999C900.15 307.4500000000001 899.85 61.9499999999998 899.25 61.4500000000001C898.65 61 888.8 61.4500000000001 877.4499999999999 62.8C827.9999999999999 68.7000000000001 762.95 74.6000000000001 710.4499999999999 76.9000000000001A728.5 728.5 0 0 0 678.65 78.8C678.5 79 665 116.9000000000001 639.85 188.0000000000001V188.2000000000002L532.65 491.2500000000001L515.65 538.9500000000002L515.2500000000001 309.6500000000002C514.95 91.4000000000001 514.7500000000001 79.1500000000003 512.4000000000001 79.1500000000003C504.2500000000001 79.1500000000003 433.9000000000001 74.6500000000003 410.4000000000001 72.3500000000004C395.0000000000001 71.0000000000002 364.1000000000001 67.8500000000004 341.9000000000001 65.1000000000004C319.6000000000001 62.5500000000004 301.1000000000001 60.8500000000004 300.7500000000001 61.2000000000003C300.3 61.5 300 306.65 300 605.85V1149.9H300.25V1150H514.65L516.05 1146C516.4 1145.2 519.3 1137.2 523.9 1124.15L555.95 1035.25L564.6 1010.45L564.5500000000001 1009.3z","horizAdvX":"1200"},"netflix-line":{"path":["M0 0h24v24H0z","M15.984 17.208L16 2h2v20a7.593 7.593 0 0 0-2.02-.5L8 6.302V21.5a7.335 7.335 0 0 0-2 .5V2h2l7.984 15.208z"],"unicode":"","glyph":"M799.2 339.6000000000002L800 1100H900V100A379.65000000000003 379.65000000000003 0 0 1 799 125L400 884.9000000000001V125A366.75 366.75 0 0 1 300 100V1100H400L799.2 339.6000000000002z","horizAdvX":"1200"},"newspaper-fill":{"path":["M0 0h24v24H0z","M19 22H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v7h4v9a3 3 0 0 1-3 3zm-1-10v7a1 1 0 0 0 2 0v-7h-2zM5 6v6h6V6H5zm0 7v2h10v-2H5zm0 3v2h10v-2H5zm2-8h2v2H7V8z"],"unicode":"","glyph":"M950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V700H1100V250A150 150 0 0 0 950 100zM900 600V250A50 50 0 0 1 1000 250V600H900zM250 900V600H550V900H250zM250 550V450H750V550H250zM250 400V300H750V400H250zM350 800H450V700H350V800z","horizAdvX":"1200"},"newspaper-line":{"path":["M0 0h24v24H0z","M16 20V4H4v15a1 1 0 0 0 1 1h11zm3 2H5a3 3 0 0 1-3-3V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v7h4v9a3 3 0 0 1-3 3zm-1-10v7a1 1 0 0 0 2 0v-7h-2zM6 6h6v6H6V6zm2 2v2h2V8H8zm-2 5h8v2H6v-2zm0 3h8v2H6v-2z"],"unicode":"","glyph":"M800 200V1000H200V250A50 50 0 0 1 250 200H800zM950 100H250A150 150 0 0 0 100 250V1050A50 50 0 0 0 150 1100H850A50 50 0 0 0 900 1050V700H1100V250A150 150 0 0 0 950 100zM900 600V250A50 50 0 0 1 1000 250V600H900zM300 900H600V600H300V900zM400 800V700H500V800H400zM300 550H700V450H300V550zM300 400H700V300H300V400z","horizAdvX":"1200"},"node-tree":{"path":["M0 0H24V24H0z","M10 2c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1H8v2h5V9c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1v-1H8v6h5v-1c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1v-1H7c-.552 0-1-.448-1-1V8H4c-.552 0-1-.448-1-1V3c0-.552.448-1 1-1h6zm9 16h-4v2h4v-2zm0-8h-4v2h4v-2zM9 4H5v2h4V4z"],"unicode":"","glyph":"M500 1100C527.6 1100 550 1077.6 550 1050V850C550 822.4000000000001 527.6 800 500 800H400V700H650V750C650 777.5999999999999 672.4 800 700 800H1000C1027.6 800 1050 777.5999999999999 1050 750V550C1050 522.4 1027.6 500 1000 500H700C672.4 500 650 522.4 650 550V600H400V300H650V350C650 377.6 672.4 400 700 400H1000C1027.6 400 1050 377.6 1050 350V150C1050 122.4000000000001 1027.6 100 1000 100H700C672.4 100 650 122.4000000000001 650 150V200H350C322.4000000000001 200 300 222.4 300 250V800H200C172.4 800 150 822.4000000000001 150 850V1050C150 1077.6 172.4 1100 200 1100H500zM950 300H750V200H950V300zM950 700H750V600H950V700zM450 1000H250V900H450V1000z","horizAdvX":"1200"},"notification-2-fill":{"path":["M0 0h24v24H0z","M22 20H2v-2h1v-6.969C3 6.043 7.03 2 12 2s9 4.043 9 9.031V18h1v2zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M1100 200H100V300H150V648.45C150 897.8499999999999 351.5 1100 600 1100S1050 897.8499999999999 1050 648.4499999999999V300H1100V200zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-2-line":{"path":["M0 0h24v24H0z","M22 20H2v-2h1v-6.969C3 6.043 7.03 2 12 2s9 4.043 9 9.031V18h1v2zM5 18h14v-6.969C19 7.148 15.866 4 12 4s-7 3.148-7 7.031V18zm4.5 3h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M1100 200H100V300H150V648.45C150 897.8499999999999 351.5 1100 600 1100S1050 897.8499999999999 1050 648.4499999999999V300H1100V200zM250 300H950V648.45C950 842.6 793.3 1000 600 1000S250 842.6 250 648.45V300zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-3-fill":{"path":["M0 0h24v24H0z","M20 17h2v2H2v-2h2v-7a8 8 0 1 1 16 0v7zM9 21h6v2H9v-2z"],"unicode":"","glyph":"M1000 350H1100V250H100V350H200V700A400 400 0 1 0 1000 700V350zM450 150H750V50H450V150z","horizAdvX":"1200"},"notification-3-line":{"path":["M0 0h24v24H0z","M20 17h2v2H2v-2h2v-7a8 8 0 1 1 16 0v7zm-2 0v-7a6 6 0 1 0-12 0v7h12zm-9 4h6v2H9v-2z"],"unicode":"","glyph":"M1000 350H1100V250H100V350H200V700A400 400 0 1 0 1000 700V350zM900 350V700A300 300 0 1 1 300 700V350H900zM450 150H750V50H450V150z","horizAdvX":"1200"},"notification-4-fill":{"path":["M0 0h24v24H0z","M20 18.667l.4.533a.5.5 0 0 1-.4.8H4a.5.5 0 0 1-.4-.8l.4-.533V10a8 8 0 1 1 16 0v8.667zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M1000 266.6499999999999L1019.9999999999998 239.9999999999999A25 25 0 0 0 1000 199.9999999999998H200A25 25 0 0 0 180 239.9999999999999L200 266.6499999999999V700A400 400 0 1 0 1000 700V266.6499999999999zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-4-line":{"path":["M0 0h24v24H0z","M18 10a6 6 0 1 0-12 0v8h12v-8zm2 8.667l.4.533a.5.5 0 0 1-.4.8H4a.5.5 0 0 1-.4-.8l.4-.533V10a8 8 0 1 1 16 0v8.667zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M900 700A300 300 0 1 1 300 700V300H900V700zM1000 266.6499999999999L1019.9999999999998 239.9999999999999A25 25 0 0 0 1000 199.9999999999998H200A25 25 0 0 0 180 239.9999999999999L200 266.6499999999999V700A400 400 0 1 0 1000 700V266.6499999999999zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-badge-fill":{"path":["M0 0h24v24H0z","M13.341 4A6 6 0 0 0 21 11.659V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h9.341zM19 10a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M667.05 1000A300 300 0 0 1 1050 617.05V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H667.05zM950 700A200 200 0 1 0 950 1100A200 200 0 0 0 950 700z","horizAdvX":"1200"},"notification-badge-line":{"path":["M0 0h24v24H0z","M13.341 4A5.99 5.99 0 0 0 13 6H5v14h14v-8a5.99 5.99 0 0 0 2-.341V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h9.341zM19 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"],"unicode":"","glyph":"M667.05 1000A299.50000000000006 299.50000000000006 0 0 1 650 900H250V200H950V600A299.50000000000006 299.50000000000006 0 0 1 1050 617.05V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H667.05zM950 800A100 100 0 1 1 950 1000A100 100 0 0 1 950 800zM950 700A200 200 0 1 0 950 1100A200 200 0 0 0 950 700z","horizAdvX":"1200"},"notification-fill":{"path":["M0 0h24v24H0z","M12 2c4.97 0 9 4.043 9 9.031V20H3v-8.969C3 6.043 7.03 2 12 2zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M600 1100C848.5 1100 1050 897.8499999999999 1050 648.4499999999999V200H150V648.4499999999999C150 897.8499999999999 351.5 1100 600 1100zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-line":{"path":["M0 0h24v24H0z","M5 18h14v-6.969C19 7.148 15.866 4 12 4s-7 3.148-7 7.031V18zm7-16c4.97 0 9 4.043 9 9.031V20H3v-8.969C3 6.043 7.03 2 12 2zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M250 300H950V648.45C950 842.6 793.3 1000 600 1000S250 842.6 250 648.45V300zM600 1100C848.5 1100 1050 897.8499999999999 1050 648.4499999999999V200H150V648.4499999999999C150 897.8499999999999 351.5 1100 600 1100zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-off-fill":{"path":["M0 0h24v24H0z","M18.586 20H4a.5.5 0 0 1-.4-.8l.4-.533V10c0-1.33.324-2.584.899-3.687L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L18.586 20zM20 15.786L7.559 3.345A8 8 0 0 1 20 10v5.786zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M929.3 200H200A25 25 0 0 0 180 240L200 266.6500000000001V700C200 766.5 216.2 829.2 244.95 884.3499999999999L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L929.3 200zM1000 410.7000000000001L377.95 1032.75A400 400 0 0 0 1000 700V410.7000000000001zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"notification-off-line":{"path":["M0 0h24v24H0z","M18.586 20H4a.5.5 0 0 1-.4-.8l.4-.533V10c0-1.33.324-2.584.899-3.687L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414L18.586 20zM6.408 7.822A5.985 5.985 0 0 0 6 10v8h10.586L6.408 7.822zM20 15.786l-2-2V10a6 6 0 0 0-8.99-5.203L7.56 3.345A8 8 0 0 1 20 10v5.786zM9.5 21h5a2.5 2.5 0 1 1-5 0z"],"unicode":"","glyph":"M929.3 200H200A25 25 0 0 0 180 240L200 266.6500000000001V700C200 766.5 216.2 829.2 244.95 884.3499999999999L69.65 1059.6L140.4 1130.35L1130.35 140.3499999999999L1059.6 69.6499999999999L929.3 200zM320.4000000000001 808.9A299.25 299.25 0 0 1 300 700V300H829.3L320.4000000000001 808.9zM1000 410.7000000000001L900 510.7V700A300 300 0 0 1 450.5 960.15L378 1032.75A400 400 0 0 0 1000 700V410.7000000000001zM475 150H725A125 125 0 1 0 475 150z","horizAdvX":"1200"},"npmjs-fill":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-3 4H7v10h5V9.5h2.5V17H17V7z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM850 850H350V350H600V725H725V350H850V850z","horizAdvX":"1200"},"npmjs-line":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-1 2H5v14h14V5zm-2 2v10h-2.5V9.5H12V17H7V7h10z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM950 950H250V250H950V950zM850 850V350H725V725H600V350H350V850H850z","horizAdvX":"1200"},"number-0":{"path":["M0 0h24v24H0z","M12 1.5c1.321 0 2.484.348 3.447.994.963.645 1.726 1.588 2.249 2.778.522 1.19.804 2.625.804 4.257v4.942c0 1.632-.282 3.068-.804 4.257-.523 1.19-1.286 2.133-2.25 2.778-.962.646-2.125.994-3.446.994-1.321 0-2.484-.348-3.447-.994-.963-.645-1.726-1.588-2.249-2.778-.522-1.19-.804-2.625-.804-4.257V9.529c0-1.632.282-3.068.804-4.257.523-1.19 1.286-2.133 2.25-2.778C9.515 1.848 10.678 1.5 12 1.5zm0 2c-.916 0-1.694.226-2.333.655-.637.427-1.158 1.07-1.532 1.92-.412.94-.635 2.108-.635 3.454v4.942c0 1.346.223 2.514.635 3.453.374.851.895 1.494 1.532 1.921.639.429 1.417.655 2.333.655.916 0 1.694-.226 2.333-.655.637-.427 1.158-1.07 1.532-1.92.412-.94.635-2.108.635-3.454V9.529c0-1.346-.223-2.514-.635-3.453-.374-.851-.895-1.494-1.532-1.921C13.694 3.726 12.916 3.5 12 3.5z"],"unicode":"","glyph":"M600 1125C666.05 1125 724.2 1107.6 772.3499999999999 1075.3C820.5 1043.05 858.6499999999999 995.9 884.8 936.4C910.8999999999997 876.9000000000001 924.9999999999998 805.15 924.9999999999998 723.55V476.45C924.9999999999998 394.8499999999999 910.8999999999997 323.05 884.8 263.5999999999999C858.6499999999999 204.0999999999999 820.4999999999998 156.9500000000001 772.3 124.7000000000001C724.1999999999999 92.3999999999999 666.05 75 599.9999999999999 75C533.9499999999999 75 475.7999999999999 92.3999999999999 427.6499999999999 124.7000000000001C379.4999999999999 156.9500000000001 341.3499999999999 204.1 315.1999999999998 263.5999999999999C289.0999999999998 323.1 274.9999999999999 394.8499999999999 274.9999999999999 476.4499999999999V723.55C274.9999999999999 805.15 289.0999999999998 876.95 315.1999999999998 936.4C341.3499999999998 995.9 379.4999999999999 1043.05 427.6999999999998 1075.3C475.75 1107.6 533.9000000000001 1125 600 1125zM600 1025C554.1999999999999 1025 515.3000000000001 1013.7 483.35 992.25C451.4999999999999 970.9 425.4500000000001 938.75 406.75 896.25C386.15 849.25 375 790.85 375 723.55V476.45C375 409.15 386.15 350.75 406.75 303.8000000000001C425.4500000000001 261.2500000000001 451.4999999999999 229.1 483.35 207.75C515.3 186.3000000000002 554.1999999999999 175 600 175C645.8000000000001 175 684.6999999999999 186.3 716.65 207.75C748.5 229.1 774.55 261.2500000000001 793.25 303.7500000000001C813.85 350.7500000000003 825 409.1500000000002 825 476.4500000000002V723.55C825 790.85 813.85 849.25 793.25 896.2C774.55 938.75 748.5 970.9 716.65 992.25C684.7 1013.7 645.8000000000001 1025 600 1025z","horizAdvX":"1200"},"number-1":{"path":["M0 0h24v24H0z","M14 1.5V22h-2V3.704L7.5 4.91V2.839l5-1.339z"],"unicode":"","glyph":"M700 1125V100H600V1014.8L375 954.5V1058.05L625 1125z","horizAdvX":"1200"},"number-2":{"path":["M0 0h24v24H0z","M16 7.5a4 4 0 1 0-8 0H6a6 6 0 1 1 10.663 3.776l-7.32 8.723L18 20v2H6v-1.127l9.064-10.802A3.982 3.982 0 0 0 16 7.5z"],"unicode":"","glyph":"M800 825A200 200 0 1 1 400 825H300A300 300 0 1 0 833.15 636.2L467.15 200.0499999999999L900 200V100H300V156.3499999999999L753.2 696.4499999999999A199.10000000000002 199.10000000000002 0 0 1 800 825z","horizAdvX":"1200"},"number-3":{"path":["M0 0h24v24H0z","M18 2v1.362L12.809 9.55a6.501 6.501 0 1 1-7.116 8.028l1.94-.486A4.502 4.502 0 0 0 16.5 16a4.5 4.5 0 0 0-6.505-4.03l-.228.122-.69-1.207L14.855 4 6.5 4V2H18z"],"unicode":"","glyph":"M900 1100V1031.9L640.4499999999999 722.5A325.05 325.05 0 1 0 284.65 321.0999999999999L381.65 345.3999999999999A225.1 225.1 0 0 1 825 400A225 225 0 0 1 499.7500000000001 601.5L488.3500000000001 595.4000000000001L453.8500000000001 655.7500000000001L742.75 1000L325 1000V1100H900z","horizAdvX":"1200"},"number-4":{"path":["M0 0h24v24H0z","M16 1.5V16h3v2h-3v4h-2v-4H4v-1.102L14 1.5h2zM14 16V5.171L6.968 16H14z"],"unicode":"","glyph":"M800 1125V400H950V300H800V100H700V300H200V355.1L700 1125H800zM700 400V941.45L348.4 400H700z","horizAdvX":"1200"},"number-5":{"path":["M0 0h24v24H0z","M18 2v2H9.3l-.677 6.445a6.5 6.5 0 1 1-2.93 7.133l1.94-.486A4.502 4.502 0 0 0 16.5 16a4.5 4.5 0 0 0-4.5-4.5c-2.022 0-3.278.639-3.96 1.53l-1.575-1.182L7.5 2H18z"],"unicode":"","glyph":"M900 1100V1000H465.0000000000001L431.1500000000001 677.75A325 325 0 1 0 284.6500000000001 321.1L381.6500000000001 345.4000000000001A225.1 225.1 0 0 1 825 400A225 225 0 0 1 600 625C498.9 625 436.1 593.0500000000001 402 548.5L323.25 607.6L375 1100H900z","horizAdvX":"1200"},"number-6":{"path":["M0 0h24v24H0z","M14.886 2l-4.438 7.686A6.5 6.5 0 1 1 6.4 12.7L12.576 2h2.31zM12 11.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9z"],"unicode":"","glyph":"M744.3 1100L522.4 715.7A325 325 0 1 0 320 565L628.8000000000001 1100H744.3000000000001zM600 625A225 225 0 1 1 600 175A225 225 0 0 1 600 625z","horizAdvX":"1200"},"number-7":{"path":["M0 0h24v24H0z","M19 2v1.5L10.763 22H8.574l8.013-18H6V2z"],"unicode":"","glyph":"M950 1100V1025L538.15 100H428.7L829.35 1000H300V1100z","horizAdvX":"1200"},"number-8":{"path":["M0 0h24v24H0z","M12 1.5a5.5 5.5 0 0 1 3.352 9.86C17.24 12.41 18.5 14.32 18.5 16.5c0 3.314-2.91 6-6.5 6s-6.5-2.686-6.5-6c0-2.181 1.261-4.09 3.147-5.141A5.5 5.5 0 0 1 12 1.5zm0 11c-2.52 0-4.5 1.828-4.5 4 0 2.172 1.98 4 4.5 4s4.5-1.828 4.5-4c0-2.172-1.98-4-4.5-4zm0-9a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7z"],"unicode":"","glyph":"M600 1125A275 275 0 0 0 767.6 632C861.9999999999999 579.5 925 484 925 375C925 209.3 779.5 75 600 75S275 209.3 275 375C275 484.0500000000001 338.05 579.5 432.35 632.05A275 275 0 0 0 600 1125zM600 575C474 575 375 483.6 375 375C375 266.4 474 175 600 175S825 266.4 825 375C825 483.6 726 575 600 575zM600 1025A175 175 0 1 1 600 675A175 175 0 0 1 600 1025z","horizAdvX":"1200"},"number-9":{"path":["M0 0h24v24H0z","M12 1.5a6.5 6.5 0 0 1 5.619 9.77l-6.196 10.729H9.114l4.439-7.686A6.5 6.5 0 1 1 12 1.5zm0 2a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9z"],"unicode":"","glyph":"M600 1125A325 325 0 0 0 880.95 636.5L571.15 100.05H455.7L677.6500000000001 484.35A325 325 0 1 0 600 1125zM600 1025A225 225 0 1 1 600 575A225 225 0 0 1 600 1025z","horizAdvX":"1200"},"numbers-fill":{"path":["M0 0h24v24H0z","M9 18H4v-8h5v8zm6 0h-5V6h5v12zm6 0h-5V2h5v16zm1 4H3v-2h19v2z"],"unicode":"","glyph":"M450 300H200V700H450V300zM750 300H500V900H750V300zM1050 300H800V1100H1050V300zM1100 100H150V200H1100V100z","horizAdvX":"1200"},"numbers-line":{"path":["M0 0h24v24H0z","M9 18H4v-8h5v8zm-2-2v-4H6v4h1zm6 0V8h-1v8h1zm2 2h-5V6h5v12zm4-2V4h-1v12h1zm2 2h-5V2h5v16zm1 4H3v-2h19v2z"],"unicode":"","glyph":"M450 300H200V700H450V300zM350 400V600H300V400H350zM650 400V800H600V400H650zM750 300H500V900H750V300zM950 400V1000H900V400H950zM1050 300H800V1100H1050V300zM1100 100H150V200H1100V100z","horizAdvX":"1200"},"nurse-fill":{"path":["M0 0H24V24H0z","M14.956 15.564c2.659 1.058 4.616 3.5 4.982 6.436H4.062c.366-2.936 2.323-5.378 4.982-6.436L12 20l2.956-4.436zM18 2v6c0 3.314-2.686 6-6 6s-6-2.686-6-6V2h12zm-2 6H8c0 2.21 1.79 4 4 4s4-1.79 4-4z"],"unicode":"","glyph":"M747.8 421.8C880.7499999999999 368.9 978.6 246.8 996.9 100H203.1C221.4 246.8 319.25 368.9 452.2 421.8L600 200L747.8 421.8zM900 1100V800C900 634.3 765.7 500 600 500S300 634.3 300 800V1100H900zM800 800H400C400 689.5 489.4999999999999 600 600 600S800 689.5 800 800z","horizAdvX":"1200"},"nurse-line":{"path":["M0 0H24V24H0z","M12 15c4.08 0 7.446 3.054 7.938 7H4.062c.492-3.946 3.858-7 7.938-7zm-1.813 2.28C8.753 17.734 7.546 18.713 6.8 20H12l-1.813-2.72zm3.627 0L12 20h5.199c-.745-1.287-1.952-2.266-3.385-2.72zM18 2v6c0 3.314-2.686 6-6 6s-6-2.686-6-6V2h12zM8 8c0 2.21 1.79 4 4 4s4-1.79 4-4H8zm8-4H8v2h8V4z"],"unicode":"","glyph":"M600 450C803.9999999999999 450 972.3 297.3000000000001 996.9 100H203.1C227.7 297.3000000000001 396 450 600 450zM509.35 336C437.65 313.3 377.3 264.3499999999999 340 200H600L509.35 336zM690.7 336L600 200H859.9499999999999C822.6999999999998 264.3499999999999 762.3499999999999 313.3 690.6999999999999 336zM900 1100V800C900 634.3 765.7 500 600 500S300 634.3 300 800V1100H900zM400 800C400 689.5 489.4999999999999 600 600 600S800 689.5 800 800H400zM800 1000H400V900H800V1000z","horizAdvX":"1200"},"oil-fill":{"path":["M0 0h24v24H0z","M8 5h11a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V11l4-6zm5-4h5a1 1 0 0 1 1 1v2h-7V2a1 1 0 0 1 1-1zM6 12v7h2v-7H6z"],"unicode":"","glyph":"M400 950H950A50 50 0 0 0 1000 900V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V650L400 950zM650 1150H900A50 50 0 0 0 950 1100V1000H600V1100A50 50 0 0 0 650 1150zM300 600V250H400V600H300z","horizAdvX":"1200"},"oil-line":{"path":["M0 0h24v24H0z","M9.07 7L6 11.606V20h12V7H9.07zM8 5h11a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V11l4-6zm5-4h5a1 1 0 0 1 1 1v2h-7V2a1 1 0 0 1 1-1zM8 12h2v6H8v-6z"],"unicode":"","glyph":"M453.5 850L300 619.7V200H900V850H453.5zM400 950H950A50 50 0 0 0 1000 900V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V650L400 950zM650 1150H900A50 50 0 0 0 950 1100V1000H600V1100A50 50 0 0 0 650 1150zM400 600H500V300H400V600z","horizAdvX":"1200"},"omega":{"path":["M0 0h24v24H0z","M14 20v-2.157c1.863-1.192 3.5-3.875 3.5-6.959 0-3.073-2-6.029-5.5-6.029s-5.5 2.956-5.5 6.03c0 3.083 1.637 5.766 3.5 6.958V20H3v-2h4.76C5.666 16.505 4 13.989 4 10.884 4 6.247 7.5 3 12 3s8 3.247 8 7.884c0 3.105-1.666 5.621-3.76 7.116H21v2h-7z"],"unicode":"","glyph":"M700 200V307.85C793.15 367.4500000000001 875 501.6 875 655.8C875 809.45 775 957.25 600 957.25S325 809.45 325 655.7499999999999C325 501.5999999999999 406.85 367.4499999999998 500 307.8499999999998V200H150V300H388C283.3 374.75 200 500.55 200 655.8C200 887.65 375 1050 600 1050S1000 887.65 1000 655.8C1000 500.55 916.7 374.7499999999999 812.0000000000001 300H1050V200H700z","horizAdvX":"1200"},"open-arm-fill":{"path":["M0 0h24v24H0z","M12 12a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm6 5v5h-2v-5c0-4.451 2.644-8.285 6.447-10.016l.828 1.82A9.002 9.002 0 0 0 18 17zM8 17v5H6v-5A9.002 9.002 0 0 0 .725 8.805l.828-1.821A11.002 11.002 0 0 1 8 17z"],"unicode":"","glyph":"M600 600A250 250 0 1 0 600 1100A250 250 0 0 0 600 600zM900 350V100H800V350C800 572.5500000000001 932.2 764.25 1122.35 850.8L1163.75 759.8A450.1 450.1 0 0 1 900 350zM400 350V100H300V350A450.1 450.1 0 0 1 36.25 759.75L77.65 850.8A550.1 550.1 0 0 0 400 350z","horizAdvX":"1200"},"open-arm-line":{"path":["M0 0h24v24H0z","M18 17v5h-2v-5c0-4.451 2.644-8.285 6.447-10.016l.828 1.82A9.002 9.002 0 0 0 18 17zM8 17v5H6v-5A9.002 9.002 0 0 0 .725 8.805l.828-1.821A11.002 11.002 0 0 1 8 17zm4-5a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M900 350V100H800V350C800 572.5500000000001 932.2 764.25 1122.35 850.8L1163.75 759.8A450.1 450.1 0 0 1 900 350zM400 350V100H300V350A450.1 450.1 0 0 1 36.25 759.75L77.65 850.8A550.1 550.1 0 0 0 400 350zM600 600A250 250 0 1 0 600 1100A250 250 0 0 0 600 600zM600 700A150 150 0 1 1 600 1000A150 150 0 0 1 600 700z","horizAdvX":"1200"},"open-source-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10 0 4.13-2.504 7.676-6.077 9.201l-2.518-6.55C14.354 14.148 15 13.15 15 12c0-1.657-1.343-3-3-3s-3 1.343-3 3c0 1.15.647 2.148 1.596 2.652l-2.518 6.55C4.504 19.675 2 16.13 2 12 2 6.477 6.477 2 12 2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 393.5 974.8 216.1999999999999 796.15 139.9500000000001L670.25 467.45C717.6999999999999 492.6 750 542.5 750 600C750 682.85 682.85 750 600 750S450 682.85 450 600C450 542.5 482.35 492.6 529.8 467.4L403.9 139.8999999999999C225.2 216.25 100 393.5 100 600C100 876.15 323.85 1100 600 1100z","horizAdvX":"1200"},"open-source-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10 0 4.4-2.841 8.136-6.789 9.473l-.226.074-2.904-7.55C13.15 13.95 14 13.054 14 12c0-1.105-.895-2-2-2s-2 .895-2 2c0 1.077.851 1.955 1.917 1.998l-2.903 7.549-.225-.074C4.84 20.136 2 16.4 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 2.92 1.564 5.475 3.901 6.872l1.48-3.849C8.534 14.29 8 13.207 8 12c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.207-.535 2.29-1.38 3.023.565 1.474 1.059 2.757 1.479 3.85C18.435 17.475 20 14.92 20 12c0-4.418-3.582-8-8-8z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 380.0000000000001 957.95 193.2000000000001 760.5500000000001 126.3500000000001L749.25 122.6499999999999L604.05 500.15C657.5 502.5 700 547.3 700 600C700 655.25 655.25 700 600 700S500 655.25 500 600C500 546.15 542.55 502.25 595.85 500.1L450.7 122.6499999999999L439.45 126.3500000000001C242 193.2000000000001 100 380.0000000000001 100 600C100 876.15 323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600C200 454 278.2 326.2499999999999 395.05 256.4L469.05 448.85C426.7000000000001 485.5 400 539.65 400 600C400 710.5 489.4999999999999 800 600 800S800 710.5 800 600C800 539.65 773.25 485.5 731 448.85C759.25 375.15 783.95 311 804.95 256.3499999999999C921.7499999999998 326.2499999999999 1000 454 1000 600C1000 820.9000000000001 820.9 1000 600 1000z","horizAdvX":"1200"},"opera-fill":{"path":["M0 0h24v24H0z","M8.71 6.365c-1.108 1.305-1.823 3.236-1.873 5.4v.47c.051 2.165.766 4.093 1.872 5.4 1.434 1.862 3.566 3.044 5.95 3.044a7.208 7.208 0 0 0 4.005-1.226 9.94 9.94 0 0 1-7.139 2.535A9.998 9.998 0 0 1 2 12C2 6.476 6.478 2 12 2h.037a9.97 9.97 0 0 1 6.628 2.546 7.239 7.239 0 0 0-4.008-1.226c-2.382 0-4.514 1.183-5.95 3.045h.002zM22 12a9.969 9.969 0 0 1-3.335 7.454c-2.565 1.25-4.955.376-5.747-.17 2.52-.554 4.423-3.6 4.423-7.284 0-3.685-1.903-6.73-4.423-7.283.791-.545 3.182-1.42 5.747-.171A9.967 9.967 0 0 1 22 12z"],"unicode":"","glyph":"M435.5000000000001 881.75C380.1 816.5 344.35 719.9499999999999 341.85 611.75V588.2499999999999C344.4000000000001 479.9999999999999 380.1500000000001 383.5999999999999 435.4500000000001 318.2499999999999C507.15 225.15 613.7500000000001 166.05 732.9500000000002 166.05A360.4 360.4 0 0 1 933.2 227.3499999999999A496.99999999999994 496.99999999999994 0 0 0 576.2500000000001 100.5999999999999A499.8999999999999 499.8999999999999 0 0 0 100 600C100 876.2 323.9 1100 600 1100H601.85A498.5 498.5 0 0 0 933.25 972.7A361.95000000000005 361.95000000000005 0 0 1 732.85 1034C613.75 1034 507.15 974.85 435.35 881.75H435.4500000000001zM1100 600A498.45 498.45 0 0 0 933.25 227.3C804.9999999999999 164.8 685.5 208.4999999999999 645.9 235.8000000000001C771.9 263.5 867.0500000000001 415.8000000000001 867.0500000000001 600C867.0500000000001 784.25 771.9 936.5 645.9000000000001 964.15C685.45 991.4 805.0000000000001 1035.15 933.25 972.7A498.35 498.35 0 0 0 1100 600z","horizAdvX":"1200"},"opera-line":{"path":["M0 0h24v24H0z","M14.766 19.51a8.003 8.003 0 0 0 0-15.02C16.71 5.977 18 8.935 18 12s-1.289 6.024-3.234 7.51zM9.234 4.49a8.003 8.003 0 0 0 0 15.02C7.29 18.023 6 15.065 6 12s1.289-6.024 3.234-7.51zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-3.5c2 0 4-3.033 4-6.5s-2-6.5-4-6.5S8 8.533 8 12s2 6.5 4 6.5z"],"unicode":"","glyph":"M738.3 224.4999999999999A400.15000000000003 400.15000000000003 0 0 1 738.3 975.4999999999998C835.5 901.15 900 753.25 900 600S835.55 298.8 738.3 224.5000000000001zM461.7 975.5A400.15000000000003 400.15000000000003 0 0 1 461.7 224.5000000000001C364.5 298.85 300 446.75 300 600S364.45 901.2 461.7 975.5zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 275C700 275 800 426.65 800 600S700 925 600 925S400 773.35 400 600S500 275 600 275z","horizAdvX":"1200"},"order-play-fill":{"path":["M0 0h24v24H0z","M17 4V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H2V4h15zM2 18h20v2H2v-2zm0-7h20v2H2v-2z"],"unicode":"","glyph":"M850 1000V1096.6A25 25 0 0 0 891 1115.85L1097 944.2A25 25 0 0 0 1080.95 900H100V1000H850zM100 300H1100V200H100V300zM100 650H1100V550H100V650z","horizAdvX":"1200"},"order-play-line":{"path":["M0 0h24v24H0z","M17 4V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H2V4h15zM2 18h20v2H2v-2zm0-7h20v2H2v-2z"],"unicode":"","glyph":"M850 1000V1096.6A25 25 0 0 0 891 1115.85L1097 944.2A25 25 0 0 0 1080.95 900H100V1000H850zM100 300H1100V200H100V300zM100 650H1100V550H100V650z","horizAdvX":"1200"},"organization-chart":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-2v2h4c.552 0 1 .448 1 1v3h2c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1h-6c-.552 0-1-.448-1-1v-4c0-.552.448-1 1-1h2v-2H8v2h2c.552 0 1 .448 1 1v4c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1v-4c0-.552.448-1 1-1h2v-3c0-.552.448-1 1-1h4V9H9c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h6zM9 17H5v2h4v-2zm10 0h-4v2h4v-2zM14 5h-4v2h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V800C800 772.4000000000001 777.6 750 750 750H650V650H850C877.6 650 900 627.6 900 600V450H1000C1027.6 450 1050 427.6 1050 400V200C1050 172.4000000000001 1027.6 150 1000 150H700C672.4 150 650 172.4000000000001 650 200V400C650 427.6 672.4 450 700 450H800V550H400V450H500C527.6 450 550 427.6 550 400V200C550 172.4000000000001 527.6 150 500 150H200C172.4 150 150 172.4000000000001 150 200V400C150 427.6 172.4 450 200 450H300V600C300 627.6 322.4000000000001 650 350 650H550V750H450C422.4000000000001 750 400 772.4000000000001 400 800V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM450 350H250V250H450V350zM950 350H750V250H950V350zM700 950H500V850H700V950z","horizAdvX":"1200"},"outlet-2-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM11 7v4h2V7h-2zm3 5v4h2v-4h-2zm-6 0v4h2v-4H8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 850V650H650V850H550zM700 600V400H800V600H700zM400 600V400H500V600H400z","horizAdvX":"1200"},"outlet-2-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM11 7h2v4h-2V7zm3 5h2v4h-2v-4zm-6 0h2v4H8v-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 850H650V650H550V850zM700 600H800V400H700V600zM400 600H500V400H400V600z","horizAdvX":"1200"},"outlet-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm2-12v4h2v-4h-2zm-6 0v4h2v-4H8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM700 700V500H800V700H700zM400 700V500H500V700H400z","horizAdvX":"1200"},"outlet-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm2-10h2v4h-2v-4zm-6 0h2v4H8v-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM700 700H800V500H700V700zM400 700H500V500H400V700z","horizAdvX":"1200"},"page-separator":{"path":["M0 0h24v24H0z","M17 21v-4H7v4H5v-5a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v5h-2zM7 3v4h10V3h2v5a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3h2zM2 9l4 3-4 3V9zm20 0v6l-4-3 4-3z"],"unicode":"","glyph":"M850 150V350H350V150H250V400A50 50 0 0 0 300 450H900A50 50 0 0 0 950 400V150H850zM350 1050V850H850V1050H950V800A50 50 0 0 0 900 750H300A50 50 0 0 0 250 800V1050H350zM100 750L300 600L100 450V750zM1100 750V450L900 600L1100 750z","horizAdvX":"1200"},"pages-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V8h18v13a1 1 0 0 1-1 1zm1-16H3V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v3zM7 11v4h4v-4H7zm0 6v2h10v-2H7zm6-5v2h4v-2h-4z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V800H1050V150A50 50 0 0 0 1000 100zM1050 900H150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V900zM350 650V450H550V650H350zM350 350V250H850V350H350zM650 600V500H850V600H650z","horizAdvX":"1200"},"pages-line":{"path":["M0 0h24v24H0z","M5 8v12h14V8H5zm0-2h14V4H5v2zm15 16H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM7 10h4v4H7v-4zm0 6h10v2H7v-2zm6-5h4v2h-4v-2z"],"unicode":"","glyph":"M250 800V200H950V800H250zM250 900H950V1000H250V900zM1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM350 700H550V500H350V700zM350 400H850V300H350V400zM650 650H850V550H650V650z","horizAdvX":"1200"},"paint-brush-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 9h6a1 1 0 0 1 1 1v3h1v6h-4v-6h1v-2H5a1 1 0 0 1-1-1v-2h2v1zm11.732 1.732l1.768-1.768 1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V750A50 50 0 0 0 1000 700H200A50 50 0 0 0 150 750V1000A50 50 0 0 0 200 1050zM300 600H600A50 50 0 0 0 650 550V400H700V100H500V400H550V500H250A50 50 0 0 0 200 550V650H300V600zM886.5999999999999 513.4000000000001L975 601.8000000000001L1063.4 513.4000000000001A125 125 0 1 0 886.5999999999999 513.4000000000001z","horizAdvX":"1200"},"paint-brush-line":{"path":["M0 0h24v24H0z","M5 5v3h14V5H5zM4 3h16a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 9h6a1 1 0 0 1 1 1v3h1v6h-4v-6h1v-2H5a1 1 0 0 1-1-1v-2h2v1zm11.732 1.732l1.768-1.768 1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M250 950V800H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V750A50 50 0 0 0 1000 700H200A50 50 0 0 0 150 750V1000A50 50 0 0 0 200 1050zM300 600H600A50 50 0 0 0 650 550V400H700V100H500V400H550V500H250A50 50 0 0 0 200 550V650H300V600zM886.5999999999999 513.4000000000001L975 601.8000000000001L1063.4 513.4000000000001A125 125 0 1 0 886.5999999999999 513.4000000000001z","horizAdvX":"1200"},"paint-fill":{"path":["M0 0h24v24H0z","M19.228 18.732l1.768-1.768 1.767 1.768a2.5 2.5 0 1 1-3.535 0zM8.878 1.08l11.314 11.313a1 1 0 0 1 0 1.415l-8.485 8.485a1 1 0 0 1-1.414 0l-8.485-8.485a1 1 0 0 1 0-1.415l7.778-7.778-2.122-2.121L8.88 1.08zM11 6.03L3.929 13.1H18.07L11 6.03z"],"unicode":"","glyph":"M961.4 263.4000000000001L1049.8000000000002 351.8000000000001L1138.15 263.4000000000001A125 125 0 1 0 961.4 263.4000000000001zM443.9 1146L1009.6 580.3499999999999A50 50 0 0 0 1009.6 509.6L585.35 85.3500000000001A50 50 0 0 0 514.6500000000001 85.3500000000001L90.4000000000001 509.6A50 50 0 0 0 90.4000000000001 580.3499999999999L479.3000000000001 969.25L373.2000000000001 1075.3L444.0000000000001 1146zM550 898.5L196.45 545H903.5L550 898.5z","horizAdvX":"1200"},"paint-line":{"path":["M0 0h24v24H0z","M19.228 18.732l1.768-1.768 1.767 1.768a2.5 2.5 0 1 1-3.535 0zM8.878 1.08l11.314 11.313a1 1 0 0 1 0 1.415l-8.485 8.485a1 1 0 0 1-1.414 0l-8.485-8.485a1 1 0 0 1 0-1.415l7.778-7.778-2.122-2.121L8.88 1.08zM11 6.03L3.929 13.1 11 20.173l7.071-7.071L11 6.029z"],"unicode":"","glyph":"M961.4 263.4000000000001L1049.8000000000002 351.8000000000001L1138.15 263.4000000000001A125 125 0 1 0 961.4 263.4000000000001zM443.9 1146L1009.6 580.3499999999999A50 50 0 0 0 1009.6 509.6L585.35 85.3500000000001A50 50 0 0 0 514.6500000000001 85.3500000000001L90.4000000000001 509.6A50 50 0 0 0 90.4000000000001 580.3499999999999L479.3000000000001 969.25L373.2000000000001 1075.3L444.0000000000001 1146zM550 898.5L196.45 545L550 191.3500000000001L903.55 544.9000000000001L550 898.55z","horizAdvX":"1200"},"palette-fill":{"path":["M0 0h24v24H0z","M12 2c5.522 0 10 3.978 10 8.889a5.558 5.558 0 0 1-5.556 5.555h-1.966c-.922 0-1.667.745-1.667 1.667 0 .422.167.811.422 1.1.267.3.434.689.434 1.122C13.667 21.256 12.9 22 12 22 6.478 22 2 17.522 2 12S6.478 2 12 2zM7.5 12a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM12 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 1100C876.0999999999999 1100 1100 901.1 1100 655.5500000000001A277.9 277.9 0 0 0 822.1999999999999 377.8000000000001H723.9C677.8 377.8000000000001 640.55 340.55 640.55 294.45C640.55 273.3499999999999 648.9 253.9 661.65 239.45C675 224.4499999999998 683.35 204.9999999999999 683.35 183.3499999999999C683.35 137.2000000000001 645 100 600 100C323.9 100 100 323.9000000000001 100 600S323.9 1100 600 1100zM375 600A75 75 0 1 1 375 750A75 75 0 0 1 375 600zM825 600A75 75 0 1 1 825 750A75 75 0 0 1 825 600zM600 750A75 75 0 1 1 600 900A75 75 0 0 1 600 750z","horizAdvX":"1200"},"palette-line":{"path":["M0 0h24v24H0z","M12 2c5.522 0 10 3.978 10 8.889a5.558 5.558 0 0 1-5.556 5.555h-1.966c-.922 0-1.667.745-1.667 1.667 0 .422.167.811.422 1.1.267.3.434.689.434 1.122C13.667 21.256 12.9 22 12 22 6.478 22 2 17.522 2 12S6.478 2 12 2zm-1.189 16.111a3.664 3.664 0 0 1 3.667-3.667h1.966A3.558 3.558 0 0 0 20 10.89C20 7.139 16.468 4 12 4a8 8 0 0 0-.676 15.972 3.648 3.648 0 0 1-.513-1.86zM7.5 12a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM12 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M600 1100C876.0999999999999 1100 1100 901.1 1100 655.5500000000001A277.9 277.9 0 0 0 822.1999999999999 377.8000000000001H723.9C677.8 377.8000000000001 640.55 340.55 640.55 294.45C640.55 273.3499999999999 648.9 253.9 661.65 239.45C675 224.4499999999998 683.35 204.9999999999999 683.35 183.3499999999999C683.35 137.2000000000001 645 100 600 100C323.9 100 100 323.9000000000001 100 600S323.9 1100 600 1100zM540.55 294.45A183.20000000000002 183.20000000000002 0 0 0 723.9 477.8H822.1999999999999A177.9 177.9 0 0 1 1000 655.5C1000 843.05 823.4 1000 600 1000A400 400 0 0 1 566.2 201.4A182.4 182.4 0 0 0 540.55 294.3999999999999zM375 600A75 75 0 1 0 375 750A75 75 0 0 0 375 600zM825 600A75 75 0 1 0 825 750A75 75 0 0 0 825 600zM600 750A75 75 0 1 0 600 900A75 75 0 0 0 600 750z","horizAdvX":"1200"},"pantone-fill":{"path":["M0 0h24v24H0z","M4 18.922l-1.35-.545a1 1 0 0 1-.552-1.302L4 12.367v6.555zM8.86 21H7a1 1 0 0 1-1-1v-6.078L8.86 21zM6.022 5.968l9.272-3.746a1 1 0 0 1 1.301.552l5.62 13.908a1 1 0 0 1-.553 1.302L12.39 21.73a1 1 0 0 1-1.302-.553L5.47 7.27a1 1 0 0 1 .553-1.301zM9 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M200 253.9L132.5 281.1500000000001A50 50 0 0 0 104.9 346.25L200 581.65V253.9zM443 150H350A50 50 0 0 0 300 200V503.9L443 150zM301.1 901.6L764.7 1088.9A50 50 0 0 0 829.75 1061.3L1110.75 365.9000000000001A50 50 0 0 0 1083.1 300.8000000000001L619.5 113.5A50 50 0 0 0 554.4000000000001 141.1500000000001L273.5 836.5A50 50 0 0 0 301.15 901.55zM450 750A50 50 0 1 1 450 850A50 50 0 0 1 450 750z","horizAdvX":"1200"},"pantone-line":{"path":["M0 0h24v24H0z","M5.764 8l-.295-.73a1 1 0 0 1 .553-1.302l9.272-3.746a1 1 0 0 1 1.301.552l5.62 13.908a1 1 0 0 1-.553 1.302L12.39 21.73a1 1 0 0 1-1.302-.553L11 20.96V21H7a1 1 0 0 1-1-1v-.27l-3.35-1.353a1 1 0 0 1-.552-1.302L5.764 8zM8 19h2.209L8 13.533V19zm-2-6.244l-1.673 4.141L6 17.608v-4.852zm1.698-5.309l4.87 12.054 7.418-2.997-4.87-12.053-7.418 2.996zm2.978 2.033a1 1 0 1 1-.749-1.855 1 1 0 0 1 .75 1.855z"],"unicode":"","glyph":"M288.2 800L273.45 836.5A50 50 0 0 0 301.1 901.6L764.7 1088.9A50 50 0 0 0 829.75 1061.3L1110.75 365.9000000000001A50 50 0 0 0 1083.1 300.8000000000001L619.5 113.5A50 50 0 0 0 554.4000000000001 141.1500000000001L550 152V150H350A50 50 0 0 0 300 200V213.5L132.5 281.1500000000001A50 50 0 0 0 104.9 346.25L288.2 800zM400 250H510.45L400 523.35V250zM300 562.2L216.35 355.1500000000001L300 319.6V562.2zM384.9000000000001 827.65L628.4000000000001 224.9499999999999L999.3 374.8L755.8 977.45L384.9 827.65zM533.8 726A50 50 0 1 0 496.35 818.75A50 50 0 0 0 533.85 726z","horizAdvX":"1200"},"paragraph":{"path":["M0 0h24v24H0z","M12 6v15h-2v-5a6 6 0 1 1 0-12h10v2h-3v15h-2V6h-3zm-2 0a4 4 0 1 0 0 8V6z"],"unicode":"","glyph":"M600 900V150H500V400A300 300 0 1 0 500 1000H1000V900H850V150H750V900H600zM500 900A200 200 0 1 1 500 500V900z","horizAdvX":"1200"},"parent-fill":{"path":["M0 0h24v24H0z","M7 11a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10.5 4a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0 1a4.5 4.5 0 0 1 4.5 4.5v.5h-9v-.5a4.5 4.5 0 0 1 4.5-4.5zM7 12a5 5 0 0 1 5 5v4H2v-4a5 5 0 0 1 5-5z"],"unicode":"","glyph":"M350 650A225 225 0 1 0 350 1100A225 225 0 0 0 350 650zM875 450A200 200 0 1 0 875 850A200 200 0 0 0 875 450zM875 400A225 225 0 0 0 1100 175V150H650V175A225 225 0 0 0 875 400zM350 600A250 250 0 0 0 600 350V150H100V350A250 250 0 0 0 350 600z","horizAdvX":"1200"},"parent-line":{"path":["M0 0h24v24H0z","M7 9a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm10.5 2a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm2.5 6v-.5a2.5 2.5 0 1 0-5 0v.5h-2v-.5a4.5 4.5 0 1 1 9 0v.5h-2zm-10 0v-4a3 3 0 0 0-6 0v4H2v-4a5 5 0 0 1 10 0v4h-2z"],"unicode":"","glyph":"M350 750A125 125 0 1 1 350 1000A125 125 0 0 1 350 750zM350 650A225 225 0 1 0 350 1100A225 225 0 0 0 350 650zM875 550A100 100 0 1 1 875 750A100 100 0 0 1 875 550zM875 450A200 200 0 1 0 875 850A200 200 0 0 0 875 450zM1000 150V175A125 125 0 1 1 750 175V150H650V175A225 225 0 1 0 1100 175V150H1000zM500 150V350A150 150 0 0 1 200 350V150H100V350A250 250 0 0 0 600 350V150H500z","horizAdvX":"1200"},"parentheses-fill":{"path":["M0 0h24v24H0z","M6.923 21C5.113 18.664 4 15.493 4 12c0-3.493 1.113-6.664 2.923-9h2.014C7.235 5.388 6.2 8.542 6.2 12s1.035 6.612 2.737 9H6.923zm10.151 0H15.06c1.702-2.388 2.737-5.542 2.737-9s-1.035-6.612-2.737-9h2.014c1.81 2.336 2.923 5.507 2.923 9 0 3.493-1.112 6.664-2.923 9z"],"unicode":"","glyph":"M346.15 150C255.6500000000001 266.8 200 425.35 200 600C200 774.6500000000001 255.65 933.2 346.15 1050H446.85C361.75 930.6 310 772.9000000000001 310 600S361.75 269.3999999999999 446.8500000000001 150H346.15zM853.6999999999999 150H753C838.1 269.3999999999999 889.85 427.1 889.85 600S838.1 930.6 753 1050H853.7C944.2 933.2 999.85 774.6500000000001 999.85 600C999.85 425.35 944.2499999999998 266.8 853.6999999999999 150z","horizAdvX":"1200"},"parentheses-line":{"path":["M0 0h24v24H0z","M6.923 21C5.113 18.664 4 15.493 4 12c0-3.493 1.113-6.664 2.923-9h2.014C7.235 5.388 6.2 8.542 6.2 12s1.035 6.612 2.737 9H6.923zm10.151 0H15.06c1.702-2.388 2.737-5.542 2.737-9s-1.035-6.612-2.737-9h2.014c1.81 2.336 2.923 5.507 2.923 9 0 3.493-1.112 6.664-2.923 9z"],"unicode":"","glyph":"M346.15 150C255.6500000000001 266.8 200 425.35 200 600C200 774.6500000000001 255.65 933.2 346.15 1050H446.85C361.75 930.6 310 772.9000000000001 310 600S361.75 269.3999999999999 446.8500000000001 150H346.15zM853.6999999999999 150H753C838.1 269.3999999999999 889.85 427.1 889.85 600S838.1 930.6 753 1050H853.7C944.2 933.2 999.85 774.6500000000001 999.85 600C999.85 425.35 944.2499999999998 266.8 853.6999999999999 150z","horizAdvX":"1200"},"parking-box-fill":{"path":["M0 0h24v24H0z","M11 14h1.5a3.5 3.5 0 0 0 0-7H9v10h2v-3zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7 6h1.5a1.5 1.5 0 0 1 0 3H11V9z"],"unicode":"","glyph":"M550 500H625A175 175 0 0 1 625 850H450V350H550V500zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM550 750H625A75 75 0 0 0 625 600H550V750z","horizAdvX":"1200"},"parking-box-line":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm4 2h3.5a3.5 3.5 0 0 1 0 7H11v3H9V7zm2 2v3h1.5a1.5 1.5 0 0 0 0-3H11z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM250 950V250H950V950H250zM450 850H625A175 175 0 0 0 625 500H550V350H450V850zM550 750V600H625A75 75 0 0 1 625 750H550z","horizAdvX":"1200"},"parking-fill":{"path":["M0 0h24v24H0z","M6 3h7a6 6 0 1 1 0 12h-3v6H6V3zm4 4v4h3a2 2 0 1 0 0-4h-3z"],"unicode":"","glyph":"M300 1050H650A300 300 0 1 0 650 450H500V150H300V1050zM500 850V650H650A100 100 0 1 1 650 850H500z","horizAdvX":"1200"},"parking-line":{"path":["M0 0h24v24H0z","M6 3h7a6 6 0 1 1 0 12H8v6H6V3zm2 2v8h5a4 4 0 1 0 0-8H8z"],"unicode":"","glyph":"M300 1050H650A300 300 0 1 0 650 450H400V150H300V1050zM400 950V550H650A200 200 0 1 1 650 950H400z","horizAdvX":"1200"},"passport-fill":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16zm-4 14H8v2h8v-2zM12 6a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm0 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000zM800 400H400V300H800V400zM600 900A200 200 0 1 1 600 500A200 200 0 0 1 600 900zM600 800A100 100 0 1 0 600 600A100 100 0 0 0 600 800z","horizAdvX":"1200"},"passport-line":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16zm-1 2H5v16h14V4zm-3 12v2H8v-2h8zM12 6a4 4 0 1 1 0 8 4 4 0 0 1 0-8zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000zM950 1000H250V200H950V1000zM800 400V300H400V400H800zM600 900A200 200 0 1 0 600 500A200 200 0 0 0 600 900zM600 800A100 100 0 1 1 600 600A100 100 0 0 1 600 800z","horizAdvX":"1200"},"patreon-fill":{"path":["M0 0h24v24H0z","M15 17a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15zM2 2h4v20H2V2z"],"unicode":"","glyph":"M750 350A375 375 0 1 0 750 1100A375 375 0 0 0 750 350zM100 1100H300V100H100V1100z","horizAdvX":"1200"},"patreon-line":{"path":["M0 0h24v24H0z","M15 17a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15zm0-2a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM2 2h5v20H2V2zm2 2v16h1V4H4z"],"unicode":"","glyph":"M750 350A375 375 0 1 0 750 1100A375 375 0 0 0 750 350zM750 450A275 275 0 1 1 750 1000A275 275 0 0 1 750 450zM100 1100H350V100H100V1100zM200 1000V200H250V1000H200z","horizAdvX":"1200"},"pause-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM9 9v6h2V9H9zm4 0v6h2V9h-2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM450 750V450H550V750H450zM650 750V450H750V750H650z","horizAdvX":"1200"},"pause-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM9 9h2v6H9V9zm4 0h2v6h-2V9z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 750H550V450H450V750zM650 750H750V450H650V750z","horizAdvX":"1200"},"pause-fill":{"path":["M0 0h24v24H0z","M6 5h2v14H6V5zm10 0h2v14h-2V5z"],"unicode":"","glyph":"M300 950H400V250H300V950zM800 950H900V250H800V950z","horizAdvX":"1200"},"pause-line":{"path":["M0 0h24v24H0z","M6 5h2v14H6V5zm10 0h2v14h-2V5z"],"unicode":"","glyph":"M300 950H400V250H300V950zM800 950H900V250H800V950z","horizAdvX":"1200"},"pause-mini-fill":{"path":["M0 0h24v24H0z","M15 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7zM7 7a1 1 0 1 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M750 850A50 50 0 0 0 850 850V350A50 50 0 1 0 750 350V850zM350 850A50 50 0 1 0 450 850V350A50 50 0 1 0 350 350V850z","horizAdvX":"1200"},"pause-mini-line":{"path":["M0 0h24v24H0z","M15 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7zM7 7a1 1 0 1 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M750 850A50 50 0 0 0 850 850V350A50 50 0 1 0 750 350V850zM350 850A50 50 0 1 0 450 850V350A50 50 0 1 0 350 350V850z","horizAdvX":"1200"},"paypal-fill":{"path":["M0 0h24v24H0z","M20.067 8.478c.492.88.556 2.014.3 3.327-.74 3.806-3.276 5.12-6.514 5.12h-.5a.805.805 0 0 0-.794.68l-.04.22-.63 3.993-.032.17a.804.804 0 0 1-.794.679H7.72a.483.483 0 0 1-.477-.558L7.418 21h1.518l.95-6.02h1.385c4.678 0 7.75-2.203 8.796-6.502zm-2.96-5.09c.762.868.983 1.81.752 3.285-.019.123-.04.24-.062.36-.735 3.773-3.089 5.446-6.956 5.446H8.957c-.63 0-1.174.414-1.354 1.002l-.014-.002-.93 5.894H3.121a.051.051 0 0 1-.05-.06l2.598-16.51A.95.95 0 0 1 6.607 2h5.976c2.183 0 3.716.469 4.523 1.388z"],"unicode":"","glyph":"M1003.35 776.1C1027.95 732.0999999999999 1031.15 675.4000000000001 1018.35 609.75C981.3500000000003 419.45 854.5500000000001 353.75 692.6500000000001 353.75H667.6500000000001A40.25 40.25 0 0 1 627.95 319.75L625.95 308.75L594.45 109.1000000000001L592.85 100.5999999999999A40.2 40.2 0 0 0 553.15 66.6500000000001H386A24.15 24.15 0 0 0 362.15 94.5500000000002L370.9000000000001 150H446.8L494.3 451H563.55C797.4499999999999 451 951.05 561.15 1003.35 776.0999999999999zM855.3499999999999 1030.6C893.45 987.2 904.5 940.1 892.9499999999999 866.35C892 860.2 890.9499999999999 854.3499999999999 889.8499999999999 848.3499999999999C853.0999999999999 659.6999999999999 735.3999999999999 576.0500000000001 542.0499999999998 576.0500000000001H447.85C416.35 576.0500000000001 389.1500000000001 555.35 380.1500000000001 525.95L379.4500000000001 526.0500000000001L332.9500000000001 231.3500000000002H156.05A2.55 2.55 0 0 0 153.55 234.35L283.4500000000001 1059.8500000000001A47.5 47.5 0 0 0 330.35 1100H629.15C738.3 1100 814.9499999999999 1076.55 855.3000000000001 1030.6z","horizAdvX":"1200"},"paypal-line":{"path":["M0 0h24v24H0z","M8.495 20.667h1.551l.538-3.376a2.805 2.805 0 0 1 2.77-2.366h.5c2.677 0 4.06-.983 4.55-3.503.208-1.066.117-1.73-.171-2.102-1.207 3.054-3.79 4.16-6.962 4.16h-.884c-.384 0-.794.209-.852.58l-1.04 6.607zm-4.944-.294a.551.551 0 0 1-.544-.637L5.68 2.776A.92.92 0 0 1 6.59 2h6.424c2.212 0 3.942.467 4.899 1.558.87.99 1.123 2.084.871 3.692.36.191.668.425.916.706.818.933.978 2.26.668 3.85-.74 3.805-3.276 5.12-6.514 5.12h-.5a.805.805 0 0 0-.794.679l-.702 4.383a.804.804 0 0 1-.794.679H6.72a.483.483 0 0 1-.477-.558l.274-1.736H3.55zm6.836-8.894h.884c3.19 0 4.895-1.212 5.483-4.229.02-.101.037-.203.053-.309.166-1.06.05-1.553-.398-2.063-.465-.53-1.603-.878-3.396-.878h-5.5L5.246 18.373h1.561l.73-4.628.007.001a2.915 2.915 0 0 1 2.843-2.267z"],"unicode":"","glyph":"M424.75 166.6499999999999H502.3L529.1999999999999 335.45A140.25 140.25 0 0 0 667.6999999999999 453.75H692.6999999999999C826.55 453.75 895.6999999999999 502.9 920.2 628.9C930.6 682.2 926.05 715.4 911.65 734C851.3 581.3 722.1500000000001 526 563.5500000000001 526H519.35C500.15 526 479.65 515.55 476.75 497L424.7500000000001 166.6499999999999zM177.55 181.3499999999999A27.55 27.55 0 0 0 150.35 213.1999999999999L284 1061.2A46 46 0 0 0 329.5 1100H650.6999999999999C761.3 1100 847.8 1076.65 895.65 1022.1C939.15 972.6 951.8 917.9 939.2 837.5C957.2 827.95 972.6 816.25 985 802.2C1025.9 755.55 1033.9 689.2 1018.4 609.7C981.4 419.4500000000001 854.5999999999999 353.7000000000001 692.6999999999999 353.7000000000001H667.6999999999999A40.25 40.25 0 0 1 627.9999999999999 319.7500000000001L592.9 100.6000000000001A40.2 40.2 0 0 0 553.1999999999999 66.6500000000003H336A24.15 24.15 0 0 0 312.15 94.5500000000002L325.85 181.3500000000003H177.5zM519.35 626.05H563.5500000000001C723.0500000000001 626.05 808.3000000000001 686.65 837.7 837.5C838.7 842.55 839.5500000000001 847.65 840.3500000000001 852.95C848.6500000000001 905.95 842.8500000000001 930.6 820.4500000000002 956.1C797.2000000000002 982.6 740.3000000000002 1000 650.6500000000001 1000H375.6500000000001L262.3 281.3499999999999H340.35L376.85 512.75L377.2000000000001 512.6999999999999A145.75 145.75 0 0 0 519.35 626.05z","horizAdvX":"1200"},"pen-nib-fill":{"path":["M0 0h24v24H0z","M4.929 21.485l5.846-5.846a2 2 0 1 0-1.414-1.414l-5.846 5.846-1.06-1.06c2.827-3.3 3.888-6.954 5.302-13.082l6.364-.707 5.657 5.657-.707 6.364c-6.128 1.414-9.782 2.475-13.081 5.303l-1.061-1.06zM16.596 2.04l6.347 6.346a.5.5 0 0 1-.277.848l-1.474.23-5.656-5.656.212-1.485a.5.5 0 0 1 .848-.283z"],"unicode":"","glyph":"M246.45 125.75L538.75 418.0500000000001A100 100 0 1 1 468.05 488.75L175.75 196.4500000000001L122.75 249.4500000000001C264.1 414.4500000000001 317.15 597.1500000000001 387.85 903.55L706.05 938.9L988.9 656.0500000000001L953.55 337.85C647.1499999999999 267.15 464.4499999999999 214.1 299.5 72.7000000000001L246.45 125.7000000000001zM829.8 1098L1147.15 780.7A25 25 0 0 0 1133.3 738.3L1059.6 726.8L776.8000000000001 1009.6L787.4000000000001 1083.85A25 25 0 0 0 829.8 1098z","horizAdvX":"1200"},"pen-nib-line":{"path":["M0 0h24v24H0z","M16.596 1.04l6.347 6.346a.5.5 0 0 1-.277.848l-1.474.23-5.656-5.656.212-1.485a.5.5 0 0 1 .848-.283zM4.595 20.15c3.722-3.331 7.995-4.328 12.643-5.52l.446-4.018-4.297-4.297-4.018.446c-1.192 4.648-2.189 8.92-5.52 12.643L2.454 18.01c2.828-3.3 3.89-6.953 5.303-13.081l6.364-.707 5.657 5.657-.707 6.364c-6.128 1.414-9.782 2.475-13.081 5.303L4.595 20.15zm5.284-6.03a2 2 0 1 1 2.828-2.828A2 2 0 0 1 9.88 14.12z"],"unicode":"","glyph":"M829.8 1148L1147.15 830.7A25 25 0 0 0 1133.3 788.3L1059.6 776.8L776.8000000000001 1059.6L787.4000000000001 1133.85A25 25 0 0 0 829.8 1148zM229.75 192.5000000000001C415.85 359.0500000000001 629.5 408.9000000000001 861.9 468.5L884.2 669.4000000000001L669.35 884.25L468.45 861.95C408.85 629.5500000000001 359 415.9500000000002 192.45 229.8L122.7 299.4999999999999C264.1 464.5 317.2 647.1499999999999 387.85 953.55L706.05 988.8999999999997L988.9 706.05L953.55 387.8499999999999C647.1499999999999 317.1499999999999 464.4499999999999 264.0999999999998 299.5 122.6999999999998L229.75 192.5000000000001zM493.95 494.0000000000001A100 100 0 1 0 635.3499999999999 635.4000000000001A100 100 0 0 0 494.0000000000001 494z","horizAdvX":"1200"},"pencil-fill":{"path":["M0 0h24v24H0z","M12.9 6.858l4.242 4.243L7.242 21H3v-4.243l9.9-9.9zm1.414-1.414l2.121-2.122a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414l-2.122 2.121-4.242-4.242z"],"unicode":"","glyph":"M645 857.1L857.1 644.95L362.1 150H150V362.1500000000001L645 857.1500000000001zM715.7 927.8L821.7499999999999 1033.9A50 50 0 0 0 892.45 1033.9L1033.9 892.45A50 50 0 0 0 1033.9 821.75L927.8 715.7L715.7 927.8z","horizAdvX":"1200"},"pencil-line":{"path":["M0 0h24v24H0z","M15.728 9.686l-1.414-1.414L5 17.586V19h1.414l9.314-9.314zm1.414-1.414l1.414-1.414-1.414-1.414-1.414 1.414 1.414 1.414zM7.242 21H3v-4.243L16.435 3.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 21z"],"unicode":"","glyph":"M786.4 715.7L715.7 786.4L250 320.7000000000001V250H320.7L786.4 715.7zM857.1 786.4L927.8 857.0999999999999L857.1 927.8L786.4 857.0999999999999L857.1 786.4zM362.1 150H150V362.1500000000001L821.7499999999999 1033.9A50 50 0 0 0 892.45 1033.9L1033.9 892.45A50 50 0 0 0 1033.9 821.75L362.1500000000001 150z","horizAdvX":"1200"},"pencil-ruler-2-fill":{"path":["M0 0h24v24H0z","M5.636 12.707l1.828 1.829L8.88 13.12 7.05 11.293l1.414-1.414 1.829 1.828 1.414-1.414L9.88 8.464l1.414-1.414L13.12 8.88l1.415-1.415-1.829-1.828 2.829-2.828a1 1 0 0 1 1.414 0l4.242 4.242a1 1 0 0 1 0 1.414L8.464 21.192a1 1 0 0 1-1.414 0L2.808 16.95a1 1 0 0 1 0-1.414l2.828-2.829zm8.485 5.656l4.243-4.242L21 16.757V21h-4.242l-2.637-2.637zM5.636 9.878L2.807 7.05a1 1 0 0 1 0-1.415l2.829-2.828a1 1 0 0 1 1.414 0L9.88 5.635 5.636 9.878z"],"unicode":"","glyph":"M281.8 564.65L373.2000000000001 473.1999999999999L444.0000000000001 544L352.5 635.35L423.2000000000001 706.05L514.6500000000001 614.6500000000001L585.35 685.35L494.0000000000001 776.8L564.7 847.5L656 756L726.75 826.75L635.3 918.15L776.75 1059.55A50 50 0 0 0 847.45 1059.55L1059.5500000000002 847.45A50 50 0 0 0 1059.5500000000002 776.75L423.2000000000001 140.4000000000001A50 50 0 0 0 352.5000000000001 140.4000000000001L140.4 352.5A50 50 0 0 0 140.4 423.2000000000001L281.8 564.6500000000001zM706.05 281.85L918.1999999999998 493.95L1050 362.15V150H837.9L706.05 281.85zM281.8 706.1L140.35 847.5A50 50 0 0 0 140.35 918.25L281.8 1059.65A50 50 0 0 0 352.5 1059.65L494.0000000000001 918.25L281.8 706.1z","horizAdvX":"1200"},"pencil-ruler-2-line":{"path":["M0 0h24v24H0z","M7.05 14.121L4.93 16.243l2.828 2.828L19.071 7.757 16.243 4.93 14.12 7.05l1.415 1.414L14.12 9.88l-1.414-1.415-1.414 1.415 1.414 1.414-1.414 1.414-1.414-1.414-1.415 1.414 1.415 1.414-1.415 1.415L7.05 14.12zm9.9-11.313l4.242 4.242a1 1 0 0 1 0 1.414L8.464 21.192a1 1 0 0 1-1.414 0L2.808 16.95a1 1 0 0 1 0-1.414L15.536 2.808a1 1 0 0 1 1.414 0zM14.12 18.363l1.415-1.414 2.242 2.243h1.414v-1.414l-2.242-2.243 1.414-1.414L21 16.757V21h-4.242l-2.637-2.637zM5.636 9.878L2.807 7.05a1 1 0 0 1 0-1.415l2.829-2.828a1 1 0 0 1 1.414 0L9.88 5.635 8.464 7.05 6.343 4.928 4.929 6.343l2.121 2.12-1.414 1.415z"],"unicode":"","glyph":"M352.5 493.9499999999999L246.5 387.85L387.9 246.4500000000001L953.55 812.1500000000001L812.15 953.5L706 847.5L776.75 776.8L706 706L635.3 776.75L564.6 706L635.3 635.3000000000001L564.6 564.6000000000001L493.9 635.3000000000001L423.1500000000001 564.6000000000001L493.9 493.9000000000001L423.1500000000001 423.1500000000001L352.5 494zM847.5 1059.6L1059.6 847.5A50 50 0 0 0 1059.6 776.8L423.2000000000001 140.4000000000001A50 50 0 0 0 352.5000000000001 140.4000000000001L140.4 352.5A50 50 0 0 0 140.4 423.2000000000001L776.8 1059.6A50 50 0 0 0 847.5 1059.6zM706 281.85L776.75 352.5500000000001L888.85 240.4000000000002H959.5500000000002V311.1000000000003L847.45 423.2500000000003L918.1500000000002 493.9500000000003L1050 362.15V150H837.9L706.05 281.85zM281.8 706.1L140.35 847.5A50 50 0 0 0 140.35 918.25L281.8 1059.65A50 50 0 0 0 352.5 1059.65L494.0000000000001 918.25L423.2000000000001 847.5L317.15 953.6L246.45 882.85L352.5000000000001 776.8499999999999L281.8000000000001 706.1z","horizAdvX":"1200"},"pencil-ruler-fill":{"path":["M0 0h24v24H0z","M5 18v2h4v-2H5zM3 7l4-5 4 5v15H3V7zm18 1h-2v2h2v2h-3v2h3v2h-2v2h2v3a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v3z"],"unicode":"","glyph":"M250 300V200H450V300H250zM150 850L350 1100L550 850V100H150V850zM1050 800H950V700H1050V600H900V500H1050V400H950V300H1050V150A50 50 0 0 0 1000 100H700A50 50 0 0 0 650 150V950A50 50 0 0 0 700 1000H1000A50 50 0 0 0 1050 950V800z","horizAdvX":"1200"},"pencil-ruler-line":{"path":["M0 0h24v24H0z","M5 8v12h4V8H5zM3 7l4-5 4 5v15H3V7zm16 9v-2h-3v-2h3v-2h-2V8h2V6h-4v14h4v-2h-2v-2h2zM14 4h6a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 800V200H450V800H250zM150 850L350 1100L550 850V100H150V850zM950 400V500H800V600H950V700H850V800H950V900H750V200H950V300H850V400H950zM700 1000H1000A50 50 0 0 0 1050 950V150A50 50 0 0 0 1000 100H700A50 50 0 0 0 650 150V950A50 50 0 0 0 700 1000z","horizAdvX":"1200"},"percent-fill":{"path":["M0 0h24v24H0z","M17.5 21a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm-11-11a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm12.571-6.485l1.414 1.414L4.93 20.485l-1.414-1.414L19.07 3.515z"],"unicode":"","glyph":"M875 150A175 175 0 1 0 875 500A175 175 0 0 0 875 150zM325 700A175 175 0 1 0 325 1050A175 175 0 0 0 325 700zM953.55 1024.25L1024.25 953.55L246.5 175.75L175.8 246.4500000000001L953.5 1024.25z","horizAdvX":"1200"},"percent-line":{"path":["M0 0h24v24H0z","M17.5 21a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-11-9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7zm0-2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm12.571-4.485l1.414 1.414L4.93 20.485l-1.414-1.414L19.07 3.515z"],"unicode":"","glyph":"M875 150A175 175 0 1 0 875 500A175 175 0 0 0 875 150zM875 250A75 75 0 1 1 875 400A75 75 0 0 1 875 250zM325 700A175 175 0 1 0 325 1050A175 175 0 0 0 325 700zM325 800A75 75 0 1 1 325 950A75 75 0 0 1 325 800zM953.55 1024.25L1024.25 953.55L246.5 175.75L175.8 246.4500000000001L953.5 1024.25z","horizAdvX":"1200"},"phone-camera-fill":{"path":["M0 0h24v24H0z","M14.803 4A6 6 0 0 0 23 12.197V19c0 .553-.44 1.001-1.002 1.001H2.002A1 1 0 0 1 1 19V5c0-.552.44-1 1.002-1h12.8zM20 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-1 6v3h2v-3h-2z"],"unicode":"","glyph":"M740.1500000000001 1000A300 300 0 0 1 1150 590.1500000000001V250C1150 222.3499999999999 1128 199.9499999999999 1099.9 199.9499999999999H100.1A50 50 0 0 0 50 250V950C50 977.6 72 1000 100.1 1000H740.1zM1000 650A200 200 0 1 0 1000 1050A200 200 0 0 0 1000 650zM1000 750A100 100 0 1 1 1000 950A100 100 0 0 1 1000 750zM950 450V300H1050V450H950z","horizAdvX":"1200"},"phone-camera-line":{"path":["M0 0h24v24H0z","M14.803 4a5.96 5.96 0 0 0-.72 2H3v12h18v-5.083a5.96 5.96 0 0 0 2-.72V19c0 .553-.44 1.001-1.002 1.001H2.002A1 1 0 0 1 1 19V5c0-.552.44-1 1.002-1h12.8zM20 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm-2 2h2v3h-2v-3z"],"unicode":"","glyph":"M740.1500000000001 1000A298 298 0 0 1 704.15 900H150V300H1050V554.15A298 298 0 0 1 1150 590.1500000000001V250C1150 222.3499999999999 1128 199.9499999999999 1099.9 199.9499999999999H100.1A50 50 0 0 0 50 250V950C50 977.6 72 1000 100.1 1000H740.1zM1000 750A100 100 0 1 1 1000 950A100 100 0 0 1 1000 750zM1000 650A200 200 0 1 0 1000 1050A200 200 0 0 0 1000 650zM900 550H1000V400H900V550z","horizAdvX":"1200"},"phone-fill":{"path":["M0 0h24v24H0z","M21 16.42v3.536a1 1 0 0 1-.93.998c-.437.03-.794.046-1.07.046-8.837 0-16-7.163-16-16 0-.276.015-.633.046-1.07A1 1 0 0 1 4.044 3H7.58a.5.5 0 0 1 .498.45c.023.23.044.413.064.552A13.901 13.901 0 0 0 9.35 8.003c.095.2.033.439-.147.567l-2.158 1.542a13.047 13.047 0 0 0 6.844 6.844l1.54-2.154a.462.462 0 0 1 .573-.149 13.901 13.901 0 0 0 4 1.205c.139.02.322.042.55.064a.5.5 0 0 1 .449.498z"],"unicode":"","glyph":"M1050 378.9999999999999V202.1999999999998A50 50 0 0 0 1003.5 152.2999999999997C981.65 150.7999999999997 963.8 149.9999999999998 950 149.9999999999998C508.15 149.9999999999998 150 508.1499999999999 150 949.9999999999998C150 963.7999999999998 150.75 981.6499999999997 152.3 1003.4999999999998A50 50 0 0 0 202.2 1050H379A25 25 0 0 0 403.9 1027.5C405.05 1016 406.1 1006.85 407.1 999.9A695.05 695.05 0 0 1 467.5 799.85C472.25 789.85 469.15 777.9 460.15 771.5L352.25 694.4A652.35 652.35 0 0 1 694.4499999999999 352.2000000000001L771.4499999999999 459.9A23.1 23.1 0 0 0 800.0999999999999 467.35A695.05 695.05 0 0 1 1000.1 407.1C1007.05 406.1 1016.2 405 1027.6 403.9A25 25 0 0 0 1050.05 378.9999999999999z","horizAdvX":"1200"},"phone-find-fill":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v8.529A6 6 0 0 0 9 16c0 3.238 2.76 6 6 6H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-3 10a4 4 0 0 1 3.446 6.032l2.21 2.21-1.413 1.415-2.211-2.21A4 4 0 1 1 15 12zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V623.55A300 300 0 0 1 450 400C450 238.1 588 100 750 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM750 600A200 200 0 0 0 922.3 298.4L1032.8000000000002 187.9L962.15 117.1500000000001L851.6000000000001 227.6500000000001A200 200 0 1 0 750 600zM750 500A100 100 0 1 1 750 300A100 100 0 0 1 750 500z","horizAdvX":"1200"},"phone-find-line":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v8h-2V4H7v16h4v2H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-3 10a4 4 0 0 1 3.446 6.032l2.21 2.21-1.413 1.415-2.212-2.21A4 4 0 1 1 15 12zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V650H850V1000H350V200H550V100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM750 600A200 200 0 0 0 922.3 298.4L1032.8000000000002 187.9L962.15 117.1500000000001L851.5500000000001 227.6500000000001A200 200 0 1 0 750 600zM750 500A100 100 0 1 1 750 300A100 100 0 0 1 750 500z","horizAdvX":"1200"},"phone-line":{"path":["M0 0h24v24H0z","M9.366 10.682a10.556 10.556 0 0 0 3.952 3.952l.884-1.238a1 1 0 0 1 1.294-.296 11.422 11.422 0 0 0 4.583 1.364 1 1 0 0 1 .921.997v4.462a1 1 0 0 1-.898.995c-.53.055-1.064.082-1.602.082C9.94 21 3 14.06 3 5.5c0-.538.027-1.072.082-1.602A1 1 0 0 1 4.077 3h4.462a1 1 0 0 1 .997.921A11.422 11.422 0 0 0 10.9 8.504a1 1 0 0 1-.296 1.294l-1.238.884zm-2.522-.657l1.9-1.357A13.41 13.41 0 0 1 7.647 5H5.01c-.006.166-.009.333-.009.5C5 12.956 11.044 19 18.5 19c.167 0 .334-.003.5-.01v-2.637a13.41 13.41 0 0 1-3.668-1.097l-1.357 1.9a12.442 12.442 0 0 1-1.588-.75l-.058-.033a12.556 12.556 0 0 1-4.702-4.702l-.033-.058a12.442 12.442 0 0 1-.75-1.588z"],"unicode":"","glyph":"M468.3 665.9A527.8 527.8 0 0 1 665.9 468.3L710.1 530.1999999999999A50 50 0 0 0 774.8000000000001 544.9999999999999A571.1 571.1 0 0 1 1003.95 476.7999999999998A50 50 0 0 0 1050 426.95V203.8499999999999A50 50 0 0 0 1005.1 154.0999999999999C978.6 151.3499999999999 951.9 149.9999999999998 925 149.9999999999998C497 150 150 497 150 925C150 951.9 151.35 978.6 154.1 1005.1A50 50 0 0 0 203.85 1050H426.95A50 50 0 0 0 476.8 1003.95A571.1 571.1 0 0 1 545 774.8A50 50 0 0 0 530.2 710.1L468.3000000000001 665.9zM342.2 698.75L437.2 766.5999999999999A670.5 670.5 0 0 0 382.35 950H250.5C250.2 941.7 250.05 933.35 250.05 925C250 552.2 552.2 250 925 250C933.3500000000003 250 941.7 250.15 950 250.5000000000001V382.3500000000002A670.5 670.5 0 0 0 766.6 437.2000000000001L698.7500000000001 342.2000000000001A622.1 622.1 0 0 0 619.35 379.7000000000001L616.45 381.3500000000002A627.8 627.8 0 0 0 381.35 616.4500000000002L379.7 619.3500000000001A622.1 622.1 0 0 0 342.2 698.75z","horizAdvX":"1200"},"phone-lock-fill":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1l.001 7.1A5.002 5.002 0 0 0 13.1 14H12v8H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm0 10a3 3 0 0 1 3 3v1h1v5a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-5h1v-1a3 3 0 0 1 3-3zm0 2c-.513 0-1 .45-1 1v1h2v-1a1 1 0 0 0-1-1z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050L950.05 695A250.09999999999997 250.09999999999997 0 0 1 655 500H600V100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM900 600A150 150 0 0 0 1050 450V400H1100V150A50 50 0 0 0 1050 100H750A50 50 0 0 0 700 150V400H750V450A150 150 0 0 0 900 600zM900 500C874.3499999999999 500 850 477.5 850 450V400H950V450A50 50 0 0 1 900 500z","horizAdvX":"1200"},"phone-lock-line":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v7h-2V4H7v16h5v2H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm0 10a3 3 0 0 1 3 3v1h1v5a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-5h1v-1a3 3 0 0 1 3-3zm2 6h-4v2h4v-2zm-2-4c-.508 0-1 .45-1 1v1h2v-1a1 1 0 0 0-1-1z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V700H850V1000H350V200H600V100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM900 600A150 150 0 0 0 1050 450V400H1100V150A50 50 0 0 0 1050 100H750A50 50 0 0 0 700 150V400H750V450A150 150 0 0 0 900 600zM1000 300H800V200H1000V300zM900 500C874.6 500 850 477.5 850 450V400H950V450A50 50 0 0 1 900 500z","horizAdvX":"1200"},"picture-in-picture-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zM6.707 6.293l2.25 2.25L11 6.5V12H5.5l2.043-2.043-2.25-2.25 1.414-1.414z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM335.35 885.3499999999999L447.85 772.85L550 875V600H275L377.1500000000001 702.15L264.6500000000001 814.65L335.35 885.3499999999999z","horizAdvX":"1200"},"picture-in-picture-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-1 2h-6v4h6v-4zM6.707 6.293l2.25 2.25L11 6.5V12H5.5l2.043-2.043-2.25-2.25 1.414-1.414z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM1000 450H700V250H1000V450zM335.35 885.3499999999999L447.85 772.85L550 875V600H275L377.1500000000001 702.15L264.6500000000001 814.65L335.35 885.3499999999999z","horizAdvX":"1200"},"picture-in-picture-exit-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-9.5-6L9.457 9.043l2.25 2.25-1.414 1.414-2.25-2.25L6 12.5V7h5.5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM575 850L472.85 747.85L585.35 635.35L514.6500000000001 564.6500000000001L402.1500000000001 677.1500000000001L300 575V850H575z","horizAdvX":"1200"},"picture-in-picture-exit-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-1 2h-6v4h6v-4zm-8.5-8L9.457 9.043l2.25 2.25-1.414 1.414-2.25-2.25L6 12.5V7h5.5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM1000 450H700V250H1000V450zM575 850L472.85 747.85L585.35 635.35L514.6500000000001 564.6500000000001L402.1500000000001 677.1500000000001L300 575V850H575z","horizAdvX":"1200"},"picture-in-picture-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050z","horizAdvX":"1200"},"picture-in-picture-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-1 2h-6v4h6v-4z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650H1000V950H200V250H500V150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1050 550A50 50 0 0 0 1100 500V200A50 50 0 0 0 1050 150H650A50 50 0 0 0 600 200V500A50 50 0 0 0 650 550H1050zM1000 450H700V250H1000V450z","horizAdvX":"1200"},"pie-chart-2-fill":{"path":["M0 0h24v24H0z","M11 2.05V13h10.95c-.501 5.053-4.765 9-9.95 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm2-1.507C18.553 1.02 22.979 5.447 23.457 11H13V.543z"],"unicode":"","glyph":"M550 1097.5V550H1097.5C1072.4499999999998 297.3499999999999 859.2499999999999 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM650 1172.85C927.65 1149 1148.95 927.65 1172.8500000000001 650H650V1172.85z","horizAdvX":"1200"},"pie-chart-2-line":{"path":["M0 0h24v24H0z","M11 .543c.33-.029.663-.043 1-.043C18.351.5 23.5 5.649 23.5 12c0 .337-.014.67-.043 1h-1.506c-.502 5.053-4.766 9-9.951 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95V.542zM11 13V4.062A8.001 8.001 0 0 0 12 20a8.001 8.001 0 0 0 7.938-7H11zm10.448-2A9.503 9.503 0 0 0 13 2.552V11h8.448z"],"unicode":"","glyph":"M550 1172.85C566.5 1174.3 583.15 1175 600 1175C917.55 1175 1175 917.55 1175 600C1175 583.15 1174.3 566.5 1172.8500000000001 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5V1172.9zM550 550V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400.04999999999995 400.04999999999995 0 0 1 996.9 550H550zM1072.4 650A475.15000000000003 475.15000000000003 0 0 1 650 1072.4V650H1072.4z","horizAdvX":"1200"},"pie-chart-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13.9 10H11V7.1a5.002 5.002 0 0 0 1 9.9 5.002 5.002 0 0 0 4.9-4zm0-2A5.006 5.006 0 0 0 13 7.1V11h3.9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM844.9999999999999 550H550V845A250.09999999999997 250.09999999999997 0 0 1 600 350A250.09999999999997 250.09999999999997 0 0 1 844.9999999999999 550zM844.9999999999999 650A250.30000000000004 250.30000000000004 0 0 1 650 845V650H844.9999999999999z","horizAdvX":"1200"},"pie-chart-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm12.9 8A5.002 5.002 0 0 1 7 12a5.002 5.002 0 0 1 4-4.9V13h5.9zm0-2H13V7.1a5.006 5.006 0 0 1 3.9 3.9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM844.9999999999999 550A250.09999999999997 250.09999999999997 0 0 0 350 600A250.09999999999997 250.09999999999997 0 0 0 550 845V550H844.9999999999999zM844.9999999999999 650H650V845A250.30000000000004 250.30000000000004 0 0 0 844.9999999999999 650z","horizAdvX":"1200"},"pie-chart-fill":{"path":["M0 0h24v24H0z","M11 2.05V13h10.95c-.501 5.053-4.765 9-9.95 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm2 0A10.003 10.003 0 0 1 21.95 11H13V2.05z"],"unicode":"","glyph":"M550 1097.5V550H1097.5C1072.4499999999998 297.3499999999999 859.2499999999999 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM650 1097.5A500.15000000000003 500.15000000000003 0 0 0 1097.5 650H650V1097.5z","horizAdvX":"1200"},"pie-chart-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12c0-4.478 2.943-8.268 7-9.542v2.124A8.003 8.003 0 0 0 12 20a8.003 8.003 0 0 0 7.418-5h2.124c-1.274 4.057-5.064 7-9.542 7zm9.95-9H11V2.05c.329-.033.663-.05 1-.05 5.523 0 10 4.477 10 10 0 .337-.017.671-.05 1zM13 4.062V11h6.938A8.004 8.004 0 0 0 13 4.062z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600C100 823.9 247.15 1013.4 450 1077.1V970.9A400.15000000000003 400.15000000000003 0 0 1 600 200A400.15000000000003 400.15000000000003 0 0 1 970.9 450H1077.1C1013.3999999999997 247.1499999999999 823.8999999999999 100 599.9999999999999 100zM1097.5 550H550V1097.5C566.45 1099.15 583.15 1100 600 1100C876.15 1100 1100 876.15 1100 600C1100 583.15 1099.15 566.45 1097.5 550zM650 996.9V650H996.9A400.20000000000005 400.20000000000005 0 0 1 650 996.9z","horizAdvX":"1200"},"pin-distance-fill":{"path":["M0 0h24v24H0z","M11.39 10.39L7.5 14.277 3.61 10.39a5.5 5.5 0 1 1 7.78 0zM7.5 8.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm12.89 10.89l-3.89 3.888-3.89-3.889a5.5 5.5 0 1 1 7.78 0zM16.5 17.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M569.5 680.5L375 486.1500000000001L180.5 680.5A275 275 0 1 0 569.5 680.5zM375 775A100 100 0 1 1 375 975A100 100 0 0 1 375 775zM1019.5 230.5L825 36.1000000000001L630.5 230.5500000000001A275 275 0 1 0 1019.5 230.5500000000001zM825 325A100 100 0 1 1 825 525A100 100 0 0 1 825 325z","horizAdvX":"1200"},"pin-distance-line":{"path":["M0 0h24v24H0z","M9.975 8.975a3.5 3.5 0 1 0-4.95 0L7.5 11.45l2.475-2.475zM7.5 14.278L3.61 10.39a5.5 5.5 0 1 1 7.78 0L7.5 14.28zM7.5 8a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 12.45l2.475-2.475a3.5 3.5 0 1 0-4.95 0L16.5 20.45zm3.89-1.06l-3.89 3.888-3.89-3.889a5.5 5.5 0 1 1 7.78 0zM16.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M498.75 751.25A175 175 0 1 1 251.25 751.25L375 627.5L498.75 751.25zM375 486.1L180.5 680.5A275 275 0 1 0 569.5 680.5L375 486zM375 800A75 75 0 1 0 375 950A75 75 0 0 0 375 800zM825 177.5L948.7500000000002 301.2500000000001A175 175 0 1 1 701.2500000000001 301.2500000000001L825 177.5zM1019.5 230.5L825 36.1000000000001L630.5 230.5500000000001A275 275 0 1 0 1019.5 230.5500000000001zM825 350A75 75 0 1 0 825 500A75 75 0 0 0 825 350z","horizAdvX":"1200"},"ping-pong-fill":{"path":["M0 0h24v24H0z","M11.5 2a9.5 9.5 0 0 1 9.5 9.5 9.46 9.46 0 0 1-1.003 4.254l2.463 2.464a1 1 0 0 1 0 1.414l-2.828 2.828a1 1 0 0 1-1.414 0l-2.464-2.463A9.46 9.46 0 0 1 11.5 21a9.5 9.5 0 0 1 0-19zm5.303 13.388l-1.414 1.414 3.536 3.535 1.414-1.414-3.536-3.535zm1.864-6.105l-9.384 9.384c.7.216 1.445.333 2.217.333a7.48 7.48 0 0 0 2.74-.516l-.972-.974a1 1 0 0 1 0-1.414l2.828-2.828a1 1 0 0 1 1.414 0l.974.972A7.48 7.48 0 0 0 19 11.5c0-.772-.117-1.516-.333-2.217z"],"unicode":"","glyph":"M575 1100A474.99999999999994 474.99999999999994 0 0 0 1050 625A473.00000000000006 473.00000000000006 0 0 0 999.85 412.3000000000001L1123 289.1A50 50 0 0 0 1123 218.4L981.6 77A50 50 0 0 0 910.9 77L787.6999999999999 200.15A473.00000000000006 473.00000000000006 0 0 0 575 150A474.99999999999994 474.99999999999994 0 0 0 575 1100zM840.1500000000001 430.6L769.45 359.9L946.25 183.15L1016.9500000000002 253.8500000000002L840.1500000000001 430.6000000000002zM933.3500000000003 735.85L464.1500000000001 266.6499999999999C499.15 255.8499999999999 536.4000000000001 250 575.0000000000001 250A374 374 0 0 1 712.0000000000001 275.8L663.4000000000001 324.4999999999999A50 50 0 0 0 663.4000000000001 395.2000000000001L804.8000000000002 536.5999999999999A50 50 0 0 0 875.5000000000002 536.5999999999999L924.2000000000002 488A374 374 0 0 1 950 625C950 663.6 944.15 700.8 933.3500000000003 735.85z","horizAdvX":"1200"},"ping-pong-line":{"path":["M0 0h24v24H0z","M11.5 2a9.5 9.5 0 0 1 9.5 9.5 9.46 9.46 0 0 1-1.003 4.254l2.463 2.464a1 1 0 0 1 0 1.414l-2.828 2.828a1 1 0 0 1-1.414 0l-2.464-2.463A9.46 9.46 0 0 1 11.5 21a9.5 9.5 0 0 1 0-19zm5.303 13.388l-1.414 1.414 3.536 3.535 1.414-1.414-3.536-3.535zm1.864-6.105l-9.384 9.384c.7.216 1.445.333 2.217.333a7.48 7.48 0 0 0 2.74-.516l-.972-.974a1 1 0 0 1 0-1.414l2.828-2.828a1 1 0 0 1 1.414 0l.974.972A7.48 7.48 0 0 0 19 11.5c0-.772-.117-1.516-.333-2.217zM11.5 4a7.5 7.5 0 0 0-4.136 13.757L17.757 7.364A7.493 7.493 0 0 0 11.5 4z"],"unicode":"","glyph":"M575 1100A474.99999999999994 474.99999999999994 0 0 0 1050 625A473.00000000000006 473.00000000000006 0 0 0 999.85 412.3000000000001L1123 289.1A50 50 0 0 0 1123 218.4L981.6 77A50 50 0 0 0 910.9 77L787.6999999999999 200.15A473.00000000000006 473.00000000000006 0 0 0 575 150A474.99999999999994 474.99999999999994 0 0 0 575 1100zM840.1500000000001 430.6L769.45 359.9L946.25 183.15L1016.9500000000002 253.8500000000002L840.1500000000001 430.6000000000002zM933.3500000000003 735.85L464.1500000000001 266.6499999999999C499.15 255.8499999999999 536.4000000000001 250 575.0000000000001 250A374 374 0 0 1 712.0000000000001 275.8L663.4000000000001 324.4999999999999A50 50 0 0 0 663.4000000000001 395.2000000000001L804.8000000000002 536.5999999999999A50 50 0 0 0 875.5000000000002 536.5999999999999L924.2000000000002 488A374 374 0 0 1 950 625C950 663.6 944.15 700.8 933.3500000000003 735.85zM575 1000A375 375 0 0 1 368.2 312.1500000000001L887.85 831.8A374.65000000000003 374.65000000000003 0 0 1 575 1000z","horizAdvX":"1200"},"pinterest-fill":{"path":["M0 0h24v24H0z","M13.37 2.094A10.003 10.003 0 0 0 8.002 21.17a7.757 7.757 0 0 1 .163-2.293c.185-.839 1.296-5.463 1.296-5.463a3.739 3.739 0 0 1-.324-1.577c0-1.485.857-2.593 1.923-2.593a1.334 1.334 0 0 1 1.342 1.508c0 .9-.578 2.262-.88 3.54a1.544 1.544 0 0 0 1.575 1.923c1.898 0 3.17-2.431 3.17-5.301 0-2.2-1.457-3.848-4.143-3.848a4.746 4.746 0 0 0-4.93 4.794 2.96 2.96 0 0 0 .648 1.97.48.48 0 0 1 .162.554c-.046.184-.162.623-.208.784a.354.354 0 0 1-.51.254c-1.384-.554-2.036-2.077-2.036-3.816 0-2.847 2.384-6.255 7.154-6.255 3.796 0 6.32 2.777 6.32 5.747 0 3.909-2.177 6.848-5.394 6.848a2.861 2.861 0 0 1-2.454-1.246s-.578 2.316-.692 2.754a8.026 8.026 0 0 1-1.019 2.131c.923.28 1.882.42 2.846.416a9.988 9.988 0 0 0 9.996-10.003 10.002 10.002 0 0 0-8.635-9.903z"],"unicode":"","glyph":"M668.5 1095.3A500.15000000000003 500.15000000000003 0 0 1 400.1 141.5A387.85 387.85 0 0 0 408.2500000000001 256.1499999999999C417.5000000000001 298.0999999999998 473.05 529.3 473.05 529.3A186.95 186.95 0 0 0 456.85 608.15C456.85 682.3999999999999 499.7 737.8 553 737.8A66.69999999999999 66.69999999999999 0 0 0 620.1 662.3999999999999C620.1 617.3999999999999 591.2 549.2999999999998 576.1 485.3999999999999A77.2 77.2 0 0 1 654.85 389.2499999999998C749.75 389.2499999999998 813.35 510.7999999999998 813.35 654.2999999999998C813.35 764.3 740.4999999999999 846.6999999999998 606.1999999999999 846.6999999999998A237.30000000000004 237.30000000000004 0 0 1 359.7 606.9999999999999A148 148 0 0 1 392.0999999999999 508.4999999999998A24.000000000000004 24.000000000000004 0 0 0 400.2 480.7999999999998C397.9 471.5999999999998 392.1 449.6499999999999 389.8 441.5999999999998A17.7 17.7 0 0 0 364.3 428.8999999999998C295.1 456.5999999999998 262.5 532.7499999999998 262.5 619.6999999999997C262.5 762.0499999999997 381.7000000000001 932.4499999999998 620.2 932.4499999999998C810 932.4499999999998 936.2 793.5999999999997 936.2 645.0999999999997C936.2 449.6499999999998 827.35 302.6999999999997 666.5 302.6999999999997A143.05 143.05 0 0 0 543.8 364.9999999999997S514.9 249.1999999999997 509.2 227.2999999999996A401.3 401.3 0 0 0 458.2499999999999 120.7499999999996C504.4 106.7499999999996 552.3499999999999 99.7499999999996 600.55 99.9499999999996A499.4 499.4 0 0 1 1100.35 600.0999999999996A500.1000000000001 500.1000000000001 0 0 1 668.5999999999999 1095.2499999999995z","horizAdvX":"1200"},"pinterest-line":{"path":["M0 0h24v24H0z","M8.49 19.191c.024-.336.072-.671.144-1.001.063-.295.254-1.13.534-2.34l.007-.03.387-1.668c.079-.34.14-.604.181-.692a3.46 3.46 0 0 1-.284-1.423c0-1.337.756-2.373 1.736-2.373.36-.006.704.15.942.426.238.275.348.644.302.996 0 .453-.085.798-.453 2.035-.071.238-.12.404-.166.571-.051.188-.095.358-.132.522-.096.386-.008.797.237 1.106a1.2 1.2 0 0 0 1.006.456c1.492 0 2.6-1.985 2.6-4.548 0-1.97-1.29-3.274-3.432-3.274A3.878 3.878 0 0 0 9.2 9.1a4.13 4.13 0 0 0-1.195 2.961 2.553 2.553 0 0 0 .512 1.644c.181.14.25.383.175.59-.041.168-.14.552-.176.68a.41.41 0 0 1-.216.297.388.388 0 0 1-.355.002c-1.16-.479-1.796-1.778-1.796-3.44 0-2.985 2.491-5.584 6.192-5.584 3.135 0 5.481 2.329 5.481 5.14 0 3.532-1.932 6.104-4.69 6.104a2.508 2.508 0 0 1-2.046-.959l-.043.177-.207.852-.002.007c-.146.6-.248 1.017-.288 1.174-.106.355-.24.703-.4 1.04a8 8 0 1 0-1.656-.593zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M424.5 240.4500000000001C425.7 257.25 428.1 274 431.7000000000001 290.5000000000001C434.85 305.2500000000003 444.4 347.0000000000001 458.4 407.5000000000001L458.7500000000001 409.0000000000001L478.1000000000001 492.4000000000001C482.0500000000001 509.4 485.1000000000001 522.6 487.15 527A173 173 0 0 0 472.95 598.1500000000001C472.95 665 510.75 716.8000000000002 559.75 716.8000000000002C577.75 717.1000000000001 594.95 709.3000000000001 606.85 695.5000000000001C618.75 681.7500000000001 624.2500000000001 663.3000000000001 621.95 645.7C621.95 623.0500000000001 617.6999999999999 605.8000000000001 599.3000000000001 543.95C595.75 532.0500000000001 593.3000000000001 523.7500000000001 591 515.4000000000001C588.45 506 586.25 497.5 584.4 489.3000000000001C579.6 470.0000000000001 584.0000000000001 449.4500000000001 596.25 434.0000000000001A60 60 0 0 1 646.5500000000001 411.2000000000001C721.1500000000001 411.2000000000001 776.5500000000001 510.45 776.5500000000001 638.6000000000001C776.5500000000001 737.1000000000001 712.05 802.3000000000002 604.95 802.3000000000002A193.9 193.9 0 0 1 459.9999999999999 745A206.5 206.5 0 0 1 400.25 596.95A127.65000000000002 127.65000000000002 0 0 1 425.85 514.75C434.8999999999999 507.75 438.35 495.5999999999999 434.6 485.25C432.55 476.85 427.6 457.65 425.8 451.25A20.499999999999996 20.499999999999996 0 0 0 415.0000000000001 436.4A19.4 19.4 0 0 0 397.25 436.3C339.25 460.2499999999999 307.45 525.1999999999999 307.45 608.3C307.45 757.55 432 887.4999999999999 617.0500000000001 887.4999999999999C773.8000000000001 887.4999999999999 891.1000000000001 771.05 891.1000000000001 630.5C891.1000000000001 453.9 794.5000000000001 325.3 656.6 325.3A125.4 125.4 0 0 0 554.3000000000001 373.25L552.1500000000001 364.4L541.8000000000001 321.8L541.7 321.45C534.4 291.4499999999998 529.3000000000001 270.5999999999999 527.3000000000001 262.75C522.0000000000001 244.9999999999999 515.3000000000001 227.6 507.3000000000001 210.75A400 400 0 1 1 424.5 240.4zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"pinyin-input":{"path":["M0 0h24v24H0z","M17.934 3.036l1.732 1L18.531 6H21v2h-2v4h2v2h-2v7h-2v-7h-3.084c-.325 2.862-1.564 5.394-3.37 7.193l-1.562-1.27c1.52-1.438 2.596-3.522 2.917-5.922L10 14v-2l2-.001V8h-2V6h2.467l-1.133-1.964 1.732-1L14.777 6h1.444l1.713-2.964zM5 13.803l-2 .536v-2.071l2-.536V8H3V6h2V3h2v3h2v2H7v3.197l2-.536v2.07l-2 .536V18.5A2.5 2.5 0 0 1 4.5 21H3v-2h1.5a.5.5 0 0 0 .492-.41L5 18.5v-4.697zM17 8h-3v4h3V8z"],"unicode":"","glyph":"M896.7 1048.2L983.3 998.2L926.55 900H1050V800H950V600H1050V500H950V150H850V500H695.8000000000001C679.5500000000001 356.8999999999999 617.6 230.3000000000001 527.3 140.3500000000001L449.2 203.8500000000001C525.1999999999999 275.75 579 379.9500000000001 595.05 499.9500000000002L500 500V600L600 600.05V800H500V900H623.35L566.6999999999999 998.2L653.3 1048.2L738.8499999999999 900H811.05L896.7 1048.2zM250 509.8499999999999L150 483.05V586.5999999999999L250 613.4V800H150V900H250V1050H350V900H450V800H350V640.1500000000001L450 666.95V563.45L350 536.65V275A125 125 0 0 0 225 150H150V250H225A25 25 0 0 1 249.6 270.5L250 275V509.8499999999999zM850 800H700V600H850V800z","horizAdvX":"1200"},"pixelfed-fill":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm1.031 6.099h-2.624c-.988 0-1.789.776-1.789 1.733v6.748l2.595-2.471h1.818c1.713 0 3.101-1.345 3.101-3.005s-1.388-3.005-3.1-3.005z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM651.5500000000001 795.05H520.35C470.95 795.05 430.9000000000001 756.25 430.9000000000001 708.4V370.9999999999999L560.6500000000001 494.55H651.5500000000001C737.2 494.55 806.6 561.8 806.6 644.7999999999998S737.2 795.0499999999998 651.6000000000001 795.0499999999998z","horizAdvX":"1200"},"pixelfed-line":{"path":["M0 0H24V24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm1.031 4.099c1.713 0 3.101 1.345 3.101 3.005s-1.388 3.005-3.1 3.005h-1.819L8.618 16.58V9.832c0-.957.801-1.733 1.79-1.733h2.623z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000C379.1 1000 200 820.9000000000001 200 600S379.1 200 600 200S1000 379.1 1000 600S820.9 1000 600 1000zM651.5500000000001 795.05C737.2 795.05 806.6 727.8 806.6 644.8000000000001S737.2 494.5500000000001 651.6000000000001 494.5500000000001H560.6500000000001L430.9000000000001 371.0000000000001V708.4C430.9000000000001 756.25 470.95 795.05 520.4000000000001 795.05H651.5500000000001z","horizAdvX":"1200"},"plane-fill":{"path":["M0 0h24v24H0z","M14 8.947L22 14v2l-8-2.526v5.36l3 1.666V22l-4.5-1L8 22v-1.5l3-1.667v-5.36L3 16v-2l8-5.053V3.5a1.5 1.5 0 0 1 3 0v5.447z"],"unicode":"","glyph":"M700 752.6500000000001L1100 500V400L700 526.3V258.3000000000001L850 175V100L625 150L400 100V175L550 258.3500000000002V526.35L150 400V500L550 752.6500000000001V1025A75 75 0 0 0 700 1025V752.6500000000001z","horizAdvX":"1200"},"plane-line":{"path":["M0 0h24v24H0z","M14 8.947L22 14v2l-8-2.526v5.36l3 1.666V22l-4.5-1L8 22v-1.5l3-1.667v-5.36L3 16v-2l8-5.053V3.5a1.5 1.5 0 0 1 3 0v5.447z"],"unicode":"","glyph":"M700 752.6500000000001L1100 500V400L700 526.3V258.3000000000001L850 175V100L625 150L400 100V175L550 258.3500000000002V526.35L150 400V500L550 752.6500000000001V1025A75 75 0 0 0 700 1025V752.6500000000001z","horizAdvX":"1200"},"plant-fill":{"path":["M0 0H24V24H0z","M21 3v2c0 3.866-3.134 7-7 7h-1v1h5v7c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2v-7h5v-3c0-3.866 3.134-7 7-7h3zM5.5 2c2.529 0 4.765 1.251 6.124 3.169C10.604 6.51 10 8.185 10 10v1h-.5C5.358 11 2 7.642 2 3.5V2h3.5z"],"unicode":"","glyph":"M1050 1050V950C1050 756.7 893.3 600 700 600H650V550H900V200C900 144.75 855.25 100 800 100H400C344.75 100 300 144.75 300 200V550H550V700C550 893.3 706.7 1050 900 1050H1050zM275 1100C401.45 1100 513.25 1037.45 581.1999999999999 941.55C530.1999999999999 874.5 500 790.75 500 700V650H475C267.9 650 100 817.9 100 1025V1100H275z","horizAdvX":"1200"},"plant-line":{"path":["M0 0H24V24H0z","M6 2c2.69 0 5.024 1.517 6.197 3.741C13.374 4.083 15.31 3 17.5 3H21v2.5c0 3.59-2.91 6.5-6.5 6.5H13v1h5v7c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2v-7h5v-2H9c-3.866 0-7-3.134-7-7V2h4zm10 13H8v5h8v-5zm3-10h-1.5C15.015 5 13 7.015 13 9.5v.5h1.5c2.485 0 4.5-2.015 4.5-4.5V5zM6 4H4c0 2.761 2.239 5 5 5h2c0-2.761-2.239-5-5-5z"],"unicode":"","glyph":"M300 1100C434.5 1100 551.2 1024.15 609.8499999999999 912.95C668.7 995.85 765.5 1050 875 1050H1050V925C1050 745.5 904.5 600 725 600H650V550H900V200C900 144.75 855.25 100 800 100H400C344.75 100 300 144.75 300 200V550H550V650H450C256.7000000000001 650 100 806.7 100 1000V1100H300zM800 450H400V200H800V450zM950 950H875C750.75 950 650 849.25 650 725V700H725C849.25 700 950 800.75 950 925V950zM300 1000H200C200 861.95 311.95 750 450 750H550C550 888.05 438.05 1000 300 1000z","horizAdvX":"1200"},"play-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM10.622 8.415a.4.4 0 0 0-.622.332v6.506a.4.4 0 0 0 .622.332l4.879-3.252a.4.4 0 0 0 0-.666l-4.88-3.252z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM531.1 779.25A20.000000000000004 20.000000000000004 0 0 1 500 762.65V437.35A20.000000000000004 20.000000000000004 0 0 1 531.1 420.75L775.05 583.3499999999999A20.000000000000004 20.000000000000004 0 0 1 775.05 616.6499999999999L531.05 779.2499999999999z","horizAdvX":"1200"},"play-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM10.622 8.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM531.1 779.25L775.05 616.6500000000001A20.000000000000004 20.000000000000004 0 0 0 775.05 583.3500000000001L531.05 420.7500000000001A20.000000000000004 20.000000000000004 0 0 0 499.9999999999999 437.3500000000002V762.65A20.000000000000004 20.000000000000004 0 0 0 531.0999999999999 779.25z","horizAdvX":"1200"},"play-fill":{"path":["M0 0h24v24H0z","M19.376 12.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z"],"unicode":"","glyph":"M968.8 579.1999999999999L438.85 225.9000000000001A25 25 0 0 0 400 246.7000000000001V953.3A25 25 0 0 0 438.85 974.1L968.7999999999998 620.8000000000001A25 25 0 0 0 968.7999999999998 579.1999999999999z","horizAdvX":"1200"},"play-line":{"path":["M0 0h24v24H0z","M16.394 12L10 7.737v8.526L16.394 12zm2.982.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z"],"unicode":"","glyph":"M819.6999999999999 600L500 813.15V386.8500000000002L819.6999999999999 600zM968.7999999999998 579.1999999999999L438.85 225.9000000000001A25 25 0 0 0 400 246.7000000000001V953.3A25 25 0 0 0 438.85 974.1L968.7999999999998 620.8000000000001A25 25 0 0 0 968.7999999999998 579.1999999999999z","horizAdvX":"1200"},"play-list-2-fill":{"path":["M0 0H24V24H0z","M22 18v2H2v-2h20zM2 3.5l8 5-8 5v-10zM22 11v2H12v-2h10zm0-7v2H12V4h10z"],"unicode":"","glyph":"M1100 300V200H100V300H1100zM100 1025L500 775L100 525V1025zM1100 650V550H600V650H1100zM1100 1000V900H600V1000H1100z","horizAdvX":"1200"},"play-list-2-line":{"path":["M0 0H24V24H0z","M22 18v2H2v-2h20zM2 3.5l8 5-8 5v-10zM22 11v2H12v-2h10zM4 7.108v2.784L6.226 8.5 4 7.108zM22 4v2H12V4h10z"],"unicode":"","glyph":"M1100 300V200H100V300H1100zM100 1025L500 775L100 525V1025zM1100 650V550H600V650H1100zM200 844.6V705.4000000000001L311.3 775L200 844.6zM1100 1000V900H600V1000H1100z","horizAdvX":"1200"},"play-list-add-fill":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h20v2H2v-2zm0-7h20v2H2V4zm16 14v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H1100V550H100V650zM100 1000H1100V900H100V1000zM900 300V450H1000V300H1150V200H1000V50H900V200H750V300H900z","horizAdvX":"1200"},"play-list-add-line":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h20v2H2v-2zm0-7h20v2H2V4zm16 14v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H1100V550H100V650zM100 1000H1100V900H100V1000zM900 300V450H1000V300H1150V200H1000V50H900V200H750V300H900z","horizAdvX":"1200"},"play-list-fill":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H800V550H100V650zM100 1000H1100V900H100V1000zM950 441.5V750H1200V650H1050V300A150 150 0 1 0 950 441.5z","horizAdvX":"1200"},"play-list-line":{"path":["M0 0h24v24H0z","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83zM18 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 300H600V200H100V300zM100 650H800V550H100V650zM100 1000H1100V900H100V1000zM950 441.5V750H1200V650H1050V300A150 150 0 1 0 950 441.5zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250z","horizAdvX":"1200"},"play-mini-fill":{"path":["M0 0h24v24H0z","M7.752 5.439l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z"],"unicode":"","glyph":"M387.6 928.05L912.9999999999998 621.5500000000001A25 25 0 0 0 912.9999999999998 578.4000000000001L387.6 271.9000000000001A25 25 0 0 0 350 293.6V906.45A25 25 0 0 0 387.6 928.05z","horizAdvX":"1200"},"play-mini-line":{"path":["M0 0h24v24H0z","M9 8.482v7.036L15.03 12 9 8.482zM7.752 5.44l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z"],"unicode":"","glyph":"M450 775.9000000000001V424.1L751.5 600L450 775.9000000000001zM387.6 928L912.9999999999998 621.5A25 25 0 0 0 912.9999999999998 578.35L387.6 271.85A25 25 0 0 0 350 293.6V906.45A25 25 0 0 0 387.6 928.05z","horizAdvX":"1200"},"playstation-fill":{"path":["M0 0h24v24H0z","M22.584 17.011c-.43.543-1.482.93-1.482.93l-7.833 2.817V18.68l5.764-2.057c.655-.234.755-.566.223-.74-.53-.175-1.491-.125-2.146.111l-3.84 1.354v-2.155l.22-.075s1.11-.394 2.671-.567c1.56-.172 3.472.024 4.972.593 1.69.535 1.88 1.323 1.451 1.866zm-8.57-3.537V8.162c0-.624-.114-1.198-.699-1.36-.447-.144-.725.272-.725.895V21l-3.584-1.139V4c1.524.283 3.744.953 4.937 1.355 3.035 1.043 4.064 2.342 4.064 5.267 0 2.851-1.758 3.932-3.992 2.852zm-11.583 4.99c-1.735-.49-2.024-1.51-1.233-2.097.731-.542 1.974-.95 1.974-.95l5.138-1.83v2.086l-3.697 1.325c-.653.234-.754.566-.223.74.531.175 1.493.125 2.147-.11l1.773-.644v1.865l-.353.06c-1.774.29-3.664.169-5.526-.445z"],"unicode":"","glyph":"M1129.2 349.4500000000001C1107.7 322.3000000000001 1055.1 302.9500000000001 1055.1 302.9500000000001L663.45 162.1000000000001V266L951.65 368.8499999999999C984.4 380.5500000000001 989.4 397.1499999999999 962.8 405.8499999999999C936.3 414.6 888.25 412.0999999999999 855.5 400.3L663.5 332.5999999999999V440.3499999999998L674.5 444.0999999999998S730 463.7999999999998 808.0500000000001 472.4499999999998C886.05 481.0499999999998 981.65 471.2499999999999 1056.65 442.7999999999999C1141.15 416.0499999999999 1150.65 376.6499999999999 1129.2000000000003 349.4999999999998zM700.6999999999999 526.3V791.9C700.6999999999999 823.0999999999999 694.9999999999999 851.8 665.75 859.9C643.4 867.0999999999999 629.5 846.3 629.5 815.15V150L450.3 206.9499999999999V1000C526.5 985.85 637.5 952.35 697.1500000000001 932.25C848.9000000000001 880.0999999999999 900.35 815.15 900.35 668.9C900.35 526.35 812.4500000000002 472.3 700.75 526.3zM121.55 276.8000000000001C34.8 301.3 20.35 352.3000000000002 59.9 381.6500000000001C96.45 408.7500000000001 158.5999999999999 429.1500000000001 158.5999999999999 429.1500000000001L415.5 520.6500000000001V416.3500000000002L230.6499999999999 350.1000000000002C198 338.4000000000001 192.9499999999999 321.8000000000002 219.5 313.1000000000003C246.05 304.3500000000002 294.15 306.8500000000003 326.85 318.6000000000002L415.5 350.8000000000001V257.5500000000002L397.85 254.5500000000002C309.1499999999999 240.0500000000003 214.65 246.1000000000003 121.55 276.8000000000003z","horizAdvX":"1200"},"playstation-line":{"path":["M0 0h24v24H0z","M22.584 17.011c-.43.543-1.482.93-1.482.93l-7.833 2.817V18.68l5.764-2.057c.655-.234.755-.566.223-.74-.53-.175-1.491-.125-2.146.111l-3.84 1.354v-2.155l.22-.075s1.11-.394 2.671-.567c1.56-.172 3.472.024 4.972.593 1.69.535 1.88 1.323 1.451 1.866zm-8.57-3.537V8.162c0-.624-.114-1.198-.699-1.36-.447-.144-.725.272-.725.895V21l-3.584-1.139V4c1.524.283 3.744.953 4.937 1.355 3.035 1.043 4.064 2.342 4.064 5.267 0 2.851-1.758 3.932-3.992 2.852zm-11.583 4.99c-1.735-.49-2.024-1.51-1.233-2.097.731-.542 1.974-.95 1.974-.95l5.138-1.83v2.086l-3.697 1.325c-.653.234-.754.566-.223.74.531.175 1.493.125 2.147-.11l1.773-.644v1.865l-.353.06c-1.774.29-3.664.169-5.526-.445z"],"unicode":"","glyph":"M1129.2 349.4500000000001C1107.7 322.3000000000001 1055.1 302.9500000000001 1055.1 302.9500000000001L663.45 162.1000000000001V266L951.65 368.8499999999999C984.4 380.5500000000001 989.4 397.1499999999999 962.8 405.8499999999999C936.3 414.6 888.25 412.0999999999999 855.5 400.3L663.5 332.5999999999999V440.3499999999998L674.5 444.0999999999998S730 463.7999999999998 808.0500000000001 472.4499999999998C886.05 481.0499999999998 981.65 471.2499999999999 1056.65 442.7999999999999C1141.15 416.0499999999999 1150.65 376.6499999999999 1129.2000000000003 349.4999999999998zM700.6999999999999 526.3V791.9C700.6999999999999 823.0999999999999 694.9999999999999 851.8 665.75 859.9C643.4 867.0999999999999 629.5 846.3 629.5 815.15V150L450.3 206.9499999999999V1000C526.5 985.85 637.5 952.35 697.1500000000001 932.25C848.9000000000001 880.0999999999999 900.35 815.15 900.35 668.9C900.35 526.35 812.4500000000002 472.3 700.75 526.3zM121.55 276.8000000000001C34.8 301.3 20.35 352.3000000000002 59.9 381.6500000000001C96.45 408.7500000000001 158.5999999999999 429.1500000000001 158.5999999999999 429.1500000000001L415.5 520.6500000000001V416.3500000000002L230.6499999999999 350.1000000000002C198 338.4000000000001 192.9499999999999 321.8000000000002 219.5 313.1000000000003C246.05 304.3500000000002 294.15 306.8500000000003 326.85 318.6000000000002L415.5 350.8000000000001V257.5500000000002L397.85 254.5500000000002C309.1499999999999 240.0500000000003 214.65 246.1000000000003 121.55 276.8000000000003z","horizAdvX":"1200"},"plug-2-fill":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4v-4h16v4a4 4 0 0 1-4 4h-3zm4-12h2a1 1 0 0 1 1 1v2H4V7a1 1 0 0 1 1-1h2V2h2v4h6V2h2v4zm-5 8.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM11 2h2v3h-2V2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V700H1000V500A200 200 0 0 0 800 300H650zM850 900H950A50 50 0 0 0 1000 850V750H200V850A50 50 0 0 0 250 900H350V1100H450V900H750V1100H850V900zM600 475A50 50 0 1 1 600 575A50 50 0 0 1 600 475zM550 1100H650V950H550V1100z","horizAdvX":"1200"},"plug-2-line":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4V7a1 1 0 0 1 1-1h2V2h2v4h6V2h2v4h2a1 1 0 0 1 1 1v7a4 4 0 0 1-4 4h-3zm-5-2h8a2 2 0 0 0 2-2v-3H6v3a2 2 0 0 0 2 2zm10-8H6v1h12V8zm-6 6.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM11 2h2v3h-2V2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V850A50 50 0 0 0 250 900H350V1100H450V900H750V1100H850V900H950A50 50 0 0 0 1000 850V500A200 200 0 0 0 800 300H650zM400 400H800A100 100 0 0 1 900 500V650H300V500A100 100 0 0 1 400 400zM900 800H300V750H900V800zM600 475A50 50 0 1 0 600 575A50 50 0 0 0 600 475zM550 1100H650V950H550V1100z","horizAdvX":"1200"},"plug-fill":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4v-4h16v4a4 4 0 0 1-4 4h-3zm3-12h3a1 1 0 0 1 1 1v2H4V7a1 1 0 0 1 1-1h3V2h2v4h4V2h2v4zm-4 8.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V700H1000V500A200 200 0 0 0 800 300H650zM800 900H950A50 50 0 0 0 1000 850V750H200V850A50 50 0 0 0 250 900H400V1100H500V900H700V1100H800V900zM600 475A50 50 0 1 1 600 575A50 50 0 0 1 600 475z","horizAdvX":"1200"},"plug-line":{"path":["M0 0h24v24H0z","M13 18v2h6v2h-6a2 2 0 0 1-2-2v-2H8a4 4 0 0 1-4-4V7a1 1 0 0 1 1-1h3V2h2v4h4V2h2v4h3a1 1 0 0 1 1 1v7a4 4 0 0 1-4 4h-3zm-5-2h8a2 2 0 0 0 2-2v-3H6v3a2 2 0 0 0 2 2zm10-8H6v1h12V8zm-6 6.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M650 300V200H950V100H650A100 100 0 0 0 550 200V300H400A200 200 0 0 0 200 500V850A50 50 0 0 0 250 900H400V1100H500V900H700V1100H800V900H950A50 50 0 0 0 1000 850V500A200 200 0 0 0 800 300H650zM400 400H800A100 100 0 0 1 900 500V650H300V500A100 100 0 0 1 400 400zM900 800H300V750H900V800zM600 475A50 50 0 1 0 600 575A50 50 0 0 0 600 475z","horizAdvX":"1200"},"polaroid-2-fill":{"path":["M0 0h24v24H0z","M3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zM6 17v2h12v-2H6zM5 5v2h2V5H5zm7 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 2a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM300 350V250H900V350H300zM250 950V850H350V950H250zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600zM600 500A200 200 0 1 1 600 900A200 200 0 0 1 600 500z","horizAdvX":"1200"},"polaroid-2-line":{"path":["M0 0h24v24H0z","M19 15V5H5v10h14zM3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM6 6h2v2H6V6zm0 11v2h12v-2H6z"],"unicode":"","glyph":"M950 450V950H250V450H950zM150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM600 600A100 100 0 1 1 600 800A100 100 0 0 1 600 600zM600 500A200 200 0 1 0 600 900A200 200 0 0 0 600 500zM300 900H400V800H300V900zM300 350V250H900V350H300z","horizAdvX":"1200"},"polaroid-fill":{"path":["M0 0h24v24H0z","M20.659 10a6 6 0 1 0 0 4H21v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v6h-.341zM5 6v3h2V6H5zm10 10a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M1032.95 700A300 300 0 1 1 1032.95 500H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V700H1032.95zM250 900V750H350V900H250zM750 400A200 200 0 1 0 750 800A200 200 0 0 0 750 400zM750 500A100 100 0 1 1 750 700A100 100 0 0 1 750 500z","horizAdvX":"1200"},"polaroid-line":{"path":["M0 0h24v24H0z","M21 6h-2V5H5v14h14v-1h2v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v2zM6 6h2v3H6V6zm9 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-4a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M1050 900H950V950H250V250H950V300H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V900zM300 900H400V750H300V900zM750 400A200 200 0 1 1 750 800A200 200 0 0 1 750 400zM750 300A300 300 0 1 0 750 900A300 300 0 0 0 750 300zM750 500A100 100 0 1 0 750 700A100 100 0 0 0 750 500z","horizAdvX":"1200"},"police-car-fill":{"path":["M0 0h24v24H0z","M22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5h1.929L4.48 6.212A2 2 0 0 1 6.319 5H8V3h3v2h2V3h3v2h1.681a2 2 0 0 1 1.838 1.212L21.571 11H23.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5zM4 15v2a1 1 0 0 0 1 1h3.245a.5.5 0 0 0 .44-.736C7.88 15.754 6.318 15 4 15zm16 0c-2.317 0-3.879.755-4.686 2.264a.5.5 0 0 0 .441.736H19a1 1 0 0 0 1-1v-2zM6 7l-1.451 3.629A1 1 0 0 0 5.477 12h13.046a1 1 0 0 0 .928-1.371L18 7H6z"],"unicode":"","glyph":"M1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H121.45L224 889.4000000000001A100 100 0 0 0 315.95 950H400V1050H550V950H650V1050H800V950H884.0500000000001A100 100 0 0 0 975.95 889.4000000000001L1078.5500000000002 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525zM200 450V350A50 50 0 0 1 250 300H412.2500000000001A25 25 0 0 1 434.25 336.8000000000001C394 412.3000000000001 315.9 450 200 450zM1000 450C884.15 450 806.05 412.25 765.7 336.8000000000001A25 25 0 0 1 787.75 300H950A50 50 0 0 1 1000 350V450zM300 850L227.45 668.5500000000001A50 50 0 0 1 273.85 600H926.15A50 50 0 0 1 972.55 668.5500000000001L900 850H300z","horizAdvX":"1200"},"police-car-line":{"path":["M0 0h24v24H0z","M4 13v5h16v-5H4zm1.618-2h12.764a1 1 0 0 0 .894-1.447L18 7H6L4.724 9.553A1 1 0 0 0 5.618 11zM22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5H2l2.447-4.894A2 2 0 0 1 6.237 5H8V3h3v2h2V3h3v2h1.764a2 2 0 0 1 1.789 1.106L22 11h1.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5zM5 14c2.317 0 3.879.755 4.686 2.264a.5.5 0 0 1-.441.736H6a1 1 0 0 1-1-1v-2zm14 0v2a1 1 0 0 1-1 1h-3.245a.5.5 0 0 1-.44-.736C15.12 14.754 16.682 14 19 14z"],"unicode":"","glyph":"M200 550V300H1000V550H200zM280.9000000000001 650H919.1A50 50 0 0 1 963.7999999999998 722.3499999999999L900 850H300L236.2 722.3499999999999A50 50 0 0 1 280.9000000000001 650zM1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H100L222.35 894.7A100 100 0 0 0 311.85 950H400V1050H550V950H650V1050H800V950H888.1999999999999A100 100 0 0 0 977.65 894.7L1100 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525zM250 500C365.85 500 443.95 462.25 484.3 386.8000000000001A25 25 0 0 0 462.2499999999999 350H300A50 50 0 0 0 250 400V500zM950 500V400A50 50 0 0 0 900 350H737.75A25 25 0 0 0 715.75 386.8000000000001C756 462.3000000000001 834.0999999999999 500 950 500z","horizAdvX":"1200"},"price-tag-2-fill":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm9 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-4 5v2h8v-2H8zm0-3v2h8v-2H8z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650zM400 400V300H800V400H400zM400 550V450H800V550H400z","horizAdvX":"1200"},"price-tag-2-line":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm2 1.07V20h14V8.07l-7-4.666L5 8.07zM8 16h8v2H8v-2zm0-3h8v2H8v-2zm4-2a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM250 796.5V200H950V796.5L600 1029.8L250 796.5zM400 400H800V300H400V400zM400 550H800V450H400V550zM600 650A100 100 0 1 0 600 850A100 100 0 0 0 600 650z","horizAdvX":"1200"},"price-tag-3-fill":{"path":["M0 0h24v24H0z","M10.9 2.1l9.899 1.415 1.414 9.9-9.192 9.192a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414L10.9 2.1zm2.828 8.486a2 2 0 1 0 2.828-2.829 2 2 0 0 0-2.828 2.829z"],"unicode":"","glyph":"M545 1095L1039.95 1024.25L1110.65 529.25L651.0500000000001 69.6500000000001A50 50 0 0 0 580.35 69.6500000000001L85.35 564.6500000000001A50 50 0 0 0 85.35 635.35L545 1095zM686.4 670.6999999999999A100 100 0 1 1 827.8000000000001 812.1500000000001A100 100 0 0 1 686.4000000000001 670.6999999999999z","horizAdvX":"1200"},"price-tag-3-line":{"path":["M0 0h24v24H0z","M10.9 2.1l9.899 1.415 1.414 9.9-9.192 9.192a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414L10.9 2.1zm.707 2.122L3.828 12l8.486 8.485 7.778-7.778-1.06-7.425-7.425-1.06zm2.12 6.364a2 2 0 1 1 2.83-2.829 2 2 0 0 1-2.83 2.829z"],"unicode":"","glyph":"M545 1095L1039.95 1024.25L1110.65 529.25L651.0500000000001 69.6500000000001A50 50 0 0 0 580.35 69.6500000000001L85.35 564.6500000000001A50 50 0 0 0 85.35 635.35L545 1095zM580.35 988.9L191.4 600L615.7 175.75L1004.6 564.65L951.6 935.9L580.3499999999999 988.8999999999997zM686.35 670.7A100 100 0 1 0 827.8500000000001 812.1500000000001A100 100 0 0 0 686.3500000000001 670.7z","horizAdvX":"1200"},"price-tag-fill":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm9 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"price-tag-line":{"path":["M0 0h24v24H0z","M3 7l8.445-5.63a1 1 0 0 1 1.11 0L21 7v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7zm2 1.07V20h14V8.07l-7-4.666L5 8.07zM12 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M150 850L572.25 1131.5A50 50 0 0 0 627.75 1131.5L1050 850V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V850zM250 796.5V200H950V796.5L600 1029.8L250 796.5zM600 650A100 100 0 1 0 600 850A100 100 0 0 0 600 650z","horizAdvX":"1200"},"printer-cloud-fill":{"path":["M0 0h24v24H0z","M10.566 17A4.737 4.737 0 0 0 10 19.25c0 1.023.324 1.973.877 2.75H7v-5h3.566zm6.934-4a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5zM21 8a1 1 0 0 1 1 1l.001 4.346A5.482 5.482 0 0 0 17.5 11l-.221.004A5.503 5.503 0 0 0 12.207 15H5v5H3a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h18zM8 10H5v2h3v-2zm9-8a1 1 0 0 1 1 1v3H6V3a1 1 0 0 1 1-1h10z"],"unicode":"","glyph":"M528.3000000000001 350A236.85000000000002 236.85000000000002 0 0 1 500 237.5C500 186.35 516.2 138.8500000000001 543.85 100H350V350H528.3zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550zM1050 800A50 50 0 0 0 1100 750L1100.05 532.7A274.1 274.1 0 0 1 875 650L863.95 649.8000000000001A275.15 275.15 0 0 1 610.35 450H250V200H150A50 50 0 0 0 100 250V750A50 50 0 0 0 150 800H1050zM400 700H250V600H400V700zM850 1100A50 50 0 0 0 900 1050V900H300V1050A50 50 0 0 0 350 1100H850z","horizAdvX":"1200"},"printer-cloud-line":{"path":["M0 0h24v24H0z","M17 2a1 1 0 0 1 1 1v4h3a1 1 0 0 1 1 1l.001 5.346a5.516 5.516 0 0 0-2-1.745L20 9H4v8h2v-1a1 1 0 0 1 1-1h5.207l-.071.283-.03.02A4.763 4.763 0 0 0 10.567 17L8 17v3h2.06a4.73 4.73 0 0 0 .817 2H7a1 1 0 0 1-1-1v-2H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h10zm.5 11a3.5 3.5 0 0 1 3.5 3.5l-.001.103a2.75 2.75 0 0 1-.581 5.392L20.25 22h-5.5l-.168-.005a2.75 2.75 0 0 1-.579-5.392L14 16.5a3.5 3.5 0 0 1 3.5-3.5zm0 2a1.5 1.5 0 0 0-1.473 1.215l-.02.14L16 16.5v1.62l-1.444.406a.75.75 0 0 0 .08 1.466l.109.008h5.51a.75.75 0 0 0 .19-1.474l-1.013-.283L19 18.12V16.5l-.007-.144A1.5 1.5 0 0 0 17.5 15zM8 10v2H5v-2h3zm8-6H8v3h8V4z"],"unicode":"","glyph":"M850 1100A50 50 0 0 0 900 1050V850H1050A50 50 0 0 0 1100 800L1100.05 532.7A275.79999999999995 275.79999999999995 0 0 1 1000.05 619.95L1000 750H200V350H300V400A50 50 0 0 0 350 450H610.35L606.8000000000001 435.85L605.3000000000001 434.85A238.15 238.15 0 0 1 528.35 350L400 350V200H503A236.50000000000003 236.50000000000003 0 0 1 543.85 100H350A50 50 0 0 0 300 150V250H150A50 50 0 0 0 100 300V800A50 50 0 0 0 150 850H300V1050A50 50 0 0 0 350 1100H850zM875 550A175 175 0 0 0 1050 375L1049.95 369.8499999999999A137.5 137.5 0 0 0 1020.9 100.25L1012.5 100H737.5L729.1 100.25A137.5 137.5 0 0 0 700.15 369.8499999999999L700 375A175 175 0 0 0 875 550zM875 450A75 75 0 0 1 801.35 389.25L800.35 382.25L800 375V294L727.8000000000001 273.7000000000001A37.5 37.5 0 0 1 731.8000000000001 200.4L737.25 200H1012.7500000000002A37.5 37.5 0 0 1 1022.2500000000002 273.7000000000001L971.6000000000003 287.85L950 294V375L949.65 382.2A75 75 0 0 1 875 450zM400 700V600H250V700H400zM800 1000H400V850H800V1000z","horizAdvX":"1200"},"printer-fill":{"path":["M0 0h24v24H0z","M7 17h10v5H7v-5zm12 3v-5H5v5H3a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-2zM5 10v2h3v-2H5zm2-8h10a1 1 0 0 1 1 1v3H6V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M350 350H850V100H350V350zM950 200V450H250V200H150A50 50 0 0 0 100 250V750A50 50 0 0 0 150 800H1050A50 50 0 0 0 1100 750V250A50 50 0 0 0 1050 200H950zM250 700V600H400V700H250zM350 1100H850A50 50 0 0 0 900 1050V900H300V1050A50 50 0 0 0 350 1100z","horizAdvX":"1200"},"printer-line":{"path":["M0 0h24v24H0z","M6 19H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h3V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v4h3a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-2zm0-2v-1a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1h2V9H4v8h2zM8 4v3h8V4H8zm0 13v3h8v-3H8zm-3-7h3v2H5v-2z"],"unicode":"","glyph":"M300 250H150A50 50 0 0 0 100 300V800A50 50 0 0 0 150 850H300V1050A50 50 0 0 0 350 1100H850A50 50 0 0 0 900 1050V850H1050A50 50 0 0 0 1100 800V300A50 50 0 0 0 1050 250H900V150A50 50 0 0 0 850 100H350A50 50 0 0 0 300 150V250zM300 350V400A50 50 0 0 0 350 450H850A50 50 0 0 0 900 400V350H1000V750H200V350H300zM400 1000V850H800V1000H400zM400 350V200H800V350H400zM250 700H400V600H250V700z","horizAdvX":"1200"},"product-hunt-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1.334-10H10.5V9h2.834a1.5 1.5 0 0 1 0 3zm0-5H8.5v10h2v-3h2.834a3.5 3.5 0 0 0 0-7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM666.6999999999999 600H525V750H666.6999999999999A75 75 0 0 0 666.6999999999999 600zM666.6999999999999 850H425V350H525V500H666.6999999999999A175 175 0 0 1 666.6999999999999 850z","horizAdvX":"1200"},"product-hunt-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1.334-8a1.5 1.5 0 0 0 0-3H10.5v3h2.834zm0-5a3.5 3.5 0 0 1 0 7H10.5v3h-2V7h4.834z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM666.6999999999999 600A75 75 0 0 1 666.6999999999999 750H525V600H666.6999999999999zM666.6999999999999 850A175 175 0 0 0 666.6999999999999 500H525V350H425V850H666.6999999999999z","horizAdvX":"1200"},"profile-fill":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM6 15v2h12v-2H6zm0-8v6h6V7H6zm8 0v2h4V7h-4zm0 4v2h4v-2h-4zM8 9h2v2H8V9z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM300 450V350H900V450H300zM300 850V550H600V850H300zM700 850V750H900V850H700zM700 650V550H900V650H700zM400 750H500V650H400V750z","horizAdvX":"1200"},"profile-line":{"path":["M0 0h24v24H0z","M2 3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993zM4 5v14h16V5H4zm2 2h6v6H6V7zm2 2v2h2V9H8zm-2 6h12v2H6v-2zm8-8h4v2h-4V7zm0 4h4v2h-4v-2z"],"unicode":"","glyph":"M100 1000.35A50 50 0 0 0 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35zM200 950V250H1000V950H200zM300 850H600V550H300V850zM400 750V650H500V750H400zM300 450H900V350H300V450zM700 850H900V750H700V850zM700 650H900V550H700V650z","horizAdvX":"1200"},"projector-2-fill":{"path":["M0 0h24v24H0z","M22 19v2h-2v-2H4v2H2v-2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h9.81a6.481 6.481 0 0 1 4.69-2c1.843 0 3.507.767 4.69 2H22a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1zm-5.5-5a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9zm0-2a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM4 13v2h2v-2H4zm4 0v2h2v-2H8z"],"unicode":"","glyph":"M1100 250V150H1000V250H200V150H100V250A50 50 0 0 0 50 300V900A50 50 0 0 0 100 950H590.5A324.05 324.05 0 0 0 825 1050C917.15 1050 1000.35 1011.65 1059.5 950H1100A50 50 0 0 0 1150 900V300A50 50 0 0 0 1100 250zM825 500A225 225 0 1 1 825 950A225 225 0 0 1 825 500zM825 600A125 125 0 1 0 825 850A125 125 0 0 0 825 600zM200 550V450H300V550H200zM400 550V450H500V550H400z","horizAdvX":"1200"},"projector-2-line":{"path":["M0 0h24v24H0z","M22 19v2h-2v-2H4v2H2v-2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h10.528A5.985 5.985 0 0 1 17 3c1.777 0 3.374.773 4.472 2H22a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1zM11.341 7H3v10h18v-3.528A6 6 0 0 1 11.341 7zM17 13a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM5 13h2v2H5v-2zm3 0h2v2H8v-2z"],"unicode":"","glyph":"M1100 250V150H1000V250H200V150H100V250A50 50 0 0 0 50 300V900A50 50 0 0 0 100 950H626.4A299.25 299.25 0 0 0 850 1050C938.85 1050 1018.7 1011.35 1073.6000000000001 950H1100A50 50 0 0 0 1150 900V300A50 50 0 0 0 1100 250zM567.05 850H150V350H1050V526.4A300 300 0 0 0 567.05 850zM850 550A200 200 0 1 1 850 950A200 200 0 0 1 850 550zM250 550H350V450H250V550zM400 550H500V450H400V550z","horizAdvX":"1200"},"projector-fill":{"path":["M0 0h24v24H0z","M11.112 12a4.502 4.502 0 0 0 8.776 0H22v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h9.112zM5 16h2v2H5v-2zm10.5-2.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM11.112 10H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6h-2.112a4.502 4.502 0 0 0-8.776 0z"],"unicode":"","glyph":"M555.6 600A225.1 225.1 0 0 1 994.3999999999997 600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H555.6zM250 400H350V300H250V400zM775 525A125 125 0 1 0 775 775A125 125 0 0 0 775 525zM555.6 700H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V700H994.3999999999997A225.1 225.1 0 0 1 555.5999999999999 700z","horizAdvX":"1200"},"projector-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8.126 9H4v7h16v-7h-1.126a4.002 4.002 0 0 1-7.748 0zm0-2a4.002 4.002 0 0 1 7.748 0H20V5H4v5h7.126zM15 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-9 2h2v2H6v-2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM556.3 600H200V250H1000V600H943.7A200.10000000000002 200.10000000000002 0 0 0 556.2999999999998 600zM556.3 700A200.10000000000002 200.10000000000002 0 0 0 943.7 700H1000V950H200V700H556.3000000000001zM750 550A100 100 0 1 1 750 750A100 100 0 0 1 750 550zM300 450H400V350H300V450z","horizAdvX":"1200"},"psychotherapy-fill":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm0 5c-.552 0-1 .448-1 1v.999L9 9c-.552 0-1 .448-1 1s.448 1 1 1l1-.001V12c0 .552.448 1 1 1s1-.448 1-1v-1h1c.552 0 1-.448 1-1s-.448-1-1-1h-1V8c0-.552-.448-1-1-1z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM550 850C522.4 850 500 827.5999999999999 500 800V750.05L450 750C422.4000000000001 750 400 727.5999999999999 400 700S422.4000000000001 650 450 650L500 650.05V600C500 572.4 522.4 550 550 550S600 572.4 600 600V650H650C677.6 650 700 672.4 700 700S677.6 750 650 750H600V800C600 827.5999999999999 577.6 850 550 850z","horizAdvX":"1200"},"psychotherapy-line":{"path":["M0 0H24V24H0z","M11 2c4.068 0 7.426 3.036 7.934 6.965l2.25 3.539c.148.233.118.58-.225.728L19 14.07V17c0 1.105-.895 2-2 2h-1.999L15 22H6v-3.694c0-1.18-.436-2.297-1.244-3.305C3.657 13.631 3 11.892 3 10c0-4.418 3.582-8 8-8zm0 2c-3.314 0-6 2.686-6 6 0 1.385.468 2.693 1.316 3.75C7.41 15.114 8 16.667 8 18.306V20h5l.002-3H17v-4.248l1.55-.664-1.543-2.425-.057-.442C16.566 6.251 14.024 4 11 4zm0 3c.552 0 1 .448 1 1v1h1c.552 0 1 .448 1 1s-.448 1-1 1h-1v1c0 .552-.448 1-1 1s-1-.448-1-1v-1.001L9 11c-.552 0-1-.448-1-1s.448-1 1-1l1-.001V8c0-.552.448-1 1-1z"],"unicode":"","glyph":"M550 1100C753.4 1100 921.3 948.2 946.7 751.75L1059.2 574.8000000000001C1066.6000000000001 563.15 1065.1 545.8000000000001 1047.95 538.4000000000001L950 496.5V350C950 294.75 905.25 250 850 250H750.05L750 100H300V284.7C300 343.7 278.2 399.55 237.8 449.95C182.85 518.45 150 605.4 150 700C150 920.9 329.1 1100 550 1100zM550 1000C384.3 1000 250 865.7 250 700C250 630.75 273.4 565.35 315.8 512.5C370.5 444.3 400 366.6499999999999 400 284.7V200H650L650.1 350H850V562.4000000000001L927.5 595.6L850.35 716.8499999999999L847.5000000000001 738.95C828.3 887.45 701.1999999999999 1000 550 1000zM550 850C577.6 850 600 827.5999999999999 600 800V750H650C677.6 750 700 727.5999999999999 700 700S677.6 650 650 650H600V600C600 572.4 577.6 550 550 550S500 572.4 500 600V650.05L450 650C422.4000000000001 650 400 672.4 400 700S422.4000000000001 750 450 750L500 750.05V800C500 827.5999999999999 522.4 850 550 850z","horizAdvX":"1200"},"pulse-fill":{"path":["M0 0H24V24H0z","M9 7.539L15 21.539 18.659 13 23 13 23 11 17.341 11 15 16.461 9 2.461 5.341 11 1 11 1 13 6.659 13z"],"unicode":"","glyph":"M450 823.05L750 123.05L932.95 550L1150 550L1150 650L867.0500000000001 650L750 376.9500000000001L450 1076.95L267.05 650L50 650L50 550L332.95 550z","horizAdvX":"1200"},"pulse-line":{"path":["M0 0H24V24H0z","M9 7.539L15 21.539 18.659 13 23 13 23 11 17.341 11 15 16.461 9 2.461 5.341 11 1 11 1 13 6.659 13z"],"unicode":"","glyph":"M450 823.05L750 123.05L932.95 550L1150 550L1150 650L867.0500000000001 650L750 376.9500000000001L450 1076.95L267.05 650L50 650L50 550L332.95 550z","horizAdvX":"1200"},"pushpin-2-fill":{"path":["M0 0h24v24H0z","M18 3v2h-1v6l2 3v2h-6v7h-2v-7H5v-2l2-3V5H6V3z"],"unicode":"","glyph":"M900 1050V950H850V650L950 500V400H650V50H550V400H250V500L350 650V950H300V1050z","horizAdvX":"1200"},"pushpin-2-line":{"path":["M0 0h24v24H0z","M18 3v2h-1v6l2 3v2h-6v7h-2v-7H5v-2l2-3V5H6V3h12zM9 5v6.606L7.404 14h9.192L15 11.606V5H9z"],"unicode":"","glyph":"M900 1050V950H850V650L950 500V400H650V50H550V400H250V500L350 650V950H300V1050H900zM450 950V619.7L370.2 500H829.8L750 619.7V950H450z","horizAdvX":"1200"},"pushpin-fill":{"path":["M0 0h24v24H0z","M22.314 10.172l-1.415 1.414-.707-.707-4.242 4.242-.707 3.536-1.415 1.414-4.242-4.243-4.95 4.95-1.414-1.414 4.95-4.95-4.243-4.242 1.414-1.415L8.88 8.05l4.242-4.242-.707-.707 1.414-1.415z"],"unicode":"","glyph":"M1115.7 691.4L1044.95 620.6999999999999L1009.6 656.0500000000001L797.5 443.9500000000001L762.15 267.15L691.4 196.4499999999999L479.3 408.5999999999999L231.8 161.0999999999999L161.0999999999999 231.8L408.6 479.3L196.4499999999999 691.4L267.1499999999999 762.1499999999999L444.0000000000001 797.5L656.1 1009.6L620.75 1044.95L691.4499999999999 1115.7z","horizAdvX":"1200"},"pushpin-line":{"path":["M0 0h24v24H0z","M13.828 1.686l8.486 8.486-1.415 1.414-.707-.707-4.242 4.242-.707 3.536-1.415 1.414-4.242-4.243-4.95 4.95-1.414-1.414 4.95-4.95-4.243-4.242 1.414-1.415L8.88 8.05l4.242-4.242-.707-.707 1.414-1.415zm.708 3.536l-4.671 4.67-2.822.565 6.5 6.5.564-2.822 4.671-4.67-4.242-4.243z"],"unicode":"","glyph":"M691.4 1115.7L1115.7 691.4L1044.95 620.6999999999999L1009.6 656.0500000000001L797.5 443.9500000000001L762.15 267.15L691.4 196.4499999999999L479.3 408.5999999999999L231.8 161.0999999999999L161.0999999999999 231.8L408.6 479.3L196.4499999999999 691.4L267.1499999999999 762.1499999999999L444.0000000000001 797.5L656.1 1009.6L620.75 1044.95L691.4499999999999 1115.7zM726.8 938.9L493.2499999999999 705.4000000000001L352.1499999999999 677.1500000000001L677.15 352.15L705.3499999999999 493.2499999999999L938.9 726.75L726.7999999999998 938.8999999999997z","horizAdvX":"1200"},"qq-fill":{"path":["M0 0h24v24H0z","M19.913 14.529a31.977 31.977 0 0 0-.675-1.886l-.91-2.246c0-.026.012-.468.012-.696C18.34 5.86 16.507 2 12 2 7.493 2 5.66 5.86 5.66 9.7c0 .229.011.671.012.697l-.91 2.246c-.248.643-.495 1.312-.675 1.886-.86 2.737-.581 3.87-.369 3.895.455.054 1.771-2.06 1.771-2.06 0 1.224.637 2.822 2.016 3.976-.515.157-1.147.399-1.554.695-.365.267-.319.54-.253.65.289.481 4.955.307 6.303.157 1.347.15 6.014.324 6.302-.158.066-.11.112-.382-.253-.649-.407-.296-1.039-.538-1.555-.696 1.379-1.153 2.016-2.751 2.016-3.976 0 0 1.316 2.115 1.771 2.06.212-.025.49-1.157-.37-3.894"],"unicode":"","glyph":"M995.65 473.55A1598.85 1598.85 0 0 1 961.9 567.8499999999999L916.4 680.15C916.4 681.4499999999999 917 703.55 917 714.95C917 907 825.35 1100 600 1100C374.6500000000001 1100 283 907 283 715C283 703.5500000000001 283.55 681.45 283.6 680.1500000000001L238.1 567.85C225.7 535.7 213.35 502.2500000000001 204.35 473.5500000000001C161.35 336.7000000000001 175.3 280.0500000000002 185.9 278.8000000000001C208.65 276.1000000000002 274.45 381.8 274.45 381.8C274.45 320.5999999999999 306.3 240.7000000000001 375.25 183C349.5 175.1500000000001 317.9 163.05 297.55 148.25C279.3 134.9000000000001 281.6 121.25 284.9 115.75C299.35 91.7000000000001 532.65 100.4000000000001 600.05 107.9000000000001C667.4 100.4000000000001 900.75 91.7000000000001 915.1499999999997 115.8000000000002C918.4499999999998 121.3000000000002 920.7499999999998 134.9000000000001 902.4999999999998 148.2500000000002C882.1499999999999 163.0500000000002 850.5499999999997 175.1500000000001 824.7499999999999 183.0500000000003C893.6999999999999 240.7000000000002 925.5499999999998 320.6000000000004 925.5499999999998 381.8500000000003C925.5499999999998 381.8500000000003 991.3499999999996 276.1000000000003 1014.0999999999998 278.8500000000003C1024.6999999999998 280.1000000000002 1038.5999999999997 336.7000000000003 995.5999999999998 473.5500000000003","horizAdvX":"1200"},"qq-line":{"path":["M0 0h24v24H0z","M17.535 12.514l-.696-1.796c0-.021.01-.375.01-.558C16.848 7.088 15.446 4 12 4c-3.446 0-4.848 3.088-4.848 6.16 0 .183.009.537.01.558l-.696 1.796c-.19.515-.38 1.05-.517 1.51-.657 2.189-.444 3.095-.282 3.115.348.043 1.354-1.648 1.354-1.648 0 .98.488 2.258 1.542 3.18-.394.127-.878.32-1.188.557-.28.214-.245.431-.194.52.22.385 3.79.245 4.82.125 1.03.12 4.599.26 4.82-.126.05-.088.085-.305-.194-.519-.311-.237-.795-.43-1.19-.556 1.055-.923 1.542-2.202 1.542-3.181 0 0 1.007 1.691 1.355 1.648.162-.02.378-.928-.283-3.116-.14-.463-.325-.994-.516-1.509zm1.021 8.227c-.373.652-.833.892-1.438 1.057-.24.065-.498.108-.794.138-.44.045-.986.065-1.613.064a33.23 33.23 0 0 1-2.71-.116c-.692.065-1.785.114-2.71.116a16.07 16.07 0 0 1-1.614-.064 4.928 4.928 0 0 1-.793-.138c-.605-.164-1.065-.405-1.44-1.059a2.274 2.274 0 0 1-.239-1.652c-.592-.132-1.001-.483-1.279-.911a2.43 2.43 0 0 1-.309-.71 4.028 4.028 0 0 1-.116-1.106c.013-.785.187-1.762.532-2.912.14-.466.327-1.008.568-1.655l.553-1.43a15.496 15.496 0 0 1-.002-.203C5.152 5.605 7.588 2 12 2c4.413 0 6.848 3.605 6.848 8.16l-.001.203.553 1.43.01.026c.225.606.413 1.153.556 1.626.348 1.15.522 2.129.535 2.916.007.407-.03.776-.118 1.108-.066.246-.161.48-.31.708-.276.427-.684.776-1.277.91.13.554.055 1.14-.24 1.654z"],"unicode":"","glyph":"M876.75 574.3000000000001L841.9499999999999 664.1C841.9499999999999 665.1500000000001 842.45 682.85 842.45 692C842.4 845.6 772.3 1000 600 1000C427.7 1000 357.6 845.6 357.6 692C357.6 682.85 358.05 665.15 358.1 664.1L323.3 574.3000000000001C313.8 548.55 304.3 521.8 297.45 498.8000000000001C264.6 389.3499999999999 275.25 344.05 283.35 343.0500000000001C300.75 340.9000000000001 351.05 425.4500000000001 351.05 425.4500000000001C351.05 376.4500000000001 375.4500000000001 312.5500000000001 428.1500000000001 266.4500000000001C408.4500000000001 260.1000000000002 384.25 250.4500000000001 368.7500000000001 238.6000000000002C354.7500000000001 227.9000000000002 356.5000000000001 217.0500000000001 359.0500000000001 212.6000000000001C370.05 193.35 548.55 200.35 600.0500000000001 206.3500000000001C651.5500000000001 200.35 830.0000000000001 193.35 841.0500000000001 212.6500000000002C843.5500000000001 217.0500000000002 845.3000000000001 227.9000000000002 831.3500000000001 238.6000000000002C815.8000000000002 250.4500000000001 791.6000000000001 260.1000000000002 771.8500000000001 266.4000000000001C824.6000000000003 312.5500000000002 848.9500000000002 376.5 848.9500000000002 425.4500000000002C848.9500000000002 425.4500000000002 899.3000000000002 340.9000000000002 916.7000000000002 343.0500000000002C924.8 344.0500000000002 935.6000000000003 389.4500000000003 902.55 498.8500000000001C895.5500000000001 522.0000000000001 886.3000000000002 548.5500000000002 876.7500000000002 574.3000000000002zM927.8 162.9500000000001C909.15 130.3499999999999 886.1500000000001 118.3500000000001 855.9000000000001 110.1000000000001C843.9000000000002 106.8499999999999 831 104.7000000000001 816.2 103.2000000000001C794.2000000000002 100.9499999999998 766.9000000000001 99.9500000000001 735.5500000000001 100A1661.4999999999998 1661.4999999999998 0 0 0 600.0500000000001 105.8C565.45 102.55 510.8000000000001 100.0999999999999 464.55 100A803.5000000000001 803.5000000000001 0 0 0 383.85 103.2000000000001A246.40000000000003 246.40000000000003 0 0 0 344.2000000000001 110.1000000000001C313.95 118.3000000000002 290.9500000000001 130.3500000000001 272.2000000000001 163.0500000000002A113.69999999999999 113.69999999999999 0 0 0 260.2500000000001 245.6500000000002C230.6500000000001 252.2500000000003 210.2000000000001 269.8000000000002 196.3000000000001 291.2000000000003A121.50000000000001 121.50000000000001 0 0 0 180.8500000000001 326.7000000000003A201.39999999999995 201.39999999999995 0 0 0 175.0500000000001 382.0000000000004C175.7000000000001 421.2500000000004 184.4 470.1000000000004 201.6500000000001 527.6000000000004C208.65 550.9000000000003 218.0000000000001 578.0000000000003 230.0500000000001 610.3500000000003L257.7000000000001 681.8500000000003A774.8 774.8 0 0 0 257.6 692.0000000000002C257.6 919.75 379.4 1100 600 1100C820.65 1100 942.4 919.75 942.4 692L942.35 681.85L969.9999999999998 610.35L970.5 609.0500000000001C981.7500000000002 578.75 991.15 551.4 998.3 527.7500000000001C1015.7 470.25 1024.4 421.3000000000001 1025.05 381.9500000000002C1025.4 361.6000000000002 1023.55 343.1500000000002 1019.15 326.5500000000001C1015.8500000000003 314.2500000000003 1011.1 302.5500000000001 1003.6500000000002 291.1500000000002C989.8500000000003 269.8000000000002 969.4500000000002 252.3500000000003 939.8000000000002 245.6500000000002C946.3 217.9500000000003 942.5500000000002 188.6500000000002 927.8000000000002 162.9500000000003z","horizAdvX":"1200"},"qr-code-fill":{"path":["M0 0h24v24H0z","M16 17v-1h-3v-3h3v2h2v2h-1v2h-2v2h-2v-3h2v-1h1zm5 4h-4v-2h2v-2h2v4zM3 3h8v8H3V3zm10 0h8v8h-8V3zM3 13h8v8H3v-8zm15 0h3v2h-3v-2zM6 6v2h2V6H6zm0 10v2h2v-2H6zM16 6v2h2V6h-2z"],"unicode":"","glyph":"M800 350V400H650V550H800V450H900V350H850V250H750V150H650V300H750V350H800zM1050 150H850V250H950V350H1050V150zM150 1050H550V650H150V1050zM650 1050H1050V650H650V1050zM150 550H550V150H150V550zM900 550H1050V450H900V550zM300 900V800H400V900H300zM300 400V300H400V400H300zM800 900V800H900V900H800z","horizAdvX":"1200"},"qr-code-line":{"path":["M0 0h24v24H0z","M16 17v-1h-3v-3h3v2h2v2h-1v2h-2v2h-2v-3h2v-1h1zm5 4h-4v-2h2v-2h2v4zM3 3h8v8H3V3zm2 2v4h4V5H5zm8-2h8v8h-8V3zm2 2v4h4V5h-4zM3 13h8v8H3v-8zm2 2v4h4v-4H5zm13-2h3v2h-3v-2zM6 6h2v2H6V6zm0 10h2v2H6v-2zM16 6h2v2h-2V6z"],"unicode":"","glyph":"M800 350V400H650V550H800V450H900V350H850V250H750V150H650V300H750V350H800zM1050 150H850V250H950V350H1050V150zM150 1050H550V650H150V1050zM250 950V750H450V950H250zM650 1050H1050V650H650V1050zM750 950V750H950V950H750zM150 550H550V150H150V550zM250 450V250H450V450H250zM900 550H1050V450H900V550zM300 900H400V800H300V900zM300 400H400V300H300V400zM800 900H900V800H800V900z","horizAdvX":"1200"},"qr-scan-2-fill":{"path":["M0 0h24v24H0z","M15 3h6v6h-6V3zM9 3v6H3V3h6zm6 18v-6h6v6h-6zm-6 0H3v-6h6v6zM3 11h18v2H3v-2z"],"unicode":"","glyph":"M750 1050H1050V750H750V1050zM450 1050V750H150V1050H450zM750 150V450H1050V150H750zM450 150H150V450H450V150zM150 650H1050V550H150V650z","horizAdvX":"1200"},"qr-scan-2-line":{"path":["M0 0h24v24H0z","M15 3h6v5h-2V5h-4V3zM9 3v2H5v3H3V3h6zm6 18v-2h4v-3h2v5h-6zm-6 0H3v-5h2v3h4v2zM3 11h18v2H3v-2z"],"unicode":"","glyph":"M750 1050H1050V800H950V950H750V1050zM450 1050V950H250V800H150V1050H450zM750 150V250H950V400H1050V150H750zM450 150H150V400H250V250H450V150zM150 650H1050V550H150V650z","horizAdvX":"1200"},"qr-scan-fill":{"path":["M0 0h24v24H0z","M21 15v5.007a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V15h18zM2 11h20v2H2v-2zm19-2H3V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993V9z"],"unicode":"","glyph":"M1050 450V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V450H1050zM100 650H1100V550H100V650zM1050 750H150V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V750z","horizAdvX":"1200"},"qr-scan-line":{"path":["M0 0h24v24H0z","M21 16v5H3v-5h2v3h14v-3h2zM3 11h18v2H3v-2zm18-3h-2V5H5v3H3V3h18v5z"],"unicode":"","glyph":"M1050 400V150H150V400H250V250H950V400H1050zM150 650H1050V550H150V650zM1050 800H950V950H250V800H150V1050H1050V800z","horizAdvX":"1200"},"question-answer-fill":{"path":["M0 0h24v24H0z","M8 18h10.237L20 19.385V9h1a1 1 0 0 1 1 1v13.5L17.545 20H9a1 1 0 0 1-1-1v-1zm-2.545-2L1 19.5V4a1 1 0 0 1 1-1h15a1 1 0 0 1 1 1v12H5.455z"],"unicode":"","glyph":"M400 300H911.8500000000003L1000 230.7499999999999V750H1050A50 50 0 0 0 1100 700V25L877.2500000000001 200H450A50 50 0 0 0 400 250V300zM272.75 400L50 225V1000A50 50 0 0 0 100 1050H850A50 50 0 0 0 900 1000V400H272.75z","horizAdvX":"1200"},"question-answer-line":{"path":["M0 0h24v24H0z","M5.455 15L1 18.5V3a1 1 0 0 1 1-1h15a1 1 0 0 1 1 1v12H5.455zm-.692-2H16V4H3v10.385L4.763 13zM8 17h10.237L20 18.385V8h1a1 1 0 0 1 1 1v13.5L17.545 19H9a1 1 0 0 1-1-1v-1z"],"unicode":"","glyph":"M272.75 450L50 275V1050A50 50 0 0 0 100 1100H850A50 50 0 0 0 900 1050V450H272.75zM238.15 550H800V1000H150V480.75L238.15 550zM400 350H911.8500000000003L1000 280.7499999999999V800H1050A50 50 0 0 0 1100 750V75L877.2500000000001 250H450A50 50 0 0 0 400 300V350z","horizAdvX":"1200"},"question-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm2-1.645A3.502 3.502 0 0 0 12 6.5a3.501 3.501 0 0 0-3.433 2.813l1.962.393A1.5 1.5 0 1 1 12 11.5a1 1 0 0 0-1 1V14h2v-.645z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM550 450V350H650V450H550zM650 532.25A175.1 175.1 0 0 1 600 875A175.04999999999998 175.04999999999998 0 0 1 428.35 734.3499999999999L526.45 714.6999999999999A75 75 0 1 0 600 625A50 50 0 0 1 550 575V500H650V532.25z","horizAdvX":"1200"},"question-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-1-5h2v2h-2v-2zm2-1.645V14h-2v-1.5a1 1 0 0 1 1-1 1.5 1.5 0 1 0-1.471-1.794l-1.962-.393A3.501 3.501 0 1 1 13 13.355z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 450H650V350H550V450zM650 532.25V500H550V575A50 50 0 0 0 600 625A75 75 0 1 1 526.45 714.7L428.35 734.3500000000001A175.04999999999998 175.04999999999998 0 1 0 650 532.25z","horizAdvX":"1200"},"question-mark":{"path":["M0 0H24V24H0z","M12 19c.828 0 1.5.672 1.5 1.5S12.828 22 12 22s-1.5-.672-1.5-1.5.672-1.5 1.5-1.5zm0-17c3.314 0 6 2.686 6 6 0 2.165-.753 3.29-2.674 4.923C13.399 14.56 13 15.297 13 17h-2c0-2.474.787-3.695 3.031-5.601C15.548 10.11 16 9.434 16 8c0-2.21-1.79-4-4-4S8 5.79 8 8v1H6V8c0-3.314 2.686-6 6-6z"],"unicode":"","glyph":"M600 250C641.4 250 675 216.4 675 175S641.4 100 600 100S525 133.6000000000001 525 175S558.6 250 600 250zM600 1100C765.7 1100 900 965.7 900 800C900 691.75 862.35 635.5 766.3000000000001 553.85C669.9499999999999 472 650 435.15 650 350H550C550 473.7 589.35 534.75 701.5500000000001 630.05C777.4 694.5 800 728.3 800 800C800 910.5 710.5 1000 600 1000S400 910.5 400 800V750H300V800C300 965.7 434.3 1100 600 1100z","horizAdvX":"1200"},"questionnaire-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 14v2h2v-2h-2zM8.567 8.813l1.962.393A1.5 1.5 0 1 1 12 11h-1v2h1a3.5 3.5 0 1 0-3.433-4.187z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 500V400H650V500H550zM428.35 759.3499999999999L526.45 739.6999999999999A75 75 0 1 0 600 650H550V550H600A175 175 0 1 1 428.35 759.3500000000001z","horizAdvX":"1200"},"questionnaire-line":{"path":["M0 0h24v24H0z","M5.763 17H20V5H4v13.385L5.763 17zm.692 2L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM11 14h2v2h-2v-2zM8.567 8.813A3.501 3.501 0 1 1 12 13h-1v-2h1a1.5 1.5 0 1 0-1.471-1.794l-1.962-.393z"],"unicode":"","glyph":"M288.15 350H1000V950H200V280.7500000000001L288.15 350zM322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM550 500H650V400H550V500zM428.35 759.3499999999999A175.04999999999998 175.04999999999998 0 1 0 600 550H550V650H600A75 75 0 1 1 526.45 739.7L428.35 759.3500000000001z","horizAdvX":"1200"},"quill-pen-fill":{"path":["M0 0h24v24H0z","M21 2C6 2 4 16 3 22h1.998c.666-3.333 2.333-5.166 5.002-5.5 4-.5 7-4 8-7l-1.5-1 1-1c1-1 2.004-2.5 3.5-5.5z"],"unicode":"","glyph":"M1050 1100C300 1100 200 400 150 100H249.9C283.2000000000001 266.6499999999999 366.55 358.3000000000001 500 375C700 400 850 575 900 725L825 775L875 825C925 875 975.2 950 1050 1100z","horizAdvX":"1200"},"quill-pen-line":{"path":["M0 0h24v24H0z","M6.94 14.036c-.233.624-.43 1.2-.606 1.783.96-.697 2.101-1.139 3.418-1.304 2.513-.314 4.746-1.973 5.876-4.058l-1.456-1.455 1.413-1.415 1-1.001c.43-.43.915-1.224 1.428-2.368-5.593.867-9.018 4.292-11.074 9.818zM17 9.001L18 10c-1 3-4 6-8 6.5-2.669.334-4.336 2.167-5.002 5.5H3C4 16 6 2 21 2c-1 2.997-1.998 4.996-2.997 5.997L17 9.001z"],"unicode":"","glyph":"M347 498.2C335.35 467 325.5000000000001 438.2000000000001 316.7000000000001 409.0500000000001C364.7000000000001 443.9 421.75 466 487.6 474.2500000000001C613.25 489.95 724.9000000000001 572.9000000000001 781.4 677.1500000000001L708.6 749.9000000000001L779.25 820.6500000000001L829.25 870.7C850.75 892.2 875 931.9 900.6500000000001 989.1000000000003C621.0000000000001 945.7500000000002 449.7500000000001 774.5000000000001 346.9500000000001 498.2000000000002zM850 749.95L900 700C850 550 700 400 500 375C366.55 358.3000000000001 283.2 266.6499999999999 249.9 100H150C200 400 300 1100 1050 1100C1000 950.15 950.1 850.2 900.15 800.15L850 749.95z","horizAdvX":"1200"},"radar-fill":{"path":["M0 0h24v24H0z","M14.368 4.398l-3.484 6.035 1.732 1L16.1 5.398c4.17 2.772 6.306 7.08 4.56 10.102-1.86 3.222-7.189 3.355-11.91.63C4.029 13.402 1.48 8.721 3.34 5.5c1.745-3.023 6.543-3.327 11.028-1.102zm1.516-2.625l1.732 1-1.5 2.598-1.732-1 1.5-2.598zM6.732 20H17v2H5.017a.995.995 0 0 1-.883-.5 1.005 1.005 0 0 1 0-1l2.25-3.897 1.732 1L6.732 20z"],"unicode":"","glyph":"M718.4 980.1L544.2 678.35L630.8 628.35L805.0000000000001 930.1C1013.5000000000002 791.5 1120.3000000000002 576.1 1033 425C940 263.9 673.55 257.25 437.5 393.5C201.45 529.9000000000001 74 763.95 167 925C254.25 1076.15 494.15 1091.35 718.4 980.1zM794.2 1111.35L880.8 1061.35L805.8 931.45L719.2 981.45L794.2 1111.35zM336.6 200H850V100H250.85A49.75000000000001 49.75000000000001 0 0 0 206.7 125A50.24999999999999 50.24999999999999 0 0 0 206.7 175L319.2000000000001 369.8499999999999L405.8 319.8499999999999L336.6 200z","horizAdvX":"1200"},"radar-line":{"path":["M0 0h24v24H0z","M12.506 3.623l-1.023 1.772c-2.91-.879-5.514-.45-6.411 1.105-1.178 2.04.79 5.652 4.678 7.897s8 2.142 9.178.103c.898-1.555-.033-4.024-2.249-6.105l1.023-1.772c3.082 2.709 4.463 6.27 2.958 8.877-1.86 3.222-7.189 3.355-11.91.63C4.029 13.402 1.48 8.721 3.34 5.5c1.505-2.607 5.28-3.192 9.166-1.877zm3.378-1.85l1.732 1-5 8.66-1.732-1 5-8.66zM6.732 20H17v2H5.017a.995.995 0 0 1-.883-.5 1.005 1.005 0 0 1 0-1l2.25-3.897 1.732 1L6.732 20z"],"unicode":"","glyph":"M625.3 1018.85L574.15 930.25C428.6500000000001 974.2 298.45 952.75 253.6000000000001 875C194.7000000000001 773 293.1 592.4 487.5 480.15S887.5 373.05 946.4 475C991.3 552.75 944.75 676.2 833.95 780.25L885.1000000000001 868.85C1039.2 733.4000000000001 1108.2500000000002 555.35 1033.0000000000002 425C940.0000000000002 263.9 673.5500000000002 257.25 437.5000000000002 393.5C201.45 529.9000000000001 74 763.95 167 925C242.25 1055.35 431.0000000000001 1084.6 625.3 1018.85zM794.2 1111.35L880.8 1061.35L630.8 628.35L544.2 678.35L794.2 1111.35zM336.6 200H850V100H250.85A49.75000000000001 49.75000000000001 0 0 0 206.7 125A50.24999999999999 50.24999999999999 0 0 0 206.7 175L319.2000000000001 369.8499999999999L405.8 319.8499999999999L336.6 200z","horizAdvX":"1200"},"radio-2-fill":{"path":["M0 0h24v24H0z","M6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm3 12a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm5-6v2h4V9h-4zm0 4v2h4v-2h-4z"],"unicode":"","glyph":"M300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM450 450A150 150 0 1 1 450 750A150 150 0 0 1 450 450zM700 750V650H900V750H700zM700 550V450H900V550H700z","horizAdvX":"1200"},"radio-2-line":{"path":["M0 0h24v24H0z","M6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm5 10a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm5-6h4v2h-4V9zm0 4h4v2h-4v-2z"],"unicode":"","glyph":"M300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM200 950V250H1000V950H200zM450 450A150 150 0 1 0 450 750A150 150 0 0 0 450 450zM700 750H900V650H700V750zM700 550H900V450H700V550z","horizAdvX":"1200"},"radio-button-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-6a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400z","horizAdvX":"1200"},"radio-button-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-3a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350z","horizAdvX":"1200"},"radio-fill":{"path":["M0 0h24v24H0z","M17 10h3V6H4v4h11V8h2v2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm1 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M850 700H1000V900H200V700H750V800H850V700zM300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM350 250A150 150 0 1 1 350 550A150 150 0 0 1 350 250z","horizAdvX":"1200"},"radio-line":{"path":["M0 0h24v24H0z","M17 10V8h-2v2H5V6h14v4h-2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm4 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M850 700V800H750V700H250V900H950V700H850zM300 1050V1150H400V1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000.35V199.6500000000001A50 50 0 0 0 1050.3999999999999 150.0000000000002H149.6A49.65 49.65 0 0 0 100 199.65V1000.35A50 50 0 0 0 149.6 1050H300zM200 950V250H1000V950H200zM400 300A150 150 0 1 0 400 600A150 150 0 0 0 400 300z","horizAdvX":"1200"},"rainbow-fill":{"path":["M0 0h24v24H0z","M12 4c6.075 0 11 4.925 11 11v5h-3v-5a8 8 0 0 0-7.75-7.996L12 7a8 8 0 0 0-7.996 7.75L4 15v5H1v-5C1 8.925 5.925 4 12 4zm0 4a7 7 0 0 1 7 7v5h-3v-5a4 4 0 0 0-3.8-3.995L12 11a4 4 0 0 0-3.995 3.8L8 15v5H5v-5a7 7 0 0 1 7-7zm0 4a3 3 0 0 1 3 3v5H9v-5a3 3 0 0 1 3-3z"],"unicode":"","glyph":"M600 1000C903.75 1000 1150 753.75 1150 450V200H1000V450A400 400 0 0 1 612.5 849.8L600 850A400 400 0 0 1 200.2 462.5L200 450V200H50V450C50 753.75 296.25 1000 600 1000zM600 800A350 350 0 0 0 950 450V200H800V450A200 200 0 0 1 610 649.75L600 650A200 200 0 0 1 400.25 460L400 450V200H250V450A350 350 0 0 0 600 800zM600 600A150 150 0 0 0 750 450V200H450V450A150 150 0 0 0 600 600z","horizAdvX":"1200"},"rainbow-line":{"path":["M0 0h24v24H0z","M12 4c6.075 0 11 4.925 11 11v5h-2v-5a9 9 0 0 0-8.735-8.996L12 6a9 9 0 0 0-8.996 8.735L3 15v5H1v-5C1 8.925 5.925 4 12 4zm0 4a7 7 0 0 1 7 7v5h-2v-5a5 5 0 0 0-4.783-4.995L12 10a5 5 0 0 0-4.995 4.783L7 15v5H5v-5a7 7 0 0 1 7-7zm0 4a3 3 0 0 1 3 3v5h-2v-5a1 1 0 0 0-.883-.993L12 14a1 1 0 0 0-.993.883L11 15v5H9v-5a3 3 0 0 1 3-3z"],"unicode":"","glyph":"M600 1000C903.75 1000 1150 753.75 1150 450V200H1050V450A450 450 0 0 1 613.25 899.8L600 900A450 450 0 0 1 150.2 463.25L150 450V200H50V450C50 753.75 296.25 1000 600 1000zM600 800A350 350 0 0 0 950 450V200H850V450A250 250 0 0 1 610.8499999999999 699.75L600 700A250 250 0 0 1 350.25 460.8499999999999L350 450V200H250V450A350 350 0 0 0 600 800zM600 600A150 150 0 0 0 750 450V200H650V450A50 50 0 0 1 605.85 499.65L600 500A50 50 0 0 1 550.35 455.85L550 450V200H450V450A150 150 0 0 0 600 600z","horizAdvX":"1200"},"rainy-fill":{"path":["M0 0h24v24H0z","M15.86 18l-3.153-3.153a1 1 0 0 0-1.414 0L8.18 17.96A8.001 8.001 0 1 1 15.98 6.087 6 6 0 1 1 17 18h-1.139zm-5.628.732L12 16.964l1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M793 300L635.3499999999999 457.65A50 50 0 0 1 564.65 457.65L409 302A400.04999999999995 400.04999999999995 0 1 0 799 895.6500000000001A300 300 0 1 0 850 300H793.0500000000001zM511.6 263.4000000000001L600 351.8000000000001L688.4000000000001 263.4000000000001A125 125 0 1 0 511.6000000000001 263.4000000000001z","horizAdvX":"1200"},"rainy-line":{"path":["M0 0h24v24H0z","M16 18v-2h1a4 4 0 1 0-2.157-7.37A6 6 0 1 0 8 15.917v2.022A8.001 8.001 0 0 1 9 2a7.998 7.998 0 0 1 6.98 4.087A6 6 0 1 1 17 18h-1zm-5.768.732L12 16.964l1.768 1.768a2.5 2.5 0 1 1-3.536 0z"],"unicode":"","glyph":"M800 300V400H850A200 200 0 1 1 742.15 768.5A300 300 0 1 1 400 404.15V303.05A400.04999999999995 400.04999999999995 0 0 0 450 1100A399.90000000000003 399.90000000000003 0 0 0 799 895.6500000000001A300 300 0 1 0 850 300H800zM511.6 263.4000000000001L600 351.8000000000001L688.4000000000001 263.4000000000001A125 125 0 1 0 511.6000000000001 263.4000000000001z","horizAdvX":"1200"},"reactjs-fill":{"path":["M0 0h24v24H0z","M14.448 16.24a21.877 21.877 0 0 1-1.747 2.175c1.672 1.623 3.228 2.383 4.09 1.884.864-.498.983-2.225.414-4.484-.853.19-1.78.334-2.757.425zm-1.31.087a27.512 27.512 0 0 1-2.276 0c.377.492.758.948 1.138 1.364.38-.416.76-.872 1.138-1.364zm5.04-7.894c2.665.764 4.405 2.034 4.405 3.567 0 1.533-1.74 2.803-4.405 3.567.67 2.69.441 4.832-.886 5.598-1.328.767-3.298-.105-5.292-2.03-1.994 1.925-3.964 2.797-5.292 2.03-1.327-.766-1.557-2.908-.886-5.598-2.665-.764-4.405-2.034-4.405-3.567 0-1.533 1.74-2.803 4.405-3.567-.67-2.69-.441-4.832.886-5.598 1.328-.767 3.298.105 5.292 2.03 1.994-1.925 3.964-2.797 5.292-2.03 1.327.766 1.557 2.908.886 5.598zm-.973-.248c.57-2.26.45-3.986-.413-4.484-.863-.499-2.419.261-4.09 1.884.591.643 1.179 1.374 1.746 2.175.978.09 1.904.234 2.757.425zm-10.41 7.63c-.57 2.26-.45 3.986.413 4.484.863.499 2.419-.261 4.09-1.884a21.877 21.877 0 0 1-1.746-2.175 21.877 21.877 0 0 1-2.757-.425zm4.067-8.142a27.512 27.512 0 0 1 2.276 0A20.523 20.523 0 0 0 12 6.31c-.38.416-.76.872-1.138 1.364zm-1.31.087A21.877 21.877 0 0 1 11.3 5.585C9.627 3.962 8.07 3.202 7.209 3.701c-.864.498-.983 2.225-.414 4.484.853-.19 1.78-.334 2.757-.425zm4.342 7.52A25.368 25.368 0 0 0 15.787 12a25.368 25.368 0 0 0-1.893-3.28 25.368 25.368 0 0 0-3.788 0A25.368 25.368 0 0 0 8.213 12a25.368 25.368 0 0 0 1.893 3.28 25.368 25.368 0 0 0 3.788 0zm1.284-.131c.615-.08 1.2-.183 1.75-.304a20.523 20.523 0 0 0-.612-1.667 27.512 27.512 0 0 1-1.138 1.97zM8.822 8.85c-.615.08-1.2.183-1.75.304.17.536.374 1.094.612 1.667a27.512 27.512 0 0 1 1.138-1.97zm-1.75 5.994c.55.121 1.135.223 1.75.304a27.512 27.512 0 0 1-1.138-1.97c-.238.572-.442 1.13-.612 1.666zm-.978-.245c.261-.834.6-1.708 1.01-2.6-.41-.892-.749-1.766-1.01-2.6-2.242.637-3.677 1.604-3.677 2.6s1.435 1.963 3.677 2.6zm10.834-5.445c-.55-.121-1.135-.223-1.75-.304a27.511 27.511 0 0 1 1.138 1.97c.238-.572.442-1.13.612-1.666zm.978.245c-.261.834-.6 1.708-1.01 2.6.41.892.749 1.766 1.01 2.6 2.242-.637 3.677-1.604 3.677-2.6s-1.435-1.963-3.677-2.6zM12 13.88a1.88 1.88 0 1 1 0-3.76 1.88 1.88 0 0 1 0 3.76z"],"unicode":"","glyph":"M722.4 388.0000000000001A1093.85 1093.85 0 0 0 635.0500000000001 279.25C718.6500000000001 198.1 796.45 160.1000000000001 839.5500000000001 185.0500000000001C882.75 209.9500000000001 888.7 296.3000000000001 860.2500000000001 409.25C817.6 399.75 771.2500000000001 392.55 722.4000000000001 388.0000000000001zM656.9 383.6500000000001A1375.6000000000001 1375.6000000000001 0 0 0 543.1 383.6500000000001C561.95 359.0500000000001 581 336.2500000000001 600 315.4500000000001C619 336.2500000000001 638 359.0500000000001 656.9 383.6500000000001zM908.9 778.3500000000001C1042.15 740.1500000000001 1129.15 676.6500000000001 1129.15 600.0000000000001C1129.15 523.3500000000001 1042.15 459.8500000000001 908.9 421.6500000000001C942.4 287.1500000000001 930.95 180.0500000000002 864.6000000000001 141.75C798.2000000000002 103.4000000000001 699.7 147 600.0000000000001 243.2500000000001C500.3000000000001 147 401.8000000000001 103.4000000000001 335.4000000000001 141.75C269.0500000000002 180.05 257.5500000000001 287.1500000000001 291.1000000000001 421.65C157.8500000000001 459.8499999999999 70.8500000000001 523.3499999999999 70.8500000000001 600C70.8500000000001 676.65 157.8500000000001 740.1500000000001 291.1000000000001 778.35C257.6000000000001 912.85 269.0500000000002 1019.95 335.4000000000001 1058.25C401.8000000000001 1096.6 500.3000000000001 1053 600.0000000000001 956.75C699.7 1053 798.2000000000002 1096.6 864.6000000000001 1058.25C930.95 1019.95 942.45 912.85 908.9 778.35zM860.2500000000001 790.75C888.7500000000001 903.75 882.75 990.05 839.6000000000001 1014.95C796.45 1039.9 718.6500000000001 1001.9 635.1000000000001 920.75C664.6500000000001 888.6000000000001 694.0500000000001 852.05 722.4000000000001 812C771.3000000000001 807.5 817.6000000000001 800.3000000000001 860.2500000000001 790.75zM339.7500000000001 409.2500000000001C311.2500000000001 296.2500000000003 317.2500000000001 209.9500000000001 360.4000000000001 185.0500000000001C403.5500000000001 160.1000000000001 481.3500000000001 198.1 564.9000000000001 279.25A1093.85 1093.85 0 0 0 477.6000000000001 388.0000000000001A1093.85 1093.85 0 0 0 339.7500000000001 409.2500000000001zM543.1000000000001 816.3500000000001A1375.6000000000001 1375.6000000000001 0 0 0 656.9000000000001 816.3500000000001A1026.15 1026.15 0 0 1 600 884.5C581 863.7 562 840.9000000000001 543.1 816.3zM477.6000000000001 812.0000000000001A1093.85 1093.85 0 0 0 565 920.75C481.35 1001.9 403.5 1039.9 360.45 1014.95C317.25 990.05 311.3 903.7 339.75 790.75C382.4 800.25 428.75 807.4499999999999 477.6 812zM694.7 436.0000000000001A1268.3999999999999 1268.3999999999999 0 0 1 789.35 600A1268.3999999999999 1268.3999999999999 0 0 1 694.7 764A1268.3999999999999 1268.3999999999999 0 0 1 505.3 764A1268.3999999999999 1268.3999999999999 0 0 1 410.65 600A1268.3999999999999 1268.3999999999999 0 0 1 505.3 436A1268.3999999999999 1268.3999999999999 0 0 1 694.7 436zM758.9000000000001 442.5500000000002C789.6500000000001 446.5500000000002 818.9000000000002 451.7000000000002 846.4000000000002 457.7500000000001A1026.15 1026.15 0 0 1 815.8000000000003 541.1000000000001A1375.6000000000001 1375.6000000000001 0 0 0 758.9000000000003 442.6000000000002zM441.1 757.5C410.35 753.5 381.1 748.35 353.6 742.3C362.1 715.5 372.3 687.6 384.2 658.95A1375.6000000000001 1375.6000000000001 0 0 0 441.1 757.45zM353.6 457.8000000000001C381.1 451.75 410.35 446.65 441.1 442.6A1375.6000000000001 1375.6000000000001 0 0 0 384.2 541.1C372.3 512.5000000000001 362.1 484.6 353.6 457.8000000000001zM304.7 470.05C317.75 511.75 334.7 555.45 355.2 600.05C334.7 644.65 317.75 688.3499999999999 304.7 730.05C192.6 698.1999999999999 120.85 649.85 120.85 600.05S192.6 501.9 304.7 470.05zM846.3999999999999 742.3C818.8999999999999 748.35 789.6499999999999 753.45 758.8999999999999 757.5A1375.55 1375.55 0 0 0 815.7999999999997 659C827.6999999999997 687.5999999999999 837.8999999999997 715.5 846.3999999999996 742.3zM895.3 730.0500000000001C882.25 688.3500000000001 865.2999999999998 644.6500000000001 844.7999999999998 600.0500000000001C865.2999999999998 555.45 882.2499999999998 511.7500000000001 895.3 470.0500000000001C1007.4 501.9000000000001 1079.1499999999999 550.2500000000001 1079.1499999999999 600.0500000000001S1007.4 698.2 895.3 730.0500000000001zM600 506A93.99999999999999 93.99999999999999 0 1 0 600 694A93.99999999999999 93.99999999999999 0 0 0 600 506z","horizAdvX":"1200"},"reactjs-line":{"path":["M0 0h24v24H0z","M12 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-.528 2.994c.175.21.351.414.528.609.177-.195.353-.398.528-.609a24.883 24.883 0 0 1-1.056 0zm-1.995-.125a20.678 20.678 0 0 1-2.285-.368c-.075.35-.132.69-.17 1.016-.19 1.583.075 2.545.478 2.777.403.233 1.368-.019 2.645-.974.263-.197.528-.416.794-.655a20.678 20.678 0 0 1-1.462-1.796zm7.331-.368c-.717.16-1.483.284-2.285.368a20.678 20.678 0 0 1-1.462 1.796c.266.24.531.458.794.655 1.277.955 2.242 1.207 2.645.974.403-.232.667-1.194.479-2.777a11.36 11.36 0 0 0-.17-1.016zm1.45-.387c.577 2.639.274 4.74-1.008 5.48-1.282.74-3.253-.048-5.25-1.867-1.997 1.819-3.968 2.606-5.25 1.866-1.282-.74-1.585-2.84-1.009-5.48C3.167 14.794 1.5 13.48 1.5 12s1.667-2.793 4.241-3.614c-.576-2.639-.273-4.74 1.009-5.48 1.282-.74 3.253.048 5.25 1.867 1.997-1.819 3.968-2.606 5.25-1.866 1.282.74 1.585 2.84 1.009 5.48C20.833 9.206 22.5 10.52 22.5 12s-1.667 2.793-4.241 3.614zm-7.32-9.779a11.36 11.36 0 0 0-.793-.655C8.868 4.225 7.903 3.973 7.5 4.206c-.403.232-.667 1.194-.479 2.777.04.327.096.666.17 1.016a20.678 20.678 0 0 1 2.286-.368c.475-.653.965-1.254 1.462-1.796zm3.585 1.796c.802.084 1.568.209 2.285.368.075-.35.132-.69.17-1.016.19-1.583-.075-2.545-.478-2.777-.403-.233-1.368.019-2.645.974a11.36 11.36 0 0 0-.794.655c.497.542.987 1.143 1.462 1.796zm-1.995-.125c-.175-.21-.351-.414-.528-.609-.177.195-.353.398-.528.609a24.884 24.884 0 0 1 1.056 0zm-4.156 7.198a24.884 24.884 0 0 1-.528-.914c-.095.257-.183.51-.263.761.257.056.521.107.79.153zm1.932.234a22.897 22.897 0 0 0 3.392 0A22.897 22.897 0 0 0 15.392 12a22.897 22.897 0 0 0-1.696-2.938 22.897 22.897 0 0 0-3.392 0A22.897 22.897 0 0 0 8.608 12a22.897 22.897 0 0 0 1.696 2.938zm5.852-4.728c.095-.257.183-.51.263-.761a17.974 17.974 0 0 0-.79-.153 24.884 24.884 0 0 1 .527.914zM6.13 9.837c-.34.11-.662.23-.964.36C3.701 10.825 3 11.535 3 12c0 .465.7 1.175 2.166 1.803.302.13.624.25.964.36.222-.7.497-1.426.825-2.163a20.678 20.678 0 0 1-.825-2.163zm1.45-.388c.081.25.169.504.264.76a24.884 24.884 0 0 1 .528-.913c-.27.046-.534.097-.791.153zm10.29 4.714c.34-.11.662-.23.964-.36C20.299 13.175 21 12.465 21 12c0-.465-.7-1.175-2.166-1.803a11.36 11.36 0 0 0-.964-.36c-.222.7-.497 1.426-.825 2.163.328.737.603 1.462.825 2.163zm-1.45.388c-.081-.25-.169-.504-.264-.76a24.884 24.884 0 0 1-.528.913c.27-.046.534-.097.791-.153z"],"unicode":"","glyph":"M600 525A75 75 0 1 0 600 675A75 75 0 0 0 600 525zM573.6 375.3C582.35 364.8 591.15 354.5999999999999 600 344.8499999999999C608.85 354.5999999999999 617.65 364.7499999999999 626.4 375.3A1244.15 1244.15 0 0 0 573.6 375.3zM473.85 381.55A1033.9 1033.9 0 0 0 359.6 399.95C355.85 382.4499999999998 353 365.4499999999998 351.1 349.1499999999999C341.6 269.9999999999999 354.85 221.8999999999998 375 210.2999999999999C395.1500000000001 198.6499999999998 443.4000000000001 211.2499999999998 507.25 258.9999999999998C520.4 268.8499999999998 533.65 279.7999999999999 546.95 291.7499999999999A1033.9 1033.9 0 0 0 473.85 381.5499999999999zM840.4 399.95C804.5500000000001 391.95 766.25 385.75 726.15 381.55A1033.9 1033.9 0 0 0 653.05 291.75C666.35 279.7500000000001 679.6 268.8500000000002 692.75 259C756.6 211.2500000000001 804.85 198.65 825 210.3C845.15 221.9 858.3500000000001 269.9999999999999 848.9499999999999 349.15A567.9999999999999 567.9999999999999 0 0 1 840.4499999999998 399.9500000000002zM912.9 419.3C941.75 287.35 926.6 182.3000000000001 862.5 145.3C798.4 108.3 699.85 147.6999999999998 600 238.65C500.15 147.7000000000001 401.6 108.3500000000001 337.5 145.3499999999999C273.4 182.3499999999999 258.25 287.35 287.05 419.35C158.35 460.3 75 526 75 600S158.35 739.65 287.05 780.7C258.25 912.65 273.4 1017.7 337.5 1054.7C401.6 1091.7 500.15 1052.3000000000002 600 961.35C699.85 1052.3000000000002 798.4 1091.65 862.5 1054.65C926.6 1017.65 941.75 912.65 912.95 780.6500000000001C1041.6499999999999 739.7 1125 674 1125 600S1041.6499999999999 460.35 912.95 419.3zM546.9 908.25A567.9999999999999 567.9999999999999 0 0 1 507.25 941C443.4000000000001 988.75 395.15 1001.35 375 989.7C354.85 978.1 341.6500000000001 930 351.05 850.8499999999999C353.05 834.5 355.85 817.55 359.55 800.05A1033.9 1033.9 0 0 0 473.85 818.45C497.6 851.1 522.1 881.15 546.95 908.25zM726.15 818.4499999999999C766.25 814.25 804.5500000000001 808 840.4 800.05C844.15 817.55 847.0000000000001 834.55 848.9000000000001 850.8499999999999C858.4000000000001 930 845.1500000000001 978.1 825 989.7C804.85 1001.35 756.6 988.75 692.75 941A567.9999999999999 567.9999999999999 0 0 1 653.05 908.2499999999998C677.9 881.1499999999999 702.4 851.0999999999999 726.15 818.4499999999998zM626.4 824.6999999999999C617.6499999999999 835.1999999999999 608.85 845.3999999999999 599.9999999999999 855.1499999999999C591.15 845.3999999999999 582.3499999999999 835.25 573.5999999999999 824.6999999999999A1244.2 1244.2 0 0 0 626.4 824.6999999999999zM418.6 464.8A1244.2 1244.2 0 0 0 392.2 510.5C387.45 497.65 383.05 485 379.05 472.45C391.9 469.6500000000001 405.1 467.1 418.55 464.8zM515.2 453.1A1144.85 1144.85 0 0 1 684.8 453.1A1144.85 1144.85 0 0 1 769.6 600A1144.85 1144.85 0 0 1 684.8 746.9000000000001A1144.85 1144.85 0 0 1 515.2 746.9000000000001A1144.85 1144.85 0 0 1 430.4000000000001 600A1144.85 1144.85 0 0 1 515.2 453.1zM807.8 689.5C812.5499999999998 702.3499999999999 816.9499999999999 715 820.95 727.55A898.7000000000002 898.7000000000002 0 0 1 781.45 735.1999999999999A1244.2 1244.2 0 0 0 807.8000000000001 689.5zM306.5 708.1500000000001C289.5 702.6500000000001 273.4 696.65 258.3 690.1500000000001C185.05 658.75 150 623.25 150 600C150 576.75 185 541.25 258.3 509.8499999999999C273.4 503.3499999999999 289.5 497.3499999999999 306.5000000000001 491.85C317.6000000000001 526.8499999999999 331.35 563.15 347.7500000000001 600A1033.9 1033.9 0 0 0 306.5000000000001 708.1500000000001zM379 727.55C383.05 715.05 387.45 702.35 392.2 689.55A1244.2 1244.2 0 0 0 418.6 735.2C405.1 732.9000000000001 391.9 730.3500000000001 379.05 727.55zM893.4999999999999 491.85C910.4999999999998 497.3499999999999 926.5999999999998 503.35 941.6999999999998 509.8499999999999C1014.95 541.25 1050 576.75 1050 600C1050 623.25 1015 658.75 941.7 690.1500000000001A567.9999999999999 567.9999999999999 0 0 1 893.5 708.1500000000001C882.4 673.1500000000001 868.6500000000001 636.85 852.2500000000001 600C868.6500000000001 563.15 882.4000000000002 526.9 893.5 491.85zM820.9999999999999 472.45C816.9499999999999 484.95 812.5499999999998 497.65 807.8 510.4499999999999A1244.2 1244.2 0 0 0 781.3999999999999 464.8C794.8999999999999 467.0999999999999 808.0999999999999 469.65 820.9499999999998 472.45z","horizAdvX":"1200"},"record-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-7a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"record-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-5a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450z","horizAdvX":"1200"},"record-mail-fill":{"path":["M0 0h24v24H0z","M9.743 15h4.514a5.5 5.5 0 1 1 4.243 2h-13a5.5 5.5 0 1 1 4.243-2zM5.5 13a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M487.15 450H712.85A275 275 0 1 0 925 350H275A275 275 0 1 0 487.15 450zM275 550A75 75 0 1 1 275 700A75 75 0 0 1 275 550zM925 550A75 75 0 1 1 925 700A75 75 0 0 1 925 550z","horizAdvX":"1200"},"record-mail-line":{"path":["M0 0h24v24H0z","M14.257 15a5.5 5.5 0 1 1 4.243 2h-13a5.5 5.5 0 1 1 4.243-2h4.514zM5.5 15a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7zm13 0a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z"],"unicode":"","glyph":"M712.85 450A275 275 0 1 0 925 350H275A275 275 0 1 0 487.15 450H712.85zM275 450A175 175 0 1 1 275 800A175 175 0 0 1 275 450zM925 450A175 175 0 1 1 925 800A175 175 0 0 1 925 450z","horizAdvX":"1200"},"recycle-fill":{"path":["M0 0H24V24H0z","M19.562 12.098l1.531 2.652c.967 1.674.393 3.815-1.28 4.781-.533.307-1.136.469-1.75.469H16v2l-5-3.5 5-3.5v2h2.062c.088 0 .174-.023.25-.067.213-.123.301-.378.221-.601l-.038-.082-1.531-2.652 2.598-1.5zM7.737 9.384l.53 6.08-1.73-1-1.032 1.786c-.044.076-.067.162-.067.25 0 .245.177.45.41.492l.09.008H9v3H5.938c-1.933 0-3.5-1.567-3.5-3.5 0-.614.162-1.218.469-1.75l1.031-1.786-1.732-1 5.53-2.58zm6.013-6.415c.532.307.974.749 1.281 1.281l1.03 1.786 1.733-1-.53 6.08-5.532-2.58 1.732-1-1.031-1.786c-.044-.076-.107-.14-.183-.183-.213-.123-.478-.072-.631.11l-.052.073-1.53 2.652-2.599-1.5 1.53-2.652c.967-1.674 3.108-2.248 4.782-1.281z"],"unicode":"","glyph":"M978.1 595.0999999999999L1054.65 462.5C1103 378.8000000000001 1074.3 271.7499999999999 990.65 223.4500000000001C963.9999999999998 208.1000000000001 933.85 200 903.15 200H800V100L550 275L800 450V350H903.1C907.5000000000002 350 911.8 351.15 915.6 353.35C926.2500000000002 359.5000000000001 930.65 372.25 926.65 383.4L924.75 387.5L848.2000000000002 520.1L978.1 595.1zM386.85 730.8L413.35 426.8L326.85 476.8L275.25 387.5C273.05 383.7 271.8999999999999 379.4000000000001 271.8999999999999 375C271.8999999999999 362.75 280.75 352.5 292.4 350.4L296.8999999999999 350H450V200H296.9C200.25 200 121.9 278.35 121.9 375C121.9 405.7000000000001 130 435.9 145.35 462.5L196.9 551.8L110.3 601.8L386.8 730.8zM687.5 1051.55C714.1 1036.2 736.2 1014.1 751.5500000000001 987.5L803.05 898.2L889.7 948.2L863.1999999999999 644.2L586.5999999999999 773.2L673.1999999999999 823.2L621.6499999999999 912.5C619.4499999999999 916.3 616.3 919.5 612.4999999999999 921.65C601.8499999999999 927.8 588.5999999999999 925.25 580.9499999999999 916.15L578.3499999999999 912.5L501.85 779.9L371.8999999999999 854.9L448.3999999999999 987.5C496.7499999999999 1071.2 603.8 1099.8999999999999 687.4999999999999 1051.55z","horizAdvX":"1200"},"recycle-line":{"path":["M0 0H24V24H0z","M19.562 12.097l1.531 2.653c.967 1.674.393 3.815-1.28 4.781-.533.307-1.136.469-1.75.469H16v2.5L11 19l5-3.5V18h2.062c.263 0 .522-.07.75-.201.718-.414.963-1.332.55-2.049l-1.532-2.653 1.732-1zM7.304 9.134l.53 6.08-2.164-1.25-1.031 1.786c-.132.228-.201.487-.201.75 0 .828.671 1.5 1.5 1.5H9v2H5.938c-1.933 0-3.5-1.567-3.5-3.5 0-.614.162-1.218.469-1.75l1.03-1.787-2.164-1.249 5.53-2.58zm6.446-6.165c.532.307.974.749 1.281 1.281l1.03 1.785 2.166-1.25-.53 6.081-5.532-2.58 2.165-1.25-1.031-1.786c-.132-.228-.321-.417-.549-.549-.717-.414-1.635-.168-2.049.549L9.169 7.903l-1.732-1L8.97 4.25c.966-1.674 3.107-2.248 4.781-1.281z"],"unicode":"","glyph":"M978.1 595.15L1054.65 462.5C1103 378.8000000000001 1074.3 271.7499999999999 990.65 223.4500000000001C963.9999999999998 208.1000000000001 933.85 200 903.15 200H800V75L550 250L800 425V300H903.1C916.2500000000002 300 929.2 303.5 940.6 310.0500000000001C976.5 330.7500000000001 988.7500000000002 376.6500000000001 968.1000000000003 412.5L891.5000000000001 545.15L978.1 595.15zM365.2 743.3L391.7000000000001 439.3L283.5 501.8L231.95 412.5C225.35 401.1 221.9 388.1500000000001 221.9 375C221.9 333.6 255.4500000000001 300 296.9000000000001 300H450V200H296.9C200.25 200 121.9 278.35 121.9 375C121.9 405.7000000000001 130 435.9 145.35 462.5L196.85 551.8499999999999L88.65 614.3L365.15 743.3zM687.5 1051.55C714.1 1036.2 736.2 1014.1 751.5500000000001 987.5L803.05 898.25L911.35 960.75L884.8499999999999 656.7L608.25 785.7L716.4999999999999 848.2L664.9499999999999 937.5C658.3499999999999 948.9 648.8999999999999 958.35 637.4999999999999 964.95C601.6499999999999 985.65 555.7499999999999 973.35 535.05 937.5L458.45 804.85L371.85 854.85L448.5000000000001 987.5C496.8 1071.2 603.8500000000001 1099.9 687.5500000000001 1051.55z","horizAdvX":"1200"},"red-packet-fill":{"path":["M0 0h24v24H0z","M21 5.937A11.985 11.985 0 0 1 14.194 9.8a2.5 2.5 0 0 0-4.388 0A11.985 11.985 0 0 1 3 5.937V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v2.937zm0 2.787V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8.724A13.944 13.944 0 0 0 9.63 11.8a2.501 2.501 0 0 0 4.74 0A13.944 13.944 0 0 0 21 8.724z"],"unicode":"","glyph":"M1050 903.15A599.25 599.25 0 0 0 709.7 710A125 125 0 0 1 490.3000000000001 710A599.25 599.25 0 0 0 150 903.15V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V903.15zM1050 763.8V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V763.8A697.2 697.2 0 0 1 481.5000000000001 610A125.04999999999998 125.04999999999998 0 0 1 718.5 610A697.2 697.2 0 0 1 1050 763.8z","horizAdvX":"1200"},"red-packet-line":{"path":["M0 0h24v24H0z","M14.173 9.763A9.98 9.98 0 0 0 19 7.141V4H5v3.141a9.98 9.98 0 0 0 4.827 2.622 2.5 2.5 0 0 1 4.346 0zm.208 2a2.501 2.501 0 0 1-4.762 0A11.94 11.94 0 0 1 5 9.749V20h14V9.748a11.94 11.94 0 0 1-4.619 2.016zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M708.65 711.85A499 499 0 0 1 950 842.95V1000H250V842.95A499 499 0 0 1 491.35 711.85A125 125 0 0 0 708.65 711.85zM719.05 611.85A125.04999999999998 125.04999999999998 0 0 0 480.95 611.85A596.9999999999999 596.9999999999999 0 0 0 250 712.55V200H950V712.6A596.9999999999999 596.9999999999999 0 0 0 719.05 611.8000000000001zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100z","horizAdvX":"1200"},"reddit-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm6.67-10a1.46 1.46 0 0 0-2.47-1 7.12 7.12 0 0 0-3.85-1.23L13 6.65l2.14.45a1 1 0 1 0 .13-.61L12.82 6a.31.31 0 0 0-.37.24l-.74 3.47a7.14 7.14 0 0 0-3.9 1.23 1.46 1.46 0 1 0-1.61 2.39 2.87 2.87 0 0 0 0 .44c0 2.24 2.61 4.06 5.83 4.06s5.83-1.82 5.83-4.06a2.87 2.87 0 0 0 0-.44 1.46 1.46 0 0 0 .81-1.33zm-10 1a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm5.81 2.75a3.84 3.84 0 0 1-2.47.77 3.84 3.84 0 0 1-2.47-.77.27.27 0 0 1 .38-.38A3.27 3.27 0 0 0 12 16a3.28 3.28 0 0 0 2.09-.61.28.28 0 1 1 .39.4v-.04zm-.18-1.71a1 1 0 1 1 1-1 1 1 0 0 1-1.01 1.04l.01-.04z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM933.5000000000002 600A72.99999999999999 72.99999999999999 0 0 1 810.0000000000001 650A356 356 0 0 1 617.5000000000001 711.5L650 867.5L757 845A50 50 0 1 1 763.5000000000001 875.5L641 900A15.5 15.5 0 0 1 622.5 888L585.5 714.5A357 357 0 0 1 390.5 652.9999999999999A72.99999999999999 72.99999999999999 0 1 1 310 533.4999999999999A143.5 143.5 0 0 1 310 511.4999999999999C310 399.4999999999999 440.5 308.4999999999999 601.5 308.4999999999999S893 399.4999999999999 893 511.4999999999999A143.5 143.5 0 0 1 893 533.4999999999998A72.99999999999999 72.99999999999999 0 0 1 933.4999999999998 599.9999999999998zM433.5000000000001 550A50 50 0 1 0 533.5000000000001 550A50 50 0 0 0 433.5000000000001 550zM724 412.5A192.00000000000003 192.00000000000003 0 0 0 600.5 374A192.00000000000003 192.00000000000003 0 0 0 476.9999999999999 412.5A13.5 13.5 0 0 0 496 431.5A163.5 163.5 0 0 1 600 400A163.99999999999997 163.99999999999997 0 0 1 704.5 430.5A14.000000000000002 14.000000000000002 0 1 0 724 410.5V412.4999999999999zM715 498A50 50 0 1 0 765 548A50 50 0 0 0 714.5 496.0000000000001L715 498z","horizAdvX":"1200"},"reddit-line":{"path":["M0 0h24v24H0z","M11.102 7.815l.751-3.536a2 2 0 0 1 2.373-1.54l3.196.68a2 2 0 1 1-.416 1.956l-3.196-.68-.666 3.135c1.784.137 3.557.73 5.163 1.7a3.192 3.192 0 0 1 4.741 2.673v.021a3.192 3.192 0 0 1-1.207 2.55 2.855 2.855 0 0 1-.008.123c0 3.998-4.45 7.03-9.799 7.03-5.332 0-9.708-3.024-9.705-6.953a5.31 5.31 0 0 1-.01-.181 3.192 3.192 0 0 1 3.454-5.35 11.446 11.446 0 0 1 5.329-1.628zm9.286 5.526c.408-.203.664-.62.661-1.075a1.192 1.192 0 0 0-2.016-.806l-.585.56-.67-.455c-1.615-1.098-3.452-1.725-5.23-1.764h-1.006c-1.875.029-3.651.6-5.237 1.675l-.663.45-.584-.55a1.192 1.192 0 1 0-1.314 1.952l.633.29-.054.695c-.013.17-.013.339.003.584 0 2.71 3.356 5.03 7.708 5.03 4.371 0 7.799-2.336 7.802-5.106a3.31 3.31 0 0 0 0-.508l-.052-.672.604-.3zM7 13.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm7 0a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm-1.984 5.103c-1.397 0-2.767-.37-3.882-1.21a.424.424 0 0 1 .597-.597c.945.693 2.123.99 3.269.99s2.33-.275 3.284-.959a.439.439 0 0 1 .732.206.469.469 0 0 1-.119.423c-.684.797-2.484 1.147-3.881 1.147z"],"unicode":"","glyph":"M555.1 809.25L592.65 986.05A100 100 0 0 0 711.3 1063.05L871.1 1029.05A100 100 0 1 0 850.3 931.25L690.5 965.25L657.2 808.5C746.4000000000001 801.65 835.0500000000001 772 915.3500000000003 723.5A159.6 159.6 0 0 0 1152.4 589.85V588.8A159.6 159.6 0 0 0 1092.05 461.3A142.75 142.75 0 0 0 1091.65 455.15C1091.65 255.25 869.1500000000001 103.6500000000001 601.7000000000002 103.6500000000001C335.1000000000002 103.6500000000001 116.3000000000001 254.85 116.4500000000001 451.3A265.5 265.5 0 0 0 115.9500000000001 460.3499999999999A159.6 159.6 0 0 0 288.6500000000002 727.8499999999999A572.3 572.3 0 0 0 555.1000000000001 809.25zM1019.3999999999997 532.9499999999999C1039.8 543.0999999999999 1052.6 563.9499999999999 1052.45 586.6999999999999A59.6 59.6 0 0 1 951.65 627L922.4 598.9999999999999L888.9 621.7499999999999C808.15 676.65 716.3 708 627.3999999999999 709.9499999999999H577.0999999999999C483.3499999999999 708.4999999999999 394.5499999999999 679.9499999999999 315.2499999999999 626.1999999999998L282.0999999999999 603.6999999999999L252.8999999999999 631.1999999999999A59.6 59.6 0 1 1 187.1999999999999 533.5999999999999L218.8499999999999 519.1L216.1499999999999 484.35C215.4999999999999 475.85 215.4999999999999 467.4 216.2999999999999 455.15C216.2999999999999 319.6500000000001 384.0999999999999 203.65 601.6999999999999 203.65C820.25 203.65 991.6499999999997 320.45 991.8 458.95A165.5 165.5 0 0 1 991.8 484.35L989.2 517.95L1019.3999999999997 532.9500000000002zM350 525A75 75 0 1 0 500 525A75 75 0 0 0 350 525zM700 525A75 75 0 1 0 850 525A75 75 0 0 0 700 525zM600.8 269.8499999999999C530.95 269.8499999999999 462.45 288.35 406.7000000000001 330.3499999999999A21.2 21.2 0 0 0 436.55 360.2000000000001C483.8 325.55 542.6999999999999 310.7000000000002 600 310.7000000000002S716.5 324.4500000000001 764.1999999999999 358.6500000000001A21.95 21.95 0 0 0 800.8 348.3500000000002A23.45 23.45 0 0 0 794.8499999999999 327.2000000000002C760.65 287.3500000000002 670.65 269.8500000000003 600.8 269.8500000000003z","horizAdvX":"1200"},"refresh-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.82-4.924A7 7 0 0 0 9.032 5.658l.975 1.755A5 5 0 0 1 17 12h-3l2.82 5.076zm-1.852 1.266l-.975-1.755A5 5 0 0 1 7 12h3L7.18 6.924a7 7 0 0 0 7.788 11.418z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM841 346.2A350 350 0 0 1 451.6 917.1L500.35 829.3499999999999A250 250 0 0 0 850 600H700L841 346.2zM748.4 282.9000000000001L699.65 370.65A250 250 0 0 0 350 600H500L359 853.8A350 350 0 0 1 748.4 282.9000000000001z","horizAdvX":"1200"},"refresh-line":{"path":["M0 0h24v24H0z","M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795z"],"unicode":"","glyph":"M273.15 978.35A498.05 498.05 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.5000000000002 312.9999999999999L850 600H1000A400 400 0 0 1 323 888.6L273.15 978.35zM926.85 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600C100 706.8 133.5 805.8 190.5 887L350 600H200A400 400 0 0 1 877 311.4000000000001L926.85 221.65z","horizAdvX":"1200"},"refund-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10a9.96 9.96 0 0 1-6.383-2.302l-.244-.209.902-1.902a8 8 0 1 0-2.27-5.837l-.005.25h2.5l-2.706 5.716A9.954 9.954 0 0 1 2 12C2 6.477 6.477 2 12 2zm1 4v2h2.5v2H10a.5.5 0 0 0-.09.992L10 11h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2H14a.5.5 0 0 0 .09-.992L14 13h-4a2.5 2.5 0 1 1 0-5h1V6h2z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100A498.00000000000006 498.00000000000006 0 0 0 280.85 215.1L268.6500000000001 225.55L313.75 320.65A400 400 0 1 1 200.25 612.5L200.0000000000001 600H325.0000000000001L189.7000000000001 314.2A497.7000000000001 497.7000000000001 0 0 0 100 600C100 876.15 323.85 1100 600 1100zM650 900V800H775V700H500A25 25 0 0 1 495.5 650.4L500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500H700A25 25 0 0 1 704.5 549.6L700 550H500A125 125 0 1 0 500 800H550V900H650z","horizAdvX":"1200"},"refund-2-line":{"path":["M0 0h24v24H0z","M5.671 4.257c3.928-3.219 9.733-2.995 13.4.672 3.905 3.905 3.905 10.237 0 14.142-3.905 3.905-10.237 3.905-14.142 0A9.993 9.993 0 0 1 2.25 9.767l.077-.313 1.934.51a8 8 0 1 0 3.053-4.45l-.221.166 1.017 1.017-4.596 1.06 1.06-4.596 1.096 1.096zM13 6v2h2.5v2H10a.5.5 0 0 0-.09.992L10 11h4a2.5 2.5 0 1 1 0 5h-1v2h-2v-2H8.5v-2H14a.5.5 0 0 0 .09-.992L14 13h-4a2.5 2.5 0 1 1 0-5h1V6h2z"],"unicode":"","glyph":"M283.55 987.15C479.95 1148.1 770.2 1136.9 953.55 953.55C1148.8000000000002 758.3 1148.8000000000002 441.7 953.55 246.4500000000001C758.3000000000001 51.2 441.7000000000001 51.2 246.4500000000001 246.4500000000001A499.6500000000001 499.6500000000001 0 0 0 112.5 711.6500000000001L116.35 727.3000000000001L213.05 701.8000000000001A400 400 0 1 1 365.7 924.3L354.65 916L405.5 865.1500000000001L175.7 812.1500000000001L228.7 1041.95L283.5 987.15zM650 900V800H775V700H500A25 25 0 0 1 495.5 650.4L500 650H700A125 125 0 1 0 700 400H650V300H550V400H425V500H700A25 25 0 0 1 704.5 549.6L700 550H500A125 125 0 1 0 500 800H550V900H650z","horizAdvX":"1200"},"refund-fill":{"path":["M0 0h24v24H0z","M22 7H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v3zm0 2v11a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V9h20zm-11 5v-2.5L6.5 16H17v-2h-6z"],"unicode":"","glyph":"M1100 850H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V850zM1100 750V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V750H1100zM550 500V625L325 400H850V500H550z","horizAdvX":"1200"},"refund-line":{"path":["M0 0h24v24H0z","M20 8V5H4v3h16zm0 2H4v9h16v-9zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 11h6v2H6.5l4.5-4.5V14z"],"unicode":"","glyph":"M1000 800V950H200V800H1000zM1000 700H200V250H1000V700zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM550 500H850V400H325L550 625V500z","horizAdvX":"1200"},"registered-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm.5 5H8v10h2v-3h2.217l2.18 3h2.472l-2.55-3.51a3.5 3.5 0 0 0-1.627-6.486l-.192-.004zm0 2a1.5 1.5 0 0 1 1.493 1.356L14 10.5l-.007.144a1.5 1.5 0 0 1-1.349 1.35L12.5 12H10V9h2.5z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM625 850H400V350H500V500H610.85L719.85 350H843.45L715.9499999999999 525.5A175 175 0 0 1 634.5999999999999 849.8L624.9999999999999 850zM625 750A75 75 0 0 0 699.65 682.2L700 675L699.65 667.8A75 75 0 0 0 632.2 600.3L625 600H500V750H625z","horizAdvX":"1200"},"registered-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm.5 3a3.5 3.5 0 0 1 1.82 6.49L16.868 17h-2.472l-2.18-3H10v3H8V7h4.5zm0 2H10v3h2.5a1.5 1.5 0 0 0 1.493-1.356L14 10.5A1.5 1.5 0 0 0 12.5 9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM600 1000A400 400 0 1 1 600 200A400 400 0 0 1 600 1000zM625 850A175 175 0 0 0 716 525.5L843.4 350H719.8L610.8 500H500V350H400V850H625zM625 750H500V600H625A75 75 0 0 1 699.65 667.8L700 675A75 75 0 0 1 625 750z","horizAdvX":"1200"},"remixicon-fill":{"path":["M0 0h24v24H0z","M16.53 17.53L20 21H3V4h10.667v.008A7.118 7.118 0 0 1 14.136 4c-.089.37-.136.76-.136 1.166C14 7.485 16.015 9.5 18.667 9.5c.724 0 1.419-.197 2.032-.538a7.003 7.003 0 0 1-4.17 8.567zM18.5 7.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z"],"unicode":"","glyph":"M826.5 323.5L1000 150H150V1000H683.35V999.6A355.90000000000003 355.90000000000003 0 0 0 706.8 1000C702.3499999999999 981.5 700 962 700 941.7C700 825.75 800.75 725 933.3500000000003 725C969.55 725 1004.3 734.8499999999999 1034.95 751.9000000000001A350.15 350.15 0 0 0 826.4500000000002 323.55zM925 825A125 125 0 1 0 925 1075A125 125 0 0 0 925 825z","horizAdvX":"1200"},"remixicon-line":{"path":["M0 0h24v24H0z","M6.364 6l8.784 9.663.72-.283c1.685-.661 2.864-2.156 3.092-3.896A6.502 6.502 0 0 1 12.077 6H6.363zM14 5a4.5 4.5 0 0 0 6.714 3.918c.186.618.286 1.271.286 1.947 0 2.891-1.822 5.364-4.4 6.377L20 21H3V4h11.111A4.515 4.515 0 0 0 14 5zm4.5 2.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zM5 7.47V19h10.48L5 7.47z"],"unicode":"","glyph":"M318.2 900L757.4 416.85L793.4 431C877.6500000000001 464.05 936.6 538.8 948 625.8A325.1 325.1 0 0 0 603.85 900H318.1500000000001zM700 950A225 225 0 0 1 1035.6999999999998 754.1C1045 723.2 1050 690.55 1050 656.7500000000001C1050 512.2 958.9 388.5500000000001 830.0000000000001 337.9000000000001L1000 150H150V1000H705.5500000000001A225.74999999999997 225.74999999999997 0 0 1 700 950zM925 825A125 125 0 1 0 925 1075A125 125 0 0 0 925 825zM250 826.5V250H774L250 826.5z","horizAdvX":"1200"},"remote-control-2-fill":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-3 13h-2v2h2v-2zm-4 0H9v2h2v-2zm2-9h-2v2H9v2h1.999L11 12h2l-.001-2H15V8h-2V6z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM750 450H650V350H750V450zM550 450H450V350H550V450zM650 900H550V800H450V700H549.95L550 600H650L649.95 700H750V800H650V900z","horizAdvX":"1200"},"remote-control-2-line":{"path":["M0 0h24v24H0z","M18 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12zm-1 2H7v16h10V4zm-2 11v2h-2v-2h2zm-4 0v2H9v-2h2zm2-9v2h2v2h-2.001L13 12h-2l-.001-2H9V8h2V6h2z"],"unicode":"","glyph":"M900 1100A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100H900zM850 1000H350V200H850V1000zM750 450V350H650V450H750zM550 450V350H450V450H550zM650 900V800H750V700H649.95L650 600H550L549.95 700H450V800H550V900H650z","horizAdvX":"1200"},"remote-control-fill":{"path":["M0 0h24v24H0z","M17 12a1 1 0 0 1 1 1v9H6v-9a1 1 0 0 1 1-1h10zm-7 2H8v2h2v-2zm2-8a6 6 0 0 1 5.368 3.316l-1.79.895a4 4 0 0 0-7.157 0l-1.789-.895A6 6 0 0 1 12 6zm0-4a10 10 0 0 1 8.946 5.527l-1.789.895A8 8 0 0 0 12 4a8 8 0 0 0-7.157 4.422l-1.79-.895A10 10 0 0 1 12 2z"],"unicode":"","glyph":"M850 600A50 50 0 0 0 900 550V100H300V550A50 50 0 0 0 350 600H850zM500 500H400V400H500V500zM600 900A300 300 0 0 0 868.4000000000001 734.2L778.9000000000001 689.45A200 200 0 0 1 421.0500000000002 689.45L331.6000000000002 734.2A300 300 0 0 0 600 900zM600 1100A500 500 0 0 0 1047.3 823.65L957.8499999999998 778.9A400 400 0 0 1 600 1000A400 400 0 0 1 242.15 778.9L152.65 823.65A500 500 0 0 0 600 1100z","horizAdvX":"1200"},"remote-control-line":{"path":["M0 0h24v24H0z","M17 12a1 1 0 0 1 1 1v9h-2v-8H8v8H6v-9a1 1 0 0 1 1-1h10zm-5 4v2h-2v-2h2zm0-10a6 6 0 0 1 5.368 3.316l-1.79.895a4 4 0 0 0-7.157 0l-1.789-.895A6 6 0 0 1 12 6zm0-4a10 10 0 0 1 8.946 5.527l-1.789.895A8 8 0 0 0 12 4a8 8 0 0 0-7.157 4.422l-1.79-.895A10 10 0 0 1 12 2z"],"unicode":"","glyph":"M850 600A50 50 0 0 0 900 550V100H800V500H400V100H300V550A50 50 0 0 0 350 600H850zM600 400V300H500V400H600zM600 900A300 300 0 0 0 868.4000000000001 734.2L778.9000000000001 689.45A200 200 0 0 1 421.0500000000002 689.45L331.6000000000002 734.2A300 300 0 0 0 600 900zM600 1100A500 500 0 0 0 1047.3 823.65L957.8499999999998 778.9A400 400 0 0 1 600 1000A400 400 0 0 1 242.15 778.9L152.65 823.65A500 500 0 0 0 600 1100z","horizAdvX":"1200"},"repeat-2-fill":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1000V1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 900H300A100 100 0 0 1 200 800V400H100V800A200 200 0 0 0 300 1000H800z","horizAdvX":"1200"},"repeat-2-line":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1000V1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 900H300A100 100 0 0 1 200 800V400H100V800A200 200 0 0 0 300 1000H800z","horizAdvX":"1200"},"repeat-fill":{"path":["M0 0h24v24H0z","M6 4h15a1 1 0 0 1 1 1v7h-2V6H6v3L1 5l5-4v3zm12 16H3a1 1 0 0 1-1-1v-7h2v6h14v-3l5 4-5 4v-3z"],"unicode":"","glyph":"M300 1000H1050A50 50 0 0 0 1100 950V600H1000V900H300V750L50 950L300 1150V1000zM900 200H150A50 50 0 0 0 100 250V600H200V300H900V450L1150 250L900 50V200z","horizAdvX":"1200"},"repeat-line":{"path":["M0 0h24v24H0z","M6 4h15a1 1 0 0 1 1 1v7h-2V6H6v3L1 5l5-4v3zm12 16H3a1 1 0 0 1-1-1v-7h2v6h14v-3l5 4-5 4v-3z"],"unicode":"","glyph":"M300 1000H1050A50 50 0 0 0 1100 950V600H1000V900H300V750L50 950L300 1150V1000zM900 200H150A50 50 0 0 0 100 250V600H200V300H900V450L1150 250L900 50V200z","horizAdvX":"1200"},"repeat-one-fill":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-16V2.068a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10zm-5 4h2v8h-2v-6H9V9l2-1z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1000V1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 900H300A100 100 0 0 1 200 800V400H100V800A200 200 0 0 0 300 1000H800zM550 800H650V400H550V700H450V750L550 800z","horizAdvX":"1200"},"repeat-one-line":{"path":["M0 0h24v24H0z","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-17.932a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10V2.068zM11 8h2v8h-2v-6H9V9l2-1z"],"unicode":"","glyph":"M400 200V103.4000000000001A25 25 0 0 0 359 84.1500000000001L153 255.8A25 25 0 0 0 169.1 300H900A100 100 0 0 1 1000 400V800H1100V400A200 200 0 0 0 900 200H400zM800 1096.6A25 25 0 0 0 841 1115.85L1047 944.2A25 25 0 0 0 1030.95 899.9999999999999H300A100 100 0 0 1 200 799.9999999999999V400H100V800A200 200 0 0 0 300 1000H800V1096.6zM550 800H650V400H550V700H450V750L550 800z","horizAdvX":"1200"},"reply-all-fill":{"path":["M0 0H24V24H0z","M14 4.5V9c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81-1.463-2.774-4.33-4.691-7.655-4.805L16 15h-2v4.5L6 12l8-7.5zm-6 0v2.737L2.92 12l5.079 4.761L8 19.5 0 12l8-7.5z"],"unicode":"","glyph":"M700 975V750C976.15 750 1200 526.15 1200 250C1200 236.35 1199.5 222.85 1198.4 209.5000000000001C1125.25 348.2000000000002 981.8999999999997 444.05 815.65 449.75L800 450H700V225L300 600L700 975zM400 975V838.15L146 600L399.95 361.9500000000001L400 225L0 600L400 975z","horizAdvX":"1200"},"reply-all-line":{"path":["M0 0H24V24H0z","M14 4.5V9c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81-1.463-2.774-4.33-4.691-7.655-4.805L16 15h-2v4.5L6 12l8-7.5zm-6 0v2.737L2.92 12l5.079 4.761L8 19.5 0 12l8-7.5zm4 4.616L8.924 12 12 14.883V13h4.034l.347.007c1.285.043 2.524.31 3.676.766C18.59 12.075 16.42 11 14 11h-2V9.116z"],"unicode":"","glyph":"M700 975V750C976.15 750 1200 526.15 1200 250C1200 236.35 1199.5 222.85 1198.4 209.5000000000001C1125.25 348.2000000000002 981.8999999999997 444.05 815.65 449.75L800 450H700V225L300 600L700 975zM400 975V838.15L146 600L399.95 361.9500000000001L400 225L0 600L400 975zM600 744.2L446.2 600L600 455.85V550H801.6999999999999L819.05 549.65C883.3000000000001 547.5 945.25 534.15 1002.8500000000003 511.35C929.5 596.25 821.0000000000001 650 700 650H600V744.2z","horizAdvX":"1200"},"reply-fill":{"path":["M0 0H24V24H0z","M11 20L1 12l10-8v5c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81C19.46 16.95 16.458 15 13 15h-2v5z"],"unicode":"","glyph":"M550 200L50 600L550 1000V750C826.15 750 1050 526.15 1050 250C1050 236.35 1049.5 222.85 1048.4 209.5000000000001C973 352.5 822.8999999999999 450 650 450H550V200z","horizAdvX":"1200"},"reply-line":{"path":["M0 0H24V24H0z","M11 20L1 12l10-8v5c5.523 0 10 4.477 10 10 0 .273-.01.543-.032.81-1.463-2.774-4.33-4.691-7.655-4.805L13 15h-2v5zm-2-7h4.034l.347.007c1.285.043 2.524.31 3.676.766C15.59 12.075 13.42 11 11 11H9V8.161L4.202 12 9 15.839V13z"],"unicode":"","glyph":"M550 200L50 600L550 1000V750C826.15 750 1050 526.15 1050 250C1050 236.35 1049.5 222.85 1048.4 209.5000000000001C975.25 348.2000000000002 831.8999999999999 444.05 665.65 449.75L650 450H550V200zM450 550H651.6999999999999L669.05 549.65C733.3 547.5 795.2499999999999 534.15 852.8499999999999 511.35C779.5 596.25 671 650 550 650H450V791.95L210.1 600L450 408.05V550z","horizAdvX":"1200"},"reserved-fill":{"path":["M0 0h24v24H0z","M13 15v4h3v2H8v-2h3v-4H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-7zM8 8v2h8V8H8z"],"unicode":"","glyph":"M650 450V250H800V150H400V250H550V450H200A50 50 0 0 0 150 500V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V500A50 50 0 0 0 1000 450H650zM400 800V700H800V800H400z","horizAdvX":"1200"},"reserved-line":{"path":["M0 0h24v24H0z","M13 15v4h3v2H8v-2h3v-4H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-7zm-8-2h14V5H5v8zm3-5h8v2H8V8z"],"unicode":"","glyph":"M650 450V250H800V150H400V250H550V450H200A50 50 0 0 0 150 500V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V500A50 50 0 0 0 1000 450H650zM250 550H950V950H250V550zM400 800H800V700H400V800z","horizAdvX":"1200"},"rest-time-fill":{"path":["M0 0H24V24H0z","M11 6v8h8c0 4.418-3.582 8-8 8s-8-3.582-8-8c0-4.335 3.58-8 8-8zm10-4v2l-5.327 6H21v2h-8v-2l5.326-6H13V2h8z"],"unicode":"","glyph":"M550 900V500H950C950 279.1 770.9 100 550 100S150 279.1 150 500C150 716.75 329 900 550 900zM1050 1100V1000L783.65 700H1050V600H650V700L916.3 1000H650V1100H1050z","horizAdvX":"1200"},"rest-time-line":{"path":["M0 0H24V24H0z","M11 6v2c-3.314 0-6 2.686-6 6s2.686 6 6 6c3.238 0 5.878-2.566 5.996-5.775L17 14h2c0 4.418-3.582 8-8 8s-8-3.582-8-8c0-4.335 3.58-8 8-8zm10-4v2l-5.327 6H21v2h-8v-2l5.326-6H13V2h8z"],"unicode":"","glyph":"M550 900V800C384.3 800 250 665.7 250 500S384.3 200 550 200C711.9 200 843.9 328.3 849.8000000000001 488.75L850 500H950C950 279.1 770.9 100 550 100S150 279.1 150 500C150 716.75 329 900 550 900zM1050 1100V1000L783.65 700H1050V600H650V700L916.3 1000H650V1100H1050z","horizAdvX":"1200"},"restart-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.82-4.924a7 7 0 1 0-1.852 1.266l-.975-1.755A5 5 0 1 1 17 12h-3l2.82 5.076z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM841 346.2A350 350 0 1 1 748.4 282.9000000000001L699.65 370.65A250 250 0 1 0 850 600H700L841 346.2z","horizAdvX":"1200"},"restart-line":{"path":["M0 0h24v24H0z","M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"],"unicode":"","glyph":"M926.85 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.5000000000002 312.9999999999999L850 600H1000A400 400 0 1 1 877 311.4000000000001L926.85 221.65z","horizAdvX":"1200"},"restaurant-2-fill":{"path":["M0 0h24v24H0z","M4.222 3.808l6.717 6.717-2.828 2.829-3.89-3.89a4 4 0 0 1 0-5.656zm10.046 8.338l-.854.854 7.071 7.071-1.414 1.414L12 14.415l-7.071 7.07-1.414-1.414 9.339-9.339c-.588-1.457.02-3.555 1.62-5.157 1.953-1.952 4.644-2.427 6.011-1.06s.892 4.058-1.06 6.01c-1.602 1.602-3.7 2.21-5.157 1.621z"],"unicode":"","glyph":"M211.1 1009.6L546.95 673.7500000000001L405.55 532.3000000000001L211.05 726.8000000000001A200 200 0 0 0 211.05 1009.6zM713.4000000000001 592.7L670.7 550.0000000000001L1024.25 196.4500000000001L953.55 125.75L600 479.25L246.45 125.75L175.75 196.4500000000001L642.7 663.4000000000001C613.3000000000001 736.2500000000002 643.7 841.1500000000001 723.7 921.2500000000002C821.35 1018.8500000000003 955.9 1042.6000000000001 1024.25 974.2500000000002S1068.85 771.3500000000001 971.25 673.7500000000001C891.15 593.6500000000001 786.2500000000001 563.2500000000002 713.4000000000001 592.7000000000002z","horizAdvX":"1200"},"restaurant-2-line":{"path":["M0 0h24v24H0z","M14.268 12.146l-.854.854 7.071 7.071-1.414 1.414L12 14.415l-7.071 7.07-1.414-1.414 9.339-9.339c-.588-1.457.02-3.555 1.62-5.157 1.953-1.952 4.644-2.427 6.011-1.06s.892 4.058-1.06 6.01c-1.602 1.602-3.7 2.21-5.157 1.621zM4.222 3.808l6.717 6.717-2.828 2.829-3.89-3.89a4 4 0 0 1 0-5.656zM18.01 9.11c1.258-1.257 1.517-2.726 1.061-3.182-.456-.456-1.925-.197-3.182 1.06-1.257 1.258-1.516 2.727-1.06 3.183.455.455 1.924.196 3.181-1.061z"],"unicode":"","glyph":"M713.4000000000001 592.6999999999999L670.7 550L1024.25 196.4500000000001L953.55 125.75L600 479.25L246.45 125.75L175.75 196.4500000000001L642.7 663.4000000000001C613.3000000000001 736.2500000000002 643.7 841.1500000000001 723.7 921.2500000000002C821.35 1018.8500000000003 955.9 1042.6000000000001 1024.25 974.2500000000002S1068.85 771.3500000000001 971.25 673.7500000000001C891.15 593.6500000000001 786.2500000000001 563.2500000000002 713.4000000000001 592.7000000000002zM211.1 1009.6L546.95 673.7500000000001L405.55 532.3000000000001L211.05 726.8000000000001A200 200 0 0 0 211.05 1009.6zM900.5000000000001 744.5C963.4 807.35 976.35 880.8 953.55 903.6C930.7500000000002 926.4 857.3000000000001 913.45 794.45 850.6C731.6 787.7 718.6500000000001 714.25 741.45 691.45C764.2 668.7 837.65 681.6500000000001 900.5000000000001 744.5z","horizAdvX":"1200"},"restaurant-fill":{"path":["M0 0h24v24H0z","M21 2v20h-2v-8h-3V7a5 5 0 0 1 5-5zM9 13.9V22H7v-8.1A5.002 5.002 0 0 1 3 9V3h2v7h2V3h2v7h2V3h2v6a5.002 5.002 0 0 1-4 4.9z"],"unicode":"","glyph":"M1050 1100V100H950V500H800V850A250 250 0 0 0 1050 1100zM450 505V100H350V505A250.09999999999997 250.09999999999997 0 0 0 150 750V1050H250V700H350V1050H450V700H550V1050H650V750A250.09999999999997 250.09999999999997 0 0 0 450 505z","horizAdvX":"1200"},"restaurant-line":{"path":["M0 0h24v24H0z","M21 2v20h-2v-7h-4V8a6 6 0 0 1 6-6zm-2 2.53C18.17 5 17 6.17 17 8v5h2V4.53zM9 13.9V22H7v-8.1A5.002 5.002 0 0 1 3 9V3h2v7h2V3h2v7h2V3h2v6a5.002 5.002 0 0 1-4 4.9z"],"unicode":"","glyph":"M1050 1100V100H950V450H750V800A300 300 0 0 0 1050 1100zM950 973.5C908.5000000000002 950 850 891.5 850 800V550H950V973.5zM450 505V100H350V505A250.09999999999997 250.09999999999997 0 0 0 150 750V1050H250V700H350V1050H450V700H550V1050H650V750A250.09999999999997 250.09999999999997 0 0 0 450 505z","horizAdvX":"1200"},"rewind-fill":{"path":["M0 0h24v24H0z","M12 10.667l9.223-6.149a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L12 13.333v5.733a.5.5 0 0 1-.777.416L.624 12.416a.5.5 0 0 1 0-.832l10.599-7.066a.5.5 0 0 1 .777.416v5.733z"],"unicode":"","glyph":"M600 666.65L1061.1499999999999 974.1A25 25 0 0 0 1100 953.3V246.7000000000001A25 25 0 0 0 1061.1499999999999 225.9000000000001L600 533.35V246.7000000000001A25 25 0 0 0 561.1500000000001 225.9000000000001L31.2 579.1999999999999A25 25 0 0 0 31.2 620.8000000000001L561.1500000000001 974.1A25 25 0 0 0 600 953.3V666.65z","horizAdvX":"1200"},"rewind-line":{"path":["M0 0h24v24H0z","M12 10.667l9.223-6.149a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L12 13.333v5.733a.5.5 0 0 1-.777.416L.624 12.416a.5.5 0 0 1 0-.832l10.599-7.066a.5.5 0 0 1 .777.416v5.733zm-2 5.596V7.737L3.606 12 10 16.263zm10 0V7.737L13.606 12 20 16.263z"],"unicode":"","glyph":"M600 666.65L1061.1499999999999 974.1A25 25 0 0 0 1100 953.3V246.7000000000001A25 25 0 0 0 1061.1499999999999 225.9000000000001L600 533.35V246.7000000000001A25 25 0 0 0 561.1500000000001 225.9000000000001L31.2 579.1999999999999A25 25 0 0 0 31.2 620.8000000000001L561.1500000000001 974.1A25 25 0 0 0 600 953.3V666.65zM500 386.8500000000002V813.15L180.3 600L500 386.8499999999999zM1000 386.8500000000002V813.15L680.3 600L1000 386.8499999999999z","horizAdvX":"1200"},"rewind-mini-fill":{"path":["M0 0h24v24H0z","M11 17.035a.5.5 0 0 1-.788.409l-7.133-5.036a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07zm1.079-4.627a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M550 348.25A25 25 0 0 0 510.6 327.8000000000001L153.95 579.6A25 25 0 0 0 153.95 620.4000000000001L510.6 872.2A25 25 0 0 0 550 851.75V348.25zM603.95 579.5999999999999A25 25 0 0 0 603.95 620.4L960.6 872.1999999999999A25 25 0 0 0 1000 851.75V348.25A25 25 0 0 0 960.6 327.8000000000001L603.95 579.6z","horizAdvX":"1200"},"rewind-mini-line":{"path":["M0 0h24v24H0z","M9 9.86L5.968 12 9 14.14V9.86zm1.908 7.463a.5.5 0 0 1-.696.12l-7.133-5.035a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.092.288zM18 14.14V9.86L14.968 12 18 14.14zm-5.921-1.732a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M450 707L298.4 600L450 493V707zM545.4 333.85A25 25 0 0 0 510.6 327.8499999999999L153.95 579.5999999999999A25 25 0 0 0 153.95 620.4L510.6 872.1999999999999A25 25 0 0 0 550 851.75V348.25A25 25 0 0 0 545.4 333.85zM900 493V707L748.4 600L900 493zM603.95 579.5999999999999A25 25 0 0 0 603.95 620.4L960.6 872.1999999999999A25 25 0 0 0 1000 851.75V348.25A25 25 0 0 0 960.6 327.8000000000001L603.95 579.6z","horizAdvX":"1200"},"rhythm-fill":{"path":["M0 0h24v24H0z","M2 9h2v12H2V9zm6-6h2v18H8V3zm6 9h2v9h-2v-9zm6-6h2v15h-2V6z"],"unicode":"","glyph":"M100 750H200V150H100V750zM400 1050H500V150H400V1050zM700 600H800V150H700V600zM1000 900H1100V150H1000V900z","horizAdvX":"1200"},"rhythm-line":{"path":["M0 0h24v24H0z","M2 9h2v12H2V9zm6-6h2v18H8V3zm6 9h2v9h-2v-9zm6-6h2v15h-2V6z"],"unicode":"","glyph":"M100 750H200V150H100V750zM400 1050H500V150H400V1050zM700 600H800V150H700V600zM1000 900H1100V150H1000V900z","horizAdvX":"1200"},"riding-fill":{"path":["M0 0h24v24H0z","M5.5 21a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm13 3a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-6.969-8.203L13 12v6h-2v-5l-2.719-2.266A2 2 0 0 1 8 7.671l2.828-2.828a2 2 0 0 1 2.829 0l1.414 1.414a6.969 6.969 0 0 0 3.917 1.975l-.01 2.015a8.962 8.962 0 0 1-5.321-2.575L11.53 9.797zM16 5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M275 150A225 225 0 1 0 275 600A225 225 0 0 0 275 150zM275 300A75 75 0 1 1 275 450A75 75 0 0 1 275 300zM925 150A225 225 0 1 0 925 600A225 225 0 0 0 925 150zM925 300A75 75 0 1 1 925 450A75 75 0 0 1 925 300zM576.55 710.15L650 600V300H550V550L414.05 663.3A100 100 0 0 0 400 816.45L541.4 957.85A100 100 0 0 0 682.85 957.85L753.55 887.1500000000001A348.45 348.45 0 0 1 949.4 788.4000000000001L948.8999999999997 687.65A448.1 448.1 0 0 0 682.8499999999999 816.4000000000001L576.5 710.15zM800 950A100 100 0 1 0 800 1150A100 100 0 0 0 800 950z","horizAdvX":"1200"},"riding-line":{"path":["M0 0h24v24H0z","M5.5 21a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm13 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm-7.477-8.695L13 12v6h-2v-5l-2.719-2.266A2 2 0 0 1 8 7.671l2.828-2.828a2 2 0 0 1 2.829 0l1.414 1.414a6.969 6.969 0 0 0 3.917 1.975l-.01 2.015a8.962 8.962 0 0 1-5.321-2.575l-2.634 2.633zM16 5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M275 150A225 225 0 1 0 275 600A225 225 0 0 0 275 150zM275 250A125 125 0 1 1 275 500A125 125 0 0 1 275 250zM925 150A225 225 0 1 0 925 600A225 225 0 0 0 925 150zM925 250A125 125 0 1 1 925 500A125 125 0 0 1 925 250zM551.15 684.75L650 600V300H550V550L414.05 663.3A100 100 0 0 0 400 816.45L541.4 957.85A100 100 0 0 0 682.85 957.85L753.55 887.1500000000001A348.45 348.45 0 0 1 949.4 788.4000000000001L948.8999999999997 687.65A448.1 448.1 0 0 0 682.8499999999999 816.4000000000001L551.1499999999999 684.75zM800 950A100 100 0 1 0 800 1150A100 100 0 0 0 800 950z","horizAdvX":"1200"},"road-map-fill":{"path":["M0 0h24v24H0z","M16.95 11.95a6.996 6.996 0 0 0 1.858-6.582l2.495-1.07a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V7l3.129-1.341a6.993 6.993 0 0 0 1.921 6.29L12 16.9l4.95-4.95zm-1.414-1.414L12 14.07l-3.536-3.535a5 5 0 1 1 7.072 0z"],"unicode":"","glyph":"M847.5 602.5A349.79999999999995 349.79999999999995 0 0 1 940.4 931.6L1065.15 985.1A25 25 0 0 0 1100 962.1V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V850L256.45 917.05A349.65000000000003 349.65000000000003 0 0 1 352.5 602.55L600 355.0000000000001L847.5 602.5zM776.8 673.2L600 496.5L423.2000000000001 673.25A250 250 0 1 0 776.8000000000001 673.25z","horizAdvX":"1200"},"road-map-line":{"path":["M0 0h24v24H0z","M4 6.143v12.824l5.065-2.17 6 3L20 17.68V4.857l1.303-.558a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V7l2-.857zm12.243 5.1L12 15.485l-4.243-4.242a6 6 0 1 1 8.486 0zM12 12.657l2.828-2.829a4 4 0 1 0-5.656 0L12 12.657z"],"unicode":"","glyph":"M200 892.85V251.6500000000001L453.2500000000001 360.1500000000001L753.2500000000001 210.1500000000001L1000 316V957.15L1065.15 985.05A25 25 0 0 0 1100 962.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V850L200 892.85zM812.1500000000001 637.85L600 425.75L387.85 637.85A300 300 0 1 0 812.1500000000001 637.85zM600 567.15L741.4 708.6A200 200 0 1 1 458.6 708.6L600 567.15z","horizAdvX":"1200"},"roadster-fill":{"path":["M0 0h24v24H0z","M22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5h1.875l2.138-5.702A2 2 0 0 1 6.386 4h11.228a2 2 0 0 1 1.873 1.298L21.625 11H23.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5zM4 15v2a1 1 0 0 0 1 1h3.245a.5.5 0 0 0 .44-.736C7.88 15.754 6.318 15 4 15zm16 0c-2.317 0-3.879.755-4.686 2.264a.5.5 0 0 0 .441.736H19a1 1 0 0 0 1-1v-2zM6 6l-1.561 4.684A1 1 0 0 0 5.387 12h13.226a1 1 0 0 0 .948-1.316L18 6H6z"],"unicode":"","glyph":"M1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H118.75L225.65 935.1A100 100 0 0 0 319.3 1000H880.7A100 100 0 0 0 974.3500000000003 935.1L1081.25 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525zM200 450V350A50 50 0 0 1 250 300H412.2500000000001A25 25 0 0 1 434.25 336.8000000000001C394 412.3000000000001 315.9 450 200 450zM1000 450C884.15 450 806.05 412.25 765.7 336.8000000000001A25 25 0 0 1 787.75 300H950A50 50 0 0 1 1000 350V450zM300 900L221.95 665.8A50 50 0 0 1 269.35 600H930.65A50 50 0 0 1 978.05 665.8000000000001L900 900H300z","horizAdvX":"1200"},"roadster-line":{"path":["M0 0h24v24H0z","M19 20H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7.5l-1.243-.31A1 1 0 0 1 0 12.22v-.72a.5.5 0 0 1 .5-.5H2l2.48-5.788A2 2 0 0 1 6.32 4H17.68a2 2 0 0 1 1.838 1.212L22 11h1.5a.5.5 0 0 1 .5.5v.72a1 1 0 0 1-.757.97L22 13.5V21a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1zm1-2v-5H4v5h16zM5.477 11h13.046a1 1 0 0 0 .928-1.371L18 6H6L4.549 9.629A1 1 0 0 0 5.477 11zM5 14c2.317 0 3.879.755 4.686 2.264a.5.5 0 0 1-.441.736H6a1 1 0 0 1-1-1v-2zm14 0v2a1 1 0 0 1-1 1h-3.245a.5.5 0 0 1-.44-.736C15.12 14.754 16.682 14 19 14z"],"unicode":"","glyph":"M950 200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V525L37.85 540.5A50 50 0 0 0 0 589V625A25 25 0 0 0 25 650H100L224 939.4A100 100 0 0 0 316 1000H884A100 100 0 0 0 975.9 939.4L1100 650H1175A25 25 0 0 0 1200 625V589A50 50 0 0 0 1162.1499999999999 540.4999999999999L1100 525V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200zM1000 300V550H200V300H1000zM273.85 650H926.15A50 50 0 0 1 972.55 718.55L900 900H300L227.45 718.55A50 50 0 0 1 273.85 650zM250 500C365.85 500 443.95 462.25 484.3 386.8000000000001A25 25 0 0 0 462.2499999999999 350H300A50 50 0 0 0 250 400V500zM950 500V400A50 50 0 0 0 900 350H737.75A25 25 0 0 0 715.75 386.8000000000001C756 462.3000000000001 834.0999999999999 500 950 500z","horizAdvX":"1200"},"robot-fill":{"path":["M0 0h24v24H0z","M13 4.055c4.5.497 8 4.312 8 8.945v9H3v-9c0-4.633 3.5-8.448 8-8.945V1h2v3.055zM12 18a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0-2a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M650 997.25C875 972.4 1050 781.65 1050 550V100H150V550C150 781.65 325 972.4 550 997.25V1150H650V997.25zM600 300A250 250 0 1 1 600 800A250 250 0 0 1 600 300zM600 400A150 150 0 1 0 600 700A150 150 0 0 0 600 400zM600 500A50 50 0 1 1 600 600A50 50 0 0 1 600 500z","horizAdvX":"1200"},"robot-line":{"path":["M0 0h24v24H0z","M13 4.055c4.5.497 8 4.312 8 8.945v9H3v-9c0-4.633 3.5-8.448 8-8.945V1h2v3.055zM19 20v-7a7 7 0 0 0-14 0v7h14zm-7-2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-2a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M650 997.25C875 972.4 1050 781.65 1050 550V100H150V550C150 781.65 325 972.4 550 997.25V1150H650V997.25zM950 200V550A350 350 0 0 1 250 550V200H950zM600 300A250 250 0 1 0 600 800A250 250 0 0 0 600 300zM600 400A150 150 0 1 1 600 700A150 150 0 0 1 600 400zM600 500A50 50 0 1 0 600 600A50 50 0 0 0 600 500z","horizAdvX":"1200"},"rocket-2-fill":{"path":["M0 0h24v24H0z","M8.498 20h7.004A6.523 6.523 0 0 1 12 23.502 6.523 6.523 0 0 1 8.498 20zM18 14.805l2 2.268V19H4v-1.927l2-2.268V9c0-3.483 2.504-6.447 6-7.545C15.496 2.553 18 5.517 18 9v5.805zM12 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M424.9 200H775.0999999999999A326.15 326.15 0 0 0 600 24.9000000000001A326.15 326.15 0 0 0 424.9 200zM900 459.75L1000 346.35V250H200V346.35L300 459.75V750C300 924.15 425.2 1072.35 600 1127.25C774.8000000000001 1072.35 900 924.15 900 750V459.75zM600 650A100 100 0 1 1 600 850A100 100 0 0 1 600 650z","horizAdvX":"1200"},"rocket-2-line":{"path":["M0 0h24v24H0z","M15.502 20A6.523 6.523 0 0 1 12 23.502 6.523 6.523 0 0 1 8.498 20h2.26c.326.489.747.912 1.242 1.243.495-.33.916-.754 1.243-1.243h2.259zM18 14.805l2 2.268V19H4v-1.927l2-2.268V9c0-3.483 2.504-6.447 6-7.545C15.496 2.553 18 5.517 18 9v5.805zM17.27 17L16 15.56V9c0-2.318-1.57-4.43-4-5.42C9.57 4.57 8 6.681 8 9v6.56L6.73 17h10.54zM12 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M775.1 200A326.15 326.15 0 0 0 600 24.9000000000001A326.15 326.15 0 0 0 424.9 200H537.9C554.1999999999999 175.55 575.25 154.4000000000001 600 137.8500000000001C624.75 154.3499999999999 645.8000000000001 175.5500000000002 662.15 200H775.1zM900 459.75L1000 346.35V250H200V346.35L300 459.75V750C300 924.15 425.2 1072.35 600 1127.25C774.8000000000001 1072.35 900 924.15 900 750V459.75zM863.5 350L800 422V750C800 865.9 721.5 971.5 600 1021C478.5 971.5 400 865.95 400 750V422.0000000000001L336.5 350H863.5zM600 650A100 100 0 1 0 600 850A100 100 0 0 0 600 650z","horizAdvX":"1200"},"rocket-fill":{"path":["M0 0h24v24H0z","M5.33 15.929A13.064 13.064 0 0 1 5 13c0-5.088 2.903-9.436 7-11.182C16.097 3.564 19 7.912 19 13c0 1.01-.114 1.991-.33 2.929l2.02 1.796a.5.5 0 0 1 .097.63l-2.458 4.096a.5.5 0 0 1-.782.096l-2.254-2.254a1 1 0 0 0-.707-.293H9.414a1 1 0 0 0-.707.293l-2.254 2.254a.5.5 0 0 1-.782-.096l-2.458-4.095a.5.5 0 0 1 .097-.631l2.02-1.796zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M266.5 403.55A653.2 653.2 0 0 0 250 550C250 804.4 395.1500000000001 1021.8 600 1109.1C804.85 1021.8 950 804.4 950 550C950 499.5 944.3 450.45 933.5000000000002 403.55L1034.5 313.7499999999999A25 25 0 0 0 1039.3500000000001 282.25L916.45 77.4500000000001A25 25 0 0 0 877.35 72.6499999999999L764.6500000000001 185.35A50 50 0 0 1 729.3000000000001 200H470.7A50 50 0 0 1 435.35 185.35L322.65 72.6499999999999A25 25 0 0 0 283.55 77.4500000000001L160.65 282.2A25 25 0 0 0 165.5 313.7499999999999L266.5 403.55zM600 550A100 100 0 1 1 600 750A100 100 0 0 1 600 550z","horizAdvX":"1200"},"rocket-line":{"path":["M0 0h24v24H0z","M5 13c0-5.088 2.903-9.436 7-11.182C16.097 3.564 19 7.912 19 13c0 .823-.076 1.626-.22 2.403l1.94 1.832a.5.5 0 0 1 .095.603l-2.495 4.575a.5.5 0 0 1-.793.114l-2.234-2.234a1 1 0 0 0-.707-.293H9.414a1 1 0 0 0-.707.293l-2.234 2.234a.5.5 0 0 1-.793-.114l-2.495-4.575a.5.5 0 0 1 .095-.603l1.94-1.832C5.077 14.626 5 13.823 5 13zm1.476 6.696l.817-.817A3 3 0 0 1 9.414 18h5.172a3 3 0 0 1 2.121.879l.817.817.982-1.8-1.1-1.04a2 2 0 0 1-.593-1.82c.124-.664.187-1.345.187-2.036 0-3.87-1.995-7.3-5-8.96C8.995 5.7 7 9.13 7 13c0 .691.063 1.372.187 2.037a2 2 0 0 1-.593 1.82l-1.1 1.039.982 1.8zM12 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M250 550C250 804.4 395.1500000000001 1021.8 600 1109.1C804.85 1021.8 950 804.4 950 550C950 508.85 946.2 468.7 939 429.85L1036.0000000000002 338.25A25 25 0 0 0 1040.75 308.0999999999999L916 79.3499999999999A25 25 0 0 0 876.35 73.6499999999999L764.6500000000001 185.35A50 50 0 0 1 729.3000000000001 200H470.7A50 50 0 0 1 435.35 185.35L323.65 73.6499999999999A25 25 0 0 0 284 79.3499999999999L159.25 308.0999999999999A25 25 0 0 0 164 338.25L261 429.85C253.85 468.7 250 508.85 250 550zM323.8 215.2000000000001L364.6500000000001 256.0500000000001A150 150 0 0 0 470.7 300H729.3A150 150 0 0 0 835.3499999999999 256.05L876.1999999999998 215.1999999999999L925.2999999999998 305.2L870.2999999999997 357.2A100 100 0 0 0 840.6499999999997 448.2C846.8499999999997 481.3999999999999 849.9999999999998 515.4499999999999 849.9999999999998 549.9999999999999C849.9999999999998 743.4999999999999 750.2499999999998 914.9999999999998 599.9999999999998 998C449.75 915 350 743.5 350 550C350 515.4499999999999 353.15 481.4 359.35 448.1500000000001A100 100 0 0 0 329.7 357.1500000000001L274.7 305.2L323.8 215.1999999999999zM600 550A100 100 0 1 0 600 750A100 100 0 0 0 600 550z","horizAdvX":"1200"},"rotate-lock-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.811 5.741L17 12h3a8 8 0 1 0-2.46 5.772l.998 1.795A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 5a3 3 0 0 1 3 3v1h1v5H8v-5h1v-1a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-.993.883L11 10v1h2v-1a1 1 0 0 0-.883-.993L12 9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.45 312.9500000000001L850 600H1000A400 400 0 1 1 877 311.4000000000001L926.9 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 850A150 150 0 0 0 750 700V650H800V400H400V650H450V700A150 150 0 0 0 600 850zM600 750A50 50 0 0 1 550.35 705.85L550 700V650H650V700A50 50 0 0 1 605.85 749.6500000000001L600 750z","horizAdvX":"1200"},"rotate-lock-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.811 5.741L17 12h3a8 8 0 1 0-2.46 5.772l.998 1.795A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2zm0 5a3 3 0 0 1 3 3v1h1v5H8v-5h1v-1a3 3 0 0 1 3-3zm2 6h-4v1h4v-1zm-2-4a1 1 0 0 0-.993.883L11 10v1h2v-1a1 1 0 0 0-.883-.993L12 9z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600C1100 493.2 1066.5 394.2000000000001 1009.45 312.9500000000001L850 600H1000A400 400 0 1 1 877 311.4000000000001L926.9 221.65A498.05 498.05 0 0 0 600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100zM600 850A150 150 0 0 0 750 700V650H800V400H400V650H450V700A150 150 0 0 0 600 850zM700 550H500V500H700V550zM600 750A50 50 0 0 1 550.35 705.85L550 700V650H650V700A50 50 0 0 1 605.85 749.6500000000001L600 750z","horizAdvX":"1200"},"rounded-corner":{"path":["M0 0H24V24H0z","M21 19v2h-2v-2h2zm-4 0v2h-2v-2h2zm-4 0v2h-2v-2h2zm-4 0v2H7v-2h2zm-4 0v2H3v-2h2zm16-4v2h-2v-2h2zM5 15v2H3v-2h2zm0-4v2H3v-2h2zm11-8c2.687 0 4.882 2.124 4.995 4.783L21 8v5h-2V8c0-1.591-1.255-2.903-2.824-2.995L16 5h-5V3h5zM5 7v2H3V7h2zm0-4v2H3V3h2zm4 0v2H7V3h2z"],"unicode":"","glyph":"M1050 250V150H950V250H1050zM850 250V150H750V250H850zM650 250V150H550V250H650zM450 250V150H350V250H450zM250 250V150H150V250H250zM1050 450V350H950V450H1050zM250 450V350H150V450H250zM250 650V550H150V650H250zM800 1050C934.35 1050 1044.1 943.8 1049.75 810.8499999999999L1050 800V550H950V800C950 879.55 887.25 945.15 808.8000000000001 949.75L800 950H550V1050H800zM250 850V750H150V850H250zM250 1050V950H150V1050H250zM450 1050V950H350V1050H450z","horizAdvX":"1200"},"route-fill":{"path":["M0 0h24v24H0z","M4 15V8.5a4.5 4.5 0 0 1 9 0v7a2.5 2.5 0 1 0 5 0V8.83a3.001 3.001 0 1 1 2 0v6.67a4.5 4.5 0 1 1-9 0v-7a2.5 2.5 0 0 0-5 0V15h3l-4 5-4-5h3z"],"unicode":"","glyph":"M200 450V775A225 225 0 0 0 650 775V425A125 125 0 1 1 900 425V758.5A150.04999999999998 150.04999999999998 0 1 0 1000 758.5V425A225 225 0 1 0 550 425V775A125 125 0 0 1 300 775V450H450L250 200L50 450H200z","horizAdvX":"1200"},"route-line":{"path":["M0 0h24v24H0z","M4 15V8.5a4.5 4.5 0 0 1 9 0v7a2.5 2.5 0 1 0 5 0V8.83a3.001 3.001 0 1 1 2 0v6.67a4.5 4.5 0 1 1-9 0v-7a2.5 2.5 0 0 0-5 0V15h3l-4 5-4-5h3zm15-8a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M200 450V775A225 225 0 0 0 650 775V425A125 125 0 1 1 900 425V758.5A150.04999999999998 150.04999999999998 0 1 0 1000 758.5V425A225 225 0 1 0 550 425V775A125 125 0 0 1 300 775V450H450L250 200L50 450H200zM950 850A50 50 0 1 1 950 950A50 50 0 0 1 950 850z","horizAdvX":"1200"},"router-fill":{"path":["M0 0h24v24H0z","M11 14v-3h2v3h5a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h5zM2.51 8.837C3.835 4.864 7.584 2 12 2s8.166 2.864 9.49 6.837l-1.898.632a8.003 8.003 0 0 0-15.184 0l-1.897-.632zm3.796 1.265a6.003 6.003 0 0 1 11.388 0l-1.898.633a4.002 4.002 0 0 0-7.592 0l-1.898-.633z"],"unicode":"","glyph":"M550 500V650H650V500H900A50 50 0 0 0 950 450V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V450A50 50 0 0 0 300 500H550zM125.5 758.1500000000001C191.75 956.8 379.2 1100 600 1100S1008.3 956.8 1074.5 758.1500000000001L979.6000000000003 726.55A400.15000000000003 400.15000000000003 0 0 1 220.4000000000002 726.55L125.5500000000002 758.1500000000001zM315.3 694.9A300.15000000000003 300.15000000000003 0 0 0 884.6999999999999 694.9L789.8 663.25A200.10000000000002 200.10000000000002 0 0 1 410.2000000000001 663.25L315.3000000000001 694.9z","horizAdvX":"1200"},"router-line":{"path":["M0 0h24v24H0z","M11 14v-3h2v3h5a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h5zM2.51 8.837C3.835 4.864 7.584 2 12 2s8.166 2.864 9.49 6.837l-1.898.632a8.003 8.003 0 0 0-15.184 0l-1.897-.632zm3.796 1.265a6.003 6.003 0 0 1 11.388 0l-1.898.633a4.002 4.002 0 0 0-7.592 0l-1.898-.633zM7 16v4h10v-4H7z"],"unicode":"","glyph":"M550 500V650H650V500H900A50 50 0 0 0 950 450V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V450A50 50 0 0 0 300 500H550zM125.5 758.1500000000001C191.75 956.8 379.2 1100 600 1100S1008.3 956.8 1074.5 758.1500000000001L979.6000000000003 726.55A400.15000000000003 400.15000000000003 0 0 1 220.4000000000002 726.55L125.5500000000002 758.1500000000001zM315.3 694.9A300.15000000000003 300.15000000000003 0 0 0 884.6999999999999 694.9L789.8 663.25A200.10000000000002 200.10000000000002 0 0 1 410.2000000000001 663.25L315.3000000000001 694.9zM350 400V200H850V400H350z","horizAdvX":"1200"},"rss-fill":{"path":["M0 0h24v24H0z","M3 3c9.941 0 18 8.059 18 18h-3c0-8.284-6.716-15-15-15V3zm0 7c6.075 0 11 4.925 11 11h-3a8 8 0 0 0-8-8v-3zm0 7a4 4 0 0 1 4 4H3v-4z"],"unicode":"","glyph":"M150 1050C647.0500000000001 1050 1050 647.0500000000001 1050 150H900C900 564.2 564.1999999999999 900 150 900V1050zM150 700C453.7499999999999 700 700 453.75 700 150H550A400 400 0 0 1 150 550V700zM150 350A200 200 0 0 0 350 150H150V350z","horizAdvX":"1200"},"rss-line":{"path":["M0 0h24v24H0z","M3 17a4 4 0 0 1 4 4H3v-4zm0-7c6.075 0 11 4.925 11 11h-2a9 9 0 0 0-9-9v-2zm0-7c9.941 0 18 8.059 18 18h-2c0-8.837-7.163-16-16-16V3z"],"unicode":"","glyph":"M150 350A200 200 0 0 0 350 150H150V350zM150 700C453.7499999999999 700 700 453.75 700 150H600A450 450 0 0 1 150 600V700zM150 1050C647.0500000000001 1050 1050 647.0500000000001 1050 150H950C950 591.85 591.85 950 150 950V1050z","horizAdvX":"1200"},"ruler-2-fill":{"path":["M0 0h24v24H0z","M15 21h-2v-3h-2v3H9v-2H7v2H4a1 1 0 0 1-1-1v-3h2v-2H3v-2h3v-2H3V9h2V7H3V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v9h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-3v-2h-2v2z"],"unicode":"","glyph":"M750 150H650V300H550V150H450V250H350V150H200A50 50 0 0 0 150 200V350H250V450H150V550H300V650H150V750H250V850H150V1000A50 50 0 0 0 200 1050H500A50 50 0 0 0 550 1000V550H1000A50 50 0 0 0 1050 500V200A50 50 0 0 0 1000 150H850V250H750V150z","horizAdvX":"1200"},"ruler-2-line":{"path":["M0 0h24v24H0z","M17 19h2v-5h-9V5H5v2h2v2H5v2h3v2H5v2h2v2H5v2h2v-2h2v2h2v-3h2v3h2v-2h2v2zm-5-7h8a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v8z"],"unicode":"","glyph":"M850 250H950V500H500V950H250V850H350V750H250V650H400V550H250V450H350V350H250V250H350V350H450V250H550V400H650V250H750V350H850V250zM600 600H1000A50 50 0 0 0 1050 550V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H550A50 50 0 0 0 600 1000V600z","horizAdvX":"1200"},"ruler-fill":{"path":["M0 0h24v24H0z","M4.929 13.207l2.121 2.121 1.414-1.414-2.12-2.121 2.12-2.121 2.829 2.828 1.414-1.414L9.88 8.257 12 6.136l2.121 2.121 1.415-1.414-2.122-2.121 2.829-2.829a1 1 0 0 1 1.414 0l4.95 4.95a1 1 0 0 1 0 1.414l-14.85 14.85a1 1 0 0 1-1.414 0l-4.95-4.95a1 1 0 0 1 0-1.414l3.536-3.536z"],"unicode":"","glyph":"M246.45 539.65L352.5000000000001 433.5999999999999L423.2000000000001 504.3L317.2 610.3499999999999L423.2000000000001 716.4L564.6500000000001 575L635.35 645.6999999999999L494.0000000000001 787.1500000000001L600 893.2L706.0500000000001 787.1500000000001L776.8000000000001 857.85L670.7 963.9L812.1500000000001 1105.3500000000001A50 50 0 0 0 882.8500000000001 1105.3500000000001L1130.3500000000001 857.85A50 50 0 0 0 1130.3500000000001 787.1500000000001L387.8500000000002 44.6500000000001A50 50 0 0 0 317.1500000000002 44.6500000000001L69.6500000000002 292.15A50 50 0 0 0 69.6500000000002 362.85L246.4500000000002 539.6500000000001z","horizAdvX":"1200"},"ruler-line":{"path":["M0 0h24v24H0z","M6.343 14.621L3.515 17.45l3.535 3.535L20.485 7.55 16.95 4.015l-2.122 2.121 1.415 1.414-1.415 1.414-1.414-1.414-2.121 2.122 2.121 2.12L12 13.208l-2.121-2.121-2.122 2.121 1.415 1.414-1.415 1.415-1.414-1.415zM17.657 1.893l4.95 4.95a1 1 0 0 1 0 1.414l-14.85 14.85a1 1 0 0 1-1.414 0l-4.95-4.95a1 1 0 0 1 0-1.414l14.85-14.85a1 1 0 0 1 1.414 0z"],"unicode":"","glyph":"M317.15 468.9499999999999L175.75 327.5L352.5000000000001 150.75L1024.25 822.5L847.5 999.25L741.4 893.2L812.15 822.5L741.4 751.8000000000001L670.6999999999999 822.5L564.65 716.4000000000001L670.6999999999999 610.4000000000001L600 539.6L493.95 645.65L387.85 539.6L458.6 468.9L387.85 398.1500000000001L317.1500000000001 468.9zM882.85 1105.35L1130.35 857.85A50 50 0 0 0 1130.35 787.1500000000001L387.85 44.6500000000001A50 50 0 0 0 317.15 44.6500000000001L69.65 292.15A50 50 0 0 0 69.65 362.85L812.15 1105.3500000000001A50 50 0 0 0 882.85 1105.3500000000001z","horizAdvX":"1200"},"run-fill":{"path":["M0 0h24v24H0z","M9.83 8.79L8 9.456V13H6V8.05h.015l5.268-1.918c.244-.093.51-.14.782-.131a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.581 3.297L15 15.67V23h-2v-5.986l-2.05-1.987-.947 4.298-6.894-1.215.348-1.97 4.924.868L9.83 8.79zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M491.5 760.5L400 727.2V550H300V797.5H300.75L564.15 893.4C576.3499999999999 898.05 589.65 900.4 603.25 899.95A130.8 130.8 0 0 0 724.5999999999999 808.95C733.9 779.8 742.4 760.1 750.0999999999999 749.85A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L650.85 512.5L750 416.5V50H650V349.3000000000001L547.5 448.6500000000001L500.15 233.75L155.45 294.5L172.85 393L419.05 349.6L491.5 760.5zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925z","horizAdvX":"1200"},"run-line":{"path":["M0 0h24v24H0z","M9.83 8.79L8 9.456V13H6V8.05h.015l5.268-1.918c.244-.093.51-.14.782-.131a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.697 3.956L15 16.17V23h-2v-5.898l-2.27-1.904-.727 4.127-6.894-1.215.348-1.97 4.924.868L9.83 8.79zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M491.5 760.5L400 727.2V550H300V797.5H300.75L564.15 893.4C576.3499999999999 898.05 589.65 900.4 603.25 899.95A130.8 130.8 0 0 0 724.5999999999999 808.95C733.9 779.8 742.4 760.1 750.0999999999999 749.85A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L645.05 479.5500000000001L750 391.4999999999999V50H650V344.9L536.5 440.1L500.15 233.75L155.45 294.5L172.85 393L419.05 349.6L491.5 760.5zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925z","horizAdvX":"1200"},"safari-fill":{"path":["M0 0h24v24H0z","M16.7 6.8l-6.114 3.786L6.8 16.7l-.104-.104-1.415 1.414.708.708 1.414-1.415L7.3 17.2l6.114-3.785L17.2 7.3l.104.104 1.415-1.414-.708-.708-1.414 1.415.104.104zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-.5-19v2h1V3h-1zm0 16v2h1v-2h-1zM8.094 3.876l.765 1.848.924-.382-.765-1.848-.924.382zm6.123 14.782l.765 1.848.924-.382-.765-1.848-.924.382zm.765-15.164l-.765 1.848.924.382.765-1.848-.924-.382zM8.86 18.276l-.765 1.848.924.382.765-1.848-.924-.382zM21 11.5h-2v1h2v-1zm-16 0H3v1h2v-1zm15.458 3.615l-1.835-.794-.397.918 1.835.794.397-.918zM5.774 8.761L3.94 7.967l-.397.918 1.835.794.397-.918zm14.35-.667l-1.848.765.382.924 1.848-.765-.382-.924zM5.342 14.217l-1.848.765.382.924 1.848-.765-.382-.924zm13.376 3.793l-1.415-1.414-.707.707 1.414 1.415.708-.708zM7.404 6.697L5.99 5.282l-.708.708 1.415 1.414.707-.707zm3.908 4.615l3.611-2.235-2.235 3.61-1.376-1.375z"],"unicode":"","glyph":"M835 860L529.3 670.6999999999999L340 365L334.8 370.2000000000001L264.05 299.4999999999999L299.45 264.1L370.15 334.8499999999999L365 340L670.6999999999999 529.25L860 835L865.1999999999999 829.8L935.95 900.5L900.55 935.9L829.8499999999999 865.15L835.0499999999998 859.95zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM575 1050V950H625V1050H575zM575 250V150H625V250H575zM404.7 1006.2L442.95 913.8L489.15 932.9L450.8999999999999 1025.3L404.7 1006.2zM710.8499999999999 267.0999999999999L749.0999999999999 174.7000000000001L795.3 193.8000000000001L757.05 286.2000000000001L710.8499999999999 267.0999999999999zM749.0999999999999 1025.3L710.8499999999999 932.8999999999997L757.05 913.8L795.3 1006.2L749.0999999999999 1025.3zM443 286.2000000000001L404.75 193.8000000000001L450.9499999999999 174.7000000000001L489.1999999999999 267.0999999999999L443 286.2000000000001zM1050 625H950V575H1050V625zM250 625H150V575H250V625zM1022.8999999999997 444.25L931.1499999999997 483.95L911.3 438.0500000000001L1003.05 398.3500000000002L1022.8999999999997 444.2500000000001zM288.7 761.95L197 801.6500000000001L177.15 755.75L268.9 716.05L288.75 761.9499999999999zM1006.2 795.3L913.8 757.05L932.9 710.85L1025.3 749.1000000000001L1006.2 795.3zM267.1 489.15L174.7 450.9L193.8 404.7L286.2 442.9500000000001L267.1 489.15zM935.9 299.4999999999999L865.1500000000001 370.2000000000001L829.8 334.8499999999999L900.5000000000001 264.1L935.9 299.4999999999999zM370.2 865.15L299.5 935.9L264.1 900.5L334.85 829.8L370.2 865.15zM565.6 634.4L746.15 746.1499999999999L634.4 565.65L565.6 634.4z","horizAdvX":"1200"},"safari-line":{"path":["M0 0h24v24H0z","M17.812 6.503l-4.398 6.911-6.911 4.398A7.973 7.973 0 0 0 11 19.938V18h2v1.938a7.96 7.96 0 0 0 3.906-1.618l-1.37-1.37 1.414-1.414 1.37 1.37A7.96 7.96 0 0 0 19.938 13H18v-2h1.938a7.973 7.973 0 0 0-2.126-4.497zm-.315-.315A7.973 7.973 0 0 0 13 4.062V6h-2V4.062A7.96 7.96 0 0 0 7.094 5.68l1.37 1.37L7.05 8.464l-1.37-1.37A7.96 7.96 0 0 0 4.062 11H6v2H4.062a7.973 7.973 0 0 0 2.126 4.497l4.398-6.911 6.911-4.398zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M890.6 874.85L670.7 529.3000000000001L325.1500000000001 309.4000000000001A398.65 398.65 0 0 1 550 203.1V300H650V203.1A398.00000000000006 398.00000000000006 0 0 1 845.3 284L776.7999999999998 352.5L847.5 423.2000000000001L916 354.7000000000001A398.00000000000006 398.00000000000006 0 0 1 996.9 550H900V650H996.9A398.65 398.65 0 0 1 890.5999999999999 874.85zM874.85 890.6A398.65 398.65 0 0 1 650 996.9V900H550V996.9A398.00000000000006 398.00000000000006 0 0 1 354.7 916L423.2000000000001 847.5L352.5 776.8L284 845.3A398.00000000000006 398.00000000000006 0 0 1 203.1 650H300V550H203.1A398.65 398.65 0 0 1 309.4000000000001 325.15L529.3000000000001 670.6999999999999L874.85 890.5999999999999zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"safe-2-fill":{"path":["M0 0h24v24H0z","M10 20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7V1.59a.5.5 0 0 1 .582-.493l10.582 1.764a1 1 0 0 1 .836.986V6h1v2h-1v7h1v2h-1v2.153a1 1 0 0 1-.836.986L20 20.333V22h-2v-1.333l-7.418 1.236A.5.5 0 0 1 10 21.41V20zm2-.36l8-1.334V4.694l-8-1.333v16.278zM16.5 14c-.828 0-1.5-1.12-1.5-2.5S15.672 9 16.5 9s1.5 1.12 1.5 2.5-.672 2.5-1.5 2.5z"],"unicode":"","glyph":"M500 200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H500V1120.5A25 25 0 0 0 529.1 1145.15L1058.2 1056.95A50 50 0 0 0 1100 1007.65V900H1150V800H1100V450H1150V350H1100V242.35A50 50 0 0 0 1058.2 193.0500000000001L1000 183.3500000000001V100H900V166.6499999999999L529.1 104.8499999999999A25 25 0 0 0 500 129.5V200zM600 218L1000 284.7V965.3L600 1031.95V218.0500000000001zM825 500C783.6 500 750 556 750 625S783.6 750 825 750S900 694 900 625S866.4 500 825 500z","horizAdvX":"1200"},"safe-2-line":{"path":["M0 0h24v24H0z","M20 20.333V22h-2v-1.333l-7.418 1.236A.5.5 0 0 1 10 21.41V20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7V1.59a.5.5 0 0 1 .582-.493l10.582 1.764a1 1 0 0 1 .836.986V6h1v2h-1v7h1v2h-1v2.153a1 1 0 0 1-.836.986L20 20.333zM4 5v13h6V5H4zm8 14.64l8-1.334V4.694l-8-1.333v16.278zM16.5 14c-.828 0-1.5-1.12-1.5-2.5S15.672 9 16.5 9s1.5 1.12 1.5 2.5-.672 2.5-1.5 2.5z"],"unicode":"","glyph":"M1000 183.3500000000001V100H900V166.6499999999999L529.1 104.8499999999999A25 25 0 0 0 500 129.5V200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H500V1120.5A25 25 0 0 0 529.1 1145.15L1058.2 1056.95A50 50 0 0 0 1100 1007.65V900H1150V800H1100V450H1150V350H1100V242.35A50 50 0 0 0 1058.2 193.0500000000001L1000 183.3500000000001zM200 950V300H500V950H200zM600 218L1000 284.7V965.3L600 1031.95V218.0500000000001zM825 500C783.6 500 750 556 750 625S783.6 750 825 750S900 694 900 625S866.4 500 825 500z","horizAdvX":"1200"},"safe-fill":{"path":["M0 0h24v24H0z","M18 20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1h-1v2h-2v-2zm-7-6.126V17h2v-3.126A4.002 4.002 0 0 0 12 6a4 4 0 0 0-1 7.874zM12 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M900 200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V250A50 50 0 0 0 1050 200H1000V100H900V200zM550 506.3000000000001V350H650V506.3A200.10000000000002 200.10000000000002 0 0 1 600 900A200 200 0 0 1 550 506.3000000000001zM600 600A100 100 0 1 0 600 800A100 100 0 0 0 600 600z","horizAdvX":"1200"},"safe-line":{"path":["M0 0h24v24H0z","M18 20H6v2H4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1h-1v2h-2v-2zM4 18h16V5H4v13zm9-4.126V17h-2v-3.126A4.002 4.002 0 0 1 12 6a4 4 0 0 1 1 7.874zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M900 200H300V100H200V200H150A50 50 0 0 0 100 250V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V250A50 50 0 0 0 1050 200H1000V100H900V200zM200 300H1000V950H200V300zM650 506.3000000000001V350H550V506.3A200.10000000000002 200.10000000000002 0 0 0 600 900A200 200 0 0 0 650 506.3000000000001zM600 600A100 100 0 1 1 600 800A100 100 0 0 1 600 600z","horizAdvX":"1200"},"sailboat-fill":{"path":["M0 0h24v24H0z","M3 18h18a.5.5 0 0 1 .4.8l-2.1 2.8a1 1 0 0 1-.8.4h-13a1 1 0 0 1-.8-.4l-2.1-2.8A.5.5 0 0 1 3 18zM15 2.425V15a1 1 0 0 1-1 1H4.04a.5.5 0 0 1-.39-.812L14.11 2.113a.5.5 0 0 1 .89.312z"],"unicode":"","glyph":"M150 300H1050A25 25 0 0 0 1070 260L964.9999999999998 120A50 50 0 0 0 924.9999999999998 100H274.9999999999999A50 50 0 0 0 234.9999999999999 120L129.9999999999998 260A25 25 0 0 0 150 300zM750 1078.75V450A50 50 0 0 0 700 400H202A25 25 0 0 0 182.5 440.6L705.5 1094.35A25 25 0 0 0 750 1078.75z","horizAdvX":"1200"},"sailboat-line":{"path":["M0 0h24v24H0z","M3 18h18a.5.5 0 0 1 .4.8l-2.1 2.8a1 1 0 0 1-.8.4h-13a1 1 0 0 1-.8-.4l-2.1-2.8A.5.5 0 0 1 3 18zm4.161-4H13V6.702L7.161 14zM15 2.425V15a1 1 0 0 1-1 1H4.04a.5.5 0 0 1-.39-.812L14.11 2.113a.5.5 0 0 1 .89.312z"],"unicode":"","glyph":"M150 300H1050A25 25 0 0 0 1070 260L964.9999999999998 120A50 50 0 0 0 924.9999999999998 100H274.9999999999999A50 50 0 0 0 234.9999999999999 120L129.9999999999998 260A25 25 0 0 0 150 300zM358.05 500H650V864.9L358.05 500zM750 1078.75V450A50 50 0 0 0 700 400H202A25 25 0 0 0 182.5 440.6L705.5 1094.35A25 25 0 0 0 750 1078.75z","horizAdvX":"1200"},"save-2-fill":{"path":["M0 0h24v24H0z","M4 3h13l3.707 3.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM5 5v4h10V5H5z"],"unicode":"","glyph":"M200 1050H850L1035.3500000000001 864.6500000000001A50 50 0 0 0 1050 829.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 300A150 150 0 1 1 600 600A150 150 0 0 1 600 300zM250 950V750H750V950H250z","horizAdvX":"1200"},"save-2-line":{"path":["M0 0h24v24H0z","M5 5v14h14V7.828L16.172 5H5zM4 3h13l3.707 3.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM6 6h9v4H6V6z"],"unicode":"","glyph":"M250 950V250H950V808.5999999999999L808.6 950H250zM200 1050H850L1035.3500000000001 864.6500000000001A50 50 0 0 0 1050 829.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 300A150 150 0 1 0 600 600A150 150 0 0 0 600 300zM300 900H750V700H300V900z","horizAdvX":"1200"},"save-3-fill":{"path":["M0 0h24v24H0z","M4 3h14l2.707 2.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 1v5h9V4H7zm-1 8v7h12v-7H6zm7-7h2v3h-2V5z"],"unicode":"","glyph":"M200 1050H900L1035.3500000000001 914.65A50 50 0 0 0 1050 879.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM350 1000V750H800V1000H350zM300 600V250H900V600H300zM650 950H750V800H650V950z","horizAdvX":"1200"},"save-3-line":{"path":["M0 0h24v24H0z","M18 19h1V6.828L17.172 5H16v4H7V5H5v14h1v-7h12v7zM4 3h14l2.707 2.707a1 1 0 0 1 .293.707V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4 11v5h8v-5H8z"],"unicode":"","glyph":"M900 250H950V858.5999999999999L858.6 950H800V750H350V950H250V250H300V600H900V250zM200 1050H900L1035.3500000000001 914.65A50 50 0 0 0 1050 879.3V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM400 500V250H800V500H400z","horizAdvX":"1200"},"save-fill":{"path":["M0 0h24v24H0z","M18 21v-8H6v8H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h13l4 4v13a1 1 0 0 1-1 1h-2zm-2 0H8v-6h8v6z"],"unicode":"","glyph":"M900 150V550H300V150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H850L1050 850V200A50 50 0 0 0 1000 150H900zM800 150H400V450H800V150z","horizAdvX":"1200"},"save-line":{"path":["M0 0h24v24H0z","M7 19v-6h10v6h2V7.828L16.172 5H5v14h2zM4 3h13l4 4v13a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5 12v4h6v-4H9z"],"unicode":"","glyph":"M350 250V550H850V250H950V808.5999999999999L808.6 950H250V250H350zM200 1050H850L1050 850V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM450 450V250H750V450H450z","horizAdvX":"1200"},"scales-2-fill":{"path":["M0 0H24V24H0z","M6 2c0 .513.49 1 1 1h10c.513 0 1-.49 1-1h2c0 1.657-1.343 3-3 3h-4l.001 2.062C16.947 7.555 20 10.921 20 15v6c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1v-6c0-4.08 3.054-7.446 7-7.938V5H7C5.34 5 4 3.66 4 2h2zm6 9c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.742-.202-1.436-.554-2.032l-2.739 2.74-.094.082c-.392.305-.96.278-1.32-.083-.39-.39-.39-1.024 0-1.414l2.739-2.74C13.436 11.203 12.742 11 12 11z"],"unicode":"","glyph":"M300 1100C300 1074.35 324.5 1050 350 1050H850C875.6500000000001 1050 900 1074.5 900 1100H1000C1000 1017.15 932.85 950 850 950H650L650.05 846.9000000000001C847.3499999999999 822.25 1000 653.95 1000 450V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V450C200 654 352.7 822.3 550 846.9V950H350C267 950 200 1017 200 1100H300zM600 650C489.4999999999999 650 400 560.5 400 450S489.4999999999999 250 600 250S800 339.5 800 450C800 487.1 789.9 521.8 772.3 551.6L635.35 414.6L630.6500000000001 410.5C611.0500000000001 395.2499999999999 582.6500000000001 396.5999999999999 564.6500000000001 414.65C545.15 434.15 545.15 465.85 564.6500000000001 485.3499999999999L701.6 622.3499999999999C671.8 639.85 637.1 650 600 650z","horizAdvX":"1200"},"scales-2-line":{"path":["M0 0H24V24H0z","M6 2c0 .513.49 1 1 1h10c.513 0 1-.49 1-1h2c0 1.657-1.343 3-3 3h-4l.001 2.062C16.947 7.555 20 10.921 20 15v6c0 .552-.448 1-1 1H5c-.552 0-1-.448-1-1v-6c0-4.08 3.054-7.446 7-7.938V5H7C5.34 5 4 3.66 4 2h2zm6 7c-3.238 0-6 2.76-6 6v5h12v-5c0-3.238-2.762-6-6-6zm0 2c.742 0 1.436.202 2.032.554l-2.74 2.739c-.39.39-.39 1.024 0 1.414.361.36.929.388 1.32.083l.095-.083 2.74-2.739c.351.596.553 1.29.553 2.032 0 2.21-1.79 4-4 4s-4-1.79-4-4 1.79-4 4-4z"],"unicode":"","glyph":"M300 1100C300 1074.35 324.5 1050 350 1050H850C875.6500000000001 1050 900 1074.5 900 1100H1000C1000 1017.15 932.85 950 850 950H650L650.05 846.9000000000001C847.3499999999999 822.25 1000 653.95 1000 450V150C1000 122.4000000000001 977.6 100 950 100H250C222.4 100 200 122.4000000000001 200 150V450C200 654 352.7 822.3 550 846.9V950H350C267 950 200 1017 200 1100H300zM600 750C438.1 750 300 612 300 450V200H900V450C900 611.9 761.9 750 600 750zM600 650C637.1 650 671.8 639.9 701.6 622.3L564.6 485.35C545.0999999999999 465.85 545.0999999999999 434.15 564.6 414.6500000000001C582.65 396.65 611.05 395.25 630.6 410.5L635.35 414.6500000000001L772.35 551.6C789.9000000000001 521.8 800 487.1 800 450C800 339.5 710.5 250 600 250S400 339.5 400 450S489.4999999999999 650 600 650z","horizAdvX":"1200"},"scales-3-fill":{"path":["M0 0H24V24H0z","M13 2v1.278l5 1.668 3.632-1.21.633 1.896-3.032 1.011 3.096 8.512C21.237 16.292 19.7 17 18 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512L13 5.387V19H17v2H7v-2h4V5.387L7.232 6.643l3.096 8.512C9.237 16.292 7.7 17 6 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512-3.03-1.01.633-1.898L6 4.945l5-1.667V2h2zm5 7.103L16.582 13h2.835L18 9.103zm-12 0L4.582 13h2.835L6 9.103z"],"unicode":"","glyph":"M650 1100V1036.1L900 952.7L1081.6000000000001 1013.2L1113.25 918.4L961.65 867.85L1116.45 442.25C1061.85 385.3999999999999 985 350 900 350C814.9499999999999 350 738.15 385.3999999999999 683.55 442.25L838.25 867.8500000000001L650 930.65V250H850V150H350V250H550V930.65L361.6 867.85L516.4 442.25C461.85 385.3999999999999 385 350 300 350C214.95 350 138.15 385.3999999999999 83.55 442.25L238.2500000000001 867.8500000000001L86.75 918.35L118.4 1013.25L300 952.75L550 1036.1V1100H650zM900 744.85L829.1 550H970.8500000000003L900 744.85zM300 744.85L229.1 550H370.85L300 744.85z","horizAdvX":"1200"},"scales-3-line":{"path":["M0 0H24V24H0z","M13 2v1.278l5 1.668 3.632-1.21.633 1.896-3.032 1.011 3.096 8.512C21.237 16.292 19.7 17 18 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512L13 5.387V19H17v2H7v-2h4V5.387L7.232 6.643l3.096 8.512C9.237 16.292 7.7 17 6 17c-1.701 0-3.237-.708-4.329-1.845l3.094-8.512-3.03-1.01.633-1.898L6 4.945l5-1.667V2h2zm5 7.103l-1.958 5.386c.587.331 1.257.511 1.958.511.7 0 1.37-.18 1.958-.51L18 9.102zm-12 0l-1.958 5.386C4.629 14.82 5.299 15 6 15c.7 0 1.37-.18 1.958-.51L6 9.102z"],"unicode":"","glyph":"M650 1100V1036.1L900 952.7L1081.6000000000001 1013.2L1113.25 918.4L961.65 867.85L1116.45 442.25C1061.85 385.3999999999999 985 350 900 350C814.9499999999999 350 738.15 385.3999999999999 683.55 442.25L838.25 867.8500000000001L650 930.65V250H850V150H350V250H550V930.65L361.6 867.85L516.4 442.25C461.85 385.3999999999999 385 350 300 350C214.95 350 138.15 385.3999999999999 83.55 442.25L238.2500000000001 867.8500000000001L86.75 918.35L118.4 1013.25L300 952.75L550 1036.1V1100H650zM900 744.85L802.1000000000001 475.55C831.45 459 864.9500000000002 450 900 450C935 450 968.5 459 997.8999999999997 475.5L900 744.9zM300 744.85L202.1 475.55C231.45 459 264.9500000000001 450 300 450C335 450 368.5 459 397.9000000000001 475.5L300 744.9z","horizAdvX":"1200"},"scales-fill":{"path":["M0 0H24V24H0z","M13 2v1h7v2h-7v14h4v2H7v-2h4V5H4V3h7V2h2zM5 6.343l2.828 2.829C8.552 9.895 9 10.895 9 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L5 6.343zm14 0l2.828 2.829C22.552 9.895 23 10.895 23 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L19 6.343zm0 2.829l-1.414 1.414C17.212 10.96 17 11.46 17 12l4 .001c0-.54-.212-1.041-.586-1.415L19 9.172zm-14 0l-1.414 1.414C3.212 10.96 3 11.46 3 12l4 .001c0-.54-.212-1.041-.586-1.415L5 9.172z"],"unicode":"","glyph":"M650 1100V1050H1000V950H650V250H850V150H350V250H550V950H200V1050H550V1100H650zM250 882.85L391.4 741.4C427.6 705.25 450 655.25 450 600C450 489.5 360.5 400 250 400S50 489.5 50 600C50 655.25 72.4 705.25 108.6 741.4L250 882.85zM950 882.85L1091.3999999999999 741.4C1127.6 705.25 1150 655.25 1150 600C1150 489.5 1060.5 400 950 400S750 489.5 750 600C750 655.25 772.4 705.25 808.6 741.4L950 882.85zM950 741.4L879.3 670.6999999999999C860.6 652 850 627 850 600L1050 599.95C1050 626.95 1039.4 652 1020.7 670.7L950 741.4zM250 741.4L179.3 670.6999999999999C160.6 652 150 627 150 600L350 599.95C350 626.95 339.4000000000001 652 320.7 670.7L250 741.4z","horizAdvX":"1200"},"scales-line":{"path":["M0 0H24V24H0z","M13 2v1h7v2h-7v14h4v2H7v-2h4V5H4V3h7V2h2zM5 6.343l2.828 2.829C8.552 9.895 9 10.895 9 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L5 6.343zm14 0l2.828 2.829C22.552 9.895 23 10.895 23 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.105.448-2.105 1.172-2.828L19 6.343zM5 9.172l-1.414 1.414C3.212 10.96 3 11.46 3 12c0 1.105.895 2 2 2s2-.895 2-2c0-.54-.212-1.04-.586-1.414L5 9.172zm14 0l-1.414 1.414C17.212 10.96 17 11.46 17 12c0 1.105.895 2 2 2s2-.895 2-2c0-.54-.212-1.04-.586-1.414L19 9.172z"],"unicode":"","glyph":"M650 1100V1050H1000V950H650V250H850V150H350V250H550V950H200V1050H550V1100H650zM250 882.85L391.4 741.4C427.6 705.25 450 655.25 450 600C450 489.5 360.5 400 250 400S50 489.5 50 600C50 655.25 72.4 705.25 108.6 741.4L250 882.85zM950 882.85L1091.3999999999999 741.4C1127.6 705.25 1150 655.25 1150 600C1150 489.5 1060.5 400 950 400S750 489.5 750 600C750 655.25 772.4 705.25 808.6 741.4L950 882.85zM250 741.4L179.3 670.6999999999999C160.6 652 150 627 150 600C150 544.75 194.75 500 250 500S350 544.75 350 600C350 627 339.4000000000001 652 320.7 670.6999999999999L250 741.4zM950 741.4L879.3 670.6999999999999C860.6 652 850 627 850 600C850 544.75 894.75 500 950 500S1050 544.75 1050 600C1050 627 1039.4 652 1020.7 670.6999999999999L950 741.4z","horizAdvX":"1200"},"scan-2-fill":{"path":["M0 0h24v24H0z","M4.257 5.671l2.137 2.137a7 7 0 1 0 1.414-1.414L5.67 4.257A9.959 9.959 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-2.401.846-4.605 2.257-6.329zm3.571 3.572L12 13.414 13.414 12 9.243 7.828a5 5 0 1 1-1.414 1.414z"],"unicode":"","glyph":"M212.85 916.45L319.7 809.6A350 350 0 1 1 390.4 880.3L283.5 987.15A497.95000000000005 497.95000000000005 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 720.05 142.3 830.25 212.85 916.45zM391.4 737.8499999999999L600 529.3000000000001L670.6999999999999 600L462.15 808.5999999999999A250 250 0 1 0 391.4500000000001 737.9z","horizAdvX":"1200"},"scan-2-line":{"path":["M0 0h24v24H0z","M5.671 4.257L13.414 12 12 13.414 8.554 9.968a4 4 0 1 0 3.697-1.96l-1.805-1.805a6 6 0 1 1-3.337 2.32L5.68 7.094a8 8 0 1 0 3.196-2.461L7.374 3.132A9.957 9.957 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12a9.98 9.98 0 0 1 3.671-7.743z"],"unicode":"","glyph":"M283.55 987.15L670.6999999999999 600L600 529.3000000000001L427.7 701.6A200 200 0 1 1 612.5500000000001 799.6L522.3000000000001 889.85A300 300 0 1 0 355.4500000000001 773.85L284 845.3A400 400 0 1 1 443.8 968.35L368.7 1043.4A497.8500000000001 497.8500000000001 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600A499 499 0 0 0 283.55 987.15z","horizAdvX":"1200"},"scan-fill":{"path":["M0 0h24v24H0z","M4.257 5.671L12 13.414 13.414 12 5.671 4.257A9.959 9.959 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12c0-2.401.846-4.605 2.257-6.329z"],"unicode":"","glyph":"M212.85 916.45L600 529.3000000000001L670.6999999999999 600L283.55 987.15A497.95000000000005 497.95000000000005 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600C100 720.05 142.3 830.25 212.85 916.45z","horizAdvX":"1200"},"scan-line":{"path":["M0 0h24v24H0z","M5.671 4.257L13.414 12 12 13.414l-6.32-6.32a8 8 0 1 0 3.706-2.658L7.85 2.9A9.963 9.963 0 0 1 12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12a9.98 9.98 0 0 1 3.671-7.743z"],"unicode":"","glyph":"M283.55 987.15L670.6999999999999 600L600 529.3000000000001L284 845.3A400 400 0 1 1 469.3 978.2L392.5 1055A498.15 498.15 0 0 0 600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600A499 499 0 0 0 283.55 987.15z","horizAdvX":"1200"},"scissors-2-fill":{"path":["M0 0h24v24H0z","M12 14.121l-2.317 2.317a4 4 0 1 1-2.121-2.121L9.88 12 4.21 6.333a2 2 0 0 1 0-2.829l.708-.707L12 9.88l7.081-7.082.708.707a2 2 0 0 1 0 2.829L14.12 12l2.317 2.317a4 4 0 1 1-2.121 2.121L12 14.12zM6 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm12 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 493.9499999999999L484.15 378.0999999999999A200 200 0 1 0 378.1 484.1499999999999L494.0000000000001 600L210.5 883.3499999999999A100 100 0 0 0 210.5 1024.8L245.9 1060.15L600 706L954.05 1060.1L989.45 1024.75A100 100 0 0 0 989.45 883.3L706 600L821.8499999999999 484.15A200 200 0 1 0 715.7999999999998 378.1L600 494zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"scissors-2-line":{"path":["M0 0h24v24H0z","M12 13.414l-2.554 2.554a4 4 0 1 1-1.414-1.414L10.586 12 4.565 5.98a2 2 0 0 1 0-2.83L12 10.587l7.435-7.435a2 2 0 0 1 0 2.828L13.415 12l2.553 2.554a4 4 0 1 1-1.414 1.414L12 13.414zM6 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm12 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 529.3000000000001L472.3 401.6A200 200 0 1 0 401.6 472.3L529.3000000000001 600L228.2500000000001 901A100 100 0 0 0 228.2500000000001 1042.5L600 670.65L971.7499999999998 1042.4A100 100 0 0 0 971.7499999999998 901L670.75 600L798.4 472.3A200 200 0 1 0 727.7 401.6L600 529.3000000000001zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"scissors-cut-fill":{"path":["M0 0h24v24H0z","M9.879 12L7.562 9.683a4 4 0 1 1 2.121-2.121L12 9.88l6.374-6.375a2 2 0 0 1 2.829 0l.707.707L9.683 16.438a4 4 0 1 1-2.121-2.121L9.88 12zM6 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm9.535-6.587l6.375 6.376-.707.707a2 2 0 0 1-2.829 0l-4.96-4.961 2.12-2.122zM16 11h2v2h-2v-2zm4 0h2v2h-2v-2zM6 11h2v2H6v-2zm-4 0h2v2H2v-2z"],"unicode":"","glyph":"M493.95 600L378.1 715.85A200 200 0 1 0 484.15 821.9000000000001L600 706L918.7 1024.75A100 100 0 0 0 1060.1499999999999 1024.75L1095.5 989.4L484.15 378.1A200 200 0 1 0 378.1 484.1500000000001L494.0000000000001 600zM300 800A100 100 0 1 1 300 1000A100 100 0 0 1 300 800zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM776.75 529.35L1095.5 210.55L1060.1499999999999 175.1999999999998A100 100 0 0 0 918.7 175.1999999999998L670.6999999999999 423.2499999999999L776.6999999999999 529.3499999999999zM800 650H900V550H800V650zM1000 650H1100V550H1000V650zM300 650H400V550H300V650zM100 650H200V550H100V650z","horizAdvX":"1200"},"scissors-cut-line":{"path":["M0 0h24v24H0z","M10 6c0 .732-.197 1.419-.54 2.01L12 10.585l6.728-6.728a2 2 0 0 1 2.828 0l-12.11 12.11a4 4 0 1 1-1.414-1.414L10.586 12 8.032 9.446A4 4 0 1 1 10 6zM8 6a2 2 0 1 0-4 0 2 2 0 0 0 4 0zm13.556 14.142a2 2 0 0 1-2.828 0l-5.317-5.316 1.415-1.415 6.73 6.731zM16 11h2v2h-2v-2zm4 0h2v2h-2v-2zM6 11h2v2H6v-2zm-4 0h2v2H2v-2zm4 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M500 900C500 863.4 490.15 829.05 473.0000000000001 799.5L600 670.75L936.4 1007.15A100 100 0 0 0 1077.8 1007.15L472.3000000000001 401.65A200 200 0 1 0 401.6000000000001 472.3499999999999L529.3000000000001 600L401.6 727.7A200 200 0 1 0 500 900zM400 900A100 100 0 1 1 200 900A100 100 0 0 1 400 900zM1077.8 192.9A100 100 0 0 0 936.3999999999997 192.9L670.5499999999998 458.6999999999999L741.2999999999998 529.4499999999999L1077.8 192.8999999999999zM800 650H900V550H800V650zM1000 650H1100V550H1000V650zM300 650H400V550H300V650zM100 650H200V550H100V650zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200z","horizAdvX":"1200"},"scissors-fill":{"path":["M0 0h24v24H0z","M9.683 7.562L12 9.88l6.374-6.375a2 2 0 0 1 2.829 0l.707.707L9.683 16.438a4 4 0 1 1-2.121-2.121L9.88 12 7.562 9.683a4 4 0 1 1 2.121-2.121zM6 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm9.535-6.587l6.375 6.376-.707.707a2 2 0 0 1-2.829 0l-4.96-4.961 2.12-2.122z"],"unicode":"","glyph":"M484.15 821.9L600 706L918.7 1024.75A100 100 0 0 0 1060.1499999999999 1024.75L1095.5 989.4L484.15 378.1A200 200 0 1 0 378.1 484.1500000000001L494.0000000000001 600L378.1 715.85A200 200 0 1 0 484.15 821.9000000000001zM300 800A100 100 0 1 1 300 1000A100 100 0 0 1 300 800zM300 200A100 100 0 1 1 300 400A100 100 0 0 1 300 200zM776.75 529.35L1095.5 210.55L1060.1499999999999 175.1999999999998A100 100 0 0 0 918.7 175.1999999999998L670.6999999999999 423.2499999999999L776.6999999999999 529.3499999999999z","horizAdvX":"1200"},"scissors-line":{"path":["M0 0h24v24H0z","M9.446 8.032L12 10.586l6.728-6.728a2 2 0 0 1 2.828 0l-12.11 12.11a4 4 0 1 1-1.414-1.414L10.586 12 8.032 9.446a4 4 0 1 1 1.414-1.414zm5.38 5.38l6.73 6.73a2 2 0 0 1-2.828 0l-5.317-5.316 1.415-1.415zm-7.412 3.174a2 2 0 1 0-2.828 2.828 2 2 0 0 0 2.828-2.828zm0-9.172a2 2 0 1 0-2.828-2.828 2 2 0 0 0 2.828 2.828z"],"unicode":"","glyph":"M472.3 798.4L600 670.6999999999999L936.4 1007.1A100 100 0 0 0 1077.8 1007.1L472.3000000000001 401.6A200 200 0 1 0 401.6000000000001 472.3L529.3000000000001 600L401.6 727.7A200 200 0 1 0 472.3 798.4zM741.3000000000001 529.4000000000001L1077.8 192.9A100 100 0 0 0 936.4 192.9L670.5500000000001 458.6999999999999L741.3000000000001 529.4499999999999zM370.7000000000001 370.7000000000001A100 100 0 1 1 229.3 229.3000000000001A100 100 0 0 1 370.7 370.7000000000001zM370.7000000000001 829.3000000000002A100 100 0 1 1 229.3 970.7A100 100 0 0 1 370.7 829.3000000000002z","horizAdvX":"1200"},"screenshot-2-fill":{"path":["M0 0h24v24H0z","M3 3h2v2H3V3zm4 0h2v2H7V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm0 4h2v2h-2V7zM3 19h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3V7zm7.667 4l1.036-1.555A1 1 0 0 1 12.535 9h2.93a1 1 0 0 1 .832.445L17.333 11H20a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h2.667zM14 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M150 1050H250V950H150V1050zM350 1050H450V950H350V1050zM550 1050H650V950H550V1050zM750 1050H850V950H750V1050zM950 1050H1050V950H950V1050zM950 850H1050V750H950V850zM150 250H250V150H150V250zM150 450H250V350H150V450zM150 650H250V550H150V650zM150 850H250V750H150V850zM533.35 650L585.15 727.75A50 50 0 0 0 626.75 750H773.25A50 50 0 0 0 814.85 727.75L866.6499999999999 650H1000A50 50 0 0 0 1050 600V200A50 50 0 0 0 1000 150H400A50 50 0 0 0 350 200V600A50 50 0 0 0 400 650H533.35zM700 300A100 100 0 1 1 700 500A100 100 0 0 1 700 300z","horizAdvX":"1200"},"screenshot-2-line":{"path":["M0 0h24v24H0z","M3 3h2v2H3V3zm4 0h2v2H7V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm4 0h2v2h-2V3zm0 4h2v2h-2V7zM3 19h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3v-2zm0-4h2v2H3V7zm7.667 4l1.036-1.555A1 1 0 0 1 12.535 9h2.93a1 1 0 0 1 .832.445L17.333 11H20a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h2.667zM9 19h10v-6h-2.737l-1.333-2h-1.86l-1.333 2H9v6zm5-1a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M150 1050H250V950H150V1050zM350 1050H450V950H350V1050zM550 1050H650V950H550V1050zM750 1050H850V950H750V1050zM950 1050H1050V950H950V1050zM950 850H1050V750H950V850zM150 250H250V150H150V250zM150 450H250V350H150V450zM150 650H250V550H150V650zM150 850H250V750H150V850zM533.35 650L585.15 727.75A50 50 0 0 0 626.75 750H773.25A50 50 0 0 0 814.85 727.75L866.6499999999999 650H1000A50 50 0 0 0 1050 600V200A50 50 0 0 0 1000 150H400A50 50 0 0 0 350 200V600A50 50 0 0 0 400 650H533.35zM450 250H950V550H813.1499999999999L746.4999999999999 650H653.4999999999999L586.8499999999999 550H450V250zM700 300A100 100 0 1 0 700 500A100 100 0 0 0 700 300z","horizAdvX":"1200"},"screenshot-fill":{"path":["M0 0h24v24H0z","M11.993 14.407l-1.552 1.552a4 4 0 1 1-1.418-1.41l1.555-1.556-3.124-3.125a1.5 1.5 0 0 1 0-2.121l.354-.354 4.185 4.185 4.189-4.189.353.354a1.5 1.5 0 0 1 0 2.12l-3.128 3.13 1.561 1.56a4 4 0 1 1-1.414 1.414l-1.561-1.56zM19 13V5H5v8H3V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v9h-2zM7 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm10 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M599.65 479.65L522.0500000000001 402.0500000000001A200 200 0 1 0 451.1500000000001 472.5500000000001L528.9000000000001 550.35L372.7000000000001 706.6000000000001A75 75 0 0 0 372.7000000000001 812.6500000000001L390.4000000000001 830.3500000000001L599.65 621.1000000000001L809.1000000000001 830.5500000000002L826.7500000000002 812.8500000000001A75 75 0 0 0 826.7500000000002 706.8500000000001L670.3500000000001 550.35L748.4000000000002 472.35A200 200 0 1 0 677.7000000000002 401.6500000000001L599.6500000000002 479.6500000000001zM950 550V950H250V550H150V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V550H950zM350 200A100 100 0 1 1 350 400A100 100 0 0 1 350 200zM850 200A100 100 0 1 1 850 400A100 100 0 0 1 850 200z","horizAdvX":"1200"},"screenshot-line":{"path":["M0 0h24v24H0z","M11.993 14.407l-1.552 1.552a4 4 0 1 1-1.418-1.41l1.555-1.556-4.185-4.185 1.415-1.415 4.185 4.185 4.189-4.189 1.414 1.414-4.19 4.19 1.562 1.56a4 4 0 1 1-1.414 1.414l-1.561-1.56zM7 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm10 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm2-7V5H5v8H3V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v9h-2z"],"unicode":"","glyph":"M599.65 479.65L522.0500000000001 402.0500000000001A200 200 0 1 0 451.1500000000001 472.5500000000001L528.9000000000001 550.35L319.6500000000001 759.6L390.4000000000001 830.35L599.6500000000001 621.1L809.1000000000001 830.55L879.8000000000002 759.85L670.3000000000001 550.35L748.4000000000001 472.35A200 200 0 1 0 677.7 401.6500000000001L599.6500000000001 479.6500000000001zM350 200A100 100 0 1 1 350 400A100 100 0 0 1 350 200zM850 200A100 100 0 1 1 850 400A100 100 0 0 1 850 200zM950 550V950H250V550H150V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000V550H950z","horizAdvX":"1200"},"sd-card-fill":{"path":["M0 0h24v24H0z","M4.293 6.707L9 2h10a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7.414a1 1 0 0 1 .293-.707zM15 5v4h2V5h-2zm-3 0v4h2V5h-2zM9 5v4h2V5H9z"],"unicode":"","glyph":"M214.65 864.6500000000001L450 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V829.3A50 50 0 0 0 214.65 864.6500000000001zM750 950V750H850V950H750zM600 950V750H700V950H600zM450 950V750H550V950H450z","horizAdvX":"1200"},"sd-card-line":{"path":["M0 0h24v24H0z","M6 7.828V20h12V4H9.828L6 7.828zm-1.707-1.12L9 2h10a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7.414a1 1 0 0 1 .293-.707zM15 5h2v4h-2V5zm-3 0h2v4h-2V5zM9 6h2v3H9V6z"],"unicode":"","glyph":"M300 808.5999999999999V200H900V1000H491.4L300 808.5999999999999zM214.65 864.5999999999999L450 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V829.3A50 50 0 0 0 214.65 864.6500000000001zM750 950H850V750H750V950zM600 950H700V750H600V950zM450 900H550V750H450V900z","horizAdvX":"1200"},"sd-card-mini-fill":{"path":["M0 0h24v24H0z","M7 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8.58a1 1 0 0 1 .292-.706l1.562-1.568A.5.5 0 0 0 6 9.793V3a1 1 0 0 1 1-1zm8 2v4h2V4h-2zm-3 0v4h2V4h-2zM9 4v4h2V4H9z"],"unicode":"","glyph":"M350 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V579A50 50 0 0 0 214.6 614.3L292.7 692.6999999999999A25 25 0 0 1 300 710.35V1050A50 50 0 0 0 350 1100zM750 1000V800H850V1000H750zM600 1000V800H700V1000H600zM450 1000V800H550V1000H450z","horizAdvX":"1200"},"sd-card-mini-line":{"path":["M0 0h24v24H0z","M8 4v5.793a2.5 2.5 0 0 1-.73 1.765L6 12.833V20h12V4H8zM7 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8.58a1 1 0 0 1 .292-.706l1.562-1.568A.5.5 0 0 0 6 9.793V3a1 1 0 0 1 1-1zm8 3h2v4h-2V5zm-3 0h2v4h-2V5zM9 5h2v4H9V5z"],"unicode":"","glyph":"M400 1000V710.35A125 125 0 0 0 363.5 622.1L300 558.35V200H900V1000H400zM350 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V579A50 50 0 0 0 214.6 614.3L292.7 692.6999999999999A25 25 0 0 1 300 710.35V1050A50 50 0 0 0 350 1100zM750 950H850V750H750V950zM600 950H700V750H600V950zM450 950H550V750H450V950z","horizAdvX":"1200"},"search-2-fill":{"path":["M0 0h24v24H0z","M11 2c4.968 0 9 4.032 9 9s-4.032 9-9 9-9-4.032-9-9 4.032-9 9-9zm8.485 16.071l2.829 2.828-1.415 1.415-2.828-2.829 1.414-1.414z"],"unicode":"","glyph":"M550 1100C798.4 1100 1000 898.4 1000 650S798.4 200 550 200S100 401.6 100 650S301.6 1100 550 1100zM974.25 296.45L1115.7 155.05L1044.95 84.3L903.55 225.75L974.2500000000002 296.4500000000001z","horizAdvX":"1200"},"search-2-line":{"path":["M0 0h24v24H0z","M11 2c4.968 0 9 4.032 9 9s-4.032 9-9 9-9-4.032-9-9 4.032-9 9-9zm0 16c3.867 0 7-3.133 7-7 0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7zm8.485.071l2.829 2.828-1.415 1.415-2.828-2.829 1.414-1.414z"],"unicode":"","glyph":"M550 1100C798.4 1100 1000 898.4 1000 650S798.4 200 550 200S100 401.6 100 650S301.6 1100 550 1100zM550 300C743.35 300 900 456.65 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300zM974.25 296.45L1115.7 155.05L1044.95 84.3L903.55 225.75L974.2500000000002 296.4500000000001z","horizAdvX":"1200"},"search-eye-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-5.853-9.44a4 4 0 1 0 2.646 2.646 2 2 0 1 1-2.646-2.647z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM608.9 841.1499999999999A200 200 0 1 1 741.1999999999999 708.8499999999999A100 100 0 1 0 608.8999999999999 841.2z","horizAdvX":"1200"},"search-eye-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15zm-3.847-8.699a2 2 0 1 0 2.646 2.646 4 4 0 1 1-2.646-2.646z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001zM608.9 841.2A100 100 0 1 1 741.1999999999999 708.9000000000001A200 200 0 1 0 608.8999999999999 841.2z","horizAdvX":"1200"},"search-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15z","horizAdvX":"1200"},"search-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001z","horizAdvX":"1200"},"secure-payment-fill":{"path":["M0 0h24v24H0z","M11 2l7.298 2.28a1 1 0 0 1 .702.955V7h2a1 1 0 0 1 1 1v2H9V8a1 1 0 0 1 1-1h7V5.97l-6-1.876L5 5.97v7.404a4 4 0 0 0 1.558 3.169l.189.136L11 19.58 14.782 17H10a1 1 0 0 1-1-1v-4h13v4a1 1 0 0 1-1 1l-3.22.001c-.387.51-.857.96-1.4 1.33L11 22l-5.38-3.668A6 6 0 0 1 3 13.374V5.235a1 1 0 0 1 .702-.954L11 2z"],"unicode":"","glyph":"M550 1100L914.9 986A50 50 0 0 0 950 938.25V850H1050A50 50 0 0 0 1100 800V700H450V800A50 50 0 0 0 500 850H850V901.5L550 995.3L250 901.5V531.3000000000001A200 200 0 0 1 327.9 372.85L337.35 366.0500000000001L550 221.0000000000001L739.1 350H500A50 50 0 0 0 450 400V600H1100V400A50 50 0 0 0 1050 350L889 349.95C869.6500000000001 324.4499999999998 846.1500000000001 301.95 819.0000000000001 283.4499999999998L550 100L281 283.4A300 300 0 0 0 150 531.3V938.25A50 50 0 0 0 185.1 985.95L550 1100z","horizAdvX":"1200"},"secure-payment-line":{"path":["M0 0h24v24H0z","M11 2l7.298 2.28a1 1 0 0 1 .702.955V7h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1l-3.22.001c-.387.51-.857.96-1.4 1.33L11 22l-5.38-3.668A6 6 0 0 1 3 13.374V5.235a1 1 0 0 1 .702-.954L11 2zm0 2.094L5 5.97v7.404a4 4 0 0 0 1.558 3.169l.189.136L11 19.58 14.782 17H10a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h7V5.97l-6-1.876zM11 12v3h9v-3h-9zm0-2h9V9h-9v1z"],"unicode":"","glyph":"M550 1100L914.9 986A50 50 0 0 0 950 938.25V850H1050A50 50 0 0 0 1100 800V400A50 50 0 0 0 1050 350L889 349.95C869.6500000000001 324.4499999999998 846.1500000000001 301.95 819.0000000000001 283.4499999999998L550 100L281 283.4A300 300 0 0 0 150 531.3V938.25A50 50 0 0 0 185.1 985.95L550 1100zM550 995.3L250 901.5V531.3000000000001A200 200 0 0 1 327.9 372.85L337.35 366.0500000000001L550 221.0000000000001L739.1 350H500A50 50 0 0 0 450 400V800A50 50 0 0 0 500 850H850V901.5L550 995.3zM550 600V450H1000V600H550zM550 700H1000V750H550V700z","horizAdvX":"1200"},"seedling-fill":{"path":["M0 0H24V24H0z","M22 7v2.5c0 3.59-2.91 6.5-6.5 6.5H13v5h-2v-7l.019-1c.255-3.356 3.06-6 6.481-6H22zM6 3c3.092 0 5.716 2.005 6.643 4.786-1.5 1.275-2.49 3.128-2.627 5.214H9c-3.866 0-7-3.134-7-7V3h4z"],"unicode":"","glyph":"M1100 850V725C1100 545.5 954.5 400 775 400H650V150H550V500L550.95 550C563.7 717.8 703.95 850 875 850H1100zM300 1050C454.6 1050 585.8000000000001 949.75 632.1500000000001 810.7C557.1500000000001 746.95 507.65 654.3000000000001 500.8000000000001 550H450C256.7000000000001 550 100 706.7 100 900V1050H300z","horizAdvX":"1200"},"seedling-line":{"path":["M0 0H24V24H0z","M6 3c3.49 0 6.383 2.554 6.913 5.895C14.088 7.724 15.71 7 17.5 7H22v2.5c0 3.59-2.91 6.5-6.5 6.5H13v5h-2v-8H9c-3.866 0-7-3.134-7-7V3h4zm14 6h-2.5c-2.485 0-4.5 2.015-4.5 4.5v.5h2.5c2.485 0 4.5-2.015 4.5-4.5V9zM6 5H4v1c0 2.761 2.239 5 5 5h2v-1c0-2.761-2.239-5-5-5z"],"unicode":"","glyph":"M300 1050C474.5 1050 619.15 922.3 645.65 755.25C704.4 813.8 785.5 850 875 850H1100V725C1100 545.5 954.5 400 775 400H650V150H550V550H450C256.7000000000001 550 100 706.7 100 900V1050H300zM1000 750H875C750.75 750 650 649.25 650 525V500H775C899.25 500 1000 600.75 1000 725V750zM300 950H200V900C200 761.95 311.95 650 450 650H550V700C550 838.05 438.05 950 300 950z","horizAdvX":"1200"},"send-backward":{"path":["M0 0H24V24H0z","M14 3c.552 0 1 .448 1 1v5h5c.552 0 1 .448 1 1v10c0 .552-.448 1-1 1H10c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h10zm-1 2H5v8h4v-3c0-.552.448-1 1-1h3V5z"],"unicode":"","glyph":"M700 1050C727.6 1050 750 1027.6 750 1000V750H1000C1027.6 750 1050 727.5999999999999 1050 700V200C1050 172.4000000000001 1027.6 150 1000 150H500C472.4 150 450 172.4000000000001 450 200V450H200C172.4 450 150 472.4 150 500V1000C150 1027.6 172.4 1050 200 1050H700zM650 950H250V550H450V700C450 727.5999999999999 472.4 750 500 750H650V950z","horizAdvX":"1200"},"send-plane-2-fill":{"path":["M0 0h24v24H0z","M3 13h6v-2H3V1.846a.5.5 0 0 1 .741-.438l18.462 10.154a.5.5 0 0 1 0 .876L3.741 22.592A.5.5 0 0 1 3 22.154V13z"],"unicode":"","glyph":"M150 550H450V650H150V1107.7A25 25 0 0 0 187.05 1129.6L1110.1499999999999 621.9A25 25 0 0 0 1110.1499999999999 578.1L187.05 70.4000000000001A25 25 0 0 0 150 92.3V550z","horizAdvX":"1200"},"send-plane-2-line":{"path":["M0 0h24v24H0z","M3.741 1.408l18.462 10.154a.5.5 0 0 1 0 .876L3.741 22.592A.5.5 0 0 1 3 22.154V1.846a.5.5 0 0 1 .741-.438zM5 13v6.617L18.85 12 5 4.383V11h5v2H5z"],"unicode":"","glyph":"M187.05 1129.6L1110.1499999999999 621.9A25 25 0 0 0 1110.1499999999999 578.1L187.05 70.4000000000001A25 25 0 0 0 150 92.3V1107.7A25 25 0 0 0 187.05 1129.6zM250 550V219.15L942.5000000000002 600L250 980.85V650H500V550H250z","horizAdvX":"1200"},"send-plane-fill":{"path":["M0 0h24v24H0z","M1.946 9.315c-.522-.174-.527-.455.01-.634l19.087-6.362c.529-.176.832.12.684.638l-5.454 19.086c-.15.529-.455.547-.679.045L12 14l6-8-8 6-8.054-2.685z"],"unicode":"","glyph":"M97.3 734.25C71.2 742.95 70.95 757 97.8 765.95L1052.1499999999999 1084.05C1078.6 1092.8500000000001 1093.75 1078.05 1086.35 1052.15L813.65 97.8500000000001C806.1500000000001 71.4000000000001 790.9 70.5 779.6999999999999 95.5999999999999L600 500L900 900L500 600L97.3 734.25z","horizAdvX":"1200"},"send-plane-line":{"path":["M0 0h24v24H0z","M1.923 9.37c-.51-.205-.504-.51.034-.689l19.086-6.362c.529-.176.832.12.684.638l-5.454 19.086c-.15.529-.475.553-.717.07L11 13 1.923 9.37zm4.89-.2l5.636 2.255 3.04 6.082 3.546-12.41L6.812 9.17z"],"unicode":"","glyph":"M96.15 731.5C70.65 741.75 70.95 757 97.85 765.95L1052.1499999999999 1084.05C1078.6 1092.8500000000001 1093.75 1078.05 1086.35 1052.15L813.65 97.8500000000001C806.1500000000001 71.4000000000001 789.9 70.2000000000001 777.8 94.3499999999999L550 550L96.15 731.5zM340.65 741.5L622.45 628.75L774.45 324.65L951.75 945.1499999999997L340.6 741.5z","horizAdvX":"1200"},"send-to-back":{"path":["M0 0H24V24H0z","M11 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v5h2c.552 0 1 .448 1 1v7c0 .552-.448 1-1 1h-7c-.552 0-1-.448-1-1v-2H7c-.552 0-1-.448-1-1v-5H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h7zm5 5h-4v3c0 .552-.448 1-1 1H8v4h4v-3c0-.552.448-1 1-1h3V8z"],"unicode":"","glyph":"M550 1050C577.6 1050 600 1027.6 600 1000V900H850C877.6 900 900 877.5999999999999 900 850V600H1000C1027.6 600 1050 577.6 1050 550V200C1050 172.4000000000001 1027.6 150 1000 150H650C622.4 150 600 172.4000000000001 600 200V300H350C322.4000000000001 300 300 322.4 300 350V600H200C172.4 600 150 622.4 150 650V1000C150 1027.6 172.4 1050 200 1050H550zM800 800H600V650C600 622.4 577.6 600 550 600H400V400H600V550C600 577.6 622.4 600 650 600H800V800z","horizAdvX":"1200"},"sensor-fill":{"path":["M0 0h24v24H0z","M6 8v2h12V8h-3V2h2v4h5v2h-2v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V2h2v6H6zm7-6v6h-2V2h2z"],"unicode":"","glyph":"M300 800V700H900V800H750V1100H850V900H1100V800H1000V200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V800H100V900H350V1100H450V800H300zM650 1100V800H550V1100H650z","horizAdvX":"1200"},"sensor-line":{"path":["M0 0h24v24H0z","M6 8v11h12V8h-3V2h2v4h5v2h-2v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V2h2v6H6zm7-6v6h-2V2h2z"],"unicode":"","glyph":"M300 800V250H900V800H750V1100H850V900H1100V800H1000V200A50 50 0 0 0 950 150H250A50 50 0 0 0 200 200V800H100V900H350V1100H450V800H300zM650 1100V800H550V1100H650z","horizAdvX":"1200"},"separator":{"path":["M0 0h24v24H0z","M2 11h2v2H2v-2zm4 0h12v2H6v-2zm14 0h2v2h-2v-2z"],"unicode":"","glyph":"M100 650H200V550H100V650zM300 650H900V550H300V650zM1000 650H1100V550H1000V650z","horizAdvX":"1200"},"server-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v7H3V4a1 1 0 0 1 1-1zM3 13h18v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7zm4 3v2h3v-2H7zM7 6v2h3V6H7z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V650H150V1000A50 50 0 0 0 200 1050zM150 550H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V550zM350 400V300H500V400H350zM350 900V800H500V900H350z","horizAdvX":"1200"},"server-line":{"path":["M0 0h24v24H0z","M5 11h14V5H5v6zm16-7v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1zm-2 9H5v6h14v-6zM7 15h3v2H7v-2zm0-8h3v2H7V7z"],"unicode":"","glyph":"M250 650H950V950H250V650zM1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H1000A50 50 0 0 0 1050 1000zM950 550H250V250H950V550zM350 450H500V350H350V450zM350 850H500V750H350V850z","horizAdvX":"1200"},"service-fill":{"path":["M0 0h24v24H0z","M14.121 10.48a1 1 0 0 0-1.414 0l-.707.706a2 2 0 1 1-2.828-2.828l5.63-5.632a6.5 6.5 0 0 1 6.377 10.568l-2.108 2.135-4.95-4.95zM3.161 4.468a6.503 6.503 0 0 1 8.009-.938L7.757 6.944a4 4 0 0 0 5.513 5.794l.144-.137 4.243 4.242-4.243 4.243a2 2 0 0 1-2.828 0L3.16 13.66a6.5 6.5 0 0 1 0-9.192z"],"unicode":"","glyph":"M706.0500000000001 676A50 50 0 0 1 635.35 676L600 640.7A100 100 0 1 0 458.6 782.0999999999999L740.1 1063.7A325 325 0 0 0 1058.9499999999998 535.3L953.55 428.55L706.05 676.0500000000001zM158.05 976.6A325.15 325.15 0 0 0 558.5 1023.5L387.85 852.8A200 200 0 0 1 663.5 563.1L670.6999999999999 569.95L882.85 357.85L670.6999999999999 145.7000000000001A100 100 0 0 0 529.3000000000001 145.7000000000001L158 517A325 325 0 0 0 158 976.6z","horizAdvX":"1200"},"service-line":{"path":["M0 0h24v24H0z","M3.161 4.469a6.5 6.5 0 0 1 8.84-.328 6.5 6.5 0 0 1 9.178 9.154l-7.765 7.79a2 2 0 0 1-2.719.102l-.11-.101-7.764-7.791a6.5 6.5 0 0 1 .34-8.826zm1.414 1.414a4.5 4.5 0 0 0-.146 6.21l.146.154L12 19.672l5.303-5.304-3.535-3.535-1.06 1.06a3 3 0 1 1-4.244-4.242l2.102-2.103a4.501 4.501 0 0 0-5.837.189l-.154.146zm8.486 2.828a1 1 0 0 1 1.414 0l4.242 4.242.708-.706a4.5 4.5 0 0 0-6.211-6.51l-.153.146-3.182 3.182a1 1 0 0 0-.078 1.327l.078.087a1 1 0 0 0 1.327.078l.087-.078 1.768-1.768z"],"unicode":"","glyph":"M158.05 976.55A325 325 0 0 0 600.05 992.95A325 325 0 0 0 1058.95 535.25L670.7 145.75A100 100 0 0 0 534.7500000000001 140.6499999999999L529.2500000000001 145.6999999999998L141.0500000000001 535.2499999999999A325 325 0 0 0 158.0500000000001 976.55zM228.75 905.85A225 225 0 0 1 221.45 595.35L228.75 587.65L600 216.4L865.1500000000001 481.6L688.4000000000001 658.35L635.4 605.3499999999999A150 150 0 1 0 423.2000000000001 817.45L528.3000000000001 922.6A225.05 225.05 0 0 1 236.4500000000001 913.15L228.7500000000001 905.85zM653.05 764.45A50 50 0 0 0 723.75 764.45L935.85 552.35L971.2499999999998 587.65A225 225 0 0 1 660.6999999999998 913.15L653.0499999999998 905.85L493.9499999999998 746.75A50 50 0 0 1 490.0499999999998 680.4L493.9499999999998 676.0500000000001A50 50 0 0 1 560.2999999999998 672.1500000000001L564.6499999999997 676.0500000000001L653.0499999999998 764.45z","horizAdvX":"1200"},"settings-2-fill":{"path":["M0 0h24v24H0z","M8.686 4l2.607-2.607a1 1 0 0 1 1.414 0L15.314 4H19a1 1 0 0 1 1 1v3.686l2.607 2.607a1 1 0 0 1 0 1.414L20 15.314V19a1 1 0 0 1-1 1h-3.686l-2.607 2.607a1 1 0 0 1-1.414 0L8.686 20H5a1 1 0 0 1-1-1v-3.686l-2.607-2.607a1 1 0 0 1 0-1.414L4 8.686V5a1 1 0 0 1 1-1h3.686zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M434.3 1000L564.65 1130.35A50 50 0 0 0 635.3499999999999 1130.35L765.7 1000H950A50 50 0 0 0 1000 950V765.7L1130.35 635.35A50 50 0 0 0 1130.35 564.6500000000001L1000 434.3V250A50 50 0 0 0 950 200H765.7L635.35 69.6500000000001A50 50 0 0 0 564.6500000000001 69.6500000000001L434.3 200H250A50 50 0 0 0 200 250V434.3L69.65 564.65A50 50 0 0 0 69.65 635.3499999999999L200 765.7V950A50 50 0 0 0 250 1000H434.3zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-2-line":{"path":["M0 0h24v24H0z","M8.686 4l2.607-2.607a1 1 0 0 1 1.414 0L15.314 4H19a1 1 0 0 1 1 1v3.686l2.607 2.607a1 1 0 0 1 0 1.414L20 15.314V19a1 1 0 0 1-1 1h-3.686l-2.607 2.607a1 1 0 0 1-1.414 0L8.686 20H5a1 1 0 0 1-1-1v-3.686l-2.607-2.607a1 1 0 0 1 0-1.414L4 8.686V5a1 1 0 0 1 1-1h3.686zM6 6v3.515L3.515 12 6 14.485V18h3.515L12 20.485 14.485 18H18v-3.515L20.485 12 18 9.515V6h-3.515L12 3.515 9.515 6H6zm6 10a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M434.3 1000L564.65 1130.35A50 50 0 0 0 635.3499999999999 1130.35L765.7 1000H950A50 50 0 0 0 1000 950V765.7L1130.35 635.35A50 50 0 0 0 1130.35 564.6500000000001L1000 434.3V250A50 50 0 0 0 950 200H765.7L635.35 69.6500000000001A50 50 0 0 0 564.6500000000001 69.6500000000001L434.3 200H250A50 50 0 0 0 200 250V434.3L69.65 564.65A50 50 0 0 0 69.65 635.3499999999999L200 765.7V950A50 50 0 0 0 250 1000H434.3zM300 900V724.25L175.75 600L300 475.75V300H475.75L600 175.75L724.25 300H900V475.75L1024.25 600L900 724.25V900H724.25L600 1024.25L475.75 900H300zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"settings-3-fill":{"path":["M0 0h24v24H0z","M9.954 2.21a9.99 9.99 0 0 1 4.091-.002A3.993 3.993 0 0 0 16 5.07a3.993 3.993 0 0 0 3.457.261A9.99 9.99 0 0 1 21.5 8.876 3.993 3.993 0 0 0 20 12c0 1.264.586 2.391 1.502 3.124a10.043 10.043 0 0 1-2.046 3.543 3.993 3.993 0 0 0-3.456.261 3.993 3.993 0 0 0-1.954 2.86 9.99 9.99 0 0 1-4.091.004A3.993 3.993 0 0 0 8 18.927a3.993 3.993 0 0 0-3.457-.26A9.99 9.99 0 0 1 2.5 15.121 3.993 3.993 0 0 0 4 11.999a3.993 3.993 0 0 0-1.502-3.124 10.043 10.043 0 0 1 2.046-3.543A3.993 3.993 0 0 0 8 5.071a3.993 3.993 0 0 0 1.954-2.86zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M497.7 1089.5A499.5000000000001 499.5000000000001 0 0 0 702.2500000000001 1089.6A199.64999999999998 199.64999999999998 0 0 1 800 946.5A199.64999999999998 199.64999999999998 0 0 1 972.85 933.45A499.5000000000001 499.5000000000001 0 0 0 1075 756.2A199.64999999999998 199.64999999999998 0 0 1 1000 600C1000 536.8000000000001 1029.3 480.45 1075.1 443.8A502.1499999999999 502.1499999999999 0 0 0 972.8 266.6499999999999A199.64999999999998 199.64999999999998 0 0 1 800 253.5999999999999A199.64999999999998 199.64999999999998 0 0 1 702.3 110.5999999999999A499.5000000000001 499.5000000000001 0 0 0 497.7499999999999 110.3999999999999A199.64999999999998 199.64999999999998 0 0 1 400 253.65A199.64999999999998 199.64999999999998 0 0 1 227.15 266.6500000000001A499.5000000000001 499.5000000000001 0 0 0 125 443.95A199.64999999999998 199.64999999999998 0 0 1 200 600.05A199.64999999999998 199.64999999999998 0 0 1 124.9 756.25A502.1499999999999 502.1499999999999 0 0 0 227.2 933.4A199.64999999999998 199.64999999999998 0 0 1 400 946.45A199.64999999999998 199.64999999999998 0 0 1 497.7 1089.45zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-3-line":{"path":["M0 0h24v24H0z","M3.34 17a10.018 10.018 0 0 1-.978-2.326 3 3 0 0 0 .002-5.347A9.99 9.99 0 0 1 4.865 4.99a3 3 0 0 0 4.631-2.674 9.99 9.99 0 0 1 5.007.002 3 3 0 0 0 4.632 2.672c.579.59 1.093 1.261 1.525 2.01.433.749.757 1.53.978 2.326a3 3 0 0 0-.002 5.347 9.99 9.99 0 0 1-2.501 4.337 3 3 0 0 0-4.631 2.674 9.99 9.99 0 0 1-5.007-.002 3 3 0 0 0-4.632-2.672A10.018 10.018 0 0 1 3.34 17zm5.66.196a4.993 4.993 0 0 1 2.25 2.77c.499.047 1 .048 1.499.001A4.993 4.993 0 0 1 15 17.197a4.993 4.993 0 0 1 3.525-.565c.29-.408.54-.843.748-1.298A4.993 4.993 0 0 1 18 12c0-1.26.47-2.437 1.273-3.334a8.126 8.126 0 0 0-.75-1.298A4.993 4.993 0 0 1 15 6.804a4.993 4.993 0 0 1-2.25-2.77c-.499-.047-1-.048-1.499-.001A4.993 4.993 0 0 1 9 6.803a4.993 4.993 0 0 1-3.525.565 7.99 7.99 0 0 0-.748 1.298A4.993 4.993 0 0 1 6 12c0 1.26-.47 2.437-1.273 3.334a8.126 8.126 0 0 0 .75 1.298A4.993 4.993 0 0 1 9 17.196zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M167 350A500.9 500.9 0 0 0 118.1 466.3000000000001A150 150 0 0 1 118.2 733.6500000000001A499.5000000000001 499.5000000000001 0 0 0 243.25 950.5A150 150 0 0 1 474.8 1084.2A499.5000000000001 499.5000000000001 0 0 0 725.15 1084.1A150 150 0 0 1 956.7499999999998 950.5C985.7 921 1011.3999999999997 887.45 1032.9999999999998 850C1054.6499999999999 812.55 1070.85 773.5 1081.8999999999999 733.7A150 150 0 0 1 1081.8 466.3499999999999A499.5000000000001 499.5000000000001 0 0 0 956.7499999999998 249.4999999999999A150 150 0 0 1 725.1999999999999 115.8A499.5000000000001 499.5000000000001 0 0 0 474.8499999999999 115.8999999999999A150 150 0 0 1 243.2499999999999 249.4999999999999A500.9 500.9 0 0 0 167 350zM450 340.2A249.65000000000003 249.65000000000003 0 0 0 562.5 201.6999999999999C587.45 199.3499999999999 612.5 199.3000000000001 637.45 201.6499999999999A249.65000000000003 249.65000000000003 0 0 0 750 340.1500000000001A249.65000000000003 249.65000000000003 0 0 0 926.2499999999998 368.4000000000001C940.7499999999998 388.8000000000002 953.2499999999998 410.5500000000001 963.65 433.3000000000001A249.65000000000003 249.65000000000003 0 0 0 900 600C900 663 923.5 721.8499999999999 963.65 766.7A406.3 406.3 0 0 1 926.15 831.5999999999999A249.65000000000003 249.65000000000003 0 0 0 750 859.8A249.65000000000003 249.65000000000003 0 0 0 637.5 998.3C612.55 1000.65 587.5 1000.7 562.55 998.35A249.65000000000003 249.65000000000003 0 0 0 450 859.85A249.65000000000003 249.65000000000003 0 0 0 273.75 831.5999999999999A399.5 399.5 0 0 1 236.35 766.7A249.65000000000003 249.65000000000003 0 0 0 300 600C300 537 276.5 478.15 236.35 433.3000000000001A406.3 406.3 0 0 1 273.85 368.4000000000001A249.65000000000003 249.65000000000003 0 0 0 450 340.2zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"settings-4-fill":{"path":["M0 0h24v24H0z","M5.334 4.545a9.99 9.99 0 0 1 3.542-2.048A3.993 3.993 0 0 0 12 3.999a3.993 3.993 0 0 0 3.124-1.502 9.99 9.99 0 0 1 3.542 2.048 3.993 3.993 0 0 0 .262 3.454 3.993 3.993 0 0 0 2.863 1.955 10.043 10.043 0 0 1 0 4.09c-1.16.178-2.23.86-2.863 1.955a3.993 3.993 0 0 0-.262 3.455 9.99 9.99 0 0 1-3.542 2.047A3.993 3.993 0 0 0 12 20a3.993 3.993 0 0 0-3.124 1.502 9.99 9.99 0 0 1-3.542-2.047 3.993 3.993 0 0 0-.262-3.455 3.993 3.993 0 0 0-2.863-1.954 10.043 10.043 0 0 1 0-4.091 3.993 3.993 0 0 0 2.863-1.955 3.993 3.993 0 0 0 .262-3.454zM13.5 14.597a3 3 0 1 0-3-5.196 3 3 0 0 0 3 5.196z"],"unicode":"","glyph":"M266.7 972.75A499.5000000000001 499.5000000000001 0 0 0 443.8 1075.15A199.64999999999998 199.64999999999998 0 0 1 600 1000.05A199.64999999999998 199.64999999999998 0 0 1 756.2 1075.15A499.5000000000001 499.5000000000001 0 0 0 933.3 972.75A199.64999999999998 199.64999999999998 0 0 1 946.4 800.05A199.64999999999998 199.64999999999998 0 0 1 1089.55 702.3A502.1499999999999 502.1499999999999 0 0 0 1089.55 497.8C1031.55 488.9 978.05 454.8 946.4 400.05A199.64999999999998 199.64999999999998 0 0 1 933.3 227.3A499.5000000000001 499.5000000000001 0 0 0 756.2 124.9500000000001A199.64999999999998 199.64999999999998 0 0 1 600 200A199.64999999999998 199.64999999999998 0 0 1 443.8 124.9000000000001A499.5000000000001 499.5000000000001 0 0 0 266.7 227.2500000000001A199.64999999999998 199.64999999999998 0 0 1 253.6 400.0000000000001A199.64999999999998 199.64999999999998 0 0 1 110.45 497.7000000000002A502.1499999999999 502.1499999999999 0 0 0 110.45 702.2500000000001A199.64999999999998 199.64999999999998 0 0 1 253.6 800.0000000000001A199.64999999999998 199.64999999999998 0 0 1 266.7 972.7000000000002zM675 470.15A150 150 0 1 1 525 729.95A150 150 0 0 1 675 470.15z","horizAdvX":"1200"},"settings-4-line":{"path":["M0 0h24v24H0z","M2 12c0-.865.11-1.703.316-2.504A3 3 0 0 0 4.99 4.867a9.99 9.99 0 0 1 4.335-2.505 3 3 0 0 0 5.348 0 9.99 9.99 0 0 1 4.335 2.505 3 3 0 0 0 2.675 4.63c.206.8.316 1.638.316 2.503 0 .865-.11 1.703-.316 2.504a3 3 0 0 0-2.675 4.629 9.99 9.99 0 0 1-4.335 2.505 3 3 0 0 0-5.348 0 9.99 9.99 0 0 1-4.335-2.505 3 3 0 0 0-2.675-4.63C2.11 13.704 2 12.866 2 12zm4.804 3c.63 1.091.81 2.346.564 3.524.408.29.842.541 1.297.75A4.993 4.993 0 0 1 12 18c1.26 0 2.438.471 3.335 1.274.455-.209.889-.46 1.297-.75A4.993 4.993 0 0 1 17.196 15a4.993 4.993 0 0 1 2.77-2.25 8.126 8.126 0 0 0 0-1.5A4.993 4.993 0 0 1 17.195 9a4.993 4.993 0 0 1-.564-3.524 7.989 7.989 0 0 0-1.297-.75A4.993 4.993 0 0 1 12 6a4.993 4.993 0 0 1-3.335-1.274 7.99 7.99 0 0 0-1.297.75A4.993 4.993 0 0 1 6.804 9a4.993 4.993 0 0 1-2.77 2.25 8.126 8.126 0 0 0 0 1.5A4.993 4.993 0 0 1 6.805 15zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M100 600C100 643.25 105.5 685.15 115.8 725.2A150 150 0 0 1 249.5 956.65A499.5000000000001 499.5000000000001 0 0 0 466.2499999999999 1081.9A150 150 0 0 1 733.6499999999999 1081.9A499.5000000000001 499.5000000000001 0 0 0 950.4 956.65A150 150 0 0 1 1084.15 725.15C1094.45 685.15 1099.95 643.25 1099.95 600C1099.95 556.75 1094.45 514.85 1084.15 474.8000000000001A150 150 0 0 1 950.4 243.35A499.5000000000001 499.5000000000001 0 0 0 733.6499999999999 118.1000000000001A150 150 0 0 1 466.2499999999999 118.1000000000001A499.5000000000001 499.5000000000001 0 0 0 249.5 243.35A150 150 0 0 1 115.75 474.85C105.5 514.8 100 556.7 100 600zM340.2 450C371.7 395.45 380.7000000000001 332.7000000000001 368.4000000000001 273.8C388.8 259.3 410.5000000000001 246.7499999999999 433.2500000000001 236.3A249.65000000000003 249.65000000000003 0 0 0 600 300C663 300 721.9 276.4500000000001 766.75 236.3C789.5 246.7499999999999 811.2 259.3 831.6 273.8A249.65000000000003 249.65000000000003 0 0 0 859.8000000000001 450A249.65000000000003 249.65000000000003 0 0 0 998.3 562.5A406.3 406.3 0 0 1 998.3 637.5A249.65000000000003 249.65000000000003 0 0 0 859.75 750A249.65000000000003 249.65000000000003 0 0 0 831.55 926.2A399.44999999999993 399.44999999999993 0 0 1 766.6999999999999 963.7A249.65000000000003 249.65000000000003 0 0 0 600 900A249.65000000000003 249.65000000000003 0 0 0 433.25 963.7A399.5 399.5 0 0 1 368.4 926.2A249.65000000000003 249.65000000000003 0 0 0 340.2 750A249.65000000000003 249.65000000000003 0 0 0 201.7000000000001 637.5A406.3 406.3 0 0 1 201.7000000000001 562.5A249.65000000000003 249.65000000000003 0 0 0 340.25 450zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"settings-5-fill":{"path":["M0 0h24v24H0z","M2.132 13.63a9.942 9.942 0 0 1 0-3.26c1.102.026 2.092-.502 2.477-1.431.385-.93.058-2.004-.74-2.763a9.942 9.942 0 0 1 2.306-2.307c.76.798 1.834 1.125 2.764.74.93-.385 1.457-1.376 1.43-2.477a9.942 9.942 0 0 1 3.262 0c-.027 1.102.501 2.092 1.43 2.477.93.385 2.004.058 2.763-.74a9.942 9.942 0 0 1 2.307 2.306c-.798.76-1.125 1.834-.74 2.764.385.93 1.376 1.457 2.477 1.43a9.942 9.942 0 0 1 0 3.262c-1.102-.027-2.092.501-2.477 1.43-.385.93-.058 2.004.74 2.763a9.942 9.942 0 0 1-2.306 2.307c-.76-.798-1.834-1.125-2.764-.74-.93.385-1.457 1.376-1.43 2.477a9.942 9.942 0 0 1-3.262 0c.027-1.102-.501-2.092-1.43-2.477-.93-.385-2.004-.058-2.763.74a9.942 9.942 0 0 1-2.307-2.306c.798-.76 1.125-1.834.74-2.764-.385-.93-1.376-1.457-2.477-1.43zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M106.6 518.5A497.1 497.1 0 0 0 106.6 681.5C161.7 680.1999999999999 211.2 706.5999999999999 230.45 753.05C249.7 799.55 233.35 853.25 193.45 891.2A497.1 497.1 0 0 0 308.75 1006.55C346.75 966.65 400.4500000000001 950.3 446.95 969.55C493.45 988.8 519.8000000000001 1038.35 518.45 1093.4A497.1 497.1 0 0 0 681.55 1093.4C680.2 1038.3 706.6 988.8 753.05 969.55C799.55 950.3 853.2500000000001 966.65 891.1999999999999 1006.55A497.1 497.1 0 0 0 1006.5499999999998 891.25C966.6499999999997 853.25 950.2999999999998 799.55 969.55 753.05C988.8 706.55 1038.35 680.1999999999999 1093.3999999999999 681.55A497.1 497.1 0 0 0 1093.3999999999999 518.45C1038.3 519.8 988.8 493.4 969.55 446.9500000000001C950.2999999999998 400.4500000000001 966.6499999999997 346.7499999999999 1006.5499999999998 308.8000000000001A497.1 497.1 0 0 0 891.2499999999998 193.4500000000002C853.2499999999997 233.3500000000002 799.5499999999998 249.7000000000002 753.0499999999998 230.4500000000001C706.5499999999998 211.2000000000001 680.1999999999998 161.6500000000001 681.5499999999998 106.6000000000001A497.1 497.1 0 0 0 518.4499999999998 106.6000000000001C519.7999999999997 161.7000000000001 493.3999999999999 211.2000000000001 446.9499999999998 230.4500000000001C400.4499999999998 249.7000000000002 346.7499999999999 233.3500000000002 308.7999999999999 193.4500000000002A497.1 497.1 0 0 0 193.4499999999999 308.7500000000003C233.3499999999998 346.7500000000004 249.6999999999998 400.4500000000002 230.4499999999998 446.9500000000002C211.1999999999998 493.4500000000002 161.6499999999998 519.8000000000002 106.5999999999998 518.4500000000002zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-5-line":{"path":["M0 0h24v24H0z","M2.213 14.06a9.945 9.945 0 0 1 0-4.12c1.11.13 2.08-.237 2.396-1.001.317-.765-.108-1.71-.986-2.403a9.945 9.945 0 0 1 2.913-2.913c.692.877 1.638 1.303 2.403.986.765-.317 1.132-1.286 1.001-2.396a9.945 9.945 0 0 1 4.12 0c-.13 1.11.237 2.08 1.001 2.396.765.317 1.71-.108 2.403-.986a9.945 9.945 0 0 1 2.913 2.913c-.877.692-1.303 1.638-.986 2.403.317.765 1.286 1.132 2.396 1.001a9.945 9.945 0 0 1 0 4.12c-1.11-.13-2.08.237-2.396 1.001-.317.765.108 1.71.986 2.403a9.945 9.945 0 0 1-2.913 2.913c-.692-.877-1.638-1.303-2.403-.986-.765.317-1.132 1.286-1.001 2.396a9.945 9.945 0 0 1-4.12 0c.13-1.11-.237-2.08-1.001-2.396-.765-.317-1.71.108-2.403.986a9.945 9.945 0 0 1-2.913-2.913c.877-.692 1.303-1.638.986-2.403-.317-.765-1.286-1.132-2.396-1.001zM4 12.21c1.1.305 2.007 1.002 2.457 2.086.449 1.085.3 2.22-.262 3.212.096.102.195.201.297.297.993-.562 2.127-.71 3.212-.262 1.084.45 1.781 1.357 2.086 2.457.14.004.28.004.42 0 .305-1.1 1.002-2.007 2.086-2.457 1.085-.449 2.22-.3 3.212.262.102-.096.201-.195.297-.297-.562-.993-.71-2.127-.262-3.212.45-1.084 1.357-1.781 2.457-2.086.004-.14.004-.28 0-.42-1.1-.305-2.007-1.002-2.457-2.086-.449-1.085-.3-2.22.262-3.212a7.935 7.935 0 0 0-.297-.297c-.993.562-2.127.71-3.212.262C13.212 6.007 12.515 5.1 12.21 4a7.935 7.935 0 0 0-.42 0c-.305 1.1-1.002 2.007-2.086 2.457-1.085.449-2.22.3-3.212-.262-.102.096-.201.195-.297.297.562.993.71 2.127.262 3.212C6.007 10.788 5.1 11.485 4 11.79c-.004.14-.004.28 0 .42zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M110.65 497A497.25 497.25 0 0 0 110.65 703C166.15 696.4999999999999 214.65 714.8499999999999 230.45 753.05C246.3 791.3 225.05 838.55 181.15 873.1999999999999A497.25 497.25 0 0 0 326.8 1018.85C361.4 974.9999999999998 408.7 953.7 446.95 969.55C485.2 985.3999999999997 503.55 1033.85 497 1089.35A497.25 497.25 0 0 0 702.9999999999999 1089.35C696.4999999999999 1033.85 714.8499999999999 985.35 753.05 969.55C791.3 953.7 838.5499999999998 974.95 873.1999999999999 1018.85A497.25 497.25 0 0 0 1018.85 873.1999999999999C975 838.5999999999999 953.7 791.3 969.55 753.05C985.3999999999997 714.8 1033.85 696.4499999999999 1089.35 703A497.25 497.25 0 0 0 1089.35 496.9999999999999C1033.85 503.4999999999999 985.35 485.1499999999999 969.55 446.95C953.7 408.7 974.95 361.45 1018.85 326.7999999999999A497.25 497.25 0 0 0 873.1999999999999 181.1499999999999C838.5999999999999 224.9999999999998 791.3 246.3 753.05 230.45C714.7999999999998 214.5999999999999 696.4499999999999 166.1499999999999 702.9999999999999 110.6499999999999A497.25 497.25 0 0 0 496.9999999999999 110.6499999999999C503.4999999999999 166.1499999999999 485.1499999999999 214.65 446.95 230.45C408.6999999999999 246.3 361.45 225.0499999999999 326.7999999999999 181.1499999999999A497.25 497.25 0 0 0 181.1499999999999 326.7999999999999C224.9999999999999 361.3999999999999 246.3 408.7 230.4499999999999 446.95C214.5999999999999 485.1999999999999 166.1499999999999 503.55 110.6499999999999 496.9999999999999zM200 589.5C255 574.25 300.35 539.4 322.85 485.1999999999999C345.3 430.9500000000001 337.85 374.2 309.75 324.5999999999999C314.55 319.4999999999999 319.5 314.5499999999999 324.6 309.7499999999999C374.25 337.8499999999999 430.95 345.2499999999999 485.2 322.8499999999999C539.4 300.3499999999999 574.2500000000001 254.9999999999999 589.5 199.9999999999998C596.5000000000001 199.7999999999997 603.5 199.7999999999997 610.5 199.9999999999998C625.75 254.9999999999999 660.6 300.3499999999999 714.8000000000001 322.8499999999999C769.05 345.3 825.8000000000001 337.8499999999999 875.4000000000001 309.7499999999999C880.5000000000001 314.5499999999999 885.4500000000002 319.4999999999999 890.2500000000001 324.5999999999999C862.1500000000001 374.2499999999998 854.7500000000001 430.9499999999998 877.1500000000001 485.1999999999998C899.6500000000001 539.3999999999999 945.0000000000002 574.2499999999999 1000.0000000000002 589.4999999999999C1000.2000000000002 596.4999999999999 1000.2000000000002 603.4999999999999 1000.0000000000002 610.4999999999999C945.0000000000002 625.7499999999999 899.6500000000001 660.5999999999999 877.1500000000001 714.8C854.7 769.0499999999998 862.1500000000001 825.8 890.2500000000001 875.3999999999999A396.75 396.75 0 0 1 875.4000000000001 890.2499999999998C825.7500000000002 862.1499999999999 769.0500000000002 854.7499999999998 714.8000000000002 877.1499999999999C660.6 899.6500000000001 625.75 945 610.5 1000A396.75 396.75 0 0 1 589.5 1000C574.2500000000001 945 539.4 899.6500000000001 485.2 877.1500000000001C430.95 854.7 374.2 862.1500000000001 324.6 890.25C319.5 885.45 314.5500000000001 880.5 309.7500000000001 875.4C337.8500000000001 825.75 345.2500000000001 769.05 322.85 714.8C300.35 660.6 255 625.75 200 610.5C199.8 603.5 199.8 596.5000000000001 200 589.5zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"settings-6-fill":{"path":["M0 0h24v24H0z","M17.5 2.474L23 12l-5.5 9.526h-11L1 12l5.5-9.526h11zM8.634 8.17l5 8.66 1.732-1-5-8.66-1.732 1z"],"unicode":"","glyph":"M875 1076.3L1150 600L875 123.7000000000001H325L50 600L325 1076.3H875zM431.7000000000001 791.5L681.7 358.5000000000001L768.3 408.5000000000001L518.3 841.5000000000001L431.7000000000001 791.5000000000001z","horizAdvX":"1200"},"settings-6-line":{"path":["M0 0h24v24H0z","M17.5 2.474L23 12l-5.5 9.526h-11L1 12l5.5-9.526h11zm-1.155 2h-8.69L3.309 12l4.346 7.526h8.69L20.691 12l-4.346-7.526zM8.634 8.17l1.732-1 5 8.66-1.732 1-5-8.66z"],"unicode":"","glyph":"M875 1076.3L1150 600L875 123.7000000000001H325L50 600L325 1076.3H875zM817.25 976.3H382.75L165.45 600L382.75 223.7000000000001H817.25L1034.55 600L817.25 976.3zM431.7000000000001 791.5L518.3 841.5L768.3 408.5L681.7 358.5000000000001L431.7000000000001 791.5000000000001z","horizAdvX":"1200"},"settings-fill":{"path":["M0 0h24v24H0z","M12 1l9.5 5.5v11L12 23l-9.5-5.5v-11L12 1zm0 14a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M600 1150L1075 875V325L600 50L125 325V875L600 1150zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"settings-line":{"path":["M0 0h24v24H0z","M12 1l9.5 5.5v11L12 23l-9.5-5.5v-11L12 1zm0 2.311L4.5 7.653v8.694l7.5 4.342 7.5-4.342V7.653L12 3.311zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 1150L1075 875V325L600 50L125 325V875L600 1150zM600 1034.45L225 817.35V382.65L600 165.55L975 382.65V817.35L600 1034.45zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"shape-2-fill":{"path":["M0 0h24v24H0z","M2 2h5v5H2V2zm0 15h5v5H2v-5zM17 2h5v5h-5V2zm0 15h5v5h-5v-5zM8 4h8v2H8V4zM4 8h2v8H4V8zm14 0h2v8h-2V8zM8 18h8v2H8v-2z"],"unicode":"","glyph":"M100 1100H350V850H100V1100zM100 350H350V100H100V350zM850 1100H1100V850H850V1100zM850 350H1100V100H850V350zM400 1000H800V900H400V1000zM200 800H300V400H200V800zM900 800H1000V400H900V800zM400 300H800V200H400V300z","horizAdvX":"1200"},"shape-2-line":{"path":["M0 0h24v24H0z","M20 16h2v6h-6v-2H8v2H2v-6h2V8H2V2h6v2h8V2h6v6h-2v8zm-2 0V8h-2V6H8v2H6v8h2v2h8v-2h2zM4 4v2h2V4H4zm0 14v2h2v-2H4zM18 4v2h2V4h-2zm0 14v2h2v-2h-2z"],"unicode":"","glyph":"M1000 400H1100V100H800V200H400V100H100V400H200V800H100V1100H400V1000H800V1100H1100V800H1000V400zM900 400V800H800V900H400V800H300V400H400V300H800V400H900zM200 1000V900H300V1000H200zM200 300V200H300V300H200zM900 1000V900H1000V1000H900zM900 300V200H1000V300H900z","horizAdvX":"1200"},"shape-fill":{"path":["M0 0h24v24H0z","M5 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm14 0a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 14a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM5 22a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM9 4h6v2H9V4zm0 14h6v2H9v-2zM4 9h2v6H4V9zm14 0h2v6h-2V9z"],"unicode":"","glyph":"M250 800A150 150 0 1 0 250 1100A150 150 0 0 0 250 800zM950 800A150 150 0 1 0 950 1100A150 150 0 0 0 950 800zM950 100A150 150 0 1 0 950 400A150 150 0 0 0 950 100zM250 100A150 150 0 1 0 250 400A150 150 0 0 0 250 100zM450 1000H750V900H450V1000zM450 300H750V200H450V300zM200 750H300V450H200V750zM900 750H1000V450H900V750z","horizAdvX":"1200"},"shape-line":{"path":["M0 0h24v24H0z","M7.83 20A3.001 3.001 0 1 1 4 16.17V7.83A3.001 3.001 0 1 1 7.83 4h8.34A3.001 3.001 0 1 1 20 7.83v8.34A3.001 3.001 0 1 1 16.17 20H7.83zm0-2h8.34A3.008 3.008 0 0 1 18 16.17V7.83A3.008 3.008 0 0 1 16.17 6H7.83A3.008 3.008 0 0 1 6 7.83v8.34A3.008 3.008 0 0 1 7.83 18zM5 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm14 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 14a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM5 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M391.5 200A150.04999999999998 150.04999999999998 0 1 0 200 391.4999999999999V808.5A150.04999999999998 150.04999999999998 0 1 0 391.5 1000H808.5000000000001A150.04999999999998 150.04999999999998 0 1 0 1000 808.5V391.4999999999999A150.04999999999998 150.04999999999998 0 1 0 808.5000000000001 200H391.5zM391.5 300H808.5000000000001A150.4 150.4 0 0 0 900 391.4999999999999V808.5A150.4 150.4 0 0 0 808.5000000000001 900H391.5A150.4 150.4 0 0 0 300 808.5V391.4999999999999A150.4 150.4 0 0 0 391.5 300zM250 900A50 50 0 1 1 250 1000A50 50 0 0 1 250 900zM950 900A50 50 0 1 1 950 1000A50 50 0 0 1 950 900zM950 200A50 50 0 1 1 950 300A50 50 0 0 1 950 200zM250 200A50 50 0 1 1 250 300A50 50 0 0 1 250 200z","horizAdvX":"1200"},"share-box-fill":{"path":["M0 0h24v24H0z","M10 3v2H5v14h14v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7.707 4.707L12 13.414 10.586 12l5.707-5.707L13 3h8v8l-3.293-3.293z"],"unicode":"","glyph":"M500 1050V950H250V250H950V500H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H500zM885.35 814.6500000000001L600 529.3000000000001L529.3000000000001 600L814.65 885.3499999999999L650 1050H1050V650L885.35 814.6500000000001z","horizAdvX":"1200"},"share-box-line":{"path":["M0 0h24v24H0z","M10 3v2H5v14h14v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7.586 2H13V3h8v8h-2V6.414l-7 7L10.586 12l7-7z"],"unicode":"","glyph":"M500 1050V950H250V250H950V500H1050V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050H500zM879.3 950H650V1050H1050V650H950V879.3L600 529.3000000000001L529.3000000000001 600L879.3 950z","horizAdvX":"1200"},"share-circle-fill":{"path":["M0 0h24v24H0z","M11 2.05v2.012A8.001 8.001 0 0 0 12 20a8.001 8.001 0 0 0 7.938-7h2.013c-.502 5.053-4.766 9-9.951 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm7.707 4.657L12 13.414 10.586 12l6.707-6.707L14 2h8v8l-3.293-3.293z"],"unicode":"","glyph":"M550 1097.5V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400.04999999999995 400.04999999999995 0 0 1 996.9 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM935.35 864.6500000000001L600 529.3000000000001L529.3000000000001 600L864.65 935.35L700 1100H1100V700L935.35 864.6500000000001z","horizAdvX":"1200"},"share-circle-line":{"path":["M0 0h24v24H0z","M11 2.05v2.012A8.001 8.001 0 0 0 12 20a8.001 8.001 0 0 0 7.938-7h2.013c-.502 5.053-4.766 9-9.951 9-5.523 0-10-4.477-10-10 0-5.185 3.947-9.449 9-9.95zm9 3.364l-8 8L10.586 12l8-8H14V2h8v8h-2V5.414z"],"unicode":"","glyph":"M550 1097.5V996.9A400.04999999999995 400.04999999999995 0 0 1 600 200A400.04999999999995 400.04999999999995 0 0 1 996.9 550H1097.55C1072.45 297.3499999999999 859.2500000000001 100 600 100C323.85 100 100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5zM1000 929.3L600 529.3000000000001L529.3000000000001 600L929.3 1000H700V1100H1100V700H1000V929.3z","horizAdvX":"1200"},"share-fill":{"path":["M0 0h24v24H0z","M13.576 17.271l-5.11-2.787a3.5 3.5 0 1 1 0-4.968l5.11-2.787a3.5 3.5 0 1 1 .958 1.755l-5.11 2.787a3.514 3.514 0 0 1 0 1.458l5.11 2.787a3.5 3.5 0 1 1-.958 1.755z"],"unicode":"","glyph":"M678.8000000000001 336.45L423.3000000000001 475.8A175 175 0 1 0 423.3000000000001 724.1999999999999L678.8000000000001 863.55A175 175 0 1 0 726.7 775.8L471.2 636.4499999999999A175.7 175.7 0 0 0 471.2 563.55L726.6999999999999 424.2A175 175 0 1 0 678.8 336.45z","horizAdvX":"1200"},"share-forward-2-fill":{"path":["M0 0h24v24H0z","M4 19h16v-5h2v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6h2v5zm8-9H9a5.992 5.992 0 0 0-4.854 2.473A8.003 8.003 0 0 1 12 6V2l8 6-8 6v-4z"],"unicode":"","glyph":"M200 250H1000V500H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V500H200V250zM600 700H450A299.6 299.6 0 0 1 207.3 576.35A400.15000000000003 400.15000000000003 0 0 0 600 900V1100L1000 800L600 500V700z","horizAdvX":"1200"},"share-forward-2-line":{"path":["M0 0h24v24H0z","M4 19h16v-5h2v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6h2v5zM16.172 7l-3.95-3.95 1.414-1.414L20 8l-6.364 6.364-1.414-1.414L16.172 9H5V7h11.172z"],"unicode":"","glyph":"M200 250H1000V500H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V500H200V250zM808.6 850L611.1 1047.5L681.8000000000001 1118.2L1000 800L681.8 481.8L611.1 552.5L808.6 750H250V850H808.6z","horizAdvX":"1200"},"share-forward-box-fill":{"path":["M0 0h24v24H0z","M9 3v2H4v14h16v-9h2v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7 2V1l7 6h-9a2 2 0 0 0-2 2v6h-2V9a4 4 0 0 1 4-4h2z"],"unicode":"","glyph":"M450 1050V950H200V250H1000V700H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H450zM800 950V1150L1150 850H700A100 100 0 0 1 600 750V450H500V750A200 200 0 0 0 700 950H800z","horizAdvX":"1200"},"share-forward-box-line":{"path":["M0 0h24v24H0z","M9 3v2H4v14h16v-9h2v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm9.95 2L16 2.05 17.414.636l5.34 5.34A.6.6 0 0 1 22.33 7H14a2 2 0 0 0-2 2v6h-2V9a4 4 0 0 1 4-4h4.95z"],"unicode":"","glyph":"M450 1050V950H200V250H1000V700H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H450zM947.5 950L800 1097.5L870.7 1168.2L1137.7 901.2A30 30 0 0 0 1116.5 850H700A100 100 0 0 1 600 750V450H500V750A200 200 0 0 0 700 950H947.5z","horizAdvX":"1200"},"share-forward-fill":{"path":["M0 0h24v24H0z","M13 14h-2a8.999 8.999 0 0 0-7.968 4.81A10.136 10.136 0 0 1 3 18C3 12.477 7.477 8 13 8V3l10 8-10 8v-5z"],"unicode":"","glyph":"M650 500H550A449.95000000000005 449.95000000000005 0 0 1 151.6 259.5000000000001A506.79999999999995 506.79999999999995 0 0 0 150 300C150 576.15 373.85 800 650 800V1050L1150 650L650 250V500z","horizAdvX":"1200"},"share-forward-line":{"path":["M0 0h24v24H0z","M13 14h-2a8.999 8.999 0 0 0-7.968 4.81A10.136 10.136 0 0 1 3 18C3 12.477 7.477 8 13 8V2.5L23.5 11 13 19.5V14zm-2-2h4v3.308L20.321 11 15 6.692V10h-2a7.982 7.982 0 0 0-6.057 2.773A10.988 10.988 0 0 1 11 12z"],"unicode":"","glyph":"M650 500H550A449.95000000000005 449.95000000000005 0 0 1 151.6 259.5000000000001A506.79999999999995 506.79999999999995 0 0 0 150 300C150 576.15 373.85 800 650 800V1075L1175 650L650 225V500zM550 600H750V434.6L1016.05 650L750 865.4V700H650A399.09999999999997 399.09999999999997 0 0 1 347.15 561.35A549.4000000000001 549.4000000000001 0 0 0 550 600z","horizAdvX":"1200"},"share-line":{"path":["M0 0h24v24H0z","M13.12 17.023l-4.199-2.29a4 4 0 1 1 0-5.465l4.2-2.29a4 4 0 1 1 .959 1.755l-4.2 2.29a4.008 4.008 0 0 1 0 1.954l4.199 2.29a4 4 0 1 1-.959 1.755zM6 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm11-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M656 348.85L446.05 463.35A200 200 0 1 0 446.05 736.5999999999999L656.05 851.0999999999999A200 200 0 1 0 703.9999999999999 763.3499999999999L493.9999999999999 648.85A200.4 200.4 0 0 0 493.9999999999999 551.15L703.9499999999999 436.65A200 200 0 1 0 656 348.9000000000001zM300 500A100 100 0 1 1 300 700A100 100 0 0 1 300 500zM850 800A100 100 0 1 1 850 1000A100 100 0 0 1 850 800zM850 200A100 100 0 1 1 850 400A100 100 0 0 1 850 200z","horizAdvX":"1200"},"shield-check-fill":{"path":["M0 0H24V24H0z","M12 1l8.217 1.826c.457.102.783.507.783.976v9.987c0 2.006-1.003 3.88-2.672 4.992L12 23l-6.328-4.219C4.002 17.668 3 15.795 3 13.79V3.802c0-.469.326-.874.783-.976L12 1zm4.452 7.222l-4.95 4.949-2.828-2.828-1.414 1.414L11.503 16l6.364-6.364-1.415-1.414z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7C1033.7 1053.6 1050 1033.35 1050 1009.9V510.5500000000001C1050 410.25 999.85 316.55 916.4 260.9500000000001L600 50L283.6 260.9500000000001C200.1 316.6 150 410.25 150 510.5V1009.9C150 1033.35 166.3 1053.6 189.15 1058.7L600 1150zM822.5999999999999 788.8999999999999L575.0999999999999 541.4499999999999L433.7 682.8499999999999L363 612.15L575.15 400L893.35 718.2L822.6000000000001 788.9000000000001z","horizAdvX":"1200"},"shield-check-line":{"path":["M0 0H24V24H0z","M12 1l8.217 1.826c.457.102.783.507.783.976v9.987c0 2.006-1.003 3.88-2.672 4.992L12 23l-6.328-4.219C4.002 17.668 3 15.795 3 13.79V3.802c0-.469.326-.874.783-.976L12 1zm0 2.049L5 4.604v9.185c0 1.337.668 2.586 1.781 3.328L12 20.597l5.219-3.48C18.332 16.375 19 15.127 19 13.79V4.604L12 3.05zm4.452 5.173l1.415 1.414L11.503 16 7.26 11.757l1.414-1.414 2.828 2.828 4.95-4.95z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7C1033.7 1053.6 1050 1033.35 1050 1009.9V510.5500000000001C1050 410.25 999.85 316.55 916.4 260.9500000000001L600 50L283.6 260.9500000000001C200.1 316.6 150 410.25 150 510.5V1009.9C150 1033.35 166.3 1053.6 189.15 1058.7L600 1150zM600 1047.55L250 969.8V510.55C250 443.7 283.4000000000001 381.25 339.05 344.15L600 170.1499999999999L860.95 344.15C916.6 381.25 950 443.65 950 510.5V969.8L600 1047.5zM822.5999999999999 788.9000000000001L893.3499999999999 718.2L575.15 400L363 612.15L433.7 682.85L575.0999999999999 541.45L822.5999999999999 788.95z","horizAdvX":"1200"},"shield-cross-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM11 10H8v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM550 700H400V600H550V450H650V600H800V700H650V850H550V700z","horizAdvX":"1200"},"shield-cross-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM11 10V7h2v3h3v2h-3v3h-2v-3H8v-2h3z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM550 700V850H650V700H800V600H650V450H550V600H400V700H550z","horizAdvX":"1200"},"shield-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7z","horizAdvX":"1200"},"shield-flash-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM13 10V5l-5 7h3v5l5-7h-3z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM650 700V950L400 600H550V350L800 700H650z","horizAdvX":"1200"},"shield-flash-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM13 10h3l-5 7v-5H8l5-7v5z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM650 700H800L550 350V600H400L650 950V700z","horizAdvX":"1200"},"shield-keyhole-fill":{"path":["M0 0h24v24H0z","M12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976L12 1zm0 6a2 2 0 0 0-1 3.732V15h2l.001-4.268A2 2 0 0 0 12 7z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7L600 1150zM600 850A100 100 0 0 1 550 663.4000000000001V450H650L650.05 663.4000000000001A100 100 0 0 1 600 850z","horizAdvX":"1200"},"shield-keyhole-line":{"path":["M0 0h24v24H0z","M12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976L12 1zm0 2.049L5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05zM12 7a2 2 0 0 1 1.001 3.732L13 15h-2v-4.268A2 2 0 0 1 12 7z"],"unicode":"","glyph":"M600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7L600 1150zM600 1047.55L250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5zM600 850A100 100 0 0 0 650.05 663.4000000000001L650 450H550V663.4000000000001A100 100 0 0 0 600 850z","horizAdvX":"1200"},"shield-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8z","horizAdvX":"1200"},"shield-star-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM12 13.5l2.939 1.545-.561-3.272 2.377-2.318-3.286-.478L12 6l-1.47 2.977-3.285.478 2.377 2.318-.56 3.272L12 13.5z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM600 525L746.95 447.75L718.9 611.35L837.75 727.25L673.4499999999999 751.15L600 900L526.5 751.15L362.25 727.25L481.1 611.35L453.1 447.75L600 525z","horizAdvX":"1200"},"shield-star-line":{"path":["M0 0h24v24H0z","M5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM12 13.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L12 6l1.47 2.977 3.285.478-2.377 2.318.56 3.272L12 13.5z"],"unicode":"","glyph":"M250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM600 525L453.05 447.75L481.1 611.35L362.25 727.25L526.5500000000001 751.15L600 900L673.5 751.15L837.7500000000001 727.25L718.9000000000002 611.35L746.9000000000002 447.75L600 525z","horizAdvX":"1200"},"shield-user-fill":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM12 11a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm-4.473 5h8.946a4.5 4.5 0 0 0-8.946 0z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM600 650A125 125 0 1 1 600 900A125 125 0 0 1 600 650zM376.35 400H823.65A225 225 0 0 1 376.35 400z","horizAdvX":"1200"},"shield-user-line":{"path":["M0 0h24v24H0z","M3.783 2.826L12 1l8.217 1.826a1 1 0 0 1 .783.976v9.987a6 6 0 0 1-2.672 4.992L12 23l-6.328-4.219A6 6 0 0 1 3 13.79V3.802a1 1 0 0 1 .783-.976zM5 4.604v9.185a4 4 0 0 0 1.781 3.328L12 20.597l5.219-3.48A4 4 0 0 0 19 13.79V4.604L12 3.05 5 4.604zM12 11a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm-4.473 5a4.5 4.5 0 0 1 8.946 0H7.527z"],"unicode":"","glyph":"M189.15 1058.7L600 1150L1010.85 1058.7A50 50 0 0 0 1050 1009.9V510.5500000000001A300 300 0 0 0 916.4 260.9500000000001L600 50L283.6 260.9500000000001A300 300 0 0 0 150 510.5V1009.9A50 50 0 0 0 189.15 1058.7zM250 969.8V510.55A200 200 0 0 1 339.05 344.15L600 170.1499999999999L860.95 344.15A200 200 0 0 1 950 510.5V969.8L600 1047.5L250 969.8zM600 650A125 125 0 1 0 600 900A125 125 0 0 0 600 650zM376.35 400A225 225 0 0 0 823.65 400H376.35z","horizAdvX":"1200"},"ship-2-fill":{"path":["M0 0h24v24H0z","M9 4h5.446a1 1 0 0 1 .848.47L18.75 10h4.408a.5.5 0 0 1 .439.74l-3.937 7.217A4.992 4.992 0 0 1 15 16 4.992 4.992 0 0 1 11 18a4.992 4.992 0 0 1-4-2 4.992 4.992 0 0 1-4.55 1.97l-1.236-6.791A1 1 0 0 1 2.198 10H3V5a1 1 0 0 1 1-1h1V1h4v3zm-4 6h11.392l-2.5-4H5v4zM3 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 11 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 19 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 11 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 3 22H1v-2h2z"],"unicode":"","glyph":"M450 1000H722.3A50 50 0 0 0 764.7 976.5L937.5 700H1157.9A25 25 0 0 0 1179.8500000000001 663L983 302.15A249.60000000000002 249.60000000000002 0 0 0 750 400A249.60000000000002 249.60000000000002 0 0 0 550 300A249.60000000000002 249.60000000000002 0 0 0 350 400A249.60000000000002 249.60000000000002 0 0 0 122.5 301.5L60.7 641.0500000000001A50 50 0 0 0 109.9 700H150V950A50 50 0 0 0 200 1000H250V1150H450V1000zM250 700H819.6L694.6 900H250V700zM150 200A298.9 298.9 0 0 1 350 276.4A298.9 298.9 0 0 1 550 200A298.9 298.9 0 0 1 750 276.4A298.9 298.9 0 0 1 950 200H1050V100H950A398.15 398.15 0 0 0 750 153.5A398.15 398.15 0 0 0 550 100A398.15 398.15 0 0 0 350 153.5A398.15 398.15 0 0 0 150 100H50V200H150z","horizAdvX":"1200"},"ship-2-line":{"path":["M0 0h24v24H0z","M9 4h5.446a1 1 0 0 1 .848.47L18.75 10h4.408a.5.5 0 0 1 .439.74L19.637 18H19a6.01 6.01 0 0 1-1.535-.198L20.63 12H3.4l1.048 5.824A6.013 6.013 0 0 1 3 18h-.545l-1.24-6.821A1 1 0 0 1 2.197 10H3V5a1 1 0 0 1 1-1h1V1h4v3zm-4 6h11.392l-2.5-4H5v4zM3 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 11 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 19 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 11 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 3 22H1v-2h2z"],"unicode":"","glyph":"M450 1000H722.3A50 50 0 0 0 764.7 976.5L937.5 700H1157.9A25 25 0 0 0 1179.8500000000001 663L981.85 300H950A300.5 300.5 0 0 0 873.25 309.9L1031.5 600H170L222.4 308.8000000000001A300.65000000000003 300.65000000000003 0 0 0 150 300H122.75L60.75 641.05A50 50 0 0 0 109.85 700H150V950A50 50 0 0 0 200 1000H250V1150H450V1000zM250 700H819.6L694.6 900H250V700zM150 200A298.9 298.9 0 0 1 350 276.4A298.9 298.9 0 0 1 550 200A298.9 298.9 0 0 1 750 276.4A298.9 298.9 0 0 1 950 200H1050V100H950A398.15 398.15 0 0 0 750 153.5A398.15 398.15 0 0 0 550 100A398.15 398.15 0 0 0 350 153.5A398.15 398.15 0 0 0 150 100H50V200H150z","horizAdvX":"1200"},"ship-fill":{"path":["M0 0h24v24H0z","M4 10.4V4a1 1 0 0 1 1-1h5V1h4v2h5a1 1 0 0 1 1 1v6.4l1.086.326a1 1 0 0 1 .682 1.2l-1.516 6.068A4.992 4.992 0 0 1 16 16 4.992 4.992 0 0 1 12 18a4.992 4.992 0 0 1-4-2 4.992 4.992 0 0 1-4.252 1.994l-1.516-6.068a1 1 0 0 1 .682-1.2L4 10.4zm2-.6L12 8l2.754.826 1.809.543L18 9.8V5H6v4.8zM4 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 12 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 20 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 12 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 4 22H2v-2h2z"],"unicode":"","glyph":"M200 680V1000A50 50 0 0 0 250 1050H500V1150H700V1050H950A50 50 0 0 0 1000 1000V680L1054.3 663.6999999999999A50 50 0 0 0 1088.3999999999999 603.7L1012.5999999999998 300.3A249.60000000000002 249.60000000000002 0 0 0 800 400A249.60000000000002 249.60000000000002 0 0 0 600 300A249.60000000000002 249.60000000000002 0 0 0 400 400A249.60000000000002 249.60000000000002 0 0 0 187.4 300.3L111.6 603.7A50 50 0 0 0 145.7 663.6999999999999L200 680zM300 710L600 800L737.6999999999999 758.7L828.15 731.55L900 710V950H300V710zM200 200A298.9 298.9 0 0 1 400 276.4A298.9 298.9 0 0 1 600 200A298.9 298.9 0 0 1 800 276.4A298.9 298.9 0 0 1 1000 200H1100V100H1000A398.15 398.15 0 0 0 800 153.5A398.15 398.15 0 0 0 600 100A398.15 398.15 0 0 0 400 153.5A398.15 398.15 0 0 0 200 100H100V200H200z","horizAdvX":"1200"},"ship-line":{"path":["M0 0h24v24H0z","M4 10.4V4a1 1 0 0 1 1-1h5V1h4v2h5a1 1 0 0 1 1 1v6.4l1.086.326a1 1 0 0 1 .682 1.2l-1.516 6.068a4.992 4.992 0 0 1-1.902-.272l1.25-5.352L12 10l-7.6 2.37 1.25 5.351a4.992 4.992 0 0 1-1.902.273l-1.516-6.068a1 1 0 0 1 .682-1.2L4 10.4zm2-.6L12 8l6 1.8V5H6v4.8zM4 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 12 20a5.978 5.978 0 0 0 4-1.528A5.978 5.978 0 0 0 20 20h2v2h-2a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 12 22a7.963 7.963 0 0 1-4-1.07A7.963 7.963 0 0 1 4 22H2v-2h2z"],"unicode":"","glyph":"M200 680V1000A50 50 0 0 0 250 1050H500V1150H700V1050H950A50 50 0 0 0 1000 1000V680L1054.3 663.6999999999999A50 50 0 0 0 1088.3999999999999 603.7L1012.5999999999998 300.3A249.60000000000002 249.60000000000002 0 0 0 917.4999999999998 313.9L979.9999999999998 581.5L600 700L220 581.5L282.5 313.9500000000001A249.60000000000002 249.60000000000002 0 0 0 187.4 300.3L111.6 603.7A50 50 0 0 0 145.7 663.6999999999999L200 680zM300 710L600 800L900 710V950H300V710zM200 200A298.9 298.9 0 0 1 400 276.4A298.9 298.9 0 0 1 600 200A298.9 298.9 0 0 1 800 276.4A298.9 298.9 0 0 1 1000 200H1100V100H1000A398.15 398.15 0 0 0 800 153.5A398.15 398.15 0 0 0 600 100A398.15 398.15 0 0 0 400 153.5A398.15 398.15 0 0 0 200 100H100V200H200z","horizAdvX":"1200"},"shirt-fill":{"path":["M0 0h24v24H0z","M7 4v7l5-2.5 5 2.5V4h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3zm5 4L7.5 3h9L12 8zm1 3.236l-1-.5-1 .5V20h2v-8.764zM15 14v2h4v-2h-4z"],"unicode":"","glyph":"M350 1000V650L600 775L850 650V1000H1000A50 50 0 0 0 1050 950V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H350zM600 800L375 1050H825L600 800zM650 638.1999999999999L600 663.1999999999999L550 638.1999999999999V200H650V638.1999999999999zM750 500V400H950V500H750z","horizAdvX":"1200"},"shirt-line":{"path":["M0 0h24v24H0z","M13 20h6v-4h-4v-2h4V6h-2v5l-4-1.6V20zm-2 0V9.4L7 11V6H5v14h6zM7 4V3h10v1h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3zm5 4l3.5-3h-7L12 8z"],"unicode":"","glyph":"M650 200H950V400H750V500H950V900H850V650L650 730V200zM550 200V730L350 650V900H250V200H550zM350 1000V1050H850V1000H1000A50 50 0 0 0 1050 950V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V950A50 50 0 0 0 200 1000H350zM600 800L775 950H425L600 800z","horizAdvX":"1200"},"shopping-bag-2-fill":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zM9 6H7v2a5 5 0 0 0 10 0V6h-2v2a3 3 0 0 1-6 0V6z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM450 900H350V800A250 250 0 0 1 850 800V900H750V800A150 150 0 0 0 450 800V900z","horizAdvX":"1200"},"shopping-bag-2-line":{"path":["M0 0h24v24H0z","M20 22H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1zm-1-2V4H5v16h14zM9 6v2a3 3 0 0 0 6 0V6h2v2A5 5 0 0 1 7 8V6h2z"],"unicode":"","glyph":"M1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100zM950 200V1000H250V200H950zM450 900V800A150 150 0 0 1 750 800V900H850V800A250 250 0 0 0 350 800V900H450z","horizAdvX":"1200"},"shopping-bag-3-fill":{"path":["M0 0h24v24H0z","M6.5 2h11a1 1 0 0 1 .8.4L21 6v15a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6l2.7-3.6a1 1 0 0 1 .8-.4zm12 4L17 4H7L5.5 6h13zM9 10H7v2a5 5 0 0 0 10 0v-2h-2v2a3 3 0 0 1-6 0v-2z"],"unicode":"","glyph":"M325 1100H875A50 50 0 0 0 915 1080L1050 900V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V900L285 1080A50 50 0 0 0 325 1100zM925 900L850 1000H350L275 900H925zM450 700H350V600A250 250 0 0 1 850 600V700H750V600A150 150 0 0 0 450 600V700z","horizAdvX":"1200"},"shopping-bag-3-line":{"path":["M0 0h24v24H0z","M6.5 2h11a1 1 0 0 1 .8.4L21 6v15a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6l2.7-3.6a1 1 0 0 1 .8-.4zM19 8H5v12h14V8zm-.5-2L17 4H7L5.5 6h13zM9 10v2a3 3 0 0 0 6 0v-2h2v2a5 5 0 0 1-10 0v-2h2z"],"unicode":"","glyph":"M325 1100H875A50 50 0 0 0 915 1080L1050 900V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V900L285 1080A50 50 0 0 0 325 1100zM950 800H250V200H950V800zM925 900L850 1000H350L275 900H925zM450 700V600A150 150 0 0 1 750 600V700H850V600A250 250 0 0 0 350 600V700H450z","horizAdvX":"1200"},"shopping-bag-fill":{"path":["M0 0h24v24H0z","M12 1a5 5 0 0 1 5 5v2h3a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3V6a5 5 0 0 1 5-5zm5 10h-2v1a1 1 0 0 0 1.993.117L17 12v-1zm-8 0H7v1a1 1 0 0 0 1.993.117L9 12v-1zm3-8a3 3 0 0 0-2.995 2.824L9 6v2h6V6a3 3 0 0 0-2.824-2.995L12 3z"],"unicode":"","glyph":"M600 1150A250 250 0 0 0 850 900V800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H350V900A250 250 0 0 0 600 1150zM850 650H750V600A50 50 0 0 1 849.65 594.15L850 600V650zM450 650H350V600A50 50 0 0 1 449.6500000000001 594.15L450 600V650zM600 1050A150 150 0 0 1 450.25 908.8L450 900V800H750V900A150 150 0 0 1 608.8 1049.75L600 1050z","horizAdvX":"1200"},"shopping-bag-line":{"path":["M0 0h24v24H0z","M7 8V6a5 5 0 1 1 10 0v2h3a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3zm0 2H5v10h14V10h-2v2h-2v-2H9v2H7v-2zm2-2h6V6a3 3 0 0 0-6 0v2z"],"unicode":"","glyph":"M350 800V900A250 250 0 1 0 850 900V800H1000A50 50 0 0 0 1050 750V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V750A50 50 0 0 0 200 800H350zM350 700H250V200H950V700H850V600H750V700H450V600H350V700zM450 800H750V900A150 150 0 0 1 450 900V800z","horizAdvX":"1200"},"shopping-basket-2-fill":{"path":["M0 0h24v24H0z","M15.366 3.438L18.577 9H22v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h3.422l3.212-5.562 1.732 1L7.732 9h8.535l-2.633-4.562 1.732-1zM13 13h-2v4h2v-4zm-4 0H7v4h2v-4zm8 0h-2v4h2v-4z"],"unicode":"","glyph":"M768.3 1028.1L928.8500000000003 750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H271.1L431.7000000000001 1028.1L518.3 978.1L386.6 750H813.35L681.7 978.1L768.3 1028.1zM650 550H550V350H650V550zM450 550H350V350H450V550zM850 550H750V350H850V550z","horizAdvX":"1200"},"shopping-basket-2-line":{"path":["M0 0h24v24H0z","M15.366 3.438L18.577 9H22v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h3.422l3.212-5.562 1.732 1L7.732 9h8.535l-2.633-4.562 1.732-1zM18.826 11H5.173l.667 8h12.319l.667-8zM13 13v4h-2v-4h2zm-4 0v4H7v-4h2zm8 0v4h-2v-4h2z"],"unicode":"","glyph":"M768.3 1028.1L928.8500000000003 750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H271.1L431.7000000000001 1028.1L518.3 978.1L386.6 750H813.35L681.7 978.1L768.3 1028.1zM941.3 650H258.65L292 250H907.95L941.3 650zM650 550V350H550V550H650zM450 550V350H350V550H450zM850 550V350H750V550H850z","horizAdvX":"1200"},"shopping-basket-fill":{"path":["M0 0h24v24H0z","M12 2a6 6 0 0 1 6 6v1h4v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h4V8a6 6 0 0 1 6-6zm1 11h-2v4h2v-4zm-4 0H7v4h2v-4zm8 0h-2v4h2v-4zm-5-9a4 4 0 0 0-3.995 3.8L8 8v1h8V8a4 4 0 0 0-3.8-3.995L12 4z"],"unicode":"","glyph":"M600 1100A300 300 0 0 0 900 800V750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H300V800A300 300 0 0 0 600 1100zM650 550H550V350H650V550zM450 550H350V350H450V550zM850 550H750V350H850V550zM600 1000A200 200 0 0 1 400.25 810L400 800V750H800V800A200 200 0 0 1 610 999.75L600 1000z","horizAdvX":"1200"},"shopping-basket-line":{"path":["M0 0h24v24H0z","M12 2a6 6 0 0 1 6 6v1h4v2h-1.167l-.757 9.083a1 1 0 0 1-.996.917H4.92a1 1 0 0 1-.996-.917L3.166 11H2V9h4V8a6 6 0 0 1 6-6zm6.826 9H5.173l.667 8h12.319l.667-8zM13 13v4h-2v-4h2zm-4 0v4H7v-4h2zm8 0v4h-2v-4h2zm-5-9a4 4 0 0 0-3.995 3.8L8 8v1h8V8a4 4 0 0 0-3.8-3.995L12 4z"],"unicode":"","glyph":"M600 1100A300 300 0 0 0 900 800V750H1100V650H1041.6499999999999L1003.7999999999998 195.8500000000001A50 50 0 0 0 953.9999999999998 150H246A50 50 0 0 0 196.2 195.8500000000001L158.3 650H100V750H300V800A300 300 0 0 0 600 1100zM941.3 650H258.65L292 250H907.95L941.3 650zM650 550V350H550V550H650zM450 550V350H350V550H450zM850 550V350H750V550H850zM600 1000A200 200 0 0 1 400.25 810L400 800V750H800V800A200 200 0 0 1 610 999.75L600 1000z","horizAdvX":"1200"},"shopping-cart-2-fill":{"path":["M0 0h24v24H0z","M4 6.414L.757 3.172l1.415-1.415L5.414 5h15.242a1 1 0 0 1 .958 1.287l-2.4 8a1 1 0 0 1-.958.713H6v2h11v2H5a1 1 0 0 1-1-1V6.414zM5.5 23a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm12 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M200 879.3L37.85 1041.4L108.6 1112.15L270.7 950H1032.8A50 50 0 0 0 1080.6999999999998 885.65L960.7 485.6500000000001A50 50 0 0 0 912.8 450.0000000000001H300V350H850V250H250A50 50 0 0 0 200 300V879.3zM275 50A75 75 0 1 0 275 200A75 75 0 0 0 275 50zM875 50A75 75 0 1 0 875 200A75 75 0 0 0 875 50z","horizAdvX":"1200"},"shopping-cart-2-line":{"path":["M0 0h24v24H0z","M4 6.414L.757 3.172l1.415-1.415L5.414 5h15.242a1 1 0 0 1 .958 1.287l-2.4 8a1 1 0 0 1-.958.713H6v2h11v2H5a1 1 0 0 1-1-1V6.414zM6 7v6h11.512l1.8-6H6zm-.5 16a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm12 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M200 879.3L37.85 1041.4L108.6 1112.15L270.7 950H1032.8A50 50 0 0 0 1080.6999999999998 885.65L960.7 485.6500000000001A50 50 0 0 0 912.8 450.0000000000001H300V350H850V250H250A50 50 0 0 0 200 300V879.3zM300 850V550H875.6L965.6 850H300zM275 50A75 75 0 1 0 275 200A75 75 0 0 0 275 50zM875 50A75 75 0 1 0 875 200A75 75 0 0 0 875 50z","horizAdvX":"1200"},"shopping-cart-fill":{"path":["M0 0h24v24H0z","M6 9h13.938l.5-2H8V5h13.72a1 1 0 0 1 .97 1.243l-2.5 10a1 1 0 0 1-.97.757H5a1 1 0 0 1-1-1V4H2V2h3a1 1 0 0 1 1 1v6zm0 14a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm12 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M300 750H996.9L1021.9 850H400V950H1086A50 50 0 0 0 1134.5 887.8499999999999L1009.4999999999998 387.8499999999999A50 50 0 0 0 961 349.9999999999998H250A50 50 0 0 0 200 399.9999999999998V1000H100V1100H250A50 50 0 0 0 300 1050V750zM300 50A100 100 0 1 0 300 250A100 100 0 0 0 300 50zM900 50A100 100 0 1 0 900 250A100 100 0 0 0 900 50z","horizAdvX":"1200"},"shopping-cart-line":{"path":["M0 0h24v24H0z","M4 16V4H2V2h3a1 1 0 0 1 1 1v12h12.438l2-8H8V5h13.72a1 1 0 0 1 .97 1.243l-2.5 10a1 1 0 0 1-.97.757H5a1 1 0 0 1-1-1zm2 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm12 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M200 400V1000H100V1100H250A50 50 0 0 0 300 1050V450H921.9L1021.9 850H400V950H1086A50 50 0 0 0 1134.5 887.8499999999999L1009.4999999999998 387.8499999999999A50 50 0 0 0 961 349.9999999999998H250A50 50 0 0 0 200 399.9999999999998zM300 50A100 100 0 1 0 300 250A100 100 0 0 0 300 50zM900 50A100 100 0 1 0 900 250A100 100 0 0 0 900 50z","horizAdvX":"1200"},"showers-fill":{"path":["M0 0h24v24H0z","M15 18H9v3H7v-3.252a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001v3h-2v-3zm-4 2h2v3h-2v-3z"],"unicode":"","glyph":"M750 300H450V150H350V312.5999999999999A400 400 0 1 0 822.8999999999999 845.0999999999999A275 275 0 1 0 875 300L850 299.95V149.9500000000001H750V299.95zM550 200H650V50H550V200z","horizAdvX":"1200"},"showers-line":{"path":["M0 0h24v24H0z","M5 16.93a8 8 0 1 1 11.458-9.831A5.5 5.5 0 0 1 19 17.793v-2.13a3.5 3.5 0 1 0-4-5.612V10a6 6 0 1 0-10 4.472v2.458zM7 16h2v4H7v-4zm8 0h2v4h-2v-4zm-4 3h2v4h-2v-4z"],"unicode":"","glyph":"M250 353.5A400 400 0 1 0 822.8999999999999 845.05A275 275 0 0 0 950 310.35V416.85A175 175 0 1 1 750 697.45V700A300 300 0 1 1 250 476.4V353.5zM350 400H450V200H350V400zM750 400H850V200H750V400zM550 250H650V50H550V250z","horizAdvX":"1200"},"shuffle-fill":{"path":["M0 0h24v24H0z","M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z"],"unicode":"","glyph":"M900 305.85V400L1150 250L900 100V204.5A450 450 0 0 0 550.15 472.75L550 473L549.85 472.7A450 450 0 0 0 136.25 200H100V300H136.25A350 350 0 0 1 457.95 512.15L495.6 600L457.95 687.85A350 350 0 0 1 136.25 900H100V1000H136.25A450 450 0 0 0 549.85 727.25L550 727L550.15 727.3A450 450 0 0 0 900 995.5V1100L1150 950L900 800V894.15A350 350 0 0 1 642.0500000000001 687.85L604.4 600L642.05 512.15A350 350 0 0 1 900 305.85z","horizAdvX":"1200"},"shuffle-line":{"path":["M0 0h24v24H0z","M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z"],"unicode":"","glyph":"M900 305.85V400L1150 250L900 100V204.5A450 450 0 0 0 550.15 472.75L550 473L549.85 472.7A450 450 0 0 0 136.25 200H100V300H136.25A350 350 0 0 1 457.95 512.15L495.6 600L457.95 687.85A350 350 0 0 1 136.25 900H100V1000H136.25A450 450 0 0 0 549.85 727.25L550 727L550.15 727.3A450 450 0 0 0 900 995.5V1100L1150 950L900 800V894.15A350 350 0 0 1 642.0500000000001 687.85L604.4 600L642.05 512.15A350 350 0 0 1 900 305.85z","horizAdvX":"1200"},"shut-down-fill":{"path":["M0 0h24v24H0z","M11 2.05V12h2V2.05c5.053.501 9 4.765 9 9.95 0 5.523-4.477 10-10 10S2 17.523 2 12c0-5.185 3.947-9.449 9-9.95z"],"unicode":"","glyph":"M550 1097.5V600H650V1097.5C902.65 1072.45 1100 859.25 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600C100 859.25 297.35 1072.45 550 1097.5z","horizAdvX":"1200"},"shut-down-line":{"path":["M0 0h24v24H0z","M6.265 3.807l1.147 1.639a8 8 0 1 0 9.176 0l1.147-1.639A9.988 9.988 0 0 1 22 12c0 5.523-4.477 10-10 10S2 17.523 2 12a9.988 9.988 0 0 1 4.265-8.193zM11 12V2h2v10h-2z"],"unicode":"","glyph":"M313.25 1009.65L370.6 927.7A400 400 0 1 1 829.4000000000001 927.7L886.75 1009.65A499.4 499.4 0 0 0 1100 600C1100 323.85 876.15 100 600 100S100 323.85 100 600A499.4 499.4 0 0 0 313.25 1009.65zM550 600V1100H650V600H550z","horizAdvX":"1200"},"side-bar-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm6 2v14h11V5H9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM450 950V250H1000V950H450z","horizAdvX":"1200"},"side-bar-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5 2H4v14h4V5zm2 0v14h10V5H10z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM400 950H200V250H400V950zM500 950V250H1000V950H500z","horizAdvX":"1200"},"signal-tower-fill":{"path":["M0 0h24v24H0z","M6.116 20.087A9.986 9.986 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.986 9.986 0 0 1-4.116 8.087l-1.015-1.739a8 8 0 1 0-9.738 0l-1.015 1.739zm2.034-3.485a6 6 0 1 1 7.7 0l-1.03-1.766a4 4 0 1 0-5.64 0l-1.03 1.766zM11 13h2l1 9h-4l1-9z"],"unicode":"","glyph":"M305.8 195.65A499.30000000000007 499.30000000000007 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.30000000000007 499.30000000000007 0 0 0 894.2 195.65L843.45 282.6A400 400 0 1 1 356.55 282.6L305.8 195.65zM407.5 369.9A300 300 0 1 0 792.4999999999999 369.9L740.9999999999999 458.1999999999999A200 200 0 1 1 459 458.1999999999999L407.5 369.9zM550 550H650L700 100H500L550 550z","horizAdvX":"1200"},"signal-tower-line":{"path":["M0 0h24v24H0z","M6.116 20.087A9.986 9.986 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.986 9.986 0 0 1-4.116 8.087l-1.015-1.739a8 8 0 1 0-9.738 0l-1.015 1.739zm2.034-3.485a6 6 0 1 1 7.7 0l-1.03-1.766a4 4 0 1 0-5.64 0l-1.03 1.766zM11 13h2v9h-2v-9z"],"unicode":"","glyph":"M305.8 195.65A499.30000000000007 499.30000000000007 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600A499.30000000000007 499.30000000000007 0 0 0 894.2 195.65L843.45 282.6A400 400 0 1 1 356.55 282.6L305.8 195.65zM407.5 369.9A300 300 0 1 0 792.4999999999999 369.9L740.9999999999999 458.1999999999999A200 200 0 1 1 459 458.1999999999999L407.5 369.9zM550 550H650V100H550V550z","horizAdvX":"1200"},"signal-wifi-1-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392l5.108 6.324C9.698 13.256 10.818 13 12 13c1.181 0 2.303.256 3.312.716L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L434.3999999999999 514.2C484.9 537.2 540.9 550 600 550C659.0500000000001 550 715.1500000000001 537.2 765.6 514.2L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-1-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 12c-.693 0-1.367.117-2 .34l2 2.477 2-2.477c-.63-.22-1.307-.34-2-.34zm0-10c-3.028 0-5.923.842-8.42 2.392l5.108 6.324C9.698 13.256 10.818 13 12 13c1.181 0 2.303.256 3.312.716L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 450C565.35 450 531.65 444.15 500 433L600 309.15L700 433C668.5 444 634.65 450 600 450zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L434.3999999999999 514.2C484.9 537.2 540.9 550 600 550C659.0500000000001 550 715.1500000000001 537.2 765.6 514.2L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-2-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392l3.178 3.935C8.316 10.481 10.102 10 12 10c1.898 0 3.683.48 5.241 1.327L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L337.9 633.65C415.8 675.95 505.1 700 600 700C694.9 700 784.15 676 862.05 633.65L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-2-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 9c-1.42 0-2.764.33-3.959.915L12 17.817l3.958-4.902C14.764 12.329 13.42 12 12 12zm0-7c-3.028 0-5.923.842-8.42 2.392l3.178 3.935C8.316 10.481 10.102 10 12 10c1.898 0 3.683.48 5.241 1.327L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 600C529 600 461.8 583.5 402.05 554.25L600 309.15L797.9 554.25C738.1999999999999 583.55 671 600 600 600zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L337.9 633.65C415.8 675.95 505.1 700 600 700C694.9 700 784.15 676 862.05 633.65L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-3-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392l1.904 2.357C7.4 8.637 9.625 8 12 8s4.6.637 6.516 1.749L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L274.2 712.5500000000001C370 768.15 481.25 800 600 800S830.0000000000001 768.15 925.8 712.55L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-3-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 7c-1.898 0-3.683.48-5.241 1.327l5.24 6.49 5.242-6.49C15.683 10.48 13.898 10 12 10zm0-5c-3.028 0-5.923.842-8.42 2.392l1.904 2.357C7.4 8.637 9.625 8 12 8s4.6.637 6.516 1.749L20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 700C505.1 700 415.85 676 337.9500000000001 633.65L599.95 309.15L862.05 633.65C784.15 676 694.9 700 600 700zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L274.2 712.5500000000001C370 768.15 481.25 800 600 800S830.0000000000001 768.15 925.8 712.55L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-error-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L22.498 8H18v5.571L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm10 16v2h-2v-2h2zm0-9v7h-2v-7h2z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L1124.9 800H900V521.45L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM1100 250V150H1000V250H1100zM1100 700V350H1000V700H1100z","horizAdvX":"1200"},"signal-wifi-error-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996l-1.257 1.556C19.306 6.331 15.808 5 12 5c-3.089 0-5.973.875-8.419 2.392L12 17.817l6-7.429v3.183L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm10 16v2h-2v-2h2zm0-9v7h-2v-7h2z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L1102.65 772.4000000000001C965.3 883.45 790.4 950 600 950C445.55 950 301.35 906.25 179.05 830.4000000000001L600 309.15L900 680.6V521.45L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM1100 250V150H1000V250H1100zM1100 700V350H1000V700H1100z","horizAdvX":"1200"},"signal-wifi-fill":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050z","horizAdvX":"1200"},"signal-wifi-line":{"path":["M0 0H24V24H0z","M12 3c4.284 0 8.22 1.497 11.31 3.996L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm0 2c-3.028 0-5.923.842-8.42 2.392L12 17.817 20.42 7.39C17.922 5.841 15.027 5 12 5z"],"unicode":"","glyph":"M600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L600 150L34.5 850.15C189 975.15 385.7000000000001 1050 600 1050zM600 950C448.6 950 303.85 907.9 179 830.4000000000001L600 309.15L1021.0000000000002 830.5C896.1 907.95 751.3499999999999 950 600 950z","horizAdvX":"1200"},"signal-wifi-off-fill":{"path":["M0 0H24V24H0z","M2.808 1.393l17.677 17.678-1.414 1.414-3.683-3.683L12 21 .69 6.997c.914-.74 1.902-1.391 2.95-1.942L1.394 2.808l1.415-1.415zM12 3c4.284 0 8.22 1.497 11.31 3.996l-5.407 6.693L7.724 3.511C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L769.3999999999999 359.8999999999999L600 150L34.5 850.15C80.2 887.1500000000001 129.6 919.7 182 947.25L69.7 1059.6L140.45 1130.35zM600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L895.1500000000001 515.55L386.2 1024.45C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"signal-wifi-off-line":{"path":["M0 0H24V24H0z","M2.808 1.393l17.677 17.678-1.414 1.414-3.683-3.682L12 21 .69 6.997c.914-.74 1.902-1.391 2.95-1.942L1.394 2.808l1.415-1.415zm.771 5.999L12 17.817l1.967-2.437-8.835-8.836c-.532.254-1.05.536-1.552.848zM12 3c4.284 0 8.22 1.497 11.31 3.996l-5.407 6.693-1.422-1.422 3.939-4.876C17.922 5.841 15.027 5 12 5c-.873 0-1.735.07-2.58.207L7.725 3.51C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L769.3999999999999 359.8499999999998L600 150L34.5 850.15C80.2 887.1500000000001 129.6 919.7 182 947.25L69.7 1059.6L140.45 1130.35zM178.95 830.4000000000001L600 309.15L698.35 431L256.6 872.8C230 860.1 204.1 846 179 830.4zM600 1050C814.1999999999999 1050 1011 975.15 1165.5 850.2L895.1500000000001 515.55L824.0500000000001 586.65L1021.0000000000002 830.45C896.1 907.95 751.3499999999999 950 600 950C556.35 950 513.25 946.5 471 939.65L386.25 1024.5C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"sim-card-2-fill":{"path":["M0 0h24v24H0z","M5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 16v-8H8v2h3v6h2zm-5-5v2h2v-2H8zm6 0v2h2v-2h-2zm0-3v2h2v-2h-2zm-6 6v2h2v-2H8zm6 0v2h2v-2h-2z"],"unicode":"","glyph":"M250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM650 300V700H400V600H550V300H650zM400 550V450H500V550H400zM700 550V450H800V550H700zM700 700V600H800V700H700zM400 400V300H500V400H400zM700 400V300H800V400H700z","horizAdvX":"1200"},"sim-card-2-line":{"path":["M0 0h24v24H0z","M6 4v16h12V7.828L14.172 4H6zM5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 8v8h-2v-6H8v-2h5zm-5 3h2v2H8v-2zm6 0h2v2h-2v-2zm0-3h2v2h-2v-2zm-6 6h2v2H8v-2zm6 0h2v2h-2v-2z"],"unicode":"","glyph":"M300 1000V200H900V808.5999999999999L708.6 1000H300zM250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM650 700V300H550V600H400V700H650zM400 550H500V450H400V550zM700 550H800V450H700V550zM700 700H800V600H700V700zM400 400H500V300H400V400zM700 400H800V300H700V400z","horizAdvX":"1200"},"sim-card-fill":{"path":["M0 0h24v24H0z","M5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm3 10v6h8v-6H8z"],"unicode":"","glyph":"M250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM400 600V300H800V600H400z","horizAdvX":"1200"},"sim-card-line":{"path":["M0 0h24v24H0z","M6 4v16h12V7.828L14.172 4H6zM5 2h10l4.707 4.707a1 1 0 0 1 .293.707V21a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm3 10h8v6H8v-6z"],"unicode":"","glyph":"M300 1000V200H900V808.5999999999999L708.6 1000H300zM250 1100H750L985.35 864.6500000000001A50 50 0 0 0 1000 829.3V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM400 600H800V300H400V600z","horizAdvX":"1200"},"single-quotes-l":{"path":["M0 0h24v24H0z","M9.583 17.321C8.553 16.227 8 15 8 13.011c0-3.5 2.457-6.637 6.03-8.188l.893 1.378c-3.335 1.804-3.987 4.145-4.247 5.621.537-.278 1.24-.375 1.929-.311 1.804.167 3.226 1.648 3.226 3.489a3.5 3.5 0 0 1-3.5 3.5c-1.073 0-2.099-.49-2.748-1.179z"],"unicode":"","glyph":"M479.15 333.95C427.6500000000001 388.65 400 450 400 549.45C400 724.45 522.85 881.3 701.5 958.8500000000003L746.1500000000001 889.95C579.4000000000001 799.75 546.8000000000001 682.7 533.8000000000001 608.9000000000001C560.6500000000001 622.8000000000001 595.8000000000001 627.6500000000001 630.2500000000001 624.45C720.4500000000002 616.1 791.5500000000002 542.0500000000001 791.5500000000002 450A175 175 0 0 0 616.5500000000002 275C562.9000000000001 275 511.6000000000001 299.4999999999999 479.1500000000001 333.95z","horizAdvX":"1200"},"single-quotes-r":{"path":["M0 0h24v24H0z","M14.417 6.679C15.447 7.773 16 9 16 10.989c0 3.5-2.457 6.637-6.03 8.188l-.893-1.378c3.335-1.804 3.987-4.145 4.247-5.621-.537.278-1.24.375-1.929.311C9.591 12.322 8.17 10.841 8.17 9a3.5 3.5 0 0 1 3.5-3.5c1.073 0 2.099.49 2.748 1.179z"],"unicode":"","glyph":"M720.85 866.05C772.3499999999999 811.35 800 750 800 650.55C800 475.55 677.15 318.7 498.4999999999999 241.15L453.8499999999999 310.0500000000001C620.5999999999999 400.25 653.1999999999999 517.3 666.1999999999999 591.1C639.3499999999999 577.2 604.1999999999999 572.35 569.7499999999999 575.5500000000001C479.55 583.9000000000001 408.5 657.95 408.5 750A175 175 0 0 0 583.5 925C637.15 925 688.45 900.5 720.9 866.05z","horizAdvX":"1200"},"sip-fill":{"path":["M0 0h24v24H0z","M13.96 6.504l2.829-2.828a1 1 0 0 1 1.414 0l2.121 2.121a1 1 0 0 1 0 1.414l-2.828 2.829 1.767 1.768-1.414 1.414-7.07-7.071 1.413-1.414 1.768 1.767zM10.778 8.98l4.243 4.243L7.243 21H3v-4.243l7.778-7.778z"],"unicode":"","glyph":"M698 874.8L839.45 1016.2A50 50 0 0 0 910.15 1016.2L1016.2 910.15A50 50 0 0 0 1016.2 839.45L874.8000000000001 698L963.15 609.6L892.45 538.9L538.95 892.45L609.6 963.15L698 874.8zM538.9 751L751.0500000000001 538.8499999999999L362.1500000000001 150H150V362.1500000000001L538.9 751.0500000000001z","horizAdvX":"1200"},"sip-line":{"path":["M0 0h24v24H0z","M6.457 18.957l8.564-8.564-1.414-1.414-8.564 8.564 1.414 1.414zm5.735-11.392l-1.414-1.414 1.414-1.414 1.768 1.767 2.829-2.828a1 1 0 0 1 1.414 0l2.121 2.121a1 1 0 0 1 0 1.414l-2.828 2.829 1.767 1.768-1.414 1.414-1.414-1.414L7.243 21H3v-4.243l9.192-9.192z"],"unicode":"","glyph":"M322.85 252.15L751.0500000000001 680.3499999999999L680.35 751.05L252.1500000000001 322.85L322.85 252.15zM609.6 821.75L538.9 892.4499999999999L609.6 963.1499999999997L698 874.8L839.45 1016.2A50 50 0 0 0 910.15 1016.2L1016.2 910.1499999999997A50 50 0 0 0 1016.2 839.4499999999999L874.8000000000001 698L963.15 609.5999999999999L892.45 538.9L821.7499999999999 609.5999999999999L362.1500000000001 150H150V362.1500000000001L609.6 821.7500000000001z","horizAdvX":"1200"},"skip-back-fill":{"path":["M0 0h24v24H0z","M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333z"],"unicode":"","glyph":"M400 633.35L911.15 974.1A25 25 0 0 0 950 953.3V246.7000000000001A25 25 0 0 0 911.15 225.9000000000001L400 566.65V250A50 50 0 0 0 300 250V950A50 50 0 1 0 400 950V633.35z","horizAdvX":"1200"},"skip-back-line":{"path":["M0 0h24v24H0z","M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333zm9 4.93V7.737L10.606 12 17 16.263z"],"unicode":"","glyph":"M400 633.35L911.15 974.1A25 25 0 0 0 950 953.3V246.7000000000001A25 25 0 0 0 911.15 225.9000000000001L400 566.65V250A50 50 0 0 0 300 250V950A50 50 0 1 0 400 950V633.35zM850 386.8500000000002V813.15L530.3 600L850 386.8499999999999z","horizAdvX":"1200"},"skip-back-mini-fill":{"path":["M0 0h24v24H0z","M7 6a1 1 0 0 1 1 1v10a1 1 0 0 1-2 0V7a1 1 0 0 1 1-1zm2.079 6.408a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M350 900A50 50 0 0 0 400 850V350A50 50 0 0 0 300 350V850A50 50 0 0 0 350 900zM453.95 579.5999999999999A25 25 0 0 0 453.95 620.4L810.6 872.1999999999999A25 25 0 0 0 850 851.75V348.25A25 25 0 0 0 810.6 327.8000000000001L453.95 579.6z","horizAdvX":"1200"},"skip-back-mini-line":{"path":["M0 0h24v24H0z","M7 6a1 1 0 0 1 1 1v10a1 1 0 0 1-2 0V7a1 1 0 0 1 1-1zm8 8.14V9.86L11.968 12 15 14.14zm-5.921-1.732a.5.5 0 0 1 0-.816l7.133-5.036a.5.5 0 0 1 .788.409v10.07a.5.5 0 0 1-.788.409l-7.133-5.036z"],"unicode":"","glyph":"M350 900A50 50 0 0 0 400 850V350A50 50 0 0 0 300 350V850A50 50 0 0 0 350 900zM750 493V707L598.4 600L750 493zM453.95 579.5999999999999A25 25 0 0 0 453.95 620.4L810.6 872.1999999999999A25 25 0 0 0 850 851.75V348.25A25 25 0 0 0 810.6 327.8000000000001L453.95 579.6z","horizAdvX":"1200"},"skip-forward-fill":{"path":["M0 0h24v24H0z","M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333z"],"unicode":"","glyph":"M800 566.65L288.85 225.9000000000001A25 25 0 0 0 250 246.7000000000001V953.3A25 25 0 0 0 288.85 974.1L800 633.35V950A50 50 0 0 0 900 950V250A50 50 0 0 0 800 250V566.65z","horizAdvX":"1200"},"skip-forward-line":{"path":["M0 0h24v24H0z","M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333zm-9-4.93v8.526L13.394 12 7 7.737z"],"unicode":"","glyph":"M800 566.65L288.85 225.9000000000001A25 25 0 0 0 250 246.7000000000001V953.3A25 25 0 0 0 288.85 974.1L800 633.35V950A50 50 0 0 0 900 950V250A50 50 0 0 0 800 250V566.65zM350 813.15V386.8500000000002L669.7 600L350 813.15z","horizAdvX":"1200"},"skip-forward-mini-fill":{"path":["M0 0h24v24H0z","M7.788 17.444A.5.5 0 0 1 7 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M389.4000000000001 327.8000000000001A25 25 0 0 0 350 348.25V851.75A25 25 0 0 0 389.4000000000001 872.2L746.05 620.4000000000001A25 25 0 0 0 746.05 579.6L389.4 327.8000000000001zM800 850A50 50 0 0 0 900 850V350A50 50 0 1 0 800 350V850z","horizAdvX":"1200"},"skip-forward-mini-line":{"path":["M0 0h24v24H0z","M12.032 12L9 9.86v4.28L12.032 12zM7.5 17.535a.5.5 0 0 1-.5-.5V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036a.5.5 0 0 1-.288.091zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z"],"unicode":"","glyph":"M601.6 600L450 707V493L601.6 600zM375 323.25A25 25 0 0 0 350 348.25V851.75A25 25 0 0 0 389.4000000000001 872.2L746.05 620.4000000000001A25 25 0 0 0 746.05 579.6L389.4 327.8000000000001A25 25 0 0 0 375 323.25zM800 850A50 50 0 0 0 900 850V350A50 50 0 1 0 800 350V850z","horizAdvX":"1200"},"skull-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600V411.8000000000001A100 100 0 0 0 1044.6999999999998 322.3499999999999L900 250V200A150 150 0 0 0 758.8 50.25L747.5 50A125 125 0 0 1 749.7 66.5L750 75V100A100 100 0 0 1 657.5 199.75L650 200H550A100 100 0 0 1 450.25 107.5L450 100V75C450 66.4500000000001 450.85 58.0500000000002 452.5000000000001 50H450A150 150 0 0 0 300 200V250L155.3 322.3499999999999A100 100 0 0 0 100 411.85V600C100 876.15 323.85 1100 600 1100zM400 650A100 100 0 1 1 400 450A100 100 0 0 1 400 650zM800 650A100 100 0 1 1 800 450A100 100 0 0 1 800 650z","horizAdvX":"1200"},"skull-2-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm0 2a8 8 0 0 0-7.996 7.75L4 12v3.764l4 2v1.591l.075-.084a3.992 3.992 0 0 1 2.723-1.266L11 18l2.073.001.223.01c.999.074 1.89.51 2.55 1.177l.154.167v-1.591l4-2V12a8 8 0 0 0-8-8zm-4 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm8 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600V411.8000000000001A100 100 0 0 0 1044.6999999999998 322.3499999999999L900 250V200A150 150 0 0 0 758.8 50.25L747.5 50A125 125 0 0 1 749.7 66.5L750 75V100A100 100 0 0 1 657.5 199.75L650 200H550A100 100 0 0 1 450.25 107.5L450 100V75C450 66.4500000000001 450.85 58.0500000000002 452.5000000000001 50H450A150 150 0 0 0 300 200V250L155.3 322.3499999999999A100 100 0 0 0 100 411.85V600C100 876.15 323.85 1100 600 1100zM600 1000A400 400 0 0 1 200.2 612.5L200 600V411.8000000000001L400 311.8000000000001V232.25L403.75 236.45A199.60000000000002 199.60000000000002 0 0 0 539.8999999999999 299.7499999999999L550 300L653.65 299.95L664.8000000000001 299.4499999999998C714.7500000000001 295.7499999999998 759.3000000000001 273.9499999999998 792.3 240.5999999999999L800 232.2499999999998V311.7999999999999L1000 411.7999999999999V600A400 400 0 0 1 600 1000zM400 650A100 100 0 1 0 400 450A100 100 0 0 0 400 650zM800 650A100 100 0 1 0 800 450A100 100 0 0 0 800 650z","horizAdvX":"1200"},"skull-fill":{"path":["M0 0h24v24H0z","M18 18v3a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-3H3a1 1 0 0 1-1-1v-5C2 6.477 6.477 2 12 2s10 4.477 10 10v5a1 1 0 0 1-1 1h-3zM7.5 14a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M900 300V150A50 50 0 0 0 850 100H350A50 50 0 0 0 300 150V300H150A50 50 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V350A50 50 0 0 0 1050 300H900zM375 500A75 75 0 1 1 375 650A75 75 0 0 1 375 500zM825 500A75 75 0 1 1 825 650A75 75 0 0 1 825 500z","horizAdvX":"1200"},"skull-line":{"path":["M0 0h24v24H0z","M20 12a8 8 0 1 0-16 0v4h3a1 1 0 0 1 1 1v3h8v-3a1 1 0 0 1 1-1h3v-4zm-2 6v3a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-3H3a1 1 0 0 1-1-1v-5C2 6.477 6.477 2 12 2s10 4.477 10 10v5a1 1 0 0 1-1 1h-3zM7.5 14a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M1000 600A400 400 0 1 1 200 600V400H350A50 50 0 0 0 400 350V200H800V350A50 50 0 0 0 850 400H1000V600zM900 300V150A50 50 0 0 0 850 100H350A50 50 0 0 0 300 150V300H150A50 50 0 0 0 100 350V600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600V350A50 50 0 0 0 1050 300H900zM375 500A75 75 0 1 0 375 650A75 75 0 0 0 375 500zM825 500A75 75 0 1 0 825 650A75 75 0 0 0 825 500z","horizAdvX":"1200"},"skype-fill":{"path":["M0 0h24v24H0z","M13.31 20.4a8.5 8.5 0 0 1-9.71-9.71 5.25 5.25 0 0 1 7.09-7.09 8.5 8.5 0 0 1 9.71 9.71 5.25 5.25 0 0 1-7.09 7.09zm-1.258-3.244h-.04c2.872 0 4.303-1.386 4.303-3.243 0-1.198-.551-2.471-2.726-2.958l-1.983-.44c-.755-.172-1.622-.4-1.622-1.115s.62-1.213 1.724-1.213c2.23 0 2.027 1.528 3.131 1.528.576 0 1.093-.342 1.093-.93 0-1.37-2.197-2.4-4.056-2.4-2.021 0-4.173.859-4.173 3.144 0 1.098.394 2.27 2.56 2.813l2.689.671c.816.202 1.018.659 1.018 1.072 0 .687-.684 1.358-1.918 1.358-2.417 0-2.078-1.857-3.374-1.857-.58 0-1.003.398-1.003.971 0 1.114 1.352 2.598 4.377 2.598z"],"unicode":"","glyph":"M665.5 180.0000000000001A424.99999999999994 424.99999999999994 0 0 0 180 665.5000000000001A262.5 262.5 0 0 0 534.5 1020.0000000000002A424.99999999999994 424.99999999999994 0 0 0 1019.9999999999998 534.5000000000001A262.5 262.5 0 0 0 665.4999999999999 180.0000000000001zM602.6 342.2000000000001H600.6C744.2 342.2000000000001 815.7500000000001 411.5 815.7500000000001 504.35C815.7500000000001 564.2500000000001 788.2 627.9000000000001 679.4500000000002 652.2500000000001L580.3000000000001 674.2500000000001C542.5500000000001 682.8500000000001 499.2000000000001 694.25 499.2000000000001 730S530.2 790.6500000000001 585.4000000000001 790.6500000000001C696.9000000000001 790.6500000000001 686.7500000000001 714.2500000000001 741.9500000000002 714.2500000000001C770.7500000000001 714.2500000000001 796.6000000000001 731.3500000000001 796.6000000000001 760.75C796.6000000000001 829.2500000000001 686.7500000000001 880.7500000000001 593.8000000000001 880.7500000000001C492.75 880.7500000000001 385.1500000000001 837.8000000000002 385.1500000000001 723.5500000000001C385.1500000000001 668.6500000000001 404.8500000000001 610.0500000000001 513.1500000000001 582.9000000000001L647.6000000000001 549.3500000000001C688.4000000000001 539.2500000000001 698.5000000000001 516.4000000000001 698.5000000000001 495.7500000000001C698.5000000000001 461.4000000000002 664.3000000000002 427.8500000000002 602.6000000000001 427.8500000000002C481.7500000000002 427.8500000000002 498.7000000000002 520.7 433.9000000000002 520.7C404.9000000000002 520.7 383.7500000000001 500.8000000000001 383.7500000000001 472.1500000000001C383.7500000000001 416.4500000000001 451.3500000000001 342.2500000000001 602.6000000000001 342.2500000000001z","horizAdvX":"1200"},"skype-line":{"path":["M0 0h24v24H0z","M13.004 18.423a2 2 0 0 1 1.237.207 3.25 3.25 0 0 0 4.389-4.389 2 2 0 0 1-.207-1.237 6.5 6.5 0 0 0-7.427-7.427 2 2 0 0 1-1.237-.207A3.25 3.25 0 0 0 5.37 9.76a2 2 0 0 1 .207 1.237 6.5 6.5 0 0 0 7.427 7.427zM12 20.5a8.5 8.5 0 0 1-8.4-9.81 5.25 5.25 0 0 1 7.09-7.09 8.5 8.5 0 0 1 9.71 9.71 5.25 5.25 0 0 1-7.09 7.09c-.427.066-.865.1-1.31.1zm.053-3.5C9.25 17 8 15.62 8 14.586c0-.532.39-.902.928-.902 1.2 0 .887 1.725 3.125 1.725 1.143 0 1.776-.624 1.776-1.261 0-.384-.188-.808-.943-.996l-2.49-.623c-2.006-.504-2.37-1.592-2.37-2.612C8.026 7.797 10.018 7 11.89 7c1.72 0 3.756.956 3.756 2.228 0 .545-.48.863-1.012.863-1.023 0-.835-1.418-2.9-1.418-1.023 0-1.596.462-1.596 1.126 0 .663.803.876 1.502 1.035l1.836.409C15.49 11.695 16 12.876 16 13.989 16 15.713 14.675 17 12.015 17h.038z"],"unicode":"","glyph":"M650.1999999999999 278.8500000000002A100 100 0 0 0 712.05 268.5A162.5 162.5 0 0 1 931.5 487.95A100 100 0 0 0 921.1499999999997 549.8000000000001A325 325 0 0 1 549.8 921.15A100 100 0 0 0 487.9499999999999 931.5A162.5 162.5 0 0 1 268.5 712A100 100 0 0 0 278.85 650.15A325 325 0 0 1 650.1999999999999 278.8000000000001zM600 175A424.99999999999994 424.99999999999994 0 0 0 180 665.5A262.5 262.5 0 0 0 534.5 1020A424.99999999999994 424.99999999999994 0 0 0 1019.9999999999998 534.5A262.5 262.5 0 0 0 665.4999999999999 180.0000000000001C644.15 176.7000000000002 622.2499999999999 175 599.9999999999999 175zM602.6500000000001 350C462.5 350 400 419 400 470.6999999999999C400 497.3 419.5 515.8 446.4000000000001 515.8C506.4 515.8 490.7500000000001 429.55 602.6500000000001 429.55C659.8000000000001 429.55 691.45 460.75 691.45 492.5999999999999C691.45 511.8 682.05 532.9999999999999 644.3000000000001 542.4L519.8000000000001 573.55C419.5 598.7499999999999 401.3 653.15 401.3 704.1499999999999C401.3 810.1500000000001 500.9 850 594.5 850C680.5000000000001 850 782.3000000000001 802.2 782.3000000000001 738.6C782.3000000000001 711.35 758.3000000000001 695.45 731.7 695.45C680.5500000000001 695.45 689.9499999999999 766.35 586.7 766.35C535.5500000000001 766.35 506.9 743.25 506.9 710.05C506.9 676.9 547.0500000000001 666.25 582 658.3000000000001L673.8000000000001 637.85C774.5 615.25 800 556.2 800 500.55C800 414.35 733.75 350 600.75 350H602.6500000000001z","horizAdvX":"1200"},"slack-fill":{"path":["M0 0h24v24H0z","M6.527 14.514A1.973 1.973 0 0 1 4.56 16.48a1.973 1.973 0 0 1-1.967-1.967c0-1.083.884-1.968 1.967-1.968h1.968v1.968zm.992 0c0-1.083.884-1.968 1.967-1.968 1.083 0 1.968.885 1.968 1.968v4.927a1.973 1.973 0 0 1-1.968 1.967 1.973 1.973 0 0 1-1.967-1.967v-4.927zm1.967-7.987A1.973 1.973 0 0 1 7.52 4.56c0-1.083.884-1.967 1.967-1.967 1.083 0 1.968.884 1.968 1.967v1.968H9.486zm0 .992c1.083 0 1.968.884 1.968 1.967a1.973 1.973 0 0 1-1.968 1.968H4.56a1.973 1.973 0 0 1-1.967-1.968c0-1.083.884-1.967 1.967-1.967h4.927zm7.987 1.967c0-1.083.885-1.967 1.968-1.967s1.967.884 1.967 1.967a1.973 1.973 0 0 1-1.967 1.968h-1.968V9.486zm-.992 0a1.973 1.973 0 0 1-1.967 1.968 1.973 1.973 0 0 1-1.968-1.968V4.56c0-1.083.885-1.967 1.968-1.967s1.967.884 1.967 1.967v4.927zm-1.967 7.987c1.083 0 1.967.885 1.967 1.968a1.973 1.973 0 0 1-1.967 1.967 1.973 1.973 0 0 1-1.968-1.967v-1.968h1.968zm0-.992a1.973 1.973 0 0 1-1.968-1.967c0-1.083.885-1.968 1.968-1.968h4.927c1.083 0 1.967.885 1.967 1.968a1.973 1.973 0 0 1-1.967 1.967h-4.927z"],"unicode":"","glyph":"M326.35 474.3000000000001A98.65 98.65 0 0 0 228 376A98.65 98.65 0 0 0 129.65 474.35C129.65 528.5 173.85 572.75 228 572.75H326.4V474.35zM375.95 474.3000000000001C375.95 528.45 420.1500000000001 572.7 474.3 572.7C528.45 572.7 572.7 528.45 572.7 474.3000000000001V227.9500000000001A98.65 98.65 0 0 0 474.3 129.6000000000001A98.65 98.65 0 0 0 375.95 227.9500000000001V474.3000000000001zM474.3 873.6500000000001A98.65 98.65 0 0 0 376 972C376 1026.15 420.2 1070.35 474.35 1070.35C528.5 1070.35 572.75 1026.15 572.75 972V873.6H474.3zM474.3 824.05C528.45 824.05 572.7 779.8500000000001 572.7 725.7A98.65 98.65 0 0 0 474.3 627.3000000000001H228A98.65 98.65 0 0 0 129.65 725.7C129.65 779.8500000000001 173.85 824.0500000000001 228 824.0500000000001H474.3499999999999zM873.65 725.7C873.65 779.8500000000001 917.9 824.0500000000001 972.05 824.0500000000001S1070.3999999999999 779.8500000000001 1070.3999999999999 725.7A98.65 98.65 0 0 0 972.05 627.3000000000001H873.65V725.7zM824.05 725.7A98.65 98.65 0 0 0 725.6999999999999 627.3000000000001A98.65 98.65 0 0 0 627.2999999999998 725.7V972C627.2999999999998 1026.15 671.5499999999998 1070.35 725.6999999999999 1070.35S824.05 1026.15 824.05 972V725.6500000000001zM725.6999999999999 326.35C779.8499999999999 326.35 824.05 282.1 824.05 227.9500000000001A98.65 98.65 0 0 0 725.6999999999999 129.6000000000001A98.65 98.65 0 0 0 627.2999999999998 227.9500000000001V326.35H725.6999999999999zM725.6999999999999 375.9500000000001A98.65 98.65 0 0 0 627.2999999999998 474.3000000000001C627.2999999999998 528.4500000000002 671.5499999999998 572.7000000000002 725.6999999999999 572.7000000000002H972.0499999999998C1026.1999999999996 572.7000000000002 1070.3999999999996 528.4500000000002 1070.3999999999996 474.3000000000001A98.65 98.65 0 0 0 972.0499999999998 375.9500000000001H725.6999999999998z","horizAdvX":"1200"},"slack-line":{"path":["M0 0h24v24H0z","M14.5 3A1.5 1.5 0 0 1 16 4.5v5a1.5 1.5 0 0 1-3 0v-5A1.5 1.5 0 0 1 14.5 3zm-10 10H6v1.5A1.5 1.5 0 1 1 4.5 13zm8.5 5h1.5a1.5 1.5 0 1 1-1.5 1.5V18zm1.5-5h5a1.5 1.5 0 0 1 0 3h-5a1.5 1.5 0 0 1 0-3zm5-5a1.5 1.5 0 0 1 0 3H18V9.5A1.5 1.5 0 0 1 19.5 8zm-15 0h5a1.5 1.5 0 0 1 0 3h-5a1.5 1.5 0 0 1 0-3zm5-5A1.5 1.5 0 0 1 11 4.5V6H9.5a1.5 1.5 0 0 1 0-3zm0 10a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-3 0v-5A1.5 1.5 0 0 1 9.5 13z"],"unicode":"","glyph":"M725 1050A75 75 0 0 0 800 975V725A75 75 0 0 0 650 725V975A75 75 0 0 0 725 1050zM225 550H300V475A75 75 0 1 0 225 550zM650 300H725A75 75 0 1 0 650 225V300zM725 550H975A75 75 0 0 0 975 400H725A75 75 0 0 0 725 550zM975 800A75 75 0 0 0 975 650H900V725A75 75 0 0 0 975 800zM225 800H475A75 75 0 0 0 475 650H225A75 75 0 0 0 225 800zM475 1050A75 75 0 0 0 550 975V900H475A75 75 0 0 0 475 1050zM475 550A75 75 0 0 0 550 475V225A75 75 0 0 0 400 225V475A75 75 0 0 0 475 550z","horizAdvX":"1200"},"slice-fill":{"path":["M0 0h24v24H0z","M13.768 12.232l2.121 2.122c-4.596 4.596-10.253 6.01-13.788 5.303L17.657 4.1l2.121 2.12-6.01 6.011z"],"unicode":"","glyph":"M688.4000000000001 588.4000000000001L794.45 482.3000000000001C564.6500000000001 252.5 281.8000000000001 181.8000000000002 105.05 217.15L882.85 995L988.9 889L688.4 588.45z","horizAdvX":"1200"},"slice-line":{"path":["M0 0h24v24H0z","M15.69 12.918l1.769 1.768c-6.01 6.01-10.96 6.01-15.203 4.596L17.812 3.726l3.536 3.535-5.657 5.657zm-2.828 0l5.657-5.657-.707-.707L6.314 18.052c2.732.107 5.358-.907 8.267-3.416l-1.719-1.718z"],"unicode":"","glyph":"M784.5 554.1L872.9499999999999 465.7C572.45 165.2000000000001 324.95 165.2000000000001 112.8 235.9L890.6 1013.7L1067.4 836.95L784.5500000000002 554.1zM643.1 554.1L925.95 836.95L890.5999999999999 872.3L315.7 297.4C452.3 292.0500000000001 583.6 342.75 729.05 468.2L643.1 554.1z","horizAdvX":"1200"},"slideshow-2-fill":{"path":["M0 0h24v24H0z","M13 17v3h5v2H6v-2h5v-3H4a1 1 0 0 1-1-1V4H2V2h20v2h-1v12a1 1 0 0 1-1 1h-7zM10 6v7l5-3.5L10 6z"],"unicode":"","glyph":"M650 350V200H900V100H300V200H550V350H200A50 50 0 0 0 150 400V1000H100V1100H1100V1000H1050V400A50 50 0 0 0 1000 350H650zM500 900V550L750 725L500 900z","horizAdvX":"1200"},"slideshow-2-line":{"path":["M0 0h24v24H0z","M13 17v3h5v2H6v-2h5v-3H4a1 1 0 0 1-1-1V4H2V2h20v2h-1v12a1 1 0 0 1-1 1h-7zm-8-2h14V4H5v11zm5-9l5 3.5-5 3.5V6z"],"unicode":"","glyph":"M650 350V200H900V100H300V200H550V350H200A50 50 0 0 0 150 400V1000H100V1100H1100V1000H1050V400A50 50 0 0 0 1000 350H650zM250 450H950V1000H250V450zM500 900L750 725L500 550V900z","horizAdvX":"1200"},"slideshow-3-fill":{"path":["M0 0h24v24H0z","M13 18v2h4v2H7v-2h4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-8zM10 7.5v6l5-3-5-3z"],"unicode":"","glyph":"M650 300V200H850V100H350V200H550V300H150A50 50 0 0 0 100 350V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V350A50 50 0 0 0 1050 300H650zM500 825V525L750 675L500 825z","horizAdvX":"1200"},"slideshow-3-line":{"path":["M0 0h24v24H0z","M13 18v2h4v2H7v-2h4v-2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-8zM4 5v11h16V5H4zm6 2.5l5 3-5 3v-6z"],"unicode":"","glyph":"M650 300V200H850V100H350V200H550V300H150A50 50 0 0 0 100 350V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V350A50 50 0 0 0 1050 300H650zM200 950V400H1000V950H200zM500 825L750 675L500 525V825z","horizAdvX":"1200"},"slideshow-4-fill":{"path":["M0 0h24v24H0z","M8.17 3A3.001 3.001 0 0 1 11 1h2c1.306 0 2.417.835 2.83 2H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5.17zM10 9v6l5-3-5-3zm1-6a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2z"],"unicode":"","glyph":"M408.5 1050A150.04999999999998 150.04999999999998 0 0 0 550 1150H650C715.3000000000001 1150 770.85 1108.25 791.5 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H408.5zM500 750V450L750 600L500 750zM550 1050A50 50 0 0 1 550 950H650A50 50 0 0 1 650 1050H550z","horizAdvX":"1200"},"slideshow-4-line":{"path":["M0 0h24v24H0z","M8.17 3A3.001 3.001 0 0 1 11 1h2c1.306 0 2.417.835 2.83 2H21a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5.17zM4 5v14h16V5h-4.17A3.001 3.001 0 0 1 13 7h-2a3.001 3.001 0 0 1-2.83-2H4zm7-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm-1 6l5 3-5 3V9z"],"unicode":"","glyph":"M408.5 1050A150.04999999999998 150.04999999999998 0 0 0 550 1150H650C715.3000000000001 1150 770.85 1108.25 791.5 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H408.5zM200 950V250H1000V950H791.5A150.04999999999998 150.04999999999998 0 0 0 650 850H550A150.04999999999998 150.04999999999998 0 0 0 408.5 950H200zM550 1050A50 50 0 0 1 550 950H650A50 50 0 0 1 650 1050H550zM500 750L750 600L500 450V750z","horizAdvX":"1200"},"slideshow-fill":{"path":["M0 0h24v24H0z","M13 21v2h-2v-2H3a1 1 0 0 1-1-1V6h20v14a1 1 0 0 1-1 1h-8zM8 10a3 3 0 1 0 3 3H8v-3zm5 0v2h6v-2h-6zm0 4v2h6v-2h-6zM2 3h20v2H2V3z"],"unicode":"","glyph":"M650 150V50H550V150H150A50 50 0 0 0 100 200V900H1100V200A50 50 0 0 0 1050 150H650zM400 700A150 150 0 1 1 550 550H400V700zM650 700V600H950V700H650zM650 500V400H950V500H650zM100 1050H1100V950H100V1050z","horizAdvX":"1200"},"slideshow-line":{"path":["M0 0h24v24H0z","M13 21v2h-2v-2H3a1 1 0 0 1-1-1V6h20v14a1 1 0 0 1-1 1h-8zm-9-2h16V8H4v11zm9-9h5v2h-5v-2zm0 4h5v2h-5v-2zm-4-4v3h3a3 3 0 1 1-3-3zM2 3h20v2H2V3z"],"unicode":"","glyph":"M650 150V50H550V150H150A50 50 0 0 0 100 200V900H1100V200A50 50 0 0 0 1050 150H650zM200 250H1000V800H200V250zM650 700H900V600H650V700zM650 500H900V400H650V500zM450 700V550H600A150 150 0 1 0 450 700zM100 1050H1100V950H100V1050z","horizAdvX":"1200"},"smartphone-fill":{"path":["M0 0h24v24H0z","M6 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm6 15a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M300 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100zM600 350A50 50 0 1 1 600 250A50 50 0 0 1 600 350z","horizAdvX":"1200"},"smartphone-line":{"path":["M0 0h24v24H0z","M7 4v16h10V4H7zM6 2h12a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm6 15a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"],"unicode":"","glyph":"M350 1000V200H850V1000H350zM300 1100H900A50 50 0 0 0 950 1050V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V1050A50 50 0 0 0 300 1100zM600 350A50 50 0 1 0 600 250A50 50 0 0 0 600 350z","horizAdvX":"1200"},"snapchat-fill":{"path":["M0 0h24v24H0z","M11.871 21.764c-1.19 0-1.984-.561-2.693-1.056-.503-.357-.976-.696-1.533-.79a4.568 4.568 0 0 0-.803-.066c-.472 0-.847.071-1.114.125-.17.03-.312.058-.424.058-.116 0-.263-.032-.32-.228-.05-.16-.081-.312-.112-.459-.08-.37-.147-.597-.286-.62-1.489-.227-2.38-.57-2.554-.976-.014-.044-.031-.09-.031-.125-.01-.125.08-.227.205-.25 1.181-.196 2.242-.824 3.138-1.858.696-.803 1.035-1.579 1.066-1.663 0-.01.009-.01.009-.01.17-.351.205-.65.102-.895-.191-.46-.825-.656-1.257-.79-.111-.03-.205-.066-.285-.093-.37-.147-.986-.46-.905-.892.058-.312.472-.535.811-.535.094 0 .174.014.24.05.38.173.723.262 1.017.262.366 0 .54-.138.584-.182a24.93 24.93 0 0 0-.035-.593c-.09-1.365-.192-3.059.24-4.03 1.298-2.907 4.053-3.14 4.869-3.14L12.156 3h.05c.815 0 3.57.227 4.868 3.139.437.971.33 2.67.24 4.03l-.008.067c-.01.182-.023.356-.032.535.045.035.205.169.535.173.286-.008.598-.102.954-.263a.804.804 0 0 1 .312-.066c.125 0 .25.03.357.066h.009c.299.112.495.321.495.54.009.205-.152.517-.914.825-.08.03-.174.067-.285.093-.424.13-1.057.335-1.258.79-.111.24-.066.548.103.895 0 .01.009.01.009.01.049.124 1.337 3.049 4.204 3.526a.246.246 0 0 1 .205.25c0 .044-.009.089-.031.129-.174.41-1.057.744-2.555.976-.138.022-.205.25-.285.62a6.831 6.831 0 0 1-.112.459c-.044.147-.138.227-.298.227h-.023c-.102 0-.24-.013-.423-.049a5.285 5.285 0 0 0-1.115-.116c-.263 0-.535.023-.802.067-.553.09-1.03.433-1.534.79-.717.49-1.515 1.051-2.697 1.051h-.254z"],"unicode":"","glyph":"M593.5500000000001 111.8C534.0500000000001 111.8 494.35 139.8500000000001 458.9 164.6000000000001C433.7500000000001 182.4500000000001 410.1000000000001 199.4000000000002 382.2500000000001 204.1A228.39999999999998 228.39999999999998 0 0 1 342.1000000000001 207.4C318.5000000000001 207.4 299.7500000000001 203.8499999999999 286.4000000000001 201.15C277.9000000000001 199.65 270.8000000000001 198.25 265.2000000000001 198.25C259.4000000000001 198.25 252.0500000000001 199.85 249.2000000000001 209.6500000000001C246.7000000000001 217.6500000000001 245.1500000000001 225.2500000000001 243.6000000000001 232.6C239.6 251.1000000000002 236.2500000000001 262.4500000000002 229.3000000000001 263.6000000000002C154.8500000000001 274.9500000000002 110.3000000000001 292.1000000000002 101.6000000000001 312.4000000000001C100.9000000000001 314.6000000000002 100.0500000000001 316.9000000000001 100.0500000000001 318.6500000000001C99.5500000000001 324.9000000000001 104.0500000000001 330.0000000000001 110.3000000000001 331.1500000000001C169.3500000000001 340.9500000000002 222.4000000000001 372.3500000000002 267.2000000000001 424.0500000000001C302.0000000000001 464.2000000000002 318.9500000000001 503.0000000000001 320.5000000000001 507.2C320.5000000000001 507.7 320.9500000000001 507.7 320.9500000000001 507.7C329.4500000000001 525.2500000000001 331.2000000000001 540.2 326.0500000000001 552.45C316.5000000000001 575.4500000000002 284.8000000000001 585.2500000000001 263.2000000000001 591.9500000000002C257.6500000000001 593.45 252.9500000000001 595.2500000000001 248.9500000000001 596.6000000000001C230.4500000000001 603.9500000000002 199.6500000000001 619.6000000000001 203.7000000000001 641.2C206.6000000000001 656.8000000000001 227.3000000000001 667.95 244.2500000000001 667.95C248.9500000000001 667.95 252.9500000000001 667.2500000000001 256.2500000000001 665.45C275.2500000000001 656.8000000000001 292.4000000000001 652.35 307.1000000000001 652.35C325.4000000000001 652.35 334.1000000000001 659.25 336.3000000000001 661.45A1246.5000000000002 1246.5000000000002 0 0 1 334.55 691.1C330.0500000000001 759.3500000000001 324.9500000000001 844.0500000000001 346.5500000000001 892.6000000000001C411.4500000000001 1037.95 549.2 1049.6000000000001 590 1049.6000000000001L607.8000000000001 1050H610.3000000000001C651.0500000000001 1050 788.8000000000001 1038.65 853.7 893.05C875.5500000000002 844.5 870.2 759.55 865.7 691.55L865.3000000000001 688.2C864.8 679.0999999999999 864.1500000000001 670.4 863.7 661.4499999999999C865.9500000000002 659.6999999999999 873.9499999999999 652.9999999999999 890.45 652.8C904.7500000000002 653.1999999999999 920.35 657.9 938.15 665.9499999999999A40.2 40.2 0 0 0 953.7500000000002 669.25C960.0000000000002 669.25 966.2500000000002 667.75 971.6000000000003 665.9499999999999H972.0500000000002C987.0000000000002 660.3499999999999 996.8000000000002 649.9 996.8000000000002 638.95C997.2500000000002 628.7 989.2000000000002 613.1 951.1000000000003 597.7C947.1000000000003 596.2 942.4 594.35 936.8500000000003 593.0500000000001C915.65 586.55 884.0000000000001 576.3 873.9500000000002 553.5500000000001C868.4000000000001 541.5500000000001 870.6500000000002 526.1500000000001 879.1000000000003 508.8000000000001C879.1000000000003 508.3000000000001 879.5500000000002 508.3000000000001 879.5500000000002 508.3000000000001C882.0000000000002 502.1000000000001 946.4000000000002 355.85 1089.7500000000002 332A12.3 12.3 0 0 0 1100.0000000000002 319.5C1100.0000000000002 317.3 1099.5500000000002 315.0500000000001 1098.4500000000003 313.05C1089.7500000000002 292.55 1045.6000000000004 275.85 970.7000000000002 264.25C963.8000000000002 263.1500000000001 960.4500000000004 251.75 956.4500000000002 233.25A341.55 341.55 0 0 0 950.8500000000004 210.3C948.6500000000004 202.9500000000001 943.9500000000002 198.9499999999999 935.9500000000004 198.9499999999999H934.8000000000004C929.7000000000004 198.9499999999999 922.8000000000006 199.6 913.6500000000005 201.4A264.25 264.25 0 0 1 857.9000000000005 207.1999999999999C844.7500000000005 207.1999999999999 831.1500000000005 206.05 817.8000000000006 203.8499999999999C790.1500000000005 199.3499999999999 766.3000000000006 182.1999999999999 741.1000000000006 164.3499999999999C705.2500000000006 139.8500000000001 665.3500000000006 111.8 606.2500000000006 111.8H593.5500000000005z","horizAdvX":"1200"},"snapchat-line":{"path":["M0 0h24v24H0z","M15.396 10.58l.02-.249a32.392 32.392 0 0 0 .083-2.326c0-.87-.294-1.486-.914-2.063-.66-.614-1.459-.942-2.59-.942-1.137 0-1.958.335-2.51.888-.696.695-.958 1.218-.958 2.1 0 .521.061 1.994.096 2.618a2 2 0 0 1-.469 1.402c.055.098.105.204.153.317.3.771.198 1.543-.152 2.271-.392.818-.731 1.393-1.41 2.154a7.973 7.973 0 0 1-.642.643 1.999 1.999 0 0 1 .412.565 5.886 5.886 0 0 1 1.585.074c.81.146 1.324.434 2.194 1.061l.016.011.213.152c.619.44.877.546 1.473.546.609 0 .91-.121 1.523-.552l.207-.146c.876-.632 1.407-.928 2.231-1.076a6.664 6.664 0 0 1 1.559-.074 1.999 1.999 0 0 1 .417-.567 8.409 8.409 0 0 1-.616-.616 9.235 9.235 0 0 1-1.447-2.16c-.363-.749-.47-1.54-.137-2.321.04-.098.085-.19.132-.276a2 2 0 0 1-.469-1.435zm-10.315-.102c.419 0 .6.305 1.219.305.157 0 .26-.035.326-.066-.009-.156-.099-1.986-.099-2.729 0-1.688.72-2.69 1.543-3.514C8.893 3.65 10.175 3 11.996 3c1.82 0 3.066.653 3.952 1.478.886.825 1.551 1.93 1.551 3.528 0 1.555-.099 2.594-.108 2.716a.59.59 0 0 0 .279.065c.63 0 .63-.31 1.33-.31.685 0 .983.57.983.823 0 .621-.833.967-1.33 1.126-.369.117-.931.291-1.075.635-.074.174-.043.4.092.678.003.008 1.26 2.883 3.93 3.326.235.035.391.241.391.483 0 .332-.37.617-.726.782-.443.2-1.091.37-1.952.505-.043.078-.134.485-.235.887-.135.542-.801.366-.991.326A4.997 4.997 0 0 0 16.291 20c-.482.087-.913.378-1.395.726-.713.504-1.465 1.076-2.9 1.076-1.436 0-2.144-.572-2.857-1.076-.482-.348-.905-.637-1.396-.726-.898-.163-1.57.036-1.795.057-.226.02-.842.244-.996-.327-.045-.166-.191-.808-.235-.895-.856-.135-1.508-.313-1.952-.513-.365-.165-.726-.443-.726-.779 0-.235.158-.44.391-.482 2.644-.483 3.766-3.005 3.922-3.33.132-.276.161-.5.091-.679-.143-.343-.704-.513-1.073-.635-.105-.034-1.336-.373-1.336-1.117 0-.24.205-.573.582-.73a1.36 1.36 0 0 1 .465-.092z"],"unicode":"","glyph":"M769.8000000000001 671L770.8000000000001 683.45A1619.6000000000001 1619.6000000000001 0 0 1 774.95 799.75C774.95 843.25 760.25 874.05 729.25 902.9C696.25 933.6000000000003 656.3000000000001 950.0000000000002 599.75 950.0000000000002C542.9 950.0000000000002 501.85 933.2500000000002 474.2500000000001 905.6000000000003C439.4500000000001 870.8500000000001 426.35 844.7 426.35 800.6000000000001C426.35 774.5500000000001 429.4000000000001 700.9000000000001 431.1500000000001 669.7A100 100 0 0 0 407.7000000000001 599.6000000000001C410.4500000000001 594.7 412.9500000000001 589.4000000000001 415.3500000000002 583.7500000000001C430.3500000000002 545.2 425.2500000000001 506.6000000000001 407.7500000000002 470.2000000000002C388.1500000000002 429.3000000000002 371.2000000000002 400.5500000000002 337.2500000000001 362.5000000000003A398.65 398.65 0 0 0 305.1500000000002 330.3500000000002A99.95000000000002 99.95000000000002 0 0 0 325.7500000000001 302.1000000000002A294.3 294.3 0 0 0 405.0000000000001 298.4C445.5000000000001 291.0999999999999 471.2 276.7 514.7 245.35L515.5 244.8000000000001L526.15 237.2000000000001C557.1 215.1999999999999 570 209.9 599.8000000000001 209.9C630.25 209.9 645.3000000000001 215.9499999999999 675.95 237.5L686.3000000000001 244.8000000000001C730.1 276.4000000000001 756.6500000000001 291.2000000000001 797.85 298.6A333.2 333.2 0 0 0 875.8000000000001 302.3000000000002A99.95000000000002 99.95000000000002 0 0 0 896.6500000000002 330.6500000000002A420.45000000000005 420.45000000000005 0 0 0 865.8500000000001 361.4500000000002A461.75 461.75 0 0 0 793.5000000000002 469.4500000000002C775.3500000000003 506.9000000000002 770.0000000000002 546.45 786.6500000000002 585.5000000000001C788.6500000000002 590.4000000000002 790.9000000000002 595.0000000000001 793.2500000000002 599.3000000000001A100 100 0 0 0 769.8000000000002 671.0500000000002zM254.0500000000001 676.1C275.0000000000001 676.1 284.0500000000001 660.85 315.0000000000001 660.85C322.8500000000001 660.85 328.0000000000001 662.6 331.3000000000001 664.1500000000001C330.85 671.95 326.35 763.45 326.35 800.6000000000001C326.35 885 362.35 935.1000000000003 403.5 976.3C444.6500000000001 1017.5 508.7500000000001 1050 599.8000000000001 1050C690.8000000000001 1050 753.1 1017.35 797.4 976.1C841.6999999999999 934.85 874.9499999999999 879.6 874.9499999999999 799.7C874.9499999999999 721.95 869.9999999999999 670 869.55 663.9A29.500000000000004 29.500000000000004 0 0 1 883.4999999999999 660.65C914.9999999999998 660.65 914.9999999999998 676.15 950 676.15C984.2499999999998 676.15 999.15 647.65 999.15 635C999.15 603.9499999999999 957.5000000000002 586.65 932.65 578.7C914.2 572.8499999999999 886.0999999999999 564.15 878.9 546.95C875.1999999999999 538.25 876.75 526.9499999999999 883.4999999999999 513.05C883.6499999999999 512.65 946.5 368.9 1080 346.7499999999999C1091.7499999999998 344.9999999999999 1099.55 334.7 1099.55 322.5999999999999C1099.55 305.9999999999999 1081.05 291.7499999999999 1063.25 283.4999999999999C1041.1 273.5 1008.7 264.9999999999999 965.65 258.25C963.5000000000002 254.35 958.95 234 953.9 213.9C947.15 186.7999999999999 913.8500000000003 195.5999999999999 904.3500000000003 197.5999999999999A249.85 249.85 0 0 1 814.5500000000001 200C790.45 195.65 768.9 181.1 744.8000000000001 163.7000000000001C709.1500000000001 138.5 671.5500000000001 109.9000000000001 599.8000000000001 109.9000000000001C528 109.9000000000001 492.6 138.5 456.95 163.7000000000001C432.85 181.1 411.7 195.5500000000001 387.15 200C342.25 208.15 308.65 198.1999999999999 297.4 197.1500000000001C286.1 196.1500000000001 255.3 184.9500000000001 247.6 213.5000000000001C245.35 221.8000000000002 238.05 253.9000000000001 235.85 258.2500000000001C193.05 265.0000000000003 160.45 273.9000000000001 138.25 283.9000000000002C120 292.1500000000002 101.95 306.0500000000003 101.95 322.8500000000003C101.95 334.6000000000002 109.85 344.8500000000003 121.5 346.9500000000002C253.7 371.1000000000003 309.8 497.2000000000002 317.6 513.4500000000002C324.2 527.2500000000002 325.65 538.4500000000002 322.1500000000001 547.4000000000002C315.0000000000001 564.5500000000002 286.9500000000001 573.0500000000002 268.5000000000001 579.1500000000002C263.25 580.8500000000003 201.7000000000001 597.8000000000002 201.7000000000001 635.0000000000001C201.7000000000001 647.0000000000001 211.9500000000001 663.6500000000002 230.8000000000001 671.5000000000001A68.00000000000001 68.00000000000001 0 0 0 254.05 676.1000000000001z","horizAdvX":"1200"},"snowy-fill":{"path":["M0 0h24v24H0z","M6.027 17.43A8.003 8.003 0 0 1 9 2a8.003 8.003 0 0 1 7.458 5.099A5.5 5.5 0 0 1 18 17.978a6 6 0 0 0-11.973-.549zM13 16.267l1.964-1.134 1 1.732L14 18l1.964 1.134-1 1.732L13 19.732V22h-2v-2.268l-1.964 1.134-1-1.732L10 18l-1.964-1.134 1-1.732L11 16.268V14h2v2.268z"],"unicode":"","glyph":"M301.35 328.5A400.15000000000003 400.15000000000003 0 0 0 450 1100A400.15000000000003 400.15000000000003 0 0 0 822.8999999999999 845.05A275 275 0 0 0 900 301.0999999999999A300 300 0 0 1 301.35 328.55zM650 386.65L748.2 443.35L798.2 356.7500000000001L700 300L798.2 243.3L748.2 156.7000000000001L650 213.4000000000001V100H550V213.4000000000001L451.8 156.7000000000001L401.8 243.3L500 300L401.8 356.7000000000001L451.8 443.3L550 386.5999999999999V500H650V386.5999999999999z","horizAdvX":"1200"},"snowy-line":{"path":["M0 0h24v24H0z","M13 16.268l1.964-1.134 1 1.732L14 18l1.964 1.134-1 1.732L13 19.732V22h-2v-2.268l-1.964 1.134-1-1.732L10 18l-1.964-1.134 1-1.732L11 16.268V14h2v2.268zM17 18v-2h.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-8 5.659v2.089a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001z"],"unicode":"","glyph":"M650 386.5999999999999L748.2 443.3L798.2 356.7000000000001L700 300L798.2 243.3L748.2 156.7000000000001L650 213.4000000000001V100H550V213.4000000000001L451.8 156.7000000000001L401.8 243.3L500 300L401.8 356.7000000000001L451.8 443.3L550 386.5999999999999V500H650V386.5999999999999zM850 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 350 417.0500000000001V312.6000000000002A400 400 0 1 0 822.8999999999999 845.1000000000001A275 275 0 1 0 875 300L850 299.95z","horizAdvX":"1200"},"sort-asc":{"path":["M0 0H24V24H0z","M19 3l4 5h-3v12h-2V8h-3l4-5zm-5 15v2H3v-2h11zm0-7v2H3v-2h11zm-2-7v2H3V4h9z"],"unicode":"","glyph":"M950 1050L1150 800H1000V200H900V800H750L950 1050zM700 300V200H150V300H700zM700 650V550H150V650H700zM600 1000V900H150V1000H600z","horizAdvX":"1200"},"sort-desc":{"path":["M0 0H24V24H0z","M20 4v12h3l-4 5-4-5h3V4h2zm-8 14v2H3v-2h9zm2-7v2H3v-2h11zm0-7v2H3V4h11z"],"unicode":"","glyph":"M1000 1000V400H1150L950 150L750 400H900V1000H1000zM600 300V200H150V300H600zM700 650V550H150V650H700zM700 1000V900H150V1000H700z","horizAdvX":"1200"},"sound-module-fill":{"path":["M0 0h24v24H0z","M21 18v3h-2v-3h-2v-3h6v3h-2zM5 18v3H3v-3H1v-3h6v3H5zm6-12V3h2v3h2v3H9V6h2zm0 5h2v10h-2V11zm-8 2V3h2v10H3zm16 0V3h2v10h-2z"],"unicode":"","glyph":"M1050 300V150H950V300H850V450H1150V300H1050zM250 300V150H150V300H50V450H350V300H250zM550 900V1050H650V900H750V750H450V900H550zM550 650H650V150H550V650zM150 550V1050H250V550H150zM950 550V1050H1050V550H950z","horizAdvX":"1200"},"sound-module-line":{"path":["M0 0h24v24H0z","M21 18v3h-2v-3h-2v-2h6v2h-2zM5 18v3H3v-3H1v-2h6v2H5zm6-12V3h2v3h2v2H9V6h2zm0 4h2v11h-2V10zm-8 4V3h2v11H3zm16 0V3h2v11h-2z"],"unicode":"","glyph":"M1050 300V150H950V300H850V400H1150V300H1050zM250 300V150H150V300H50V400H350V300H250zM550 900V1050H650V900H750V800H450V900H550zM550 700H650V150H550V700zM150 500V1050H250V500H150zM950 500V1050H1050V500H950z","horizAdvX":"1200"},"soundcloud-fill":{"path":["M0 0h24v24H0z","M10.464 8.596c.265 0 .48 2.106.48 4.704l-.001.351c-.019 2.434-.226 4.353-.479 4.353-.256 0-.465-1.965-.48-4.44v-.352c.005-2.558.218-4.616.48-4.616zm-1.664.96c.259 0 .47 1.8.48 4.054v.34c-.01 2.254-.221 4.054-.48 4.054-.255 0-.464-1.755-.48-3.97v-.34l.002-.34c.025-2.133.23-3.798.478-3.798zm-1.664 0c.255 0 .464 1.755.48 3.97v.34l-.002.34c-.025 2.133-.23 3.798-.478 3.798-.259 0-.47-1.8-.48-4.054v-.34c.01-2.254.221-4.054.48-4.054zm-1.664.576c.265 0 .48 1.762.48 3.936l-.002.335c-.02 2.017-.227 3.601-.478 3.601-.262 0-.474-1.717-.48-3.852v-.168c.006-2.135.218-3.852.48-3.852zM3.808 11.86c.265 0 .48 1.375.48 3.072v.158c-.013 1.623-.223 2.914-.48 2.914-.265 0-.48-1.375-.48-3.072v-.158c.013-1.623.223-2.914.48-2.914zm10.784-4.8c2.58 0 4.72 1.886 5.118 4.354a3.36 3.36 0 1 1 .993 6.589l-.063.001h-8.16a.768.768 0 0 1-.768-.768V7.933a5.16 5.16 0 0 1 2.88-.873zM2.144 11.668c.265 0 .48 1.332.48 2.976v.156c-.014 1.57-.223 2.82-.48 2.82-.26 0-.473-1.29-.48-2.898v-.078c0-1.644.215-2.976.48-2.976zm-1.664.96c.265 0 .48.946.48 2.112v.131c-.016 1.105-.225 1.981-.48 1.981-.265 0-.48-.946-.48-2.112v-.131c.016-1.105.225-1.981.48-1.981z"],"unicode":"","glyph":"M523.2 770.2C536.45 770.2 547.2 664.9 547.2 535L547.1500000000001 517.45C546.2 395.75 535.85 299.8000000000001 523.2000000000002 299.8000000000001C510.4000000000001 299.8000000000001 499.9500000000001 398.0500000000001 499.2000000000001 521.8000000000002V539.4000000000002C499.4500000000001 667.3000000000002 510.1000000000001 770.2000000000002 523.2000000000002 770.2000000000002zM440.0000000000001 722.1999999999999C452.95 722.1999999999999 463.5000000000001 632.1999999999999 464.0000000000001 519.4999999999999V502.5C463.5000000000001 389.8 452.95 299.8 440.0000000000001 299.8C427.25 299.8 416.8 387.5499999999999 416 498.3V515.3L416.1 532.3C417.3500000000001 638.95 427.6000000000001 722.1999999999999 440.0000000000001 722.1999999999999zM356.8000000000001 722.1999999999999C369.5500000000001 722.1999999999999 380.0000000000001 634.45 380.8000000000001 523.6999999999999V506.6999999999999L380.7000000000001 489.6999999999999C379.4500000000001 383.0499999999999 369.2000000000001 299.8 356.8000000000001 299.8C343.8500000000001 299.8 333.3000000000002 389.8 332.8000000000002 502.5V519.4999999999999C333.3000000000002 632.1999999999999 343.8500000000002 722.1999999999999 356.8000000000002 722.1999999999999zM273.6000000000001 693.3999999999999C286.85 693.3999999999999 297.6000000000001 605.3 297.6000000000001 496.5999999999999L297.5000000000001 479.8499999999999C296.5000000000001 378.9999999999999 286.1500000000001 299.8 273.6000000000002 299.8C260.5000000000001 299.8 249.9000000000001 385.6499999999999 249.6000000000002 492.4V500.8C249.9000000000002 607.55 260.5000000000001 693.3999999999999 273.6000000000002 693.3999999999999zM190.4 607C203.65 607 214.4 538.25 214.4 453.4000000000001V445.5000000000001C213.75 364.3500000000002 203.25 299.8000000000001 190.4 299.8000000000001C177.15 299.8000000000001 166.4 368.5500000000001 166.4 453.4000000000001V461.3000000000001C167.05 542.45 177.55 607 190.4 607zM729.6 847C858.6 847 965.6 752.7 985.5 629.3000000000001A168 168 0 1 0 1035.1499999999999 299.85L1032 299.8H624A38.400000000000006 38.400000000000006 0 0 0 585.6 338.2V803.35A258 258 0 0 0 729.5999999999999 847zM107.2 616.6C120.45 616.6 131.2 550 131.2 467.8000000000001V460C130.5 381.5000000000001 120.05 319.0000000000001 107.2 319.0000000000001C94.2 319.0000000000001 83.55 383.5000000000001 83.2 463.9000000000001V467.8000000000001C83.2 550.0000000000001 93.95 616.6 107.2 616.6zM24 568.6C37.25 568.6 48 521.3 48 463V456.4499999999999C47.2 401.2 36.75 357.4 24 357.4C10.75 357.4 0 404.7 0 463V469.55C0.8 524.8000000000001 11.25 568.6 24 568.6z","horizAdvX":"1200"},"soundcloud-line":{"path":["M0 0h24v24H0z","M4 10a1 1 0 0 1 1 1v7a1 1 0 0 1-2 0v-7a1 1 0 0 1 1-1zm3 1a1 1 0 0 1 1 1v6a1 1 0 0 1-2 0v-6a1 1 0 0 1 1-1zm3-4a1 1 0 0 1 1 1v10a1 1 0 0 1-2 0V8a1 1 0 0 1 1-1zm5-1a6 6 0 0 1 5.996 5.775l.003.26a3.5 3.5 0 0 1-.307 6.96L20.5 19h-3.501a1 1 0 0 1-.117-1.993L17 17h3.447l.138-.002a1.5 1.5 0 0 0 .267-2.957l-.135-.026-1.77-.252.053-1.787-.004-.176A4 4 0 0 0 15.2 8.005L15 8c-.268 0-.531.026-.788.077L14 8.126V18a1 1 0 0 1-.883.993L13 19a1 1 0 0 1-1-1l-.001-11.197A5.972 5.972 0 0 1 15 6zM1 12a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0v-4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M200 700A50 50 0 0 0 250 650V300A50 50 0 0 0 150 300V650A50 50 0 0 0 200 700zM350 650A50 50 0 0 0 400 600V300A50 50 0 0 0 300 300V600A50 50 0 0 0 350 650zM500 850A50 50 0 0 0 550 800V300A50 50 0 0 0 450 300V800A50 50 0 0 0 500 850zM750 900A300 300 0 0 0 1049.8000000000002 611.25L1049.95 598.25A175 175 0 0 0 1034.6000000000001 250.25L1025 250H849.9499999999999A50 50 0 0 0 844.0999999999999 349.65L850 350H1022.35L1029.25 350.0999999999999A75 75 0 0 1 1042.6 497.9499999999999L1035.85 499.25L947.35 511.85L950 601.2L949.8 610A200 200 0 0 1 760 799.75L750 800C736.5999999999999 800 723.4499999999999 798.7 710.6 796.15L700 793.7V300A50 50 0 0 0 655.85 250.35L650 250A50 50 0 0 0 600 300L599.95 859.8499999999999A298.6 298.6 0 0 0 750 900zM50 600A50 50 0 0 0 100 550V350A50 50 0 0 0 0 350V550A50 50 0 0 0 50 600z","horizAdvX":"1200"},"space-ship-fill":{"path":["M0 0h24v24H0z","M2.88 18.054a35.897 35.897 0 0 1 8.531-16.32.8.8 0 0 1 1.178 0c.166.18.304.332.413.455a35.897 35.897 0 0 1 8.118 15.865c-2.141.451-4.34.747-6.584.874l-2.089 4.178a.5.5 0 0 1-.894 0l-2.089-4.178a44.019 44.019 0 0 1-6.584-.874zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M144 297.3000000000001A1794.8500000000001 1794.8500000000001 0 0 0 570.5500000000001 1113.3000000000002A40.00000000000001 40.00000000000001 0 0 0 629.4500000000002 1113.3000000000002C637.7500000000001 1104.3000000000002 644.6500000000001 1096.7 650.1000000000001 1090.5500000000002A1794.8500000000001 1794.8500000000001 0 0 0 1056.0000000000002 297.3000000000001C948.9500000000002 274.75 839.0000000000002 259.9500000000001 726.8000000000003 253.6000000000002L622.3500000000003 44.7A25 25 0 0 0 577.6500000000002 44.7L473.2000000000002 253.6000000000002A2200.9500000000003 2200.9500000000003 0 0 0 144.0000000000002 297.3000000000001zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450z","horizAdvX":"1200"},"space-ship-line":{"path":["M0 0h24v24H0z","M2.88 18.054a35.897 35.897 0 0 1 8.531-16.32.8.8 0 0 1 1.178 0c.166.18.304.332.413.455a35.897 35.897 0 0 1 8.118 15.865c-2.141.451-4.34.747-6.584.874l-2.089 4.178a.5.5 0 0 1-.894 0l-2.089-4.178a44.019 44.019 0 0 1-6.584-.874zm6.698-1.123l1.157.066L12 19.527l1.265-2.53 1.157-.066a42.137 42.137 0 0 0 4.227-.454A33.913 33.913 0 0 0 12 4.09a33.913 33.913 0 0 0-6.649 12.387c1.395.222 2.805.374 4.227.454zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M144 297.3000000000001A1794.8500000000001 1794.8500000000001 0 0 0 570.5500000000001 1113.3000000000002A40.00000000000001 40.00000000000001 0 0 0 629.4500000000002 1113.3000000000002C637.7500000000001 1104.3000000000002 644.6500000000001 1096.7 650.1000000000001 1090.5500000000002A1794.8500000000001 1794.8500000000001 0 0 0 1056.0000000000002 297.3000000000001C948.9500000000002 274.75 839.0000000000002 259.9500000000001 726.8000000000003 253.6000000000002L622.3500000000003 44.7A25 25 0 0 0 577.6500000000002 44.7L473.2000000000002 253.6000000000002A2200.9500000000003 2200.9500000000003 0 0 0 144.0000000000002 297.3000000000001zM478.9 353.4500000000002L536.75 350.1500000000002L600 223.65L663.25 350.15L721.1 353.45A2106.85 2106.85 0 0 1 932.45 376.15A1695.6499999999996 1695.6499999999996 0 0 1 600 995.5A1695.6499999999996 1695.6499999999996 0 0 1 267.55 376.15C337.3 365.05 407.8 357.4500000000001 478.9 353.45zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z","horizAdvX":"1200"},"space":{"path":["M0 0h24v24H0z","M4 9v4h16V9h2v5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V9h2z"],"unicode":"","glyph":"M200 750V550H1000V750H1100V500A50 50 0 0 0 1050 450H150A50 50 0 0 0 100 500V750H200z","horizAdvX":"1200"},"spam-2-fill":{"path":["M0 0h24v24H0z","M16.218 2.5l5.683 5.682v8.036l-5.683 5.683H8.182l-5.683-5.683V8.182l5.683-5.683h8.036zM11 15v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M810.9 1075L1095.05 790.9V389.1L810.9 104.9500000000001H409.1L124.95 389.1V790.9L409.1 1075.05H810.9zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"spam-2-line":{"path":["M0 0h24v24H0z","M15.936 2.5L21.5 8.067v7.87L15.936 21.5h-7.87L2.5 15.936v-7.87L8.066 2.5h7.87zm-.829 2H8.894L4.501 8.895v6.213l4.393 4.394h6.213l4.394-4.394V8.894l-4.394-4.393zM11 15h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M796.8 1075L1075 796.65V403.15L796.8 125H403.3L125 403.2000000000001V796.7L403.3 1075H796.8zM755.3499999999999 975H444.7L225.05 755.25V444.6L444.7 224.8999999999999H755.3499999999999L975.0499999999998 444.5999999999999V755.3L755.3499999999999 974.95zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"spam-3-fill":{"path":["M0 0h24v24H0z","M15.936 2.5L21.5 8.067v7.87L15.936 21.5h-7.87L2.5 15.936v-7.87L8.066 2.5h7.87zM8 11v2h8v-2H8z"],"unicode":"","glyph":"M796.8 1075L1075 796.65V403.15L796.8 125H403.3L125 403.2000000000001V796.7L403.3 1075H796.8zM400 650V550H800V650H400z","horizAdvX":"1200"},"spam-3-line":{"path":["M0 0h24v24H0z","M15.936 2.5L21.5 8.067v7.87L15.936 21.5h-7.87L2.5 15.936v-7.87L8.066 2.5h7.87zm-.829 2H8.894L4.501 8.895v6.213l4.393 4.394h6.213l4.394-4.394V8.894l-4.394-4.393zM8 11h8v2H8v-2z"],"unicode":"","glyph":"M796.8 1075L1075 796.65V403.15L796.8 125H403.3L125 403.2000000000001V796.7L403.3 1075H796.8zM755.3499999999999 975H444.7L225.05 755.25V444.6L444.7 224.8999999999999H755.3499999999999L975.0499999999998 444.5999999999999V755.3L755.3499999999999 974.95zM400 650H800V550H400V650z","horizAdvX":"1200"},"spam-fill":{"path":["M0 0h24v24H0z","M17.5 2.5L23 12l-5.5 9.5h-11L1 12l5.5-9.5h11zM11 15v2h2v-2h-2zm0-8v6h2V7h-2z"],"unicode":"","glyph":"M875 1075L1150 600L875 125H325L50 600L325 1075H875zM550 450V350H650V450H550zM550 850V550H650V850H550z","horizAdvX":"1200"},"spam-line":{"path":["M0 0h24v24H0z","M17.5 2.5L23 12l-5.5 9.5h-11L1 12l5.5-9.5h11zm-1.153 2H7.653L3.311 12l4.342 7.5h8.694l4.342-7.5-4.342-7.5zM11 15h2v2h-2v-2zm0-8h2v6h-2V7z"],"unicode":"","glyph":"M875 1075L1150 600L875 125H325L50 600L325 1075H875zM817.35 975H382.65L165.55 600L382.65 225H817.35L1034.45 600L817.35 975zM550 450H650V350H550V450zM550 850H650V550H550V850z","horizAdvX":"1200"},"speaker-2-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 14a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0 2a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0-5a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350zM600 250A350 350 0 1 1 600 950A350 350 0 0 1 600 250zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500z","horizAdvX":"1200"},"speaker-2-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 13a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-4.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400zM600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM600 525A75 75 0 1 0 600 675A75 75 0 0 0 600 525z","horizAdvX":"1200"},"speaker-3-fill":{"path":["M0 0h24v24H0z","M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 13a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0 2a6 6 0 1 0 0-12 6 6 0 0 0 0 12zM6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm12 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM6 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm6-5.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM600 400A200 200 0 1 0 600 800A200 200 0 0 0 600 400zM600 300A300 300 0 1 1 600 900A300 300 0 0 1 600 300zM300 850A50 50 0 1 1 300 950A50 50 0 0 1 300 850zM900 850A50 50 0 1 1 900 950A50 50 0 0 1 900 850zM900 250A50 50 0 1 1 900 350A50 50 0 0 1 900 250zM300 250A50 50 0 1 1 300 350A50 50 0 0 1 300 250zM600 525A75 75 0 1 1 600 675A75 75 0 0 1 600 525z","horizAdvX":"1200"},"speaker-3-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm3 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm10 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 10a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM7 18a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm5-3a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-4a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM350 800A50 50 0 1 0 350 900A50 50 0 0 0 350 800zM850 800A50 50 0 1 0 850 900A50 50 0 0 0 850 800zM850 300A50 50 0 1 0 850 400A50 50 0 0 0 850 300zM350 300A50 50 0 1 0 350 400A50 50 0 0 0 350 300zM600 450A150 150 0 1 1 600 750A150 150 0 0 1 600 450zM600 350A250 250 0 1 0 600 850A250 250 0 0 0 600 350zM600 550A50 50 0 1 0 600 650A50 50 0 0 0 600 550z","horizAdvX":"1200"},"speaker-fill":{"path":["M0 0h24v24H0z","M4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 18a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0-12a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm0 10a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM600 200A250 250 0 1 1 600 700A250 250 0 0 1 600 200zM600 800A75 75 0 1 1 600 950A75 75 0 0 1 600 800zM600 300A150 150 0 1 0 600 600A150 150 0 0 0 600 300z","horizAdvX":"1200"},"speaker-line":{"path":["M0 0h24v24H0z","M5 4v16h14V4H5zM4 2h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm8 15a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 2a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9zm0-10.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M250 1000V200H950V1000H250zM200 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100zM600 350A125 125 0 1 1 600 600A125 125 0 0 1 600 350zM600 250A225 225 0 1 0 600 700A225 225 0 0 0 600 250zM600 775A75 75 0 1 0 600 925A75 75 0 0 0 600 775z","horizAdvX":"1200"},"spectrum-fill":{"path":["M0 0h24v24H0z","M13.2 2.006C21.24 2.093 22 3.25 22 12l-.006 1.2C21.907 21.24 20.75 22 12 22l-1.2-.006c-7.658-.083-8.711-1.136-8.794-8.795L2 11.691l.006-.89c.085-7.85 1.19-8.76 9.382-8.8l1.811.005zM8.25 7h-.583a.667.667 0 0 0-.66.568L7 7.667v3.666c0 .335.247.612.568.66l.099.007h.583a3.75 3.75 0 0 1 3.745 3.55l.005.2v.583c0 .335.247.612.568.66l.099.007h3.666a.667.667 0 0 0 .66-.568l.007-.099v-.583a8.75 8.75 0 0 0-8.492-8.746L8.25 7z"],"unicode":"","glyph":"M660 1099.7C1062 1095.35 1100 1037.5 1100 600L1099.7 540C1095.35 138 1037.5 100 600 100L540 100.3C157.1 104.4499999999998 104.45 157.0999999999999 100.3 540.05L100 615.4499999999999L100.3 659.95C104.55 1052.45 159.8 1097.95 569.4 1099.95L659.95 1099.7zM412.5 850H383.35A33.349999999999994 33.349999999999994 0 0 1 350.35 821.6L350 816.6500000000001V633.35C350 616.5999999999999 362.35 602.75 378.4 600.35L383.35 600H412.5A187.5 187.5 0 0 0 599.75 422.5L600.0000000000001 412.5V383.3500000000002C600.0000000000001 366.6 612.3500000000001 352.7500000000001 628.4000000000001 350.35L633.3500000000001 350H816.6500000000001A33.349999999999994 33.349999999999994 0 0 1 849.6500000000001 378.4000000000001L850.0000000000002 383.3500000000002V412.5000000000001A437.5 437.5 0 0 1 425.4000000000002 849.8000000000002L412.5 850z","horizAdvX":"1200"},"spectrum-line":{"path":["M0 0h24v24H0z","M11.388 2.001l1.811.005.844.014c7.161.164 7.938 1.512 7.957 9.667l-.006 1.512-.014.844c-.164 7.161-1.512 7.938-9.667 7.957l-1.512-.006-.888-.015c-6.853-.163-7.827-1.428-7.907-8.78L2 11.691l.006-.89.014-.865c.165-7.053 1.487-7.897 9.368-7.935zM14.12 4.01L10.882 4l-1.322.01c-5.489.082-5.544.82-5.559 7.403l.001 2.175.01 1.04c.089 4.982.793 5.343 6.4 5.369l3.454-.002.776-.009c5.108-.091 5.347-.837 5.358-6.877l-.003-2.743-.012-1.055c-.094-4.796-.785-5.25-5.865-5.303zM8.25 7A8.75 8.75 0 0 1 17 15.75v.583a.667.667 0 0 1-.667.667h-3.666a.667.667 0 0 1-.667-.667v-.583A3.75 3.75 0 0 0 8.25 12h-.583A.667.667 0 0 1 7 11.333V7.667C7 7.299 7.299 7 7.667 7h.583z"],"unicode":"","glyph":"M569.4 1099.95L659.95 1099.7L702.15 1099C1060.2 1090.8 1099.05 1023.4 1100 615.65L1099.7 540.05L1099 497.85C1090.8 139.8 1023.4 100.9500000000001 615.65 100L540.05 100.3L495.65 101.05C153 109.2000000000001 104.3 172.4500000000001 100.3 540.05L100 615.4499999999999L100.3 659.95L101 703.2C109.25 1055.85 175.35 1098.05 569.4 1099.95zM706 999.5L544.1 1000L477.9999999999999 999.5C203.55 995.4 200.8 958.5 200.0499999999999 629.35L200.0999999999999 520.5999999999999L200.5999999999999 468.6C205.05 219.5 240.25 201.4500000000001 520.5999999999999 200.15L693.3 200.25L732.1 200.6999999999999C987.5 205.25 999.45 242.55 1000 544.55L999.85 681.6999999999999L999.25 734.4499999999999C994.55 974.2499999999998 960 996.95 706 999.6zM412.5 850A437.5 437.5 0 0 0 850 412.5V383.3500000000002A33.349999999999994 33.349999999999994 0 0 0 816.6499999999999 350H633.3499999999999A33.349999999999994 33.349999999999994 0 0 0 599.9999999999999 383.3500000000002V412.5000000000001A187.5 187.5 0 0 1 412.5 600H383.35A33.349999999999994 33.349999999999994 0 0 0 350 633.35V816.6500000000001C350 835.05 364.9500000000001 850 383.35 850H412.5z","horizAdvX":"1200"},"speed-fill":{"path":["M0 0h24v24H0z","M12 13.333l-9.223 6.149A.5.5 0 0 1 2 19.066V4.934a.5.5 0 0 1 .777-.416L12 10.667V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832l-10.599 7.066a.5.5 0 0 1-.777-.416v-5.733z"],"unicode":"","glyph":"M600 533.35L138.85 225.9000000000001A25 25 0 0 0 100 246.7000000000001V953.3A25 25 0 0 0 138.85 974.1L600 666.65V953.3A25 25 0 0 0 638.8499999999999 974.1L1168.8 620.8000000000001A25 25 0 0 0 1168.8 579.1999999999999L638.8499999999999 225.9000000000001A25 25 0 0 0 599.9999999999999 246.7000000000001V533.3500000000001z","horizAdvX":"1200"},"speed-line":{"path":["M0 0h24v24H0z","M12 13.333l-9.223 6.149A.5.5 0 0 1 2 19.066V4.934a.5.5 0 0 1 .777-.416L12 10.667V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832l-10.599 7.066a.5.5 0 0 1-.777-.416v-5.733zM10.394 12L4 7.737v8.526L10.394 12zM14 7.737v8.526L20.394 12 14 7.737z"],"unicode":"","glyph":"M600 533.35L138.85 225.9000000000001A25 25 0 0 0 100 246.7000000000001V953.3A25 25 0 0 0 138.85 974.1L600 666.65V953.3A25 25 0 0 0 638.8499999999999 974.1L1168.8 620.8000000000001A25 25 0 0 0 1168.8 579.1999999999999L638.8499999999999 225.9000000000001A25 25 0 0 0 599.9999999999999 246.7000000000001V533.3500000000001zM519.7 600L200 813.15V386.8500000000002L519.7 600zM700 813.15V386.8500000000002L1019.7 600L700 813.15z","horizAdvX":"1200"},"speed-mini-fill":{"path":["M0 0h24v24H0z","M4.788 17.444A.5.5 0 0 1 4 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM13 6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036a.5.5 0 0 1-.788-.409V6.965z"],"unicode":"","glyph":"M239.4 327.8000000000001A25 25 0 0 0 200 348.25V851.75A25 25 0 0 0 239.4 872.2L596.05 620.4000000000001A25 25 0 0 0 596.05 579.6L239.4 327.8000000000001zM650 851.75A25 25 0 0 0 689.4 872.2L1046.05 620.4000000000001A25 25 0 0 0 1046.05 579.6L689.4 327.8000000000001A25 25 0 0 0 650 348.25V851.75z","horizAdvX":"1200"},"speed-mini-line":{"path":["M0 0h24v24H0z","M9.032 12L6 9.86v4.28L9.032 12zm-4.244 5.444A.5.5 0 0 1 4 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM15 14.14L18.032 12 15 9.86v4.28zm-2-7.175a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036a.5.5 0 0 1-.788-.409V6.965z"],"unicode":"","glyph":"M451.6 600L300 707V493L451.6 600zM239.4 327.8000000000001A25 25 0 0 0 200 348.25V851.75A25 25 0 0 0 239.4 872.2L596.05 620.4000000000001A25 25 0 0 0 596.05 579.6L239.4 327.8000000000001zM750 493L901.6 600L750 707V493zM650 851.75A25 25 0 0 0 689.4 872.1999999999999L1046.05 620.4A25 25 0 0 0 1046.05 579.5999999999999L689.4 327.7999999999999A25 25 0 0 0 650 348.2499999999998V851.75z","horizAdvX":"1200"},"split-cells-horizontal":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-9 2H5v14h6v-4h2v4h6V5h-6v4h-2V5zm4 4l3 3-3 3v-2H9v2l-3-3 3-3v2h6V9z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM550 950H250V250H550V450H650V250H950V950H650V750H550V950zM750 750L900 600L750 450V550H450V450L300 600L450 750V650H750V750z","horizAdvX":"1200"},"split-cells-vertical":{"path":["M0 0H24V24H0z","M20 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H4c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h16zm-1 2H5v5.999L9 11v2H5v6h14v-6h-4v-2l4-.001V5zm-7 1l3 3h-2v6h2l-3 3-3-3h2V9H9l3-3z"],"unicode":"","glyph":"M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H1000zM950 950H250V650.0500000000001L450 650V550H250V250H950V550H750V650L950 650.05V950zM600 900L750 750H650V450H750L600 300L450 450H550V750H450L600 900z","horizAdvX":"1200"},"spotify-fill":{"path":["M0 0h24v24H0z","M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.55 2 12 2zm3.75 14.65c-2.35-1.45-5.3-1.75-8.8-.95-.35.1-.65-.15-.75-.45-.1-.35.15-.65.45-.75 3.8-.85 7.1-.5 9.7 1.1.35.15.4.55.25.85-.2.3-.55.4-.85.2zm1-2.7c-2.7-1.65-6.8-2.15-9.95-1.15-.4.1-.85-.1-.95-.5-.1-.4.1-.85.5-.95 3.65-1.1 8.15-.55 11.25 1.35.3.15.45.65.2 1s-.7.5-1.05.25zM6.3 9.75c-.5.15-1-.15-1.15-.6-.15-.5.15-1 .6-1.15 3.55-1.05 9.4-.85 13.1 1.35.45.25.6.85.35 1.3-.25.35-.85.5-1.3.25C14.7 9 9.35 8.8 6.3 9.75z"],"unicode":"","glyph":"M600 1100C325 1100 100 875 100 600S325 100 600 100S1100 325 1100 600S877.5 1100 600 1100zM787.5 367.5000000000001C670 440 522.5 455.0000000000001 347.5 415C330 410 315 422.5 310 437.5C305 455 317.5 470 332.5 475C522.5 517.5 687.5 500 817.4999999999999 420C835 412.5 837.4999999999998 392.5000000000001 829.9999999999999 377.5C819.9999999999999 362.5 802.4999999999999 357.5000000000001 787.4999999999999 367.5000000000001zM837.5 502.5C702.5 585 497.4999999999999 610 340.0000000000001 560C320 555.0000000000001 297.5000000000001 565 292.5 585C287.5000000000001 605.0000000000001 297.5 627.5 317.5 632.5C500 687.5 725 660 880.0000000000001 565C895.0000000000001 557.5 902.5 532.5 890 515S855.0000000000001 490 837.5 502.5zM315 712.5C290 705 265 720 257.5 742.5C250 767.5 265.0000000000001 792.5 287.5 800C465.0000000000001 852.5 757.5 842.5 942.5000000000002 732.5C965 720 972.5000000000002 690 960.0000000000002 667.5C947.5000000000002 650 917.5000000000002 642.5 895.0000000000001 655C735 750 467.5 760 315 712.5z","horizAdvX":"1200"},"spotify-line":{"path":["M0 0h24v24H0z","M12 2c5.55 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0 2c-4.395 0-8 3.605-8 8s3.605 8 8 8 8-3.605 8-8c0-4.414-3.573-8-8-8zm3.75 12.65c-2.35-1.45-5.3-1.75-8.8-.95-.35.1-.65-.15-.75-.45-.1-.35.15-.65.45-.75 3.8-.85 7.1-.5 9.7 1.1.35.15.4.55.25.85-.2.3-.55.4-.85.2zm1-2.7c-2.7-1.65-6.8-2.15-9.95-1.15-.4.1-.85-.1-.95-.5-.1-.4.1-.85.5-.95 3.65-1.1 8.15-.55 11.25 1.35.3.15.45.65.2 1s-.7.5-1.05.25zM6.3 9.75c-.5.15-1-.15-1.15-.6-.15-.5.15-1 .6-1.15 3.55-1.05 9.4-.85 13.1 1.35.45.25.6.85.35 1.3-.25.35-.85.5-1.3.25C14.7 9 9.35 8.8 6.3 9.75z"],"unicode":"","glyph":"M600 1100C877.5 1100 1100 875 1100 600S875 100 600 100S100 325 100 600S325 1100 600 1100zM600 1000C380.25 1000 200 819.75 200 600S380.25 200 600 200S1000 380.25 1000 600C1000 820.7 821.35 1000 600 1000zM787.5 367.5000000000001C670 440 522.5 455.0000000000001 347.5 415C330 410 315 422.5 310 437.5C305 455 317.5 470 332.5 475C522.5 517.5 687.5 500 817.4999999999999 420C835 412.5 837.4999999999998 392.5000000000001 829.9999999999999 377.5C819.9999999999999 362.5 802.4999999999999 357.5000000000001 787.4999999999999 367.5000000000001zM837.5 502.5C702.5 585 497.4999999999999 610 340.0000000000001 560C320 555.0000000000001 297.5000000000001 565 292.5 585C287.5000000000001 605.0000000000001 297.5 627.5 317.5 632.5C500 687.5 725 660 880.0000000000001 565C895.0000000000001 557.5 902.5 532.5 890 515S855.0000000000001 490 837.5 502.5zM315 712.5C290 705 265 720 257.5 742.5C250 767.5 265.0000000000001 792.5 287.5 800C465.0000000000001 852.5 757.5 842.5 942.5000000000002 732.5C965 720 972.5000000000002 690 960.0000000000002 667.5C947.5000000000002 650 917.5000000000002 642.5 895.0000000000001 655C735 750 467.5 760 315 712.5z","horizAdvX":"1200"},"spy-fill":{"path":["M0 0h24v24H0z","M17 13a4 4 0 1 1 0 8c-2.142 0-4-1.79-4-4h-2a4 4 0 1 1-.535-2h3.07A3.998 3.998 0 0 1 17 13zM2 12v-2h2V7a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v3h2v2H2z"],"unicode":"","glyph":"M850 550A200 200 0 1 0 850 150C742.9 150 650 239.5 650 350H550A200 200 0 1 0 523.25 450H676.75A199.90000000000003 199.90000000000003 0 0 0 850 550zM100 600V700H200V850A200 200 0 0 0 400 1050H800A200 200 0 0 0 1000 850V700H1100V600H100z","horizAdvX":"1200"},"spy-line":{"path":["M0 0h24v24H0z","M17 13a4 4 0 1 1-4 4h-2a4 4 0 1 1-.535-2h3.07A3.998 3.998 0 0 1 17 13zM7 15a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM16 3a4 4 0 0 1 4 4v3h2v2H2v-2h2V7a4 4 0 0 1 4-4h8zm0 2H8c-1.054 0-2 .95-2 2v3h12V7c0-1.054-.95-2-2-2z"],"unicode":"","glyph":"M850 550A200 200 0 1 0 650 350H550A200 200 0 1 0 523.25 450H676.75A199.90000000000003 199.90000000000003 0 0 0 850 550zM350 450A100 100 0 1 1 350 250A100 100 0 0 1 350 450zM850 450A100 100 0 1 1 850 250A100 100 0 0 1 850 450zM800 1050A200 200 0 0 0 1000 850V700H1100V600H100V700H200V850A200 200 0 0 0 400 1050H800zM800 950H400C347.3 950 300 902.5 300 850V700H900V850C900 902.7 852.5 950 800 950z","horizAdvX":"1200"},"stack-fill":{"path":["M0 0h24v24H0z","M20.083 10.5l1.202.721a.5.5 0 0 1 0 .858L12 17.65l-9.285-5.571a.5.5 0 0 1 0-.858l1.202-.721L12 15.35l8.083-4.85zm0 4.7l1.202.721a.5.5 0 0 1 0 .858l-8.77 5.262a1 1 0 0 1-1.03 0l-8.77-5.262a.5.5 0 0 1 0-.858l1.202-.721L12 20.05l8.083-4.85zM12.514 1.309l8.771 5.262a.5.5 0 0 1 0 .858L12 13 2.715 7.429a.5.5 0 0 1 0-.858l8.77-5.262a1 1 0 0 1 1.03 0z"],"unicode":"","glyph":"M1004.1499999999997 675L1064.2499999999998 638.95A25 25 0 0 0 1064.2499999999998 596.05L600 317.5000000000001L135.75 596.0500000000001A25 25 0 0 0 135.75 638.95L195.85 675.0000000000001L600 432.5L1004.1499999999997 675zM1004.1499999999997 440L1064.2499999999998 403.9500000000001A25 25 0 0 0 1064.2499999999998 361.05L625.7499999999999 97.9500000000001A50 50 0 0 0 574.2499999999999 97.9500000000001L135.7499999999999 361.05A25 25 0 0 0 135.7499999999999 403.9500000000001L195.8499999999999 440L600 197.5L1004.1499999999997 440zM625.6999999999999 1134.55L1064.25 871.45A25 25 0 0 0 1064.25 828.55L600 550L135.75 828.55A25 25 0 0 0 135.75 871.45L574.25 1134.55A50 50 0 0 0 625.7499999999999 1134.55z","horizAdvX":"1200"},"stack-line":{"path":["M0 0h24v24H0z","M20.083 15.2l1.202.721a.5.5 0 0 1 0 .858l-8.77 5.262a1 1 0 0 1-1.03 0l-8.77-5.262a.5.5 0 0 1 0-.858l1.202-.721L12 20.05l8.083-4.85zm0-4.7l1.202.721a.5.5 0 0 1 0 .858L12 17.65l-9.285-5.571a.5.5 0 0 1 0-.858l1.202-.721L12 15.35l8.083-4.85zm-7.569-9.191l8.771 5.262a.5.5 0 0 1 0 .858L12 13 2.715 7.429a.5.5 0 0 1 0-.858l8.77-5.262a1 1 0 0 1 1.03 0zM12 3.332L5.887 7 12 10.668 18.113 7 12 3.332z"],"unicode":"","glyph":"M1004.1499999999997 440L1064.2499999999998 403.9500000000001A25 25 0 0 0 1064.2499999999998 361.05L625.7499999999999 97.9500000000001A50 50 0 0 0 574.2499999999999 97.9500000000001L135.7499999999999 361.05A25 25 0 0 0 135.7499999999999 403.9500000000001L195.8499999999999 440L600 197.5L1004.1499999999997 440zM1004.1499999999997 675L1064.2499999999998 638.95A25 25 0 0 0 1064.2499999999998 596.05L600 317.5000000000001L135.75 596.0500000000001A25 25 0 0 0 135.75 638.95L195.85 675.0000000000001L600 432.5L1004.1499999999997 675zM625.6999999999999 1134.55L1064.25 871.45A25 25 0 0 0 1064.25 828.5500000000001L600 550L135.75 828.55A25 25 0 0 0 135.75 871.45L574.25 1134.55A50 50 0 0 0 625.7499999999999 1134.55zM600 1033.4L294.35 850L600 666.6L905.65 850L600 1033.4z","horizAdvX":"1200"},"stack-overflow-fill":{"path":["M0 0h24v24H0z","M18 20.002V14.67h2v7.333H4V14.67h2v5.333h12zM7.599 14.736l.313-1.98 8.837 1.7-.113 1.586-9.037-1.306zm1.2-4.532l.732-1.6 7.998 3.733-.733 1.599-7.998-3.732zm2.265-3.932l1.133-1.333 6.798 5.665-1.133 1.333-6.798-5.665zm4.332-4.132l5.265 7.064-1.4 1.067-5.264-7.065 1.4-1.066zM7.332 18.668v-2h9.33v2h-9.33z"],"unicode":"","glyph":"M900 199.9000000000001V466.5H1000V99.8499999999999H200V466.5H300V199.85H900zM379.95 463.1999999999999L395.6 562.2L837.4499999999999 477.2L831.8 397.9000000000001L379.95 463.2000000000002zM439.95 689.8L476.55 769.8L876.45 583.15L839.8 503.1999999999999L439.8999999999999 689.8zM553.2 886.4L609.8499999999999 953.05L949.7499999999998 669.8000000000001L893.0999999999999 603.15L553.1999999999999 886.4000000000001zM769.8000000000001 1093L1033.0500000000002 739.8L963.0500000000002 686.4499999999999L699.8500000000001 1039.7L769.8500000000001 1093zM366.6 266.6V366.6H833.0999999999999V266.6H366.6z","horizAdvX":"1200"},"stack-overflow-line":{"path":["M0 0h24v24H0z","M18 20.002V15h2v7.002H4V15h2v5.002h12zM7.5 18v-2h9v2h-9zm.077-4.38l.347-1.97 8.864 1.563-.348 1.97-8.863-1.563zm1.634-5.504l1-1.732 7.794 4.5-1 1.732-7.794-4.5zm3.417-4.613l1.532-1.286 5.785 6.895-1.532 1.285-5.785-6.894z"],"unicode":"","glyph":"M900 199.9000000000001V450H1000V99.9000000000001H200V450H300V199.9000000000001H900zM375 300V400H825V300H375zM378.85 519L396.2 617.5L839.4 539.3499999999999L822.0000000000001 440.8499999999999L378.8500000000001 519zM460.55 794.1999999999999L510.55 880.8L900.25 655.8L850.25 569.2L460.55 794.2zM631.4 1024.85L708 1089.1499999999999L997.25 744.4L920.65 680.15L631.4 1024.85z","horizAdvX":"1200"},"stackshare-fill":{"path":["M0 0H24V24H0z","M21 3c.552 0 1 .448 1 1v16c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V4c0-.552.448-1 1-1h18zm-4.208 2.621c-1.011 0-1.864.676-2.133 1.6h-1.998l-2.46 4.185H8.763c-.268-.925-1.121-1.6-2.133-1.6-1.226 0-2.221.994-2.221 2.22 0 1.228.995 2.222 2.221 2.222 1.012 0 1.865-.676 2.133-1.6h1.471l2.417 4.133h2.018c.268.925 1.121 1.6 2.132 1.6 1.227 0 2.222-.994 2.222-2.221s-.995-2.222-2.222-2.222c-1.01 0-1.864.676-2.132 1.6h-1.317l-2.056-3.536 2.053-3.538h1.31c.27.925 1.122 1.6 2.133 1.6 1.227 0 2.222-.994 2.222-2.221s-.995-2.222-2.222-2.222zm.011 9.427c.644 0 1.168.524 1.168 1.168 0 .644-.524 1.167-1.168 1.167-.566 0-1.038-.405-1.144-.94 0 0-.031-.227 0-.454.106-.535.578-.94 1.144-.94zm-10.152-4.21c.644 0 1.168.524 1.168 1.168 0 .643-.524 1.167-1.168 1.167-.644 0-1.167-.524-1.167-1.167 0-.644.523-1.167 1.167-1.167zm10.15-4.209c.644 0 1.168.523 1.168 1.167s-.524 1.168-1.168 1.168c-.565 0-1.038-.406-1.144-.941-.026-.206 0-.446 0-.446.106-.543.579-.948 1.144-.948z"],"unicode":"","glyph":"M1050 1050C1077.6 1050 1100 1027.6 1100 1000V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V1000C100 1027.6 122.4 1050 150 1050H1050zM839.6000000000001 918.95C789.0500000000001 918.95 746.4000000000001 885.15 732.9500000000002 838.95H633.0500000000002L510.0500000000002 629.7H438.15C424.75 675.95 382.1 709.7 331.5 709.7C270.2 709.7 220.45 660 220.45 598.7C220.45 537.3000000000001 270.2 487.6 331.5 487.6C382.1 487.6 424.75 521.4000000000001 438.15 567.6H511.7L632.55 360.9500000000001H733.45C746.85 314.7000000000001 789.5 280.9500000000001 840.0500000000001 280.9500000000001C901.4 280.9500000000001 951.1500000000002 330.65 951.1500000000002 392S901.4 503.1 840.0500000000001 503.1C789.5500000000001 503.1 746.85 469.3 733.4500000000002 423.1H667.6000000000001L564.8000000000002 599.9L667.4500000000002 776.8H732.9500000000002C746.4500000000002 730.55 789.0500000000002 696.8 839.6000000000003 696.8C900.9500000000002 696.8 950.7000000000002 746.5 950.7000000000002 807.85S900.9500000000002 918.95 839.6000000000003 918.95zM840.1500000000001 447.6C872.3499999999999 447.6 898.55 421.4000000000001 898.55 389.2C898.55 357 872.3499999999999 330.8499999999999 840.1500000000001 330.8499999999999C811.8500000000001 330.8499999999999 788.25 351.0999999999999 782.95 377.8499999999999C782.95 377.8499999999999 781.4 389.2 782.95 400.55C788.25 427.3 811.8500000000001 447.55 840.1500000000001 447.55zM332.5500000000001 658.0999999999999C364.7500000000001 658.0999999999999 390.9500000000001 631.8999999999999 390.9500000000001 599.7C390.9500000000001 567.55 364.7500000000001 541.35 332.5500000000001 541.35C300.3500000000001 541.35 274.2000000000001 567.55 274.2000000000001 599.7C274.2000000000001 631.9 300.3500000000001 658.05 332.5500000000001 658.05zM840.0500000000001 868.55C872.25 868.55 898.45 842.4 898.45 810.1999999999999S872.25 751.8 840.0500000000001 751.8C811.8000000000001 751.8 788.1500000000001 772.1 782.8500000000001 798.85C781.5500000000001 809.1500000000001 782.8500000000001 821.15 782.8500000000001 821.15C788.1500000000001 848.3 811.8000000000001 868.55 840.0500000000001 868.55z","horizAdvX":"1200"},"stackshare-line":{"path":["M0 0H24V24H0z","M9.536 13H7.329c-.412 1.166-1.523 2-2.829 2-1.657 0-3-1.343-3-3s1.343-3 3-3c1.306 0 2.418.835 2.83 2h2.206L13 5h3.17c.412-1.165 1.524-2 2.83-2 1.657 0 3 1.343 3 3s-1.343 3-3 3c-1.306 0-2.417-.834-2.829-2h-2.017l-2.886 4.999L14.155 17h2.016c.411-1.165 1.523-2 2.829-2 1.657 0 3 1.343 3 3s-1.343 3-3 3c-1.306 0-2.417-.834-2.829-2H13l-3.464-6zM19 17c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM4.5 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zM19 5c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M476.8 550H366.45C345.85 491.6999999999999 290.3 450 225 450C142.15 450 75 517.15 75 600S142.15 750 225 750C290.3 750 345.9000000000001 708.25 366.5 650H476.8L650 950H808.5000000000001C829.1 1008.25 884.7000000000002 1050 950 1050C1032.85 1050 1100 982.85 1100 900S1032.85 750 950 750C884.6999999999999 750 829.1499999999999 791.7 808.55 850H707.7L563.4000000000001 600.0500000000001L707.75 350H808.55C829.1 408.25 884.6999999999999 450 950 450C1032.85 450 1100 382.85 1100 300S1032.85 150 950 150C884.6999999999999 150 829.1499999999999 191.6999999999999 808.55 250H650L476.8 550zM950 350C922.4 350 900 327.6 900 300S922.4 250 950 250S1000 272.4 1000 300S977.6 350 950 350zM225 650C197.4 650 175 627.6 175 600S197.4 550 225 550S275 572.4 275 600S252.6 650 225 650zM950 950C922.4 950 900 927.6 900 900S922.4 850 950 850S1000 872.4000000000001 1000 900S977.6 950 950 950z","horizAdvX":"1200"},"star-fill":{"path":["M0 0h24v24H0z","M12 18.26l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928z"],"unicode":"","glyph":"M600 286.9999999999999L247.35 89.5999999999999L326.1 486L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999z","horizAdvX":"1200"},"star-half-fill":{"path":["M0 0h24v24H0z","M12 15.968l4.247 2.377-.949-4.773 3.573-3.305-4.833-.573L12 5.275v10.693zm0 2.292l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928L12 18.26z"],"unicode":"","glyph":"M600 401.6L812.35 282.75L764.9 521.4000000000001L943.55 686.65L701.9 715.3000000000001L600 936.25V401.6zM600 287.0000000000001L247.35 89.6000000000001L326.1 486.0000000000001L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999L600 286.9999999999999z","horizAdvX":"1200"},"star-half-line":{"path":["M0 0h24v24H0z","M12 15.968l4.247 2.377-.949-4.773 3.573-3.305-4.833-.573L12 5.275v10.693zm0 2.292l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928L12 18.26z"],"unicode":"","glyph":"M600 401.6L812.35 282.75L764.9 521.4000000000001L943.55 686.65L701.9 715.3000000000001L600 936.25V401.6zM600 287.0000000000001L247.35 89.6000000000001L326.1 486.0000000000001L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999L600 286.9999999999999z","horizAdvX":"1200"},"star-half-s-fill":{"path":["M0 0h24v24H0z","M12 14.656l2.817 1.72-.766-3.21 2.507-2.147-3.29-.264L12 7.708v6.948zM12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7L12 17z"],"unicode":"","glyph":"M600 467.1999999999999L740.85 381.2L702.55 541.6999999999999L827.9 649.05L663.4000000000001 662.25L600 814.5999999999999V467.1999999999999zM600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5L600 350z","horizAdvX":"1200"},"star-half-s-line":{"path":["M0 0h24v24H0z","M12 14.656l2.817 1.72-.766-3.21 2.507-2.147-3.29-.264L12 7.708v6.948zM12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7L12 17z"],"unicode":"","glyph":"M600 467.1999999999999L740.85 381.2L702.55 541.6999999999999L827.9 649.05L663.4000000000001 662.25L600 814.5999999999999V467.1999999999999zM600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5L600 350z","horizAdvX":"1200"},"star-line":{"path":["M0 0h24v24H0z","M12 18.26l-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928L12 18.26zm0-2.292l4.247 2.377-.949-4.773 3.573-3.305-4.833-.573L12 5.275l-2.038 4.42-4.833.572 3.573 3.305-.949 4.773L12 15.968z"],"unicode":"","glyph":"M600 286.9999999999999L247.35 89.5999999999999L326.1 486L29.35 760.4000000000001L430.7 808L600 1175L769.3 808L1170.6499999999999 760.4000000000001L873.8999999999999 486L952.6499999999997 89.5999999999999L600 286.9999999999999zM600 401.5999999999999L812.35 282.7499999999999L764.9 521.3999999999999L943.55 686.6499999999999L701.9 715.2999999999998L600 936.25L498.1 715.25L256.45 686.65L435.1 521.4000000000001L387.65 282.75L600 401.6z","horizAdvX":"1200"},"star-s-fill":{"path":["M0 0h24v24H0z","M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7z"],"unicode":"","glyph":"M600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5z","horizAdvX":"1200"},"star-s-line":{"path":["M0 0h24v24H0z","M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7L12 17zm0-2.344l2.817 1.72-.766-3.21 2.507-2.147-3.29-.264L12 7.708l-1.268 3.047-3.29.264 2.507 2.147-.766 3.21L12 14.657z"],"unicode":"","glyph":"M600 350L306.1 170.5L386 505.5L124.5 729.5L467.75 757L600 1075L732.25 757L1075.55 729.5L814 505.5L893.9 170.5L600 350zM600 467.1999999999999L740.85 381.2L702.55 541.6999999999999L827.9 649.05L663.4000000000001 662.25L600 814.5999999999999L536.5999999999999 662.25L372.1 649.05L497.45 541.6999999999999L459.15 381.2L600 467.15z","horizAdvX":"1200"},"star-smile-fill":{"path":["M0 0h24v24H0z","M12 .5l4.226 6.183 7.187 2.109-4.575 5.93.215 7.486L12 19.69l-7.053 2.518.215-7.486-4.575-5.93 7.187-2.109L12 .5zM10 12H8a4 4 0 0 0 7.995.2L16 12h-2a2 2 0 0 1-3.995.15L10 12z"],"unicode":"","glyph":"M600 1175L811.3 865.85L1170.65 760.4000000000001L941.9 463.9L952.65 89.6000000000001L600 215.4999999999999L247.35 89.5999999999999L258.1 463.9L29.35 760.3999999999999L388.7 865.8499999999999L600 1175zM500 600H400A200 200 0 0 1 799.75 590L800 600H700A100 100 0 0 0 500.2499999999999 592.5L500 600z","horizAdvX":"1200"},"star-smile-line":{"path":["M0 0h24v24H0z","M12 .5l4.226 6.183 7.187 2.109-4.575 5.93.215 7.486L12 19.69l-7.053 2.518.215-7.486-4.575-5.93 7.187-2.109L12 .5zm0 3.544L9.022 8.402 3.957 9.887l3.225 4.178-.153 5.275L12 17.566l4.97 1.774-.152-5.275 3.224-4.178-5.064-1.485L12 4.044zM10 12a2 2 0 1 0 4 0h2a4 4 0 1 1-8 0h2z"],"unicode":"","glyph":"M600 1175L811.3 865.85L1170.65 760.4000000000001L941.9 463.9L952.65 89.6000000000001L600 215.4999999999999L247.35 89.5999999999999L258.1 463.9L29.35 760.3999999999999L388.7 865.8499999999999L600 1175zM600 997.8L451.1 779.9000000000001L197.85 705.65L359.1 496.7499999999999L351.4500000000001 232.9999999999998L600 321.7000000000001L848.5 233L840.8999999999999 496.75L1002.1 705.65L748.8999999999999 779.9L600 997.8zM500 600A100 100 0 1 1 700 600H800A200 200 0 1 0 400 600H500z","horizAdvX":"1200"},"steam-fill":{"path":["M0 0H24V24H0z","M12.004 2c-5.25 0-9.556 4.05-9.964 9.197l5.36 2.216c.454-.31 1.002-.492 1.593-.492.053 0 .104.003.157.005l2.384-3.452v-.049c0-2.08 1.69-3.77 3.77-3.77 2.079 0 3.77 1.692 3.77 3.772s-1.692 3.771-3.77 3.771h-.087l-3.397 2.426c0 .043.003.088.003.133 0 1.562-1.262 2.83-2.825 2.83-1.362 0-2.513-.978-2.775-2.273l-3.838-1.589C3.573 18.922 7.427 22 12.005 22c5.522 0 9.998-4.477 9.998-10 0-5.522-4.477-10-9.999-10zM7.078 16.667c.218.452.595.832 1.094 1.041 1.081.45 2.328-.063 2.777-1.145.22-.525.22-1.1.004-1.625-.215-.525-.625-.934-1.147-1.152-.52-.217-1.075-.208-1.565-.025l1.269.525c.797.333 1.174 1.25.84 2.046-.33.797-1.247 1.175-2.044.843l-1.228-.508zm10.74-7.245c0-1.385-1.128-2.512-2.513-2.512-1.387 0-2.512 1.127-2.512 2.512 0 1.388 1.125 2.513 2.512 2.513 1.386 0 2.512-1.125 2.512-2.513zM15.31 7.53c1.04 0 1.888.845 1.888 1.888s-.847 1.888-1.888 1.888c-1.044 0-1.888-.845-1.888-1.888s.845-1.888 1.888-1.888z"],"unicode":"","glyph":"M600.1999999999999 1100C337.7 1100 122.4 897.5 102 640.1500000000001L370 529.35C392.7 544.85 420.1 553.95 449.6499999999999 553.95C452.3 553.95 454.8499999999999 553.8000000000001 457.4999999999999 553.7L576.6999999999999 726.3V728.75C576.6999999999999 832.75 661.1999999999999 917.25 765.1999999999999 917.25C869.15 917.25 953.7 832.6499999999999 953.7 728.6499999999999S869.0999999999999 540.1 765.1999999999999 540.1H760.8499999999999L590.9999999999999 418.8C590.9999999999999 416.65 591.15 414.4 591.15 412.15C591.15 334.0499999999999 528.05 270.6499999999999 449.8999999999999 270.6499999999999C381.7999999999999 270.6499999999999 324.2499999999999 319.55 311.1499999999999 384.2999999999999L119.2499999999999 463.7499999999999C178.65 253.9 371.35 100 600.25 100C876.35 100 1100.15 323.85 1100.15 600C1100.15 876.1 876.3 1100 600.1999999999999 1100zM353.9000000000001 366.6499999999999C364.8 344.0499999999999 383.65 325.0499999999999 408.6 314.5999999999999C462.65 292.0999999999999 525 317.7499999999999 547.45 371.8499999999999C558.4500000000002 398.0999999999998 558.4500000000002 426.8499999999999 547.6500000000001 453.0999999999999C536.9000000000001 479.3499999999999 516.4000000000001 499.7999999999998 490.3000000000001 510.6999999999998C464.3000000000001 521.5499999999998 436.5500000000001 521.0999999999999 412.0500000000001 511.9499999999998L475.5000000000001 485.6999999999998C515.3500000000001 469.0499999999998 534.2 423.1999999999998 517.5000000000001 383.3999999999998C501.0000000000001 343.5499999999998 455.1500000000001 324.6499999999998 415.3000000000001 341.2499999999998L353.9000000000001 366.6499999999998zM890.9000000000001 728.9C890.9000000000001 798.15 834.5000000000001 854.5 765.2500000000001 854.5C695.9000000000001 854.5 639.6500000000001 798.15 639.6500000000001 728.9C639.6500000000001 659.5 695.9000000000001 603.25 765.2500000000001 603.25C834.5500000000002 603.25 890.85 659.5 890.85 728.9zM765.5 823.5C817.5000000000001 823.5 859.9 781.25 859.9 729.1S817.55 634.7 765.5 634.7C713.3 634.7 671.1 676.95 671.1 729.1S713.35 823.5 765.5 823.5z","horizAdvX":"1200"},"steam-line":{"path":["M0 0H24V24H0z","M17 4c2.761 0 5 2.239 5 5s-2.239 5-5 5c-.304 0-.603-.027-.892-.08l-2.651 1.989c.028.193.043.39.043.591 0 2.21-1.79 4-4 4s-4-1.79-4-4c0-.177.012-.352.034-.524L1.708 14.43l.75-1.854 3.826 1.545C7.013 13.138 8.182 12.5 9.5 12.5c.163 0 .323.01.48.029l2.042-3.061C12.007 9.314 12 9.158 12 9c0-2.761 2.239-5 5-5zM9.5 14.5c-.464 0-.892.158-1.231.424l1.606.649c.512.207.76.79.552 1.302-.207.512-.79.76-1.302.552L7.52 16.78c.136.972.971 1.721 1.981 1.721 1.105 0 2-.895 2-2s-.895-2-2-2zm3.364-2.69l-.983 1.476c.284.21.54.458.758.735l1.36-1.02c-.44-.332-.825-.735-1.135-1.191zM17 6c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm0 1c1.105 0 2 .895 2 2s-.895 2-2 2-2-.895-2-2 .895-2 2-2z"],"unicode":"","glyph":"M850 1000C988.05 1000 1100 888.05 1100 750S988.05 500 850 500C834.8000000000001 500 819.8499999999999 501.3499999999999 805.4 504L672.85 404.55C674.2500000000001 394.9 675 385.0500000000001 675 375C675 264.5 585.5 175 475 175S275 264.5 275 375C275 383.85 275.6 392.6 276.7 401.2000000000001L85.4 478.5L122.9 571.1999999999999L314.2000000000001 493.9499999999999C350.65 543.1 409.1 575 475 575C483.15 575 491.15 574.5 499 573.55L601.1 726.6C600.35 734.3 600 742.1 600 750C600 888.05 711.95 1000 850 1000zM475 475C451.8 475 430.4000000000001 467.1 413.45 453.8000000000001L493.75 421.35C519.35 411 531.75 381.85 521.35 356.25C510.9999999999999 330.65 481.85 318.2499999999999 456.25 328.65L376 361C382.8 312.3999999999999 424.55 274.95 475.05 274.95C530.3 274.95 575.05 319.7 575.05 374.95S530.3 474.9499999999999 475.05 474.9499999999999zM643.2 609.5L594.05 535.6999999999999C608.25 525.1999999999999 621.05 512.8 631.9499999999999 498.9499999999999L699.9499999999999 549.9499999999999C677.9499999999999 566.55 658.6999999999999 586.6999999999999 643.1999999999999 609.5zM850 900C767.15 900 700 832.85 700 750S767.15 600 850 600S1000 667.15 1000 750S932.85 900 850 900zM850 850C905.25 850 950 805.25 950 750S905.25 650 850 650S750 694.75 750 750S794.75 850 850 850z","horizAdvX":"1200"},"steering-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM8 13l-3.938.001A8.004 8.004 0 0 0 11 19.938V16a3 3 0 0 1-3-3zm11.938.001L16 13a3 3 0 0 1-3 3l.001 3.938a8.004 8.004 0 0 0 6.937-6.937zM12 4a8.001 8.001 0 0 0-7.938 7H8a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1h3.938A8.001 8.001 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM400 550L203.1 549.95A400.20000000000005 400.20000000000005 0 0 1 550 203.1V400A150 150 0 0 0 400 550zM996.9 549.95L800 550A150 150 0 0 0 650 400L650.05 203.1A400.20000000000005 400.20000000000005 0 0 1 996.9 549.9500000000002zM600 1000A400.04999999999995 400.04999999999995 0 0 1 203.1 650H400A50 50 0 0 0 450 700H750A50 50 0 0 0 800 650H996.9A400.04999999999995 400.04999999999995 0 0 1 600 1000z","horizAdvX":"1200"},"steering-2-line":{"path":["M0 0h24v24H0z","M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zM8 13l-3.938.001A8.004 8.004 0 0 0 11 19.938V16a3 3 0 0 1-3-3zm11.938.001L16 13a3 3 0 0 1-3 3l.001 3.938a8.004 8.004 0 0 0 6.937-6.937zM14 12h-4v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1zm-2-8a8.001 8.001 0 0 0-7.938 7H8a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1h3.938A8.001 8.001 0 0 0 12 4z"],"unicode":"","glyph":"M600 1100C876.15 1100 1100 876.15 1100 600S876.15 100 600 100S100 323.85 100 600S323.85 1100 600 1100zM400 550L203.1 549.95A400.20000000000005 400.20000000000005 0 0 1 550 203.1V400A150 150 0 0 0 400 550zM996.9 549.95L800 550A150 150 0 0 0 650 400L650.05 203.1A400.20000000000005 400.20000000000005 0 0 1 996.9 549.9500000000002zM700 600H500V550A50 50 0 0 1 550 500H650A50 50 0 0 1 700 550V600zM600 1000A400.04999999999995 400.04999999999995 0 0 1 203.1 650H400A50 50 0 0 0 450 700H750A50 50 0 0 0 800 650H996.9A400.04999999999995 400.04999999999995 0 0 1 600 1000z","horizAdvX":"1200"},"steering-fill":{"path":["M0 0h24v24H0z","M21.8 14.001a10.009 10.009 0 0 1-8.4 7.902v-2.025A8.01 8.01 0 0 0 19.748 14l2.052.001zm-17.548 0a8.01 8.01 0 0 0 6.247 5.858v2.03A10.01 10.01 0 0 1 2.2 14h2.052zM18 11v2h-1a4 4 0 0 0-3.995 3.8L13 17v1h-2v-1a4 4 0 0 0-3.8-3.995L7 13H6v-2h12zm-6-9c5.185 0 9.449 3.947 9.95 9h-2.012a8.001 8.001 0 0 0-15.876 0H2.049C2.551 5.947 6.815 2 12 2z"],"unicode":"","glyph":"M1090 499.95A500.45 500.45 0 0 0 670 104.8500000000001V206.1A400.5 400.5 0 0 1 987.4 500L1090 499.95zM212.6000000000001 499.95A400.5 400.5 0 0 1 524.9500000000002 207.0500000000001V105.55A500.50000000000006 500.50000000000006 0 0 0 110 500H212.6zM900 650V550H850A200 200 0 0 1 650.25 360L650 350V300H550V350A200 200 0 0 1 360 549.75L350 550H300V650H900zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H102.45C127.55 902.65 340.75 1100 600 1100z","horizAdvX":"1200"},"steering-line":{"path":["M0 0h24v24H0z","M21.8 14.001a10.009 10.009 0 0 1-8.4 7.902v-2.025A8.01 8.01 0 0 0 19.748 14l2.052.001zm-17.548 0a8.01 8.01 0 0 0 6.247 5.858v2.03A10.01 10.01 0 0 1 2.2 14h2.052zM18 11v2h-3a2 2 0 0 0-1.995 1.85L13 15v3h-2v-3a2 2 0 0 0-1.85-1.995L9 13H6v-2h12zm-6-9c5.185 0 9.449 3.947 9.95 9h-2.012a8.001 8.001 0 0 0-15.876 0H2.049C2.551 5.947 6.815 2 12 2z"],"unicode":"","glyph":"M1090 499.95A500.45 500.45 0 0 0 670 104.8500000000001V206.1A400.5 400.5 0 0 1 987.4 500L1090 499.95zM212.6000000000001 499.95A400.5 400.5 0 0 1 524.9500000000002 207.0500000000001V105.55A500.50000000000006 500.50000000000006 0 0 0 110 500H212.6zM900 650V550H750A100 100 0 0 1 650.25 457.5L650 450V300H550V450A100 100 0 0 1 457.5 549.75L450 550H300V650H900zM600 1100C859.2499999999999 1100 1072.4499999999998 902.65 1097.5 650H996.9A400.04999999999995 400.04999999999995 0 0 1 203.1 650H102.45C127.55 902.65 340.75 1100 600 1100z","horizAdvX":"1200"},"stethoscope-fill":{"path":["M0 0H24V24H0z","M8 3v2H6v4c0 2.21 1.79 4 4 4s4-1.79 4-4V5h-2V3h3c.552 0 1 .448 1 1v5c0 2.973-2.162 5.44-5 5.917V16.5c0 1.933 1.567 3.5 3.5 3.5 1.497 0 2.775-.94 3.275-2.263C16.728 17.27 16 16.22 16 15c0-1.657 1.343-3 3-3s3 1.343 3 3c0 1.371-.92 2.527-2.176 2.885C19.21 20.252 17.059 22 14.5 22 11.462 22 9 19.538 9 16.5v-1.583C6.162 14.441 4 11.973 4 9V4c0-.552.448-1 1-1h3z"],"unicode":"","glyph":"M400 1050V950H300V750C300 639.5 389.5 550 500 550S700 639.5 700 750V950H600V1050H750C777.6 1050 800 1027.6 800 1000V750C800 601.35 691.9000000000001 477.9999999999999 550 454.15V375C550 278.35 628.35 200 725 200C799.85 200 863.7499999999999 247.0000000000001 888.7499999999999 313.1499999999999C836.4000000000001 336.5 800 389 800 450C800 532.85 867.15 600 950 600S1100 532.85 1100 450C1100 381.4500000000001 1054 323.65 991.2 305.7500000000001C960.5 187.4000000000001 852.95 100 725 100C573.1 100 450 223.1 450 375V454.15C308.1 477.9499999999999 200 601.3499999999999 200 750V1000C200 1027.6 222.4 1050 250 1050H400z","horizAdvX":"1200"},"stethoscope-line":{"path":["M0 0H24V24H0z","M8 3v2H6v4c0 2.21 1.79 4 4 4s4-1.79 4-4V5h-2V3h3c.552 0 1 .448 1 1v5c0 2.973-2.162 5.44-5 5.917V16.5c0 1.933 1.567 3.5 3.5 3.5 1.497 0 2.775-.94 3.275-2.263C16.728 17.27 16 16.22 16 15c0-1.657 1.343-3 3-3s3 1.343 3 3c0 1.371-.92 2.527-2.176 2.885C19.21 20.252 17.059 22 14.5 22 11.462 22 9 19.538 9 16.5v-1.583C6.162 14.441 4 11.973 4 9V4c0-.552.448-1 1-1h3zm11 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M400 1050V950H300V750C300 639.5 389.5 550 500 550S700 639.5 700 750V950H600V1050H750C777.6 1050 800 1027.6 800 1000V750C800 601.35 691.9000000000001 477.9999999999999 550 454.15V375C550 278.35 628.35 200 725 200C799.85 200 863.7499999999999 247.0000000000001 888.7499999999999 313.1499999999999C836.4000000000001 336.5 800 389 800 450C800 532.85 867.15 600 950 600S1100 532.85 1100 450C1100 381.4500000000001 1054 323.65 991.2 305.7500000000001C960.5 187.4000000000001 852.95 100 725 100C573.1 100 450 223.1 450 375V454.15C308.1 477.9499999999999 200 601.3499999999999 200 750V1000C200 1027.6 222.4 1050 250 1050H400zM950 500C922.4 500 900 477.6 900 450S922.4 400 950 400S1000 422.4 1000 450S977.6 500 950 500z","horizAdvX":"1200"},"sticky-note-2-fill":{"path":["M0 0h24v24H0z","M21 16l-5.003 5H3.998A.996.996 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.447.993.999V16z"],"unicode":"","glyph":"M1050 400L799.85 150H199.9A49.800000000000004 49.800000000000004 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.65 1049.9999999999998 1000.05V400z","horizAdvX":"1200"},"sticky-note-2-line":{"path":["M0 0h24v24H0z","M3.998 21A.996.996 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.447.993.999V16l-5.003 5H3.998zM5 19h10.169L19 15.171V5H5v14z"],"unicode":"","glyph":"M199.9 150A49.800000000000004 49.800000000000004 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.65 1049.9999999999998 1000.05V400L799.8499999999998 150H199.9zM250 250H758.45L950 441.4500000000001V950H250V250z","horizAdvX":"1200"},"sticky-note-fill":{"path":["M0 0h24v24H0z","M15 14l-.117.007a1 1 0 0 0-.876.876L14 15v6H3.998A.996.996 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.447.993.999V14h-6zm6 2l-5 4.997V16h5z"],"unicode":"","glyph":"M750 500L744.15 499.65A50 50 0 0 1 700.35 455.85L700 450V150H199.9A49.800000000000004 49.800000000000004 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.65 1049.9999999999998 1000.05V500H749.9999999999998zM1050 400L800 150.1500000000001V400H1050z","horizAdvX":"1200"},"sticky-note-line":{"path":["M0 0h24v24H0z","M21 15l-6 5.996L4.002 21A.998.998 0 0 1 3 20.007V3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.456.993 1.002V15zM19 5H5v14h8v-5a1 1 0 0 1 .883-.993L14 13l5-.001V5zm-.829 9.999L15 15v3.169l3.171-3.17z"],"unicode":"","glyph":"M1050 450L750 150.1999999999998L200.1 150A49.900000000000006 49.900000000000006 0 0 0 150 199.65V1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.2 1049.9999999999998 999.9V450zM950 950H250V250H650V500A50 50 0 0 0 694.15 549.65L700 550L950 550.05V950zM908.55 450.05L750 450V291.55L908.55 450.05z","horizAdvX":"1200"},"stock-fill":{"path":["M0 0h24v24H0z","M8 5h3v9H8v3H6v-3H3V5h3V2h2v3zm10 5h3v9h-3v3h-2v-3h-3v-9h3V7h2v3z"],"unicode":"","glyph":"M400 950H550V500H400V350H300V500H150V950H300V1100H400V950zM900 700H1050V250H900V100H800V250H650V700H800V850H900V700z","horizAdvX":"1200"},"stock-line":{"path":["M0 0h24v24H0z","M8 5h3v9H8v3H6v-3H3V5h3V2h2v3zM5 7v5h4V7H5zm13 3h3v9h-3v3h-2v-3h-3v-9h3V7h2v3zm-3 2v5h4v-5h-4z"],"unicode":"","glyph":"M400 950H550V500H400V350H300V500H150V950H300V1100H400V950zM250 850V600H450V850H250zM900 700H1050V250H900V100H800V250H650V700H800V850H900V700zM750 600V350H950V600H750z","horizAdvX":"1200"},"stop-circle-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM9 9v6h6V9H9z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM450 750V450H750V750H450z","horizAdvX":"1200"},"stop-circle-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM9 9h6v6H9V9z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM450 750H750V450H450V750z","horizAdvX":"1200"},"stop-fill":{"path":["M0 0h24v24H0z","M6 5h12a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M300 950H900A50 50 0 0 0 950 900V300A50 50 0 0 0 900 250H300A50 50 0 0 0 250 300V900A50 50 0 0 0 300 950z","horizAdvX":"1200"},"stop-line":{"path":["M0 0h24v24H0z","M7 7v10h10V7H7zM6 5h12a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M350 850V350H850V850H350zM300 950H900A50 50 0 0 0 950 900V300A50 50 0 0 0 900 250H300A50 50 0 0 0 250 300V900A50 50 0 0 0 300 950z","horizAdvX":"1200"},"stop-mini-fill":{"path":["M0 0h24v24H0z","M6 7v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z"],"unicode":"","glyph":"M300 850V350A50 50 0 0 1 350 300H850A50 50 0 0 1 900 350V850A50 50 0 0 1 850 900H350A50 50 0 0 1 300 850z","horizAdvX":"1200"},"stop-mini-line":{"path":["M0 0h24v24H0z","M8 8v8h8V8H8zM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V7z"],"unicode":"","glyph":"M400 800V400H800V800H400zM300 850A50 50 0 0 0 350 900H850A50 50 0 0 0 900 850V350A50 50 0 0 0 850 300H350A50 50 0 0 0 300 350V850z","horizAdvX":"1200"},"store-2-fill":{"path":["M0 0h24v24H0z","M22 20v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242V20h1zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"],"unicode":"","glyph":"M1100 200V100H100V200H150V537.9A224.8 224.8 0 0 0 50 725C50 766.35 61.2 806.2 81.65 840.15L217.25 1075A50 50 0 0 0 260.55 1100H939.5A50 50 0 0 0 982.8 1075L1117.8999999999999 840.9A224.8 224.8 0 0 0 1050 537.9V200H1100zM289.45 1000L167.8 789.35A125 125 0 0 1 391.1 678.5500000000001C407.85 720.4000000000001 467.1 720.4000000000001 483.9 678.5500000000001A125 125 0 0 1 716.1 678.5500000000001C732.8500000000001 720.4000000000001 792.1 720.4000000000001 808.9000000000001 678.5500000000001A125 125 0 1 1 1031.75 790.1500000000001L910.5 1000H289.5z","horizAdvX":"1200"},"store-2-line":{"path":["M0 0h24v24H0z","M21 13.242V20h1v2H2v-2h1v-6.758A4.496 4.496 0 0 1 1 9.5c0-.827.224-1.624.633-2.303L4.345 2.5a1 1 0 0 1 .866-.5H18.79a1 1 0 0 1 .866.5l2.702 4.682A4.496 4.496 0 0 1 21 13.242zm-2 .73a4.496 4.496 0 0 1-3.75-1.36A4.496 4.496 0 0 1 12 14.001a4.496 4.496 0 0 1-3.25-1.387A4.496 4.496 0 0 1 5 13.973V20h14v-6.027zM5.789 4L3.356 8.213a2.5 2.5 0 0 0 4.466 2.216c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 0 0 4.644 0c.335-.837 1.52-.837 1.856 0a2.5 2.5 0 1 0 4.457-2.232L18.21 4H5.79z"],"unicode":"","glyph":"M1050 537.9V200H1100V100H100V200H150V537.9A224.8 224.8 0 0 0 50 725C50 766.35 61.2 806.2 81.65 840.15L217.25 1075A50 50 0 0 0 260.55 1100H939.5A50 50 0 0 0 982.8 1075L1117.8999999999999 840.9A224.8 224.8 0 0 0 1050 537.9zM950 501.4A224.8 224.8 0 0 0 762.5 569.3999999999999A224.8 224.8 0 0 0 600 499.95A224.8 224.8 0 0 0 437.5 569.3000000000001A224.8 224.8 0 0 0 250 501.3499999999999V200H950V501.35zM289.45 1000L167.8 789.35A125 125 0 0 1 391.1 678.5500000000001C407.85 720.4000000000001 467.1 720.4000000000001 483.9 678.5500000000001A125 125 0 0 1 716.1 678.5500000000001C732.8500000000001 720.4000000000001 792.1 720.4000000000001 808.9000000000001 678.5500000000001A125 125 0 1 1 1031.75 790.1500000000001L910.5 1000H289.5z","horizAdvX":"1200"},"store-3-fill":{"path":["M0 0h24v24H0z","M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm1 1h8v3H6v-3zM3 3h18v2H3V3z"],"unicode":"","glyph":"M1050 550V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V550H100V650L150 900H1050L1100 650V550H1050zM250 550V250H950V550H250zM300 500H700V350H300V500zM150 1050H1050V950H150V1050z","horizAdvX":"1200"},"store-3-line":{"path":["M0 0h24v24H0z","M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7H2v-2l1-5h18l1 5v2h-1zM5 13v6h14v-6H5zm-.96-2h15.92l-.6-3H4.64l-.6 3zM6 14h8v3H6v-3zM3 3h18v2H3V3z"],"unicode":"","glyph":"M1050 550V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V550H100V650L150 900H1050L1100 650V550H1050zM250 550V250H950V550H250zM202 650H998L968 800H232L202 650zM300 500H700V350H300V500zM150 1050H1050V950H150V1050z","horizAdvX":"1200"},"store-fill":{"path":["M0 0h24v24H0z","M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"],"unicode":"","glyph":"M1050 617.6999999999999V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V617.6999999999999A199.25 199.25 0 0 0 100 750V1050A50 50 0 0 0 150 1100H1050A50 50 0 0 0 1100 1050V750C1100 699.3 1081.1 653 1050 617.6999999999999zM700 750A50 50 0 0 0 800 750A100 100 0 1 1 1000 750V1000H200V750A100 100 0 1 1 400 750A50 50 0 1 0 500 750A100 100 0 1 1 700 750z","horizAdvX":"1200"},"store-line":{"path":["M0 0h24v24H0z","M21 11.646V21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9.354A3.985 3.985 0 0 1 2 9V3a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v6c0 1.014-.378 1.94-1 2.646zm-2 1.228a4.007 4.007 0 0 1-4-1.228A3.99 3.99 0 0 1 12 13a3.99 3.99 0 0 1-3-1.354 3.99 3.99 0 0 1-4 1.228V20h14v-7.126zM14 9a1 1 0 0 1 2 0 2 2 0 1 0 4 0V4H4v5a2 2 0 1 0 4 0 1 1 0 1 1 2 0 2 2 0 1 0 4 0z"],"unicode":"","glyph":"M1050 617.6999999999999V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V617.6999999999999A199.25 199.25 0 0 0 100 750V1050A50 50 0 0 0 150 1100H1050A50 50 0 0 0 1100 1050V750C1100 699.3 1081.1 653 1050 617.6999999999999zM950 556.3A200.34999999999997 200.34999999999997 0 0 0 750 617.6999999999999A199.5 199.5 0 0 0 600 550A199.5 199.5 0 0 0 450 617.6999999999999A199.5 199.5 0 0 0 250 556.3V200H950V556.3000000000001zM700 750A50 50 0 0 0 800 750A100 100 0 1 1 1000 750V1000H200V750A100 100 0 1 1 400 750A50 50 0 1 0 500 750A100 100 0 1 1 700 750z","horizAdvX":"1200"},"strikethrough-2":{"path":["M0 0h24v24H0z","M13 9h-2V6H5V4h14v2h-6v3zm0 6v5h-2v-5h2zM3 11h18v2H3v-2z"],"unicode":"","glyph":"M650 750H550V900H250V1000H950V900H650V750zM650 450V200H550V450H650zM150 650H1050V550H150V650z","horizAdvX":"1200"},"strikethrough":{"path":["M0 0h24v24H0z","M17.154 14c.23.516.346 1.09.346 1.72 0 1.342-.524 2.392-1.571 3.147C14.88 19.622 13.433 20 11.586 20c-1.64 0-3.263-.381-4.87-1.144V16.6c1.52.877 3.075 1.316 4.666 1.316 2.551 0 3.83-.732 3.839-2.197a2.21 2.21 0 0 0-.648-1.603l-.12-.117H3v-2h18v2h-3.846zm-4.078-3H7.629a4.086 4.086 0 0 1-.481-.522C6.716 9.92 6.5 9.246 6.5 8.452c0-1.236.466-2.287 1.397-3.153C8.83 4.433 10.271 4 12.222 4c1.471 0 2.879.328 4.222.984v2.152c-1.2-.687-2.515-1.03-3.946-1.03-2.48 0-3.719.782-3.719 2.346 0 .42.218.786.654 1.099.436.313.974.562 1.613.75.62.18 1.297.414 2.03.699z"],"unicode":"","glyph":"M857.7 500C869.2 474.2 875 445.5 875 414C875 346.9 848.8 294.3999999999999 796.45 256.65C744 218.9 671.65 200 579.3000000000001 200C497.3 200 416.1500000000001 219.05 335.8 257.2V369.9999999999999C411.8 326.15 489.55 304.2 569.1 304.2C696.6500000000001 304.2 760.6 340.8 761.0500000000001 414.05A110.50000000000001 110.50000000000001 0 0 1 728.6500000000001 494.1999999999999L722.6500000000001 500.05H150V600.05H1050V500.05H857.7zM653.8000000000001 650H381.45A204.3 204.3 0 0 0 357.4 676.1C335.8 704 325 737.7 325 777.4C325 839.2 348.3 891.75 394.85 935.05C441.5 978.35 513.5500000000001 1000 611.1 1000C684.65 1000 755.05 983.6 822.1999999999999 950.8V843.2C762.2 877.55 696.4499999999999 894.7 624.9 894.7C500.8999999999999 894.7 438.95 855.6 438.95 777.4C438.95 756.4 449.85 738.1 471.65 722.45C493.45 706.8 520.35 694.35 552.3 684.95C583.3 675.95 617.15 664.25 653.8 650z","horizAdvX":"1200"},"subscript-2":{"path":["M0 0h24v24H0z","M11 6v13H9V6H3V4h14v2h-6zm8.55 10.58a.8.8 0 1 0-1.32-.36l-1.154.33A2.001 2.001 0 0 1 19 14a2 2 0 0 1 1.373 3.454L18.744 19H21v1h-4v-1l2.55-2.42z"],"unicode":"","glyph":"M550 900V250H450V900H150V1000H850V900H550zM977.5 371.0000000000001A40.00000000000001 40.00000000000001 0 1 1 911.5 389L853.8000000000001 372.5000000000001A100.05000000000001 100.05000000000001 0 0 0 950 500A100 100 0 0 0 1018.65 327.3L937.2 250H1050V200H850V250L977.5 371.0000000000001z","horizAdvX":"1200"},"subscript":{"path":["M0 0h24v24H0z","M5.596 4L10.5 9.928 15.404 4H18l-6.202 7.497L18 18.994V19h-2.59l-4.91-5.934L5.59 19H3v-.006l6.202-7.497L3 4h2.596zM21.55 16.58a.8.8 0 1 0-1.32-.36l-1.155.33A2.001 2.001 0 0 1 21 14a2 2 0 0 1 1.373 3.454L20.744 19H23v1h-4v-1l2.55-2.42z"],"unicode":"","glyph":"M279.8 1000L525 703.5999999999999L770.2 1000H900L589.9 625.15L900 250.3V250H770.5L525 546.7L279.5 250H150V250.3L460.1 625.15L150 1000H279.8zM1077.5 371.0000000000001A40.00000000000001 40.00000000000001 0 1 1 1011.5 389L953.75 372.5000000000001A100.05000000000001 100.05000000000001 0 0 0 1050 500A100 100 0 0 0 1118.65 327.3L1037.2 250H1150V200H950V250L1077.5 371.0000000000001z","horizAdvX":"1200"},"subtract-fill":{"path":["M0 0h24v24H0z","M5 11h14v2H5z"],"unicode":"","glyph":"M250 650H950V550H250z","horizAdvX":"1200"},"subtract-line":{"path":["M0 0h24v24H0z","M5 11h14v2H5z"],"unicode":"","glyph":"M250 650H950V550H250z","horizAdvX":"1200"},"subway-fill":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM11 12V5H7a2 2 0 0 0-2 2v5h6zm2 0h6V7a2 2 0 0 0-2-2h-4v7zm-5.5 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM550 600V950H350A100 100 0 0 1 250 850V600H550zM650 600H950V850A100 100 0 0 1 850 950H650V600zM375 300A75 75 0 1 1 375 450A75 75 0 0 1 375 300zM825 300A75 75 0 1 1 825 450A75 75 0 0 1 825 300z","horizAdvX":"1200"},"subway-line":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM13 5v6h6V7a2 2 0 0 0-2-2h-4zm-2 0H7a2 2 0 0 0-2 2v4h6V5zm8 8H5v5h14v-5zM7.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM650 950V650H950V850A100 100 0 0 1 850 950H650zM550 950H350A100 100 0 0 1 250 850V650H550V950zM950 550H250V300H950V550zM375 350A75 75 0 1 0 375 500A75 75 0 0 0 375 350zM825 350A75 75 0 1 0 825 500A75 75 0 0 0 825 350z","horizAdvX":"1200"},"subway-wifi-fill":{"path":["M0 0h24v24H0z","M13 3v9h8v6a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h6zM7.5 15a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm9 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM11 5H7a2 2 0 0 0-1.995 1.85L5 7v5h6V5zm7.5-4a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M650 1050V600H1050V300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H650zM375 450A75 75 0 1 1 375 300A75 75 0 0 1 375 450zM825 450A75 75 0 1 1 825 300A75 75 0 0 1 825 450zM550 950H350A100 100 0 0 1 250.25 857.5L250 850V600H550V950zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"subway-wifi-line":{"path":["M0 0h24v24H0z","M21 18a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h6v8h8v7zm-2-5H5v5h14v-5zM7.5 14a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm9 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM11 5H7a2 2 0 0 0-1.995 1.85L5 7v4h6V5zm7.5-4a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M1050 300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H650V650H1050V300zM950 550H250V300H950V550zM375 500A75 75 0 1 0 375 350A75 75 0 0 0 375 500zM825 500A75 75 0 1 0 825 350A75 75 0 0 0 825 500zM550 950H350A100 100 0 0 1 250.25 857.5L250 850V650H550V950zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"suitcase-2-fill":{"path":["M0 0H24V24H0z","M18 23h-2v-1H8v1H6v-1H5c-1.105 0-2-.895-2-2V7c0-1.105.895-2 2-2h3V3c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v2h3c1.105 0 2 .895 2 2v13c0 1.105-.895 2-2 2h-1v1zM10 9H8v9h2V9zm6 0h-2v9h2V9zm-2-5h-4v1h4V4z"],"unicode":"","glyph":"M900 50H800V100H400V50H300V100H250C194.75 100 150 144.75 150 200V850C150 905.25 194.75 950 250 950H400V1050C400 1077.6 422.4000000000001 1100 450 1100H750C777.6 1100 800 1077.6 800 1050V950H950C1005.25 950 1050 905.25 1050 850V200C1050 144.75 1005.25 100 950 100H900V50zM500 750H400V300H500V750zM800 750H700V300H800V750zM700 1000H500V950H700V1000z","horizAdvX":"1200"},"suitcase-2-line":{"path":["M0 0H24V24H0z","M18 23h-2v-1H8v1H6v-1H5c-1.105 0-2-.895-2-2V7c0-1.105.895-2 2-2h3V3c0-.552.448-1 1-1h6c.552 0 1 .448 1 1v2h3c1.105 0 2 .895 2 2v13c0 1.105-.895 2-2 2h-1v1zm1-16H5v13h14V7zm-9 2v9H8V9h2zm6 0v9h-2V9h2zm-2-5h-4v1h4V4z"],"unicode":"","glyph":"M900 50H800V100H400V50H300V100H250C194.75 100 150 144.75 150 200V850C150 905.25 194.75 950 250 950H400V1050C400 1077.6 422.4000000000001 1100 450 1100H750C777.6 1100 800 1077.6 800 1050V950H950C1005.25 950 1050 905.25 1050 850V200C1050 144.75 1005.25 100 950 100H900V50zM950 850H250V200H950V850zM500 750V300H400V750H500zM800 750V300H700V750H800zM700 1000H500V950H700V1000z","horizAdvX":"1200"},"suitcase-3-fill":{"path":["M0 0H24V24H0z","M15 1c.552 0 1 .448 1 1v5h1V6h2v1h1c.552 0 1 .448 1 1v12c0 .552-.448 1-1 1h-1v1h-2v-1H7v1H5v-1H4c-.552 0-1-.448-1-1V8c0-.552.448-1 1-1h1V6h2v1h1V2c0-.552.448-1 1-1h6zm-6 9H7v8h2v-8zm4 0h-2v8h2v-8zm4 0h-2v8h2v-8zm-3-7h-4v4h4V3z"],"unicode":"","glyph":"M750 1150C777.6 1150 800 1127.6 800 1100V850H850V900H950V850H1000C1027.6 850 1050 827.5999999999999 1050 800V200C1050 172.4000000000001 1027.6 150 1000 150H950V100H850V150H350V100H250V150H200C172.4 150 150 172.4000000000001 150 200V800C150 827.5999999999999 172.4 850 200 850H250V900H350V850H400V1100C400 1127.6 422.4000000000001 1150 450 1150H750zM450 700H350V300H450V700zM650 700H550V300H650V700zM850 700H750V300H850V700zM700 1050H500V850H700V1050z","horizAdvX":"1200"},"suitcase-3-line":{"path":["M0 0H24V24H0z","M15 1c.552 0 1 .448 1 1v5h1V6h2v1h1c.552 0 1 .448 1 1v12c0 .552-.448 1-1 1h-1v1h-2v-1H7v1H5v-1H4c-.552 0-1-.448-1-1V8c0-.552.448-1 1-1h1V6h2v1h1V2c0-.552.448-1 1-1h6zm4 8H5v10h14V9zM9 10v8H7v-8h2zm4 0v8h-2v-8h2zm4 0v8h-2v-8h2zm-3-7h-4v4h4V3z"],"unicode":"","glyph":"M750 1150C777.6 1150 800 1127.6 800 1100V850H850V900H950V850H1000C1027.6 850 1050 827.5999999999999 1050 800V200C1050 172.4000000000001 1027.6 150 1000 150H950V100H850V150H350V100H250V150H200C172.4 150 150 172.4000000000001 150 200V800C150 827.5999999999999 172.4 850 200 850H250V900H350V850H400V1100C400 1127.6 422.4000000000001 1150 450 1150H750zM950 750H250V250H950V750zM450 700V300H350V700H450zM650 700V300H550V700H650zM850 700V300H750V700H850zM700 1050H500V850H700V1050z","horizAdvX":"1200"},"suitcase-fill":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v13c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V7c0-.552.448-1 1-1h5V4c0-.552.448-1 1-1h6zM8 8H6v11h2V8zm10 0h-2v11h2V8zm-4-3h-4v1h4V5z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1050C1077.6 900 1100 877.5999999999999 1100 850V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V850C100 877.5999999999999 122.4 900 150 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM400 800H300V250H400V800zM900 800H800V250H900V800zM700 950H500V900H700V950z","horizAdvX":"1200"},"suitcase-line":{"path":["M0 0H24V24H0z","M15 3c.552 0 1 .448 1 1v2h5c.552 0 1 .448 1 1v13c0 .552-.448 1-1 1H3c-.552 0-1-.448-1-1V7c0-.552.448-1 1-1h5V4c0-.552.448-1 1-1h6zm1 5H8v11h8V8zM4 8v11h2V8H4zm10-3h-4v1h4V5zm4 3v11h2V8h-2z"],"unicode":"","glyph":"M750 1050C777.6 1050 800 1027.6 800 1000V900H1050C1077.6 900 1100 877.5999999999999 1100 850V200C1100 172.4000000000001 1077.6 150 1050 150H150C122.4 150 100 172.4000000000001 100 200V850C100 877.5999999999999 122.4 900 150 900H400V1000C400 1027.6 422.4000000000001 1050 450 1050H750zM800 800H400V250H800V800zM200 800V250H300V800H200zM700 950H500V900H700V950zM900 800V250H1000V800H900z","horizAdvX":"1200"},"sun-cloudy-fill":{"path":["M0 0h24v24H0z","M9.984 5.06a6.5 6.5 0 1 1 11.286 6.436A5.5 5.5 0 0 1 17.5 21L9 20.999a8 8 0 1 1 .984-15.94zm2.071.544a8.026 8.026 0 0 1 4.403 4.495 5.529 5.529 0 0 1 3.12.307 4.5 4.5 0 0 0-7.522-4.802z"],"unicode":"","glyph":"M499.2 947A325 325 0 1 0 1063.5 625.2A275 275 0 0 0 875 150L450 150.05A400 400 0 1 0 499.2 947.05zM602.75 919.8A401.3 401.3 0 0 0 822.8999999999999 695.05A276.45000000000005 276.45000000000005 0 0 0 978.9 679.6999999999999A225 225 0 0 1 602.8 919.8z","horizAdvX":"1200"},"sun-cloudy-line":{"path":["M0 0h24v24H0z","M9.984 5.06a6.5 6.5 0 1 1 11.286 6.436A5.5 5.5 0 0 1 17.5 21L9 20.999a8 8 0 1 1 .984-15.94zm2.071.544a8.026 8.026 0 0 1 4.403 4.495 5.529 5.529 0 0 1 3.12.307 4.5 4.5 0 0 0-7.522-4.802zM17.5 19a3.5 3.5 0 1 0-2.5-5.95V13a6 6 0 1 0-6 6h8.5z"],"unicode":"","glyph":"M499.2 947A325 325 0 1 0 1063.5 625.2A275 275 0 0 0 875 150L450 150.05A400 400 0 1 0 499.2 947.05zM602.75 919.8A401.3 401.3 0 0 0 822.8999999999999 695.05A276.45000000000005 276.45000000000005 0 0 0 978.9 679.6999999999999A225 225 0 0 1 602.8 919.8zM875 250A175 175 0 1 1 750 547.5V550A300 300 0 1 1 450 250H875z","horizAdvX":"1200"},"sun-fill":{"path":["M0 0h24v24H0z","M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM550 1150H650V1000H550V1150zM550 200H650V50H550V200zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM281.8 352.5L352.5 281.8L246.45 175.75L175.75 246.4500000000001L281.8000000000001 352.5zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"sun-foggy-fill":{"path":["M0 0h24v24H0z","M6.341 14A6 6 0 1 1 12 18v-4H6.341zM6 20h9v2H6v-2zm-5-9h3v2H1v-2zm1 5h8v2H2v-2zm9-15h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3z"],"unicode":"","glyph":"M317.05 500A300 300 0 1 0 600 300V500H317.05zM300 200H750V100H300V200zM50 650H200V550H50V650zM100 400H500V300H100V400zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM1150 650V550H1000V650H1150z","horizAdvX":"1200"},"sun-foggy-line":{"path":["M0 0h24v24H0z","M8 12h2v2H4v-2h2a6 6 0 1 1 6 6v-2a4 4 0 1 0-4-4zm-2 8h9v2H6v-2zm-4-4h8v2H2v-2zm9-15h2v3h-2V1zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3z"],"unicode":"","glyph":"M400 600H500V500H200V600H300A300 300 0 1 0 600 300V400A200 200 0 1 1 400 600zM300 200H750V100H300V200zM100 400H500V300H100V400zM550 1150H650V1000H550V1150zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM1150 650V550H1000V650H1150z","horizAdvX":"1200"},"sun-line":{"path":["M0 0h24v24H0z","M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"],"unicode":"","glyph":"M600 300A300 300 0 1 0 600 900A300 300 0 0 0 600 300zM600 400A200 200 0 1 1 600 800A200 200 0 0 1 600 400zM550 1150H650V1000H550V1150zM550 200H650V50H550V200zM175.75 953.55L246.45 1024.25L352.5 918.2L281.8 847.5L175.75 953.5zM847.5 281.8L918.2 352.5L1024.25 246.4500000000001L953.55 175.75L847.5 281.8zM953.55 1024.3L1024.25 953.55L918.2 847.5L847.5 918.2L953.55 1024.25zM281.8 352.5L352.5 281.8L246.45 175.75L175.75 246.4500000000001L281.8000000000001 352.5zM1150 650V550H1000V650H1150zM200 650V550H50V650H200z","horizAdvX":"1200"},"superscript-2":{"path":["M0 0h24v24H0z","M11 7v13H9V7H3V5h12v2h-4zm8.55-.42a.8.8 0 1 0-1.32-.36l-1.154.33A2.001 2.001 0 0 1 19 4a2 2 0 0 1 1.373 3.454L18.744 9H21v1h-4V9l2.55-2.42z"],"unicode":"","glyph":"M550 850V200H450V850H150V950H750V850H550zM977.5 871A40.00000000000001 40.00000000000001 0 1 1 911.5 889L853.8000000000001 872.5A100.05000000000001 100.05000000000001 0 0 0 950 1000A100 100 0 0 0 1018.65 827.3L937.2 750H1050V700H850V750L977.5 871z","horizAdvX":"1200"},"superscript":{"path":["M0 0h24v24H0z","M5.596 5l4.904 5.928L15.404 5H18l-6.202 7.497L18 19.994V20h-2.59l-4.91-5.934L5.59 20H3v-.006l6.202-7.497L3 5h2.596zM21.55 6.58a.8.8 0 1 0-1.32-.36l-1.155.33A2.001 2.001 0 0 1 21 4a2 2 0 0 1 1.373 3.454L20.744 9H23v1h-4V9l2.55-2.42z"],"unicode":"","glyph":"M279.8 950L525 653.5999999999999L770.2 950H900L589.9 575.15L900 200.3V200H770.5L525 496.7L279.5 200H150V200.3L460.1 575.15L150 950H279.8zM1077.5 871A40.00000000000001 40.00000000000001 0 1 1 1011.5 889L953.75 872.5A100.05000000000001 100.05000000000001 0 0 0 1050 1000A100 100 0 0 0 1118.65 827.3L1037.2 750H1150V700H950V750L1077.5 871z","horizAdvX":"1200"},"surgical-mask-fill":{"path":["M0 0H24V24H0z","M12.485 3.121l7.758 1.94c.445.11.757.51.757.97V7h1c1.1 0 2 .9 2 2v3c0 1.657-1.343 3-3 3h-.421c-.535 1.35-1.552 2.486-2.896 3.158l-4.789 2.395c-.563.281-1.225.281-1.788 0l-4.79-2.395C4.974 17.486 3.957 16.35 3.422 15H3c-1.657 0-3-1.343-3-3V9c0-1.105.895-2 2-2h1v-.97c0-.458.312-.858.757-.97l7.758-1.939c.318-.08.652-.08.97 0zM3 9H2v3c0 .552.448 1 1 1V9zm19 0h-1v4c.552 0 1-.448 1-1V9z"],"unicode":"","glyph":"M624.25 1043.95L1012.15 946.95C1034.3999999999999 941.45 1050 921.45 1050 898.45V850H1100C1155 850 1200 805 1200 750V600C1200 517.15 1132.85 450 1050 450H1028.95C1002.2 382.4999999999999 951.35 325.7 884.15 292.0999999999999L644.7 172.3499999999999C616.55 158.3 583.45 158.3 555.3 172.3499999999999L315.8 292.0999999999999C248.7 325.7 197.85 382.4999999999999 171.1 450H150C67.15 450 0 517.15 0 600V750C0 805.25 44.75 850 100 850H150V898.5C150 921.4 165.6 941.4 187.85 947L575.75 1043.95C591.65 1047.95 608.35 1047.95 624.2500000000001 1043.95zM150 750H100V600C100 572.4 122.4 550 150 550V750zM1100 750H1050V550C1077.6 550 1100 572.4 1100 600V750z","horizAdvX":"1200"},"surgical-mask-line":{"path":["M0 0H24V24H0z","M12.485 3.121l7.758 1.94c.445.11.757.51.757.97V7h1c1.1 0 2 .9 2 2v3c0 1.657-1.343 3-3 3h-.421c-.535 1.35-1.552 2.486-2.896 3.158l-4.789 2.395c-.563.281-1.225.281-1.788 0l-4.79-2.395C4.974 17.486 3.957 16.35 3.422 15H3c-1.657 0-3-1.343-3-3V9c0-1.105.895-2 2-2h1v-.97c0-.458.312-.858.757-.97l7.758-1.939c.318-.08.652-.08.97 0zM12 5.061l-7 1.75v5.98c0 1.516.856 2.9 2.211 3.579L12 18.764l4.789-2.394C18.144 15.692 19 14.307 19 12.792v-5.98l-7-1.75zM3 9H2v3c0 .552.448 1 1 1V9zm19 0h-1v4c.552 0 1-.448 1-1V9z"],"unicode":"","glyph":"M624.25 1043.95L1012.15 946.95C1034.3999999999999 941.45 1050 921.45 1050 898.45V850H1100C1155 850 1200 805 1200 750V600C1200 517.15 1132.85 450 1050 450H1028.95C1002.2 382.4999999999999 951.35 325.7 884.15 292.0999999999999L644.7 172.3499999999999C616.55 158.3 583.45 158.3 555.3 172.3499999999999L315.8 292.0999999999999C248.7 325.7 197.85 382.4999999999999 171.1 450H150C67.15 450 0 517.15 0 600V750C0 805.25 44.75 850 100 850H150V898.5C150 921.4 165.6 941.4 187.85 947L575.75 1043.95C591.65 1047.95 608.35 1047.95 624.2500000000001 1043.95zM600 946.95L250 859.45V560.4499999999999C250 484.65 292.8 415.45 360.55 381.5L600 261.8000000000001L839.45 381.5000000000001C907.2 415.4 950 484.65 950 560.4V859.4000000000001L600 946.9zM150 750H100V600C100 572.4 122.4 550 150 550V750zM1100 750H1050V550C1077.6 550 1100 572.4 1100 600V750z","horizAdvX":"1200"},"surround-sound-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.05 4.121A6.978 6.978 0 0 0 5 12.071c0 1.933.784 3.683 2.05 4.95l1.414-1.414A4.984 4.984 0 0 1 7 12.07c0-1.38.56-2.63 1.464-3.535L7.05 7.12zm9.9 0l-1.414 1.415A4.984 4.984 0 0 1 17 12.07c0 1.38-.56 2.63-1.464 3.536l1.414 1.414A6.978 6.978 0 0 0 19 12.07a6.978 6.978 0 0 0-2.05-4.95zM12 15.071a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-2a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM352.5 843.95A348.9 348.9 0 0 1 250 596.45C250 499.8000000000001 289.2 412.3000000000001 352.5 348.95L423.2000000000001 419.65A249.2 249.2 0 0 0 350 596.5C350 665.4999999999999 378 728 423.2000000000001 773.25L352.5 844zM847.5 843.95L776.8 773.1999999999999A249.2 249.2 0 0 0 850 596.5C850 527.5 822.0000000000001 465 776.8 419.7000000000001L847.5 349A348.9 348.9 0 0 1 950 596.5A348.9 348.9 0 0 1 847.5 844zM600 446.4500000000001A150 150 0 1 1 600 746.45A150 150 0 0 1 600 446.4500000000001zM600 546.45A50 50 0 1 0 600 646.45A50 50 0 0 0 600 546.45z","horizAdvX":"1200"},"surround-sound-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm4.05 4.121l1.414 1.415A4.984 4.984 0 0 0 7 12.07c0 1.38.56 2.63 1.464 3.536L7.05 17.02A6.978 6.978 0 0 1 5 12.07c0-1.933.784-3.683 2.05-4.95zm9.9 0a6.978 6.978 0 0 1 2.05 4.95 6.978 6.978 0 0 1-2.05 4.95l-1.414-1.414A4.984 4.984 0 0 0 17 12.07c0-1.38-.56-2.63-1.464-3.535L16.95 7.12zM12 13.071a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM352.5 843.95L423.2000000000001 773.1999999999999A249.2 249.2 0 0 1 350 596.5C350 527.5 378 465 423.2000000000001 419.7000000000001L352.5 349A348.9 348.9 0 0 0 250 596.5C250 693.15 289.2 780.65 352.5 844zM847.5 843.95A348.9 348.9 0 0 0 950 596.4499999999999A348.9 348.9 0 0 0 847.5 348.95L776.8 419.65A249.2 249.2 0 0 1 850 596.5C850 665.4999999999999 822.0000000000001 728 776.8 773.25L847.5 844zM600 546.45A50 50 0 1 1 600 646.45A50 50 0 0 1 600 546.45zM600 446.4500000000001A150 150 0 1 0 600 746.45A150 150 0 0 0 600 446.4500000000001z","horizAdvX":"1200"},"survey-fill":{"path":["M0 0L24 0 24 24 0 24z","M6 4v4h12V4h2.007c.548 0 .993.445.993.993v16.014c0 .548-.445.993-.993.993H3.993C3.445 22 3 21.555 3 21.007V4.993C3 4.445 3.445 4 3.993 4H6zm3 13H7v2h2v-2zm0-3H7v2h2v-2zm0-3H7v2h2v-2zm7-9v4H8V2h8z"],"unicode":"","glyph":"M300 1000V800H900V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001C1050 122.25 1027.75 100.0000000000002 1000.35 100.0000000000002H199.65C172.25 100 150 122.25 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H300zM450 350H350V250H450V350zM450 500H350V400H450V500zM450 650H350V550H450V650zM800 1100V900H400V1100H800z","horizAdvX":"1200"},"survey-line":{"path":["M0 0L24 0 24 24 0 24z","M17 2v2h3.007c.548 0 .993.445.993.993v16.014c0 .548-.445.993-.993.993H3.993C3.445 22 3 21.555 3 21.007V4.993C3 4.445 3.445 4 3.993 4H7V2h10zM7 6H5v14h14V6h-2v2H7V6zm2 10v2H7v-2h2zm0-3v2H7v-2h2zm0-3v2H7v-2h2zm6-6H9v2h6V4z"],"unicode":"","glyph":"M850 1100V1000H1000.35C1027.75 1000 1050 977.75 1050 950.35V149.6500000000001C1050 122.25 1027.75 100.0000000000002 1000.35 100.0000000000002H199.65C172.25 100 150 122.25 150 149.6499999999999V950.35C150 977.75 172.25 1000 199.65 1000H350V1100H850zM350 900H250V200H950V900H850V800H350V900zM450 400V300H350V400H450zM450 550V450H350V550H450zM450 700V600H350V700H450zM750 1000H450V900H750V1000z","horizAdvX":"1200"},"swap-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm12 4v2h-4v2h4v2l3.5-3L15 7zM9 17v-2h4v-2H9v-2l-3.5 3L9 17z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM750 850V750H550V650H750V550L925 700L750 850zM450 350V450H650V550H450V650L275 500L450 350z","horizAdvX":"1200"},"swap-box-line":{"path":["M0 0h24v24H0z","M4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm12 4l3.5 3-3.5 3v-2h-4V9h4V7zM9 17l-3.5-3L9 11v2h4v2H9v2z"],"unicode":"","glyph":"M200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM750 850L925 700L750 550V650H550V750H750V850zM450 350L275 500L450 650V550H650V450H450V350z","horizAdvX":"1200"},"swap-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 9h2v4h2V9h2l-3-3.5L7 9zm10 6h-2v-4h-2v4h-2l3 3.5 3-3.5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 750H450V550H550V750H650L500 925L350 750zM850 450H750V650H650V450H550L700 275L850 450z","horizAdvX":"1200"},"swap-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM7 9l3-3.5L13 9h-2v4H9V9H7zm10 6l-3 3.5-3-3.5h2v-4h2v4h2z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 750L500 925L650 750H550V550H450V750H350zM850 450L700 275L550 450H650V650H750V450H850z","horizAdvX":"1200"},"switch-fill":{"path":["M0 0h24v24H0z","M13.619 21c-.085 0-.141-.057-.127-.127V3.127c0-.056.042-.113.113-.113h2.785A4.61 4.61 0 0 1 21 7.624v8.766A4.61 4.61 0 0 1 16.39 21H13.62zm3.422-9.926c-1.004 0-1.824.82-1.824 1.824s.82 1.824 1.824 1.824 1.824-.82 1.824-1.824-.82-1.824-1.824-1.824zM5.8 8.4c0-.933.763-1.696 1.696-1.696.934 0 1.697.763 1.697 1.696 0 .934-.763 1.697-1.697 1.697A1.702 1.702 0 0 1 5.8 8.401zM11.54 3c.085 0 .142.057.128.127V20.86c0 .07-.057.127-.128.127H7.61A4.61 4.61 0 0 1 3 16.376V7.61A4.61 4.61 0 0 1 7.61 3h3.93zm-1.315 16.544V4.442H7.61c-.849 0-1.64.34-2.235.933a3.088 3.088 0 0 0-.933 2.235v8.766c0 .849.34 1.64.933 2.234a3.088 3.088 0 0 0 2.235.934h2.615z"],"unicode":"","glyph":"M680.95 150C676.6999999999999 150 673.9 152.8499999999999 674.5999999999999 156.3499999999999V1043.65C674.5999999999999 1046.45 676.6999999999999 1049.3 680.2499999999999 1049.3H819.5A230.50000000000003 230.50000000000003 0 0 0 1050 818.8V380.5A230.50000000000003 230.50000000000003 0 0 0 819.5 150H681zM852.0500000000001 646.3C801.8499999999999 646.3 760.85 605.3 760.85 555.1S801.8499999999999 463.9 852.0500000000001 463.9S943.2500000000002 504.9000000000001 943.2500000000002 555.1S902.2500000000002 646.3 852.0500000000001 646.3zM290 780C290 826.65 328.15 864.8 374.8 864.8C421.5 864.8 459.65 826.65 459.65 780C459.65 733.3 421.5 695.1499999999999 374.8 695.1499999999999A85.1 85.1 0 0 0 290 779.95zM577 1050C581.25 1050 584.0999999999999 1047.15 583.4 1043.65V157C583.4 153.5 580.55 150.6500000000001 577 150.6500000000001H380.5A230.50000000000003 230.50000000000003 0 0 0 150 381.2V819.5A230.50000000000003 230.50000000000003 0 0 0 380.5 1050H577zM511.25 222.8V977.9H380.5C338.05 977.9 298.5000000000001 960.9 268.75 931.25A154.4 154.4 0 0 1 222.1 819.5V381.2000000000002C222.1 338.7500000000001 239.1 299.2000000000001 268.75 269.5A154.4 154.4 0 0 1 380.5 222.8H511.25z","horizAdvX":"1200"},"switch-line":{"path":["M0 0h24v24H0z","M12 3v18H7.6A4.6 4.6 0 0 1 3 16.4V7.6A4.6 4.6 0 0 1 7.6 3H12zm-2 2H7.6A2.6 2.6 0 0 0 5 7.6v8.8A2.6 2.6 0 0 0 7.6 19H10V5zm-2.5 5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM14 3h2.4A4.6 4.6 0 0 1 21 7.6v8.8a4.6 4.6 0 0 1-4.6 4.6H14V3zm3 11.7a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6z"],"unicode":"","glyph":"M600 1050V150H380A230 230 0 0 0 150 380.0000000000001V820A230 230 0 0 0 380 1050H600zM500 950H380A130 130 0 0 1 250 820V380.0000000000001A130 130 0 0 1 380 250H500V950zM375 700A75 75 0 1 0 375 850A75 75 0 0 0 375 700zM700 1050H819.9999999999999A230 230 0 0 0 1050 820V380.0000000000001A230 230 0 0 0 819.9999999999999 150H700V1050zM850 465A90.00000000000001 90.00000000000001 0 1 1 850 645A90.00000000000001 90.00000000000001 0 0 1 850 465z","horizAdvX":"1200"},"sword-fill":{"path":["M0 0h24v24H0z","M7.05 13.406l3.534 3.536-1.413 1.414 1.415 1.415-1.414 1.414-2.475-2.475-2.829 2.829-1.414-1.414 2.829-2.83-2.475-2.474 1.414-1.414 1.414 1.413 1.413-1.414zM3 3l3.546.003 11.817 11.818 1.415-1.414 1.414 1.414-2.474 2.475 2.828 2.829-1.414 1.414-2.829-2.829-2.475 2.475-1.414-1.414 1.414-1.415L3.003 6.531 3 3zm14.457 0L21 3.003l.002 3.523-4.053 4.052-3.536-3.535L17.457 3z"],"unicode":"","glyph":"M352.5 529.6999999999999L529.1999999999999 352.9L458.55 282.2L529.3 211.4499999999999L458.6 140.75L334.85 264.5L193.4 123.05L122.7 193.75L264.15 335.2499999999999L140.4 458.9499999999999L211.1 529.6499999999999L281.8 458.9999999999999L352.45 529.6999999999999zM150 1050L327.3 1049.85L918.15 458.95L988.9 529.65L1059.6 458.95L935.9 335.2000000000001L1077.3 193.75L1006.6 123.05L865.1499999999999 264.5L741.3999999999999 140.75L670.6999999999999 211.4499999999999L741.3999999999999 282.2L150.15 873.45L150 1050zM872.85 1050L1050 1049.85L1050.1 873.7L847.4499999999999 671.1L670.65 847.85L872.85 1050z","horizAdvX":"1200"},"sword-line":{"path":["M0 0h24v24H0z","M17.457 3L21 3.003l.002 3.523-5.467 5.466 2.828 2.829 1.415-1.414 1.414 1.414-2.474 2.475 2.828 2.829-1.414 1.414-2.829-2.829-2.475 2.475-1.414-1.414 1.414-1.415-2.829-2.828-2.828 2.828 1.415 1.415-1.414 1.414-2.475-2.475-2.829 2.829-1.414-1.414 2.829-2.83-2.475-2.474 1.414-1.414 1.414 1.413 2.827-2.828-5.46-5.46L3 3l3.546.003 5.453 5.454L17.457 3zm-7.58 10.406L7.05 16.234l.708.707 2.827-2.828-.707-.707zm9.124-8.405h-.717l-4.87 4.869.706.707 4.881-4.879v-.697zm-14 0v.7l11.241 11.241.707-.707L5.716 5.002l-.715-.001z"],"unicode":"","glyph":"M872.85 1050L1050 1049.85L1050.1 873.7L776.75 600.4L918.15 458.9499999999999L988.9 529.6499999999999L1059.6 458.9499999999999L935.9 335.1999999999998L1077.3 193.7499999999998L1006.6 123.0499999999997L865.1499999999999 264.4999999999998L741.3999999999999 140.7499999999998L670.6999999999999 211.4499999999998L741.3999999999999 282.1999999999997L599.9499999999998 423.5999999999997L458.5499999999999 282.1999999999997L529.3 211.4499999999998L458.6 140.7499999999998L334.85 264.4999999999998L193.4 123.0499999999997L122.7 193.7499999999998L264.15 335.2499999999999L140.4 458.9499999999999L211.1 529.6499999999999L281.8 458.9999999999999L423.15 600.3999999999999L150.15 873.3999999999999L150 1050L327.3 1049.85L599.9499999999999 777.15L872.85 1050zM493.85 529.6999999999999L352.5 388.3L387.9 352.9499999999998L529.25 494.3499999999998L493.9 529.6999999999999zM950.05 949.95H914.2000000000002L670.7 706.5L706 671.1499999999999L950.05 915.1V949.95zM250.0500000000001 949.95V914.95L812.1 352.9L847.45 388.25L285.8 949.9L250.05 949.95z","horizAdvX":"1200"},"syringe-fill":{"path":["M0 0H24V24H0z","M21.678 7.98l-1.415 1.413-2.12-2.12-2.122 2.12 3.535 3.536-1.414 1.414-.707-.707L11.071 20H5.414l-2.121 2.121-1.414-1.414L4 18.586v-5.657l6.364-6.364-.707-.707 1.414-1.414 3.536 3.535 2.12-2.121-2.12-2.121 1.414-1.415 5.657 5.657zM9.657 14.342l-2.829-2.828-1.414 1.414 2.829 2.828 1.414-1.414zm2.828-2.828L9.657 8.686l-1.414 1.415 2.828 2.828 1.414-1.414z"],"unicode":"","glyph":"M1083.9 801L1013.15 730.3499999999999L907.15 836.3499999999999L801.0500000000001 730.3499999999999L977.8 553.55L907.1 482.85L871.7499999999999 518.2L553.55 200H270.7L164.65 93.9500000000001L93.95 164.6500000000001L200 270.7000000000001V553.5500000000001L518.2 871.75L482.85 907.1000000000003L553.55 977.8L730.3499999999999 801.0500000000001L836.35 907.1000000000003L730.3499999999999 1013.15L801.0500000000001 1083.9L1083.9 801.0500000000001zM482.85 482.9L341.4 624.3L270.7 553.5999999999999L412.1500000000001 412.2000000000001L482.85 482.9zM624.25 624.3L482.85 765.7L412.1500000000001 694.95L553.55 553.5500000000001L624.25 624.2500000000001z","horizAdvX":"1200"},"syringe-line":{"path":["M0 0H24V24H0z","M21.678 7.98l-1.415 1.413-2.12-2.12-2.122 2.12 3.535 3.536-1.414 1.414-.707-.707L11.071 20H5.414l-2.121 2.121-1.414-1.414L4 18.586v-5.657l6.364-6.364-.707-.707 1.414-1.414 3.536 3.535 2.12-2.121-2.12-2.121 1.414-1.415 5.657 5.657zm-5.657 4.242l-4.243-4.243-1.414 1.414 2.121 2.122-1.414 1.414-2.121-2.121-1.414 1.414 2.12 2.121-1.413 1.414-2.122-2.121-.121.121V18h4.243l5.778-5.778z"],"unicode":"","glyph":"M1083.9 801L1013.15 730.3499999999999L907.15 836.3499999999999L801.0500000000001 730.3499999999999L977.8 553.55L907.1 482.85L871.7499999999999 518.2L553.55 200H270.7L164.65 93.9500000000001L93.95 164.6500000000001L200 270.7000000000001V553.5500000000001L518.2 871.75L482.85 907.1000000000003L553.55 977.8L730.3499999999999 801.0500000000001L836.35 907.1000000000003L730.3499999999999 1013.15L801.0500000000001 1083.9L1083.9 801.0500000000001zM801.0500000000001 588.9L588.9 801.05L518.2 730.3499999999999L624.2500000000001 624.25L553.5500000000001 553.55L447.5000000000001 659.6L376.8000000000001 588.9L482.8000000000001 482.85L412.1500000000001 412.15L306.0500000000002 518.2L300.0000000000001 512.15V300H512.1500000000001L801.0500000000001 588.9z","horizAdvX":"1200"},"t-box-fill":{"path":["M0 0h24v24H0z","M17 8H7v2h4v7h2v-7h4V8zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M850 800H350V700H550V350H650V700H850V800zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"t-box-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 7v7h-2v-7H7V8h10v2h-4z"],"unicode":"","glyph":"M250 950V250H950V950H250zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050zM650 700V350H550V700H350V800H850V700H650z","horizAdvX":"1200"},"t-shirt-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-2.001L19 20a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6a3 3 0 0 0 6 0h6z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H949.95L950 200A50 50 0 0 0 900 150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450A150 150 0 0 1 750 1050H1050z","horizAdvX":"1200"},"t-shirt-2-line":{"path":["M0 0h24v24H0z","M9 3a3 3 0 0 0 6 0h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-2.001L19 20a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm11 1.999h-3.417l-.017.041a5.002 5.002 0 0 1-4.35 2.955L12 8a5.001 5.001 0 0 1-4.566-2.96L7.416 5H4v5l2.999-.001V19H17l-.001-9L20 9.999v-5z"],"unicode":"","glyph":"M450 1050A150 150 0 0 1 750 1050H1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H949.95L950 200A50 50 0 0 0 900 150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450zM1000 950.05H829.1499999999999L828.3 948A250.09999999999997 250.09999999999997 0 0 0 610.8 800.25L600 800A250.05000000000004 250.05000000000004 0 0 0 371.7 948L370.8 950H200V700L349.9500000000001 700.05V250H850L849.9499999999999 700L1000 700.05V950.05z","horizAdvX":"1200"},"t-shirt-air-fill":{"path":["M0 0h24v24H0z","M12.707 17.793C13.534 18.62 14.295 19 15 19c.378 0 .68-.067 1.237-.276l.392-.152C17.679 18.15 18.209 18 19 18c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 20.38 19.705 20 19 20c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414zM9 3a3 3 0 0 0 6 0h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-9a2 2 0 0 0-1.995 1.85L10 14v7H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm3.707 10.793C13.534 14.62 14.295 15 15 15c.378 0 .68-.067 1.237-.276l.392-.152C17.679 14.15 18.209 14 19 14c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 16.38 19.705 16 19 16c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414z"],"unicode":"","glyph":"M635.35 310.35C676.7 269 714.75 250 750 250C768.9 250 784 253.35 811.8500000000001 263.8L831.45 271.4000000000001C883.9499999999999 292.5000000000001 910.45 300 950 300C1010.7 300 1068.95 272.7499999999999 1124.3 221.0000000000001L1135.3500000000001 210.35L1064.6499999999999 139.6499999999999C1023.3 181 985.2499999999998 200 950 200C931.1 200 916 196.65 888.1499999999999 186.2000000000001L868.55 178.5999999999999C816.05 157.55 789.55 150 749.9999999999999 150C689.2999999999998 150 631.05 177.2500000000001 575.6999999999999 228.9999999999999L564.6499999999999 239.65L635.3499999999999 310.35zM450 1050A150 150 0 0 1 750 1050H1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H600A100 100 0 0 1 500.2499999999999 507.5L500 500V150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450zM635.35 510.35C676.7 469 714.75 450 750 450C768.9 450 784 453.35 811.8500000000001 463.8L831.45 471.4C883.9499999999999 492.5 910.45 500 950 500C1010.7 500 1068.95 472.75 1124.3 421L1135.3500000000001 410.35L1064.6499999999999 339.65C1023.3 381 985.2499999999998 400 950 400C931.1 400 916 396.65 888.1499999999999 386.2000000000001L868.55 378.5999999999999C816.05 357.55 789.55 350 749.9999999999999 350C689.2999999999998 350 631.05 377.2500000000001 575.6999999999999 429L564.6499999999999 439.65L635.3499999999999 510.3499999999999z","horizAdvX":"1200"},"t-shirt-air-line":{"path":["M0 0h24v24H0z","M12.707 17.793C13.534 18.62 14.295 19 15 19c.378 0 .68-.067 1.237-.276l.392-.152C17.679 18.15 18.209 18 19 18c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 20.38 19.705 20 19 20c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414zM9 3a3 3 0 0 0 6 0h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-4.002v-2L20 9.999v-5h-3.417l-.017.041a5.002 5.002 0 0 1-4.35 2.955L12 8a5.001 5.001 0 0 1-4.566-2.96L7.416 5H4v5l2.999-.001V19H10v2H6a1 1 0 0 1-1-1l-.001-8.001L3 12a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm3.707 10.793C13.534 14.62 14.295 15 15 15c.378 0 .68-.067 1.237-.276l.392-.152C17.679 14.15 18.209 14 19 14c1.214 0 2.379.545 3.486 1.58l.221.213-1.414 1.414C20.466 16.38 19.705 16 19 16c-.378 0-.68.067-1.237.276l-.392.152c-1.05.421-1.58.572-2.371.572-1.214 0-2.379-.545-3.486-1.58l-.221-.213 1.414-1.414z"],"unicode":"","glyph":"M635.35 310.35C676.7 269 714.75 250 750 250C768.9 250 784 253.35 811.8500000000001 263.8L831.45 271.4000000000001C883.9499999999999 292.5000000000001 910.45 300 950 300C1010.7 300 1068.95 272.7499999999999 1124.3 221.0000000000001L1135.3500000000001 210.35L1064.6499999999999 139.6499999999999C1023.3 181 985.2499999999998 200 950 200C931.1 200 916 196.65 888.1499999999999 186.2000000000001L868.55 178.5999999999999C816.05 157.55 789.55 150 749.9999999999999 150C689.2999999999998 150 631.05 177.2500000000001 575.6999999999999 228.9999999999999L564.6499999999999 239.65L635.3499999999999 310.35zM450 1050A150 150 0 0 1 750 1050H1050A50 50 0 0 0 1100 1000V650A50 50 0 0 0 1050 600H849.9000000000001V700L1000 700.05V950.05H829.1499999999999L828.3 948A250.09999999999997 250.09999999999997 0 0 0 610.8 800.25L600 800A250.05000000000004 250.05000000000004 0 0 0 371.7 948L370.8 950H200V700L349.9500000000001 700.05V250H500V150H300A50 50 0 0 0 250 200L249.95 600.05L150 600A50 50 0 0 0 100 650V1000A50 50 0 0 0 150 1050H450zM635.35 510.35C676.7 469 714.75 450 750 450C768.9 450 784 453.35 811.8500000000001 463.8L831.45 471.4C883.9499999999999 492.5 910.45 500 950 500C1010.7 500 1068.95 472.75 1124.3 421L1135.3500000000001 410.35L1064.6499999999999 339.65C1023.3 381 985.2499999999998 400 950 400C931.1 400 916 396.65 888.1499999999999 386.2000000000001L868.55 378.5999999999999C816.05 357.55 789.55 350 749.9999999999999 350C689.2999999999998 350 631.05 377.2500000000001 575.6999999999999 429L564.6499999999999 439.65L635.3499999999999 510.3499999999999z","horizAdvX":"1200"},"t-shirt-fill":{"path":["M0 0h24v24H0z","M14.515 5l2.606-2.607a1 1 0 0 1 1.415 0l4.242 4.243a1 1 0 0 1 0 1.414L19 11.828V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9.172L1.222 8.05a1 1 0 0 1 0-1.414l4.242-4.243a1 1 0 0 1 1.415 0L9.485 5h5.03z"],"unicode":"","glyph":"M725.75 950L856.0500000000001 1080.35A50 50 0 0 0 926.8 1080.35L1138.9 868.2A50 50 0 0 0 1138.9 797.5L950 608.6V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V608.6L61.1 797.5A50 50 0 0 0 61.1 868.1999999999999L273.2000000000001 1080.35A50 50 0 0 0 343.9500000000001 1080.35L474.25 950H725.75z","horizAdvX":"1200"},"t-shirt-line":{"path":["M0 0h24v24H0z","M14.515 5l2.606-2.607a1 1 0 0 1 1.415 0l4.242 4.243a1 1 0 0 1 0 1.414L19 11.828V21a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9.172L1.222 8.05a1 1 0 0 1 0-1.414l4.242-4.243a1 1 0 0 1 1.415 0L9.485 5h5.03zm.828 2H8.657L6.172 4.515 3.343 7.343 7 11v9h10v-9l3.657-3.657-2.829-2.828L15.343 7z"],"unicode":"","glyph":"M725.75 950L856.0500000000001 1080.35A50 50 0 0 0 926.8 1080.35L1138.9 868.2A50 50 0 0 0 1138.9 797.5L950 608.6V150A50 50 0 0 0 900 100H300A50 50 0 0 0 250 150V608.6L61.1 797.5A50 50 0 0 0 61.1 868.1999999999999L273.2000000000001 1080.35A50 50 0 0 0 343.9500000000001 1080.35L474.25 950H725.75zM767.15 850H432.85L308.6 974.25L167.15 832.85L350 650V200H850V650L1032.85 832.85L891.4 974.25L767.15 850z","horizAdvX":"1200"},"table-2":{"path":["M0 0h24v24H0z","M13 10v4h6v-4h-6zm-2 0H5v4h6v-4zm2 9h6v-3h-6v3zm-2 0v-3H5v3h6zm2-14v3h6V5h-6zm-2 0H5v3h6V5zM4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M650 700V500H950V700H650zM550 700H250V500H550V700zM650 250H950V400H650V250zM550 250V400H250V250H550zM650 950V800H950V950H650zM550 950H250V800H550V950zM200 1050H1000A50 50 0 0 0 1050 1000V200A50 50 0 0 0 1000 150H200A50 50 0 0 0 150 200V1000A50 50 0 0 0 200 1050z","horizAdvX":"1200"},"table-alt-fill":{"path":["M0 0h24v24H0z","M7 14V3H3a1 1 0 0 0-1 1v10h5zm8 0V3H9v11h6zm7 0V4a1 1 0 0 0-1-1h-4v11h5zm-1 7a1 1 0 0 0 1-1v-4H2v4a1 1 0 0 0 1 1h18z"],"unicode":"","glyph":"M350 500V1050H150A50 50 0 0 1 100 1000V500H350zM750 500V1050H450V500H750zM1100 500V1000A50 50 0 0 1 1050 1050H850V500H1100zM1050 150A50 50 0 0 1 1100 200V400H100V200A50 50 0 0 1 150 150H1050z","horizAdvX":"1200"},"table-alt-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 13H4v3h16v-3zM8 5H4v9h4V5zm6 0h-4v9h4V5zm6 0h-4v9h4V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050zM1000 400H200V250H1000V400zM400 950H200V500H400V950zM700 950H500V500H700V950zM1000 950H800V500H1000V950z","horizAdvX":"1200"},"table-fill":{"path":["M0 0h24v24H0z","M15 21H9V10h6v11zm2 0V10h5v10a1 1 0 0 1-1 1h-4zM7 21H3a1 1 0 0 1-1-1V10h5v11zM22 8H2V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4z"],"unicode":"","glyph":"M750 150H450V700H750V150zM850 150V700H1100V200A50 50 0 0 0 1050 150H850zM350 150H150A50 50 0 0 0 100 200V700H350V150zM1100 800H100V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V800z","horizAdvX":"1200"},"table-line":{"path":["M0 0h24v24H0z","M4 8h16V5H4v3zm10 11v-9h-4v9h4zm2 0h4v-9h-4v9zm-8 0v-9H4v9h4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M200 800H1000V950H200V800zM700 250V700H500V250H700zM800 250H1000V700H800V250zM400 250V700H200V250H400zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050z","horizAdvX":"1200"},"tablet-fill":{"path":["M0 0h24v24H0z","M5 2h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm7 15a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM600 350A50 50 0 1 1 600 250A50 50 0 0 1 600 350z","horizAdvX":"1200"},"tablet-line":{"path":["M0 0h24v24H0z","M6 4v16h12V4H6zM5 2h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm7 15a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"],"unicode":"","glyph":"M300 1000V200H900V1000H300zM250 1100H950A50 50 0 0 0 1000 1050V150A50 50 0 0 0 950 100H250A50 50 0 0 0 200 150V1050A50 50 0 0 0 250 1100zM600 350A50 50 0 1 0 600 250A50 50 0 0 0 600 350z","horizAdvX":"1200"},"takeaway-fill":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,2.999 L22,3 L22,9 L19.98,8.999 L22.7467496,16.595251 C22.9104689,17.0320314 23,17.5050658 23,17.9990113 C23,20.2081503 21.209139,21.9990113 19,21.9990113 C17.1367966,21.9990113 15.5711292,20.7251084 15.1264725,19.0007774 L10.8737865,19.0007613 C10.429479,20.7256022 8.86356525,22 7,22 C5.05513052,22 3.43445123,20.6119768 3.07453347,18.7725019 C2.43557576,18.4390399 2,17.770387 2,17 L2,12 L11,12 C11,12.5128358 11.3860402,12.9355072 11.8833789,12.9932723 L12,13 L14,13 C14.5128358,13 14.9355072,12.6139598 14.9932723,12.1166211 L15,12 L15,3 L12,3 L12,1 L16,1 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M19,16 C17.8954305,16 17,16.8954305 17,18 C17,19.1045695 17.8954305,20 19,20 C20.1045695,20 21,19.1045695 21,18 C21,16.8954305 20.1045695,16 19,16 Z M10,3 C10.5522847,3 11,3.44771525 11,4 L11,11 L2,11 L2,4 C2,3.44771525 2.44771525,3 3,3 L10,3 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z M9,5 L4,5 L4,6 L9,6 L9,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050.05L1100 1050L1100 750L999 750.05L1137.3374800000001 370.23745C1145.523445 348.39843 1150 324.74671 1150 300.049435C1150 189.592485 1060.45695 100.0494350000001 950 100.0494350000001C856.83983 100.0494350000001 778.55646 163.7445800000001 756.323625 249.9611300000001L543.6893249999999 249.961935C521.4739500000001 163.7198899999999 443.1782625 100 350 100C252.756526 100 171.7225615 169.4011599999999 153.7266735 261.3749049999999C121.778788 278.048005 100 311.48065 100 350L100 600L550 600C550 574.35821 569.30201 553.22464 594.168945 550.3363850000001L600 550L700 550C725.64179 550 746.77536 569.30201 749.6636149999999 594.168945L750 600L750 1050L600 1050L600 1150L800 1150zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM950 400C894.771525 400 850 355.228475 850 300C850 244.771525 894.771525 200 950 200C1005.228475 200 1050 244.771525 1050 300C1050 355.228475 1005.228475 400 950 400zM500 1050C527.614235 1050 550 1027.6142375 550 1000L550 650L100 650L100 1000C100 1027.6142375 122.3857625 1050 150 1050L500 1050zM1000 950L850 950L850 850L1000 850L1000 950zM450 950L200 950L200 900L450 900L450 950z","horizAdvX":"1200"},"takeaway-line":{"path":["M0 0h24v24H0z","M16,1 C16.5522847,1 17,1.44771525 17,2 L17,2.999 L22,3 L22,9 L19.98,8.999 L22.7467496,16.595251 C22.9104689,17.0320314 23,17.5050658 23,17.9990113 C23,20.2081503 21.209139,21.9990113 19,21.9990113 C17.1367966,21.9990113 15.5711292,20.7251084 15.1264725,19.0007774 L10.8737865,19.0007613 C10.429479,20.7256022 8.86356525,22 7,22 C5.05513052,22 3.43445123,20.6119768 3.07453347,18.7725019 C2.43557576,18.4390399 2,17.770387 2,17 L2,4 C2,3.44771525 2.44771525,3 3,3 L10,3 C10.5522847,3 11,3.44771525 11,4 L11,12 C11,12.5128358 11.3860402,12.9355072 11.8833789,12.9932723 L12,13 L14,13 C14.5128358,13 14.9355072,12.6139598 14.9932723,12.1166211 L15,12 L15,3 L12,3 L12,1 L16,1 Z M7,16 C5.8954305,16 5,16.8954305 5,18 C5,19.1045695 5.8954305,20 7,20 C8.1045695,20 9,19.1045695 9,18 C9,16.8954305 8.1045695,16 7,16 Z M19,15.9990113 C17.8954305,15.9990113 17,16.8944418 17,17.9990113 C17,19.1035808 17.8954305,19.9990113 19,19.9990113 C20.1045695,19.9990113 21,19.1035808 21,17.9990113 C21,16.8944418 20.1045695,15.9990113 19,15.9990113 Z M17.852,8.999 L17,8.999 L17,12 C17,13.6568542 15.6568542,15 14,15 L12,15 C10.6941178,15 9.58311485,14.1656226 9.17102423,13.0009007 L3.99994303,13 L3.99994303,15.3542402 C4.73288889,14.523782 5.80527652,14 7,14 C8.86392711,14 10.4300871,15.2748927 10.8740452,17.0002597 L15.1256964,17.0002597 C15.5693048,15.2743991 17.135711,13.9990113 19,13.9990113 C19.2372818,13.9990113 19.469738,14.019672 19.6956678,14.0592925 L17.852,8.999 Z M9,8 L4,8 L4,11 L9,11 L9,8 Z M20,5 L17,5 L17,7 L20,7 L20,5 Z M9,5 L4,5 L4,6 L9,6 L9,5 Z"],"unicode":"","glyph":"M800 1150C827.614235 1150 850 1127.6142375 850 1100L850 1050.05L1100 1050L1100 750L999 750.05L1137.3374800000001 370.23745C1145.523445 348.39843 1150 324.74671 1150 300.049435C1150 189.592485 1060.45695 100.0494350000001 950 100.0494350000001C856.83983 100.0494350000001 778.55646 163.7445800000001 756.323625 249.9611300000001L543.6893249999999 249.961935C521.4739500000001 163.7198899999999 443.1782625 100 350 100C252.756526 100 171.7225615 169.4011599999999 153.7266735 261.3749049999999C121.778788 278.048005 100 311.48065 100 350L100 1000C100 1027.6142375 122.3857625 1050 150 1050L500 1050C527.614235 1050 550 1027.6142375 550 1000L550 600C550 574.35821 569.30201 553.22464 594.168945 550.3363850000001L600 550L700 550C725.64179 550 746.77536 569.30201 749.6636149999999 594.168945L750 600L750 1050L600 1050L600 1150L800 1150zM350 400C294.771525 400 250 355.228475 250 300C250 244.771525 294.771525 200 350 200C405.228475 200 450 244.771525 450 300C450 355.228475 405.228475 400 350 400zM950 400.049435C894.771525 400.049435 850 355.27791 850 300.049435C850 244.82096 894.771525 200.049435 950 200.049435C1005.228475 200.049435 1050 244.82096 1050 300.049435C1050 355.27791 1005.228475 400.049435 950 400.049435zM892.6 750.05L850 750.05L850 600C850 517.15729 782.84271 450 700 450L600 450C534.7058900000001 450 479.1557425 491.7188699999999 458.5512115 549.954965L199.9971515 550L199.9971515 432.2879900000001C236.6444445 473.8108999999999 290.263826 500 350 500C443.1963555000001 500 521.504355 436.255365 543.70226 349.987015L756.2848200000001 349.987015C778.46524 436.280045 856.7855500000001 500.049435 950 500.049435C961.86409 500.049435 973.4869 499.0164 984.78339 497.035375L892.6 750.05zM450 800L200 800L200 650L450 650L450 800zM1000 950L850 950L850 850L1000 850L1000 950zM450 950L200 950L200 900L450 900L450 950z","horizAdvX":"1200"},"taobao-fill":{"path":["M0 0h24v24H0z","M3.576 8.277l-1.193 1.842 2.2 1.371s1.464.754.763 2.169c-.65 1.338-3.846 4.27-3.846 4.27l2.862 1.798c1.984-4.326 1.85-3.75 2.347-5.306.512-1.58.624-2.794-.242-3.677-1.113-1.125-1.238-1.23-2.891-2.467zm1.564-.694c1.04 0 1.883-.758 1.883-1.693 0-.943-.843-1.701-1.883-1.701-1.048 0-1.887.762-1.887 1.701.005.931.84 1.693 1.887 1.693zm17.005.21s-.624-4.87-11.207-1.854c.455-.795.669-1.307.669-1.307l-2.64-.75s-1.07 3.508-2.972 5.14c0 0 1.846 1.073 1.826 1.04a17.07 17.07 0 0 0 1.407-1.596c.424-.19.83-.363 1.226-.524-.492.887-1.278 2.218-2.068 3.056l1.112.984s.762-.738 1.589-1.62h.943v1.636H8.345v1.306h3.685v3.133l-.14-.004c-.408-.02-1.037-.089-1.287-.484-.298-.484-.077-1.359-.064-1.903H7.995l-.093.052s-.935 4.205 2.689 4.113c3.386.092 5.33-.956 6.265-1.677l.37 1.394 2.09-.882-1.416-3.484-1.693.536.314 1.19c-.427.33-.93.572-1.467.754v-2.738h3.592v-1.31h-3.592v-1.637h3.604V9.051h-6.41c.464-.569.822-1.089.92-1.415l-1.122-.307c4.798-1.733 7.47-1.435 7.45 1.403v7.475s.283 2.564-2.636 2.383l-1.58-.343-.367 1.512s6.817 1.967 7.374-3.314c.552-5.282-.142-8.652-.142-8.652z"],"unicode":"","glyph":"M178.8 786.1500000000001L119.15 694.05L229.15 625.5S302.35 587.8 267.3 517.05C234.8 450.15 75 303.55 75 303.55L218.1 213.6499999999999C317.3 429.9499999999998 310.6 401.1499999999999 335.45 478.9499999999998C361.05 557.9499999999998 366.65 618.6499999999999 323.35 662.7999999999998C267.7 719.0499999999998 261.45 724.2999999999998 178.8 786.1499999999999zM257 820.85C309.0000000000001 820.85 351.1500000000001 858.75 351.1500000000001 905.5C351.1500000000001 952.65 309.0000000000001 990.55 257 990.55C204.6 990.55 162.65 952.45 162.65 905.5C162.9 858.95 204.65 820.8500000000001 257 820.8500000000001zM1107.25 810.35S1076.05 1053.8500000000001 546.9 903.05C569.65 942.8 580.3499999999999 968.4 580.3499999999999 968.4L448.3499999999999 1005.9S394.8499999999999 830.5 299.75 748.9000000000001C299.75 748.9000000000001 392.05 695.25 391.05 696.9000000000001A853.5000000000001 853.5000000000001 0 0 1 461.4 776.7C482.6 786.2 502.9 794.8500000000001 522.7 802.9000000000001C498.1 758.5500000000002 458.8 692.0000000000002 419.3000000000001 650.1000000000001L474.9 600.9000000000001S513.0000000000001 637.8000000000001 554.35 681.9000000000001H601.5V600.1000000000001H417.2500000000001V534.8000000000001H601.5V378.1500000000001L594.5 378.3500000000002C574.1 379.3500000000002 542.6500000000001 382.8000000000001 530.1500000000001 402.5500000000002C515.2500000000001 426.7500000000003 526.3000000000001 470.5000000000002 526.95 497.7000000000002H399.75L395.1 495.1000000000003S348.35 284.8500000000002 529.5500000000001 289.4500000000003C698.85 284.8500000000004 796.0500000000001 337.2500000000003 842.8000000000001 373.3000000000002L861.3000000000002 303.6000000000004L965.8000000000002 347.7000000000004L895.0000000000001 521.9000000000004L810.35 495.1000000000004L826.0500000000001 435.6000000000005C804.7 419.1000000000005 779.5500000000001 407.0000000000005 752.7 397.9000000000005V534.8000000000004H932.3V600.3000000000004H752.7V682.1500000000004H932.9V747.45H612.4000000000001C635.6 775.9000000000001 653.5 801.9000000000001 658.4000000000001 818.2L602.3000000000001 833.55C842.2 920.2 975.8 905.3 974.8 763.4000000000001V389.65S988.9500000000002 261.45 843.0000000000001 270.5L764.0000000000001 287.65L745.6500000000002 212.05S1086.5000000000002 113.7000000000001 1114.3500000000001 377.75C1141.95 641.85 1107.2500000000002 810.3499999999999 1107.2500000000002 810.3499999999999z","horizAdvX":"1200"},"taobao-line":{"path":["M0 0h24v24H0z","M17.172 14H14.5v1.375c.55-.221 1.153-.49 1.812-.81l-.082-.238.942-.327zm.828-.287l.12-.042c.641 1.851 1.034 3.012 1.185 3.5l-1.912.59c-.074-.24-.216-.672-.427-1.293-6.081 2.885-8.671 2.054-9.008-1.907l1.993-.17c.1 1.165.344 1.622.897 1.752.393.093.94.063 1.652-.104V14H9v-2h.513l-1.167-1.39c1.043-.876 1.858-1.83 2.448-2.864-.518.135-1.037.28-1.551.435a13.955 13.955 0 0 1-1.754 2.109l-1.4-1.428c1.272-1.248 2.333-2.91 3.176-4.994l1.854.75a21.71 21.71 0 0 1-.48 1.101c3.702-.936 7.275-1.317 9.138-.68 1.223.418 1.919 1.391 2.187 2.584.17.756.313 2.689.313 5.123 0 2.807-.056 3.77-.34 4.622-.297.89-.696 1.418-1.407 1.984-.657.523-1.553.763-2.645.823-.673.037-1.368.003-2.095-.08a19.614 19.614 0 0 1-.596-.075l.264-1.982a57.039 57.039 0 0 0 .556.07c.625.07 1.216.1 1.762.07.714-.04 1.245-.181 1.508-.39.426-.34.591-.558.756-1.054.186-.554.237-1.448.237-3.988 0-2.299-.133-4.102-.264-4.683-.13-.577-.41-.97-.883-1.132-1.207-.412-3.801-.194-6.652.417l.615.262c-.13.302-.273.6-.43.89H18v2h-3.5V12H18v1.713zM12.5 10.5h-1.208A13.685 13.685 0 0 1 9.798 12H12.5v-1.5zm-10.039-.438L3.54 8.377c1.062.679 2.935 2.427 3.338 3.161 1.239 2.26.197 4.176-3.122 7.997l-1.51-1.311c2.687-3.094 3.5-4.59 2.878-5.724-.214-.39-1.857-1.924-2.662-2.438zm2.68-2.479c-1.049 0-1.883-.762-1.888-1.693 0-.94.84-1.701 1.887-1.701 1.04 0 1.883.758 1.883 1.701 0 .935-.843 1.693-1.883 1.693z"],"unicode":"","glyph":"M858.6 500H725V431.25C752.5 442.3 782.65 455.75 815.6 471.75L811.5 483.65L858.6 500zM900 514.35L906 516.45C938.0500000000002 423.9000000000001 957.7 365.85 965.25 341.4500000000001L869.6500000000001 311.9500000000001C865.9499999999999 323.95 858.85 345.5500000000001 848.3000000000001 376.6C544.2500000000001 232.3499999999999 414.7500000000001 273.9000000000001 397.9000000000001 471.95L497.5500000000001 480.45C502.5500000000001 422.2 514.7500000000001 399.3499999999999 542.4000000000001 392.8499999999999C562.0500000000002 388.2 589.4000000000001 389.7000000000001 625.0000000000001 398.05V500H450V600H475.65L417.3 669.5C469.45 713.3 510.2 761 539.7 812.7C513.8 805.95 487.8500000000001 798.7 462.15 790.95A697.75 697.75 0 0 0 374.4500000000001 685.5L304.4500000000001 756.9000000000001C368.05 819.3000000000001 421.1 902.4 463.25 1006.6000000000003L555.95 969.1000000000003A1085.5 1085.5 0 0 0 531.9499999999999 914.05C717.05 960.8500000000003 895.7 979.9 988.85 948.05C1050 927.15 1084.8000000000002 878.5 1098.2 818.85C1106.7000000000003 781.05 1113.8500000000001 684.4 1113.8500000000001 562.7C1113.8500000000001 422.35 1111.05 374.2000000000001 1096.8500000000001 331.6C1082 287.1 1062.05 260.7000000000002 1026.5 232.4000000000002C993.65 206.2500000000002 948.85 194.2500000000001 894.2500000000001 191.2500000000001C860.6000000000001 189.4000000000002 825.8500000000001 191.1000000000001 789.5 195.25A980.7 980.7 0 0 0 759.7 199L772.9 298.1A2851.95 2851.95 0 0 1 800.6999999999999 294.6C831.9499999999999 291.0999999999999 861.5 289.5999999999999 888.8 291.0999999999999C924.4999999999998 293.0999999999999 951.05 300.15 964.2 310.6C985.4999999999998 327.6 993.75 338.5 1002 363.3C1011.3 390.9999999999999 1013.85 435.7 1013.85 562.6999999999999C1013.85 677.6499999999999 1007.2 767.8 1000.6499999999997 796.8499999999999C994.15 825.6999999999998 980.1499999999997 845.3499999999999 956.5 853.4499999999998C896.1499999999999 874.0499999999998 766.4499999999999 863.1499999999999 623.8999999999999 832.5999999999999L654.6499999999999 819.4999999999998C648.1499999999999 804.3999999999999 640.9999999999999 789.4999999999999 633.15 774.9999999999998H900V674.9999999999998H725V600H900V514.3499999999999zM625 675H564.6A684.25 684.25 0 0 0 489.9 600H625V675zM123.05 696.9000000000001L177 781.15C230.1 747.1999999999999 323.75 659.8 343.9 623.1C405.85 510.1 353.75 414.3 187.8 223.25L112.3 288.8C246.65 443.5 287.3 518.3 256.2000000000001 575C245.5 594.5 163.35 671.1999999999999 123.1 696.9000000000001zM257.05 820.85C204.6 820.85 162.9 858.95 162.65 905.5C162.65 952.5 204.65 990.55 257 990.55C309.0000000000001 990.55 351.1500000000001 952.65 351.1500000000001 905.5C351.1500000000001 858.75 309.0000000000001 820.8500000000001 257 820.8500000000001z","horizAdvX":"1200"},"tape-fill":{"path":["M0 0h24v24H0z","M10.83 13A3 3 0 1 0 8 15h8a3 3 0 1 0-2.83-2h-2.34zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm13 10a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-8 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"],"unicode":"","glyph":"M541.5 550A150 150 0 1 1 400 450H800A150 150 0 1 1 658.5 550H541.5zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM800 550A50 50 0 1 0 800 650A50 50 0 0 0 800 550zM400 550A50 50 0 1 0 400 650A50 50 0 0 0 400 550z","horizAdvX":"1200"},"tape-line":{"path":["M0 0h24v24H0z","M10.83 13h2.34A3 3 0 1 1 16 15H8a3 3 0 1 1 2.83-2zM4 5v14h16V5H4zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm5 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"],"unicode":"","glyph":"M541.5 550H658.5A150 150 0 1 0 800 450H400A150 150 0 1 0 541.5 550zM200 950V250H1000V950H200zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM400 550A50 50 0 1 1 400 650A50 50 0 0 1 400 550zM800 550A50 50 0 1 1 800 650A50 50 0 0 1 800 550z","horizAdvX":"1200"},"task-fill":{"path":["M0 0h24v24H0z","M21 2.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.014c.548 0 .993.444.993.992zm-9.707 10.13l-2.475-2.476-1.414 1.415 3.889 3.889 5.657-5.657-1.414-1.414-4.243 4.242z"],"unicode":"","glyph":"M1050 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4zM564.65 543.9L440.9 667.6999999999999L370.2 596.95L564.65 402.5L847.5 685.35L776.8 756.05L564.65 543.95z","horizAdvX":"1200"},"task-line":{"path":["M0 0h24v24H0z","M21 2.992v18.016a1 1 0 0 1-.993.992H3.993A.993.993 0 0 1 3 21.008V2.992A1 1 0 0 1 3.993 2h16.014c.548 0 .993.444.993.992zM19 4H5v16h14V4zm-7.707 9.121l4.243-4.242 1.414 1.414-5.657 5.657-3.89-3.89 1.415-1.414 2.475 2.475z"],"unicode":"","glyph":"M1050 1050.4V149.6000000000001A50 50 0 0 0 1000.35 100H199.65A49.65 49.65 0 0 0 150 149.6000000000001V1050.4A50 50 0 0 0 199.65 1100H1000.35C1027.75 1100 1049.9999999999998 1077.8 1049.9999999999998 1050.4zM950 1000H250V200H950V1000zM564.65 543.9499999999999L776.8 756.05L847.5 685.3499999999999L564.65 402.5L370.1499999999999 597L440.8999999999999 667.6999999999999L564.6499999999999 543.9499999999999z","horizAdvX":"1200"},"taxi-fill":{"path":["M0 0h24v24H0z","M22 12v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.48-5.788A2 2 0 0 1 6.32 5H9V3h6v2h2.681a2 2 0 0 1 1.838 1.212L22 12zM4.176 12h15.648l-2.143-5H6.32l-2.143 5zM6.5 17a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M1100 600V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V600L224 889.4000000000001A100 100 0 0 0 316 950H450V1050H750V950H884.0500000000001A100 100 0 0 0 975.95 889.4000000000001L1100 600zM208.8 600H991.2L884.0499999999998 850H316L208.85 600zM325 350A75 75 0 1 1 325 500A75 75 0 0 1 325 350zM875 350A75 75 0 1 1 875 500A75 75 0 0 1 875 350z","horizAdvX":"1200"},"taxi-line":{"path":["M0 0h24v24H0z","M22 11v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V11l2.447-4.894A2 2 0 0 1 6.237 5H9V3h6v2h2.764a2 2 0 0 1 1.789 1.106L22 11zm-2 2H4v5h16v-5zM4.236 11h15.528l-2-4H6.236l-2 4zM6.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"],"unicode":"","glyph":"M1100 650V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V650L222.35 894.7A100 100 0 0 0 311.85 950H450V1050H750V950H888.1999999999999A100 100 0 0 0 977.65 894.7L1100 650zM1000 550H200V300H1000V550zM211.8 650H988.2L888.1999999999999 850H311.8L211.8 650zM325 350A75 75 0 1 0 325 500A75 75 0 0 0 325 350zM875 350A75 75 0 1 0 875 500A75 75 0 0 0 875 350z","horizAdvX":"1200"},"taxi-wifi-fill":{"path":["M0 0h24v24H0z","M12 3v4H6.319l-2.144 5H22v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-9l2.48-5.788A2 2 0 0 1 6.32 5H9V3h3zM6.5 14a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm11 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm1-13a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V850H315.95L208.75 600H1100V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V600L224 889.4000000000001A100 100 0 0 0 316 950H450V1050H600zM325 500A75 75 0 1 1 325 350A75 75 0 0 1 325 500zM875 500A75 75 0 1 1 875 350A75 75 0 0 1 875 500zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"taxi-wifi-line":{"path":["M0 0h24v24H0z","M12 3v4H6.236l-2.001 4H22v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H5v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V11l2.447-4.894A2 2 0 0 1 6.237 5H9V3h3zm8 10H4v5h16v-5zM6.5 14a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm11 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm1-13a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M600 1050V850H311.8L211.75 650H1100V150A50 50 0 0 0 1050 100H1000A50 50 0 0 0 950 150V200H250V150A50 50 0 0 0 200 100H150A50 50 0 0 0 100 150V650L222.35 894.7A100 100 0 0 0 311.85 950H450V1050H600zM1000 550H200V300H1000V550zM325 500A75 75 0 1 0 325 350A75 75 0 0 0 325 500zM875 500A75 75 0 1 0 875 350A75 75 0 0 0 875 500zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"team-fill":{"path":["M0 0h24v24H0z","M12 11a5 5 0 0 1 5 5v6H7v-6a5 5 0 0 1 5-5zm-6.712 3.006a6.983 6.983 0 0 0-.28 1.65L5 16v6H2v-4.5a3.5 3.5 0 0 1 3.119-3.48l.17-.014zm13.424 0A3.501 3.501 0 0 1 22 17.5V22h-3v-6c0-.693-.1-1.362-.288-1.994zM5.5 8a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM12 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8z"],"unicode":"","glyph":"M600 650A250 250 0 0 0 850 400V100H350V400A250 250 0 0 0 600 650zM264.4000000000001 499.7A349.15000000000003 349.15000000000003 0 0 1 250.4 417.2L250 400V100H100V325A175 175 0 0 0 255.95 499L264.45 499.7zM935.6 499.7A175.04999999999998 175.04999999999998 0 0 0 1100 325V100H950V400C950 434.65 944.9999999999998 468.1 935.6 499.7zM275 800A125 125 0 1 0 275 550A125 125 0 0 0 275 800zM925 800A125 125 0 1 0 925 550A125 125 0 0 0 925 800zM600 1100A200 200 0 1 0 600 700A200 200 0 0 0 600 1100z","horizAdvX":"1200"},"team-line":{"path":["M0 0h24v24H0z","M12 11a5 5 0 0 1 5 5v6h-2v-6a3 3 0 0 0-2.824-2.995L12 13a3 3 0 0 0-2.995 2.824L9 16v6H7v-6a5 5 0 0 1 5-5zm-6.5 3c.279 0 .55.033.81.094a5.947 5.947 0 0 0-.301 1.575L6 16v.086a1.492 1.492 0 0 0-.356-.08L5.5 16a1.5 1.5 0 0 0-1.493 1.356L4 17.5V22H2v-4.5A3.5 3.5 0 0 1 5.5 14zm13 0a3.5 3.5 0 0 1 3.5 3.5V22h-2v-4.5a1.5 1.5 0 0 0-1.356-1.493L18.5 16c-.175 0-.343.03-.5.085V16c0-.666-.108-1.306-.309-1.904.259-.063.53-.096.809-.096zm-13-6a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm-13 2a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1zm13 0a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1zM12 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8zm0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],"unicode":"","glyph":"M600 650A250 250 0 0 0 850 400V100H750V400A150 150 0 0 1 608.8 549.75L600 550A150 150 0 0 1 450.25 408.8L450 400V100H350V400A250 250 0 0 0 600 650zM275 500C288.95 500 302.5 498.35 315.5 495.3000000000001A297.35 297.35 0 0 1 300.4500000000001 416.5500000000001L300 400V395.7000000000001A74.60000000000001 74.60000000000001 0 0 1 282.2 399.7000000000001L275 400A75 75 0 0 1 200.35 332.2L200 325V100H100V325A175 175 0 0 0 275 500zM925 500A175 175 0 0 0 1100 325V100H1000V325A75 75 0 0 1 932.2 399.65L925 400C916.25 400 907.85 398.5 900 395.75V400C900 433.3000000000001 894.6 465.3000000000001 884.55 495.2C897.5 498.35 911.05 500 925 500zM275 800A125 125 0 1 0 275 550A125 125 0 0 0 275 800zM925 800A125 125 0 1 0 925 550A125 125 0 0 0 925 800zM275 700A25 25 0 1 1 275 650A25 25 0 0 1 275 700zM925 700A25 25 0 1 1 925 650A25 25 0 0 1 925 700zM600 1100A200 200 0 1 0 600 700A200 200 0 0 0 600 1100zM600 1000A100 100 0 1 1 600 800A100 100 0 0 1 600 1000z","horizAdvX":"1200"},"telegram-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.11-8.83l.013-.007.87 2.87c.112.311.266.367.453.341.188-.025.287-.126.41-.244l1.188-1.148 2.55 1.888c.466.257.801.124.917-.432l1.657-7.822c.183-.728-.137-1.02-.702-.788l-9.733 3.76c-.664.266-.66.638-.12.803l2.497.78z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM444.5 541.5L445.1500000000001 541.85L488.65 398.3499999999999C494.25 382.8 501.95 379.9999999999999 511.3 381.2999999999999C520.6999999999999 382.5499999999999 525.65 387.5999999999999 531.8 393.4999999999999L591.2 450.8999999999999L718.6999999999999 356.4999999999998C741.9999999999999 343.6499999999998 758.75 350.2999999999999 764.55 378.0999999999997L847.4 769.1999999999996C856.55 805.5999999999997 840.55 820.1999999999996 812.3000000000001 808.5999999999997L325.6500000000001 620.5999999999997C292.4500000000001 607.2999999999997 292.6500000000001 588.6999999999997 319.6500000000001 580.4499999999996L444.5 541.4499999999997z","horizAdvX":"1200"},"telegram-line":{"path":["M0 0h24v24H0z","M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-3.11-8.83l-2.498-.779c-.54-.165-.543-.537.121-.804l9.733-3.76c.565-.23.885.061.702.79l-1.657 7.82c-.116.557-.451.69-.916.433l-2.551-1.888-1.189 1.148c-.122.118-.221.219-.409.244-.187.026-.341-.03-.454-.34l-.87-2.871-.012.008z"],"unicode":"","glyph":"M600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM444.5 541.5L319.6 580.45C292.6 588.6999999999999 292.45 607.3000000000001 325.65 620.65L812.3000000000001 808.65C840.5500000000002 820.1500000000001 856.5500000000002 805.6 847.4 769.15L764.5500000000001 378.15C758.75 350.3 742 343.6499999999999 718.75 356.5L591.2 450.9L531.75 393.4999999999999C525.65 387.5999999999999 520.6999999999999 382.5499999999999 511.3 381.2999999999999C501.95 379.9999999999999 494.25 382.8 488.5999999999999 398.2999999999999L445.1 541.8499999999999L444.5 541.4499999999999z","horizAdvX":"1200"},"temp-cold-fill":{"path":["M0 0h24v24H0z","M8 10.255V5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0zM8 16a4 4 0 1 0 8 0H8z"],"unicode":"","glyph":"M400 687.25V950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25zM400 400A200 200 0 1 1 800 400H400z","horizAdvX":"1200"},"temp-cold-line":{"path":["M0 0h24v24H0z","M8 5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0V5zm1.144 6.895a5 5 0 1 0 5.712 0L14 11.298V5a2 2 0 1 0-4 0v6.298l-.856.597zM8 16h8a4 4 0 1 1-8 0z"],"unicode":"","glyph":"M400 950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25V950zM457.2 605.25A250 250 0 1 1 742.8 605.25L700 635.1V950A100 100 0 1 1 500 950V635.1L457.2 605.25zM400 400H800A200 200 0 1 0 400 400z","horizAdvX":"1200"},"temp-hot-fill":{"path":["M0 0h24v24H0z","M8 10.255V5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0zm3 1.871A4.002 4.002 0 0 0 12 20a4 4 0 0 0 1-7.874V5h-2v7.126z"],"unicode":"","glyph":"M400 687.25V950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25zM550 593.6999999999999A200.10000000000002 200.10000000000002 0 0 1 600 200A200 200 0 0 1 650 593.6999999999999V950H550V593.6999999999999z","horizAdvX":"1200"},"temp-hot-line":{"path":["M0 0h24v24H0z","M8 5a4 4 0 1 1 8 0v5.255a7 7 0 1 1-8 0V5zm1.144 6.895a5 5 0 1 0 5.712 0L14 11.298V5a2 2 0 1 0-4 0v6.298l-.856.597zm1.856.231V5h2v7.126A4.002 4.002 0 0 1 12 20a4 4 0 0 1-1-7.874zM12 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M400 950A200 200 0 1 0 800 950V687.25A350 350 0 1 0 400 687.25V950zM457.2 605.25A250 250 0 1 1 742.8 605.25L700 635.1V950A100 100 0 1 1 500 950V635.1L457.2 605.25zM550 593.7V950H650V593.6999999999999A200.10000000000002 200.10000000000002 0 0 0 600 200A200 200 0 0 0 550 593.6999999999999zM600 300A100 100 0 1 1 600 500A100 100 0 0 1 600 300z","horizAdvX":"1200"},"terminal-box-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm9 12v2h6v-2h-6zm-3.586-3l-2.828 2.828L7 16.243 11.243 12 7 7.757 5.586 9.172 8.414 12z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM600 450V350H900V450H600zM420.7 600L279.3 458.6L350 387.85L562.15 600L350 812.1500000000001L279.3 741.4L420.7 600z","horizAdvX":"1200"},"terminal-box-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm8 10h6v2h-6v-2zm-3.333-3L5.838 9.172l1.415-1.415L11.495 12l-4.242 4.243-1.415-1.415L8.667 12z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM200 950V250H1000V950H200zM600 450H900V350H600V450zM433.35 600L291.9 741.4L362.65 812.15L574.75 600L362.65 387.8499999999999L291.9 458.5999999999999L433.35 600z","horizAdvX":"1200"},"terminal-fill":{"path":["M0 0h24v24H0z","M11 12l-7.071 7.071-1.414-1.414L8.172 12 2.515 6.343 3.929 4.93 11 12zm0 7h10v2H11v-2z"],"unicode":"","glyph":"M550 600L196.45 246.4500000000001L125.75 317.1500000000002L408.6 600L125.75 882.85L196.45 953.5L550 600zM550 250H1050V150H550V250z","horizAdvX":"1200"},"terminal-line":{"path":["M0 0h24v24H0z","M11 12l-7.071 7.071-1.414-1.414L8.172 12 2.515 6.343 3.929 4.93 11 12zm0 7h10v2H11v-2z"],"unicode":"","glyph":"M550 600L196.45 246.4500000000001L125.75 317.1500000000002L408.6 600L125.75 882.85L196.45 953.5L550 600zM550 250H1050V150H550V250z","horizAdvX":"1200"},"terminal-window-fill":{"path":["M0 0h24v24H0z","M20 10H4v9h16v-9zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 3v2h2V6H5zm4 0v2h2V6H9zm-4 5h3v5H5v-5z"],"unicode":"","glyph":"M1000 700H200V250H1000V700zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM250 900V800H350V900H250zM450 900V800H550V900H450zM250 650H400V400H250V650z","horizAdvX":"1200"},"terminal-window-line":{"path":["M0 0h24v24H0z","M20 9V5H4v4h16zm0 2H4v8h16v-8zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm2 9h3v5H5v-5zm0-6h2v2H5V6zm4 0h2v2H9V6z"],"unicode":"","glyph":"M1000 750V950H200V750H1000zM1000 650H200V250H1000V650zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM250 600H400V350H250V600zM250 900H350V800H250V900zM450 900H550V800H450V900z","horizAdvX":"1200"},"test-tube-fill":{"path":["M0 0H24V24H0z","M17 2v2h-1v14c0 2.21-1.79 4-4 4s-4-1.79-4-4V4H7V2h10zm-4 13c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-2-3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm3-8h-4v4h4V4z"],"unicode":"","glyph":"M850 1100V1000H800V300C800 189.5 710.5 100 600 100S400 189.5 400 300V1000H350V1100H850zM650 450C622.4 450 600 427.6 600 400S622.4 350 650 350S700 372.4 700 400S677.6 450 650 450zM550 600C522.4 600 500 577.6 500 550S522.4 500 550 500S600 522.4 600 550S577.6 600 550 600zM700 1000H500V800H700V1000z","horizAdvX":"1200"},"test-tube-line":{"path":["M0 0H24V24H0z","M17 2v2h-1v14c0 2.21-1.79 4-4 4s-4-1.79-4-4V4H7V2h10zm-3 8h-4v8c0 1.105.895 2 2 2s2-.895 2-2v-8zm-1 5c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm-2-3c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm3-8h-4v4h4V4z"],"unicode":"","glyph":"M850 1100V1000H800V300C800 189.5 710.5 100 600 100S400 189.5 400 300V1000H350V1100H850zM700 700H500V300C500 244.75 544.75 200 600 200S700 244.75 700 300V700zM650 450C677.6 450 700 427.6 700 400S677.6 350 650 350S600 372.4 600 400S622.4 450 650 450zM550 600C577.6 600 600 577.6 600 550S577.6 500 550 500S500 522.4 500 550S522.4 600 550 600zM700 1000H500V800H700V1000z","horizAdvX":"1200"},"text-direction-l":{"path":["M0 0h24v24H0z","M11 5v10H9v-4a4 4 0 1 1 0-8h8v2h-2v10h-2V5h-2zM9 5a2 2 0 1 0 0 4V5zm8 12v-2.5l4 3.5-4 3.5V19H5v-2h12z"],"unicode":"","glyph":"M550 950V450H450V650A200 200 0 1 0 450 1050H850V950H750V450H650V950H550zM450 950A100 100 0 1 1 450 750V950zM850 350V475L1050 300L850 125V250H250V350H850z","horizAdvX":"1200"},"text-direction-r":{"path":["M0 0h24v24H0z","M11 5v10H9v-4a4 4 0 1 1 0-8h8v2h-2v10h-2V5h-2zM9 5a2 2 0 1 0 0 4V5zM7 17h12v2H7v2.5L3 18l4-3.5V17z"],"unicode":"","glyph":"M550 950V450H450V650A200 200 0 1 0 450 1050H850V950H750V450H650V950H550zM450 950A100 100 0 1 1 450 750V950zM350 350H950V250H350V125L150 300L350 475V350z","horizAdvX":"1200"},"text-spacing":{"path":["M0 0h24v24H0z","M7 17h10v-2.5l3.5 3.5-3.5 3.5V19H7v2.5L3.5 18 7 14.5V17zm6-11v9h-2V6H5V4h14v2h-6z"],"unicode":"","glyph":"M350 350H850V475L1025 300L850 125V250H350V125L175 300L350 475V350zM650 900V450H550V900H250V1000H950V900H650z","horizAdvX":"1200"},"text-wrap":{"path":["M0 0h24v24H0z","M15 18h1.5a2.5 2.5 0 1 0 0-5H3v-2h13.5a4.5 4.5 0 1 1 0 9H15v2l-4-3 4-3v2zM3 4h18v2H3V4zm6 14v2H3v-2h6z"],"unicode":"","glyph":"M750 300H825A125 125 0 1 1 825 550H150V650H825A225 225 0 1 0 825 200H750V100L550 250L750 400V300zM150 1000H1050V900H150V1000zM450 300V200H150V300H450z","horizAdvX":"1200"},"text":{"path":["M0 0h24v24H0z","M13 6v15h-2V6H5V4h14v2z"],"unicode":"","glyph":"M650 900V150H550V900H250V1000H950V900z","horizAdvX":"1200"},"thermometer-fill":{"path":["M0 0H24V24H0z","M20.556 3.444c1.562 1.562 1.562 4.094 0 5.657l-8.2 8.2c-.642.642-1.484 1.047-2.387 1.147l-3.378.374-2.298 2.3c-.39.39-1.024.39-1.414 0-.39-.391-.39-1.024 0-1.415l2.298-2.299.375-3.377c.1-.903.505-1.745 1.147-2.387l8.2-8.2c1.563-1.562 4.095-1.562 5.657 0zm-9.192 9.192L9.95 14.05l2.121 2.122 1.414-1.415-2.121-2.121zm2.828-2.828l-1.414 1.414 2.121 2.121 1.415-1.414-2.122-2.121zm2.829-2.829l-1.414 1.414 2.12 2.122L19.143 9.1l-2.121-2.122z"],"unicode":"","glyph":"M1027.8 1027.8C1105.9 949.7 1105.9 823.0999999999999 1027.8 744.95L617.8000000000001 334.9500000000001C585.7000000000002 302.8500000000002 543.6000000000001 282.6 498.45 277.6000000000002L329.5500000000001 258.9000000000002L214.6500000000001 143.9000000000001C195.15 124.4000000000001 163.4500000000001 124.4000000000001 143.9500000000001 143.9000000000001C124.4500000000001 163.4500000000003 124.4500000000001 195.1000000000003 143.9500000000001 214.6500000000001L258.8500000000001 329.6000000000002L277.6000000000001 498.45C282.6 543.6000000000001 302.8500000000001 585.7000000000002 334.9500000000001 617.8000000000001L744.95 1027.8C823.1 1105.9 949.7 1105.9 1027.8 1027.8zM568.2 568.2L497.4999999999999 497.5L603.55 391.4L674.25 462.15L568.1999999999999 568.1999999999999zM709.6 709.6L638.9 638.9L744.95 532.85L815.7 603.55L709.6 709.6zM851.0500000000001 851.0500000000001L780.35 780.3500000000001L886.35 674.2500000000001L957.15 745L851.1000000000001 851.1z","horizAdvX":"1200"},"thermometer-line":{"path":["M0 0H24V24H0z","M20.556 3.444c1.562 1.562 1.562 4.094 0 5.657l-8.2 8.2c-.642.642-1.484 1.047-2.387 1.147l-3.378.374-2.298 2.3c-.39.39-1.024.39-1.414 0-.39-.391-.39-1.024 0-1.415l2.298-2.299.375-3.377c.1-.903.505-1.745 1.147-2.387l8.2-8.2c1.563-1.562 4.095-1.562 5.657 0zm-4.242 1.414l-8.2 8.2c-.322.321-.524.742-.574 1.193l-.276 2.485 2.485-.276c.45-.05.872-.252 1.193-.573l.422-.423L9.95 14.05l1.414-1.414 1.414 1.414 1.414-1.414-1.414-1.414 1.414-1.414 1.415 1.414 1.414-1.415-1.414-1.414L17.02 6.98l1.414 1.414.707-.707c.781-.78.781-2.047 0-2.828-.78-.781-2.047-.781-2.828 0z"],"unicode":"","glyph":"M1027.8 1027.8C1105.9 949.7 1105.9 823.0999999999999 1027.8 744.95L617.8000000000001 334.9500000000001C585.7000000000002 302.8500000000002 543.6000000000001 282.6 498.45 277.6000000000002L329.5500000000001 258.9000000000002L214.6500000000001 143.9000000000001C195.15 124.4000000000001 163.4500000000001 124.4000000000001 143.9500000000001 143.9000000000001C124.4500000000001 163.4500000000003 124.4500000000001 195.1000000000003 143.9500000000001 214.6500000000001L258.8500000000001 329.6000000000002L277.6000000000001 498.45C282.6 543.6000000000001 302.8500000000001 585.7000000000002 334.9500000000001 617.8000000000001L744.95 1027.8C823.1 1105.9 949.7 1105.9 1027.8 1027.8zM815.7 957.1L405.7000000000001 547.1C389.6 531.0500000000001 379.5000000000001 510 377.0000000000001 487.45L363.2000000000001 363.2L487.45 377C509.95 379.5 531.0500000000001 389.5999999999999 547.1 405.65L568.2 426.8L497.4999999999999 497.5L568.1999999999999 568.1999999999999L638.9 497.5L709.5999999999999 568.1999999999999L638.9 638.9L709.5999999999999 709.5999999999999L780.3499999999999 638.9L851.0500000000001 709.6499999999999L780.35 780.3499999999999L851 851L921.7 780.3L957.05 815.65C996.1 854.65 996.1 918 957.05 957.05C918.05 996.1 854.7 996.1 815.6500000000001 957.05z","horizAdvX":"1200"},"thumb-down-fill":{"path":["M0 0h24v24H0z","M22 15h-3V3h3a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1zm-5.293 1.293l-6.4 6.4a.5.5 0 0 1-.654.047L8.8 22.1a1.5 1.5 0 0 1-.553-1.57L9.4 16H3a2 2 0 0 1-2-2v-2.104a2 2 0 0 1 .15-.762L4.246 3.62A1 1 0 0 1 5.17 3H16a1 1 0 0 1 1 1v11.586a1 1 0 0 1-.293.707z"],"unicode":"","glyph":"M1100 450H950V1050H1100A50 50 0 0 0 1150 1000V500A50 50 0 0 0 1100 450zM835.35 385.35L515.35 65.3500000000001A25 25 0 0 0 482.65 63L440.0000000000001 95A75 75 0 0 0 412.35 173.5L470 400H150A100 100 0 0 0 50 500V605.1999999999999A100 100 0 0 0 57.5 643.3L212.3 1019A50 50 0 0 0 258.5 1050H800A50 50 0 0 0 850 1000V420.7A50 50 0 0 0 835.35 385.35z","horizAdvX":"1200"},"thumb-down-line":{"path":["M0 0h24v24H0z","M9.4 16H3a2 2 0 0 1-2-2v-2.104a2 2 0 0 1 .15-.762L4.246 3.62A1 1 0 0 1 5.17 3H22a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-3.482a1 1 0 0 0-.817.423l-5.453 7.726a.5.5 0 0 1-.632.159L9.802 22.4a2.5 2.5 0 0 1-1.305-2.853L9.4 16zm7.6-2.588V5H5.84L3 11.896V14h6.4a2 2 0 0 1 1.938 2.493l-.903 3.548a.5.5 0 0 0 .261.571l.661.33 4.71-6.672c.25-.354.57-.644.933-.858zM19 13h2V5h-2v8z"],"unicode":"","glyph":"M470 400H150A100 100 0 0 0 50 500V605.1999999999999A100 100 0 0 0 57.5 643.3L212.3 1019A50 50 0 0 0 258.5 1050H1100A50 50 0 0 0 1150 1000V500A50 50 0 0 0 1100 450H925.9A50 50 0 0 1 885.0500000000001 428.85L612.4000000000001 42.55A25 25 0 0 0 580.8000000000001 34.5999999999999L490.1 80A125 125 0 0 0 424.85 222.6500000000001L470 400zM850 529.4000000000001V950H292L150 605.1999999999999V500H470A100 100 0 0 0 566.9000000000001 375.35L521.75 197.9500000000002A25 25 0 0 1 534.8 169.4000000000001L567.8499999999999 152.9000000000001L803.35 486.5000000000002C815.85 504.2000000000002 831.85 518.7000000000002 850 529.4000000000002zM950 550H1050V950H950V550z","horizAdvX":"1200"},"thumb-up-fill":{"path":["M0 0h24v24H0z","M2 9h3v12H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm5.293-1.293l6.4-6.4a.5.5 0 0 1 .654-.047l.853.64a1.5 1.5 0 0 1 .553 1.57L14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H8a1 1 0 0 1-1-1V8.414a1 1 0 0 1 .293-.707z"],"unicode":"","glyph":"M100 750H250V150H100A50 50 0 0 0 50 200V700A50 50 0 0 0 100 750zM364.6500000000001 814.6500000000001L684.6500000000001 1134.65A25 25 0 0 0 717.35 1137L760 1105A75 75 0 0 0 787.6500000000001 1026.5L730 800H1050A100 100 0 0 0 1150 700V594.8000000000001A100 100 0 0 0 1142.5 556.7L987.7500000000002 180.9500000000001A50 50 0 0 0 941.5000000000002 150H400A50 50 0 0 0 350 200V779.3A50 50 0 0 0 364.6500000000001 814.6500000000001z","horizAdvX":"1200"},"thumb-up-line":{"path":["M0 0h24v24H0z","M14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h3.482a1 1 0 0 0 .817-.423L11.752.85a.5.5 0 0 1 .632-.159l1.814.907a2.5 2.5 0 0 1 1.305 2.853L14.6 8zM7 10.588V19h11.16L21 12.104V10h-6.4a2 2 0 0 1-1.938-2.493l.903-3.548a.5.5 0 0 0-.261-.571l-.661-.33-4.71 6.672c-.25.354-.57.644-.933.858zM5 11H3v8h2v-8z"],"unicode":"","glyph":"M730 800H1050A100 100 0 0 0 1150 700V594.8000000000001A100 100 0 0 0 1142.5 556.7L987.7500000000002 180.9500000000001A50 50 0 0 0 941.5000000000002 150H100A50 50 0 0 0 50 200V700A50 50 0 0 0 100 750H274.1A50 50 0 0 1 314.9500000000001 771.15L587.6 1157.5A25 25 0 0 0 619.2 1165.45L709.9 1120.1A125 125 0 0 0 775.15 977.45L730 800zM350 670.6V250H908L1050 594.8000000000001V700H730A100 100 0 0 0 633.0999999999999 824.6500000000001L678.25 1002.05A25 25 0 0 1 665.2 1030.6L632.1500000000001 1047.1L396.6500000000001 713.5C384.1500000000001 695.8 368.1500000000001 681.3 350.0000000000001 670.5999999999999zM250 650H150V250H250V650z","horizAdvX":"1200"},"thunderstorms-fill":{"path":["M0 0h24v24H0z","M16.988 18l1.216-1.58a1.5 1.5 0 0 0-1.189-2.415H15v-3.976a1.5 1.5 0 0 0-2.69-.914l-6.365 8.281A8.002 8.002 0 0 1 9 2a8.003 8.003 0 0 1 7.458 5.099A5.5 5.5 0 1 1 17.5 18h-.512zM13 16.005h3l-5 6.5v-4.5H8l5-6.505v4.505z"],"unicode":"","glyph":"M849.4 300L910.2 378.9999999999999A75 75 0 0 1 850.75 499.7499999999999H750V698.5499999999998A75 75 0 0 1 615.5 744.2499999999998L297.25 330.1999999999998A400.1 400.1 0 0 0 450 1100A400.15000000000003 400.15000000000003 0 0 0 822.8999999999999 845.05A275 275 0 1 0 875 300H849.4zM650 399.75H800L550 74.75V299.75H400L650 625V399.75z","horizAdvX":"1200"},"thunderstorms-line":{"path":["M0 0h24v24H0z","M17 18v-2h.5a3.5 3.5 0 1 0-2.5-5.95V10a6 6 0 1 0-8 5.659v2.089a8 8 0 1 1 9.458-10.65A5.5 5.5 0 1 1 17.5 18l-.5.001zm-4-1.995h3l-5 6.5v-4.5H8l5-6.505v4.505z"],"unicode":"","glyph":"M850 300V400H875A175 175 0 1 1 750 697.5V700A300 300 0 1 1 350 417.0500000000001V312.6000000000002A400 400 0 1 0 822.8999999999999 845.1000000000001A275 275 0 1 0 875 300L850 299.95zM650 399.75H800L550 74.75V299.75H400L650 625V399.75z","horizAdvX":"1200"},"ticket-2-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18zm-5 6H8v6h8V9z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050zM800 750H400V450H800V750z","horizAdvX":"1200"},"ticket-2-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18zm-1 2H4v2.968l.156.081a4.5 4.5 0 0 1 2.34 3.74L6.5 12a4.499 4.499 0 0 1-2.344 3.95L4 16.032V19h16v-2.969l-.156-.08a4.5 4.5 0 0 1-2.34-3.74L17.5 12c0-1.704.947-3.187 2.344-3.95L20 7.967V5zm-4 4v6H8V9h8z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V801.6L207.8 797.55A225 225 0 0 0 324.8 610.5500000000001L325 600A224.94999999999996 224.94999999999996 0 0 0 207.8000000000001 402.5L200 398.4V250H1000V398.4500000000001L992.2 402.4500000000001A225 225 0 0 0 875.2 589.45L875 600C875 685.2 922.35 759.3499999999999 992.2 797.5L1000 801.6500000000001V950zM800 750V450H400V750H800z","horizAdvX":"1200"},"ticket-fill":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050z","horizAdvX":"1200"},"ticket-line":{"path":["M0 0h24v24H0z","M21 3a1 1 0 0 1 1 1v5.5a2.5 2.5 0 1 0 0 5V20a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-5.5a2.5 2.5 0 1 0 0-5V4a1 1 0 0 1 1-1h18zm-1 2H4v2.968l.156.081a4.5 4.5 0 0 1 2.34 3.74L6.5 12a4.499 4.499 0 0 1-2.344 3.95L4 16.032V19h16v-2.969l-.156-.08a4.5 4.5 0 0 1-2.34-3.74L17.5 12c0-1.704.947-3.187 2.344-3.95L20 7.967V5z"],"unicode":"","glyph":"M1050 1050A50 50 0 0 0 1100 1000V725A125 125 0 1 1 1100 475V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V475A125 125 0 1 1 100 725V1000A50 50 0 0 0 150 1050H1050zM1000 950H200V801.6L207.8 797.55A225 225 0 0 0 324.8 610.5500000000001L325 600A224.94999999999996 224.94999999999996 0 0 0 207.8000000000001 402.5L200 398.4V250H1000V398.4500000000001L992.2 402.4500000000001A225 225 0 0 0 875.2 589.45L875 600C875 685.2 922.35 759.3499999999999 992.2 797.5L1000 801.6500000000001V950z","horizAdvX":"1200"},"time-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm1-10V7h-2v7h6v-2h-4z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM650 600V850H550V500H850V600H650z","horizAdvX":"1200"},"time-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm1-8h4v2h-6V7h2v5z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM650 600H850V500H550V850H650V600z","horizAdvX":"1200"},"timer-2-fill":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm3.536 5.05L10.586 12 12 13.414l4.95-4.95-1.414-1.414z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM776.8 847.5L529.3000000000001 600L600 529.3000000000001L847.5 776.8000000000001L776.8 847.5z","horizAdvX":"1200"},"timer-2-line":{"path":["M0 0h24v24H0z","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm0 18c4.42 0 8-3.58 8-8s-3.58-8-8-8-8 3.58-8 8 3.58 8 8 8zm3.536-12.95l1.414 1.414-4.95 4.95L10.586 12l4.95-4.95z"],"unicode":"","glyph":"M600 1100C876 1100 1100 876 1100 600S876 100 600 100S100 324 100 600S324 1100 600 1100zM600 200C821.0000000000001 200 1000 378.9999999999999 1000 600S821.0000000000001 1000 600 1000S200 821 200 600S379 200 600 200zM776.8 847.5L847.5 776.8L600 529.3L529.3000000000001 600L776.8000000000001 847.5z","horizAdvX":"1200"},"timer-fill":{"path":["M0 0h24v24H0z","M17.618 5.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-1.414-1.414zM11 8v6h2V8h-2zM8 1h8v2H8V1z"],"unicode":"","glyph":"M880.9 901.6L953.55 974.25L1024.25 903.55L951.6 830.9000000000001A450 450 0 1 0 880.9 901.6zM550 800V500H650V800H550zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"timer-flash-fill":{"path":["M0 0h24v24H0z","M6.382 5.968A8.962 8.962 0 0 1 12 4c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-14.064 0L3.515 5.93l1.414-1.414 1.453 1.453zM13 12V7.495L8 14h3v4.5l5-6.5h-3zM8 1h8v2H8V1z"],"unicode":"","glyph":"M319.1 901.6A448.1 448.1 0 0 0 600 1000C706.25 1000 803.9 963.2 880.9000000000001 901.6L953.55 974.25L1024.2500000000002 903.55L951.6000000000003 830.9000000000001A450 450 0 1 0 248.4000000000002 830.9000000000001L175.75 903.5L246.45 974.2L319.1 901.55zM650 600V825.25L400 500H550V275L800 600H650zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"timer-flash-line":{"path":["M0 0h24v24H0z","M6.382 5.968A8.962 8.962 0 0 1 12 4c2.125 0 4.078.736 5.618 1.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-14.064 0L3.515 5.93l1.414-1.414 1.453 1.453zM12 20a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm1-8h3l-5 6.5V14H8l5-6.505V12zM8 1h8v2H8V1z"],"unicode":"","glyph":"M319.1 901.6A448.1 448.1 0 0 0 600 1000C706.25 1000 803.9 963.2 880.9000000000001 901.6L953.55 974.25L1024.2500000000002 903.55L951.6000000000003 830.9000000000001A450 450 0 1 0 248.4000000000002 830.9000000000001L175.75 903.5L246.45 974.2L319.1 901.55zM600 200A350 350 0 1 1 600 900A350 350 0 0 1 600 200zM650 600H800L550 275V500H400L650 825.25V600zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"timer-line":{"path":["M0 0h24v24H0z","M17.618 5.968l1.453-1.453 1.414 1.414-1.453 1.453a9 9 0 1 1-1.414-1.414zM12 20a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM11 8h2v6h-2V8zM8 1h8v2H8V1z"],"unicode":"","glyph":"M880.9 901.6L953.55 974.25L1024.25 903.55L951.6 830.9000000000001A450 450 0 1 0 880.9 901.6zM600 200A350 350 0 1 1 600 900A350 350 0 0 1 600 200zM550 800H650V500H550V800zM400 1150H800V1050H400V1150z","horizAdvX":"1200"},"todo-fill":{"path":["M0 0h24v24H0z","M17 2h3a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3V0h2v2h6V0h2v2zM7 8v2h10V8H7zm0 4v2h10v-2H7z"],"unicode":"","glyph":"M850 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H350V1200H450V1100H750V1200H850V1100zM350 800V700H850V800H350zM350 600V500H850V600H350z","horizAdvX":"1200"},"todo-line":{"path":["M0 0h24v24H0z","M17 2h3a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3V0h2v2h6V0h2v2zm0 2v2h-2V4H9v2H7V4H5v16h14V4h-2zM7 8h10v2H7V8zm0 4h10v2H7v-2z"],"unicode":"","glyph":"M850 1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H350V1200H450V1100H750V1200H850V1100zM850 1000V900H750V1000H450V900H350V1000H250V200H950V1000H850zM350 800H850V700H350V800zM350 600H850V500H350V600z","horizAdvX":"1200"},"toggle-fill":{"path":["M0 0h24v24H0z","M8 5h8a7 7 0 0 1 0 14H8A7 7 0 0 1 8 5zm8 10a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M400 950H800A350 350 0 0 0 800 250H400A350 350 0 0 0 400 950zM800 450A150 150 0 1 1 800 750A150 150 0 0 1 800 450z","horizAdvX":"1200"},"toggle-line":{"path":["M0 0h24v24H0z","M8 7a5 5 0 1 0 0 10h8a5 5 0 0 0 0-10H8zm0-2h8a7 7 0 0 1 0 14H8A7 7 0 0 1 8 5zm0 10a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M400 850A250 250 0 1 1 400 350H800A250 250 0 0 1 800 850H400zM400 950H800A350 350 0 0 0 800 250H400A350 350 0 0 0 400 950zM400 450A150 150 0 1 0 400 750A150 150 0 0 0 400 450z","horizAdvX":"1200"},"tools-fill":{"path":["M0 0h24v24H0z","M5.33 3.271a3.5 3.5 0 0 1 4.472 4.474L20.647 18.59l-2.122 2.121L7.68 9.867a3.5 3.5 0 0 1-4.472-4.474L5.444 7.63a1.5 1.5 0 1 0 2.121-2.121L5.329 3.27zm10.367 1.884l3.182-1.768 1.414 1.414-1.768 3.182-1.768.354-2.12 2.121-1.415-1.414 2.121-2.121.354-1.768zm-7.071 7.778l2.121 2.122-4.95 4.95A1.5 1.5 0 0 1 3.58 17.99l.097-.107 4.95-4.95z"],"unicode":"","glyph":"M266.5 1036.45A175 175 0 0 0 490.1 812.75L1032.35 270.5L926.2499999999998 164.4500000000001L384 706.65A175 175 0 0 0 160.4 930.35L272.2 818.5A75 75 0 1 1 378.25 924.55L266.45 1036.5zM784.85 942.25L943.95 1030.65L1014.65 959.95L926.2500000000002 800.8500000000001L837.85 783.1500000000001L731.85 677.1000000000001L661.1 747.8000000000001L767.1500000000001 853.8500000000001L784.85 942.25zM431.3000000000001 553.35L537.3500000000001 447.25L289.8500000000001 199.75A75 75 0 0 0 179 300.5000000000001L183.85 305.85L431.35 553.35z","horizAdvX":"1200"},"tools-line":{"path":["M0 0h24v24H0z","M5.33 3.271a3.5 3.5 0 0 1 4.254 4.963l10.709 10.71-1.414 1.414-10.71-10.71a3.502 3.502 0 0 1-4.962-4.255L5.444 7.63a1.5 1.5 0 1 0 2.121-2.121L5.329 3.27zm10.367 1.884l3.182-1.768 1.414 1.414-1.768 3.182-1.768.354-2.12 2.121-1.415-1.414 2.121-2.121.354-1.768zm-6.718 8.132l1.414 1.414-5.303 5.303a1 1 0 0 1-1.492-1.327l.078-.087 5.303-5.303z"],"unicode":"","glyph":"M266.5 1036.45A175 175 0 0 0 479.2 788.3L1014.65 252.7999999999999L943.95 182.0999999999998L408.4499999999998 717.5999999999999A175.1 175.1 0 0 0 160.3499999999999 930.35L272.2 818.5A75 75 0 1 1 378.25 924.55L266.45 1036.5zM784.85 942.25L943.95 1030.65L1014.65 959.95L926.2500000000002 800.8500000000001L837.85 783.1500000000001L731.85 677.1000000000001L661.1 747.8000000000001L767.1500000000001 853.8500000000001L784.85 942.25zM448.9500000000001 535.6500000000001L519.6500000000001 464.95L254.5000000000001 199.8000000000001A50 50 0 0 0 179.9 266.15L183.8000000000001 270.5L448.9500000000001 535.6500000000001z","horizAdvX":"1200"},"tornado-fill":{"path":["M0 0h24v24H0z","M2 3h20v2H2V3zm2 4h16v2H4V7zm4 4h14v2H8v-2zm2 4h8v2h-8v-2zm-2 4h6v2H8v-2z"],"unicode":"","glyph":"M100 1050H1100V950H100V1050zM200 850H1000V750H200V850zM400 650H1100V550H400V650zM500 450H900V350H500V450zM400 250H700V150H400V250z","horizAdvX":"1200"},"tornado-line":{"path":["M0 0h24v24H0z","M2 3h20v2H2V3zm2 4h16v2H4V7zm4 4h14v2H8v-2zm2 4h8v2h-8v-2zm-2 4h6v2H8v-2z"],"unicode":"","glyph":"M100 1050H1100V950H100V1050zM200 850H1000V750H200V850zM400 650H1100V550H400V650zM500 450H900V350H500V450zM400 250H700V150H400V250z","horizAdvX":"1200"},"trademark-fill":{"path":["M0 0h24v24H0z","M10 6v2H6v10H4V8H0V6h10zm2 0h2.5l3 5.196L20.5 6H23v12h-2V9.133l-3.5 6.063L14 9.135V18h-2V6z"],"unicode":"","glyph":"M500 900V800H300V300H200V800H0V900H500zM600 900H725L875 640.2L1025 900H1150V300H1050V743.35L875 440.2000000000001L700 743.25V300H600V900z","horizAdvX":"1200"},"trademark-line":{"path":["M0 0h24v24H0z","M10 6v2H6v10H4V8H0V6h10zm2 0h2.5l3 5.196L20.5 6H23v12h-2V9.133l-3.5 6.063L14 9.135V18h-2V6z"],"unicode":"","glyph":"M500 900V800H300V300H200V800H0V900H500zM600 900H725L875 640.2L1025 900H1150V300H1050V743.35L875 440.2000000000001L700 743.25V300H600V900z","horizAdvX":"1200"},"traffic-light-fill":{"path":["M0 0h24v24H0z","M7 4V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v1h3c0 2.5-2.5 3.5-3 3.5V10h3c0 2.5-2.5 3.5-3 3.5V16h3c0 2.5-2.5 3.5-3 3.5V21a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-1.5c-.5 0-3-1-3-3.5h3v-2.5c-.5 0-3-1-3-3.5h3V7.5c-.5 0-3-1-3-3.5h3zm5 16a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M350 1000V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V1000H1000C1000 875 875 825 850 825V700H1000C1000 575 875 525 850 525V400H1000C1000 275 875 225 850 225V150A50 50 0 0 0 800 100H400A50 50 0 0 0 350 150V225C325 225 200 275 200 400H350V525C325 525 200 575 200 700H350V825C325 825 200 875 200 1000H350zM600 200A100 100 0 1 1 600 400A100 100 0 0 1 600 200zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"traffic-light-line":{"path":["M0 0h24v24H0z","M7 4V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v1h3c0 2.5-2.5 3.5-3 3.5V10h3c0 2.5-2.5 3.5-3 3.5V16h3c0 2.5-2.5 3.5-3 3.5V21a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-1.5c-.5 0-3-1-3-3.5h3v-2.5c-.5 0-3-1-3-3.5h3V7.5c-.5 0-3-1-3-3.5h3zm5 16a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M350 1000V1050A50 50 0 0 0 400 1100H800A50 50 0 0 0 850 1050V1000H1000C1000 875 875 825 850 825V700H1000C1000 575 875 525 850 525V400H1000C1000 275 875 225 850 225V150A50 50 0 0 0 800 100H400A50 50 0 0 0 350 150V225C325 225 200 275 200 400H350V525C325 525 200 575 200 700H350V825C325 825 200 875 200 1000H350zM600 200A100 100 0 1 1 600 400A100 100 0 0 1 600 200zM600 500A100 100 0 1 1 600 700A100 100 0 0 1 600 500zM600 800A100 100 0 1 1 600 1000A100 100 0 0 1 600 800z","horizAdvX":"1200"},"train-fill":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM5 7v4h14V7H5zm7 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM250 850V650H950V850H250zM600 300A100 100 0 1 1 600 500A100 100 0 0 1 600 300z","horizAdvX":"1200"},"train-line":{"path":["M0 0h24v24H0z","M17.2 20l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v11a2 2 0 0 1-2 2h-1.8zM7 5a2 2 0 0 0-2 2v11h14V7a2 2 0 0 0-2-2H7zm5 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zM6 7h12v4H6V7z"],"unicode":"","glyph":"M860 200L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H850A200 200 0 0 0 1050 850V300A100 100 0 0 0 950 200H860zM350 950A100 100 0 0 1 250 850V300H950V850A100 100 0 0 1 850 950H350zM600 350A100 100 0 1 0 600 550A100 100 0 0 0 600 350zM300 850H900V650H300V850z","horizAdvX":"1200"},"train-wifi-fill":{"path":["M0 0h24v24H0z","M12.498 3a6.518 6.518 0 0 0-.324 4H5v4h10.035a6.47 6.47 0 0 0 3.465 1 6.48 6.48 0 0 0 2.5-.498V18a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h5.498zM12 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm6.5-13a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M624.9 1050A325.90000000000003 325.90000000000003 0 0 1 608.6999999999999 850H250V650H751.75A323.5 323.5 0 0 1 925 600A324 324 0 0 1 1050 624.9V300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H624.9000000000001zM600 500A100 100 0 1 1 600 300A100 100 0 0 1 600 500zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"train-wifi-line":{"path":["M0 0h24v24H0z","M12.498 3a6.464 6.464 0 0 0-.479 2H7a2 2 0 0 0-1.995 1.85L5 7v11h14v-6.019a6.463 6.463 0 0 0 2-.48V18a2 2 0 0 1-2 2h-1.8l1.8 1.5v.5H5v-.5L6.8 20H5a2 2 0 0 1-2-2V7a4 4 0 0 1 4-4h5.498zM12 13a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm.174-6a6.51 6.51 0 0 0 2.862 4.001L6 11V7h6.174zM18.5 1a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 5.167c-.491 0-.94.177-1.289.47l-.125.115L18.5 8.167l1.413-1.416a1.994 1.994 0 0 0-1.413-.584zm0-2.667a4.65 4.65 0 0 0-3.128 1.203l-.173.165.944.942a3.323 3.323 0 0 1 2.357-.977 3.32 3.32 0 0 1 2.201.83l.156.147.943-.943A4.652 4.652 0 0 0 18.5 3.5z"],"unicode":"","glyph":"M624.9 1050A323.20000000000005 323.20000000000005 0 0 1 600.95 950H350A100 100 0 0 1 250.25 857.5L250 850V300H950V600.95A323.15 323.15 0 0 1 1050 624.95V300A100 100 0 0 0 950 200H860L950 125V100H250V125L340 200H250A100 100 0 0 0 150 300V850A200 200 0 0 0 350 1050H624.9000000000001zM600 550A100 100 0 1 0 600 350A100 100 0 0 0 600 550zM608.6999999999999 850A325.49999999999994 325.49999999999994 0 0 1 751.8 649.9499999999999L300 650V850H608.6999999999999zM925 1150A225 225 0 1 0 925 700A225 225 0 0 0 925 1150zM925 891.6500000000001C900.45 891.6500000000001 877.9999999999999 882.8 860.55 868.1500000000001L854.3 862.4000000000001L925 791.6500000000001L995.65 862.45A99.7 99.7 0 0 1 925 891.6500000000001zM925 1025A232.50000000000003 232.50000000000003 0 0 1 768.6 964.85L759.95 956.6L807.1500000000001 909.5A166.15 166.15 0 0 0 925 958.35A166 166 0 0 0 1035.05 916.85L1042.85 909.5L1090 956.65A232.60000000000002 232.60000000000002 0 0 1 925 1025z","horizAdvX":"1200"},"translate-2":{"path":["M0 0h24v24H0z","M18.5 10l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16.5 10h2zM10 2v2h6v2h-1.968a18.222 18.222 0 0 1-3.62 6.301 14.864 14.864 0 0 0 2.336 1.707l-.751 1.878A17.015 17.015 0 0 1 9 13.725a16.676 16.676 0 0 1-6.201 3.548l-.536-1.929a14.7 14.7 0 0 0 5.327-3.042A18.078 18.078 0 0 1 4.767 8h2.24A16.032 16.032 0 0 0 9 10.877a16.165 16.165 0 0 0 2.91-4.876L2 6V4h6V2h2zm7.5 10.885L16.253 16h2.492L17.5 12.885z"],"unicode":"","glyph":"M925 700L1145 150H1037.2499999999998L977.1999999999998 300H772.6999999999998L712.7499999999999 150H605.0499999999998L825 700H925zM500 1100V1000H800V900H701.6A911.1000000000001 911.1000000000001 0 0 0 520.5999999999999 584.95A743.2 743.2 0 0 1 637.4 499.5999999999999L599.85 405.7A850.75 850.75 0 0 0 450 513.75A833.8000000000001 833.8000000000001 0 0 0 139.95 336.35L113.15 432.8000000000001A735 735 0 0 1 379.5 584.9A903.9 903.9 0 0 0 238.35 800H350.35A801.6 801.6 0 0 1 450 656.15A808.2499999999999 808.2499999999999 0 0 1 595.5 899.95L100 900V1000H400V1100H500zM875 555.75L812.65 400H937.25L875 555.75z","horizAdvX":"1200"},"translate":{"path":["M0 0h24v24H0z","M5 15v2a2 2 0 0 0 1.85 1.995L7 19h3v2H7a4 4 0 0 1-4-4v-2h2zm13-5l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16 10h2zm-1 2.885L15.753 16h2.492L17 12.885zM8 2v2h4v7H8v3H6v-3H2V4h4V2h2zm9 1a4 4 0 0 1 4 4v2h-2V7a2 2 0 0 0-2-2h-3V3h3zM6 6H4v3h2V6zm4 0H8v3h2V6z"],"unicode":"","glyph":"M250 450V350A100 100 0 0 1 342.5 250.25L350 250H500V150H350A200 200 0 0 0 150 350V450H250zM900 700L1120 150H1012.2499999999998L952.1999999999998 300H747.6999999999998L687.7499999999999 150H580.0499999999998L800 700H900zM850 555.75L787.65 400H912.25L850 555.75zM400 1100V1000H600V650H400V500H300V650H100V1000H300V1100H400zM850 1050A200 200 0 0 0 1050 850V750H950V850A100 100 0 0 1 850 950H700V1050H850zM300 900H200V750H300V900zM500 900H400V750H500V900z","horizAdvX":"1200"},"travesti-fill":{"path":["M0 0h24v24H0z","M7.537 9.95L4.66 7.076 2.186 9.55.772 8.136l6.364-6.364L8.55 3.186 6.075 5.661l2.876 2.876A7.5 7.5 0 1 1 7.537 9.95z"],"unicode":"","glyph":"M376.85 702.5L233 846.2L109.3 722.5L38.6 793.2L356.8 1111.4L427.5000000000001 1040.7L303.75 916.95L447.55 773.1500000000001A375 375 0 1 0 376.85 702.5z","horizAdvX":"1200"},"travesti-line":{"path":["M0 0h24v24H0z","M8.95 8.537A7.5 7.5 0 1 1 7.537 9.95L4.662 7.075 2.186 9.55.772 8.136l6.364-6.364L8.55 3.186 6.075 5.661l2.876 2.876zM13.5 20a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M447.5 773.15A375 375 0 1 0 376.85 702.5L233.1 846.25L109.3 722.5L38.6 793.2L356.8 1111.4L427.5000000000001 1040.7L303.75 916.95L447.55 773.1500000000001zM675 200A275 275 0 1 1 675 750A275 275 0 0 1 675 200z","horizAdvX":"1200"},"treasure-map-fill":{"path":["M0 0h24v24H0z","M2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm4 6v2h2v-2H6zm4 0v2h2v-2h-2zm6-.06l-1.237-1.238-1.061 1.06L14.939 12l-1.237 1.237 1.06 1.061L16 13.061l1.237 1.237 1.061-1.06L17.061 12l1.237-1.237-1.06-1.061L16 10.939z"],"unicode":"","glyph":"M100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM300 650V550H400V650H300zM500 650V550H600V650H500zM800 653L738.15 714.9L685.1 661.9L746.95 600L685.1 538.15L738.1 485.1L800 546.95L861.8500000000001 485.1L914.9 538.1L853.05 600L914.9 661.85L861.9000000000002 714.9L800 653.05z","horizAdvX":"1200"},"treasure-map-line":{"path":["M0 0h24v24H0z","M14.935 7.204l-6-3L4 6.319v12.648l5.065-2.17 6 3L20 17.68V5.033l-5.065 2.17zM2 5l7-3 6 3 6.303-2.701a.5.5 0 0 1 .697.46V19l-7 3-6-3-6.303 2.701a.5.5 0 0 1-.697-.46V5zm4 6h2v2H6v-2zm4 0h2v2h-2v-2zm5.998-.063L17.236 9.7l1.06 1.06-1.237 1.238 1.237 1.238-1.06 1.06-1.238-1.237-1.237 1.237-1.061-1.06 1.237-1.238-1.237-1.237L14.76 9.7l1.238 1.237z"],"unicode":"","glyph":"M746.75 839.8L446.75 989.8L200 884.05V251.6500000000001L453.2500000000001 360.1500000000001L753.2500000000001 210.1500000000001L1000 316V948.35L746.7499999999999 839.8499999999999zM100 950L450 1100L750 950L1065.15 1085.05A25 25 0 0 0 1100 1062.05V250L750 100L450 250L134.85 114.9500000000001A25 25 0 0 0 100 137.9500000000001V950zM300 650H400V550H300V650zM500 650H600V550H500V650zM799.9000000000001 653.15L861.8000000000001 715L914.8 662L852.9499999999998 600.1L914.8 538.2L861.8000000000001 485.2L799.9000000000001 547.0500000000001L738.0500000000001 485.2L685 538.2L746.85 600.1L685 661.95L738 715L799.9 653.15z","horizAdvX":"1200"},"trello-fill":{"path":["M0 0h24v24H0z","M5.25 3h13.5A2.25 2.25 0 0 1 21 5.25v13.5A2.25 2.25 0 0 1 18.75 21H5.25A2.25 2.25 0 0 1 3 18.75V5.25A2.25 2.25 0 0 1 5.25 3zm7.92 3.42v5.76c0 .596.484 1.08 1.08 1.08h3.33a1.08 1.08 0 0 0 1.08-1.08V6.42a1.08 1.08 0 0 0-1.08-1.08h-3.33a1.08 1.08 0 0 0-1.08 1.08zm-7.83 0v10.26c0 .596.484 1.08 1.08 1.08h3.33a1.08 1.08 0 0 0 1.08-1.08V6.42a1.08 1.08 0 0 0-1.08-1.08H6.42a1.08 1.08 0 0 0-1.08 1.08z"],"unicode":"","glyph":"M262.5 1050H937.5A112.5 112.5 0 0 0 1050 937.5V262.5A112.5 112.5 0 0 0 937.5 150H262.5A112.5 112.5 0 0 0 150 262.5V937.5A112.5 112.5 0 0 0 262.5 1050zM658.5 879V591C658.5 561.2 682.7 537 712.5 537H878.9999999999999A54 54 0 0 1 932.9999999999998 591V879A54 54 0 0 1 878.9999999999999 933H712.4999999999999A54 54 0 0 1 658.4999999999999 879zM267 879V366C267 336.2000000000001 291.2 312.0000000000001 321 312.0000000000001H487.5A54 54 0 0 1 541.5 366V879A54 54 0 0 1 487.5 933H321A54 54 0 0 1 267 879z","horizAdvX":"1200"},"trello-line":{"path":["M0 0h24v24H0z","M5 5v14h14V5H5zm0-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm3 4h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1zm6 0h2a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z"],"unicode":"","glyph":"M250 950V250H950V950H250zM250 1050H950A100 100 0 0 0 1050 950V250A100 100 0 0 0 950 150H250A100 100 0 0 0 150 250V950A100 100 0 0 0 250 1050zM400 850H500A50 50 0 0 0 550 800V400A50 50 0 0 0 500 350H400A50 50 0 0 0 350 400V800A50 50 0 0 0 400 850zM700 850H800A50 50 0 0 0 850 800V600A50 50 0 0 0 800 550H700A50 50 0 0 0 650 600V800A50 50 0 0 0 700 850z","horizAdvX":"1200"},"trophy-fill":{"path":["M0 0h24v24H0z","M13 16.938V19h5v2H6v-2h5v-2.062A8.001 8.001 0 0 1 4 9V3h16v6a8.001 8.001 0 0 1-7 7.938zM1 5h2v4H1V5zm20 0h2v4h-2V5z"],"unicode":"","glyph":"M650 353.1V250H900V150H300V250H550V353.1A400.04999999999995 400.04999999999995 0 0 0 200 750V1050H1000V750A400.04999999999995 400.04999999999995 0 0 0 650 353.1zM50 950H150V750H50V950zM1050 950H1150V750H1050V950z","horizAdvX":"1200"},"trophy-line":{"path":["M0 0h24v24H0z","M13 16.938V19h5v2H6v-2h5v-2.062A8.001 8.001 0 0 1 4 9V3h16v6a8.001 8.001 0 0 1-7 7.938zM6 5v4a6 6 0 1 0 12 0V5H6zM1 5h2v4H1V5zm20 0h2v4h-2V5z"],"unicode":"","glyph":"M650 353.1V250H900V150H300V250H550V353.1A400.04999999999995 400.04999999999995 0 0 0 200 750V1050H1000V750A400.04999999999995 400.04999999999995 0 0 0 650 353.1zM300 950V750A300 300 0 1 1 900 750V950H300zM50 950H150V750H50V950zM1050 950H1150V750H1050V950z","horizAdvX":"1200"},"truck-fill":{"path":["M0 0h24v24H0z","M17 8h3l3 4.056V18h-2.035a3.5 3.5 0 0 1-6.93 0h-5.07a3.5 3.5 0 0 1-6.93 0H1V6a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2zm0 2v3h4v-.285L18.992 10H17z"],"unicode":"","glyph":"M850 800H1000L1150 597.1999999999999V300H1048.25A175 175 0 0 0 701.75 300H448.25A175 175 0 0 0 101.75 300H50V900A50 50 0 0 0 100 950H800A50 50 0 0 0 850 900V800zM850 700V550H1050V564.25L949.6 700H850z","horizAdvX":"1200"},"truck-line":{"path":["M0 0h24v24H0z","M8.965 18a3.5 3.5 0 0 1-6.93 0H1V6a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2h3l3 4.056V18h-2.035a3.5 3.5 0 0 1-6.93 0h-5.07zM15 7H3v8.05a3.5 3.5 0 0 1 5.663.95h5.674c.168-.353.393-.674.663-.95V7zm2 6h4v-.285L18.992 10H17v3zm.5 6a1.5 1.5 0 1 0 0-3.001 1.5 1.5 0 0 0 0 3.001zM7 17.5a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0z"],"unicode":"","glyph":"M448.25 300A175 175 0 0 0 101.75 300H50V900A50 50 0 0 0 100 950H800A50 50 0 0 0 850 900V800H1000L1150 597.1999999999999V300H1048.25A175 175 0 0 0 701.75 300H448.25zM750 850H150V447.5A175 175 0 0 0 433.1500000000001 400H716.85C725.25 417.65 736.5 433.7 750 447.5V850zM850 550H1050V564.25L949.6 700H850V550zM875 250A75 75 0 1 1 875 400.05A75 75 0 0 1 875 250zM350 325A75 75 0 1 1 200 325A75 75 0 0 1 350 325z","horizAdvX":"1200"},"tumblr-fill":{"path":["M0 0h24v24H0z","M6.27 7.63A5.76 5.76 0 0 0 10.815 2h3.03v5.152h3.637v3.636h-3.636v5.454c0 .515.197 1.207.909 1.667.474.307 1.484.458 3.03.455V22h-4.242a4.545 4.545 0 0 1-4.546-4.545v-6.667H6.27V7.63z"],"unicode":"","glyph":"M313.5 818.5A288 288 0 0 1 540.75 1100H692.25V842.4H874.0999999999999V660.6H692.3V387.9C692.3 362.15 702.15 327.55 737.75 304.5499999999999C761.45 289.2 811.95 281.65 889.25 281.8V100H677.15A227.25000000000003 227.25000000000003 0 0 0 449.85 327.2500000000001V660.6H313.5V818.5z","horizAdvX":"1200"},"tumblr-line":{"path":["M0 0h24v24H0z","M8 8c1.075 0 3.497-.673 3.497-4.5V2h1.5v6H18v2h-5.003v2.91C13 15.39 13 16.595 13 17c-.002 2.208 1.615 3.4 4.785 3.4V22h-2.242c-2.402.002-4.546-2.035-4.546-4.545V10H7V8h1z"],"unicode":"","glyph":"M400 800C453.7499999999999 800 574.85 833.65 574.85 1025V1100H649.85V800H900V700H649.85V554.5C650 430.5 650 370.25 650 350C649.9 239.6000000000002 730.75 180.0000000000001 889.25 180.0000000000001V100H777.15C657.05 99.9000000000001 549.85 201.75 549.85 327.2500000000001V700H350V800H400z","horizAdvX":"1200"},"tv-2-fill":{"path":["M0 0h24v24H0z","M2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 18V4zm3 16h14v2H5v-2z"],"unicode":"","glyph":"M100 1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H149.6A49.7 49.7 0 0 0 100 300V1000zM250 200H950V100H250V200z","horizAdvX":"1200"},"tv-2-line":{"path":["M0 0h24v24H0z","M2 4c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 18V4zm2 1v12h16V5H4zm1 15h14v2H5v-2z"],"unicode":"","glyph":"M100 1000C100 1027.6 122.75 1050 149.6 1050H1050.3999999999999C1077.8 1050 1100 1027.75 1100 1000V300C1100 272.4 1077.25 250 1050.3999999999999 250H149.6A49.7 49.7 0 0 0 100 300V1000zM200 950V350H1000V950H200zM250 200H950V100H250V200z","horizAdvX":"1200"},"tv-fill":{"path":["M0 0h24v24H0z","M15.414 5h5.594c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6c0-.552.455-1 .992-1h5.594L6.05 2.464 7.464 1.05 11.414 5h1.172l3.95-3.95 1.414 1.414L15.414 5z"],"unicode":"","glyph":"M770.6999999999999 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900C100 927.6 122.75 950 149.6 950H429.3L302.5 1076.8L373.2000000000001 1147.5L570.6999999999999 950H629.3000000000001L826.8000000000001 1147.5L897.5000000000001 1076.8L770.6999999999999 950z","horizAdvX":"1200"},"tv-line":{"path":["M0 0h24v24H0z","M15.414 5h5.594c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H2.992A.994.994 0 0 1 2 20V6c0-.552.455-1 .992-1h5.594L6.05 2.464 7.464 1.05 11.414 5h1.172l3.95-3.95 1.414 1.414L15.414 5zM4 7v12h16V7H4z"],"unicode":"","glyph":"M770.6999999999999 950H1050.3999999999999C1077.8 950 1100 927.75 1100 900V200C1100 172.4000000000001 1077.25 150 1050.3999999999999 150H149.6A49.7 49.7 0 0 0 100 200V900C100 927.6 122.75 950 149.6 950H429.3L302.5 1076.8L373.2000000000001 1147.5L570.6999999999999 950H629.3000000000001L826.8000000000001 1147.5L897.5000000000001 1076.8L770.6999999999999 950zM200 850V250H1000V850H200z","horizAdvX":"1200"},"twitch-fill":{"path":["M0 0h24v24H0z","M21 3v11.74l-4.696 4.695h-3.913l-2.437 2.348H6.913v-2.348H3V6.13L4.227 3H21zm-1.565 1.565H6.13v11.74h3.13v2.347l2.349-2.348h4.695l3.13-3.13V4.565zm-3.13 3.13v4.696h-1.566V7.696h1.565zm-3.914 0v4.696h-1.565V7.696h1.565z"],"unicode":"","glyph":"M1050 1050V463L815.2 228.2499999999999H619.5500000000001L497.7000000000001 110.8499999999999H345.6500000000001V228.2499999999999H150V893.5L211.35 1050H1050zM971.7499999999998 971.75H306.5V384.75H463V267.4L580.45 384.8H815.2L971.7 541.2999999999998V971.75zM815.25 815.25V580.45H736.9499999999999V815.2H815.1999999999999zM619.55 815.25V580.45H541.3000000000001V815.2H619.55z","horizAdvX":"1200"},"twitch-line":{"path":["M0 0h24v24H0z","M4.3 3H21v11.7l-4.7 4.7h-3.9l-2.5 2.4H7v-2.4H3V6.2L4.3 3zM5 17.4h4v2.4h.095l2.5-2.4h3.877L19 13.872V5H5v12.4zM15 8h2v4.7h-2V8zm0 0h2v4.7h-2V8zm-5 0h2v4.7h-2V8z"],"unicode":"","glyph":"M215 1050H1050V465L815 230.0000000000001H620L495 110.0000000000002H350V230.0000000000001H150V890L215 1050zM250 330.0000000000001H450V210.0000000000001H454.7500000000001L579.75 330.0000000000001H773.6L950 506.4V950H250V330.0000000000001zM750 800H850V565H750V800zM750 800H850V565H750V800zM500 800H600V565H500V800z","horizAdvX":"1200"},"twitter-fill":{"path":["M0 0h24v24H0z","M22.162 5.656a8.384 8.384 0 0 1-2.402.658A4.196 4.196 0 0 0 21.6 4c-.82.488-1.719.83-2.656 1.015a4.182 4.182 0 0 0-7.126 3.814 11.874 11.874 0 0 1-8.62-4.37 4.168 4.168 0 0 0-.566 2.103c0 1.45.738 2.731 1.86 3.481a4.168 4.168 0 0 1-1.894-.523v.052a4.185 4.185 0 0 0 3.355 4.101 4.21 4.21 0 0 1-1.89.072A4.185 4.185 0 0 0 7.97 16.65a8.394 8.394 0 0 1-6.191 1.732 11.83 11.83 0 0 0 6.41 1.88c7.693 0 11.9-6.373 11.9-11.9 0-.18-.005-.362-.013-.54a8.496 8.496 0 0 0 2.087-2.165z"],"unicode":"","glyph":"M1108.1 917.2A419.2 419.2 0 0 0 987.9999999999998 884.3A209.8 209.8 0 0 1 1080 1000C1039 975.6 994.05 958.5 947.2000000000002 949.25A209.10000000000005 209.10000000000005 0 0 1 590.9000000000001 758.55A593.7 593.7 0 0 0 159.9000000000001 977.05A208.40000000000003 208.40000000000003 0 0 1 131.6000000000001 871.8999999999999C131.6000000000001 799.4 168.5000000000001 735.3499999999999 224.6000000000001 697.8499999999999A208.40000000000003 208.40000000000003 0 0 0 129.9000000000001 724V721.4A209.24999999999997 209.24999999999997 0 0 1 297.6500000000002 516.3499999999999A210.5 210.5 0 0 0 203.1500000000002 512.75A209.24999999999997 209.24999999999997 0 0 1 398.5 367.5000000000001A419.7 419.7 0 0 0 88.95 280.9000000000001A591.5 591.5 0 0 1 409.45 186.9000000000002C794.1 186.9000000000002 1004.45 505.5500000000002 1004.45 781.9000000000001C1004.45 790.9000000000001 1004.2 800.0000000000002 1003.7999999999998 808.9000000000001A424.8 424.8 0 0 1 1108.1499999999999 917.1500000000002z","horizAdvX":"1200"},"twitter-line":{"path":["M0 0h24v24H0z","M15.3 5.55a2.9 2.9 0 0 0-2.9 2.847l-.028 1.575a.6.6 0 0 1-.68.583l-1.561-.212c-2.054-.28-4.022-1.226-5.91-2.799-.598 3.31.57 5.603 3.383 7.372l1.747 1.098a.6.6 0 0 1 .034.993L7.793 18.17c.947.059 1.846.017 2.592-.131 4.718-.942 7.855-4.492 7.855-10.348 0-.478-1.012-2.141-2.94-2.141zm-4.9 2.81a4.9 4.9 0 0 1 8.385-3.355c.711-.005 1.316.175 2.669-.645-.335 1.64-.5 2.352-1.214 3.331 0 7.642-4.697 11.358-9.463 12.309-3.268.652-8.02-.419-9.382-1.841.694-.054 3.514-.357 5.144-1.55C5.16 15.7-.329 12.47 3.278 3.786c1.693 1.977 3.41 3.323 5.15 4.037 1.158.475 1.442.465 1.973.538z"],"unicode":"","glyph":"M765 922.5A145 145 0 0 1 620 780.15L618.6 701.4000000000001A30 30 0 0 0 584.6 672.25L506.55 682.85C403.85 696.8499999999999 305.45 744.15 211.05 822.8C181.15 657.3 239.55 542.65 380.2 454.1999999999999L467.5500000000001 399.3000000000001A30 30 0 0 0 469.2500000000001 349.6500000000001L389.6500000000001 291.4999999999999C437 288.5499999999999 481.95 290.65 519.25 298.05C755.15 345.15 912.0000000000002 522.65 912.0000000000002 815.45C912.0000000000002 839.3499999999999 861.4000000000001 922.5 765.0000000000001 922.5zM520 782A245 245 0 0 0 939.25 949.75C974.8 950 1005.05 941 1072.7 982C1055.95 900 1047.7 864.4000000000001 1012.0000000000002 815.45C1012.0000000000002 433.3500000000002 777.1500000000001 247.5500000000001 538.8500000000001 200C375.4500000000002 167.3999999999999 137.8500000000002 220.9500000000001 69.7500000000002 292.0500000000001C104.4500000000002 294.75 245.4500000000002 309.9 326.9500000000002 369.5500000000001C258 415 -16.45 576.5 163.9 1010.7C248.55 911.85 334.4000000000001 844.55 421.4000000000001 808.8499999999999C479.3 785.1 493.5000000000001 785.5999999999999 520.0500000000001 781.95z","horizAdvX":"1200"},"typhoon-fill":{"path":["M0 0h24v24H0z","M17.654 1.7l-2.782 2.533a9.137 9.137 0 0 1 3.49 1.973c3.512 3.2 3.512 8.388 0 11.588-2.592 2.36-6.598 3.862-12.016 4.506l2.782-2.533a9.137 9.137 0 0 1-3.49-1.973c-3.512-3.2-3.533-8.369 0-11.588C8.23 3.846 12.237 2.344 17.655 1.7zM12 8c-2.485 0-4.5 1.79-4.5 4s2.015 4 4.5 4 4.5-1.79 4.5-4-2.015-4-4.5-4z"],"unicode":"","glyph":"M882.7 1115L743.6 988.35A456.85 456.85 0 0 0 918.1000000000003 889.7C1093.7 729.7 1093.7 470.3000000000001 918.1000000000003 310.3000000000002C788.5000000000001 192.3000000000002 588.2000000000002 117.2000000000001 317.3000000000001 85.0000000000002L456.4000000000001 211.6500000000002A456.85 456.85 0 0 0 281.9000000000001 310.3000000000002C106.3000000000001 470.3000000000001 105.2500000000001 728.7500000000001 281.9000000000001 889.7C411.5 1007.7 611.85 1082.8 882.75 1115zM600 800C475.75 800 375 710.5 375 600S475.75 400 600 400S825 489.5 825 600S724.25 800 600 800z","horizAdvX":"1200"},"typhoon-line":{"path":["M0 0h24v24H0z","M17.654 1.7l-2.782 2.533a9.137 9.137 0 0 1 3.49 1.973c3.512 3.2 3.512 8.388 0 11.588-2.592 2.36-6.598 3.862-12.016 4.506l2.782-2.533a9.137 9.137 0 0 1-3.49-1.973c-3.512-3.2-3.533-8.369 0-11.588C8.23 3.846 12.237 2.344 17.655 1.7zM12 6c-3.866 0-7 2.686-7 6s3.134 6 7 6 7-2.686 7-6-3.134-6-7-6zm0 2.3c2.21 0 4 1.657 4 3.7s-1.79 3.7-4 3.7-4-1.657-4-3.7 1.79-3.7 4-3.7zm0 2c-1.138 0-2 .797-2 1.7 0 .903.862 1.7 2 1.7s2-.797 2-1.7c0-.903-.862-1.7-2-1.7z"],"unicode":"","glyph":"M882.7 1115L743.6 988.35A456.85 456.85 0 0 0 918.1000000000003 889.7C1093.7 729.7 1093.7 470.3000000000001 918.1000000000003 310.3000000000002C788.5000000000001 192.3000000000002 588.2000000000002 117.2000000000001 317.3000000000001 85.0000000000002L456.4000000000001 211.6500000000002A456.85 456.85 0 0 0 281.9000000000001 310.3000000000002C106.3000000000001 470.3000000000001 105.2500000000001 728.7500000000001 281.9000000000001 889.7C411.5 1007.7 611.85 1082.8 882.75 1115zM600 900C406.7000000000001 900 250 765.7 250 600S406.7000000000001 300 600 300S950 434.3 950 600S793.3 900 600 900zM600 785C710.5 785 800 702.15 800 600S710.5 415 600 415S400 497.85 400 600S489.4999999999999 785 600 785zM600 685C543.1 685 500 645.15 500 600C500 554.85 543.1 515 600 515S700 554.85 700 600C700 645.15 656.9 685 600 685z","horizAdvX":"1200"},"u-disk-fill":{"path":["M0 0h24v24H0z","M4 12h16a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1zM5 2h14v8H5V2zm4 3v2h2V5H9zm4 0v2h2V5h-2z"],"unicode":"","glyph":"M200 600H1000A50 50 0 0 0 1050 550V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V550A50 50 0 0 0 200 600zM250 1100H950V700H250V1100zM450 950V850H550V950H450zM650 950V850H750V950H650z","horizAdvX":"1200"},"u-disk-line":{"path":["M0 0h24v24H0z","M19 12H5v8h14v-8zM5 10V2h14v8h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1zm2 0h10V4H7v6zm2-4h2v2H9V6zm4 0h2v2h-2V6z"],"unicode":"","glyph":"M950 600H250V200H950V600zM250 700V1100H950V700H1000A50 50 0 0 0 1050 650V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V650A50 50 0 0 0 200 700H250zM350 700H850V1000H350V700zM450 900H550V800H450V900zM650 900H750V800H650V900z","horizAdvX":"1200"},"ubuntu-fill":{"path":["M0 0h24v24H0z","M22 12c0 5.522-4.477 10-10 10S2 17.522 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10zM5.2 10.664a1.335 1.335 0 1 0 0 2.67 1.335 1.335 0 0 0 0-2.67zm9.533 6.069a1.334 1.334 0 1 0 1.334 2.31 1.334 1.334 0 0 0-1.334-2.31zM8.1 12c0-1.32.656-2.485 1.659-3.19l-.976-1.636a5.813 5.813 0 0 0-2.399 3.371 1.875 1.875 0 0 1 0 2.91 5.813 5.813 0 0 0 2.398 3.371l.977-1.636A3.892 3.892 0 0 1 8.1 12zM12 8.1a3.9 3.9 0 0 1 3.884 3.554l1.903-.028a5.781 5.781 0 0 0-1.723-3.762A1.872 1.872 0 0 1 13.55 6.41a5.829 5.829 0 0 0-4.12.39l.927 1.663A3.885 3.885 0 0 1 12 8.1zm0 7.8c-.587 0-1.143-.13-1.643-.363l-.927 1.662a5.774 5.774 0 0 0 4.12.39 1.872 1.872 0 0 1 2.514-1.454 5.782 5.782 0 0 0 1.723-3.762l-1.903-.027A3.898 3.898 0 0 1 12 15.9zm2.732-8.633a1.335 1.335 0 1 0 1.335-2.312 1.335 1.335 0 0 0-1.335 2.312z"],"unicode":"","glyph":"M1100 600C1100 323.9000000000001 876.15 100 600 100S100 323.9000000000001 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600zM260 666.8000000000001A66.75 66.75 0 1 1 260 533.3000000000001A66.75 66.75 0 0 1 260 666.8000000000001zM736.65 363.35A66.69999999999999 66.69999999999999 0 1 1 803.35 247.85A66.69999999999999 66.69999999999999 0 0 1 736.65 363.35zM405 600C405 666 437.8 724.25 487.95 759.5L439.1500000000001 841.3A290.65 290.65 0 0 1 319.2000000000001 672.75A93.75 93.75 0 0 0 319.2000000000001 527.25A290.65 290.65 0 0 1 439.1000000000001 358.7L487.9500000000001 440.4999999999999A194.6 194.6 0 0 0 405 600zM600 795A195 195 0 0 0 794.2 617.3L889.3499999999999 618.7A289.04999999999995 289.04999999999995 0 0 1 803.2 806.8000000000001A93.60000000000001 93.60000000000001 0 0 0 677.5 879.5A291.45000000000005 291.45000000000005 0 0 1 471.5 860L517.8499999999999 776.85A194.24999999999997 194.24999999999997 0 0 0 600 795zM600 405.0000000000001C570.65 405.0000000000001 542.8499999999999 411.5000000000001 517.8499999999999 423.1500000000001L471.5 340.0500000000001A288.7 288.7 0 0 1 677.5 320.5500000000001A93.60000000000001 93.60000000000001 0 0 0 803.2 393.2500000000001A289.1 289.1 0 0 1 889.3499999999999 581.3500000000001L794.1999999999999 582.7A194.9 194.9 0 0 0 600 405zM736.5999999999999 836.6500000000001A66.75 66.75 0 1 1 803.35 952.25A66.75 66.75 0 0 1 736.5999999999999 836.6500000000001z","horizAdvX":"1200"},"ubuntu-line":{"path":["M0 0h24v24H0z","M8.667 19.273l1.006-1.742a6.001 6.001 0 0 0 8.282-4.781h2.012A7.97 7.97 0 0 1 18.928 16a8 8 0 0 1-1.452 1.835 2.493 2.493 0 0 0-1.976.227 2.493 2.493 0 0 0-1.184 1.596 7.979 7.979 0 0 1-5.65-.385zm-1.3-.75a7.979 7.979 0 0 1-3.156-4.7C4.696 13.367 5 12.72 5 12c0-.72-.304-1.369-.791-1.825A8 8 0 0 1 5.072 8a7.97 7.97 0 0 1 2.295-2.524l1.006 1.742a6.001 6.001 0 0 0 0 9.563l-1.005 1.742zm1.3-13.796a8.007 8.007 0 0 1 5.648-.387c.152.65.562 1.238 1.185 1.598.623.36 1.337.42 1.976.227a8.007 8.007 0 0 1 2.49 5.085h-2.013A5.99 5.99 0 0 0 15 6.804a5.99 5.99 0 0 0-5.327-.335L8.667 4.727zM16 5.072a1.5 1.5 0 1 1 1.5-2.598A1.5 1.5 0 0 1 16 5.072zM4 12a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm12 6.928a1.5 1.5 0 1 1 1.5 2.598 1.5 1.5 0 0 1-1.5-2.598z"],"unicode":"","glyph":"M433.35 236.35L483.65 323.4500000000001A300.05 300.05 0 0 1 897.7499999999999 562.5H998.35A398.5 398.5 0 0 0 946.4 400A400 400 0 0 0 873.8 308.25A124.64999999999999 124.64999999999999 0 0 1 775 296.9A124.64999999999999 124.64999999999999 0 0 1 715.8000000000001 217.0999999999999A398.95 398.95 0 0 0 433.3 236.35zM368.35 273.85A398.95 398.95 0 0 0 210.55 508.85C234.8 531.65 250 564 250 600C250 636 234.8 668.45 210.45 691.25A400 400 0 0 0 253.6 800A398.5 398.5 0 0 0 368.35 926.2L418.65 839.1A300.05 300.05 0 0 1 418.65 360.9500000000001L368.4 273.85zM433.35 963.65A400.34999999999997 400.34999999999997 0 0 0 715.75 983C723.3499999999999 950.5 743.8499999999999 921.1 775 903.1C806.1500000000001 885.1 841.85 882.1 873.8 891.75A400.34999999999997 400.34999999999997 0 0 0 998.3 637.5H897.6500000000001A299.50000000000006 299.50000000000006 0 0 1 750 859.8A299.50000000000006 299.50000000000006 0 0 1 483.65 876.55L433.35 963.65zM800 946.4A75 75 0 1 0 875 1076.3A75 75 0 0 0 800 946.4zM200 600A75 75 0 1 0 50 600A75 75 0 0 0 200 600zM800 253.5999999999999A75 75 0 1 0 875 123.7000000000001A75 75 0 0 0 800 253.5999999999999z","horizAdvX":"1200"},"umbrella-fill":{"path":["M0 0h24v24H0z","M13 2.05c5.053.501 9 4.765 9 9.95v1h-9v6a2 2 0 1 0 4 0v-1h2v1a4 4 0 1 1-8 0v-6H2v-1c0-5.185 3.947-9.449 9-9.95V2a1 1 0 0 1 2 0v.05z"],"unicode":"","glyph":"M650 1097.5C902.65 1072.45 1100 859.25 1100 600V550H650V250A100 100 0 1 1 850 250V300H950V250A200 200 0 1 0 550 250V550H100V600C100 859.25 297.35 1072.45 550 1097.5V1100A50 50 0 0 0 650 1100V1097.5z","horizAdvX":"1200"},"umbrella-line":{"path":["M0 0h24v24H0z","M13 2.05c5.053.501 9 4.765 9 9.95v1h-9v6a2 2 0 1 0 4 0v-1h2v1a4 4 0 1 1-8 0v-6H2v-1c0-5.185 3.947-9.449 9-9.95V2a1 1 0 0 1 2 0v.05zM19.938 11a8.001 8.001 0 0 0-15.876 0h15.876z"],"unicode":"","glyph":"M650 1097.5C902.65 1072.45 1100 859.25 1100 600V550H650V250A100 100 0 1 1 850 250V300H950V250A200 200 0 1 0 550 250V550H100V600C100 859.25 297.35 1072.45 550 1097.5V1100A50 50 0 0 0 650 1100V1097.5zM996.9 650A400.04999999999995 400.04999999999995 0 0 1 203.1 650H996.9z","horizAdvX":"1200"},"underline":{"path":["M0 0h24v24H0z","M8 3v9a4 4 0 1 0 8 0V3h2v9a6 6 0 1 1-12 0V3h2zM4 20h16v2H4v-2z"],"unicode":"","glyph":"M400 1050V600A200 200 0 1 1 800 600V1050H900V600A300 300 0 1 0 300 600V1050H400zM200 200H1000V100H200V200z","horizAdvX":"1200"},"uninstall-fill":{"path":["M0 0h24v24H0z","M20 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h16zm-1 14H5v4h14v-4zm-2 1v2h-2v-2h2zM12 2L8 6h3v5h2V6h3l-4-4z"],"unicode":"","glyph":"M1000 1100A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H1000zM950 400H250V200H950V400zM850 350V250H750V350H850zM600 1100L400 900H550V650H650V900H800L600 1100z","horizAdvX":"1200"},"uninstall-line":{"path":["M0 0h24v24H0z","M8 2v2H5l-.001 10h14L19 4h-3V2h4a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h4zm10.999 14h-14L5 20h14l-.001-4zM17 17v2h-2v-2h2zM12 2l4 4h-3v5h-2V6H8l4-4z"],"unicode":"","glyph":"M400 1100V1000H250L249.95 500H949.95L950 1000H800V1100H1000A50 50 0 0 0 1050 1050V150A50 50 0 0 0 1000 100H200A50 50 0 0 0 150 150V1050A50 50 0 0 0 200 1100H400zM949.9500000000002 400H249.9500000000001L250 200H950L949.95 400zM850 350V250H750V350H850zM600 1100L800 900H650V650H550V900H400L600 1100z","horizAdvX":"1200"},"unsplash-fill":{"path":["M0 0H24V24H0z","M8.5 11v5h7v-5H21v10H3V11h5.5zm7-8v5h-7V3h7z"],"unicode":"","glyph":"M425 650V400H775V650H1050V150H150V650H425zM775 1050V800H425V1050H775z","horizAdvX":"1200"},"unsplash-line":{"path":["M0 0H24V24H0z","M10 10v4h4v-4h7v11H3V10h7zm-2 2H5v7h14v-7h-3l-.001 4H8v-4zm8-9v6H8V3h8zm-2 2h-4v2h4V5z"],"unicode":"","glyph":"M500 700V500H700V700H1050V150H150V700H500zM400 600H250V250H950V600H800L799.95 400H400V600zM800 1050V750H400V1050H800zM700 950H500V850H700V950z","horizAdvX":"1200"},"upload-2-fill":{"path":["M0 0h24v24H0z","M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7zM14 9v6h-4V9H5l7-7 7 7h-5z"],"unicode":"","glyph":"M200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250zM700 750V450H500V750H250L600 1100L950 750H700z","horizAdvX":"1200"},"upload-2-line":{"path":["M0 0h24v24H0z","M4 19h16v-7h2v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-8h2v7zm9-10v7h-2V9H6l6-6 6 6h-5z"],"unicode":"","glyph":"M200 250H1000V600H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V600H200V250zM650 750V400H550V750H300L600 1050L900 750H650z","horizAdvX":"1200"},"upload-cloud-2-fill":{"path":["M0 0h24v24H0z","M12 12.586l4.243 4.242-1.415 1.415L13 16.415V22h-2v-5.587l-1.828 1.83-1.415-1.415L12 12.586zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784L18 17a6 6 0 0 0-11.996-.225L6 17v1.978a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M600 570.6999999999999L812.1500000000001 358.6L741.4000000000001 287.85L650 379.25V100H550V379.35L458.6 287.8499999999999L387.85 358.5999999999999L600 570.6999999999999zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999L900 350A300 300 0 0 1 300.2 361.2500000000001L300 350V251.0999999999999A275 275 0 0 0 252.3 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"upload-cloud-2-line":{"path":["M0 0h24v24H0z","M12 12.586l4.243 4.242-1.415 1.415L13 16.415V22h-2v-5.587l-1.828 1.83-1.415-1.415L12 12.586zM12 2a7.001 7.001 0 0 1 6.954 6.194 5.5 5.5 0 0 1-.953 10.784v-2.014a3.5 3.5 0 1 0-1.112-6.91 5 5 0 1 0-9.777 0 3.5 3.5 0 0 0-1.292 6.88l.18.03v2.014a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"],"unicode":"","glyph":"M600 570.6999999999999L812.1500000000001 358.6L741.4000000000001 287.85L650 379.25V100H550V379.35L458.6 287.8499999999999L387.85 358.5999999999999L600 570.6999999999999zM600 1100A350.05 350.05 0 0 0 947.7 790.3000000000001A275 275 0 0 0 900.0500000000001 251.0999999999999V351.7999999999999A175 175 0 1 1 844.4500000000002 697.3A250 250 0 1 1 355.6000000000002 697.3A175 175 0 0 1 291.0000000000002 353.3L300.0000000000002 351.7999999999999V251.0999999999999A275 275 0 0 0 252.3000000000002 790.3A350 350 0 0 0 600 1100z","horizAdvX":"1200"},"upload-cloud-fill":{"path":["M0 0h24v24H0z","M7 20.981a6.5 6.5 0 0 1-2.936-12 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12V21H7v-.019zM13 13h3l-4-5-4 5h3v4h2v-4z"],"unicode":"","glyph":"M350 150.9499999999998A325 325 0 0 0 203.2 750.9499999999999A400.04999999999995 400.04999999999995 0 0 0 996.8 750.9499999999999A325 325 0 0 0 850 150.9499999999998V150H350V150.9499999999998zM650 550H800L600 800L400 550H550V350H650V550z","horizAdvX":"1200"},"upload-cloud-line":{"path":["M0 0h24v24H0z","M1 14.5a6.496 6.496 0 0 1 3.064-5.519 8.001 8.001 0 0 1 15.872 0 6.5 6.5 0 0 1-2.936 12L7 21c-3.356-.274-6-3.078-6-6.5zm15.848 4.487a4.5 4.5 0 0 0 2.03-8.309l-.807-.503-.12-.942a6.001 6.001 0 0 0-11.903 0l-.12.942-.805.503a4.5 4.5 0 0 0 2.029 8.309l.173.013h9.35l.173-.013zM13 13v4h-2v-4H8l4-5 4 5h-3z"],"unicode":"","glyph":"M50 475A324.8 324.8 0 0 0 203.2 750.95A400.04999999999995 400.04999999999995 0 0 0 996.8 750.95A325 325 0 0 0 850 150.9499999999998L350 150C182.2 163.7000000000001 50 303.9 50 475zM842.4 250.6499999999999A225 225 0 0 1 943.9 666.0999999999999L903.55 691.2499999999999L897.5500000000001 738.3499999999999A300.05 300.05 0 0 1 302.4 738.3499999999999L296.4 691.2499999999999L256.1500000000001 666.0999999999999A225 225 0 0 1 357.6 250.6499999999999L366.25 249.9999999999998H833.75L842.4 250.6499999999999zM650 550V350H550V550H400L600 800L800 550H650z","horizAdvX":"1200"},"upload-fill":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zm10-9v8h-2v-8H4l8-8 8 8h-7z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 700V300H550V700H200L600 1100L1000 700H650z","horizAdvX":"1200"},"upload-line":{"path":["M0 0h24v24H0z","M3 19h18v2H3v-2zM13 5.828V17h-2V5.828L4.929 11.9l-1.414-1.414L12 2l8.485 8.485-1.414 1.414L13 5.83z"],"unicode":"","glyph":"M150 250H1050V150H150V250zM650 908.6V350H550V908.6L246.45 605L175.75 675.6999999999999L600 1100L1024.25 675.75L953.55 605.0500000000001L650 908.5z","horizAdvX":"1200"},"usb-fill":{"path":["M0 0H24V24H0z","M12 1l3 5h-2v7.381l3-1.499-.001-.882H15V7h4v4h-1.001L18 13.118l-5 2.5v1.553c1.166.412 2 1.523 2 2.829 0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.187.69-2.213 1.69-2.7L6 14l-.001-2.268C5.402 11.386 5 10.74 5 10c0-1.105.895-2 2-2s2 .895 2 2c0 .74-.402 1.387-1 1.732V13l3 2.086V6H9l3-5z"],"unicode":"","glyph":"M600 1150L750 900H650V530.95L800 605.9L799.95 650H750V850H950V650H899.9499999999999L900 544.1L650 419.1V341.4500000000001C708.3000000000001 320.8500000000002 750 265.3000000000001 750 200C750 117.1500000000001 682.85 50 600 50S450 117.1500000000001 450 200C450 259.35 484.5 310.6500000000001 534.5 335L300 500L299.95 613.4000000000001C270.1 630.7 250 663 250 700C250 755.25 294.75 800 350 800S450 755.25 450 700C450 663 429.9000000000001 630.65 400 613.4000000000001V550L550 445.7V900H450L600 1150z","horizAdvX":"1200"},"usb-line":{"path":["M0 0H24V24H0z","M12 1l3 5h-2v7.381l3-1.499-.001-.882H15V7h4v4h-1.001L18 13.118l-5 2.5v1.553c1.166.412 2 1.523 2 2.829 0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.187.69-2.213 1.69-2.7L6 14l-.001-2.268C5.402 11.386 5 10.74 5 10c0-1.105.895-2 2-2s2 .895 2 2c0 .74-.402 1.387-1 1.732V13l3 2.086V6H9l3-5zm0 18c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M600 1150L750 900H650V530.95L800 605.9L799.95 650H750V850H950V650H899.9499999999999L900 544.1L650 419.1V341.4500000000001C708.3000000000001 320.8500000000002 750 265.3000000000001 750 200C750 117.1500000000001 682.85 50 600 50S450 117.1500000000001 450 200C450 259.35 484.5 310.6500000000001 534.5 335L300 500L299.95 613.4000000000001C270.1 630.7 250 663 250 700C250 755.25 294.75 800 350 800S450 755.25 450 700C450 663 429.9000000000001 630.65 400 613.4000000000001V550L550 445.7V900H450L600 1150zM600 250C572.4 250 550 227.6 550 200S572.4 150 600 150S650 172.4000000000001 650 200S627.6 250 600 250z","horizAdvX":"1200"},"user-2-fill":{"path":["M0 0h24v24H0z","M11 14.062V20h2v-5.938c3.946.492 7 3.858 7 7.938H4a8.001 8.001 0 0 1 7-7.938zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6z"],"unicode":"","glyph":"M550 496.9V200H650V496.9C847.3000000000001 472.3 1000 303.9999999999999 1000 100H200A400.04999999999995 400.04999999999995 0 0 0 550 496.9zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550z","horizAdvX":"1200"},"user-2-line":{"path":["M0 0h24v24H0z","M4 22a8 8 0 1 1 16 0H4zm9-5.917V20h4.659A6.009 6.009 0 0 0 13 16.083zM11 20v-3.917A6.009 6.009 0 0 0 6.341 20H11zm1-7c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"],"unicode":"","glyph":"M200 100A400 400 0 1 0 1000 100H200zM650 395.8500000000002V200H882.9499999999999A300.45000000000005 300.45000000000005 0 0 1 650 395.8500000000002zM550 200V395.8500000000002A300.45000000000005 300.45000000000005 0 0 1 317.05 200H550zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650z","horizAdvX":"1200"},"user-3-fill":{"path":["M0 0h24v24H0z","M20 22H4v-2a5 5 0 0 1 5-5h6a5 5 0 0 1 5 5v2zm-8-9a6 6 0 1 1 0-12 6 6 0 0 1 0 12z"],"unicode":"","glyph":"M1000 100H200V200A250 250 0 0 0 450 450H750A250 250 0 0 0 1000 200V100zM600 550A300 300 0 1 0 600 1150A300 300 0 0 0 600 550z","horizAdvX":"1200"},"user-3-line":{"path":["M0 0h24v24H0z","M20 22h-2v-2a3 3 0 0 0-3-3H9a3 3 0 0 0-3 3v2H4v-2a5 5 0 0 1 5-5h6a5 5 0 0 1 5 5v2zm-8-9a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],"unicode":"","glyph":"M1000 100H900V200A150 150 0 0 1 750 350H450A150 150 0 0 1 300 200V100H200V200A250 250 0 0 0 450 450H750A250 250 0 0 0 1000 200V100zM600 550A300 300 0 1 0 600 1150A300 300 0 0 0 600 550zM600 650A200 200 0 1 1 600 1050A200 200 0 0 1 600 650z","horizAdvX":"1200"},"user-4-fill":{"path":["M0 0h24v24H0z","M5 20h14v2H5v-2zm7-2a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"],"unicode":"","glyph":"M250 200H950V100H250V200zM600 300A400 400 0 1 0 600 1100A400 400 0 0 0 600 300z","horizAdvX":"1200"},"user-4-line":{"path":["M0 0h24v24H0z","M5 20h14v2H5v-2zm7-2a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm0-2a6 6 0 1 0 0-12 6 6 0 0 0 0 12z"],"unicode":"","glyph":"M250 200H950V100H250V200zM600 300A400 400 0 1 0 600 1100A400 400 0 0 0 600 300zM600 400A300 300 0 1 1 600 1000A300 300 0 0 1 600 400z","horizAdvX":"1200"},"user-5-fill":{"path":["M0 0h24v24H0z","M7.39 16.539a8 8 0 1 1 9.221 0l2.083 4.76a.5.5 0 0 1-.459.701H5.765a.5.5 0 0 1-.459-.7l2.083-4.761zm.729-5.569a4.002 4.002 0 0 0 7.762 0l-1.94-.485a2 2 0 0 1-3.882 0l-1.94.485z"],"unicode":"","glyph":"M369.5 373.05A400 400 0 1 0 830.5500000000001 373.05L934.7000000000002 135.05A25 25 0 0 0 911.7500000000002 100H288.25A25 25 0 0 0 265.3 135L369.45 373.05zM405.95 651.4999999999999A200.10000000000002 200.10000000000002 0 0 1 794.05 651.4999999999999L697.0500000000001 675.7499999999999A100 100 0 0 0 502.95 675.7499999999999L405.9500000000001 651.4999999999999z","horizAdvX":"1200"},"user-5-line":{"path":["M0 0h24v24H0z","M7.39 16.539a8 8 0 1 1 9.221 0l2.083 4.76a.5.5 0 0 1-.459.701H5.765a.5.5 0 0 1-.459-.7l2.083-4.761zm6.735-.693l1.332-.941a6 6 0 1 0-6.913 0l1.331.941L8.058 20h7.884l-1.817-4.154zM8.119 10.97l1.94-.485a2 2 0 0 0 3.882 0l1.94.485a4.002 4.002 0 0 1-7.762 0z"],"unicode":"","glyph":"M369.5 373.05A400 400 0 1 0 830.5500000000001 373.05L934.7000000000002 135.05A25 25 0 0 0 911.7500000000002 100H288.25A25 25 0 0 0 265.3 135L369.45 373.05zM706.25 407.7L772.85 454.75A300 300 0 1 1 427.2000000000001 454.75L493.75 407.7L402.9 200H797.1L706.25 407.7000000000001zM405.95 651.5L502.95 675.7499999999999A100 100 0 0 1 697.05 675.7499999999999L794.05 651.5A200.10000000000002 200.10000000000002 0 0 0 405.95 651.5z","horizAdvX":"1200"},"user-6-fill":{"path":["M0 0h24v24H0z","M12 17c3.662 0 6.865 1.575 8.607 3.925l-1.842.871C17.347 20.116 14.847 19 12 19c-2.847 0-5.347 1.116-6.765 2.796l-1.841-.872C5.136 18.574 8.338 17 12 17zm0-15a5 5 0 0 1 5 5v3a5 5 0 0 1-10 0V7a5 5 0 0 1 5-5z"],"unicode":"","glyph":"M600 350C783.0999999999999 350 943.2500000000002 271.25 1030.35 153.75L938.25 110.2000000000001C867.35 194.2000000000001 742.35 250 600 250C457.65 250 332.65 194.2000000000001 261.75 110.2000000000001L169.7 153.8C256.8 271.3 416.9 350 600 350zM600 1100A250 250 0 0 0 850 850V700A250 250 0 0 0 350 700V850A250 250 0 0 0 600 1100z","horizAdvX":"1200"},"user-6-line":{"path":["M0 0h24v24H0z","M12 17c3.662 0 6.865 1.575 8.607 3.925l-1.842.871C17.347 20.116 14.847 19 12 19c-2.847 0-5.347 1.116-6.765 2.796l-1.841-.872C5.136 18.574 8.338 17 12 17zm0-15a5 5 0 0 1 5 5v3a5 5 0 0 1-4.783 4.995L12 15a5 5 0 0 1-5-5V7a5 5 0 0 1 4.783-4.995L12 2zm0 2a3 3 0 0 0-2.995 2.824L9 7v3a3 3 0 0 0 5.995.176L15 10V7a3 3 0 0 0-3-3z"],"unicode":"","glyph":"M600 350C783.0999999999999 350 943.2500000000002 271.25 1030.35 153.75L938.25 110.2000000000001C867.35 194.2000000000001 742.35 250 600 250C457.65 250 332.65 194.2000000000001 261.75 110.2000000000001L169.7 153.8C256.8 271.3 416.9 350 600 350zM600 1100A250 250 0 0 0 850 850V700A250 250 0 0 0 610.8499999999999 450.25L600 450A250 250 0 0 0 350 700V850A250 250 0 0 0 589.1500000000001 1099.75L600 1100zM600 1000A150 150 0 0 1 450.25 858.8L450 850V700A150 150 0 0 1 749.75 691.2L750 700V850A150 150 0 0 1 600 1000z","horizAdvX":"1200"},"user-add-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm6 4v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM900 350V500H1000V350H1150V250H1000V100H900V250H750V350H900z","horizAdvX":"1200"},"user-add-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6 6v-3h2v3h3v2h-3v3h-2v-3h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM900 350V500H1000V350H1150V250H1000V100H900V250H750V350H900z","horizAdvX":"1200"},"user-fill":{"path":["M0 0h24v24H0z","M4 22a8 8 0 1 1 16 0H4zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6z"],"unicode":"","glyph":"M200 100A400 400 0 1 0 1000 100H200zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550z","horizAdvX":"1200"},"user-follow-fill":{"path":["M0 0h24v24H0z","M13 14.062V22H4a8 8 0 0 1 9-7.938zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm5.793 6.914l3.535-3.535 1.415 1.414-4.95 4.95-3.536-3.536 1.415-1.414 2.12 2.121z"],"unicode":"","glyph":"M650 496.9V100H200A400 400 0 0 0 650 496.9zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM889.65 204.3L1066.3999999999999 381.05L1137.1499999999999 310.3499999999999L889.65 62.8499999999999L712.85 239.65L783.6 310.35L889.6000000000001 204.3000000000001z","horizAdvX":"1200"},"user-follow-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm5.793 8.914l3.535-3.535 1.415 1.414-4.95 4.95-3.536-3.536 1.415-1.414 2.12 2.121z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM889.65 204.3L1066.3999999999999 381.05L1137.1499999999999 310.3499999999999L889.65 62.8499999999999L712.85 239.65L783.6 310.35L889.6000000000001 204.3000000000001z","horizAdvX":"1200"},"user-heart-fill":{"path":["M0 0h24v24H0z","M17.841 15.659l.176.177.178-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359-3.358-3.359a2.25 2.25 0 0 1 3.182-3.182zM12 14v8H4a8 8 0 0 1 7.75-7.996L12 14zm0-13c3.315 0 6 2.685 6 6s-2.685 6-6 6-6-2.685-6-6 2.685-6 6-6z"],"unicode":"","glyph":"M892.0500000000001 417.05L900.85 408.2L909.75 417.05A112.5 112.5 0 0 0 1068.85 257.95L900.85 89.9999999999998L732.9499999999999 257.95A112.5 112.5 0 0 0 892.0499999999998 417.05zM600 500V100H200A400 400 0 0 0 587.5 499.8000000000001L600 500zM600 1150C765.75 1150 900 1015.75 900 850S765.75 550 600 550S300 684.25 300 850S434.25 1150 600 1150z","horizAdvX":"1200"},"user-heart-line":{"path":["M0 0h24v24H0z","M17.841 15.659l.176.177.178-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359-3.358-3.359a2.25 2.25 0 0 1 3.182-3.182zM12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 7.75-7.996L12 14zm0-13c3.315 0 6 2.685 6 6a5.998 5.998 0 0 1-5.775 5.996L12 13c-3.315 0-6-2.685-6-6a5.998 5.998 0 0 1 5.775-5.996L12 1zm0 2C9.79 3 8 4.79 8 7s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"],"unicode":"","glyph":"M892.0500000000001 417.05L900.85 408.2L909.75 417.05A112.5 112.5 0 0 0 1068.85 257.95L900.85 89.9999999999998L732.9499999999999 257.95A112.5 112.5 0 0 0 892.0499999999998 417.05zM600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 587.5 499.8000000000001L600 500zM600 1150C765.75 1150 900 1015.75 900 850A299.90000000000003 299.90000000000003 0 0 0 611.25 550.1999999999999L600 550C434.25 550 300 684.25 300 850A299.90000000000003 299.90000000000003 0 0 0 588.75 1149.8L600 1150zM600 1050C489.4999999999999 1050 400 960.5 400 850S489.4999999999999 650 600 650S800 739.5 800 850S710.5 1050 600 1050z","horizAdvX":"1200"},"user-line":{"path":["M0 0h24v24H0z","M4 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H4zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"],"unicode":"","glyph":"M200 100A400 400 0 1 0 1000 100H900A300 300 0 1 1 300 100H200zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650z","horizAdvX":"1200"},"user-location-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm8.828 7.828L18 23.657l-2.828-2.829a4 4 0 1 1 5.656 0zM18 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1041.3999999999999 158.6000000000001L900 17.1500000000001L758.6 158.6000000000001A200 200 0 1 0 1041.3999999999999 158.6000000000001zM900 350A50 50 0 1 1 900 250A50 50 0 0 1 900 350z","horizAdvX":"1200"},"user-location-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm8.828 10.071L18 24l-2.828-2.929c-1.563-1.618-1.563-4.24 0-5.858a3.904 3.904 0 0 1 5.656 0c1.563 1.618 1.563 4.24 0 5.858zm-1.438-1.39c.813-.842.813-2.236 0-3.078a1.904 1.904 0 0 0-2.78 0c-.813.842-.813 2.236 0 3.079L18 21.12l1.39-1.44z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1041.3999999999999 146.4500000000001L900 0L758.6 146.4499999999998C680.45 227.3499999999999 680.45 358.4499999999998 758.6 439.3499999999999A195.2 195.2 0 0 0 1041.3999999999999 439.3499999999999C1119.55 358.4500000000001 1119.55 227.3499999999999 1041.3999999999999 146.4499999999998zM969.5 215.9500000000002C1010.15 258.0500000000001 1010.15 327.7500000000001 969.5 369.8500000000002A95.19999999999999 95.19999999999999 0 0 1 830.5 369.8500000000002C789.8499999999999 327.7500000000001 789.8499999999999 258.0500000000001 830.5 215.9000000000001L900 144L969.5 216z","horizAdvX":"1200"},"user-received-2-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm8 4h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"user-received-2-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm8 6h3v2h-3v3.5L15 18l5-4.5V17z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1000 350H1150V250H1000V75L750 300L1000 525V350z","horizAdvX":"1200"},"user-received-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm7.418 4h3.586v2h-3.586l1.829 1.828-1.414 1.415L15.59 18l4.243-4.243 1.414 1.415L19.418 17z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM970.9 350H1150.1999999999998V250H970.9L1062.35 158.6000000000001L991.6499999999997 87.8500000000001L779.5 300L991.6499999999997 512.15L1062.35 441.4L970.9 350z","horizAdvX":"1200"},"user-received-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm7.418 6h3.586v2h-3.586l1.829 1.828-1.414 1.415L15.59 18l4.243-4.243 1.414 1.415L19.418 17z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM970.9 350H1150.1999999999998V250H970.9L1062.35 158.6000000000001L991.6499999999997 87.8500000000001L779.5 300L991.6499999999997 512.15L1062.35 441.4L970.9 350z","horizAdvX":"1200"},"user-search-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm9.446 7.032l1.504 1.504-1.414 1.414-1.504-1.504a4 4 0 1 1 1.414-1.414zM18 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM1072.3 198.4L1147.5 123.1999999999998L1076.8 52.4999999999998L1001.5999999999998 127.6999999999998A200 200 0 1 0 1072.3 198.4zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"user-search-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm9.446 9.032l1.504 1.504-1.414 1.414-1.504-1.504a4 4 0 1 1 1.414-1.414zM18 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM1072.3 198.4L1147.5 123.1999999999998L1076.8 52.4999999999998L1001.5999999999998 127.6999999999998A200 200 0 1 0 1072.3 198.4zM900 200A100 100 0 1 1 900 400A100 100 0 0 1 900 200z","horizAdvX":"1200"},"user-settings-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm2.595 5.812a3.51 3.51 0 0 1 0-1.623l-.992-.573 1-1.732.992.573A3.496 3.496 0 0 1 17 14.645V13.5h2v1.145c.532.158 1.012.44 1.405.812l.992-.573 1 1.732-.992.573a3.51 3.51 0 0 1 0 1.622l.992.573-1 1.732-.992-.573a3.496 3.496 0 0 1-1.405.812V22.5h-2v-1.145a3.496 3.496 0 0 1-1.405-.812l-.992.573-1-1.732.992-.572zM18 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM729.75 259.4A175.49999999999997 175.49999999999997 0 0 0 729.75 340.55L680.1500000000001 369.2000000000001L730.1500000000001 455.8L779.7500000000001 427.15A174.8 174.8 0 0 0 850 467.75V525H950V467.75C976.6 459.85 1000.6 445.75 1020.25 427.1500000000001L1069.8500000000001 455.8000000000001L1119.8500000000001 369.2000000000001L1070.25 340.55A175.49999999999997 175.49999999999997 0 0 0 1070.25 259.4500000000001L1119.8500000000001 230.8L1069.8500000000001 144.2000000000001L1020.25 172.8500000000001A174.8 174.8 0 0 0 950 132.25V75H850V132.25A174.8 174.8 0 0 0 779.75 172.8500000000001L730.1500000000001 144.2000000000001L680.1500000000001 230.8L729.7500000000001 259.4zM900 350A50 50 0 1 1 900 250A50 50 0 0 1 900 350z","horizAdvX":"1200"},"user-settings-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm2.595 7.812a3.51 3.51 0 0 1 0-1.623l-.992-.573 1-1.732.992.573A3.496 3.496 0 0 1 17 14.645V13.5h2v1.145c.532.158 1.012.44 1.405.812l.992-.573 1 1.732-.992.573a3.51 3.51 0 0 1 0 1.622l.992.573-1 1.732-.992-.573a3.496 3.496 0 0 1-1.405.812V22.5h-2v-1.145a3.496 3.496 0 0 1-1.405-.812l-.992.573-1-1.732.992-.572zM18 19.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM729.75 259.4A175.49999999999997 175.49999999999997 0 0 0 729.75 340.55L680.1500000000001 369.2000000000001L730.1500000000001 455.8L779.7500000000001 427.15A174.8 174.8 0 0 0 850 467.75V525H950V467.75C976.6 459.85 1000.6 445.75 1020.25 427.1500000000001L1069.8500000000001 455.8000000000001L1119.8500000000001 369.2000000000001L1070.25 340.55A175.49999999999997 175.49999999999997 0 0 0 1070.25 259.4500000000001L1119.8500000000001 230.8L1069.8500000000001 144.2000000000001L1020.25 172.8500000000001A174.8 174.8 0 0 0 950 132.25V75H850V132.25A174.8 174.8 0 0 0 779.75 172.8500000000001L730.1500000000001 144.2000000000001L680.1500000000001 230.8L729.7500000000001 259.4zM900 225A75 75 0 1 1 900 375A75 75 0 0 1 900 225z","horizAdvX":"1200"},"user-shared-2-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm6 4v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"user-shared-2-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6 6v-3.5l5 4.5-5 4.5V19h-3v-2h3z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM900 350V525L1150 300L900 75V250H750V350H900z","horizAdvX":"1200"},"user-shared-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm6.586 4l-1.829-1.828 1.415-1.415L22.414 18l-4.242 4.243-1.415-1.415L18.586 19H15v-2h3.586z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM929.3 350L837.8499999999999 441.4L908.6 512.15L1120.7 300L908.6 87.8499999999999L837.85 158.5999999999999L929.3 250H750V350H929.3z","horizAdvX":"1200"},"user-shared-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6.586 6l-1.829-1.828 1.415-1.415L22.414 18l-4.242 4.243-1.415-1.415L18.586 19H15v-2h3.586z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM929.3 350L837.8499999999999 441.4L908.6 512.15L1120.7 300L908.6 87.8499999999999L837.85 158.5999999999999L929.3 250H750V350H929.3z","horizAdvX":"1200"},"user-smile-fill":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zM7 12a5 5 0 0 0 10 0h-2a3 3 0 0 1-6 0H7z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM350 600A250 250 0 0 1 850 600H750A150 150 0 0 0 450 600H350z","horizAdvX":"1200"},"user-smile-line":{"path":["M0 0h24v24H0z","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm-5-8h2a3 3 0 0 0 6 0h2a5 5 0 0 1-10 0z"],"unicode":"","glyph":"M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM350 600H450A150 150 0 0 1 750 600H850A250 250 0 0 0 350 600z","horizAdvX":"1200"},"user-star-fill":{"path":["M0 0h24v24H0z","M12 14v8H4a8 8 0 0 1 8-8zm6 7.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L18 14l1.47 2.977 3.285.478-2.377 2.318.56 3.272L18 21.5zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6z"],"unicode":"","glyph":"M600 500V100H200A400 400 0 0 0 600 500zM900 125L753.05 47.75L781.1 211.3499999999998L662.25 327.2499999999999L826.5500000000001 351.15L900 500L973.5 351.15L1137.75 327.2499999999999L1018.9 211.3499999999998L1046.8999999999999 47.75L900 125zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550z","horizAdvX":"1200"},"user-star-line":{"path":["M0 0h24v24H0z","M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6 10.5l-2.939 1.545.561-3.272-2.377-2.318 3.286-.478L18 14l1.47 2.977 3.285.478-2.377 2.318.56 3.272L18 21.5z"],"unicode":"","glyph":"M600 500V400A300 300 0 0 1 300 100H200A400 400 0 0 0 600 500zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM900 125L753.05 47.75L781.1 211.3499999999998L662.25 327.2499999999999L826.5500000000001 351.15L900 500L973.5 351.15L1137.75 327.2499999999999L1018.9 211.3499999999998L1046.8999999999999 47.75L900 125z","horizAdvX":"1200"},"user-unfollow-fill":{"path":["M0 0h24v24H0z","M14 14.252V22H4a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm7 3.586l2.121-2.122 1.415 1.415L20.414 18l2.122 2.121-1.415 1.415L19 19.414l-2.121 2.122-1.415-1.415L17.586 18l-2.122-2.121 1.415-1.415L19 16.586z"],"unicode":"","glyph":"M700 487.4V100H200A400 400 0 0 0 700 487.4000000000001zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM950 370.7000000000001L1056.05 476.8000000000001L1126.8 406.0500000000001L1020.7 300L1126.8000000000002 193.9500000000001L1056.0500000000002 123.2000000000001L950 229.3L843.95 123.1999999999998L773.2000000000002 193.9499999999999L879.3 300L773.1999999999999 406.0500000000001L843.9499999999999 476.8000000000001L950 370.7000000000001z","horizAdvX":"1200"},"user-unfollow-line":{"path":["M0 0h24v24H0z","M14 14.252v2.09A6 6 0 0 0 6 22l-2-.001a8 8 0 0 1 10-7.748zM12 13c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm7 6.586l2.121-2.122 1.415 1.415L20.414 19l2.122 2.121-1.415 1.415L19 20.414l-2.121 2.122-1.415-1.415L17.586 19l-2.122-2.121 1.415-1.415L19 17.586z"],"unicode":"","glyph":"M700 487.4V382.9000000000001A300 300 0 0 1 300 100L200 100.05A400 400 0 0 0 700 487.4500000000002zM600 550C434.25 550 300 684.25 300 850S434.25 1150 600 1150S900 1015.75 900 850S765.75 550 600 550zM600 650C710.5 650 800 739.5 800 850S710.5 1050 600 1050S400 960.5 400 850S489.4999999999999 650 600 650zM950 320.7000000000001L1056.05 426.8000000000001L1126.8 356.0500000000001L1020.7 250L1126.8000000000002 143.9500000000001L1056.0500000000002 73.2000000000001L950 179.3L843.95 73.1999999999998L773.2000000000002 143.9499999999998L879.3 250L773.1999999999999 356.05L843.9499999999999 426.7999999999999L950 320.7000000000001z","horizAdvX":"1200"},"user-voice-fill":{"path":["M0 0h24v24H0z","M1 22a8 8 0 1 1 16 0H1zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm9.246-9.816A9.97 9.97 0 0 1 19 7a9.97 9.97 0 0 1-.754 3.816l-1.677-1.22A7.99 7.99 0 0 0 17 7a7.99 7.99 0 0 0-.43-2.596l1.676-1.22zm3.302-2.4A13.942 13.942 0 0 1 23 7c0 2.233-.523 4.344-1.452 6.216l-1.645-1.196A11.955 11.955 0 0 0 21 7c0-1.792-.393-3.493-1.097-5.02L21.548.784z"],"unicode":"","glyph":"M50 100A400 400 0 1 0 850 100H50zM450 550C284.25 550 150 684.25 150 850S284.25 1150 450 1150S750 1015.75 750 850S615.75 550 450 550zM912.3 1040.8A498.5 498.5 0 0 0 950 850A498.5 498.5 0 0 0 912.3 659.2L828.4499999999999 720.2A399.5 399.5 0 0 1 850 850A399.5 399.5 0 0 1 828.5 979.8L912.3 1040.8zM1077.4 1160.8A697.1 697.1 0 0 0 1150 850C1150 738.3499999999999 1123.85 632.8 1077.4 539.1999999999999L995.15 598.9999999999999A597.75 597.75 0 0 1 1050 850C1050 939.6 1030.35 1024.65 995.15 1101L1077.3999999999999 1160.8z","horizAdvX":"1200"},"user-voice-line":{"path":["M0 0h24v24H0z","M1 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H1zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zM21.548.784A13.942 13.942 0 0 1 23 7c0 2.233-.523 4.344-1.452 6.216l-1.645-1.196A11.955 11.955 0 0 0 21 7c0-1.792-.393-3.493-1.097-5.02L21.548.784zm-3.302 2.4A9.97 9.97 0 0 1 19 7a9.97 9.97 0 0 1-.754 3.816l-1.677-1.22A7.99 7.99 0 0 0 17 7a7.99 7.99 0 0 0-.43-2.596l1.676-1.22z"],"unicode":"","glyph":"M50 100A400 400 0 1 0 850 100H750A300 300 0 1 1 150 100H50zM450 550C284.25 550 150 684.25 150 850S284.25 1150 450 1150S750 1015.75 750 850S615.75 550 450 550zM450 650C560.5 650 650 739.5 650 850S560.5 1050 450 1050S250 960.5 250 850S339.5 650 450 650zM1077.3999999999999 1160.8A697.1 697.1 0 0 0 1150 850C1150 738.3499999999999 1123.85 632.8 1077.4 539.1999999999999L995.15 598.9999999999999A597.75 597.75 0 0 1 1050 850C1050 939.6 1030.35 1024.65 995.15 1101L1077.3999999999999 1160.8zM912.3 1040.8A498.5 498.5 0 0 0 950 850A498.5 498.5 0 0 0 912.3 659.2L828.4499999999999 720.2A399.5 399.5 0 0 1 850 850A399.5 399.5 0 0 1 828.5 979.8L912.3 1040.8z","horizAdvX":"1200"},"video-add-fill":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zM8 8v3H5v2h2.999L8 16h2l-.001-3H13v-2h-3V8H8z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM400 800V650H250V550H399.9500000000001L400 400H500L499.95 550H650V650H500V800H400z","horizAdvX":"1200"},"video-add-line":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-1 2H3v12h12V6zM8 8h2v3h3v2H9.999L10 16H8l-.001-3H5v-2h3V8zm13 .841l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM750 900H150V300H750V900zM400 800H500V650H650V550H499.95L500 400H400L399.95 550H250V650H400V800zM1050 757.95L850 617.95V582.0500000000001L1050 442.0500000000001V758z","horizAdvX":"1200"},"video-chat-fill":{"path":["M0 0h24v24H0z","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM14 10.25V8H7v6h7v-2.25L17 14V8l-3 2.25z"],"unicode":"","glyph":"M322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75zM700 687.5V800H350V500H700V612.5L850 500V800L700 687.5z","horizAdvX":"1200"},"video-chat-line":{"path":["M0 0h24v24H0z","M14 10.25L17 8v6l-3-2.25V14H7V8h7v2.25zM5.763 17H20V5H4v13.385L5.763 17zm.692 2L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455z"],"unicode":"","glyph":"M700 687.5L850 800V500L700 612.5V500H350V800H700V687.5zM288.15 350H1000V950H200V280.7500000000001L288.15 350zM322.75 250L100 75V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V300A50 50 0 0 0 1050 250H322.75z","horizAdvX":"1200"},"video-download-fill":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-6 4H8v4H5l4 4 4-4h-3V8z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM500 800H400V600H250L450 400L650 600H500V800z","horizAdvX":"1200"},"video-download-line":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-1 2H3v12h12V6zm-5 2v4h3l-4 4-4-4h3V8h2zm11 .841l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM750 900H150V300H750V900zM500 800V600H650L450 400L250 600H400V800H500zM1050 757.95L850 617.95V582.0500000000001L1050 442.0500000000001V758z","horizAdvX":"1200"},"video-fill":{"path":["M0 0h24v24H0z","M3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zm7.622 4.422a.4.4 0 0 0-.622.332v6.506a.4.4 0 0 0 .622.332l4.879-3.252a.4.4 0 0 0 0-.666l-4.88-3.252z"],"unicode":"","glyph":"M150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM531.1 779.25A20.000000000000004 20.000000000000004 0 0 1 500 762.65V437.35A20.000000000000004 20.000000000000004 0 0 1 531.1 420.75L775.05 583.3499999999999A20.000000000000004 20.000000000000004 0 0 1 775.05 616.6499999999999L531.05 779.2499999999999z","horizAdvX":"1200"},"video-line":{"path":["M0 0h24v24H0z","M3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zM5 5v14h14V5H5zm5.622 3.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"],"unicode":"","glyph":"M150 1000.35C150 1027.75 172.25 1050 199.65 1050H1000.35C1027.75 1050 1049.9999999999998 1027.75 1049.9999999999998 1000.35V199.6500000000001A49.7 49.7 0 0 0 1000.35 150.0000000000002H199.65A49.7 49.7 0 0 0 150 199.65V1000.35zM250 950V250H950V950H250zM531.1 779.25L775.05 616.6500000000001A20.000000000000004 20.000000000000004 0 0 0 775.05 583.3500000000001L531.05 420.7500000000001A20.000000000000004 20.000000000000004 0 0 0 499.9999999999999 437.3500000000002V762.65A20.000000000000004 20.000000000000004 0 0 0 531.0999999999999 779.25z","horizAdvX":"1200"},"video-upload-fill":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zM9 8l-4 4h3v4h2v-4h3L9 8z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM450 800L250 600H400V400H500V600H650L450 800z","horizAdvX":"1200"},"video-upload-line":{"path":["M0 0H24V24H0z","M16 4c.552 0 1 .448 1 1v4.2l5.213-3.65c.226-.158.538-.103.697.124.058.084.09.184.09.286v12.08c0 .276-.224.5-.5.5-.103 0-.203-.032-.287-.09L17 14.8V19c0 .552-.448 1-1 1H2c-.552 0-1-.448-1-1V5c0-.552.448-1 1-1h14zm-1 2H3v12h12V6zM9 8l4 4h-3v4H8v-4H5l4-4zm12 .841l-4 2.8v.718l4 2.8V8.84z"],"unicode":"","glyph":"M800 1000C827.6 1000 850 977.6 850 950V740L1110.65 922.5C1121.95 930.4 1137.55 927.65 1145.5 916.3C1148.4 912.1000000000003 1150 907.1000000000003 1150 902.0000000000002V298C1150 284.2000000000001 1138.8 273 1125 273C1119.85 273 1114.8500000000001 274.6 1110.65 277.5L850 460V250C850 222.4 827.6 200 800 200H100C72.4 200 50 222.4 50 250V950C50 977.6 72.4 1000 100 1000H800zM750 900H150V300H750V900zM450 800L650 600H500V400H400V600H250L450 800zM1050 757.95L850 617.95V582.0500000000001L1050 442.0500000000001V758z","horizAdvX":"1200"},"vidicon-2-fill":{"path":["M0 0h24v24H0z","M13 6V4H5V2h10v4h1a1 1 0 0 1 1 1v2.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h11zm-8 4v2h2v-2H5z"],"unicode":"","glyph":"M650 900V1000H250V1100H750V900H800A50 50 0 0 0 850 850V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V850A50 50 0 0 0 100 900H650zM250 700V600H350V700H250z","horizAdvX":"1200"},"vidicon-2-line":{"path":["M0 0h24v24H0z","M13 6V4H5V2h10v4h1a1 1 0 0 1 1 1v2.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h11zm2 2H3v10h12V8zm2 4.359l4 2.8V8.84l-4 2.8v.718zM5 10h2v2H5v-2z"],"unicode":"","glyph":"M650 900V1000H250V1100H750V900H800A50 50 0 0 0 850 850V740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V850A50 50 0 0 0 100 900H650zM750 800H150V300H750V800zM850 582.05L1050 442.0500000000001V758L850 618V582.1zM250 700H350V600H250V700z","horizAdvX":"1200"},"vidicon-fill":{"path":["M0 0h24v24H0z","M17 9.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4.2zM5 8v2h2V8H5z"],"unicode":"","glyph":"M850 740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800A50 50 0 0 0 850 950V740zM250 800V700H350V800H250z","horizAdvX":"1200"},"vidicon-line":{"path":["M0 0h24v24H0z","M17 9.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4.2zm0 3.159l4 2.8V8.84l-4 2.8v.718zM3 6v12h12V6H3zm2 2h2v2H5V8z"],"unicode":"","glyph":"M850 740L1110.65 922.5A25 25 0 0 0 1150 902V298A25 25 0 0 0 1110.65 277.5L850 460V250A50 50 0 0 0 800 200H100A50 50 0 0 0 50 250V950A50 50 0 0 0 100 1000H800A50 50 0 0 0 850 950V740zM850 582.0500000000001L1050 442.0500000000001V758L850 618V582.1zM150 900V300H750V900H150zM250 800H350V700H250V800z","horizAdvX":"1200"},"vimeo-fill":{"path":["M0 0H24V24H0z","M1.173 8.301c-.281-.413-.252-.413.328-.922 1.232-1.082 2.394-2.266 3.736-3.212 1.215-.852 2.826-1.402 3.927-.047 1.014 1.249 1.038 3.142 1.295 4.65.257 1.564.503 3.164 1.051 4.66.152.421.443 1.217.968 1.284.678.093 1.368-1.096 1.683-1.54.817-1.18 1.925-2.769 1.785-4.286-.138-1.612-1.878-1.309-2.966-.924.175-1.809 1.858-3.843 3.48-4.53 1.72-.714 4.276-.702 5.14 1.237.923 2.102.093 4.543-.912 6.448-1.097 2.068-2.509 3.982-4.018 5.77-1.331 1.588-2.906 3.33-4.89 4.089-2.267.864-3.61-.82-4.382-2.77-.843-2.123-1.262-4.506-1.87-6.717-.256-.934-.56-1.997-1.167-2.768-.792-.995-1.692-.06-2.474.477-.269-.267-.491-.607-.714-.899z"],"unicode":"","glyph":"M58.65 784.95C44.6 805.6 46.05 805.6 75.05 831.05C136.65 885.15 194.75 944.35 261.85 991.65C322.6 1034.25 403.1500000000001 1061.75 458.2 994C508.9 931.55 510.1 836.9 522.9499999999999 761.5C535.8 683.3000000000001 548.1 603.3000000000001 575.5 528.5C583.0999999999999 507.45 597.65 467.65 623.9 464.3C657.8000000000001 459.65 692.3 519.1 708.05 541.3000000000001C748.9 600.3 804.3 679.75 797.3 755.6C790.4 836.2 703.4 821.05 649 801.8C657.75 892.25 741.9000000000001 993.95 823 1028.3C909 1064 1036.8 1063.4 1080 966.45C1126.15 861.35 1084.65 739.3000000000001 1034.4 644.05C979.55 540.65 908.95 444.9500000000001 833.5000000000001 355.5500000000001C766.9500000000002 276.15 688.2 189.05 589 151.0999999999999C475.6500000000001 107.8999999999999 408.5000000000001 192.0999999999999 369.9000000000001 289.5999999999999C327.7500000000001 395.75 306.8000000000001 514.8999999999999 276.4000000000001 625.4499999999998C263.6000000000001 672.1499999999997 248.4000000000001 725.2999999999998 218.0500000000001 763.8499999999999C178.4500000000001 813.5999999999999 133.4500000000001 766.8499999999999 94.3500000000001 739.9999999999999C80.9000000000001 753.3499999999999 69.8000000000001 770.3499999999998 58.6500000000001 784.9499999999999z","horizAdvX":"1200"},"vimeo-line":{"path":["M0 0H24V24H0z","M17.993 3.004c2.433 0 4.005 1.512 4.005 4.496 0 1.72-.998 3.94-1.832 5.235-2.789 4.333-6.233 8.74-9.643 8.74-3.706 0-4.67-6.831-5.092-8.432-.422-1.601-.533-2.21-1.17-3.233-.317.22-.76.529-1.33.93-.224.157-.533.105-.693-.117L.925 8.807C.789 8.62.8 8.363.952 8.187 3.779 4.915 6.128 3.278 8 3.278c2.392 0 3.124 2.816 3.324 4.223.3 2.117.69 4.738 1.244 5.872.557-.792 2.18-2.888 1.967-3.99-.094-.486-1.317.183-1.887.078-.425-.08-.806-.402-.806-1.026 0-1.31 1.852-5.43 6.151-5.43zm.007 2c-2.195 0-3.251 1.533-3.653 2.208 1.25.046 1.97.818 2.133 1.803.389 2.33-1.916 4.92-2.339 5.565-.396.603-3.061 3.328-4.25-3.36-.112-.629-.367-2.163-.665-4.186-.17-1.151-.873-1.763-1.23-1.763-.842 0-1.92.65-3.855 2.515 1.905-.115 2.545 2.276 2.916 3.633.816 2.984 1.571 8.056 3.62 8.056 1.727 0 4.439-2.646 7.37-7.04.209-.311 1.966-3.024 1.966-5.036 0-2.395-1.469-2.395-2.013-2.395z"],"unicode":"","glyph":"M899.65 1049.8C1021.3 1049.8 1099.8999999999999 974.2 1099.8999999999999 825C1099.8999999999999 739 1049.9999999999998 628 1008.2999999999998 563.25C868.8499999999998 346.6000000000002 696.6499999999999 126.25 526.1499999999999 126.25C340.8499999999999 126.25 292.6499999999998 467.8 271.5499999999999 547.8499999999999C250.4499999999999 627.9 244.8999999999998 658.3499999999999 213.0499999999999 709.5C197.1999999999998 698.5 175.0499999999999 683.05 146.5499999999998 663C135.3499999999998 655.15 119.8999999999998 657.75 111.8999999999998 668.85L46.25 759.65C39.45 769 40 781.85 47.6 790.6500000000001C188.95 954.25 306.4 1036.1 400 1036.1C519.6 1036.1 556.2 895.3 566.2 824.95C581.2 719.1000000000001 600.6999999999999 588.05 628.4 531.35C656.25 570.95 737.4 675.75 726.75 730.85C722.0500000000001 755.1500000000001 660.9 721.7 632.4 726.95C611.15 730.95 592.0999999999999 747.05 592.0999999999999 778.25C592.0999999999999 843.7500000000001 684.6999999999999 1049.75 899.65 1049.75zM900 949.8C790.25 949.8 737.45 873.1500000000001 717.35 839.4000000000001C779.85 837.1 815.85 798.5 824 749.25C843.45 632.75 728.2 503.25 707.05 470.9999999999999C687.25 440.8499999999999 554 304.5999999999999 494.55 638.9999999999999C488.95 670.4499999999998 476.2 747.1499999999999 461.3 848.3C452.8 905.85 417.65 936.4499999999998 399.8 936.4499999999998C357.7 936.4499999999998 303.8 903.9499999999998 207.0499999999999 810.6999999999998C302.2999999999999 816.4499999999998 334.2999999999999 696.8999999999999 352.8499999999999 629.0499999999998C393.6499999999999 479.8499999999998 431.3999999999999 226.2499999999999 533.85 226.2499999999999C620.2 226.2499999999999 755.8 358.55 902.35 578.2499999999999C912.8 593.7999999999998 1000.65 729.4499999999999 1000.65 830.0499999999998C1000.65 949.7999999999998 927.2 949.7999999999998 900 949.7999999999998z","horizAdvX":"1200"},"vip-crown-2-fill":{"path":["M0 0h24v24H0z","M2.8 5.2L7 8l4.186-5.86a1 1 0 0 1 1.628 0L17 8l4.2-2.8a1 1 0 0 1 1.547.95l-1.643 13.967a1 1 0 0 1-.993.883H3.889a1 1 0 0 1-.993-.883L1.253 6.149A1 1 0 0 1 2.8 5.2zM12 15a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],"unicode":"","glyph":"M140 940L350 800L559.3 1093A50 50 0 0 0 640.7 1093L850 800L1060 940A50 50 0 0 0 1137.35 892.5L1055.2 194.15A50 50 0 0 0 1005.55 150H194.45A50 50 0 0 0 144.8 194.15L62.65 892.55A50 50 0 0 0 140 940zM600 450A100 100 0 1 1 600 650A100 100 0 0 1 600 450z","horizAdvX":"1200"},"vip-crown-2-line":{"path":["M0 0h24v24H0z","M3.492 8.065L4.778 19h14.444l1.286-10.935-4.01 2.673L12 4.441l-4.498 6.297-4.01-2.673zM2.801 5.2L7 8l4.186-5.86a1 1 0 0 1 1.628 0L17 8l4.2-2.8a1 1 0 0 1 1.547.95l-1.643 13.967a1 1 0 0 1-.993.883H3.889a1 1 0 0 1-.993-.883L1.253 6.149A1 1 0 0 1 2.8 5.2zM12 15a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"],"unicode":"","glyph":"M174.6 796.75L238.9 250H961.1L1025.4 796.75L824.9000000000002 663.1L600 977.95L375.1 663.1L174.6 796.75zM140.05 940L350 800L559.3 1093A50 50 0 0 0 640.7 1093L850 800L1060 940A50 50 0 0 0 1137.35 892.5L1055.2 194.15A50 50 0 0 0 1005.55 150H194.45A50 50 0 0 0 144.8 194.15L62.65 892.55A50 50 0 0 0 140 940zM600 450A100 100 0 1 0 600 650A100 100 0 0 0 600 450z","horizAdvX":"1200"},"vip-crown-fill":{"path":["M0 0h24v24H0z","M2 19h20v2H2v-2zM2 5l5 3 5-6 5 6 5-3v12H2V5z"],"unicode":"","glyph":"M100 250H1100V150H100V250zM100 950L350 800L600 1100L850 800L1100 950V350H100V950z","horizAdvX":"1200"},"vip-crown-line":{"path":["M0 0h24v24H0z","M2 19h20v2H2v-2zM2 5l5 3.5L12 2l5 6.5L22 5v12H2V5zm2 3.841V15h16V8.841l-3.42 2.394L12 5.28l-4.58 5.955L4 8.84z"],"unicode":"","glyph":"M100 250H1100V150H100V250zM100 950L350 775L600 1100L850 775L1100 950V350H100V950zM200 757.9499999999999V450H1000V757.95L828.9999999999999 638.25L600 936L371 638.25L200 758z","horizAdvX":"1200"},"vip-diamond-fill":{"path":["M0 0h24v24H0z","M4.873 3h14.254a1 1 0 0 1 .809.412l3.823 5.256a.5.5 0 0 1-.037.633L12.367 21.602a.5.5 0 0 1-.734 0L.278 9.302a.5.5 0 0 1-.037-.634l3.823-5.256A1 1 0 0 1 4.873 3z"],"unicode":"","glyph":"M243.65 1050H956.35A50 50 0 0 0 996.8 1029.4L1187.95 766.6A25 25 0 0 0 1186.1000000000001 734.95L618.35 119.9000000000001A25 25 0 0 0 581.6500000000001 119.9000000000001L13.9 734.9000000000001A25 25 0 0 0 12.05 766.6L203.2 1029.4A50 50 0 0 0 243.65 1050z","horizAdvX":"1200"},"vip-diamond-line":{"path":["M0 0h24v24H0z","M4.873 3h14.254a1 1 0 0 1 .809.412l3.823 5.256a.5.5 0 0 1-.037.633L12.367 21.602a.5.5 0 0 1-.706.028c-.007-.006-3.8-4.115-11.383-12.329a.5.5 0 0 1-.037-.633l3.823-5.256A1 1 0 0 1 4.873 3zm.51 2l-2.8 3.85L12 19.05 21.417 8.85 18.617 5H5.383z"],"unicode":"","glyph":"M243.65 1050H956.35A50 50 0 0 0 996.8 1029.4L1187.95 766.6A25 25 0 0 0 1186.1000000000001 734.95L618.35 119.9000000000001A25 25 0 0 0 583.0500000000001 118.5C582.7 118.8 393.0500000000001 324.25 13.9000000000001 734.95A25 25 0 0 0 12.0500000000001 766.6L203.2000000000001 1029.4A50 50 0 0 0 243.65 1050zM269.15 950L129.15 757.5L600 247.5L1070.8500000000001 757.5L930.85 950H269.15z","horizAdvX":"1200"},"vip-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 5.5v7h2v-7h-2zm-.285 0H8.601l-1.497 4.113L5.607 8.5H3.493l2.611 6.964h2L10.715 8.5zm5.285 5h1.5a2.5 2.5 0 1 0 0-5H14v7h2v-2zm0-2v-1h1.5a.5.5 0 1 1 0 1H16z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM550 775V425H650V775H550zM535.75 775H430.0500000000001L355.2000000000001 569.35L280.35 775H174.65L305.2 426.8H405.2L535.75 775zM800 525H875A125 125 0 1 1 875 775H700V425H800V525zM800 625V675H875A25 25 0 1 0 875 625H800z","horizAdvX":"1200"},"vip-line":{"path":["M0 0h24v24H0z","M2 19h20v2H2v-2zm9-11h2v8h-2V8zM7.965 8h2.125l-2.986 7.964h-2L2.118 8h2.125l1.861 5.113L7.965 8zM17 14v2h-2V8h4a3 3 0 0 1 0 6h-2zm0-4v2h2a1 1 0 0 0 0-2h-2zM2 3h20v2H2V3z"],"unicode":"","glyph":"M100 250H1100V150H100V250zM550 800H650V400H550V800zM398.25 800H504.5L355.2 401.8H255.2L105.9 800H212.15L305.2 544.35L398.25 800zM850 500V400H750V800H950A150 150 0 0 0 950 500H850zM850 700V600H950A50 50 0 0 1 950 700H850zM100 1050H1100V950H100V1050z","horizAdvX":"1200"},"virus-fill":{"path":["M0 0H24V24H0z","M13.717 1.947l3.734 1.434-.717 1.867-.934-.359-.746 1.945c.779.462 1.444 1.094 1.945 1.846l1.903-.847-.407-.914 1.827-.813 1.627 3.654-1.827.813-.407-.913-1.902.847c.122.477.187.978.187 1.493 0 .406-.04.803-.117 1.187l1.944.746.358-.933 1.868.717-1.434 3.734-1.867-.717.358-.933-1.944-.747c-.462.779-1.094 1.444-1.846 1.945l.847 1.903.914-.407.813 1.827-3.654 1.627-.813-1.827.913-.407-.847-1.902c-.477.122-.978.187-1.493.187-.407 0-.804-.04-1.188-.118l-.746 1.945.934.358-.717 1.868-3.734-1.434.717-1.867.932.358.748-1.944C8.167 16.704 7.502 16.072 7 15.32l-1.903.847.407.914-1.827.813-1.627-3.654 1.827-.813.406.914 1.903-.848C6.065 13.016 6 12.515 6 12c0-.406.04-.803.117-1.187l-1.945-.746-.357.933-1.868-.717L3.381 6.55l1.867.717-.359.933 1.945.747C7.296 8.167 7.928 7.502 8.68 7l-.847-1.903-.914.407-.813-1.827L9.76 2.051l.813 1.827-.913.407.847 1.902C10.984 6.065 11.485 6 12 6c.406 0 .803.04 1.187.117l.745-1.945L13 3.815l.717-1.868zm-3.583 11.285c-.276.478-.112 1.09.366 1.366s1.09.112 1.366-.366.112-1.09-.366-1.366-1.09-.112-1.366.366zM14 11c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-3.5-1.598c-.478.276-.642.888-.366 1.366.276.478.888.642 1.366.366.478-.276.642-.888.366-1.366-.276-.478-.888-.642-1.366-.366z"],"unicode":"","glyph":"M685.85 1102.65L872.5500000000001 1030.95L836.7 937.6L790.0000000000001 955.55L752.7 858.3C791.6500000000001 835.2 824.9000000000001 803.5999999999999 849.9500000000002 766L945.1 808.3499999999999L924.75 854.05L1016.1000000000003 894.7L1097.45 712L1006.1 671.3499999999999L985.75 716.9999999999999L890.65 674.65C896.7499999999999 650.8 900 625.7499999999999 900 599.9999999999999C900 579.6999999999999 898 559.8499999999999 894.15 540.65L991.35 503.3499999999999L1009.2499999999998 549.9999999999999L1102.6499999999999 514.1499999999999L1030.9499999999998 327.45L937.5999999999998 363.3L955.4999999999998 409.95L858.2999999999998 447.3C835.1999999999998 408.3499999999999 803.5999999999998 375.0999999999999 765.9999999999999 350.0499999999999L808.3499999999999 254.9L854.05 275.25L894.6999999999999 183.8999999999999L711.9999999999999 102.55L671.3499999999999 193.9L716.9999999999999 214.25L674.65 309.35C650.8 303.2500000000001 625.7499999999999 300 599.9999999999999 300C579.6499999999999 300 559.8 302 540.5999999999999 305.9L503.2999999999998 208.6499999999999L549.9999999999998 190.7499999999999L514.1499999999997 97.3499999999999L327.4499999999998 169.05L363.2999999999998 262.4000000000001L409.8999999999998 244.5L447.2999999999998 341.7C408.35 364.8 375.1 396.4000000000001 350 434L254.85 391.6499999999999L275.2 345.9499999999998L183.85 305.3L102.5 487.9999999999999L193.85 528.65L214.15 482.9499999999999L309.3 525.35C303.25 549.2 300 574.25 300 600C300 620.3000000000001 302 640.1500000000001 305.85 659.35L208.6 696.65L190.75 650L97.35 685.85L169.05 872.5L262.4 836.6500000000001L244.45 790L341.7 752.6500000000001C364.8 791.6500000000001 396.4 824.9000000000001 434 850L391.6500000000001 945.15L345.9500000000001 924.8L305.3 1016.15L488 1097.45L528.65 1006.1L483 985.75L525.35 890.65C549.2 896.75 574.25 900 600 900C620.3000000000001 900 640.1500000000001 898 659.35 894.15L696.5999999999999 991.4L650 1009.25L685.85 1102.65zM506.7 538.4000000000001C492.9 514.5 501.1 483.9000000000001 525 470.1S579.5 464.5 593.3 488.4000000000001S598.9 542.9 575 556.7S520.5 562.3000000000001 506.7 538.4000000000001zM700 650C672.4 650 650 627.6 650 600S672.4 550 700 550S750 572.4 750 600S727.6 650 700 650zM525 729.9000000000001C501.1 716.1 492.9 685.5 506.7 661.6C520.5 637.7 551.1 629.5000000000001 575 643.3000000000001C598.9 657.1 607.1 687.7 593.3 711.6000000000001C579.5 735.5 548.9 743.7 525 729.9000000000001z","horizAdvX":"1200"},"virus-line":{"path":["M0 0H24V24H0z","M13.717 1.947l3.734 1.434-.717 1.867-.934-.359-.746 1.945c.779.462 1.444 1.094 1.945 1.846l1.903-.847-.407-.914 1.827-.813 1.627 3.654-1.827.813-.407-.913-1.902.847c.122.477.187.978.187 1.493 0 .406-.04.803-.117 1.187l1.944.746.358-.933 1.868.717-1.434 3.734-1.867-.717.358-.933-1.944-.747c-.462.779-1.094 1.444-1.846 1.945l.847 1.903.914-.407.813 1.827-3.654 1.627-.813-1.827.913-.407-.847-1.902c-.477.122-.978.187-1.493.187-.407 0-.804-.04-1.188-.118l-.746 1.945.934.358-.717 1.868-3.734-1.434.717-1.867.932.358.748-1.944C8.167 16.704 7.502 16.072 7 15.32l-1.903.847.407.914-1.827.813-1.627-3.654 1.827-.813.406.914 1.903-.848C6.065 13.016 6 12.515 6 12c0-.406.04-.803.117-1.187l-1.945-.746-.357.933-1.868-.717L3.381 6.55l1.867.717-.359.933 1.945.747C7.296 8.167 7.928 7.502 8.68 7l-.847-1.903-.914.407-.813-1.827L9.76 2.051l.813 1.827-.913.407.847 1.902C10.984 6.065 11.485 6 12 6c.406 0 .803.04 1.187.117l.745-1.945L13 3.815l.717-1.868zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-.5 4.866c.478.276.642.888.366 1.366-.276.478-.888.642-1.366.366-.478-.276-.642-.888-.366-1.366.276-.478.888-.642 1.366-.366zM14 11c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm-2.134-1.232c.276.478.112 1.09-.366 1.366s-1.09.112-1.366-.366-.112-1.09.366-1.366 1.09-.112 1.366.366z"],"unicode":"","glyph":"M685.85 1102.65L872.5500000000001 1030.95L836.7 937.6L790.0000000000001 955.55L752.7 858.3C791.6500000000001 835.2 824.9000000000001 803.5999999999999 849.9500000000002 766L945.1 808.3499999999999L924.75 854.05L1016.1000000000003 894.7L1097.45 712L1006.1 671.3499999999999L985.75 716.9999999999999L890.65 674.65C896.7499999999999 650.8 900 625.7499999999999 900 599.9999999999999C900 579.6999999999999 898 559.8499999999999 894.15 540.65L991.35 503.3499999999999L1009.2499999999998 549.9999999999999L1102.6499999999999 514.1499999999999L1030.9499999999998 327.45L937.5999999999998 363.3L955.4999999999998 409.95L858.2999999999998 447.3C835.1999999999998 408.3499999999999 803.5999999999998 375.0999999999999 765.9999999999999 350.0499999999999L808.3499999999999 254.9L854.05 275.25L894.6999999999999 183.8999999999999L711.9999999999999 102.55L671.3499999999999 193.9L716.9999999999999 214.25L674.65 309.35C650.8 303.2500000000001 625.7499999999999 300 599.9999999999999 300C579.6499999999999 300 559.8 302 540.5999999999999 305.9L503.2999999999998 208.6499999999999L549.9999999999998 190.7499999999999L514.1499999999997 97.3499999999999L327.4499999999998 169.05L363.2999999999998 262.4000000000001L409.8999999999998 244.5L447.2999999999998 341.7C408.35 364.8 375.1 396.4000000000001 350 434L254.85 391.6499999999999L275.2 345.9499999999998L183.85 305.3L102.5 487.9999999999999L193.85 528.65L214.15 482.9499999999999L309.3 525.35C303.25 549.2 300 574.25 300 600C300 620.3000000000001 302 640.1500000000001 305.85 659.35L208.6 696.65L190.75 650L97.35 685.85L169.05 872.5L262.4 836.6500000000001L244.45 790L341.7 752.6500000000001C364.8 791.6500000000001 396.4 824.9000000000001 434 850L391.6500000000001 945.15L345.9500000000001 924.8L305.3 1016.15L488 1097.45L528.65 1006.1L483 985.75L525.35 890.65C549.2 896.75 574.25 900 600 900C620.3000000000001 900 640.1500000000001 898 659.35 894.15L696.5999999999999 991.4L650 1009.25L685.85 1102.65zM600 800C489.4999999999999 800 400 710.5 400 600S489.4999999999999 400 600 400S800 489.5 800 600S710.5 800 600 800zM575 556.7C598.9 542.9 607.1 512.3000000000001 593.3 488.4000000000001C579.5 464.5 548.9 456.3000000000001 525 470.1C501.1 483.9000000000001 492.9 514.5 506.7 538.4000000000001C520.5 562.3000000000001 551.1 570.5 575 556.7zM700 650C727.6 650 750 627.6 750 600S727.6 550 700 550S650 572.4 650 600S672.4 650 700 650zM593.3 711.5999999999999C607.1 687.6999999999999 598.9 657.1 575 643.3S520.5 637.6999999999999 506.7 661.5999999999999S501.1 716.0999999999999 525 729.9S579.5 735.5 593.3 711.5999999999999z","horizAdvX":"1200"},"visa-fill":{"path":["M0 0h24v24H0z","M1 4h22v2H1V4zm0 14h22v2H1v-2zm18.622-3.086l-.174-.87h-1.949l-.31.863-1.562.003c1.005-2.406 1.75-4.19 2.236-5.348.127-.303.353-.457.685-.455.254.002.669.002 1.245 0L21 14.912l-1.378.003zm-1.684-2.062h1.256l-.47-2.18-.786 2.18zM7.872 9.106l1.57.002-2.427 5.806-1.59-.001c-.537-2.07-.932-3.606-1.184-4.605-.077-.307-.23-.521-.526-.622-.263-.09-.701-.23-1.315-.419v-.16h2.509c.434 0 .687.21.769.64l.62 3.289 1.574-3.93zm3.727.002l-1.24 5.805-1.495-.002 1.24-5.805 1.495.002zM14.631 9c.446 0 1.01.138 1.334.267l-.262 1.204c-.293-.118-.775-.277-1.18-.27-.59.009-.954.256-.954.493 0 .384.632.578 1.284.999.743.48.84.91.831 1.378-.01.971-.831 1.929-2.564 1.929-.791-.012-1.076-.078-1.72-.306l.272-1.256c.656.274.935.361 1.495.361.515 0 .956-.207.96-.568.002-.257-.155-.384-.732-.702-.577-.317-1.385-.756-1.375-1.64C12.033 9.759 13.107 9 14.63 9z"],"unicode":"","glyph":"M50 1000H1150V900H50V1000zM50 300H1150V200H50V300zM981.1 454.3000000000001L972.4 497.8H874.9499999999999L859.45 454.65L781.35 454.5C831.6 574.8000000000001 868.8500000000001 664 893.15 721.8999999999999C899.4999999999999 737.05 910.8 744.75 927.3999999999997 744.6499999999999C940.1 744.55 960.85 744.55 989.65 744.6499999999999L1050 454.4L981.1 454.25zM896.9 557.4H959.7L936.2 666.4L896.9 557.4zM393.6 744.7L472.1 744.5999999999999L350.75 454.3L271.2500000000001 454.3499999999999C244.4000000000001 557.8499999999999 224.65 634.6499999999999 212.0500000000001 684.5999999999999C208.2 699.9499999999999 200.55 710.65 185.75 715.6999999999999C172.6000000000001 720.1999999999999 150.7000000000001 727.1999999999999 120.0000000000001 736.6499999999999V744.6499999999999H245.4500000000001C267.1500000000001 744.6499999999999 279.8000000000001 734.1499999999999 283.9000000000001 712.6499999999999L314.9000000000001 548.1999999999999L393.6 744.6999999999999zM579.95 744.5999999999999L517.95 454.35L443.2000000000001 454.45L505.2 744.7L579.95 744.5999999999999zM731.55 750C753.85 750 782.05 743.1 798.25 736.6500000000001L785.15 676.45C770.5 682.35 746.4 690.3 726.15 689.95C696.65 689.5 678.4499999999999 677.15 678.4499999999999 665.3C678.4499999999999 646.0999999999999 710.05 636.4 742.65 615.3499999999999C779.8 591.3499999999999 784.65 569.8499999999999 784.1999999999999 546.4499999999999C783.6999999999999 497.8999999999999 742.65 449.9999999999999 656 449.9999999999999C616.4499999999999 450.5999999999999 602.1999999999999 453.8999999999999 569.9999999999999 465.2999999999998L583.5999999999999 528.0999999999999C616.4 514.3999999999999 630.3499999999999 510.0499999999998 658.3499999999999 510.0499999999998C684.0999999999999 510.0499999999998 706.1499999999999 520.3999999999999 706.3499999999999 538.4499999999998C706.4499999999999 551.2999999999998 698.6 557.6499999999999 669.75 573.5499999999998C640.9 589.3999999999999 600.5 611.3499999999998 601 655.5499999999998C601.65 712.05 655.3499999999999 750 731.5 750z","horizAdvX":"1200"},"visa-line":{"path":["M0 0h24v24H0z","M22.222 15.768l-.225-1.125h-2.514l-.4 1.117-2.015.004a4199.19 4199.19 0 0 1 2.884-6.918c.164-.391.455-.59.884-.588.328.003.863.003 1.606.001L24 15.765l-1.778.003zm-2.173-2.666h1.62l-.605-2.82-1.015 2.82zM7.06 8.257l2.026.002-3.132 7.51-2.051-.002a950.849 950.849 0 0 1-1.528-5.956c-.1-.396-.298-.673-.679-.804C1.357 8.89.792 8.71 0 8.465V8.26h3.237c.56 0 .887.271.992.827.106.557.372 1.975.8 4.254L7.06 8.257zm4.81.002l-1.602 7.508-1.928-.002L9.94 8.257l1.93.002zm3.91-.139c.577 0 1.304.18 1.722.345l-.338 1.557c-.378-.152-1-.357-1.523-.35-.76.013-1.23.332-1.23.638 0 .498.816.749 1.656 1.293.959.62 1.085 1.177 1.073 1.782-.013 1.256-1.073 2.495-3.309 2.495-1.02-.015-1.388-.101-2.22-.396l.352-1.625c.847.355 1.206.468 1.93.468.663 0 1.232-.268 1.237-.735.004-.332-.2-.497-.944-.907-.744-.411-1.788-.98-1.774-2.122.017-1.462 1.402-2.443 3.369-2.443z"],"unicode":"","glyph":"M1111.1000000000001 411.5999999999999L1099.85 467.8499999999999H974.15L954.15 411.9999999999999L853.4000000000001 411.8A209959.5 209959.5 0 0 0 997.6000000000003 757.7C1005.8000000000002 777.25 1020.35 787.2 1041.8000000000002 787.0999999999999C1058.2 786.9499999999999 1084.95 786.9499999999999 1122.1000000000001 787.05L1200 411.75L1111.1000000000001 411.5999999999999zM1002.45 544.9H1083.45L1053.2 685.9L1002.45 544.9zM353 787.1500000000001L454.3 787.05L297.7 411.55L195.1499999999999 411.65A47542.450000000004 47542.450000000004 0 0 0 118.7499999999999 709.45C113.7499999999999 729.25 103.8499999999999 743.1 84.7999999999999 749.6500000000001C67.85 755.5 39.6 764.5 0 776.75V787H161.85C189.85 787 206.2 773.45 211.45 745.6500000000001C216.75 717.8 230.05 646.9 251.45 532.95L353 787.1500000000001zM593.5 787.05L513.4 411.65L417 411.7500000000001L497 787.1500000000001L593.5 787.05zM789 794C817.8499999999999 794 854.1999999999999 785 875.0999999999999 776.75L858.1999999999999 698.8999999999999C839.2999999999998 706.4999999999999 808.1999999999999 716.7499999999999 782.05 716.3999999999999C744.05 715.7499999999999 720.5499999999998 699.7999999999998 720.5499999999998 684.4999999999999C720.5499999999998 659.5999999999999 761.3499999999999 647.0499999999998 803.3499999999998 619.8499999999999C851.2999999999998 588.8499999999999 857.5999999999999 561 856.9999999999999 530.7499999999999C856.3499999999998 467.9499999999999 803.3499999999998 405.9999999999999 691.5499999999998 405.9999999999999C640.5499999999998 406.7499999999999 622.1499999999997 411.05 580.5499999999997 425.8L598.1499999999997 507.05C640.4999999999998 489.2999999999998 658.4499999999997 483.6499999999999 694.6499999999997 483.6499999999999C727.7999999999997 483.6499999999999 756.2499999999998 497.05 756.4999999999998 520.3999999999999C756.6999999999997 536.9999999999999 746.4999999999998 545.2499999999999 709.2999999999998 565.7499999999999C672.0999999999998 586.2999999999998 619.8999999999999 614.7499999999999 620.5999999999998 671.8499999999999C621.4499999999997 744.9499999999998 690.6999999999997 793.9999999999999 789.0499999999997 793.9999999999999z","horizAdvX":"1200"},"voice-recognition-fill":{"path":["M0 0h24v24H0z","M21 3v18H3V3h18zm-8 3h-2v12h2V6zM9 9H7v6h2V9zm8 0h-2v6h2V9z"],"unicode":"","glyph":"M1050 1050V150H150V1050H1050zM650 900H550V300H650V900zM450 750H350V450H450V750zM850 750H750V450H850V750z","horizAdvX":"1200"},"voice-recognition-line":{"path":["M0 0h24v24H0z","M5 15v4h4v2H3v-6h2zm16 0v6h-6v-2h4v-4h2zm-8-9v12h-2V6h2zM9 9v6H7V9h2zm8 0v6h-2V9h2zM9 3v2H5v4H3V3h6zm12 0v6h-2V5h-4V3h6z"],"unicode":"","glyph":"M250 450V250H450V150H150V450H250zM1050 450V150H750V250H950V450H1050zM650 900V300H550V900H650zM450 750V450H350V750H450zM850 750V450H750V750H850zM450 1050V950H250V750H150V1050H450zM1050 1050V750H950V950H750V1050H1050z","horizAdvX":"1200"},"voiceprint-fill":{"path":["M0 0h24v24H0z","M5 7h2v10H5V7zm-4 3h2v4H1v-4zm8-8h2v18H9V2zm4 2h2v18h-2V4zm4 3h2v10h-2V7zm4 3h2v4h-2v-4z"],"unicode":"","glyph":"M250 850H350V350H250V850zM50 700H150V500H50V700zM450 1100H550V200H450V1100zM650 1000H750V100H650V1000zM850 850H950V350H850V850zM1050 700H1150V500H1050V700z","horizAdvX":"1200"},"voiceprint-line":{"path":["M0 0h24v24H0z","M5 7h2v10H5V7zm-4 3h2v4H1v-4zm8-8h2v18H9V2zm4 2h2v18h-2V4zm4 3h2v10h-2V7zm4 3h2v4h-2v-4z"],"unicode":"","glyph":"M250 850H350V350H250V850zM50 700H150V500H50V700zM450 1100H550V200H450V1100zM650 1000H750V100H650V1000zM850 850H950V350H850V850zM1050 700H1150V500H1050V700z","horizAdvX":"1200"},"volume-down-fill":{"path":["M0 0h24v24H0z","M8.889 16H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L8.89 16zm9.974.591l-1.422-1.422A3.993 3.993 0 0 0 19 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 21 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M444.45 400H250A50 50 0 0 0 200 450V750A50 50 0 0 0 250 800H444.45L709.15 1016.6A25 25 0 0 0 750 997.25V202.75A25 25 0 0 0 709.15 183.4L444.5 400zM943.15 370.45L872.05 441.55A199.64999999999998 199.64999999999998 0 0 1 950 600C950 671.5 912.5 734.25 856 769.5999999999999L927.95 841.55A299.54999999999995 299.54999999999995 0 0 0 1050 600C1050 507.9 1008.5000000000002 425.5 943.15 370.45z","horizAdvX":"1200"},"volume-down-line":{"path":["M0 0h24v24H0z","M13 7.22L9.603 10H6v4h3.603L13 16.78V7.22zM8.889 16H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L8.89 16zm9.974.591l-1.422-1.422A3.993 3.993 0 0 0 19 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 21 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M650 839L480.15 700H300V500H480.15L650 361V839zM444.45 400H250A50 50 0 0 0 200 450V750A50 50 0 0 0 250 800H444.45L709.15 1016.6A25 25 0 0 0 750 997.25V202.75A25 25 0 0 0 709.15 183.4L444.5 400zM943.15 370.45L872.05 441.55A199.64999999999998 199.64999999999998 0 0 1 950 600C950 671.5 912.5 734.25 856 769.5999999999999L927.95 841.55A299.54999999999995 299.54999999999995 0 0 0 1050 600C1050 507.9 1008.5000000000002 425.5 943.15 370.45z","horizAdvX":"1200"},"volume-mute-fill":{"path":["M0 0h24v24H0z","M5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm14.525-4l3.536 3.536-1.414 1.414L19 13.414l-3.536 3.536-1.414-1.414L17.586 12 14.05 8.464l1.414-1.414L19 10.586l3.536-3.536 1.414 1.414L20.414 12z"],"unicode":"","glyph":"M294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM1020.7 600L1197.5000000000002 423.2000000000001L1126.8000000000002 352.5L950 529.3000000000001L773.2 352.5L702.5 423.2000000000001L879.3 600L702.5 776.8L773.2 847.5L950 670.6999999999999L1126.8000000000002 847.5L1197.5000000000002 776.8L1020.7 600z","horizAdvX":"1200"},"volume-mute-line":{"path":["M0 0h24v24H0z","M10 7.22L6.603 10H3v4h3.603L10 16.78V7.22zM5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm14.525-4l3.536 3.536-1.414 1.414L19 13.414l-3.536 3.536-1.414-1.414L17.586 12 14.05 8.464l1.414-1.414L19 10.586l3.536-3.536 1.414 1.414L20.414 12z"],"unicode":"","glyph":"M500 839L330.15 700H150V500H330.15L500 361V839zM294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM1020.7 600L1197.5000000000002 423.2000000000001L1126.8000000000002 352.5L950 529.3000000000001L773.2 352.5L702.5 423.2000000000001L879.3 600L702.5 776.8L773.2 847.5L950 670.6999999999999L1126.8000000000002 847.5L1197.5000000000002 776.8L1020.7 600z","horizAdvX":"1200"},"volume-off-vibrate-fill":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zM13 19.945a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1l2.584-.002-3.776-3.776 1.414-1.414L13 12.586v7.359zm-.113-16.206a.5.5 0 0 1 .113.316v5.702L9.282 6.04l2.901-2.372a.5.5 0 0 1 .704.07z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM650 202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800L279.2 800.0999999999999L90.4 988.9L161.1 1059.6L650 570.6999999999999V202.75zM644.35 1013.05A25 25 0 0 0 650 997.25V712.1499999999999L464.1 898L609.15 1016.6A25 25 0 0 0 644.35 1013.1z","horizAdvX":"1200"},"volume-off-vibrate-line":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zM13 19.945a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1l2.584-.002-3.776-3.776 1.414-1.414L13 12.586v7.359zM7.584 9.998L4 10V14l3.603-.001L11 16.779v-3.365L7.584 9.998zm5.303-6.26a.5.5 0 0 1 .113.317v5.702l-2-2V7.22l-.296.241-1.421-1.42 2.9-2.373a.5.5 0 0 1 .704.07z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM650 202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800L279.2 800.0999999999999L90.4 988.9L161.1 1059.6L650 570.6999999999999V202.75zM379.2 700.1L200 700V500L380.15 500.05L550 361.05V529.3000000000001L379.2 700.1zM644.35 1013.1A25 25 0 0 0 650 997.25V712.1500000000001L550 812.1500000000001V839L535.2 826.95L464.1500000000001 897.95L609.1500000000001 1016.6A25 25 0 0 0 644.3500000000001 1013.1z","horizAdvX":"1200"},"volume-up-fill":{"path":["M0 0h24v24H0z","M5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm13.517 4.134l-1.416-1.416A8.978 8.978 0 0 0 21 12a8.982 8.982 0 0 0-3.304-6.968l1.42-1.42A10.976 10.976 0 0 1 23 12c0 3.223-1.386 6.122-3.594 8.134zm-3.543-3.543l-1.422-1.422A3.993 3.993 0 0 0 16 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 18 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM970.3 193.3L899.4999999999999 264.1A448.9 448.9 0 0 1 1050 600A449.09999999999997 449.09999999999997 0 0 1 884.8000000000001 948.4L955.8 1019.4A548.8000000000001 548.8000000000001 0 0 0 1150 600C1150 438.85 1080.7 293.9 970.3 193.3zM793.15 370.45L722.05 441.55A199.64999999999998 199.64999999999998 0 0 1 800 600C800 671.5 762.5 734.25 706 769.5999999999999L777.95 841.55A299.54999999999995 299.54999999999995 0 0 0 900 600C900 507.9 858.5000000000001 425.5 793.15 370.45z","horizAdvX":"1200"},"volume-up-line":{"path":["M0 0h24v24H0z","M10 7.22L6.603 10H3v4h3.603L10 16.78V7.22zM5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387L5.89 16zm13.517 4.134l-1.416-1.416A8.978 8.978 0 0 0 21 12a8.982 8.982 0 0 0-3.304-6.968l1.42-1.42A10.976 10.976 0 0 1 23 12c0 3.223-1.386 6.122-3.594 8.134zm-3.543-3.543l-1.422-1.422A3.993 3.993 0 0 0 16 12c0-1.43-.75-2.685-1.88-3.392l1.439-1.439A5.991 5.991 0 0 1 18 12c0 1.842-.83 3.49-2.137 4.591z"],"unicode":"","glyph":"M500 839L330.15 700H150V500H330.15L500 361V839zM294.45 400H100A50 50 0 0 0 50 450V750A50 50 0 0 0 100 800H294.45L559.15 1016.6A25 25 0 0 0 600 997.25V202.75A25 25 0 0 0 559.15 183.4L294.5 400zM970.3 193.3L899.4999999999999 264.1A448.9 448.9 0 0 1 1050 600A449.09999999999997 449.09999999999997 0 0 1 884.8000000000001 948.4L955.8 1019.4A548.8000000000001 548.8000000000001 0 0 0 1150 600C1150 438.85 1080.7 293.9 970.3 193.3zM793.15 370.45L722.05 441.55A199.64999999999998 199.64999999999998 0 0 1 800 600C800 671.5 762.5 734.25 706 769.5999999999999L777.95 841.55A299.54999999999995 299.54999999999995 0 0 0 900 600C900 507.9 858.5000000000001 425.5 793.15 370.45z","horizAdvX":"1200"},"volume-vibrate-fill":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zm-6.503.578a.5.5 0 0 1 .113.316v15.89a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .704.07z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM644.35 1013.05A25 25 0 0 0 650 997.25V202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800H344.45L609.15 1016.6A25 25 0 0 0 644.35 1013.1z","horizAdvX":"1200"},"volume-vibrate-line":{"path":["M0 0h24v24H0z","M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zm-6.503.578a.5.5 0 0 1 .113.316v15.89a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .704.07zM11 7.22L7.603 9.999H4V14l3.603-.001L11 16.779V7.22z"],"unicode":"","glyph":"M969.5 1041.95L1040.15 971.25L916.4 847.5L1040.15 723.75L916.4 600L1040.15 476.2L916.4 352.45L1040.15 228.7L969.45 157.9999999999998L775 352.4999999999999L898.7500000000001 476.1999999999998L775 600L898.7500000000001 723.75L775 847.5L969.5 1041.95zM644.35 1013.05A25 25 0 0 0 650 997.25V202.75A25 25 0 0 0 609.15 183.4L344.5 400.05L150 400A50 50 0 0 0 100 450V750A50 50 0 0 0 150 800H344.45L609.15 1016.6A25 25 0 0 0 644.35 1013.1zM550 839L380.15 700.05H200V500L380.15 500.05L550 361.05V839z","horizAdvX":"1200"},"vuejs-fill":{"path":["M0 0h24v24H0z","M1 3h4l7 12 7-12h4L12 22 1 3zm8.667 0L12 7l2.333-4h4.035L12 14 5.632 3h4.035z"],"unicode":"","glyph":"M50 1050H250L600 450L950 1050H1150L600 100L50 1050zM483.35 1050L600 850L716.65 1050H918.4L600 500L281.6 1050H483.35z","horizAdvX":"1200"},"vuejs-line":{"path":["M0 0h24v24H0z","M3.316 3L12 18l8.684-15H23L12 22 1 3h2.316zm4.342 0L12 10.5 16.342 3h2.316L12 14.5 5.342 3h2.316z"],"unicode":"","glyph":"M165.8 1050L600 300L1034.1999999999998 1050H1150L600 100L50 1050H165.8zM382.9 1050L600 675L817.0999999999999 1050H932.8999999999997L600 475L267.1 1050H382.9z","horizAdvX":"1200"},"walk-fill":{"path":["M0 0h24v24H0z","M7.617 8.712l3.205-2.328A1.995 1.995 0 0 1 12.065 6a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.697 3.955 2.061 1.73 2.223 6.108-1.88.684-2.04-5.604-3.39-2.845a2 2 0 0 1-.713-1.904l.509-2.885-.677.492-2.127 2.928-1.618-1.176L7.6 8.7l.017.012zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-2.972 13.181l-3.214 3.83-1.532-1.285 2.976-3.546.746-2.18 1.791 1.5-.767 1.681z"],"unicode":"","glyph":"M380.85 764.4000000000001L541.0999999999999 880.8A99.75 99.75 0 0 0 603.25 900A130.8 130.8 0 0 0 724.5999999999999 809C733.9 779.8499999999999 742.4 760.15 750.0999999999999 749.9A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L645.05 479.6L748.1 393.1000000000002L859.2499999999999 87.7000000000001L765.25 53.5L663.25 333.7L493.75 475.95A100 100 0 0 0 458.1 571.15L483.5500000000001 715.4L449.7000000000001 690.8L343.3500000000001 544.3999999999999L262.4500000000001 603.1999999999999L380 765L380.85 764.4000000000001zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925zM526.4 265.9500000000002L365.7 74.4500000000003L289.1 138.7000000000003L437.9 316.0000000000003L475.2 425.0000000000003L564.75 350.0000000000003L526.4 265.9500000000002z","horizAdvX":"1200"},"walk-line":{"path":["M0 0h24v24H0z","M7.617 8.712l3.205-2.328A1.995 1.995 0 0 1 12.065 6a2.616 2.616 0 0 1 2.427 1.82c.186.583.356.977.51 1.182A4.992 4.992 0 0 0 19 11v2a6.986 6.986 0 0 1-5.402-2.547l-.697 3.955 2.061 1.73 2.223 6.108-1.88.684-2.04-5.604-3.39-2.845a2 2 0 0 1-.713-1.904l.509-2.885-.677.492-2.127 2.928-1.618-1.176L7.6 8.7l.017.012zM13.5 5.5a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm-2.972 13.181l-3.214 3.83-1.532-1.285 2.976-3.546.746-2.18 1.791 1.5-.767 1.681z"],"unicode":"","glyph":"M380.85 764.4000000000001L541.0999999999999 880.8A99.75 99.75 0 0 0 603.25 900A130.8 130.8 0 0 0 724.5999999999999 809C733.9 779.8499999999999 742.4 760.15 750.0999999999999 749.9A249.60000000000002 249.60000000000002 0 0 1 950 650V550A349.29999999999995 349.29999999999995 0 0 0 679.9 677.35L645.05 479.6L748.1 393.1000000000002L859.2499999999999 87.7000000000001L765.25 53.5L663.25 333.7L493.75 475.95A100 100 0 0 0 458.1 571.15L483.5500000000001 715.4L449.7000000000001 690.8L343.3500000000001 544.3999999999999L262.4500000000001 603.1999999999999L380 765L380.85 764.4000000000001zM675 925A100 100 0 1 0 675 1125A100 100 0 0 0 675 925zM526.4 265.9500000000002L365.7 74.4500000000003L289.1 138.7000000000003L437.9 316.0000000000003L475.2 425.0000000000003L564.75 350.0000000000003L526.4 265.9500000000002z","horizAdvX":"1200"},"wallet-2-fill":{"path":["M0 0h24v24H0z","M22 8h-9a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h9v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v4zm-7 3h3v2h-3v-2z"],"unicode":"","glyph":"M1100 800H650A50 50 0 0 1 600 750V450A50 50 0 0 1 650 400H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V800zM750 650H900V550H750V650z","horizAdvX":"1200"},"wallet-2-line":{"path":["M0 0h24v24H0z","M20 7V5H4v14h16v-2h-8a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h8zM3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm10 6v6h7V9h-7zm2 2h3v2h-3v-2z"],"unicode":"","glyph":"M1000 850V950H200V250H1000V350H600A50 50 0 0 0 550 400V800A50 50 0 0 0 600 850H1000zM150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM650 750V450H1000V750H650zM750 650H900V550H750V650z","horizAdvX":"1200"},"wallet-3-fill":{"path":["M0 0h24v24H0z","M22 6h-7a6 6 0 1 0 0 12h7v2a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v2zm-7 2h8v8h-8a4 4 0 1 1 0-8zm0 3v2h3v-2h-3z"],"unicode":"","glyph":"M1100 900H750A300 300 0 1 1 750 300H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V900zM750 800H1150V400H750A200 200 0 1 0 750 800zM750 650V550H900V650H750z","horizAdvX":"1200"},"wallet-3-line":{"path":["M0 0h24v24H0z","M22 7h1v10h-1v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v3zm-2 10h-6a5 5 0 0 1 0-10h6V5H4v14h16v-2zm1-2V9h-7a3 3 0 0 0 0 6h7zm-7-4h3v2h-3v-2z"],"unicode":"","glyph":"M1100 850H1150V350H1100V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H1050A50 50 0 0 0 1100 1000V850zM1000 350H700A250 250 0 0 0 700 850H1000V950H200V250H1000V350zM1050 450V750H700A150 150 0 0 1 700 450H1050zM700 650H850V550H700V650z","horizAdvX":"1200"},"wallet-fill":{"path":["M0 0h24v24H0z","M2 9h19a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V9zm1-6h15v4H2V4a1 1 0 0 1 1-1zm12 11v2h3v-2h-3z"],"unicode":"","glyph":"M100 750H1050A50 50 0 0 0 1100 700V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V750zM150 1050H900V850H100V1000A50 50 0 0 0 150 1050zM750 500V400H900V500H750z","horizAdvX":"1200"},"wallet-line":{"path":["M0 0h24v24H0z","M18 7h3a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h15v4zM4 9v10h16V9H4zm0-4v2h12V5H4zm11 8h3v2h-3v-2z"],"unicode":"","glyph":"M900 850H1050A50 50 0 0 0 1100 800V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050H900V850zM200 750V250H1000V750H200zM200 950V850H800V950H200zM750 550H900V450H750V550z","horizAdvX":"1200"},"water-flash-fill":{"path":["M0 0h24v24H0z","M5.636 6.636L12 .272l6.364 6.364a9 9 0 1 1-12.728 0zM13 11V6.5L8.5 13H11v4.5l4.5-6.5H13z"],"unicode":"","glyph":"M281.8 868.2L600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2zM650 650V875L425 550H550V325L775 650H650z","horizAdvX":"1200"},"water-flash-line":{"path":["M0 0h24v24H0z","M12 3.1L7.05 8.05a7 7 0 1 0 9.9 0L12 3.1zm0-2.828l6.364 6.364a9 9 0 1 1-12.728 0L12 .272zM13 11h2.5L11 17.5V13H8.5L13 6.5V11z"],"unicode":"","glyph":"M600 1045L352.5 797.5A350 350 0 1 1 847.5 797.5L600 1045zM600 1186.4L918.2 868.2A450 450 0 1 0 281.8000000000001 868.2L600 1186.4zM650 650H775L550 325V550H425L650 875V650z","horizAdvX":"1200"},"webcam-fill":{"path":["M0 0h24v24H0z","M11 21v-1.07A7.002 7.002 0 0 1 5 13V8a7 7 0 1 1 14 0v5a7.002 7.002 0 0 1-6 6.93V21h4v2H7v-2h4zm1-12a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 2a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"],"unicode":"","glyph":"M550 150V203.5A350.09999999999997 350.09999999999997 0 0 0 250 550V800A350 350 0 1 0 950 800V550A350.09999999999997 350.09999999999997 0 0 0 650 203.5V150H850V50H350V150H550zM600 750A50 50 0 1 0 600 850A50 50 0 0 0 600 750zM600 650A150 150 0 1 1 600 950A150 150 0 0 1 600 650z","horizAdvX":"1200"},"webcam-line":{"path":["M0 0h24v24H0z","M11 21v-1.07A7.002 7.002 0 0 1 5 13V8a7 7 0 1 1 14 0v5a7.002 7.002 0 0 1-6 6.93V21h4v2H7v-2h4zm1-18a5 5 0 0 0-5 5v5a5 5 0 0 0 10 0V8a5 5 0 0 0-5-5zm0 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 2a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"],"unicode":"","glyph":"M550 150V203.5A350.09999999999997 350.09999999999997 0 0 0 250 550V800A350 350 0 1 0 950 800V550A350.09999999999997 350.09999999999997 0 0 0 650 203.5V150H850V50H350V150H550zM600 1050A250 250 0 0 1 350 800V550A250 250 0 0 1 850 550V800A250 250 0 0 1 600 1050zM600 750A50 50 0 1 1 600 850A50 50 0 0 1 600 750zM600 650A150 150 0 1 0 600 950A150 150 0 0 0 600 650z","horizAdvX":"1200"},"wechat-2-fill":{"path":["M0 0h24v24H0z","M5.457 18.185C3.358 16.677 2 14.4 2 11.908 2 7.323 6.475 3.6 12 3.6s10 3.723 10 8.308c0 4.584-4.475 8.307-10 8.307a11.36 11.36 0 0 1-3.272-.461c-.092-.03-.216-.03-.308-.03-.185 0-.37.06-.525.153l-2.191 1.261a.44.44 0 0 1-.185.062.342.342 0 0 1-.34-.338c0-.093.03-.154.062-.247.03-.03.308-1.046.463-1.661 0-.062.03-.154.03-.216 0-.246-.092-.43-.277-.553zm3.21-7.674c.717 0 1.285-.568 1.285-1.285 0-.718-.568-1.286-1.285-1.286-.718 0-1.285.568-1.285 1.286 0 .717.567 1.285 1.285 1.285zm6.666 0c.718 0 1.285-.568 1.285-1.285 0-.718-.567-1.286-1.285-1.286-.717 0-1.285.568-1.285 1.286 0 .717.568 1.285 1.285 1.285z"],"unicode":"","glyph":"M272.85 290.7500000000001C167.9 366.15 100 480 100 604.6C100 833.8499999999999 323.75 1020 600 1020S1100 833.8499999999999 1100 604.6C1100 375.4000000000001 876.2499999999999 189.25 600 189.25A567.9999999999999 567.9999999999999 0 0 0 436.4 212.3C431.8 213.8 425.6 213.8 421 213.8C411.75 213.8 402.5000000000001 210.8000000000001 394.75 206.1500000000001L285.2 143.1000000000001A22 22 0 0 0 275.95 140A17.1 17.1 0 0 0 258.95 156.9000000000001C258.95 161.5500000000002 260.4500000000001 164.6000000000001 262.05 169.25C263.5500000000001 170.7500000000002 277.4500000000001 221.5500000000001 285.2000000000001 252.3000000000002C285.2000000000001 255.4000000000002 286.7000000000001 260.0000000000001 286.7000000000001 263.1000000000003C286.7000000000001 275.4000000000001 282.1000000000001 284.6000000000002 272.85 290.7500000000003zM433.35 674.45C469.2 674.45 497.6 702.85 497.6 738.7C497.6 774.6 469.2 803 433.35 803C397.45 803 369.1 774.6 369.1 738.7C369.1 702.85 397.45 674.45 433.35 674.45zM766.65 674.45C802.5500000000001 674.45 830.9 702.85 830.9 738.7C830.9 774.6 802.55 803 766.6499999999999 803C730.7999999999998 803 702.3999999999999 774.6 702.3999999999999 738.7C702.3999999999999 702.85 730.7999999999998 674.45 766.6499999999999 674.45z","horizAdvX":"1200"},"wechat-2-line":{"path":["M0 0h24v24H0z","M8.667 11.511a1.276 1.276 0 0 1-1.285-1.285c0-.718.567-1.286 1.285-1.286.717 0 1.285.568 1.285 1.286 0 .717-.568 1.285-1.285 1.285zm6.666 0a1.276 1.276 0 0 1-1.285-1.285c0-.718.568-1.286 1.285-1.286.718 0 1.285.568 1.285 1.286 0 .717-.567 1.285-1.285 1.285zm-8.51 7.704l.715-.436a4 4 0 0 1 2.705-.536c.212.033.386.059.52.076.406.054.82.081 1.237.081 4.42 0 7.9-3.022 7.9-6.6S16.42 5.2 12 5.2s-7.9 3.022-7.9 6.6c0 1.366.5 2.673 1.432 3.781.048.057.12.137.214.235a4 4 0 0 1 1.101 3.102l-.025.297zm-.63 2.727a1 1 0 0 1-1.527-.93l.188-2.26a2 2 0 0 0-.55-1.551A6.993 6.993 0 0 1 4 16.868C2.806 15.447 2.1 13.695 2.1 11.8c0-4.75 4.432-8.6 9.9-8.6s9.9 3.85 9.9 8.6-4.432 8.6-9.9 8.6c-.51 0-1.01-.033-1.499-.098a23.61 23.61 0 0 1-.569-.084 2 2 0 0 0-1.353.268l-2.387 1.456z"],"unicode":"","glyph":"M433.35 624.45A63.8 63.8 0 0 0 369.1 688.7C369.1 724.6 397.45 753 433.35 753C469.2 753 497.6 724.6 497.6 688.7C497.6 652.85 469.2 624.45 433.35 624.45zM766.65 624.45A63.8 63.8 0 0 0 702.4 688.7C702.4 724.6 730.8 753 766.65 753C802.5500000000001 753 830.9 724.6 830.9 688.7C830.9 652.85 802.55 624.45 766.6499999999999 624.45zM341.1500000000001 239.25L376.9000000000001 261.05A200 200 0 0 0 512.15 287.85C522.75 286.2000000000001 531.4499999999999 284.9 538.15 284.0500000000001C558.45 281.3500000000002 579.15 280.0000000000001 600 280.0000000000001C821.0000000000001 280.0000000000001 994.9999999999998 431.1000000000002 994.9999999999998 610S821.0000000000001 940 600 940S205 788.9000000000001 205 610C205 541.6999999999999 230 476.3499999999999 276.6 420.95C279 418.0999999999999 282.6 414.0999999999999 287.3 409.2A200 200 0 0 0 342.35 254.1L341.1 239.25zM309.6500000000001 102.9000000000001A50 50 0 0 0 233.3 149.4000000000001L242.7 262.3999999999999A100 100 0 0 1 215.2 339.9499999999998A349.65000000000003 349.65000000000003 0 0 0 200 356.6C140.3 427.6500000000001 105 515.25 105 610C105 847.5 326.6 1040 600 1040S1095 847.5 1095 610S873.3999999999999 180.0000000000001 599.9999999999999 180.0000000000001C574.4999999999999 180.0000000000001 549.4999999999999 181.6500000000001 525.0499999999998 184.9A1180.5 1180.5 0 0 0 496.5999999999999 189.1A100 100 0 0 1 428.95 175.7000000000001L309.5999999999999 102.9000000000001z","horizAdvX":"1200"},"wechat-fill":{"path":["M0 0h24v24H0z","M18.574 13.711a.91.91 0 0 0 .898-.898c0-.498-.399-.898-.898-.898s-.898.4-.898.898c0 .5.4.898.898.898zm-4.425 0a.91.91 0 0 0 .898-.898c0-.498-.4-.898-.898-.898-.5 0-.898.4-.898.898 0 .5.399.898.898.898zm6.567 5.04a.347.347 0 0 0-.172.37c0 .048 0 .097.025.147.098.417.294 1.081.294 1.106 0 .073.025.122.025.172a.22.22 0 0 1-.221.22c-.05 0-.074-.024-.123-.048l-1.449-.836a.799.799 0 0 0-.344-.098c-.073 0-.147 0-.196.024-.688.197-1.4.295-2.161.295-3.66 0-6.607-2.457-6.607-5.505 0-3.047 2.947-5.505 6.607-5.505 3.659 0 6.606 2.458 6.606 5.505 0 1.647-.884 3.146-2.284 4.154zM16.673 8.099a9.105 9.105 0 0 0-.28-.005c-4.174 0-7.606 2.86-7.606 6.505 0 .554.08 1.09.228 1.6h-.089a9.963 9.963 0 0 1-2.584-.368c-.074-.025-.148-.025-.222-.025a.832.832 0 0 0-.418.123l-1.748 1.005c-.05.025-.099.05-.148.05a.273.273 0 0 1-.27-.27c0-.074.024-.123.049-.197.024-.024.246-.834.369-1.324 0-.05.024-.123.024-.172a.556.556 0 0 0-.221-.442C2.058 13.376 1 11.586 1 9.598 1 5.945 4.57 3 8.95 3c3.765 0 6.93 2.169 7.723 5.098zm-5.154.418c.573 0 1.026-.477 1.026-1.026 0-.573-.453-1.026-1.026-1.026s-1.026.453-1.026 1.026.453 1.026 1.026 1.026zm-5.26 0c.573 0 1.027-.477 1.027-1.026 0-.573-.454-1.026-1.027-1.026-.572 0-1.026.453-1.026 1.026s.454 1.026 1.026 1.026z"],"unicode":"","glyph":"M928.7 514.4499999999999A45.5 45.5 0 0 1 973.6 559.35C973.6 584.2499999999999 953.65 604.25 928.7 604.25S883.8000000000001 584.2499999999999 883.8000000000001 559.35C883.8000000000001 534.35 903.8 514.4499999999999 928.7 514.4499999999999zM707.45 514.4499999999999A45.5 45.5 0 0 1 752.35 559.35C752.35 584.2499999999999 732.35 604.25 707.45 604.25C682.45 604.25 662.5500000000001 584.2499999999999 662.5500000000001 559.35C662.5500000000001 534.35 682.5000000000001 514.4499999999999 707.45 514.4499999999999zM1035.8 262.45A17.35 17.35 0 0 1 1027.2 243.95C1027.2 241.55 1027.2 239.0999999999998 1028.45 236.5999999999999C1033.35 215.7499999999999 1043.15 182.55 1043.15 181.2999999999999C1043.15 177.6499999999999 1044.3999999999999 175.1999999999998 1044.3999999999999 172.6999999999998A11 11 0 0 0 1033.35 161.6999999999998C1030.85 161.6999999999998 1029.6499999999999 162.8999999999999 1027.1999999999998 164.0999999999999L954.7499999999998 205.8999999999998A39.95 39.95 0 0 1 937.5499999999998 210.7999999999997C933.8999999999996 210.7999999999997 930.1999999999998 210.7999999999997 927.7499999999995 209.5999999999997C893.3499999999997 199.7499999999997 857.7499999999997 194.8499999999996 819.6999999999996 194.8499999999996C636.6999999999996 194.8499999999996 489.3499999999996 317.6999999999996 489.3499999999996 470.0999999999996C489.3499999999996 622.4499999999996 636.6999999999996 745.3499999999995 819.6999999999996 745.3499999999995C1002.6499999999996 745.3499999999995 1149.9999999999995 622.4499999999995 1149.9999999999995 470.0999999999996C1149.9999999999995 387.7499999999996 1105.7999999999997 312.7999999999995 1035.7999999999997 262.3999999999995zM833.6499999999999 795.05A455.25 455.25 0 0 1 819.6499999999999 795.3C610.9499999999999 795.3 439.3499999999999 652.3000000000001 439.3499999999999 470.05C439.3499999999999 442.35 443.3499999999999 415.55 450.7499999999998 390.05H446.2999999999999A498.15 498.15 0 0 0 317.0999999999999 408.45C313.3999999999999 409.7 309.6999999999999 409.7 305.9999999999999 409.7A41.6 41.6 0 0 1 285.0999999999998 403.55L197.6999999999998 353.3C195.1999999999998 352.0500000000001 192.7499999999998 350.8 190.2999999999998 350.8A13.65 13.65 0 0 0 176.7999999999998 364.2999999999999C176.7999999999998 368 177.9999999999998 370.45 179.2499999999998 374.1499999999999C180.4499999999998 375.3499999999999 191.5499999999998 415.8499999999998 197.6999999999998 440.3499999999998C197.6999999999998 442.8499999999999 198.8999999999998 446.4999999999998 198.8999999999998 448.9499999999998A27.800000000000004 27.800000000000004 0 0 1 187.8499999999998 471.0499999999998C102.9 531.2 50 620.6999999999999 50 720.0999999999999C50 902.75 228.5 1050 447.5 1050C635.75 1050 794 941.55 833.6499999999999 795.1zM575.9499999999999 774.1500000000001C604.5999999999999 774.1500000000001 627.2499999999999 798 627.2499999999999 825.45C627.2499999999999 854.1 604.5999999999999 876.75 575.9499999999999 876.75S524.65 854.0999999999999 524.65 825.45S547.3 774.1500000000001 575.9499999999999 774.1500000000001zM312.95 774.1500000000001C341.6 774.1500000000001 364.3 798 364.3 825.45C364.3 854.1 341.6 876.75 312.95 876.75C284.3499999999999 876.75 261.6499999999999 854.0999999999999 261.6499999999999 825.45S284.3499999999999 774.1500000000001 312.95 774.1500000000001z","horizAdvX":"1200"},"wechat-line":{"path":["M0 0h24v24H0z","M10 14.676v-.062c0-2.508 2.016-4.618 4.753-5.233C14.389 7.079 11.959 5.2 8.9 5.2 5.58 5.2 3 7.413 3 9.98c0 .969.36 1.9 1.04 2.698.032.038.083.094.152.165a3.568 3.568 0 0 1 1.002 2.238 3.612 3.612 0 0 1 2.363-.442c.166.026.302.046.405.06A7.254 7.254 0 0 0 10 14.675zm.457 1.951a9.209 9.209 0 0 1-2.753.055 19.056 19.056 0 0 1-.454-.067 1.612 1.612 0 0 0-1.08.212l-1.904 1.148a.806.806 0 0 1-.49.117.791.791 0 0 1-.729-.851l.15-1.781a1.565 1.565 0 0 0-.439-1.223 5.537 5.537 0 0 1-.241-.262C1.563 12.855 1 11.473 1 9.979 1 6.235 4.537 3.2 8.9 3.2c4.06 0 7.403 2.627 7.85 6.008 3.372.153 6.05 2.515 6.05 5.406 0 1.193-.456 2.296-1.229 3.19-.051.06-.116.13-.195.21a1.24 1.24 0 0 0-.356.976l.121 1.423a.635.635 0 0 1-.59.68.66.66 0 0 1-.397-.094l-1.543-.917a1.322 1.322 0 0 0-.874-.169c-.147.023-.27.04-.368.053-.316.04-.64.062-.969.062-2.694 0-4.998-1.408-5.943-3.401zm6.977 1.31a3.325 3.325 0 0 1 1.676.174 3.25 3.25 0 0 1 .841-1.502c.05-.05.087-.09.106-.112.489-.565.743-1.213.743-1.883 0-1.804-1.903-3.414-4.4-3.414-2.497 0-4.4 1.61-4.4 3.414s1.903 3.414 4.4 3.414c.241 0 .48-.016.714-.046.08-.01.188-.025.32-.046z"],"unicode":"","glyph":"M500 466.2V469.3C500 594.6999999999999 600.8 700.2 737.65 730.95C719.4499999999999 846.05 597.9499999999999 940 445 940C279 940 150 829.3499999999999 150 701C150 652.55 168 606 202 566.0999999999999C203.6 564.1999999999999 206.15 561.4 209.6 557.85A178.4 178.4 0 0 0 259.7 445.9500000000001A180.6 180.6 0 0 0 377.85 468.0500000000001C386.1500000000001 466.75 392.95 465.7500000000001 398.1 465.05A362.7 362.7 0 0 1 500 466.25zM522.85 368.6500000000001A460.44999999999993 460.44999999999993 0 0 0 385.2000000000001 365.9000000000001A952.8 952.8 0 0 0 362.5000000000001 369.2500000000001A80.6 80.6 0 0 1 308.5000000000001 358.6500000000001L213.3000000000001 301.2500000000001A40.3 40.3 0 0 0 188.8000000000001 295.4000000000001A39.55 39.55 0 0 0 152.35 337.9500000000001L159.85 427A78.25 78.25 0 0 1 137.9 488.1500000000001A276.84999999999997 276.84999999999997 0 0 0 125.85 501.2500000000001C78.15 557.25 50 626.3499999999999 50 701.0500000000001C50 888.25 226.85 1040 445 1040C648 1040 815.1500000000001 908.65 837.5 739.5999999999999C1006.1 731.95 1140 613.8499999999999 1140 469.3C1140 409.65 1117.2 354.5 1078.5500000000002 309.8C1076.0000000000002 306.8 1072.75 303.3 1068.8 299.2999999999999A62 62 0 0 1 1051 250.4999999999999L1057.05 179.3499999999998A31.75 31.75 0 0 0 1027.55 145.3499999999999A33 33 0 0 0 1007.7 150.05L930.55 195.9A66.1 66.1 0 0 1 886.8500000000001 204.35C879.5000000000002 203.2000000000001 873.3500000000001 202.35 868.4500000000002 201.6999999999999C852.6500000000002 199.7000000000001 836.4500000000002 198.5999999999999 820.0000000000001 198.5999999999999C685.3000000000002 198.5999999999999 570.1 269 522.8500000000001 368.6499999999999zM871.7 303.1500000000001A166.25 166.25 0 0 0 955.5 294.4500000000002A162.5 162.5 0 0 0 997.55 369.5500000000001C1000.05 372.0500000000002 1001.9 374.0500000000001 1002.8500000000003 375.15C1027.3000000000002 403.4 1040 435.8000000000001 1040 469.3C1040 559.5 944.8500000000003 640 819.9999999999999 640C695.15 640 599.9999999999999 559.5 599.9999999999999 469.3S695.15 298.5999999999999 819.9999999999999 298.5999999999999C832.05 298.5999999999999 844 299.3999999999998 855.6999999999998 300.8999999999999C859.6999999999998 301.4 865.0999999999998 302.1499999999998 871.6999999999998 303.1999999999998z","horizAdvX":"1200"},"wechat-pay-fill":{"path":["M0 0h24v24H0z","M9.27 14.669a.662.662 0 0 1-.88-.269l-.043-.095-1.818-3.998a.473.473 0 0 1 0-.145.327.327 0 0 1 .335-.328.305.305 0 0 1 .196.066l2.18 1.527a.989.989 0 0 0 .546.167.894.894 0 0 0 .342-.066l10.047-4.5a10.73 10.73 0 0 0-8.171-3.526C6.478 3.502 2 7.232 2 11.87a7.83 7.83 0 0 0 3.46 6.296.662.662 0 0 1 .24.727l-.45 1.701a.945.945 0 0 0-.051.24.327.327 0 0 0 .334.334.414.414 0 0 0 .19-.058l2.18-1.265c.16-.098.343-.151.531-.152.099 0 .197.014.29.043 1.063.3 2.161.452 3.265.45 5.525 0 10.01-3.729 10.01-8.33a7.226 7.226 0 0 0-1.097-3.883L9.35 14.625l-.08.044z"],"unicode":"","glyph":"M463.5 466.55A33.1 33.1 0 0 0 419.5 480L417.35 484.75L326.45 684.6500000000001A23.65 23.65 0 0 0 326.45 691.9000000000001A16.35 16.35 0 0 0 343.2 708.3A15.25 15.25 0 0 0 353 705L462 628.65A49.45 49.45 0 0 1 489.3 620.3000000000001A44.7 44.7 0 0 1 506.4 623.6L1008.75 848.6000000000001A536.5 536.5 0 0 1 600.2 1024.9C323.9 1024.9 100 838.4 100 606.5A391.5 391.5 0 0 1 273 291.7A33.1 33.1 0 0 0 285 255.3499999999999L262.5 170.3A47.25 47.25 0 0 1 259.95 158.3A16.35 16.35 0 0 1 276.65 141.6000000000001A20.7 20.7 0 0 1 286.15 144.5L395.1500000000001 207.75C403.1500000000001 212.65 412.3 215.3000000000001 421.7000000000001 215.3500000000001C426.6500000000001 215.3500000000001 431.55 214.6500000000001 436.2 213.2000000000002C489.35 198.2000000000002 544.25 190.6 599.45 190.7000000000002C875.7000000000002 190.7000000000002 1099.95 377.1500000000001 1099.95 607.2000000000002A361.3 361.3 0 0 1 1045.1000000000001 801.3500000000001L467.5 468.75L463.5 466.55z","horizAdvX":"1200"},"wechat-pay-line":{"path":["M0 0h24v24H0z","M19.145 8.993l-9.799 5.608-.07.046a.646.646 0 0 1-.3.068.655.655 0 0 1-.58-.344l-.046-.092-1.83-3.95c-.024-.046-.024-.092-.024-.138 0-.184.139-.321.324-.321.07 0 .14.023.209.069l2.155 1.515c.162.092.348.161.556.161a.937.937 0 0 0 .348-.069l8.275-3.648C16.934 6.273 14.634 5.2 12 5.2c-4.42 0-7.9 3.022-7.9 6.6 0 1.366.5 2.673 1.432 3.781.048.057.12.137.214.235a4 4 0 0 1 1.101 3.102l-.025.297.716-.436a4 4 0 0 1 2.705-.536c.212.033.386.059.52.076.406.054.82.081 1.237.081 4.42 0 7.9-3.022 7.9-6.6 0-.996-.27-1.95-.755-2.807zM6.192 21.943a1 1 0 0 1-1.526-.932l.188-2.259a2 2 0 0 0-.55-1.551A6.993 6.993 0 0 1 4 16.868C2.806 15.447 2.1 13.695 2.1 11.8c0-4.75 4.432-8.6 9.9-8.6s9.9 3.85 9.9 8.6-4.432 8.6-9.9 8.6c-.51 0-1.01-.033-1.499-.098a23.61 23.61 0 0 1-.569-.084 2 2 0 0 0-1.353.268l-2.387 1.456z"],"unicode":"","glyph":"M957.25 750.3499999999999L467.3 469.95L463.8 467.6500000000001A32.300000000000004 32.300000000000004 0 0 0 448.8 464.2500000000001A32.75 32.75 0 0 0 419.8 481.45L417.5 486.0500000000001L326 683.5500000000002C324.8 685.8500000000001 324.8 688.1500000000001 324.8 690.4500000000002C324.8 699.6500000000001 331.75 706.5000000000001 341 706.5000000000001C344.5 706.5000000000001 348 705.3500000000001 351.45 703.0500000000001L459.2 627.3000000000001C467.3 622.7 476.6 619.2500000000001 486.9999999999999 619.2500000000001A46.85 46.85 0 0 1 504.4 622.7000000000002L918.15 805.1000000000001C846.7 886.35 731.7 940 600 940C379 940 205 788.9000000000001 205 610C205 541.6999999999999 230 476.3499999999999 276.6 420.95C279 418.0999999999999 282.6 414.0999999999999 287.3 409.2A200 200 0 0 0 342.35 254.1L341.1 239.25L376.9000000000001 261.05A200 200 0 0 0 512.15 287.85C522.75 286.2000000000001 531.4499999999999 284.9 538.15 284.0500000000001C558.45 281.3500000000002 579.15 280.0000000000001 600 280.0000000000001C821.0000000000001 280.0000000000001 994.9999999999998 431.1000000000002 994.9999999999998 610C994.9999999999998 659.8000000000001 981.5 707.5 957.25 750.3500000000001zM309.6 102.8499999999999A50 50 0 0 0 233.3 149.4499999999998L242.7 262.3999999999999A100 100 0 0 1 215.2 339.9499999999998A349.65000000000003 349.65000000000003 0 0 0 200 356.6C140.3 427.6500000000001 105 515.25 105 610C105 847.5 326.6 1040 600 1040S1095 847.5 1095 610S873.3999999999999 180.0000000000001 599.9999999999999 180.0000000000001C574.4999999999999 180.0000000000001 549.4999999999999 181.6500000000001 525.0499999999998 184.9A1180.5 1180.5 0 0 0 496.5999999999999 189.1A100 100 0 0 1 428.95 175.7000000000001L309.5999999999999 102.9000000000001z","horizAdvX":"1200"},"weibo-fill":{"path":["M0 0h24v24H0z","M17.525 11.378c1.263.392 2.669 1.336 2.669 3.004 0 2.763-3.98 6.239-9.964 6.239-4.565 0-9.23-2.213-9.23-5.852 0-1.902 1.204-4.102 3.277-6.177 2.773-2.77 6.004-4.033 7.219-2.816.537.537.588 1.464.244 2.572-.178.557.525.25.525.25 2.24-.938 4.196-.994 4.909.027.38.543.343 1.306-.008 2.19-.163.407.048.471.36.563zm-7.282 7.939c3.641-.362 6.401-2.592 6.167-4.983-.237-2.391-3.382-4.038-7.023-3.677-3.64.36-6.403 2.59-6.167 4.98.237 2.394 3.382 4.039 7.023 3.68zM6.16 14.438c.754-1.527 2.712-2.39 4.446-1.94 1.793.463 2.707 2.154 1.976 3.8-.744 1.682-2.882 2.578-4.695 1.993-1.752-.566-2.493-2.294-1.727-3.853zm1.446 2.587c.568.257 1.325.013 1.676-.55.346-.568.163-1.217-.407-1.459-.563-.237-1.291.008-1.64.553-.354.547-.189 1.202.371 1.456zm2.206-1.808c.219.092.501-.012.628-.231.123-.22.044-.466-.178-.548-.216-.084-.486.018-.613.232-.123.214-.054.458.163.547zM19.873 9.5a.725.725 0 1 1-1.378-.451 1.38 1.38 0 0 0-.288-1.357 1.395 1.395 0 0 0-1.321-.425.723.723 0 1 1-.303-1.416 2.836 2.836 0 0 1 3.29 3.649zm-3.916-6.575A5.831 5.831 0 0 1 21.5 4.72a5.836 5.836 0 0 1 1.22 5.704.838.838 0 0 1-1.06.54.844.844 0 0 1-.542-1.062 4.143 4.143 0 0 0-4.807-5.327.845.845 0 0 1-.354-1.65z"],"unicode":"","glyph":"M876.2499999999999 631.1C939.3999999999997 611.5 1009.7 564.3 1009.7 480.9C1009.7 342.75 810.6999999999999 168.9500000000001 511.4999999999999 168.9500000000001C283.2499999999999 168.9500000000001 49.9999999999999 279.6000000000002 49.9999999999999 461.5500000000001C49.9999999999999 556.6500000000001 110.1999999999999 666.6500000000001 213.8499999999999 770.4000000000001C352.5 908.9 514.05 972.05 574.8 911.2C601.65 884.3500000000001 604.1999999999999 838 586.9999999999999 782.6C578.0999999999999 754.75 613.2499999999999 770.1 613.2499999999999 770.1C725.25 817 823.05 819.8000000000001 858.6999999999999 768.7500000000001C877.6999999999999 741.6000000000001 875.85 703.4500000000002 858.3000000000001 659.2500000000001C850.15 638.9000000000001 860.6999999999999 635.7000000000002 876.3 631.1000000000001zM512.15 234.15C694.1999999999999 252.2499999999999 832.1999999999999 363.7499999999999 820.4999999999998 483.3000000000001C808.6499999999999 602.85 651.3999999999999 685.2 469.3499999999999 667.15C287.3499999999998 649.15 149.1999999999999 537.65 160.9999999999999 418.15C172.8499999999999 298.4500000000001 330.0999999999999 216.1999999999999 512.1499999999999 234.15zM308 478.1C345.7 554.4499999999999 443.6 597.6 530.3 575.0999999999999C619.9499999999999 551.9499999999999 665.65 467.4 629.1 385.0999999999999C591.9000000000001 301 485.0000000000001 256.2 394.35 285.45C306.7500000000001 313.7499999999999 269.7 400.15 308 478.1zM380.3 348.7499999999999C408.7 335.8999999999999 446.55 348.0999999999998 464.1 376.2499999999999C481.4 404.6499999999999 472.25 437.0999999999999 443.75 449.2C415.6 461.05 379.2 448.8 361.75 421.5499999999999C344.05 394.1999999999998 352.3 361.45 380.3 348.7499999999999zM490.6 439.1499999999999C501.55 434.5499999999999 515.65 439.7499999999999 522 450.6999999999999C528.15 461.6999999999999 524.2 473.9999999999999 513.0999999999999 478.0999999999999C502.3 482.2999999999998 488.7999999999999 477.1999999999998 482.4499999999999 466.4999999999999C476.3 455.7999999999998 479.7499999999999 443.5999999999999 490.6 439.1499999999999zM993.65 725A36.25 36.25 0 1 0 924.75 747.55A68.99999999999999 68.99999999999999 0 0 1 910.35 815.4000000000001A69.75 69.75 0 0 1 844.3 836.6500000000001A36.150000000000006 36.150000000000006 0 1 0 829.1499999999999 907.45A141.79999999999998 141.79999999999998 0 0 0 993.6499999999997 725zM797.85 1053.75A291.55 291.55 0 0 0 1075 964A291.8 291.8 0 0 0 1136 678.8000000000001A41.9 41.9 0 0 0 1083 651.8000000000001A42.2 42.2 0 0 0 1055.8999999999999 704.9000000000001A207.14999999999998 207.14999999999998 0 0 1 815.55 971.25A42.24999999999999 42.24999999999999 0 0 0 797.85 1053.75z","horizAdvX":"1200"},"weibo-line":{"path":["M0 0h24v24H0z","M20.194 14.197c0 3.362-4.53 6.424-9.926 6.424C5.318 20.62 1 18.189 1 14.534c0-1.947 1.18-4.087 3.24-6.088 2.832-2.746 6.229-4.033 7.858-2.448.498.482.723 1.122.719 1.858 1.975-.576 3.65-.404 4.483.752.449.623.532 1.38.326 2.207 1.511.61 2.568 1.77 2.568 3.382zm-4.44-2.07c-.386-.41-.4-.92-.198-1.41.208-.508.213-.812.12-.94-.264-.368-1.533-.363-3.194.311a2.043 2.043 0 0 1-.509.14c-.344.046-.671.001-.983-.265-.419-.359-.474-.855-.322-1.316.215-.67.18-1.076.037-1.215-.186-.18-.777-.191-1.659.143-1.069.405-2.298 1.224-3.414 2.306C3.925 11.54 3 13.218 3 14.534c0 2.242 3.276 4.087 7.268 4.087 4.42 0 7.926-2.37 7.926-4.424 0-.738-.637-1.339-1.673-1.652-.394-.113-.536-.171-.767-.417zm7.054-1.617a1 1 0 0 1-1.936-.502 4 4 0 0 0-4.693-4.924 1 1 0 1 1-.407-1.958 6 6 0 0 1 7.036 7.384z"],"unicode":"","glyph":"M1009.7 490.1500000000001C1009.7 322.0500000000002 783.1999999999999 168.9500000000001 513.4 168.9500000000001C265.9 169 50 290.55 50 473.3C50 570.65 109 677.65 212 777.6999999999999C353.6 915 523.45 979.35 604.9 900.0999999999999C629.8 876 641.05 844 640.8499999999999 807.1999999999999C739.5999999999999 835.9999999999999 823.3499999999999 827.3999999999999 864.9999999999999 769.5999999999999C887.4499999999999 738.4499999999999 891.5999999999999 700.5999999999999 881.2999999999998 659.2499999999999C956.8499999999998 628.75 1009.7 570.75 1009.7 490.15zM787.6999999999999 593.6500000000001C768.4 614.1500000000001 767.6999999999998 639.6500000000001 777.7999999999998 664.1500000000001C788.1999999999999 689.55 788.4499999999998 704.75 783.7999999999998 711.1500000000001C770.5999999999999 729.5500000000001 707.1499999999999 729.3 624.0999999999998 695.6A102.15 102.15 0 0 0 598.6499999999997 688.6C581.4499999999998 686.3000000000001 565.0999999999998 688.5500000000001 549.4999999999998 701.85C528.5499999999997 719.8000000000001 525.7999999999997 744.6000000000001 533.3999999999997 767.6500000000001C544.1499999999997 801.1500000000001 542.3999999999997 821.45 535.2499999999998 828.4000000000001C525.9499999999998 837.4000000000001 496.3999999999999 837.95 452.2999999999998 821.25C398.8499999999998 801 337.3999999999998 760.0500000000002 281.5999999999998 705.95C196.25 623 150 539.1 150 473.3C150 361.2000000000001 313.8 268.95 513.4000000000001 268.95C734.4 268.95 909.7000000000002 387.45 909.7000000000002 490.1499999999999C909.7000000000002 527.0499999999998 877.8500000000001 557.0999999999999 826.0500000000001 572.7499999999998C806.3500000000001 578.3999999999997 799.2500000000001 581.2999999999998 787.7 593.5999999999998zM1140.4 674.5000000000001A50 50 0 0 0 1043.6 699.6000000000001A200 200 0 0 1 808.95 945.8000000000002A50 50 0 1 0 788.6000000000001 1043.7000000000003A300 300 0 0 0 1140.4 674.5000000000001z","horizAdvX":"1200"},"whatsapp-fill":{"path":["M0 0h24v24H0z","M2.004 22l1.352-4.968A9.954 9.954 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.954 9.954 0 0 1-5.03-1.355L2.004 22zM8.391 7.308a.961.961 0 0 0-.371.1 1.293 1.293 0 0 0-.294.228c-.12.113-.188.211-.261.306A2.729 2.729 0 0 0 6.9 9.62c.002.49.13.967.33 1.413.409.902 1.082 1.857 1.971 2.742.214.213.423.427.648.626a9.448 9.448 0 0 0 3.84 2.046l.569.087c.185.01.37-.004.556-.013a1.99 1.99 0 0 0 .833-.231c.166-.088.244-.132.383-.22 0 0 .043-.028.125-.09.135-.1.218-.171.33-.288.083-.086.155-.187.21-.302.078-.163.156-.474.188-.733.024-.198.017-.306.014-.373-.004-.107-.093-.218-.19-.265l-.582-.261s-.87-.379-1.401-.621a.498.498 0 0 0-.177-.041.482.482 0 0 0-.378.127v-.002c-.005 0-.072.057-.795.933a.35.35 0 0 1-.368.13 1.416 1.416 0 0 1-.191-.066c-.124-.052-.167-.072-.252-.109l-.005-.002a6.01 6.01 0 0 1-1.57-1c-.126-.11-.243-.23-.363-.346a6.296 6.296 0 0 1-1.02-1.268l-.059-.095a.923.923 0 0 1-.102-.205c-.038-.147.061-.265.061-.265s.243-.266.356-.41a4.38 4.38 0 0 0 .263-.373c.118-.19.155-.385.093-.536-.28-.684-.57-1.365-.868-2.041-.059-.134-.234-.23-.393-.249-.054-.006-.108-.012-.162-.016a3.385 3.385 0 0 0-.403.004z"],"unicode":"","glyph":"M100.2 100L167.8 348.4A497.7000000000001 497.7000000000001 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.7000000000001 497.7000000000001 0 0 0 348.5 167.75L100.2 100zM419.55 834.6A48.05 48.05 0 0 1 401 829.6A64.65 64.65 0 0 1 386.3 818.2C380.3 812.55 376.9000000000001 807.6500000000001 373.25 802.9000000000001A136.45000000000002 136.45000000000002 0 0 1 345 719C345.1 694.5 351.5 670.65 361.5 648.35C381.95 603.2500000000001 415.6000000000001 555.5000000000001 460.05 511.2500000000001C470.7500000000001 500.6000000000001 481.2 489.9000000000001 492.45 479.95A472.40000000000003 472.40000000000003 0 0 1 684.45 377.6500000000001L712.9 373.3000000000001C722.15 372.8 731.3999999999999 373.5000000000001 740.7 373.9500000000002A99.50000000000001 99.50000000000001 0 0 1 782.35 385.5000000000003C790.65 389.9000000000003 794.55 392.1000000000003 801.5 396.5000000000001C801.5 396.5000000000001 803.65 397.9000000000001 807.75 401.0000000000001C814.5000000000001 406.0000000000001 818.6500000000001 409.5500000000002 824.25 415.4000000000002C828.3999999999999 419.7000000000002 832 424.7500000000001 834.75 430.5000000000001C838.65 438.6500000000002 842.55 454.2000000000002 844.15 467.1500000000002C845.35 477.0500000000002 844.9999999999999 482.4500000000002 844.8499999999999 485.8000000000002C844.6499999999999 491.1500000000001 840.1999999999999 496.7000000000002 835.3499999999999 499.0500000000002L806.2499999999998 512.1000000000001S762.7499999999999 531.0500000000001 736.1999999999998 543.1500000000002A24.900000000000002 24.900000000000002 0 0 1 727.3499999999999 545.2000000000002A24.1 24.1 0 0 1 708.4499999999998 538.8500000000001V538.9500000000002C708.1999999999998 538.9500000000002 704.8499999999999 536.1000000000001 668.6999999999998 492.3000000000002A17.499999999999996 17.499999999999996 0 0 0 650.2999999999998 485.8000000000002A70.8 70.8 0 0 0 640.7499999999998 489.1000000000001C634.5499999999997 491.7000000000002 632.3999999999999 492.7000000000002 628.1499999999997 494.5500000000002L627.8999999999997 494.6500000000002A300.5 300.5 0 0 0 549.3999999999997 544.6500000000002C543.0999999999997 550.1500000000002 537.2499999999997 556.1500000000002 531.2499999999998 561.9500000000003A314.8 314.8 0 0 0 480.2499999999998 625.3500000000003L477.2999999999998 630.1000000000003A46.15 46.15 0 0 0 472.1999999999998 640.3500000000003C470.2999999999998 647.7000000000003 475.2499999999998 653.6000000000004 475.2499999999998 653.6000000000004S487.3999999999998 666.9000000000003 493.0499999999998 674.1000000000004A219 219 0 0 1 506.1999999999998 692.7500000000002C512.0999999999998 702.2500000000002 513.9499999999997 712.0000000000002 510.8499999999997 719.5500000000003C496.8499999999998 753.7500000000002 482.3499999999997 787.8000000000003 467.4499999999998 821.6000000000004C464.4999999999998 828.3000000000003 455.7499999999998 833.1000000000004 447.7999999999998 834.0500000000003C445.0999999999997 834.3500000000004 442.3999999999997 834.6500000000003 439.6999999999997 834.8500000000003A169.25 169.25 0 0 1 419.5499999999997 834.6500000000003z","horizAdvX":"1200"},"whatsapp-line":{"path":["M0 0h24v24H0z","M7.253 18.494l.724.423A7.953 7.953 0 0 0 12 20a8 8 0 1 0-8-8c0 1.436.377 2.813 1.084 4.024l.422.724-.653 2.401 2.4-.655zM2.004 22l1.352-4.968A9.954 9.954 0 0 1 2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.954 9.954 0 0 1-5.03-1.355L2.004 22zM8.391 7.308c.134-.01.269-.01.403-.004.054.004.108.01.162.016.159.018.334.115.393.249.298.676.588 1.357.868 2.04.062.152.025.347-.093.537a4.38 4.38 0 0 1-.263.372c-.113.145-.356.411-.356.411s-.099.118-.061.265c.014.056.06.137.102.205l.059.095c.256.427.6.86 1.02 1.268.12.116.237.235.363.346.468.413.998.75 1.57 1l.005.002c.085.037.128.057.252.11.062.026.126.049.191.066a.35.35 0 0 0 .367-.13c.724-.877.79-.934.796-.934v.002a.482.482 0 0 1 .378-.127c.06.004.121.015.177.04.531.243 1.4.622 1.4.622l.582.261c.098.047.187.158.19.265.004.067.01.175-.013.373-.032.259-.11.57-.188.733a1.155 1.155 0 0 1-.21.302 2.378 2.378 0 0 1-.33.288 3.71 3.71 0 0 1-.125.09 5.024 5.024 0 0 1-.383.22 1.99 1.99 0 0 1-.833.23c-.185.01-.37.024-.556.014-.008 0-.568-.087-.568-.087a9.448 9.448 0 0 1-3.84-2.046c-.226-.199-.435-.413-.649-.626-.89-.885-1.562-1.84-1.97-2.742A3.47 3.47 0 0 1 6.9 9.62a2.729 2.729 0 0 1 .564-1.68c.073-.094.142-.192.261-.305.127-.12.207-.184.294-.228a.961.961 0 0 1 .371-.1z"],"unicode":"","glyph":"M362.65 275.3L398.85 254.1500000000001A397.65000000000003 397.65000000000003 0 0 1 600 200A400 400 0 1 1 200 600C200 528.2 218.85 459.35 254.2 398.8L275.3 362.5999999999999L242.65 242.55L362.65 275.3zM100.2 100L167.8 348.4A497.7000000000001 497.7000000000001 0 0 0 100 600C100 876.15 323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100A497.7000000000001 497.7000000000001 0 0 0 348.5 167.75L100.2 100zM419.55 834.6C426.25 835.1 433 835.1 439.7000000000001 834.8C442.4000000000001 834.6 445.1 834.3 447.8000000000001 834C455.7500000000001 833.1 464.5000000000001 828.25 467.4500000000001 821.55C482.3500000000001 787.75 496.8500000000001 753.7 510.8500000000001 719.55C513.95 711.95 512.1000000000001 702.2 506.2000000000001 692.6999999999999A219 219 0 0 0 493.0500000000001 674.0999999999999C487.4000000000001 666.85 475.2500000000001 653.55 475.2500000000001 653.55S470.3000000000001 647.65 472.2000000000002 640.3C472.9000000000001 637.5 475.2000000000002 633.4499999999999 477.3000000000001 630.05L480.2500000000001 625.3C493.0500000000001 603.9499999999999 510.2500000000001 582.3 531.2500000000001 561.8999999999999C537.25 556.0999999999999 543.1000000000001 550.1499999999999 549.4000000000001 544.5999999999999C572.8000000000001 523.9499999999998 599.3000000000001 507.0999999999999 627.9000000000001 494.5999999999999L628.1500000000001 494.4999999999999C632.4000000000002 492.6499999999999 634.5500000000002 491.6499999999999 640.7500000000001 488.9999999999999C643.8500000000001 487.6999999999999 647.0500000000002 486.55 650.3000000000002 485.6999999999998A17.499999999999996 17.499999999999996 0 0 1 668.6500000000002 492.1999999999999C704.8500000000003 536.05 708.1500000000002 538.8999999999999 708.4500000000002 538.8999999999999V538.7999999999998A24.1 24.1 0 0 0 727.3500000000003 545.1499999999999C730.3500000000003 544.9499999999998 733.4000000000002 544.3999999999999 736.2000000000002 543.1499999999999C762.7500000000002 530.9999999999999 806.2000000000002 512.0499999999998 806.2000000000002 512.0499999999998L835.3000000000002 498.9999999999999C840.2 496.6499999999999 844.6500000000002 491.0999999999999 844.8000000000002 485.7499999999999C845.0000000000002 482.3999999999999 845.3000000000003 476.9999999999999 844.1500000000001 467.0999999999999C842.5500000000002 454.1499999999999 838.6500000000002 438.5999999999999 834.7500000000002 430.45A57.75000000000001 57.75000000000001 0 0 0 824.2500000000001 415.3499999999999A118.9 118.9 0 0 0 807.7500000000002 400.95A185.5 185.5 0 0 0 801.5000000000002 396.45A251.2 251.2 0 0 0 782.3500000000003 385.45A99.50000000000001 99.50000000000001 0 0 0 740.7000000000003 373.95C731.4500000000003 373.45 722.2000000000003 372.7499999999999 712.9000000000003 373.25C712.5000000000003 373.25 684.5000000000003 377.6 684.5000000000003 377.6A472.40000000000003 472.40000000000003 0 0 0 492.5000000000003 479.9C481.2000000000003 489.8499999999999 470.7500000000003 500.55 460.0500000000004 511.1999999999999C415.5500000000004 555.4499999999999 381.9500000000004 603.1999999999999 361.5500000000004 648.2999999999998A173.50000000000003 173.50000000000003 0 0 0 345 719A136.45000000000002 136.45000000000002 0 0 0 373.2000000000001 803C376.85 807.7 380.3 812.6 386.25 818.25C392.6 824.25 396.6 827.45 400.95 829.65A48.05 48.05 0 0 0 419.5 834.65z","horizAdvX":"1200"},"wheelchair-fill":{"path":["M0 0H24V24H0z","M8 10.341v2.194C6.804 13.227 6 14.52 6 16c0 2.21 1.79 4 4 4 1.48 0 2.773-.804 3.465-2h2.193c-.823 2.33-3.046 4-5.658 4-3.314 0-6-2.686-6-6 0-2.613 1.67-4.835 4-5.659zM12 17c-1.657 0-3-1.343-3-3v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v5h1.434c.648 0 1.253.314 1.626.836l.089.135 2.708 4.515-1.714 1.028L16.433 17H12zm0-15c1.38 0 2.5 1.12 2.5 2.5S13.38 7 12 7 9.5 5.88 9.5 4.5 10.62 2 12 2z"],"unicode":"","glyph":"M400 682.95V573.25C340.2 538.65 300 474 300 400C300 289.5 389.5 200 500 200C574 200 638.65 240.2 673.25 300H782.9C741.75 183.5000000000001 630.6 100 500 100C334.3 100 200 234.3 200 400C200 530.65 283.5 641.75 400 682.9499999999999zM600 350C517.15 350 450 417.15 450 500V700C450 782.85 517.15 850 600 850S750 782.85 750 700V450H821.7C854.1 450 884.35 434.3 903.0000000000002 408.2L907.45 401.4500000000001L1042.85 175.7000000000001L957.15 124.3L821.65 350H600zM600 1100C669 1100 725 1044 725 975S669 850 600 850S475 906 475 975S531 1100 600 1100z","horizAdvX":"1200"},"wheelchair-line":{"path":["M0 0H24V24H0z","M8 10.341v2.194C6.804 13.227 6 14.52 6 16c0 2.21 1.79 4 4 4 1.48 0 2.773-.804 3.465-2h2.193c-.823 2.33-3.046 4-5.658 4-3.314 0-6-2.686-6-6 0-2.613 1.67-4.835 4-5.659zM12 17c-1.657 0-3-1.343-3-3v-4c0-1.044.534-1.964 1.343-2.501C9.533 6.964 9 6.044 9 5c0-1.657 1.343-3 3-3s3 1.343 3 3c0 1.044-.534 1.964-1.343 2.501C14.467 8.036 15 8.956 15 10v4.999l1.434.001c.648 0 1.253.314 1.626.836l.089.135 2.708 4.515-1.714 1.028L16.433 17 15 16.999 12 17zm0-8c-.552 0-1 .448-1 1v4c0 .552.448 1 1 1h.999L13 10c0-.552-.448-1-1-1zm0-5c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"],"unicode":"","glyph":"M400 682.95V573.25C340.2 538.65 300 474 300 400C300 289.5 389.5 200 500 200C574 200 638.65 240.2 673.25 300H782.9C741.75 183.5000000000001 630.6 100 500 100C334.3 100 200 234.3 200 400C200 530.65 283.5 641.75 400 682.9499999999999zM600 350C517.15 350 450 417.15 450 500V700C450 752.2 476.7 798.2 517.15 825.05C476.65 851.8 450 897.8 450 950C450 1032.85 517.15 1100 600 1100S750 1032.85 750 950C750 897.8 723.3 851.8 682.85 824.95C723.35 798.2 750 752.2 750 700V450.0500000000001L821.7 450.0000000000001C854.1 450.0000000000001 884.35 434.3000000000001 903.0000000000002 408.2000000000001L907.45 401.4500000000001L1042.85 175.7000000000001L957.15 124.3000000000002L821.65 350L750 350.0500000000001L600 350zM600 750C572.4 750 550 727.5999999999999 550 700V500C550 472.4 572.4 450 600 450H649.95L650 700C650 727.5999999999999 627.6 750 600 750zM600 1000C572.4 1000 550 977.6 550 950S572.4 900 600 900S650 922.4 650 950S627.6 1000 600 1000z","horizAdvX":"1200"},"wifi-fill":{"path":["M0 0h24v24H0z","M.69 6.997A17.925 17.925 0 0 1 12 3c4.285 0 8.22 1.497 11.31 3.997L21.425 9.33A14.937 14.937 0 0 0 12 6C8.43 6 5.15 7.248 2.575 9.33L.69 6.997zm3.141 3.89A12.946 12.946 0 0 1 12 8c3.094 0 5.936 1.081 8.169 2.886l-1.885 2.334A9.958 9.958 0 0 0 12 11c-2.38 0-4.566.832-6.284 2.22l-1.885-2.334zm3.142 3.89A7.967 7.967 0 0 1 12 13c1.904 0 3.653.665 5.027 1.776l-1.885 2.334A4.98 4.98 0 0 0 12 16a4.98 4.98 0 0 0-3.142 1.11l-1.885-2.334zm3.142 3.89A2.987 2.987 0 0 1 12 18c.714 0 1.37.25 1.885.666L12 21l-1.885-2.334z"],"unicode":"","glyph":"M34.5 850.15A896.25 896.25 0 0 0 600 1050C814.25 1050 1011 975.15 1165.5 850.15L1071.25 733.5A746.85 746.85 0 0 1 600 900C421.5 900 257.5 837.5999999999999 128.75 733.5L34.5 850.15zM191.55 655.65A647.3000000000001 647.3000000000001 0 0 0 600 800C754.6999999999999 800 896.8 745.95 1008.45 655.7L914.2 539A497.90000000000003 497.90000000000003 0 0 1 600 650C481.0000000000001 650 371.7 608.4 285.8 539L191.55 655.6999999999999zM348.65 461.15A398.34999999999997 398.34999999999997 0 0 0 600 550C695.2 550 782.65 516.75 851.35 461.2L757.1 344.5A249.00000000000003 249.00000000000003 0 0 1 600 400A249.00000000000003 249.00000000000003 0 0 1 442.9000000000001 344.5L348.6500000000001 461.2zM505.75 266.6499999999999A149.35 149.35 0 0 0 600 300C635.7 300 668.5 287.5 694.25 266.7L600 150L505.75 266.7z","horizAdvX":"1200"},"wifi-line":{"path":["M0 0h24v24H0z","M.69 6.997A17.925 17.925 0 0 1 12 3c4.285 0 8.22 1.497 11.31 3.997l-1.256 1.556A15.933 15.933 0 0 0 12 5C8.191 5 4.694 6.33 1.946 8.553L.69 6.997zm3.141 3.89A12.946 12.946 0 0 1 12 8c3.094 0 5.936 1.081 8.169 2.886l-1.257 1.556A10.954 10.954 0 0 0 12 10c-2.618 0-5.023.915-6.912 2.442l-1.257-1.556zm3.142 3.89A7.967 7.967 0 0 1 12 13c1.904 0 3.653.665 5.027 1.776l-1.257 1.556A5.975 5.975 0 0 0 12 15c-1.428 0-2.74.499-3.77 1.332l-1.257-1.556zm3.142 3.89A2.987 2.987 0 0 1 12 18c.714 0 1.37.25 1.885.666L12 21l-1.885-2.334z"],"unicode":"","glyph":"M34.5 850.15A896.25 896.25 0 0 0 600 1050C814.25 1050 1011 975.15 1165.5 850.15L1102.7 772.3499999999999A796.65 796.65 0 0 1 600 950C409.55 950 234.7 883.5 97.3 772.3499999999999L34.5 850.15zM191.55 655.65A647.3000000000001 647.3000000000001 0 0 0 600 800C754.6999999999999 800 896.8 745.95 1008.45 655.7L945.6 577.9A547.7 547.7 0 0 1 600 700C469.1 700 348.85 654.25 254.4 577.9L191.55 655.7zM348.65 461.15A398.34999999999997 398.34999999999997 0 0 0 600 550C695.2 550 782.65 516.75 851.35 461.2L788.5000000000001 383.4A298.75 298.75 0 0 1 600 450C528.5999999999999 450 463 425.05 411.5 383.4L348.6500000000001 461.2zM505.75 266.6499999999999A149.35 149.35 0 0 0 600 300C635.7 300 668.5 287.5 694.25 266.7L600 150L505.75 266.7z","horizAdvX":"1200"},"wifi-off-fill":{"path":["M0 0h24v24H0z","M12 18c.714 0 1.37.25 1.886.666L12 21l-1.886-2.334A2.987 2.987 0 0 1 12 18zM2.808 1.393l17.677 17.678-1.414 1.414-3.682-3.68-.247.306A4.98 4.98 0 0 0 12 16a4.98 4.98 0 0 0-3.141 1.11l-1.885-2.334a7.963 7.963 0 0 1 4.622-1.766l-1.773-1.772a9.963 9.963 0 0 0-4.106 1.982L3.83 10.887A12.984 12.984 0 0 1 7.416 8.83L5.885 7.3a15 15 0 0 0-3.31 2.031L.689 6.997c.915-.74 1.903-1.391 2.952-1.942L1.393 2.808l1.415-1.415zM16.084 11.87l-3.868-3.867L12 8c3.095 0 5.937 1.081 8.17 2.887l-1.886 2.334a10 10 0 0 0-2.2-1.352zM12 3c4.285 0 8.22 1.497 11.31 3.997L21.426 9.33A14.937 14.937 0 0 0 12 6c-.572 0-1.136.032-1.69.094L7.723 3.511C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M600 300C635.7 300 668.5 287.5 694.3 266.7L600 150L505.7 266.7A149.35 149.35 0 0 0 600 300zM140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L769.4499999999999 359.7499999999999L757.0999999999999 344.4499999999998A249.00000000000003 249.00000000000003 0 0 1 600 400A249.00000000000003 249.00000000000003 0 0 1 442.95 344.5L348.7 461.2A398.15 398.15 0 0 0 579.8 549.5L491.15 638.1A498.15 498.15 0 0 1 285.85 539L191.5 655.65A649.2 649.2 0 0 0 370.8 758.5L294.25 835A750 750 0 0 1 128.75 733.45L34.45 850.15C80.2 887.1500000000001 129.6 919.7 182.05 947.25L69.65 1059.6L140.4 1130.35zM804.1999999999999 606.5L610.8 799.85L600 800C754.75 800 896.85 745.95 1008.5000000000002 655.65L914.2000000000002 538.95A500 500 0 0 1 804.2000000000002 606.55zM600 1050C814.25 1050 1011 975.15 1165.5 850.15L1071.3 733.5A746.85 746.85 0 0 1 600 900C571.4000000000001 900 543.2 898.4 515.5 895.3L386.15 1024.45C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"wifi-off-line":{"path":["M0 0h24v24H0z","M12 18c.714 0 1.37.25 1.886.666L12 21l-1.886-2.334A2.987 2.987 0 0 1 12 18zM2.808 1.393l17.677 17.678-1.414 1.414-5.18-5.18A5.994 5.994 0 0 0 12 15c-1.428 0-2.74.499-3.77 1.332l-1.256-1.556a7.963 7.963 0 0 1 4.622-1.766L9 10.414a10.969 10.969 0 0 0-3.912 2.029L3.83 10.887A12.984 12.984 0 0 1 7.416 8.83L5.132 6.545a16.009 16.009 0 0 0-3.185 2.007L.689 6.997c.915-.74 1.903-1.391 2.952-1.942L1.393 2.808l1.415-1.415zM14.5 10.285l-2.284-2.283L12 8c3.095 0 5.937 1.081 8.17 2.887l-1.258 1.556a10.96 10.96 0 0 0-4.412-2.158zM12 3c4.285 0 8.22 1.497 11.31 3.997l-1.257 1.555A15.933 15.933 0 0 0 12 5c-.878 0-1.74.07-2.58.207L7.725 3.51C9.094 3.177 10.527 3 12 3z"],"unicode":"","glyph":"M600 300C635.7 300 668.5 287.5 694.3 266.7L600 150L505.7 266.7A149.35 149.35 0 0 0 600 300zM140.4 1130.35L1024.25 246.45L953.55 175.7499999999998L694.55 434.7499999999999A299.70000000000005 299.70000000000005 0 0 1 600 450C528.5999999999999 450 463 425.05 411.5 383.4L348.7 461.2A398.15 398.15 0 0 0 579.8 549.5L450 679.3000000000001A548.45 548.45 0 0 1 254.4 577.85L191.5 655.65A649.2 649.2 0 0 0 370.8 758.5L256.6 872.75A800.45 800.45 0 0 1 97.35 772.4000000000001L34.45 850.15C80.2 887.1500000000001 129.6 919.7 182.05 947.25L69.65 1059.6L140.4 1130.35zM725 685.75L610.8000000000001 799.9L600 800C754.75 800 896.85 745.95 1008.5000000000002 655.65L945.6000000000003 577.8499999999999A548.0000000000001 548.0000000000001 0 0 1 725.0000000000002 685.7499999999999zM600 1050C814.25 1050 1011 975.15 1165.5 850.15L1102.65 772.4000000000001A796.65 796.65 0 0 1 600 950C556.1 950 513 946.5 471 939.65L386.25 1024.5C454.7 1041.15 526.3499999999999 1050 600 1050z","horizAdvX":"1200"},"window-2-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 7H4v9h16v-9zm-5-4v2h4V6h-4z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 700H200V250H1000V700zM750 900V800H950V900H750z","horizAdvX":"1200"},"window-2-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 8H4v8h16v-8zm0-2V5H4v4h16zm-5-3h4v2h-4V6z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 650H200V250H1000V650zM1000 750V950H200V750H1000zM750 900H950V800H750V900z","horizAdvX":"1200"},"window-fill":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 7H4v9h16v-9zM5 6v2h2V6H5zm4 0v2h2V6H9z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 700H200V250H1000V700zM250 900V800H350V900H250zM450 900V800H550V900H450z","horizAdvX":"1200"},"window-line":{"path":["M0 0h24v24H0z","M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm17 8H4v8h16v-8zm0-2V5H4v4h16zM9 6h2v2H9V6zM5 6h2v2H5V6z"],"unicode":"","glyph":"M150 1050H1050A50 50 0 0 0 1100 1000V200A50 50 0 0 0 1050 150H150A50 50 0 0 0 100 200V1000A50 50 0 0 0 150 1050zM1000 650H200V250H1000V650zM1000 750V950H200V750H1000zM450 900H550V800H450V900zM250 900H350V800H250V900z","horizAdvX":"1200"},"windows-fill":{"path":["M0 0H24V24H0z","M3 5.479l7.377-1.016v7.127H3V5.48zm0 13.042l7.377 1.017v-7.04H3v6.023zm8.188 1.125L21 21v-8.502h-9.812v7.148zm0-15.292v7.236H21V3l-9.812 1.354z"],"unicode":"","glyph":"M150 926.05L518.8499999999999 976.85V620.5H150V926zM150 273.95L518.8499999999999 223.1V575.0999999999999H150V273.95zM559.4 217.6999999999999L1050 150V575.1H559.4V217.6999999999999zM559.4 982.3V620.5H1050V1050L559.4 982.3z","horizAdvX":"1200"},"windows-line":{"path":["M0 0H24V24H0z","M21 2.5v19l-18-2v-15l18-2zm-2 10.499L12 13v5.487l7 .778V13zm-14 4.71l5 .556V13l-5-.001v4.71zM19 11V4.735l-7 .777V11l7-.001zm-9-5.265L5 6.29V11L10 11V5.734z"],"unicode":"","glyph":"M1050 1075V125L150 225V975L1050 1075zM950 550.05L600 550V275.6499999999999L950 236.75V550zM250 314.5500000000001L500 286.75V550L250 550.05V314.5500000000001zM950 650V963.25L600 924.4V650L950 650.05zM500 913.25L250 885.5V650L500 650V913.3z","horizAdvX":"1200"},"windy-fill":{"path":["M0 0h24v24H0z","M10.5 17H4v-2h6.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 10.5 17zM5 11h13.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 18.5 13H5a3 3 0 0 1 0-6h8.5a1.5 1.5 0 1 0-1.405-2.027l-1.873-.702A3.501 3.501 0 0 1 17 5.5 3.5 3.5 0 0 1 13.5 9H5a1 1 0 1 0 0 2z"],"unicode":"","glyph":"M525 350H200V450H525A175 175 0 1 0 361.1 213.5L454.7499999999999 248.65A75 75 0 1 1 525 350zM250 650H925A175 175 0 1 0 761.1 413.5L854.75 448.65A75 75 0 1 1 925 550H250A150 150 0 0 0 250 850H675A75 75 0 1 1 604.75 951.35L511.1000000000001 986.45A175.04999999999998 175.04999999999998 0 0 0 850 925A175 175 0 0 0 675 750H250A50 50 0 1 1 250 650z","horizAdvX":"1200"},"windy-line":{"path":["M0 0h24v24H0z","M10.5 17H4v-2h6.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 10.5 17zM5 11h13.5a3.5 3.5 0 1 1-3.278 4.73l1.873-.703A1.5 1.5 0 1 0 18.5 13H5a3 3 0 0 1 0-6h8.5a1.5 1.5 0 1 0-1.405-2.027l-1.873-.702A3.501 3.501 0 0 1 17 5.5 3.5 3.5 0 0 1 13.5 9H5a1 1 0 1 0 0 2z"],"unicode":"","glyph":"M525 350H200V450H525A175 175 0 1 0 361.1 213.5L454.7499999999999 248.65A75 75 0 1 1 525 350zM250 650H925A175 175 0 1 0 761.1 413.5L854.75 448.65A75 75 0 1 1 925 550H250A150 150 0 0 0 250 850H675A75 75 0 1 1 604.75 951.35L511.1000000000001 986.45A175.04999999999998 175.04999999999998 0 0 0 850 925A175 175 0 0 0 675 750H250A50 50 0 1 1 250 650z","horizAdvX":"1200"},"wireless-charging-fill":{"path":["M0 0L24 0 24 24 0 24z","M3.929 4.929l1.414 1.414C3.895 7.791 3 9.791 3 12c0 2.21.895 4.21 2.343 5.657L3.93 19.07C2.119 17.261 1 14.761 1 12s1.12-5.261 2.929-7.071zm16.142 0C21.881 6.739 23 9.239 23 12s-1.12 5.262-2.929 7.071l-1.414-1.414C20.105 16.209 21 14.209 21 12s-.895-4.208-2.342-5.656L20.07 4.93zM13 5v6h3l-5 8v-6H8l5-8zM6.757 7.757l1.415 1.415C7.448 9.895 7 10.895 7 12c0 1.105.448 2.105 1.172 2.828l-1.415 1.415C5.672 15.157 5 13.657 5 12c0-1.657.672-3.157 1.757-4.243zm10.487.001C18.329 8.844 19 10.344 19 12c0 1.657-.672 3.157-1.757 4.243l-1.415-1.415C16.552 14.105 17 13.105 17 12c0-1.104-.447-2.104-1.17-2.827l1.414-1.415z"],"unicode":"","glyph":"M196.45 953.55L267.15 882.85C194.75 810.45 150 710.45 150 600C150 489.5 194.75 389.5 267.15 317.15L196.5 246.5C105.95 336.9500000000001 50 461.95 50 600S106 863.05 196.45 953.55zM1003.55 953.55C1094.05 863.05 1150 738.05 1150 600S1094 336.9 1003.55 246.4500000000001L932.85 317.1500000000002C1005.25 389.5500000000001 1050 489.5500000000001 1050 600S1005.25 810.4000000000001 932.9 882.8L1003.5 953.5zM650 950V650H800L550 250V550H400L650 950zM337.85 812.1500000000001L408.6 741.4C372.4000000000001 705.25 350 655.25 350 600C350 544.75 372.4000000000001 494.75 408.6 458.6L337.85 387.85C283.6 442.15 250 517.15 250 600C250 682.85 283.6 757.85 337.85 812.1500000000001zM862.2 812.1C916.45 757.8 950 682.8000000000001 950 600C950 517.15 916.4 442.15 862.15 387.8499999999999L791.4 458.5999999999999C827.6 494.75 850 544.75 850 600C850 655.1999999999999 827.6500000000001 705.1999999999999 791.5 741.35L862.2 812.1z","horizAdvX":"1200"},"wireless-charging-line":{"path":["M0 0L24 0 24 24 0 24z","M3.929 4.929l1.414 1.414C3.895 7.791 3 9.791 3 12c0 2.21.895 4.21 2.343 5.657L3.93 19.07C2.119 17.261 1 14.761 1 12s1.12-5.261 2.929-7.071zm16.142 0C21.881 6.739 23 9.239 23 12s-1.12 5.262-2.929 7.071l-1.414-1.414C20.105 16.209 21 14.209 21 12s-.895-4.208-2.342-5.656L20.07 4.93zM13 5v6h3l-5 8v-6H8l5-8zM6.757 7.757l1.415 1.415C7.448 9.895 7 10.895 7 12c0 1.105.448 2.105 1.172 2.828l-1.415 1.415C5.672 15.157 5 13.657 5 12c0-1.657.672-3.157 1.757-4.243zm10.487.001C18.329 8.844 19 10.344 19 12c0 1.657-.672 3.157-1.757 4.243l-1.415-1.415C16.552 14.105 17 13.105 17 12c0-1.104-.447-2.104-1.17-2.827l1.414-1.415z"],"unicode":"","glyph":"M196.45 953.55L267.15 882.85C194.75 810.45 150 710.45 150 600C150 489.5 194.75 389.5 267.15 317.15L196.5 246.5C105.95 336.9500000000001 50 461.95 50 600S106 863.05 196.45 953.55zM1003.55 953.55C1094.05 863.05 1150 738.05 1150 600S1094 336.9 1003.55 246.4500000000001L932.85 317.1500000000002C1005.25 389.5500000000001 1050 489.5500000000001 1050 600S1005.25 810.4000000000001 932.9 882.8L1003.5 953.5zM650 950V650H800L550 250V550H400L650 950zM337.85 812.1500000000001L408.6 741.4C372.4000000000001 705.25 350 655.25 350 600C350 544.75 372.4000000000001 494.75 408.6 458.6L337.85 387.85C283.6 442.15 250 517.15 250 600C250 682.85 283.6 757.85 337.85 812.1500000000001zM862.2 812.1C916.45 757.8 950 682.8000000000001 950 600C950 517.15 916.4 442.15 862.15 387.8499999999999L791.4 458.5999999999999C827.6 494.75 850 544.75 850 600C850 655.1999999999999 827.6500000000001 705.1999999999999 791.5 741.35L862.2 812.1z","horizAdvX":"1200"},"women-fill":{"path":["M0 0h24v24H0z","M11 15.934A7.501 7.501 0 0 1 12 1a7.5 7.5 0 0 1 1 14.934V18h5v2h-5v4h-2v-4H6v-2h5v-2.066z"],"unicode":"","glyph":"M550 403.3000000000001A375.04999999999995 375.04999999999995 0 0 0 600 1150A375 375 0 0 0 650 403.3000000000001V300H900V200H650V0H550V200H300V300H550V403.3z","horizAdvX":"1200"},"women-line":{"path":["M0 0h24v24H0z","M11 15.934A7.501 7.501 0 0 1 12 1a7.5 7.5 0 0 1 1 14.934V18h5v2h-5v4h-2v-4H6v-2h5v-2.066zM12 14a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11z"],"unicode":"","glyph":"M550 403.3000000000001A375.04999999999995 375.04999999999995 0 0 0 600 1150A375 375 0 0 0 650 403.3000000000001V300H900V200H650V0H550V200H300V300H550V403.3zM600 500A275 275 0 1 1 600 1050A275 275 0 0 1 600 500z","horizAdvX":"1200"},"wubi-input":{"path":["M0 0h24v24H0z","M3 21v-2h3.662l1.234-7H5v-2h3.249l.881-5H4V3h16v2h-8.839l-.882 5H18v9h3v2H3zm13-9H9.927l-1.235 7H16v-7z"],"unicode":"","glyph":"M150 150V250H333.1L394.8 600H250V700H412.4500000000001L456.5000000000001 950H200V1050H1000V950H558.05L513.95 700H900V250H1050V150H150zM800 600H496.35L434.6 250H800V600z","horizAdvX":"1200"},"xbox-fill":{"path":["M0 0h24v24H0z","M5.418 19.527A9.956 9.956 0 0 0 12 22a9.967 9.967 0 0 0 6.585-2.473c1.564-1.593-3.597-7.257-6.585-9.514-2.985 2.257-8.15 7.921-6.582 9.514zm9.3-12.005c2.084 2.468 6.237 8.595 5.064 10.76A9.952 9.952 0 0 0 22 12.003a9.958 9.958 0 0 0-2.975-7.113s-.022-.018-.068-.035a.686.686 0 0 0-.235-.038c-.493 0-1.654.362-4.004 2.705zM5.045 4.856c-.048.017-.068.034-.072.035A9.963 9.963 0 0 0 2 12.003c0 2.379.832 4.561 2.218 6.278C3.05 16.11 7.2 9.988 9.284 7.523 6.934 5.178 5.771 4.818 5.28 4.818a.604.604 0 0 0-.234.039v-.002zM12 4.959S9.546 3.523 7.63 3.455c-.753-.027-1.212.246-1.268.282C8.149 2.538 10.049 2 11.987 2H12c1.945 0 3.838.538 5.638 1.737-.056-.038-.512-.31-1.266-.282-1.917.068-4.372 1.5-4.372 1.5v.004z"],"unicode":"","glyph":"M270.9000000000001 223.65A497.8 497.8 0 0 1 600 100A498.35 498.35 0 0 1 929.25 223.65C1007.45 303.3 749.4000000000001 586.4999999999999 600 699.3499999999999C450.75 586.4999999999999 192.5 303.3 270.9000000000001 223.65zM735.9 823.9C840.1 700.5 1047.75 394.15 989.1 285.9A497.59999999999997 497.59999999999997 0 0 1 1100 599.85A497.90000000000003 497.90000000000003 0 0 1 951.2499999999998 955.5S950.15 956.4 947.85 957.25A34.300000000000004 34.300000000000004 0 0 1 936.1 959.15C911.45 959.15 853.3999999999999 941.05 735.8999999999999 823.9000000000001zM252.25 957.2C249.85 956.35 248.85 955.5 248.65 955.45A498.15 498.15 0 0 1 100 599.85C100 480.9 141.6 371.8 210.9 285.9500000000001C152.5 394.5 360 700.6 464.2 823.85C346.7 941.1 288.55 959.1 264 959.1A30.2 30.2 0 0 1 252.3 957.15V957.25zM600 952.05S477.3 1023.85 381.5 1027.25C343.85 1028.6 320.9000000000001 1014.95 318.1 1013.15C407.45 1073.1 502.45 1100 599.35 1100H600C697.25 1100 791.9000000000001 1073.1 881.8999999999999 1013.15C879.0999999999999 1015.05 856.2999999999998 1028.65 818.6 1027.25C722.75 1023.85 600 952.25 600 952.25V952.05z","horizAdvX":"1200"},"xbox-line":{"path":["M0 0h24v24H0z","M4.797 15.485c1.124-2.52 3.2-5.44 4.487-6.962-1.248-1.246-2.162-1.931-2.818-2.3A7.977 7.977 0 0 0 4 12c0 1.25.286 2.432.797 3.485zm4.051-10.84C10.448 5.05 12 5.959 12 5.959v-.005s1.552-.904 3.151-1.31A7.974 7.974 0 0 0 12 4c-1.12 0-2.185.23-3.152.645zm8.686 1.578c-.655.37-1.568 1.055-2.816 2.3 1.287 1.523 3.362 4.441 4.486 6.961A7.968 7.968 0 0 0 20 12c0-2.27-.946-4.32-2.466-5.777zm.408 11.133c-1.403-2.236-4.09-4.944-5.942-6.343-1.85 1.4-4.539 4.108-5.941 6.345A7.98 7.98 0 0 0 12 20a7.98 7.98 0 0 0 5.942-2.644zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10z"],"unicode":"","glyph":"M239.85 425.75C296.05 551.75 399.85 697.7500000000001 464.1999999999999 773.85C401.8 836.1500000000001 356.1 870.4000000000001 323.3 888.85A398.84999999999997 398.84999999999997 0 0 1 200 600C200 537.5 214.3 478.4 239.85 425.75zM442.4 967.75C522.4 947.5 600 902.05 600 902.05V902.3S677.6 947.5 757.55 967.8A398.70000000000005 398.70000000000005 0 0 1 600 1000C544 1000 490.75 988.5 442.4 967.75zM876.6999999999999 888.85C843.9499999999999 870.35 798.3 836.1 735.9 773.85C800.25 697.7 903.9999999999998 551.8000000000001 960.2 425.8A398.40000000000003 398.40000000000003 0 0 1 1000 600C1000 713.5 952.7 816 876.6999999999999 888.85zM897.1 332.2000000000001C826.95 444.0000000000001 692.6 579.4000000000001 600 649.3500000000001C507.5 579.35 373.05 443.9500000000001 302.95 332.1000000000002A399 399 0 0 1 600 200A399 399 0 0 1 897.1 332.2zM600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100z","horizAdvX":"1200"},"xing-fill":{"path":["M0 0h24v24H0z","M20.462 3.23c.153 0 .307.078.384.155a.49.49 0 0 1 0 .461l-6.077 10.77 3.846 7.076a.49.49 0 0 1 0 .462.588.588 0 0 1-.384.154h-2.77c-.384 0-.615-.308-.769-.539l-3.923-7.154C11 14.308 16.923 3.77 16.923 3.77c.154-.307.385-.538.77-.538h2.769zM8.923 7c.385 0 .615.308.77.538l1.922 3.308c-.153.154-3 5.23-3 5.23-.153.232-.384.54-.769.54H5.154a.588.588 0 0 1-.385-.154.49.49 0 0 1 0-.462l2.846-5.154-1.846-3.23a.49.49 0 0 1 0-.462A.588.588 0 0 1 6.154 7h2.77z"],"unicode":"","glyph":"M1023.1 1038.5C1030.75 1038.5 1038.4499999999998 1034.6 1042.3 1030.75A24.5 24.5 0 0 0 1042.3 1007.7L738.45 469.2L930.7500000000002 115.4000000000001A24.5 24.5 0 0 0 930.7500000000002 92.3A29.39999999999999 29.39999999999999 0 0 0 911.55 84.5999999999999H773.0500000000001C753.8500000000001 84.5999999999999 742.3000000000001 100 734.6000000000001 111.5500000000002L538.45 469.2500000000001C550 484.6 846.1499999999999 1011.5 846.1499999999999 1011.5C853.8499999999999 1026.85 865.4 1038.4 884.6499999999999 1038.4H1023.0999999999998zM446.15 850C465.4 850 476.9 834.6 484.65 823.0999999999999L580.75 657.7C573.1 650 430.75 396.2 430.75 396.2C423.1 384.6 411.55 369.2000000000001 392.3 369.2000000000001H257.7A29.39999999999999 29.39999999999999 0 0 0 238.45 376.9A24.5 24.5 0 0 0 238.45 400L380.75 657.7L288.45 819.2A24.5 24.5 0 0 0 288.45 842.3A29.39999999999999 29.39999999999999 0 0 0 307.7 850H446.2z","horizAdvX":"1200"},"xing-line":{"path":["M0 0h24v24H0z","M20.444 3.5L13.81 14.99 17.857 22h-2.31l-4.045-7.009H11.5L18.134 3.5h2.31zM8.31 7l2.422 4.196-.002.001L7.67 16.5H5.361l3.06-5.305L6.002 7H8.31z"],"unicode":"","glyph":"M1022.2 1025L690.5 450.5L892.8499999999999 100H777.3499999999999L575.0999999999999 450.45H575L906.7 1025H1022.2zM415.5 850L536.6 640.2L536.5 640.1500000000001L383.5 375H268.05L421.05 640.25L300.1 850H415.5z","horizAdvX":"1200"},"youtube-fill":{"path":["M0 0h24v24H0z","M21.543 6.498C22 8.28 22 12 22 12s0 3.72-.457 5.502c-.254.985-.997 1.76-1.938 2.022C17.896 20 12 20 12 20s-5.893 0-7.605-.476c-.945-.266-1.687-1.04-1.938-2.022C2 15.72 2 12 2 12s0-3.72.457-5.502c.254-.985.997-1.76 1.938-2.022C6.107 4 12 4 12 4s5.896 0 7.605.476c.945.266 1.687 1.04 1.938 2.022zM10 15.5l6-3.5-6-3.5v7z"],"unicode":"","glyph":"M1077.1499999999999 875.0999999999999C1100 786 1100 600 1100 600S1100 414 1077.1499999999999 324.9000000000001C1064.4499999999998 275.6500000000001 1027.3 236.9 980.25 223.8000000000002C894.8000000000001 200 600 200 600 200S305.35 200 219.75 223.8C172.5 237.0999999999999 135.4 275.8 122.85 324.8999999999999C100 414 100 600 100 600S100 786 122.85 875.0999999999999C135.55 924.35 172.7 963.1 219.75 976.2C305.35 1000 600 1000 600 1000S894.8000000000001 1000 980.25 976.2C1027.5 962.9 1064.6000000000001 924.2 1077.1499999999999 875.1zM500 425L800 600L500 775V425z","horizAdvX":"1200"},"youtube-line":{"path":["M0 0h24v24H0z","M19.606 6.995c-.076-.298-.292-.523-.539-.592C18.63 6.28 16.5 6 12 6s-6.628.28-7.069.403c-.244.068-.46.293-.537.592C4.285 7.419 4 9.196 4 12s.285 4.58.394 5.006c.076.297.292.522.538.59C5.372 17.72 7.5 18 12 18s6.629-.28 7.069-.403c.244-.068.46-.293.537-.592C19.715 16.581 20 14.8 20 12s-.285-4.58-.394-5.005zm1.937-.497C22 8.28 22 12 22 12s0 3.72-.457 5.502c-.254.985-.997 1.76-1.938 2.022C17.896 20 12 20 12 20s-5.893 0-7.605-.476c-.945-.266-1.687-1.04-1.938-2.022C2 15.72 2 12 2 12s0-3.72.457-5.502c.254-.985.997-1.76 1.938-2.022C6.107 4 12 4 12 4s5.896 0 7.605.476c.945.266 1.687 1.04 1.938 2.022zM10 15.5v-7l6 3.5-6 3.5z"],"unicode":"","glyph":"M980.3 850.25C976.5 865.15 965.7 876.4 953.35 879.8499999999999C931.5 886 825 900 600 900S268.6 886 246.55 879.8499999999999C234.35 876.45 223.55 865.2 219.7 850.25C214.25 829.05 200 740.2 200 600S214.25 371.0000000000001 219.7 349.7000000000001C223.5 334.8499999999999 234.3 323.6 246.6 320.2000000000001C268.6 314 375 300 600 300S931.45 314 953.45 320.15C965.65 323.55 976.45 334.8 980.3 349.7499999999999C985.75 370.9500000000001 1000 460 1000 600S985.75 829 980.3 850.25zM1077.15 875.0999999999999C1100 786 1100 600 1100 600S1100 414 1077.1499999999999 324.9000000000001C1064.4499999999998 275.6500000000001 1027.3 236.9 980.25 223.8000000000002C894.8000000000001 200 600 200 600 200S305.35 200 219.75 223.8C172.5 237.0999999999999 135.4 275.8 122.85 324.8999999999999C100 414 100 600 100 600S100 786 122.85 875.0999999999999C135.55 924.35 172.7 963.1 219.75 976.2C305.35 1000 600 1000 600 1000S894.8000000000001 1000 980.25 976.2C1027.5 962.9 1064.6000000000001 924.2 1077.1499999999999 875.1zM500 425V775L800 600L500 425z","horizAdvX":"1200"},"zcool-fill":{"path":["M0 0h24v24H0z","M9.902 21.839A7.903 7.903 0 0 1 2 13.935C2 10.29 4.467 7.06 7.824 6.31 11.745 5.43 13.528 4.742 14.9 2c.998 1.935.323 3.71 0 4.677 4.698-1.129 6.371-3.28 6.774-3.548 0 3.952-1.231 6.452-2.419 8.065 1.476-.056 2.009-.484 2.744-.587-.325 1.448-1.5 3.49-4.33 4.795a7.905 7.905 0 0 1-7.768 6.437zm3.71-6.452c0 .323-.053.484-.403.484l-3.15.002 2.96-3.248c.86-.86.86-1.29.86-2.388 0-.334-.048-.717.048-1.05.047-.144-.048-.192-.191-.144-.335.095-.908.095-1.863.095H7.575c-.239 0-.335-.143-.239-.334 0-.048 0-.191-.096-.191-.62.286-.764 1.576-.716 2.388 0 .43.239.669.573.669h3.391l-3.486 3.725c-.24.287-.478.669-.478 1.194v1.051c0 .478.287.764.812.86h5.988c.555 0 .933-.233.933-.855v-1.129c0-.208 0-.968-.645-1.129z"],"unicode":"","glyph":"M495.1 108.0500000000002A395.15 395.15 0 0 0 100 503.25C100 685.5 223.35 847 391.2 884.5C587.25 928.5 676.4 962.9 745 1100C794.9 1003.25 761.1500000000001 914.5 745 866.1500000000001C979.9 922.6 1063.55 1030.15 1083.7 1043.55C1083.7 845.95 1022.1499999999997 720.95 962.75 640.3000000000001C1036.55 643.1 1063.2 664.5 1099.95 669.6500000000001C1083.7 597.25 1024.95 495.15 883.4499999999998 429.9000000000001A395.25000000000006 395.25000000000006 0 0 0 495.0499999999998 108.0500000000002zM680.5999999999999 430.6500000000001C680.5999999999999 414.5 677.9499999999998 406.4500000000001 660.4499999999999 406.4500000000001L502.9499999999999 406.35L650.9499999999999 568.75C693.9499999999999 611.75 693.9499999999999 633.25 693.9499999999999 688.15C693.9499999999999 704.8499999999999 691.5499999999998 724 696.3499999999999 740.6500000000001C698.6999999999999 747.85 693.9499999999999 750.25 686.7999999999998 747.85C670.0499999999998 743.1 641.3999999999999 743.1 593.6499999999999 743.1H378.75C366.8 743.1 362 750.25 366.8 759.8C366.8 762.2 366.8 769.35 362 769.35C331 755.0500000000001 323.8 690.55 326.2 649.95C326.2 628.45 338.15 616.5 354.85 616.5H524.4L350.1 430.25C338.0999999999999 415.9 326.2 396.8 326.2 370.5500000000001V318.0000000000001C326.2 294.1 340.55 279.8000000000002 366.8 275.0000000000003H666.2C693.9499999999999 275.0000000000003 712.85 286.6500000000002 712.85 317.7500000000003V374.2000000000003C712.85 384.6000000000002 712.85 422.6000000000003 680.6 430.6500000000002z","horizAdvX":"1200"},"zcool-line":{"path":["M0 0h24v24H0z","M8.26 8.26C5.838 8.803 4 11.208 4 13.935a5.903 5.903 0 0 0 11.703 1.098 2 2 0 0 1 1.129-1.448c.482-.222.91-.473 1.284-.743-.863-.603-1.186-1.862-.47-2.834a9.796 9.796 0 0 0 1.391-2.651 19.04 19.04 0 0 1-3.668 1.265c-1.261.303-2.392-.638-2.466-1.814-1.18.572-2.67 1.01-4.642 1.452zm10.996 2.934c1.166 0 1.917-.424 2.744-.587-.325 1.448-1.5 3.49-4.33 4.795A7.903 7.903 0 0 1 2 13.936C2 10.29 4.467 7.06 7.824 6.308 11.745 5.43 13.528 4.742 14.9 2c.689 1.333.689 2.892 0 4.677 2.816-.67 5.074-1.852 6.774-3.548 0 4.802-1.822 7.186-2.419 8.065zm-5.84 3.932c.584.145.584.832.584 1.02v1.022c0 .561-.342.773-.844.773H7.742c-.475-.087-.734-.346-.734-.778v-.95c0-.475.216-.82.432-1.08l3.152-3.369H7.526c-.302 0-.518-.216-.518-.604-.044-.735.086-1.9.647-2.16.087 0 .087.13.087.173-.087.173 0 .302.216.302h3.887c.863 0 1.381 0 1.684-.086.13-.043.216 0 .173.13-.087.302-.044.647-.044.95 0 .993 0 1.382-.777 2.159l-2.678 2.937 2.85-.002c.316 0 .364-.146.364-.437z"],"unicode":"","glyph":"M413 787C291.9 759.8499999999999 200 639.6 200 503.25A295.15 295.15 0 0 1 785.15 448.3499999999999A100 100 0 0 0 841.6 520.75C865.7 531.8499999999999 887.1 544.4 905.8 557.9C862.65 588.05 846.5 651 882.3000000000001 699.5999999999999A489.79999999999995 489.79999999999995 0 0 1 951.85 832.1499999999999A952 952 0 0 0 768.45 768.8999999999999C705.4 753.7499999999999 648.85 800.8 645.15 859.5999999999999C586.15 831 511.6499999999999 809.0999999999999 413.05 787zM962.8 640.3000000000001C1021.1 640.3000000000001 1058.65 661.5 1100 669.6500000000001C1083.75 597.25 1025 495.15 883.5000000000001 429.9000000000001A395.15 395.15 0 0 0 100 503.2C100 685.5 223.35 847 391.2 884.6C587.25 928.5 676.4 962.9 745 1100C779.45 1033.35 779.45 955.4 745 866.1500000000001C885.8000000000001 899.6500000000001 998.7 958.75 1083.7 1043.55C1083.7 803.45 992.6 684.25 962.75 640.3000000000001zM670.8000000000001 443.7000000000001C700 436.4500000000001 700 402.1 700 392.7V341.6C700 313.5500000000001 682.9 302.9500000000001 657.8000000000001 302.9500000000001H387.1C363.35 307.3000000000001 350.4 320.25 350.4 341.85V389.3499999999999C350.4 413.0999999999999 361.2 430.3499999999999 372 443.3499999999999L529.6 611.8H376.3C361.2 611.8 350.4 622.5999999999999 350.4 641.9999999999999C348.2000000000001 678.7499999999999 354.7 737 382.75 749.9999999999999C387.1 749.9999999999999 387.1 743.4999999999999 387.1 741.3499999999999C382.75 732.6999999999999 387.1 726.25 397.9000000000001 726.25H592.25C635.4 726.25 661.3000000000001 726.25 676.45 730.55C682.95 732.6999999999999 687.25 730.55 685.1 724.05C680.75 708.9499999999999 682.9 691.6999999999998 682.9 676.55C682.9 626.9 682.9 607.4499999999999 644.05 568.6L510.15 421.75L652.65 421.85C668.45 421.85 670.85 429.1500000000001 670.85 443.7000000000001z","horizAdvX":"1200"},"zhihu-fill":{"path":["M0 0h24v24H0z","M13.373 18.897h1.452l.478 1.637 2.605-1.637h3.07V5.395h-7.605v13.502zM14.918 6.86h4.515v10.57h-1.732l-1.73 1.087-.314-1.084-.739-.003V6.861zm-2.83 4.712H8.846a70.3 70.3 0 0 0 .136-4.56h3.172s.122-1.4-.532-1.384H6.135c.216-.814.488-1.655.813-2.524 0 0-1.493 0-2 1.339-.211.552-.82 2.677-1.904 4.848.365-.04 1.573-.073 2.284-1.378.131-.366.156-.413.318-.902h1.79c0 .651-.074 4.151-.104 4.558h-3.24c-.729 0-.965 1.466-.965 1.466h4.066C6.92 16.131 5.456 18.74 2.8 20.8c1.27.363 2.536-.057 3.162-.614 0 0 1.425-1.297 2.206-4.298l3.346 4.03s.49-1.668-.077-2.481c-.47-.554-1.74-2.052-2.281-2.595l-.907.72c.27-.867.433-1.71.488-2.524h3.822s-.005-1.466-.47-1.466z"],"unicode":"","glyph":"M668.65 255.1500000000001H741.25L765.15 173.3L895.3999999999999 255.1500000000001H1048.8999999999999V930.25H668.6499999999999V255.1500000000001zM745.9 857H971.65V328.5H885.0500000000001L798.55 274.15L782.85 328.35L745.9 328.5V856.95zM604.4 621.4000000000001H442.3A3514.9999999999995 3514.9999999999995 0 0 1 449.1 849.4000000000001H607.7S613.8 919.4 581.1 918.6H306.75C317.55 959.3 331.15 1001.35 347.4 1044.8C347.4 1044.8 272.75 1044.8 247.4 977.85C236.85 950.25 206.4 844 152.2 735.45C170.45 737.4499999999999 230.85 739.1 266.4 804.3499999999999C272.95 822.65 274.2 825 282.3 849.45H371.8C371.8 816.9 368.1 641.9000000000001 366.6 621.5500000000001H204.5999999999999C168.1499999999999 621.5500000000001 156.3499999999999 548.2500000000001 156.3499999999999 548.2500000000001H359.6499999999999C346 393.4500000000001 272.8 263.0000000000001 140 160C203.5 141.8499999999999 266.8 162.8499999999999 298.1 190.7000000000001C298.1 190.7000000000001 369.35 255.5500000000001 408.4 405.6L575.6999999999999 204.1S600.1999999999999 287.5 571.85 328.1500000000001C548.3499999999999 355.85 484.85 430.7500000000001 457.8 457.9000000000002L412.45 421.9000000000001C425.95 465.2500000000001 434.0999999999999 507.4000000000002 436.8499999999999 548.1000000000001H627.9499999999998S627.6999999999998 621.4000000000001 604.4499999999998 621.4000000000001z","horizAdvX":"1200"},"zhihu-line":{"path":["M0 0h24v24H0z","M12.344 17.963l-1.688 1.074-2.131-3.35c-.44 1.402-1.172 2.665-2.139 3.825-.402.483-.82.918-1.301 1.375-.155.147-.775.717-.878.82l-1.414-1.414c.139-.139.787-.735.915-.856.43-.408.795-.79 1.142-1.206 1.266-1.518 2.03-3.21 2.137-5.231H3v-2h4V7h-.868c-.689 1.266-1.558 2.222-2.618 2.857L2.486 8.143c1.395-.838 2.425-2.604 3.038-5.36l1.952.434c-.14.633-.303 1.227-.489 1.783H11.5v2H9v4h2.5v2H9.185l3.159 4.963zm3.838-.07L17.298 17H19V7h-4v10h.736l.446.893zM13 5h8v14h-3l-2.5 2-1-2H13V5z"],"unicode":"","glyph":"M617.1999999999999 301.8499999999999L532.8 248.1499999999999L426.25 415.6499999999999C404.25 345.5499999999999 367.6499999999999 282.3999999999999 319.3 224.3999999999998C299.2 200.2499999999998 278.3 178.4999999999999 254.25 155.6499999999999C246.5 148.3 215.5 119.8 210.3499999999999 114.6499999999999L139.65 185.3499999999999C146.6 192.2999999999999 179 222.0999999999998 185.4 228.15C206.9 248.55 225.15 267.6499999999999 242.5 288.45C305.8 364.3499999999999 344 448.95 349.35 549.9999999999999H150V649.9999999999999H350V850H306.6C272.15 786.7 228.7 738.9000000000001 175.7 707.1500000000001L124.3 792.8499999999999C194.05 834.75 245.55 923.05 276.2 1060.85L373.8 1039.15C366.8 1007.5 358.65 977.8 349.35 950H575V850H450V650H575V550H459.25L617.2 301.8499999999999zM809.0999999999999 305.3499999999999L864.8999999999999 350H950V850H750V350H786.8000000000001L809.1000000000001 305.3499999999999zM650 950H1050V250H900L775 150L725 250H650V950z","horizAdvX":"1200"},"zoom-in-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zM10 10H7v2h3v3h2v-3h3v-2h-3V7h-2v3z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM500 700H350V600H500V450H600V600H750V700H600V850H500V700z","horizAdvX":"1200"},"zoom-in-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15zM10 10V7h2v3h3v2h-3v3h-2v-3H7v-2h3z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001zM500 700V850H600V700H750V600H600V450H500V600H350V700H500z","horizAdvX":"1200"},"zoom-out-fill":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zM7 10v2h8v-2H7z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM350 700V600H750V700H350z","horizAdvX":"1200"},"zoom-out-line":{"path":["M0 0h24v24H0z","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15zM7 10h8v2H7v-2z"],"unicode":"","glyph":"M901.55 369.15L1115.7 155.05L1044.95 84.3L830.85 298.4500000000001A448.00000000000006 448.00000000000006 0 0 0 550 200C301.6 200 100 401.6 100 650S301.6 1100 550 1100S1000 898.4 1000 650A448.00000000000006 448.00000000000006 0 0 0 901.55 369.15zM801.2499999999999 406.25A348.84999999999997 348.84999999999997 0 0 1 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300A348.84999999999997 348.84999999999997 0 0 1 793.75 398.7500000000001L801.2499999999999 406.2500000000001zM350 700H750V600H350V700z","horizAdvX":"1200"},"zzz-fill":{"path":["M0 0H24V24H0z","M11 11v2l-5.327 6H11v2H3v-2l5.326-6H3v-2h8zm10-8v2l-5.327 6H21v2h-8v-2l5.326-6H13V3h8z"],"unicode":"","glyph":"M550 650V550L283.65 250H550V150H150V250L416.3 550H150V650H550zM1050 1050V950L783.65 650H1050V550H650V650L916.3 950H650V1050H1050z","horizAdvX":"1200"},"zzz-line":{"path":["M0 0H24V24H0z","M11 11v2l-5.327 6H11v2H3v-2l5.326-6H3v-2h8zm10-8v2l-5.327 6H21v2h-8v-2l5.326-6H13V3h8z"],"unicode":"","glyph":"M550 650V550L283.65 250H550V150H150V250L416.3 550H150V650H550zM1050 1050V950L783.65 650H1050V550H650V650L916.3 950H650V1050H1050z","horizAdvX":"1200"}} \ No newline at end of file diff --git a/ui/public/fonts/remixicon/remixicon.svg b/ui/public/fonts/remixicon/remixicon.svg deleted file mode 100644 index a3483349bb02bb75343d02fa9c7be478fa64e18e..0000000000000000000000000000000000000000 --- a/ui/public/fonts/remixicon/remixicon.svg +++ /dev/null @@ -1,6835 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ui/public/fonts/remixicon/remixicon.symbol.svg b/ui/public/fonts/remixicon/remixicon.symbol.svg deleted file mode 100644 index 2522b6cf960fd6a69845340dddc91821df3f5540..0000000000000000000000000000000000000000 --- a/ui/public/fonts/remixicon/remixicon.symbol.svg +++ /dev/null @@ -1,11356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ui/public/fonts/remixicon/remixicon.ttf b/ui/public/fonts/remixicon/remixicon.ttf deleted file mode 100644 index c461f40e1fd354885d0291e58cc38522cc476082..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/remixicon/remixicon.ttf and /dev/null differ diff --git a/ui/public/fonts/remixicon/remixicon.woff b/ui/public/fonts/remixicon/remixicon.woff deleted file mode 100644 index 62a756bd30d9e0b3214fd459b18fa87d0e6046fe..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/remixicon/remixicon.woff and /dev/null differ diff --git a/ui/public/fonts/remixicon/remixicon.woff2 b/ui/public/fonts/remixicon/remixicon.woff2 deleted file mode 100644 index 89a0b99ec69859ae7275c1eb548bd206a19ad9a0..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/remixicon/remixicon.woff2 and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff deleted file mode 100644 index a47ff7a4d5eabb43eb76f7d123ce06c27632e8a3..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2 b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2 deleted file mode 100644 index fa47ce3b35760ccf45a892f5a272d57d72fd5412..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2 and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff deleted file mode 100644 index 991af33e62367689cca30364f9bed635dd9cdd33..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2 b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2 deleted file mode 100644 index 24d31a67adba439186b26d4ad27aa04424d1c482..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2 and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff deleted file mode 100644 index 8a6441395e473d5051e974fb6580d42a58373db8..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2 b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2 deleted file mode 100644 index 85d5600f212c0fc70df7073e9ca95ce32223f820..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2 and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff deleted file mode 100644 index 353d68c2fb92b62df64250f0be591661e4eb50f3..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2 b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2 deleted file mode 100644 index be6b9a79aa4e61a10acb8aa1b6f44252d94c2ce1..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2 and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff deleted file mode 100644 index e4a7bb928e0f91a76330110b988a23943115f9c3..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2 b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2 deleted file mode 100644 index c39c467e3f67134a9cb2575be3f4609e9d6a4de7..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2 and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff deleted file mode 100644 index a8dbc9a5994bcf4157052f087ded3cc29a7edc6e..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff and /dev/null differ diff --git a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2 b/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2 deleted file mode 100644 index e39d1b48b6d7b84c6bf13e2e24cd242d8ad48691..0000000000000000000000000000000000000000 Binary files a/ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2 and /dev/null differ diff --git a/ui/public/images/avatars/avatar0.svg b/ui/public/images/avatars/avatar0.svg deleted file mode 100644 index c950e612cea15c2f5d3bbe200f495b33ea38f145..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar0.svg +++ /dev/null @@ -1 +0,0 @@ -Mary Roebling diff --git a/ui/public/images/avatars/avatar1.svg b/ui/public/images/avatars/avatar1.svg deleted file mode 100644 index 4293650428e853ea5712e0a57896ded2cece2735..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar1.svg +++ /dev/null @@ -1 +0,0 @@ -Nellie Bly diff --git a/ui/public/images/avatars/avatar2.svg b/ui/public/images/avatars/avatar2.svg deleted file mode 100644 index b9847d2bfc081a9ef2265cb7285038c315e26a35..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar2.svg +++ /dev/null @@ -1 +0,0 @@ -Elizabeth Peratrovich diff --git a/ui/public/images/avatars/avatar3.svg b/ui/public/images/avatars/avatar3.svg deleted file mode 100644 index a59f1d7982e0d548f03d9d75043d6225916742f9..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar3.svg +++ /dev/null @@ -1 +0,0 @@ -Amelia Boynton diff --git a/ui/public/images/avatars/avatar4.svg b/ui/public/images/avatars/avatar4.svg deleted file mode 100644 index 8722ef34701621c85224efbecce105efc2662678..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar4.svg +++ /dev/null @@ -1 +0,0 @@ -Victoria Woodhull diff --git a/ui/public/images/avatars/avatar5.svg b/ui/public/images/avatars/avatar5.svg deleted file mode 100644 index 5147a3ffe1e6eb7ad9a0907164a150fe908460b1..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar5.svg +++ /dev/null @@ -1 +0,0 @@ -Chien-Shiung diff --git a/ui/public/images/avatars/avatar6.svg b/ui/public/images/avatars/avatar6.svg deleted file mode 100644 index d0252d7aa0fe5b16ea7ac608f75b0855a6b286ef..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar6.svg +++ /dev/null @@ -1 +0,0 @@ -Hetty Green diff --git a/ui/public/images/avatars/avatar7.svg b/ui/public/images/avatars/avatar7.svg deleted file mode 100644 index fa3350f7affd4a86f27bd6806637f5f69bf5e248..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar7.svg +++ /dev/null @@ -1 +0,0 @@ -Elizabeth Peratrovich diff --git a/ui/public/images/avatars/avatar8.svg b/ui/public/images/avatars/avatar8.svg deleted file mode 100644 index fa36d56b201e214efef26dbd0f3caa547b02b1b9..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar8.svg +++ /dev/null @@ -1 +0,0 @@ -Jane Johnston diff --git a/ui/public/images/avatars/avatar9.svg b/ui/public/images/avatars/avatar9.svg deleted file mode 100644 index 35a648f081e63dac8b4426bc6961fed9d2813578..0000000000000000000000000000000000000000 --- a/ui/public/images/avatars/avatar9.svg +++ /dev/null @@ -1 +0,0 @@ -Virginia Apgar diff --git a/ui/public/images/favicon/android-chrome-192x192.png b/ui/public/images/favicon/android-chrome-192x192.png deleted file mode 100644 index 699777f34826cdc6bb21a8e190cd356fcaf1a94d..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/android-chrome-192x192.png and /dev/null differ diff --git a/ui/public/images/favicon/android-chrome-512x512.png b/ui/public/images/favicon/android-chrome-512x512.png deleted file mode 100644 index 5e6b696e96fca8b16c322b22fda3026e3bedbb6f..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/android-chrome-512x512.png and /dev/null differ diff --git a/ui/public/images/favicon/apple-touch-icon.png b/ui/public/images/favicon/apple-touch-icon.png deleted file mode 100644 index 1e41b7917a858738767c3c10ba1fc84d055e9c26..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/apple-touch-icon.png and /dev/null differ diff --git a/ui/public/images/favicon/browserconfig.xml b/ui/public/images/favicon/browserconfig.xml deleted file mode 100644 index 1b34ba8b5a2039b36c04e4a7ce9bc6b5f1fbcd9c..0000000000000000000000000000000000000000 --- a/ui/public/images/favicon/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #ffffff - - - diff --git a/ui/public/images/favicon/favicon-16x16.png b/ui/public/images/favicon/favicon-16x16.png deleted file mode 100644 index 9ab99725626d5e850a2c44ce45733c03e8ffe843..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/favicon-16x16.png and /dev/null differ diff --git a/ui/public/images/favicon/favicon-32x32.png b/ui/public/images/favicon/favicon-32x32.png deleted file mode 100644 index e6520daab2ed9955cc1ceddc99c5d0767fec3f97..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/favicon-32x32.png and /dev/null differ diff --git a/ui/public/images/favicon/favicon.ico b/ui/public/images/favicon/favicon.ico deleted file mode 100644 index a43854ebf8a76aac1f6bff35ad366620b2a90cb6..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/favicon.ico and /dev/null differ diff --git a/ui/public/images/favicon/mstile-144x144.png b/ui/public/images/favicon/mstile-144x144.png deleted file mode 100644 index 31f31a28ee6a42eb7568d5898f15619bb07435c8..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/mstile-144x144.png and /dev/null differ diff --git a/ui/public/images/favicon/mstile-150x150.png b/ui/public/images/favicon/mstile-150x150.png deleted file mode 100644 index 5f2ea4e1a7f163f829e199410754fa2877710acb..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/mstile-150x150.png and /dev/null differ diff --git a/ui/public/images/favicon/mstile-310x150.png b/ui/public/images/favicon/mstile-310x150.png deleted file mode 100644 index 6c0b26604196e7ef97ea71edfb4fc84229802a7a..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/mstile-310x150.png and /dev/null differ diff --git a/ui/public/images/favicon/mstile-310x310.png b/ui/public/images/favicon/mstile-310x310.png deleted file mode 100644 index 6dc4705d98a978c568422c02401793af4efc99bd..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/mstile-310x310.png and /dev/null differ diff --git a/ui/public/images/favicon/mstile-70x70.png b/ui/public/images/favicon/mstile-70x70.png deleted file mode 100644 index d59d662b30ae93ace98a1dfd9db3f9bf5efa6782..0000000000000000000000000000000000000000 Binary files a/ui/public/images/favicon/mstile-70x70.png and /dev/null differ diff --git a/ui/public/images/favicon/safari-pinned-tab.svg b/ui/public/images/favicon/safari-pinned-tab.svg deleted file mode 100644 index 69d5d722630ef76900455599a4b6d8daa7b58771..0000000000000000000000000000000000000000 --- a/ui/public/images/favicon/safari-pinned-tab.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - - - diff --git a/ui/public/images/favicon/site.webmanifest b/ui/public/images/favicon/site.webmanifest deleted file mode 100644 index c9d27bd22eafb08a92cfe0f72519d1753ca3bf92..0000000000000000000000000000000000000000 --- a/ui/public/images/favicon/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "", - "short_name": "", - "icons": [ - { - "src": "/_/images/favicon/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/_/images/favicon/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/ui/public/images/logo.svg b/ui/public/images/logo.svg deleted file mode 100644 index 5b5de956be9559dcd24af65b67875992b244f2c1..0000000000000000000000000000000000000000 --- a/ui/public/images/logo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/ui/src/App.svelte b/ui/src/App.svelte deleted file mode 100644 index 59da29903093302d7028fb3c4018d012e3f05b5b..0000000000000000000000000000000000000000 --- a/ui/src/App.svelte +++ /dev/null @@ -1,142 +0,0 @@ - - - - {CommonHelper.joinNonEmpty([$pageTitle, $appName, "PocketBase"], " - ")} - - -
    - {#if $admin?.id && showAppSidebar} - - {/if} - -
    - - - -
    -
    - - diff --git a/ui/src/actions/tooltip.js b/ui/src/actions/tooltip.js deleted file mode 100644 index 0f4f452e351c5376ebb9d14ef5cfc7686bd2331b..0000000000000000000000000000000000000000 --- a/ui/src/actions/tooltip.js +++ /dev/null @@ -1,187 +0,0 @@ -// Simple Svelte tooltip action. -// =================================================================== -// -// ### Example usage -// -// Default (position bottom): -// ```html -// Lorem Ipsum -// ``` -// -// Custom options (valid positions: top, right, bottom, left, bottom-left, bottom-right, top-left, top-right): -// ```html -// Lorem Ipsum -// ``` -// =================================================================== - -import CommonHelper from "@/utils/CommonHelper"; - -let showTimeoutId; -let tooltipContainer; - -const defaultTooltipClass = "app-tooltip"; - -function normalize(rawData) { - if (typeof rawData == "string") { - return { - text: rawData, - position: "bottom", - hideOnClick: null, // auto - } - } - - return rawData || {}; -} - -function getTooltip() { - tooltipContainer = tooltipContainer || document.querySelector("." + defaultTooltipClass); - - if (!tooltipContainer) { - // create - tooltipContainer = document.createElement("div"); - tooltipContainer.classList.add(defaultTooltipClass); - document.body.appendChild(tooltipContainer); - } - - return tooltipContainer; -} - -function refreshTooltip(node, data) { - let tooltip = getTooltip(); - if (!tooltip.classList.contains("active") || !data?.text) { - hideTooltip(); - return; // no need to update since it is not active or there is no text to display - } - - // set tooltip content - tooltip.textContent = data.text; - - // reset tooltip styling - tooltip.className = defaultTooltipClass + " active"; - if (data.class) { - tooltip.classList.add(data.class); - } - if (data.position) { - tooltip.classList.add(data.position); - } - - // reset tooltip position - tooltip.style.top = "0px"; - tooltip.style.left = "0px"; - - // note: doesn"t use getBoundingClientRect() here because the - // tooltip could be animated/scaled/transformed and we need the real size - let tooltipHeight = tooltip.offsetHeight; - let tooltipWidth = tooltip.offsetWidth; - - let nodeRect = node.getBoundingClientRect(); - let top = 0; - let left = 0; - let tolerance = 5; - - // calculate tooltip position position - if (data.position == "left") { - top = nodeRect.top + (nodeRect.height / 2) - (tooltipHeight / 2); - left = nodeRect.left - tooltipWidth - tolerance; - } else if (data.position == "right") { - top = nodeRect.top + (nodeRect.height / 2) - (tooltipHeight / 2); - left = nodeRect.right + tolerance; - } else if (data.position == "top") { - top = nodeRect.top - tooltipHeight - tolerance; - left = nodeRect.left + (nodeRect.width / 2) - (tooltipWidth / 2); - } else if (data.position == "top-left") { - top = nodeRect.top - tooltipHeight - tolerance; - left = nodeRect.left; - } else if (data.position == "top-right") { - top = nodeRect.top - tooltipHeight - tolerance; - left = nodeRect.right - tooltipWidth; - } else if (data.position == "bottom-left") { - top = nodeRect.top + nodeRect.height + tolerance; - left = nodeRect.left; - } else if (data.position == "bottom-right") { - top = nodeRect.top + nodeRect.height + tolerance; - left = nodeRect.right - tooltipWidth; - } else { // bottom - top = nodeRect.top + nodeRect.height + tolerance; - left = nodeRect.left + (nodeRect.width / 2) - (tooltipWidth / 2); - } - - // right edge boundary - if ((left + tooltipWidth) > document.documentElement.clientWidth) { - left = document.documentElement.clientWidth - tooltipWidth; - } - - // left edge boundary - left = left >= 0 ? left : 0; - - // bottom edge boundary - if ((top + tooltipHeight) > document.documentElement.clientHeight) { - top = document.documentElement.clientHeight - tooltipHeight; - } - - // top edge boundary - top = top >= 0 ? top : 0; - - // apply new tooltip position - tooltip.style.top = top + "px"; - tooltip.style.left = left + "px"; -} - -function hideTooltip() { - clearTimeout(showTimeoutId); - getTooltip().classList.remove("active"); - getTooltip().activeNode = undefined; -} - -function showTooltip(node, data) { - getTooltip().activeNode = node; - - clearTimeout(showTimeoutId); - showTimeoutId = setTimeout(() => { - getTooltip().classList.add("active"); - - refreshTooltip(node, data); - }, (!isNaN(data.delay) ? data.delay : 0)); -} - -export default function tooltip(node, tooltipData) { - let data = normalize(tooltipData); - - function showEventHandler() { - showTooltip(node, data); - } - - function hideEventHandler() { - hideTooltip(); - } - - node.addEventListener("mouseenter", showEventHandler); - node.addEventListener("mouseleave", hideEventHandler); - node.addEventListener("blur", hideEventHandler); - if (data.hideOnClick === true || (data.hideOnClick === null && CommonHelper.isFocusable(node))) { - node.addEventListener("click", hideEventHandler); - } - - // trigger tooltip container creation (if not inserted already) - getTooltip(); - - return { - update(newTooltipData) { - data = normalize(newTooltipData); - - if (getTooltip()?.activeNode?.contains(node)) { - refreshTooltip(node, data); - } - }, - destroy() { - if (getTooltip()?.activeNode?.contains(node)) { - hideTooltip(); - } - - node.removeEventListener("mouseenter", showEventHandler); - node.removeEventListener("mouseleave", hideEventHandler); - node.removeEventListener("blur", hideEventHandler); - node.removeEventListener("click", hideEventHandler); - }, - }; -} diff --git a/ui/src/components/PageIndex.svelte b/ui/src/components/PageIndex.svelte deleted file mode 100644 index 37c16c503341a4cb2628a00c5127333410e32c91..0000000000000000000000000000000000000000 --- a/ui/src/components/PageIndex.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - -{#if showInstaller} - - { - showInstaller = false; - - await tick(); - - // clear the installer param - window.location.search = ""; - }} - /> - -{/if} diff --git a/ui/src/components/admins/AdminUpsertPanel.svelte b/ui/src/components/admins/AdminUpsertPanel.svelte deleted file mode 100644 index 63b9c02eb9dcd3b12276605ba5316faddba440a5..0000000000000000000000000000000000000000 --- a/ui/src/components/admins/AdminUpsertPanel.svelte +++ /dev/null @@ -1,263 +0,0 @@ - - - { - if (hasChanges && confirmClose) { - confirm("You have unsaved changes. Do you really want to close the panel?", () => { - confirmClose = false; - hide(); - }); - return false; - } - return true; - }} - on:hide - on:show -> - -

    - {admin.isNew ? "New admin" : "Edit admin"} -

    -
    - -
    - {#if !admin.isNew} - - -
    - -
    - -
    - {/if} - -
    -

    Avatar

    -
    - {#each [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as index} - - {/each} -
    -
    - - - - - - - {#if !admin.isNew} - - - - - {/if} - - {#if admin.isNew || changePasswordToggle} -
    -
    -
    - - - - -
    -
    - - - - -
    -
    -
    - {/if} - - - - {#if !admin.isNew} - - - -
    - {/if} - - - - - diff --git a/ui/src/components/admins/PageAdminConfirmPasswordReset.svelte b/ui/src/components/admins/PageAdminConfirmPasswordReset.svelte deleted file mode 100644 index 11a3a35d328fb4827eb0d2b5f340b774c355bd13..0000000000000000000000000000000000000000 --- a/ui/src/components/admins/PageAdminConfirmPasswordReset.svelte +++ /dev/null @@ -1,66 +0,0 @@ - - - -
    -
    -

    - Reset your admin password - {#if email} - for {email} - {/if} -

    -
    - - - - - - - - - - - - - -
    - - -
    diff --git a/ui/src/components/admins/PageAdminLogin.svelte b/ui/src/components/admins/PageAdminLogin.svelte deleted file mode 100644 index e560ded805ba39c231b2e1e567f154939466e656..0000000000000000000000000000000000000000 --- a/ui/src/components/admins/PageAdminLogin.svelte +++ /dev/null @@ -1,66 +0,0 @@ - - - -
    -
    -

    Admin sign in

    -
    - - - - - - - - - - - - - - - -
    diff --git a/ui/src/components/admins/PageAdminRequestPasswordReset.svelte b/ui/src/components/admins/PageAdminRequestPasswordReset.svelte deleted file mode 100644 index 5fdf48836bd84674f80d6168cee56c6ced3432f5..0000000000000000000000000000000000000000 --- a/ui/src/components/admins/PageAdminRequestPasswordReset.svelte +++ /dev/null @@ -1,65 +0,0 @@ - - - - {#if success} -
    -
    -
    -

    Check {email} for the recovery link.

    -
    -
    - {:else} -
    -
    -

    Forgotten admin password

    -

    Enter the email associated with your account and we’ll send you a recovery link:

    -
    - - - - - - - - - - {/if} - - -
    diff --git a/ui/src/components/admins/PageAdmins.svelte b/ui/src/components/admins/PageAdmins.svelte deleted file mode 100644 index c7d7a83ec8ee18637c4c4ba1b24700f19db10c50..0000000000000000000000000000000000000000 --- a/ui/src/components/admins/PageAdmins.svelte +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - (filter = e.detail)} - /> - - - - - - - - - {#each admins as admin (admin.id)} - adminUpsertPanel?.show(admin)} - on:keydown={(e) => { - if (e.code === "Enter" || e.code === "Space") { - e.preventDefault(); - adminUpsertPanel?.show(admin); - } - }} - > - - - - - - - - - - - - - {:else} - {#if isLoading} - - - - {:else} - - - - {/if} - {/each} - -
    - - -
    - - id -
    -
    - - -
    - - email -
    -
    - - -
    - - created -
    -
    - - -
    - - updated -
    -
    - -
    -
    -
    - Admin avatar -
    -
    - - {#if admin.id === $loggedAdmin.id} - You - {/if} - - - {admin.email} - - - - - - - -
    - -
    -
    No admins found.
    - {#if filter?.length} - - {/if} -
    -
    - - {#if admins.length} - Showing {admins.length} of {admins.length} - {/if} -
    - - loadAdmins()} on:delete={() => loadAdmins()} /> diff --git a/ui/src/components/base/Accordion.svelte b/ui/src/components/base/Accordion.svelte deleted file mode 100644 index 74410be6d6a20ba2ea95f9714a0e2c209e7b75df..0000000000000000000000000000000000000000 --- a/ui/src/components/base/Accordion.svelte +++ /dev/null @@ -1,109 +0,0 @@ - - -
    - - - {#if active} -
    - -
    - {/if} -
    diff --git a/ui/src/components/base/AutoExpandTextarea.svelte b/ui/src/components/base/AutoExpandTextarea.svelte deleted file mode 100644 index 79e02c3804bb63d296c98901758389843181ec30..0000000000000000000000000000000000000000 --- a/ui/src/components/base/AutoExpandTextarea.svelte +++ /dev/null @@ -1,55 +0,0 @@ - - -